Hi,

I'm having an issue getting dpkg-shlibdeps to resolve dependencies properly.
The output lists:

dpkg-shlibdeps: warning: unable to find dependency information for shared
library libmylib-0.8 (soname 0, path libmylib-0.8.so.0, dependency field
Depends)

But I can run dpkg -S libmylib-0.8 and it shows:

libmylib: /usr/lib/libmylib-0.8.so.0
libmylib: /usr/lib/libmylib-0.8.so.0.0.0

Same output for dpkg -S libmylib-0.8.so.0. The libraries also exist and the
application can run. Running ldd on the application spits out:

libmylib-0.8.so.0 => /usr/lib/libmylib-0.8.so.0 (0x00000000)

libmylib is build with autotools and passes -release 0.8 to libtool. It
generates:

libmylib-0.8.so.0
libmylib-0.8.so.0.0.0
libmylib.so
libmylib.la
libmylib.a

and the application links with "-lmylib". The libmylib.la file points to
libmylib-0.8.so.0. The .so.0 and .so.0.0.0 files are packaged into libmylib
debian package and the .so, .la are packaged into libmylib-dev package.

Everything builds and packages fine including the application, but since
dpkg-shlibdeps can't find the dependencies for libmylib-0.8, it doesn't list
libmylib package as a dependency in the .deb file.

I've installed libmylib_0.8.deb package manually with dpkg -i.

If possible, I'd like to keep the dependencies and such as generic as
possible. I have many versions of the package that all are not compatible
with each other so if you link against libmylib-0.8.so you need to have v0.8
to run and the same for 0.9 and so on. I don't want it to be backwards
compatible, so that I don't break any functionality in future releases. For
this, I've used the -release tag for libtool.

I'd also like, if possible, to have the application have no hardcoded
versions. Currently, it links against libmylib, which pulls in whatever one
corresponds to the last version of libmylib-dev package installed.

Can you provide any insight on how I can get dpkg-shlibdeps to pick this up
automatically without having to hardcode the libmylib (= 0.8) dependency and
having to change that every time a new library is compiled against?

Thanks,
Clancy

Reply via email to