On Wed, Feb 19, 2014 at 8:09 PM, Adam Williamson <awilliam@redhat.com> wrote:
On Wed, 2014-02-19 at 19:27 +0100, Ralf Corsepius wrote:
> On 02/19/2014 01:25 PM, Honza Horak wrote:
> > On 01/15/2014 04:16 PM, Jan Staněk wrote:
>
> > Looking around to some other projects (e.g. v8) people usually tend to
> > use version of the package to be soname version of the library. However,
> > I see some questions raised by that approach:
>
> A pretty detailed discussion on this problem can be found in
> "info libtool"
>
> In short: Using a package's version number as SONAME is a non-helpful
> abuse. What counts is "ABI-versions" and "ABI-version compatiblity".

If upstream isn't versioning the shared library correctly, it's
relatively unlikely that you can rely on them maintaining ABI
compatibility between releases. It's also usually beyond the
capabilities of a downstream packager to comprehensively check ABI
compatibility between releases. Given both these things, it actually can
make sense in several respects to use the package version.

If upstream actually is aware of the concept of ABI stability and has
some kind of sane system for maintaining it, it really ought to be
relatively easy to get them to version the so correctly.

It's not perfect (but it's always getting better), abi-compliance-checker is a great tool. I use it for openCOLLADA which doesn't maintain a soversion and has no plans to. I arbitrarily set it to 0.1 and I check the ABI compatibility when I do new builds. If an incompatibility is found I bump the soversion. 

Richard