Ville Skyttä wrote:
On Thursday 19 March 2009, Hans de Goede wrote:
If upstream doesn't do library versioning it is a safe bet that they
don't guarantee ABI stability either.
The best practice in this case is to patch upstream's Makefiles to make
versioned libraries with the full upstream version in the soname
(use -release argument to libtool if using libtool).
Is inventing sonames really a best practice or even something that should be
recommended?
Drawbacks of doing so include problems if/when upstream later implements
versioning as well and ships a version of a lib using the same soname that
was earlier used in Fedora for something that's not ABI compatible, confusion
caused by versions possibly decreasing in these scenarios, and another
smaller one is inflicted binary incompatibilities between distros.
Which is why I advised using libtool's -release argument, or manually mimicking this,
this leads to soname's like: libfoo-%{version}.so. So if upstream starts doing versioning,
even if the choose the same scheme they will end up with different soname's (as the next
upstream release will have a different %{version} I may hope)
Sure this needs to be brought up upstream and in the mean time it should be fixed
*properly* in Fedora.
Based on these issues, I think inventing sonames should be discouraged instead
of being recommended or mentioned as a best practice.
NACK ...
IMO (unless I've
misunderstood something) a best practice would be to persuade upstream to
implement lib versioning even if the version changes on every release until
things stabilize, and until they do, resort to strict NEVR based dependencies
towards those unversioned lib packages in other Fedora packages, and never
invent sonames.
Full NEVR deps are way more bad then inventing soname's:
1) overkill, the ABI will only change with a new upstream release,
not with some minor packaging fix / rebuild
2) only fix part of the problem, what if users compile software
themselves against the unversioned so ?
We have a problem with non proper versioning in ld.so 's namespace, this *MUST*
be fixed in ld.so's namespace, fixing this at the rpm level is as good as
useless.
Regards,
Hans
--
fedora-devel-list mailing list
fedora-devel-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/fedora-devel-list