|
From: Alan W. I. <Ala...@gm...> - 2020-11-17 00:38:01
|
On 2020-11-15 07:36+0100 Rafael Laboissière wrote:
> 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.
To Nicholas and Rafael:
I would be happy to cache *_SOVERSION variables for each of our
libraries to help packagers who are up against some ABI change for
their distribution. However, packagers also would need to update the
*_VERSION variables as well if their distribution mandated some rule
for those such as semantic versioning (which is the set of library
SOVERSION/VERSION rules that libtool has adopted). For example, if
*_VERSION remains uncached as now, then the VERSION result will
combine the packager's SOVERSION with a default suffix that is
consistent with the semantic versioning rules (e.g., the ".2.0" suffix
in ${plplotfortran_SOVERSION}.2.0) for the default SOVERSION supplied
by PLplot but *not* the SOVERSION supplied by the packager. So I am
strongly leaning toward caching both *_SOVERSION and *_VERSION
variants of all library version variables.
@Nicholas:
Thanks for (indirectly) bringing this issue to our upstream attention.
@Rafael:
Historically (back in our autotools days) you were the PLplot guru on
library soversion/version issues. So I would appreciate a comment
from you about whether you see any downside to my idea above to cache
both forms of library version variables to allow packagers to override
both.
@both:
Best wishes,
Alan
__________________________
Alan W. Irwin
Research affiliation with the Department of Physics and Astronomy,
University of Victoria, Victoria, BC, Canada.
Programming affiliations with the FreeEOS equation-of-state
implementation for stellar interiors (freeeos.sf.net); the Time
Ephemerides project (timeephem.sf.net); PLplot scientific plotting
software package (plplot.org); the libLASi project
(unifont.org/lasi); the Loads of Linux Links project (loll.sf.net);
and the Linux Brochure Project (lbproject.sf.net).
__________________________
Linux-powered Science
__________________________
|