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

Re: Are soname bumps required when library upgrades break compatability?



On Mon, 10 Sep 2007 07:59:50 -0700
Brandon <winterknight@nerdshack.com> wrote:

> Might seem like a silly question to most people. But is it required to
> bump the soname of a library when it breaks ABI compatability with an
> older version? 

Yes.

You (in association with upstream) also need to decide whether to
support multiple SONAME's at the same time - i.e. whether to have
libfoo3-dev and libfoo2-dev (double maintenance) or just libfoo-dev
which will force a transition due to FTBFS RC bugs in Debian and similar
problems in other distributions. (Such transitions can be painful and
require lots of effort from all parties.) i.e. do you want small
amounts of ongoing pain (libfoo2-dev) or large amounts of intermittent
pain (libfoo-dev).

Once libfoo2-dev is replaced by libfoo3-dev, libfoo2 will hang around
for a very long time - take a look at libgtk1 - and this also needs to
be taken into account.

> I always thought that is was, but I can't find anything
> in debian-policy that says that it is required. In fact, it isn't even
> suggested.

That would be because SONAME's are primarily an upstream issue. If
upstream do not understand library versioning, it is pointless trying
to enforce a SONAME in Debian (and therefore pointless packaging the
library) as you'll end up with libfoo36 - incrementing the SONAME at
every minor release - by the time you just get to v1.0.4 or similar.
There should never be a direct relationship between the version string
and the SONAME. SONAME's should last a lot longer than any version
element.

http://www.gnu.org/software/libtool/manual.html#Updating-version-info

http://www.netfort.gr.jp/~dancer/column/libpkg-guide/libpkg-guide.html

Equally, trying to change a SONAME within Debian when upstream DO
understand libtool versioning becomes a long and frustrating pattern of
broken updates and multiple re-patching of the sources.

Debian Policy concentrates on ensuring that the SONAME created by
upstream is correctly handled in Debian.

Debian Policy does not have to mandate every aspect of every upstream
decision - there are some things (like SONAME's) that simply need to be
done properly before the code even gets into Debian (or any other
distribution).

-- 

Neil Williams
=============
http://www.data-freedom.org/
http://www.nosoftwarepatents.com/
http://www.linux.codehelp.co.uk/

Attachment: pgpfh6iKC9dFR.pgp
Description: PGP signature


Reply to: