Re: d-i building broken?

2010-08-13 Thread Joey Hess
Thibaut Girka wrote:
> Hi,
> Today, I updated my repo and build-system, then tried to build d-i again.
> It failed miserably with "dpkg: version '1%3a1.17.1-2' has bad syntax: 
> invalid character in version number".
> I think it's due to dpkg upgrade, and especially because of the commit 
> 662d97913fe8d9f4aa784ca7595c415c65202148 which introduce stricter (but 
> correct) parsing,
> and the fact that installer/build/util/get_packages get its package versions 
> from the filename, which are escaped ("a:b" becomes "a%3ab").
> 
> I've not seen any complaint out there, so, maybe I'm the only one affected? 
> Weird.

No, only people have been complaining to debian-cd and my inbox. :-P 
Thanks for the patch.

-- 
see shy jo


signature.asc
Description: Digital signature


d-i building broken?

2010-08-10 Thread Thibaut Girka
Hi,
Today, I updated my repo and build-system, then tried to build d-i again.
It failed miserably with "dpkg: version '1%3a1.17.1-2' has bad syntax: invalid 
character in version number".
I think it's due to dpkg upgrade, and especially because of the commit 
662d97913fe8d9f4aa784ca7595c415c65202148 which introduce stricter (but correct) 
parsing,
and the fact that installer/build/util/get_packages get its package versions 
from the filename, which are escaped ("a:b" becomes "a%3ab").

I've not seen any complaint out there, so, maybe I'm the only one affected? 
Weird.

Anyway, if that's not the case, I've attached a patch, which implements the 
easiest, and maybe most "secure" way of getting the version string, but is 
obviously slower: ask dpkg.

Regards,
Thibaut Girka.
diff --git a/installer/build/util/get-packages b/installer/build/util/get-packages
index 47b5aa9..a80fe16 100755
--- a/installer/build/util/get-packages
+++ b/installer/build/util/get-packages
@@ -189,7 +189,7 @@ lnpkg() {
 	local pkg=$1; local dir=$2 debdir=$3
 	local L LV l lv
 	for l in `find $dir -name "${pkg}_*" 2>/dev/null`; do
-		lv=${l%_*}; lv=${lv##*_};
+		lv=$(dpkg -f "$l" Version); lv=${lv%"Version: "}
 		if dpkg --compare-versions "$lv" gt "$LV"; then
 			L=$l LV=$lv
 		fi


signature.asc
Description: This is a digitally signed message part