]> err.no Git - dpkg/commitdiff
dpkg-shlibdeps: don't try to add dependency information for private libraries
authorRaphael Hertzog <hertzog@debian.org>
Wed, 26 Sep 2007 22:06:21 +0000 (00:06 +0200)
committerRaphael Hertzog <hertzog@debian.org>
Wed, 26 Sep 2007 22:06:21 +0000 (00:06 +0200)
Private libraries are defined as libraries without SONAME. They are not listed
in shlibs files and thus there's no point in trying to add a dependency
for them. It also reduce the number of false-positive failures/warnings
generated by dpkg-shlibdeps.

scripts/dpkg-shlibdeps.pl

index a63781135f10119673fe6c3db6e5e0d0bb03ac8f..15df7d7fe9aba81d9bdec376a1b3b2f64730b5c3 100755 (executable)
@@ -137,9 +137,11 @@ foreach my $file (keys %exec) {
                }
            } else {
                # No symbol file found, fall back to standard shlibs
-               $dumplibs_wo_symfile->parse($lib);
+               my $id = $dumplibs_wo_symfile->parse($lib);
                push @soname_wo_symfile, $soname;
-               if (not add_shlibs_dep($soname, $pkg)) {
+               my $libobj = $dumplibs_wo_symfile->get_object($id);
+               # Only try to generate a dependency for libraries with a SONAME
+               if ($libobj->is_public_library() and not add_shlibs_dep($soname, $pkg)) {
                    failure(sprintf(
                        _g("No dependency information found for %s (used by %s)."),
                        $soname, $file)) unless $ignore_missing_info;