GNOME Bugzilla – Bug 760574
ABI incompatible lib - without soname bump
Last modified: 2016-02-02 13:58:03 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.
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.
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 :)
libxml++ 3.0.0 has been released with bumped so name.