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

Reply via email to