On Thu, 22 Nov 2007, Aurelien Jarno wrote:
> Package: dpkg-dev
> Version: 1.14.9
> Severity: serious
>
> >From my build log:
>
> dh_compress -pkzenexplorer -X .dcl -X .docbook -X -license -X .tag -X .sty -X
> .el
> dh_fixperms -pkzenexplorer
> dh_makeshlibs -pkzenexplorer
> dh_installdeb -pkzenexplorer
> dh_perl -pkzenexplorer
> dh_shlibdeps -pkzenexplorer
> dpkg-shlibdeps: failure: No dependency information found for libusb-0.1.so.4
> (used by debian/kzenexplorer/usr/bin/kzenexplorer).
> dh_shlibdeps: command returned error code 65280
> make: *** [binary-predeb-IMPL/kzenexplorer] Error 1
>
> But libusb-0.1.so.4 has a shlib file:
>
> [volta:~]$ cat /var/lib/dpkg/info/libusb-0.1-4.shlibs
> libusb-0.1 4 libusb-0.1-4 (>= 2:0.1.12)
> udeb: libusb-0.1 4 libusb-0.1-udeb (>= 2:0.1.12)
I can't reproduce this on i386 while building kzenexplorer_0.6-1. I fear
that the lookup of the library on amd64 provides a name which is not the
real name but somehow a symlink lib like /usr/lib64/libusb-0.1-4 since
we're now respecting ld.so.conf properly with includes.
Can you apply the attached patch to dpkg-shlibdeps and re-run the build after
adding "-v" to dpkg-shlibdeps (use "dh_slibdeps -- -v" for this), that way
I'll have all the required information.
Please also paste me /etc/ld.so.conf and /etc/ld.so.conf.d/*
Thanks,
--
Raphaël Hertzog
Premier livre français sur Debian GNU/Linux :
http://www.ouaza.com/livre/admin-debian/
diff --git a/scripts/dpkg-shlibdeps.pl b/scripts/dpkg-shlibdeps.pl
index 8902b94..800460d 100755
--- a/scripts/dpkg-shlibdeps.pl
+++ b/scripts/dpkg-shlibdeps.pl
@@ -100,7 +100,8 @@ foreach my $file (keys %exec) {
failure(_g("couldn't find library %s (note: only packages with " .
"'shlibs' files are looked into)."), $soname)
unless defined($lib);
- $libfiles{$lib} = $soname if defined($lib);
+ $libfiles{$lib} = $soname;
+ print "Library $soname found in $lib\n" if $debug;
}
my $file2pkg = find_packages(keys %libfiles);
my $symfile = Dpkg::Shlibs::SymbolFile->new();
@@ -114,6 +115,7 @@ foreach my $file (keys %exec) {
# Empty package name will lead to consideration of symbols
# file from the package being built only
$file2pkg->{$lib} = [""];
+ print "No associated package found for $lib\n" if $debug;
}
# Load symbols/shlibs files from packages providing libraries
@@ -327,6 +329,7 @@ Dependency fields recognised are:
sub add_shlibs_dep {
my ($soname, $pkg) = @_;
+ print "Looking up shlibs dependency of $soname provided by '$pkg'\n" if
$debug;
foreach my $file ($shlibslocal, $shlibsoverride, @pkg_shlibs,
"$admindir/info/$pkg.shlibs",
$shlibsdefault)
@@ -334,12 +337,14 @@ sub add_shlibs_dep {
next if not -e $file;
my $dep = extract_from_shlibs($soname, $file);
if (defined($dep)) {
+ print "Found $dep in $file\n" if $debug;
foreach (split(/,\s*/, $dep)) {
$dependencies{$cur_field}{$_} = 1;
}
return 1;
}
}
+ print "Found nothing\n" if $debug;
return 0;
}