[Flac-dev] liboggflac1 soname

Henrique de Moraes Holschuh
Fri, 11 Feb 2005 06:21:39 -0000

On Mon, 10 Jan 2005, Ralph Giles wrote:
> As such it's an incompatible change, for which you should also
> zero the 'age' field. So 1.1.1-beta1 should have been 2:0:0,
> not 2:0:1.
[...]
> Yes, I agree. The numbering is all about coexisting installs of the
> various versions.

Ok.  I need to know what to do about this... is 1.1.2 with fixed sonames
just around the corner?  What should we do to fix sonames in Debian?

I really don't want to upload a new timidity linked to liboggflac with
broken sonames, and I really, really don't want to see libraries which will
cause soname headaches make it to the next debian stable (speaking as an
user of said libraries).

Do we have a consensus that:

  1. the C++ libs should increase sonames in SYNC with the C ones because
     some of the ABI is leaked through them.  This means that at least
     libOggFLAC++ has a wrong soname in 1.1.1, and that it would be a good
     idea to do an initial sync of all sonames with the non-C++ libs to fix
     this for good.  After the initial sync, increasing the C lib sonames
     means the C++ sonames have to be increased as well (and zeroing the C
     lib AGE means the C++ ones need to be zeroed as well).  The C++ libs
     can increase soname/zero AGE without increasing the C lib ones in the
     case of C++ specific changes, of course.

  2. the AGE of liboggflack should be zeroed in 1.1.1, and thus if 1.1.2
     shows futher ABI changes, it will increase the soname (and keep AGE 0).

That would mean sonames like this:

  1.1.1 (released with broken sonames):
     libFLAC       6:1:0
     libFLAC++     4:1:0
     libOggFLAC    2:1:1
     LibOggFLAC++  1:1:1

  1.1.1a (fixed sonames):
     libFLAC       6:1:0
     libFLAC++     6:1:0
     libOggFLAC    2:1:0
     LibOggFLAC++  2:1:0

  1.1.2 (assuming *NO* ABI changes from 1.1.1):
     libFLAC       6:1:0
     libFLAC++     6:1:0
     libOggFLAC    2:1:0
     LibOggFLAC++  2:1:0

  1.1.2 (assuming there ARE forward-compatible ABI changes in the C libs,
     and optional also forward-compatible ABI changes to the C++ libs):
     libFLAC       7:1:1
     libFLAC++     7:1:1
     libOggFLAC    3:1:1
     LibOggFLAC++  3:1:1

  1.1.2 (assuming there ARE backward-incompatible ABI changes in the C
     libs):
     libFLAC       7:1:0
     libFLAC++     7:1:0
     libOggFLAC    3:1:0
     LibOggFLAC++  3:1:0

Can we agree on the above soname plan, so that we can start fixing the
Debian packages (other distros might want to follow this fix, as well...) ?

--
  "One disk to rule them all, One disk to find them. One disk to bring
  them all and in the darkness grind them. In the Land of Redmond
  where the shadows lie." -- The Silicon Valley Tarot
  Henrique Holschuh