[CLN-list] (library) version info is still incorrect (?)

Richard B. Kreckel kreckel at ginac.de
Sat Apr 5 23:00:01 CEST 2008


Dear Alexei,

Alexei Sheplyakov wrote:
>  CL_CURRENT=5
> -CL_REVISION=1
> +CL_REVISION=2
>  CL_AGE=0
> 
> I think this version info is incorrect. It should be
> 
> CL_CURRENT=6 # new functions were added
> CL_REVISION=0
> CL_AGE=1 # but still it's binary compatible with CLN 1.2.0

Really?!? Let's read what the libtool documentation has to say about its 
versioning system. Hmm, yes, I see...

Let's assume that in CLN-1.2.3 functions are removed. This would become:
CL_CURRENT=7
CL_REVISION=0
CL_AGE=0

The net result is that soname-wise, libcln.so.7 directly follows 
libcln.so.5. Quite confusing. Is that really the intent? Or am I 
supposed to decrement CL_CURRENT again?

So far, my practice has been to try to care that later libraries with 
soname libcln.so.x are compatible with earlier ones with same soname and 
to increment soname whenever compatibility breaks. From a software 
distribution point of view (wearing my Debian hat), this should be all 
that matters.

If I had done this the way libtool suggests, we would already have 
libcln.so.21 or so. After all, this is C++, where library interfaces are 
usually less stable than in C.

I'm releaseing it now the way it is. Don't hesitate to tell if you think 
that this way of doing versions is fundamentally wrong.

Cheers
   -richy.
-- 
Richard B. Kreckel
<http://www.ginac.de/~kreckel/>


More information about the CLN-list mailing list