On Saturday 25 May 2013 14:38:50 Sam Roberts wrote:
> On Sat, May 25, 2013 at 5:59 AM, Gilles Espinasse <g.esp@...> wrote:
> > Why did you jump from 1 to 9 in major number?
> > -usr/lib/libnet.so.1
> > -usr/lib/libnet.so.1.7.0
> > +usr/lib/libnet.so.9
> > +usr/lib/libnet.so.9.0.0
> > Would not MAJOR=2 be enought?
> You can see the libnet release number, and its mapping to so version info.
> The last was 8:0:7.
> Is this not correct? When I asked the debian packagers, they said I
> was doing it right, but that was a while ago.
Indeed, these instruction are from libtool which is the tool that gets your
numbers and creates the library version. To my knowledge it is by far the best
you can do. Libtool is made in such a way so that it will produce sensible
version numbers under most systems. IRIX for example (IIRC) has only two
numbers and requires a completely different scheme.
It doesn't make any sense to try and have a human readable library versioning
scheme since these are numbers that are not visible to end users and don't
make any difference.
The information in the Makefile is part of libtool's info page (see info
libtool, section 7.3), where it also says:
*_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 (*note Release numbers::), but be warned that
every release of your package will not be binary compatible with any
>From the above, don't even consider using the -release flag unless you have a
really good reason to do so. As section 7.4 says:
Note that this option causes a modification of the library name, so
do not use it unless you want to break binary compatibility with any
past library releases. In general, you should only use `-release' for
package-internal libraries or for ones whose interfaces change very