]> err.no Git - dpkg/commitdiff
Fix perl warnings:
authorGuillem Jover <guillem@debian.org>
Sun, 13 May 2007 05:15:02 +0000 (05:15 +0000)
committerGuillem Jover <guillem@debian.org>
Sun, 13 May 2007 05:15:02 +0000 (05:15 +0000)
- In architecture comparison operations. Closes: #423452

ChangeLog
debian/changelog
scripts/controllib.pl
scripts/dpkg-genchanges.pl
scripts/dpkg-gencontrol.pl

index b614d2c8cb1bf93ab5a75c414ca2c862e1388a78..3dccd77e8331b6d818644dee025eedaa3dd657cc 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,15 @@
-2007-05-11  Guillem Jover  <guillem@debian.org>
+2007-05-13  Guillem Jover  <guillem@debian.org>
+
+       * scripts/controllib.pl (debarch_eq): Return 0 if
+       debarch_to_debtriplet returns any undef value.
+       (debarch_is): Likewise. As a side effect of changing to use arrays for
+       the real and alias architectures, all parts of the triplet are now
+       compared against 'any' as well.
+       * scripts/dpkg-genchanges.pl: Remove redundant debarch_is being
+       handled already in the grep.
+       * scripts/dpkg-gencontrol.pl: Likewise.
+
+2007-05-12  Guillem Jover  <guillem@debian.org>
 
        * scripts/controllib.pl (debian_arch_eq): Rename to ...
        (debarch_eq): ... this. Add prototype. Fix all callers.
index c5ce4657ed9e7fa5c8e3d1daf8ed966b325e79f0..90045d1d8cfaf9a1909d759cb350e03d203da9e0 100644 (file)
@@ -1,7 +1,9 @@
 dpkg (1.14.3) UNRELEASED; urgency=low
 
   [ Guillem Jover ]
-  * Fix perl warnings in dpkg-genchanges when called with -S. Closes: #423193
+  * Fix perl warnings:
+    - In dpkg-genchanges when called with -S. Closes: #423193
+    - In architecture comparison operations. Closes: #423452
   * Include the new split man pages deb-substvars.5, deb-override.5 and
     deb-shlibs.5 in dpkg-dev.
   * Fix deb-substvars.5 section to match reality.
index 66c5422822d396e9d8fb4ced1a0100906bedce8d..e3c7ad0040b2753f060539c4745849ccb7ed4d16 100755 (executable)
@@ -274,25 +274,25 @@ sub debarch_to_debtriplet($)
 sub debarch_eq($$)
 {
     my ($a, $b) = @_;
-    my ($a_abi, $a_os, $a_cpu) = debarch_to_debtriplet($a);
-    my ($b_abi, $b_os, $b_cpu) = debarch_to_debtriplet($b);
+    my @a = debarch_to_debtriplet($a);
+    my @b = debarch_to_debtriplet($b);
 
-    return ("$a_abi-$a_os-$a_cpu" eq "$b_abi-$b_os-$b_cpu");
+    return 0 if grep(!defined, (@a, @b));
+
+    return ($a[0] eq $b[0] && $a[1] eq $b[1] && $a[2] eq $b[2]);
 }
 
 sub debarch_is($$)
 {
     my ($real, $alias) = @_;
-    my ($real_abi, $real_os, $real_cpu) = debarch_to_debtriplet($real);
-    my ($alias_abi, $alias_os, $alias_cpu) = debarch_to_debtriplet($alias);
+    my @real = debarch_to_debtriplet($real);
+    my @alias = debarch_to_debtriplet($alias);
 
-    if ("$real_abi-$real_os-$real_cpu" eq "$alias_abi-$alias_os-$alias_cpu") {
-       return 1;
-    } elsif ("$alias_abi-$alias_os-$alias_cpu" eq "any-any-any") {
-       return 1;
-    } elsif ("$alias_abi-$alias_os-$alias_cpu" eq "$real_abi-any-$real_cpu") {
-       return 1;
-    } elsif ("$alias_abi-$alias_os-$alias_cpu" eq "$real_abi-$real_os-any") {
+    return 0 if grep(!defined, (@real, @alias));
+
+    if (($alias[0] eq $real[0] || $alias[0] eq 'any') &&
+        ($alias[1] eq $real[1] || $alias[1] eq 'any') &&
+        ($alias[2] eq $real[2] || $alias[2] eq 'any')) {
        return 1;
     }
 
index ddf230cce0ccfd0989f0718a5f61813b84af9704..54abf1bbe07910500931060ff37f706077b9a17e 100755 (executable)
@@ -222,7 +222,6 @@ for $_ (keys %fi) {
 
        if (!defined($p2f{$p}) && not $sourceonly) {
            if ((debarch_eq('all', $a) && !$archspecific) ||
-               debarch_is($host_arch, $a) ||
                grep(debarch_is($host_arch, $_), split(/\s+/, $a))) {
                warning(sprintf(_g("package %s in control file but not in files list"), $p));
                next;
@@ -246,8 +245,7 @@ for $_ (keys %fi) {
                $f{$_}= $v;
            } elsif (m/^Architecture$/) {
                if (not $sourceonly) {
-                   if (debarch_is($host_arch, $v) ||
-                       grep(debarch_is($host_arch, $_), split(/\s+/, $v))) {
+                   if (grep(debarch_is($host_arch, $_), split(/\s+/, $v))) {
                        $v = $host_arch;
                    } elsif (!debarch_eq('all', $v)) {
                        $v= '';
index 332d6553e5f5e9e10f0b6d49625e08702d159bc7..56ac9af5b9c01935ed6fdb73731a8ba99e8762dd 100755 (executable)
@@ -171,8 +171,6 @@ for $_ (keys %fi) {
 
             if (debarch_eq('all', $v)) {
                 $f{$_}= $v;
-           } elsif (debarch_is($host_arch, $v)) {
-               $f{$_} = $host_arch;
             } else {
                my @archlist = split(/\s+/, $v);
                my @invalid_archs = grep m/[^\w-]/, @archlist;