On Wed, May 17, 2003 at 11:52:47 +0200, Andreas Metzler wrote: > >>> dpkg-shlibdeps: warning: could not find any packages for > >>> /usr/local/lib/libswish-e.so.2 (libswish-e.so.2) > >>> > >>> dpkg-shlibdeps: warning: unable to find dependency information for shared > >>> library libswish-e (soname 2, path /usr/local/lib/libswish-e.so.2, > >>> dependency field Depends) > >> [...] > > >> You are probably looking for something like > >> dh_shlibdeps -ldebian/libswish-e/usr/lib
> > If that's the case then I would need to say that libswish-e is not a > > dependency, or a dependency that is me by the swish-e package > > itself. Is that possible? > > Yes. dh_shlibdeps is smart enough to recognize this, but you have to > use the correct -l option. Well, I'm not so sure that's related to my problem. I just spent a few hours looking at some scary Perl, so I might have missed something. But, my situation is that this package builds both the library *and* a binary that links to that library. That presents a few problems: First, if bulding the package with debian/rules binary AND the package has not yet been installed, then the library is also not installed. In that case ldd reports: $ ldd debian/swish-e/usr/bin/swish-e libxml2.so.2 => /usr/lib/libxml2.so.2 (0x4001b000) libswish-e.so.2 => not found ... And thus you would see: $ dh_shlibdeps dpkg-shlibdeps: warning: could not find path for libswish-e.so.2 Which is a different from the message I posted, but can be solved by the -l option you recommended to set LD_LIBRARY_PATH. But, that's still doesn't help because then ldd reports the path of the current location: $ LD_LIBRARY_PATH=debian/swish-e/usr/lib ldd debian/swish-e/usr/bin/swish-e libxml2.so.2 => /usr/lib/libxml2.so.2 (0x4001b000) libswish-e.so.2 => debian/swish-e/usr/lib/libswish-e.so.2 (0x400fc000) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ... That's no good because dpkg-shlibsdeps uses dpkg --search to lookup package names based on file names found in the ldd output. That results in: $ dh_shlibdeps -ldebian/swish-e/usr/lib dpkg-shlibdeps: warning: could not find any packages for /home/moseley/b/x/swish-e-2.3.6/debian/swish-e/usr/lib/libswish-e.so.2 (libswish-e.so.2) as seen here: $ dpkg --search /home/moseley/b/x/swish-e-2.3.6/debian/swish-e/usr/lib/libswish-e.so.2 dpkg: /home/moseley/b/x/swish-e-2.3.6/debian/swish-e/usr/lib/libswish-e.so.2 not found. what it needs to do is: $ dpkg --search /usr/lib/libswish-e.so.2 swish-e: /usr/lib/libswish-e.so.2 But, again, libswish-e.so.2 hasn't been installed yet so dpkg --search isn't going to find it anyway. So I don't understand how -l can ever work. dpkg-shlibdeps assumes that any libraries listed with ldd (or objdump) are already installed, and that's not the case here. The swish-e (upstream) package builds a library and then builds a binary linked against that libraray. Is it not possible to install a library and binary at the same time? So back to the original problem, which was: dpkg-shlibdeps: warning: unable to find dependency information for shared library libswish-e (soname 2, path , dependency field Depends) And the reasons are: 1) the package swish-e has not been installed yet so no library dependency info exists 2) there is not libswish-e package in Debian, so there's no point in making the swish-e package depend on it. Anyway, I guess all I'm looking for is a way to supress that message from dpkg-shlibdeps. I did not see any way to do that by looking through the dpkg-shlibdeps Perl script. I thought I could just hard-code the dependencies in debian/swish-e.substvars and remove the call to dh_shlibdeps, but something removes swish-e.substvars. So it looks like the solution is to hard-code the Depends: into the control file. Will that break anything? -- Bill Moseley [EMAIL PROTECTED]