decreasing SONAME in libxfce4mcs?

Andres Salomon dilinger at voxel.net
Fri Jun 18 11:29:16 CEST 2004


In CVS head (4.1 branch), libxfce4mcs's SONAME is 0.  Previously, with the
4.0.5 release, the SONAME was 1.  It would appear that inside
configure.ac,  LIBXFCE4MCS_VERINFO is being treated as a sane version
number.  However, since libtool uses that number (it's passed to
./libtool -version-info) for autogenerating an SONAME, one must live with
libtool insanity. Libtool ends up subtracting the first and last numbers;
so, with the current VERINFO of 2:0:2, 2-2=0 (and 0 is the SONAME that
ends up being used).  With the 4.0.5 release, the VERINFO was 2:0:1;
2-1=1, so the SONAME ended up being 1.

Libtool states that the argument passed to -version-info is
CURRENT:REVISION:AGE.

 Here's some libtool docs, explaining the insanity
they follow:


  If either REVISION or AGE are omitted, they default to 0.  Also note
 that AGE must be less than or equal to the CURRENT interface number.
 
    Here are a set of rules to help you update your library version
 information:
 
   1. Start with version information of `0:0:0' for each libtool library.
 
   2. Update the version information only immediately before a public
      release of your software.  More frequent updates are unnecessary,
      and only guarantee that the current interface number gets larger
      faster.
 
   3. If the library source code has changed at all since the last
      update, then increment REVISION (`C:R:A' becomes `C:r+1:A').
 
   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.
 
    *_Never_* try to set the interface numbers so that they correspond
 to the release number of your package.  This is an abuse that only
 fosters misunderstanding of the purpose of library versions.  Instead,
 use the `-release' flag ( Release numbers), but be warned that
 every release of your package will not be binary compatible with any
 other release.




More information about the Xfce4-dev mailing list