The following commit has been merged in the master branch:
commit 5ee2d60084f43f1b51907e77dd9f07dc4d810618
Author: Raphael Hertzog <[email protected]>
Date: Sun Mar 8 19:13:49 2009 +0100
dpkg-shlibdeps: make shlibs.local override symbols files too
As discussed in http://lists.debian.org/debian-devel/2009/03/msg00428.html
dropping the shlibs.local package override for symbols files was not
necessarily a good idea. So this commit makes dpkg-shlibdeps skip
the symbols files for a library if it detects that the relevant dependency
is available in the shlibs.local file.
diff --git a/man/dpkg-shlibdeps.1 b/man/dpkg-shlibdeps.1
index 7a37db6..06fbb9f 100644
--- a/man/dpkg-shlibdeps.1
+++ b/man/dpkg-shlibdeps.1
@@ -35,7 +35,8 @@ Then, for each library, it looks up either the
.I symbols
file, or the
.I shlibs
-file (if the former doesn't exist). Both files are supposed to be provided
+file (if the former doesn't exist or if debian/shlibs.local contains
+the relevant dependency). Both files are supposed to be provided
by the library package and should thus be available as
/var/lib/dpkg/info/\fIpackage\fR.\fIsymbols\fR
or /var/lib/dpkg/info/\fIpackage\fR.\fIshlibs\fR. The package name is
diff --git a/scripts/dpkg-shlibdeps.pl b/scripts/dpkg-shlibdeps.pl
index 8f4836d..1356451 100755
--- a/scripts/dpkg-shlibdeps.pl
+++ b/scripts/dpkg-shlibdeps.pl
@@ -199,8 +199,15 @@ foreach my $file (keys %exec) {
# Load symbols/shlibs files from packages providing libraries
foreach my $pkg (@{$file2pkg->{$lib}}) {
my $symfile_path;
- if ($packagetype eq "deb") {
+ my $haslocaldep = 0;
+ if (-e $shlibslocal and
+ defined(extract_from_shlibs($soname, $shlibslocal)))
+ {
+ $haslocaldep = 1;
+ }
+ if ($packagetype eq "deb" and not $haslocaldep) {
# Use fine-grained dependencies only on real deb
+ # and only if the dependency is not provided by shlibs.local
$symfile_path = find_symbols_file($pkg, $soname, $lib);
}
if (defined($symfile_path)) {
--
dpkg's main repository
--
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]