Mailinglist Archive: opensuse-factory (914 mails)

< Previous Next >
Re: [opensuse-factory] Shared library policy - multiple providers for a single API/ABI


On 04/06/17 03:08, Stefan Bruens wrote:
Hi,

just stumbled over an omission in the shared library packaging policy [1].

The policy gives several examples for SONAMEs and package names when there
are
several versions of a library with incompatible API/ABI.

But there is no specification for libraries available in different variants,
i.e. different implementations or optimizations, with compatible ABI.

One such library is openblas, which is available as singlethreaded
("serial"),
multithreaded using pthreads, and multithreaded using openmp. These three
libraries have the same ABI and thus are interchangeable, but unfortunately
each one carries its own SONAME (libopenblas_serial.so.0,
libopenblas_pthreads.so.0, libopenblas_openmp.so.0). Any program/library
linking to libopenblas.so (linker flag -lopenblas) will end up with the
default implementation, which is either openblas_pthreads (on x86*) or
openblas_openmp (else). The library name then is fixed in both the program/
library dynamic linking as well as the rpm dependencies.

Now, it is trivial to set the SONAME for all three implementations to
libopenblas.so.0, but unfortunately rpmlint insist on the package name to be
libopenblas0 in this case, with no possibility to have different package
names
for the three variants.

IMHO the policy and rpmlint should be extended to cover these cases.


Later this week i'll be starting a topic on what rpmlint should be doing
better so I guess we can cover it then.

--

Simon Lees (Simotek) http://simotek.net

Emergency Update Team keybase.io/simotek
SUSE Linux Adelaide Australia, UTC+10:30
GPG Fingerprint: 5B87 DB9D 88DC F606 E489 CEC5 0922 C246 02F0 014B

< Previous Next >
References