[geos-devel] GEOS library versioning

strk strk at keybit.net
Fri Jul 16 11:47:42 EDT 2004


I've read libtool documentation (libtool.info).
Libtool define its' own versioning system, consisting in
tree numbers: CURRENT, REVISION and AGE.

CURRENT is the current interface number.
REVISION is the revision of the current interface.
AGE is the number of previous interfaces supported.

Following this scheme next geos library version should be
coded as CURRENT:REVISION:AGE == 2:0:0.

the -version-info flag provided to libtool takes this codification,
and that is the flag used for GEOS-1.0 (CURRENT:REVISION:AGE == 1:0:0).

Libtool also support using Major/Minor/Patchlevel scheme,
but warns that binary compatibility between releases will
not be mantained. Maybe omitting Patchlevel from the
-release specification would allow binary compatibility between
libraries with same Major and Minor, but I'm not sure about this.

Note that Major/Minor/Patchlevel scheme does not account
for multiple interface support, while current/revision/age
does.

Also note that this decision can not be procrastinated
as once we have libgeos-1.4.0 we won't be able to switch
to libtool versioning, as libgeos-1.4.0 would have a 
completely different meaning with the two schemes.

I'd go with libtool scheme.

What do you think ?


--strk;

On Fri, Jul 16, 2004 at 10:54:28AM +0200, strk wrote:
> I've modified source/geom/Makefile.am
> to provide the -release Major.Minor.Patch switch to libtool
> instead of -version-info, which I could not understand usage of.
> 
> Can you (and people on the list) try if this works on other
> systems then mine ?
> Also, I'm not sure about versioning of archive files (libgeos.a)
> any hint on how to check that ?
> 
> TIA
> 
> --strk;
> 
> _______________________________________________
> geos-devel mailing list
> geos-devel at geos.refractions.net
> http://geos.refractions.net/mailman/listinfo/geos-devel



More information about the geos-devel mailing list