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

Re: Question about shared libraries



On Fri, 23 Mar 2001, Eric Dorland wrote:

> > - Imlib2 is intended to supersede Imlib
> > - Imlib2 and Imlib were written by the same author
> > - There will never be a successor to libImlib.so.1 which uses libImlib.so.2
> > as its soname

> I agree with your points but why couldn't they have an libImlib.so.2?
> besides the fact that it would be horribly confusing...

It's not that one couldn't have a libImlib.so.2, it's that /they/ ('they'
being Raster) are never going to do it.  Imlib2 was written with the
expectation that Imlib1 was end-of-life.

> > So what difference does it make if the library is called libImlib2.so.1 versus
> > libImlib.so.2?  None really, except that one unnecessarily includes a number
> > in the library /name/, and the other increments the library /version/.  Which
> > makes one much less cumbersome than the other.

> My understanding was that you incremented a major version when you made
> binary incompatible changes to a library (remove a symbol, etc)... Imlib
> 2 is a completely new library, which doesn't really share a code
> ancestery with Imlib... it was a complete rewrite. I agree it is
> somewhat unfortunately named, but i think the right thing was done with
> respect to library versioning.

I would say 'a complete library rewrite' falls under the category of
'binary-incompatible change to the library'.  And I'm sure I can find plenty
of examples of libraries that underwent complete rewrites and substantial API
changes but didn't find it necessary to add a version to the library name.

Steve Langasek
postmodern programmer



Reply to: