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

Re: Question about libcdda_paranoia



Hi!

Am 2003-10-08 16:58 +0200 schrieb Henning Moll:
> But now i am in a bit of trouble: i packaged a woody backport of k3b. 
> This programm tries to dlopen (=at runtime) 'libcdda_paranoia.so'. But 
> that is only possible if package 'libcdparanoia0-dev' is installed. 
> This would mean a dependency to a development package. 

I would discourage that (see below).

> Is this a bug in k3b? Should k3b try to dlopen 'libcdda_paranoia.so.0' 
> instead? 

Yes! The suffix '0' denotes the library's SONAME. As long as it does
not change, different versions of the lib must be binary compatible.
OTOH, if it _does_ change, your program linking against it is likely
to fail.

This allows having several (major) library versions installed in
parallel, but enforces that only one version of a development package
can be installed so that new packages are urged to use the most recent
version.

Conclusion: dlopen ...so.0 and directly depend on the non-dev-package.

> Is there a standard for so-naming (which is respected by all/ most
> Gnu/Linux distributions)?

I don't know exactly, sorry. I guess, yes.

> Where can i learn more about the naming of share object files?

When I built my first library package, I consulted the 'Debian Library
Packaging Guide' [1]. Not complete yet, but already very helpful.

But actually, it isn't that difficult: packages containing shared
libraries provide them with their soname as suffix, -dev packages add
the corresponding symlink without a soname.

BTW: Corrections appreciated, I'm still quite new to Debian.

Have a nice day,

Martin

[1] http://www.netfort.gr.jp/~dancer/column/libpkg-guide/

-- 
Martin Pitt
home:  www.piware.de
eMail: martin@piware.de

Attachment: signature.asc
Description: Digital signature


Reply to: