The following commit has been merged in the master branch:
commit 4e4d7f52757101728a9df51153e9e479d015c77d
Author: Niels Thykier <[email protected]>
Date:   Sun Aug 28 21:00:18 2011 +0200

    Fixed a regression to the substvars check
    
    The recent change caused false-positives for tags, which this
    commit fixes.
    
    Thanks to Jakub Wilk for catching the original issue.

diff --git a/checks/version-substvars b/checks/version-substvars
index d8d3e15..d0f1f5c 100644
--- a/checks/version-substvars
+++ b/checks/version-substvars
@@ -66,10 +66,11 @@ foreach (keys %$binpkgs) {
 
        foreach (split(m/,/, ($info->binary_field($pkg1, 'pre-depends')//'').', 
'.
                       ($info->binary_field($pkg1, 'depends')//''))) {
-               next unless 
m/(\S+)\s*\(\s*>?=\s*\${((?:Source-|source:|binary:)Version)}/x;
+               next unless 
m/(\S+)\s*\(\s*(\>)?=\s*\${((?:Source-|source:|binary:)Version)}/x;
 
+               my $gt = $2//'';
                $pkg2 = $1;
-               $substvar_strips_binNMU = ($2 eq 'source:Version');
+               $substvar_strips_binNMU = ($3 eq 'source:Version');
 
                # We can't test dependencies on packages whose names are
                # formed via substvars expanded during the build.  Assume
@@ -83,14 +84,21 @@ foreach (keys %$binpkgs) {
 
                if ($pkg1_is_any) {
                        if ($pkg2_is_any and $substvar_strips_binNMU) {
-                               # (b1) any -> any (= ${source:Version})
-                               tag 'not-binnmuable-any-depends-any', "$pkg1 -> 
$pkg2";
+                               unless ($gt) {
+                                       # (b1) any -> any (= ${source:Version})
+                                       tag 'not-binnmuable-any-depends-any', 
"$pkg1 -> $pkg2";
+                               } else {
+                                       # any -> any (= ${source:Version})
+                                       # technically this can be "binNMU'ed", 
though it is
+                                       # a bit weird.
+                                       1;
+                               }
                        } elsif (not $pkg2_is_any and not 
$substvar_strips_binNMU) {
                                # (b2) any -> all ( = ${binary:Version}) [or 
S-V]
                                # or  -- same --  (>= ${binary:Version}) [or 
S-V]
                                tag 'not-binnmuable-any-depends-all', "$pkg1 -> 
$pkg2";
                        }
-               } elsif ($pkg2_is_any) {
+               } elsif ($pkg2_is_any && !$gt) {
                        # (b3) all -> any (= ${either-of-them})
                        tag 'not-binnmuable-all-depends-any', "$pkg1 -> $pkg2";
                }

-- 
Debian package checker


-- 
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]
Archive: http://lists.debian.org/[email protected]

Reply via email to