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

[SCM] Debian package checker branch, master, updated. 2.2.5-26-gfd971fd



The following commit has been merged in the master branch:
commit fd971fda4b9daa283bc01f7a42947bddf541cb34
Author: Adam D. Barratt <adam@adam-barratt.org.uk>
Date:   Sat Feb 21 17:49:43 2009 +0000

    Handle symbols files containing alternative dependencies with multiple entries
    
    Correctly handle alternative dependency lines in symbols files which contain
    multiple entries.  (Closes: #516427)
    
    It's valid for a symbols file to contain an alternative dependency of the
    form
    
    | foo (>> 1.2), foo (<<1.3)
    
    which should be treated as two separate dependencies, of each which should
    be checked.

diff --git a/checks/shared-libs b/checks/shared-libs
index 17f34f6..2beeaff 100644
--- a/checks/shared-libs
+++ b/checks/shared-libs
@@ -380,7 +380,7 @@ if ($#shlibs == -1 and not %unversioned_shlibs) {
 
 	    $dep_templates = 0;
 	    $meta_info_seen = 0;
-	} elsif (m/^\|\s+(\S+)(?:\s(\S+(\s\S+)))?$/) {
+	} elsif (m/^\|\s+(\S+)(?:\s(\S+\s\S+))?(\s*,\s+\S+(\s\S+\s\S+)?)*$/) {
 	    # alternative dependency template
 
 	    if ($meta_info_seen or not defined $soname) {
@@ -389,6 +389,13 @@ if ($#shlibs == -1 and not %unversioned_shlibs) {
 
 	    ($dep_package, $dep) = ($1, $2 || '');
 	    push @symbols_depends, $dep_package . ' ' . $dep;
+	    if (defined $3) {
+		my $deps = $3;
+		while ($deps =~ m/\s*,\s+(\S+)(?:\s(\S+\s\S+))?/g) {
+		    ($dep_package, $dep) = ($1, $2 || '');
+		    push @symbols_depends, $dep_package . ' '. $dep;
+		}
+	    }
 	    $dep_templates++;
 	} elsif (m/^\*\s(\S+):\s(\S+)/) {
 	    # meta-information
diff --git a/debian/changelog b/debian/changelog
index f621f81..774a27d 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -29,6 +29,8 @@ lintian (2.2.6) UNRELEASED; urgency=low
   * checks/shared-libs:
     + [RA] Save a local reference to objdump information to reduce the
       number of method calls.  Patch from Raphael Geissert.
+    + [ADB] Correctly handle alternative dependency lines in symbols files
+      which contain multiple entries.  (Closes: #516427)
 
   * collection/strings{,.desc}:
     + [RA] Collect a list of ELF binaries in the package and the output of
diff --git a/testset/debug/debian/_symbols b/testset/debug/debian/_symbols
index a91ce05..e9ec69c 100644
--- a/testset/debug/debian/_symbols
+++ b/testset/debug/debian/_symbols
@@ -4,7 +4,7 @@
  and so should this
 
 libhello.so.0 libhello0 #MINVER#
-| libhello0c2 (>= 1.2)
+| libhello0c2 (>= 1.2), libhelloc0c2 (<< 1.3)
 | hello-dbg
  hello@Base 1.0
 * Build-Dep-Foo: bar
diff --git a/testset/tags.debug b/testset/tags.debug
index 1ca31de..674bbe4 100644
--- a/testset/tags.debug
+++ b/testset/tags.debug
@@ -39,4 +39,5 @@ W: libhello0: symbols-declares-dependency-on-other-package hello-dbg
 W: libhello0: symbols-declares-dependency-on-other-package libhello0c2 (>= 1.2)
 W: libhello0: symbols-declares-dependency-on-other-package libhello2 #MINVER#
 W: libhello0: symbols-declares-dependency-on-other-package libhello2 (>= 1:2.3)
+W: libhello0: symbols-declares-dependency-on-other-package libhelloc0c2 (<< 1.3)
 W: libhello0: unused-shlib-entry-in-symbols-control-file libhello 2

-- 
Debian package checker


Reply to: