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