Просмотр исходного кода

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
Родитель
Сommit
097a64746d
1 измененных файлов с 4 добавлено и 2 удалено
  1. 4 2
      scripts/dpkg-shlibdeps.pl

+ 4 - 2
scripts/dpkg-shlibdeps.pl

@@ -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;