Eliminating automatic provides on private libs

Michael Stahl mstahl at redhat.com
Fri Apr 27 18:11:35 UTC 2012


[resent another time because the list automatically rejected my mail]

On 27/04/12 10:13, Panu Matilainen wrote:

[...]

> The short background is that for libraries which dont have a SONAME, 
> rpmbuild fakes one based on the file name. The rationale for this has 
> been that since the linker permits linking to libraries without sonames, 
> rpm must permit this too. The downside is that for the 1% corner cases 
> that need this, we end up polluting the provides namespace with 
> thousands of unnecessary and unwanted names, names that have not been 
> picked up with a global namespace in mind.

[...]

> So... about a third of the soname provides are faked by using library 
> basename for its provide name, and almost all of them are for no good 
> reason. The three general cases that something actually depends on are
> 1) libreoffice sub-packages depending on its internal libraries from 
> libreoffice-core

while i'm still quite unfamiliar with RPM or the libreoffice.spec file,
i'm very familiar with LibreOffice upstream; generally with the
exception of the -ure sub-package there are no stable ABIs provided by
the various libraries, so the sub-packages need to depend on the exact
same version of the core package anyway (and no code outside of the
libreoffice source package should have dependencies) which is probably
why the spec file contains this:

Requires: %{name}-core = %{epoch}:%{version}-%{release}

now the URE (UNO runtime environment) subpackage actually provides a
stable ABI and libraries with SONAMEs (in addition to some private
libraries without SONAME for dlopen), all installed in a sub-directory
of /usr/lib/libreoffice, but other than the other libreoffice
sub-packages, which again depend on it with exact version

Requires: %{name}-ure = %{epoch}:%{version}-%{release}

using repoquery i could find only 3 non-libreoffice packages with a
dependency on ure or its libraries in Fedora 16, all of which
LibreOffice extensions (actually 2 of the 3 are the same, once with the
old openoffice.org name), and depending only on the public libraries
with SONAME:

> repoquery --requires openoffice.org-voikko-0:3.1.2-5.fc16.x86_64 openoffice.org-diafilter-0:1.7.0-6.fc15.x86_64 libreoffice-voikko-0:3.2-4.fc16.x86_64

[...]



More information about the devel mailing list