Bug#321564: lintian: shouldn't warn package-name-doesnt-match-sonames on non-library packages
tags 321564 patch
thanks
I just ran into this myself with a package containing Apache modules and
spent some time fixing it. Here's a patch that only warns for SONAMEs of
libraries found in /lib, /usr/lib, or /usr/X11R6/lib. This may still miss
some interesting cases, but I think it will catch 95% of the useful cases
that the test should catch with far fewer false positives.
--- lintian-1.23.11/checks/binaries.orig 2005-07-23 16:09:01.000000000 -0700
+++ lintian-1.23.11/checks/binaries 2005-08-16 23:02:16.000000000 -0700
@@ -113,7 +113,20 @@
}
close(IN);
-my @sonames = keys %SONAME;
+# For the package naming check, filter out SONAMEs where all the files are
+# at paths other than /lib, /usr/lib, or /usr/X11R6/lib. This avoids false
+# positives with plugins like Apache modules, which may have their own
+# SONAMEs but which don't matter for the purposes of this check.
+sub lib_soname_path {
+ my (@paths) = @_;
+ foreach my $path (@paths) {
+ return 1 if $path =~ m%^(\.?/)?lib/[^/]+$%;
+ return 1 if $path =~ m%^(\.?/)?usr/lib/[^/]+$%;
+ return 1 if $path =~ m%^(\.?/)?usr/X11R6/lib/[^/]+$%;
+ }
+ return 0;
+}
+my @sonames = grep { lib_soname_path (@{$SONAME{$_}}) } keys %SONAME;
tag "several-sonames-in-same-package", "@sonames" if @sonames > 1;
my $match_found = 0;
--
Russ Allbery (rra@stanford.edu) <http://www.eyrie.org/~eagle/>
Reply to: