After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 760574 - ABI incompatible lib - without soname bump
ABI incompatible lib - without soname bump
Status: RESOLVED FIXED
Product: libxml++
Classification: Bindings
Component: General
2.91.x
Other Linux
: Normal critical
: ---
Assigned To: Christophe de Vienne
Christophe de Vienne
Depends on:
Blocks:
 
 
Reported: 2016-01-13 11:16 UTC by Dominique Leuenberger
Modified: 2016-02-02 13:58 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Dominique Leuenberger 2016-01-13 11:16:55 UTC
The release notes of libxml 2.91.3 explicitly mention that the ABI/API is incompatible.

I have no issue with this per se.

But please, NEVER EVER Release something like this without bumping the soname.

That's exactly what for the library is called libxml++-3.0.so.0 => the .0 at the end indicates the ABI version.. if it's incompatible, it has to be changed to 1 - later, if again incompatible, to .2

This is so that apps that are linked against one ABI version do not just start to crash when not being rebuilt against the new library... they will either load the old lib that might still exist on the system (because they link to the .0) or they fail with a missing library, hopefully already caught by a proper package manager.
Comment 1 Kjell Ahlstedt 2016-01-15 15:38:26 UTC
Sorry about this. I thought it was acceptable as long as all libxml++-3.0.so.0
files are generated from unstable versions of libxml++. (The minor package
version number is odd.)

Several C++ library packages don't update so names the way it's described in
http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html
https://developer.gnome.org/programming-guidelines/stable/versioning.html.en

The same method (or perhaps you would say lack of method) that I've used in the
transition from libxml+-2.6 to libxml++-3.0, was used in the transition from
gtkmm-2.4 to gtkmm-3.0: Release a series of unusually unstable 2.9x.y releases
without bumping the so name, then release the stable gtkmm 3.0.0.

As a result of this bug report, I'll at least bump the so name when the stable
libxml++ 3.0.0 is released. I'll keep the bug open until then, to remind me.
Comment 2 Dominique Leuenberger 2016-01-15 15:43:38 UTC
The problem with the approach of not bumping sonum 'while being unstable' is that you produce a lot of crashes due to revers dependencies not being rebuilt - and thus making your own life much more complicated.

the main issue is not libxml++.so.0 but all the things linking to it - those are the ones crashing unless rebuilt to get the new ABI...

openSUSE for now did not integrated the .3 into the build systems, especially for this reason - we will gladly get the stable in once it hits the mirrors :)
Comment 3 Kjell Ahlstedt 2016-02-02 13:58:03 UTC
libxml++ 3.0.0 has been released with bumped so name.