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

Re: Question about shared libraries



* Steve Langasek (vorlon@netexpress.net) wrote:
> Hi Shane,
> 
> On Wed, 21 Mar 2001, Shane Wegner wrote:
> 
> > I have packaged shared libraries in the past but am looking
> > for some help with this particular one.  I am packaging
> > version 1.0.0 of dotconf and rather than naming it
> > libdotconf.so.1 as was done for 0.x (libdotconf.so.0) it's
> > named libdotconf-1.0.so.0.  Now, I was under the impression
> > that one named a library libfoo.so.x and incremented x
> > whenever there was an API change making it binary
> > incompatable with the previous version.  How would I
> > package something where the major version is actually
> > before the .so extention?  How should the package name
> > change as the API changes?  Can I just modify the source to
> > call it libdotconf.so.1 and call my package libdotconf1 or
> > is that not ideal?
> 
> This is unfortunately not a unique situation.  Other libraries are maintained
> upstream by people who don't understand proper library versioning either (and
> by 'proper', I mean "the tried and true method that's been used on Unix for
> years and is the known standard").  Case in point is Imlib, which recently
> made a 2.0 release... and which ships libraries with the soname
> 'libImlib2.so.0'.

Actually it's not version 2.0 of Imlib... its a completely new library
called Imlib 2... so the versioning is correct...

> 
> The problem with trying to correct the library names in the package is that
> your packages aren't binary-compatible with third-party software precompiled
> for this version of the library; libfoo.so.1 will not satisfy the dependencies
> on libfoo-1.0.so.0, no matter how you push on the square peg.  Likewise it's
> not a good solution to call the package 'libfoo1', because the package name
> should indicate the contents. libfoo1 -> libfoo.so.1.  If you call the package
> libfoo1 and it contains libfoo1.so.0, what happens if the next release is
> libfoo1.so.1?  The least-bad option that seems to hold forth is to name the
> package 'libfoo10' (perhaps with a delimiter between the 1 and the 0?)... and
> then petition the upstream to un-break their library names...
> 
> HTH,
> 
> Steve Langasek
> postmodern programmer
> 
> 
> --  
> To UNSUBSCRIBE, email to debian-mentors-request@lists.debian.org
> with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
> 

Eric Dorland
dorland@lords.com
ICQ: #61138586
1024D/16D970C6 097C 4861 9934 27A0 8E1C  2B0A 61E9 8ECF 16D9 70C6

Attachment: pgpBlJan_83Xr.pgp
Description: PGP signature


Reply to: