On 2016-06-14 11:29, Even Rouault wrote:
A ticket ( https://trac.osgeo.org/gdal/ticket/6542 ) has been raised about libtool SONAME having not changed between GDAL 2.0.X and GDAL 2.1.0 due to
incrementing both LIBGDAL_CURRENT and LIBGDAL_AGE .
This was raised also in https://trac.osgeo.org/gdal/ticket/4543

Our, more or less implicit, policy up to now was to take just into account the C ABI, and not the C++ one. Any opinion if we should change it to take into
account the C++ ABI as well ?

If doing that, I can see
- pros: new policy would match the expectations of the C++ API users
- cons: C API users would see soname changes that don't affect them, requiring
recompilation/relinking

As long as the C & C++ APIs are provided by a single library, it makes sense to base the libtool versioning on the C++ API since that changes most often.

In Debian we mark the libgdal C++ symbols and add a dependency on the version specific virtual ABI package provided by the libgdal20 package to all packages that use any of the C++ symbols. Most reverse dependencies of GDAL use (some) C++ symbols, requiring a rebuild of these packages for every new release of GDAL uploaded to Debian. Only the gmt, imposm, mapcache, mapserver, ncl, osmium, postgis, xastir, grass & pyosmium packages don't use any C++ symbols (10 out of 37).

It would be great if the other reverse dependencies would limited themselves to the C API, but that seems an unrealistic desire. GEOS reverse dependencies don't manage that either, although most GEOS rdeps use the C API with a few that (also) require the C++ API.

Another approach would be to have a libgdal_c.so with C ABI only and
libgdal.so with the rest, ala GEOS, but it is not obvious that the cost to restructure the GDAL code to implement that, and to existing external code to
adapt for this change, would be worth the advantages.

It is a cleaner approach, but because it's so invasive I would postpone that change to GDAL 3.0 making it of no use in the short term.

I'm generally in favour of this option as the proper long term solution. It will simplify the packaging by removing the need for the virtual ABI package.

Kind Regards,

Bas
_______________________________________________
gdal-dev mailing list
gdal-dev@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/gdal-dev

Reply via email to