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 __________________________ |