[Expat-discuss] Libtool versioning info bumped incorrectly in 2.0.0 ?

Karl Waclawek karl at waclawek.net
Wed Jun 14 01:58:20 CEST 2006


Max Bowsher wrote:
> I think that the libtool versioning info has been incorrectly bumped for
>   2.0.0.
>
>
> All expat 1.95.x releases have shipped with LIBCURRENT==LIBAGE, implying
> that whilst APIs may have been added, anything linked against old 1.95.x
> releases ought to be able to continue to work if the expat shared
> library is replaced with a newer release.
>
>
> The 2.0.0 tarball ships with LIBCURRENT=6 and LIBAGE=5. This implies
> that binary compatibility with expat 1.95.1 and earlier has been
> explicitly broken, whilst binary compatibility with expat 1.95.2 and
> later is retained. This seems an unlikely situation - more likely,
> someone forgot to increment LIBAGE.
>
>
> Note that this has caused libtool to now build Linux shared libraries
> with a SONAME of libexpat.so.1, not libexpat.so.0, meaning that any
> application linked against a shared libexpat 1.95.x will NEED A REBUILD
> to work against a shared libexpat 2.0.0.
>
>
> What is the true situation?
>
>   
I tried to follow these rules: 
http://www.gnu.org/software/libtool/manual.html#Updating-version-info .
Specifically, points 4 to 6 apply here:

  4. If any interfaces have been added, removed, or changed since the 
last update, increment current, and set revision to 0.
  5. If any interfaces have been added since the last public release, 
then increment age.
  6.  If any interfaces have been removed since the last public release, 
then set age to 0.

Point 4) applies because XML_GetCurrentLineNumber() and 
XML_GetCurrentColumnNumber() now return
unsigned integers. No interfaces have been added or removed, so 5) and 
6) don't lead to any action.

Maybe this was wrong, but currently no Unix experts are active on Expat, 
so I had to try my best.

Karl


More information about the Expat-discuss mailing list