[geos-devel] GEOS SRID Patch

strk strk at keybit.net
Sat Sep 22 03:15:38 EDT 2007


On Fri, Sep 21, 2007 at 11:29:39AM -0600, Charlie Savage wrote:

> 2: Increment release version:
>    - VERSION_PATCH for bugfixes/improvements (even breaking C++ API)
>    - VERSION_MINOR for NEW interfaces in the C lib
>    - VERSION_MAJOR for SUBSTANTIAL additions or C lib ABI break
>      [ THIS MUST BE CAREFULLY AVOIDED ]
> 
> 
> For section #2, does C lib mean the C++ lib or CAPI?  Note that the 
> comments in configure.in talk about the C++ lib.

C lib means CAPI.

> So my take is I should update the CAPI to:
> 
> CAPI_INTERFACE_CURRENT=5 (currently 4)
> CAPI_INTERFACE_REVISION=0 (currently 3)
> CAPI_INTERFACE_AGE=4 (currently 3)
> 
> Although I'm not sure what CAPI_INTERFACE_AGE is supposed to mean.

AGE is the number of previous interfaces still supported.
So, if current is 5 and you support 4 previous interfaces, a code
which was compiled against interface 1 should still run w/out problems.

Under Linux, your suggested versioning translates to a SO versioned
as 1.4.0 (oldest interface supported, additional new interfaces, revision)
while previous 4:3:3 should translate to 1.3.3.

> For the C++ lib, I'm doing:
> 
> VERSION_MAJOR=3
> VERSION_MINOR=0
> VERSION_PATCH=0rc5

The C++ lib will actually have a release-bound version, no new library will
be automatically used by code built against older libs (see -release in libtool
manuals).
So what your setting with VERSION_* is the *release* version, which will also
be the C++ lib version.

Hope it helps.

--strk;



More information about the geos-devel mailing list