Browse Source

dpkg-shlibdeps: don't try to add dependency information for private libraries

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.
Raphael Hertzog 19 years ago
parent
commit
097a64746d
1 changed files with 4 additions and 2 deletions
  1. 4 2
      scripts/dpkg-shlibdeps.pl

+ 4 - 2
scripts/dpkg-shlibdeps.pl

@@ -137,9 +137,11 @@ foreach my $file (keys %exec) {
 		}
 		}
 	    } else {
 	    } else {
 		# No symbol file found, fall back to standard shlibs
 		# 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;
 		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(
 		    failure(sprintf(
 			_g("No dependency information found for %s (used by %s)."),
 			_g("No dependency information found for %s (used by %s)."),
 			$soname, $file)) unless $ignore_missing_info;
 			$soname, $file)) unless $ignore_missing_info;