[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[SCM] Debian package checker branch, master, updated. 2.5.2-59-g462d3ba



The following commit has been merged in the master branch:
commit 462d3ba9d70e8e2bd5998ef272ece5d2f6735cb8
Author: Niels Thykier <niels@thykier.net>
Date:   Sun Aug 28 19:28:41 2011 +0200

    Emit "any-depends-all" substvar tag if ">=" relation is used
    
    Previously the tag would only be emitted if the "=" relation was
    used.  Nevertheless, the package is also not binNMU-able if the
    ">=" is used.

diff --git a/checks/version-substvars b/checks/version-substvars
index a89a9d1..d8d3e15 100644
--- a/checks/version-substvars
+++ b/checks/version-substvars
@@ -24,10 +24,12 @@
 # What breaks
 # -----------
 #
-# (b1) any -> any (= ${source:Version})		 -> use b:V
-# (b2) any -> all (= ${Source-Version}) [or b:V] -> use s:V
-# (b3) all -> any (= ${either-of-them})		 -> use (>= ${s:V}),
-#						    optionally (<< ${s:V}.1~)
+# (b1) any -> any (= ${source:Version})          -> use b:V
+# (b2) any -> all (= ${binary:Version}) [or S-V] -> use s:V
+# (b3) all -> any (= ${either-of-them})          -> use (>= ${s:V}),
+#                                                   optionally (<< ${s:V}.1~)
+#
+# Note (b2) also breaks if (>= ${binary:Version}) [or S-V] is used.
 #
 # Always warn on ${Source-Version} even if it doesn't break since the substvar
 # is now considered deprecated.
@@ -64,7 +66,7 @@ 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;
 
 		$pkg2 = $1;
 		$substvar_strips_binNMU = ($2 eq 'source:Version');
@@ -84,7 +86,8 @@ foreach (keys %$binpkgs) {
 				# (b1) any -> any (= ${source:Version})
 				tag 'not-binnmuable-any-depends-any', "$pkg1 -> $pkg2";
 			} elsif (not $pkg2_is_any and not $substvar_strips_binNMU) {
-				# (b2) any -> all (= ${Source-Version}) [or b:V]
+				# (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) {
diff --git a/checks/version-substvars.desc b/checks/version-substvars.desc
index 5fcba0f..12fe52e 100644
--- a/checks/version-substvars.desc
+++ b/checks/version-substvars.desc
@@ -21,6 +21,9 @@ Info: The package is not safely binNMUable because an arch:any package
  depends on an arch:all package with a (= ${Source-Version}) or
  (= ${binary:Version}) relationship. Please use (= ${source:Version})
  instead.
+ .
+ Note this is also triggered if the dependency uses (>= ${var}), since
+ that has the same issue.
 
 Tag: not-binnmuable-all-depends-any
 Severity: important
diff --git a/debian/changelog b/debian/changelog
index c0431fa..7de7094 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -51,6 +51,10 @@ lintian (2.5.3) UNRELEASED; urgency=low
   * checks/standards-version:
     + [NT] Made the ancient-standards-version independent of the
       system time.
+  * checks/version-substvars{,.desc}:
+    + [NT] Also emit the any-depends-all tag if the ">=" relation is
+      used.  Thanks to Konstantinos Margaritis and Cyril Brulebois for
+      the report and the research.  (Closes: #639144)
 
   * collection/fields{,.desc}:
     + [NT] Removed, no longer used.
diff --git a/t/tests/version-substvars-general/debian/debian/control.in b/t/tests/version-substvars-general/debian/debian/control.in
index 1430063..d8f5c9b 100644
--- a/t/tests/version-substvars-general/debian/debian/control.in
+++ b/t/tests/version-substvars-general/debian/debian/control.in
@@ -31,7 +31,8 @@ Description: {$description} - data
 Package: program-utils
 Architecture: any
 Depends: $\{shlibs:Depends\}, $\{misc:Depends\},
-         program-bin (= $\{source:Version\})
+         program-bin (= $\{source:Version\}),
+         program-data (>= $\{binary:Version\})
 Description: {$description} - extra utils
  This is a test package designed to exercise some feature or tag of
  Lintian.  It is part of the Lintian test suite and may do very odd
diff --git a/t/tests/version-substvars-general/tags b/t/tests/version-substvars-general/tags
index a394168..1c00296 100644
--- a/t/tests/version-substvars-general/tags
+++ b/t/tests/version-substvars-general/tags
@@ -1,5 +1,6 @@
 E: version-substvars-general source: not-binnmuable-all-depends-any program-data-extra -> program-bin
 E: version-substvars-general source: not-binnmuable-any-depends-all program-bin -> program-data
+E: version-substvars-general source: not-binnmuable-any-depends-all program-utils -> program-data
 E: version-substvars-general source: not-binnmuable-any-depends-any program-utils -> program-bin
 E: version-substvars-general source: version-substvar-for-external-package program-data -> foreign-pkg
 W: version-substvars-general source: substvar-source-version-is-deprecated program-data

-- 
Debian package checker


Reply to: