Package: dpkg Version: 1.10.9 Severity: wishlist Tags: patch Two new GNU OS values relevant to the Debian project have hyphens in their OS fields (netbsdelf-gnu and freebsd-gnu). When handling one of these systems, dpkg-architecture returns invalid values for some fields (in particular, GNU_SYSTEM entries), and can cause them to be mistaken for Hurd systems (since the parsing returns the part beyond the last hyphen in the GNU_TYPE variable, resulting in a bare 'gnu' in both cases).
I have attached patches to dpkg-architecture.pl that change how the string handling is done, and should cope with any hyphenated value for upstream GNU OS names. -- Joel Baker <[EMAIL PROTECTED]>
diff -ur dpkg-1.10.9.orig/scripts/dpkg-architecture.pl
dpkg-1.10.9/scripts/dpkg-architecture.pl
--- dpkg-1.10.9.orig/scripts/dpkg-architecture.pl 2003-02-03
04:02:35.000000000 +0000
+++ dpkg-1.10.9/scripts/dpkg-architecture.pl 2003-02-03 04:01:44.000000000
+0000
@@ -124,10 +124,9 @@
}
chomp $deb_build_arch;
$deb_build_gnu_type = $archtable{$deb_build_arch};
-$deb_build_gnu_cpu = $deb_build_gnu_type;
-$deb_build_gnu_system = $deb_build_gnu_type;
-$deb_build_gnu_cpu =~ s/-.*$//;
-$deb_build_gnu_system =~ s/^.*-//;
[EMAIL PROTECTED] = split(/-/, $deb_build_gnu_type, 2);
+$deb_build_gnu_cpu = $deb_build_gnu_triple[0];
+$deb_build_gnu_system = $deb_build_gnu_triple[1];
# Default host: Current gcc.
$gcc = `\${CC:-gcc} --print-libgcc-file-name`;
@@ -154,8 +153,9 @@
$gcc=$archtable{$list[0]};
$deb_host_arch = $list[0];
$deb_host_gnu_type = $gcc;
- ($deb_host_gnu_system = $gcc) =~ s/^.*-//;
- ($deb_host_gnu_cpu = $gcc ) =~ s/-.*$//;
+ @deb_host_gnu_triple = split(/-/, $deb_host_gnu_type, 2);
+ $deb_host_gnu_cpu = $deb_host_gnu_triple[0];
+ $deb_host_gnu_system = $deb_host_gnu_triple[1];
}
}
if (!defined($deb_host_arch)) {
@@ -214,9 +214,10 @@
$deb_host_arch = $req_host_arch if $req_host_arch ne '';
if ($req_host_gnu_type ne '') {
- $deb_host_gnu_cpu = $deb_host_gnu_system = $deb_host_gnu_type =
$req_host_gnu_type;
- $deb_host_gnu_cpu =~ s/-.*$//;
- $deb_host_gnu_system =~ s/^.*-//;
+ $deb_host_gnu_type = $req_host_gnu_type;
+ @deb_host_gnu_triple = split(/-/, $deb_host_gnu_type, 2);
+ $deb_host_gnu_cpu = $deb_host_gnu_triple[0];
+ $deb_host_gnu_system = $deb_host_gnu_triple[1];
}
#$gcc = `\${CC:-gcc} --print-libgcc-file-name`;
pgpxEFjVigLKB.pgp
Description: PGP signature

