소스 검색

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 년 전
부모
커밋
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;