[GiNaC-devel] Versioning, SONAME versus file name, and all that.

Alexei Sheplyakov alexei.sheplyakov at gmail.com
Sun May 22 18:10:36 CEST 2011


Hi,

On Sun, May 22, 2011 at 03:19:17PM +0200, Jens Vollinga wrote:

> >objdump -p libginac.so | grep SONAME
> 
> and the answer is:
> 
>   SONAME               libginac.so.0
> 
> 
> Looks good? Is it different at your box?

It's the same on my box. But it's not exactly OK.
 
> >>More importantly, why does lexicographic ordering matter?!?
> >
> >Because humans and (package management) software expect SONAMEs
> >(and version numbers) to be increasing.
> 
> Eh? I don't understand, yet. Human expectations aside, why does
> package management rely on lexicographical ordering?

Because it's simple and straightforward. `libginac2 is newer than libginac1.5'
is quite clear, and `libginac0 is newer than libginac1.5' is a bit confusing.
 
> What I plan to do is to go from libginac-1.5.so to libginac.so.

Correct. We want to change the library *file* name from libginac-1.5.so
to libginac.so. Also we want to change the library SONAME from libginac-1.5.so.0
to libginac.so.2 (actually any integer bigger than 1.5 is OK).

> So, is this the actual dissent: you/richy want still a number in
> the name (which better is increasing)?

We don't want to encode the ABI version into the file name. But there *must*
be a version number in the SONAME. Otherwise distro people are going to hit us
with a huge cluestick. And that version should be updated (preferably increased)
whenever we introduce a binary incompatible change. To do so it's enough to
update ginac_lt_current, ginac_lt_age, and ginac_lt_revision in configure.ac
according to the instructions listed in the same file (actually, those
instructions have been shamelessly copied from the libtool manual).

Hope this helps,
	Alexei



More information about the GiNaC-devel mailing list