The following commit has been merged in the master branch:
commit 60b5aed2f3231e6cf0885b26cacca6701a654250
Author: Adam D. Barratt <[email protected]>
Date:   Wed Feb 25 21:59:57 2009 +0000

    Fix a logic error checking the position of meta-information in symbols 
files.
    
    When parsing symbols files, correctly ensure that meta-information occurs
    between the end of the dependency template(s) and the start of the symbol
    list.  The code that was intended to check this resulted in a false positive
    syntax error being generated if a file with alternative dependency templates
    used meta-information.

diff --git a/checks/shared-libs b/checks/shared-libs
index 2beeaff..288c4f2 100644
--- a/checks/shared-libs
+++ b/checks/shared-libs
@@ -359,6 +359,7 @@ if ($#shlibs == -1 and not %unversioned_shlibs) {
     my @symbols_depends;
     my $dep_templates = 0;
     my $meta_info_seen = 0;
+    my $symbol_count = 0;
 
     while (<IN>) {
        chomp;
@@ -380,6 +381,7 @@ if ($#shlibs == -1 and not %unversioned_shlibs) {
 
            $dep_templates = 0;
            $meta_info_seen = 0;
+           $symbol_count = 0;
        } elsif (m/^\|\s+(\S+)(?:\s(\S+\s\S+))?(\s*,\s+\S+(\s\S+\s\S+)?)*$/) {
            # alternative dependency template
 
@@ -405,7 +407,7 @@ if ($#shlibs == -1 and not %unversioned_shlibs) {
            tag "unknown-meta-field-in-symbols-file", "$1, line $."
                unless $1 eq 'Build-Depends-Package';
            tag "syntax-error-in-symbols-file", $.
-               if $dep_templates > 0;
+               unless defined $soname and $symbol_count == 0;
 
            $meta_info_seen = 1;
        } elsif (m/^\s+(\S+)\s(\S+)(?:\s(\S+(\s\S+)?))?$/) {
@@ -414,6 +416,7 @@ if ($#shlibs == -1 and not %unversioned_shlibs) {
            tag "syntax-error-in-symbols-file", $.
                unless defined $soname;
 
+           $symbol_count++;
            my ($sym, $v, $dep_order) = ($1, $2, $3);
            $dep_order ||= '';
 
diff --git a/debian/changelog b/debian/changelog
index 2f7fa3d..5f1d949 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -11,6 +11,12 @@ lintian (2.2.7) UNRELEASED; urgency=low
   * checks/manpages:
     + [CW] Run man with '-E UTF-8' to avoid producing bogus warnings on
       localised manual pages due to attempting to recode through ASCII.
+  * checks/shared-libs:
+    + [ADB] When parsing symbols files, correctly ensure that meta-information
+      occurs between the end of the dependency template(s) and the start of
+      the symbol list.  The cocde that was intended to check this resulted
+      in a false positive syntax error being generated if a file with
+      alternative dependency templates used meta-information.
 
   * debian/control:
     + [CW] Depend on man-db (>= 2.4.0) for '-E UTF-8'.

-- 
Debian package checker


-- 
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]

Reply via email to