Dear PLplot developers,

Please find here attached a patch developed by Nicolas Boulenguez that we are currently applying to the Debian package. The patches regards the setting of the libplplotada's shared object version.

Here is the description of the patch, as written by Nicolas:

“The SOVersion sometimes needs to evolve independently of the API (and thus, is unrelated with semantic versioning), or even without knowledge by the upstream author. For example, a rebuild of the library with a different compiler may break its ABI.

This patch provides redistributors like Debian an easy way to set the libplplotada_SOVERSION on the CMake command line, without patching CMake files.

This patch only affects the Ada library, but the suggestion applies to any language allowing dynamic linking.

As far as I know, the part added by _VERSION and the related symbolic links are a complexity added by CMake (probably in order to follow the GNU libtool conventions), but the linker only cares about the SOVERSION.”

Please consider applying this patch to PLplot.

Best regards,

Rafael Laboissière
Description: allow override of libplotada shared object version
 The SOVersion sometimes needs to evolve independently of the API (and
 thus, is unrelated with semantic versioning), or even without
 knowledge by the upstream author.  For example, a rebuild of the
 library with a different compiler may break its ABI.
 .
 This patch provides redistributors like Debian an easy way to set the
 libplplotada_SOVERSION on the CMake command line, without patching
 CMake files.
 .
 This patch only affects the Ada library, but the suggestion applies
 to any language allowing dynamic linking.
 .
 As far as I know, the part added by _VERSION and the related symbolic
 links are a complexity added by CMake (probably in order to follow
 the GNU libtool conventions), but the linker only cares about the
 SOVERSION.
Author: Nicolas Boulenguez <nico...@debian.org>

--- a/cmake/modules/plplot_version.cmake
+++ b/cmake/modules/plplot_version.cmake
@@ -58,7 +58,7 @@
 
 # Libraries with source code in the bindings subdirectory tree.
 
-set(plplotada_SOVERSION 4)
+set(plplotada_SOVERSION 4 CACHE STRING "libplplotada shared object version")
 set(plplotada_VERSION ${plplotada_SOVERSION}.0.0)
 
 set(plplotcxx_SOVERSION 15)
_______________________________________________
Plplot-devel mailing list
Plplot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/plplot-devel

Reply via email to