[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Issue with dpkg-shlibdepds



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 to: