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

Re: Library interface version question



On Mon, Feb 13, 2006 at 11:57:24AM +0200, Shachar Shemesh wrote:

> I am maintaining a package (libargtable2, not that it matters). This
> library had a recent backwards compatible interface version upgrade. The
> previous version was 0, and the new version is 1, backwards compatible
> to 0. It got the version number of "1:1:1" in libtool terms, which
> translated to "libargtable2.so.0.1.1" in file name.

> There are a couple of problems.

> First, if I understand correctly, programs linked against this new
> library (which should still be called "libargtable2-0") should have a
> specific ">=" version in their dependencies. This does not currently
> happen. I realize I must be doing something wrong in the debianization
> of the library, but I'm not sure what it is.

Please read what policy has to say about the shlibs mechanism.

> The second is that, again, if I understand correctly, a link should have
> been created from libargtable2.so.0.1 to libargtable2.so.0.1.1. This did
> not happen. Is this wrong?

No.  There are only three files(/symlinks) of any relevance for a library:

- the '.so' file used for linking (libargtable2.so)
- the file that matches the soname embedded in the library, and in binaries
  which depend on it (libargtable2.so.0)
- the real file pointed to by the previous, if the soname is a symlink

*If* libargtable2.so.0 points to libargtable2.so.0.1, then
libargtable2.so.0.1 must also exist and point to libargtable2.so.0.1.1.  If
libargtable2.so.0 points directly to libargtable2.so.0.1.1, then
libargtable2.so.0.1 is not one of the above three files, and serves no
purpose.

-- 
Steve Langasek                   Give me a lever long enough and a Free OS
Debian Developer                   to set it on, and I can move the world.
vorlon@debian.org                                   http://www.debian.org/

Attachment: signature.asc
Description: Digital signature


Reply to: