On 2016-03-18, Kamil Dudka <kdu...@redhat.com> wrote:
> On Thursday, March 17, 2016 14:44:21 Przemek Klosowski wrote:
>
> According to Fedora Packaging Guidelines, unversioned shared library files 
> should be installed by -devel packages:
>
> https://fedoraproject.org/wiki/Packaging:Guidelines?rd=Packaging/Guidelines#Devel_Packages
>
No. The guidelines are badly written. "unversioned shared library files"
means "shared library unversioned file name". Spliting files between
-libs and -devel packages is not based on sonames, but on purpose of the
file.

Dlopening unversioned file name is as bad as linking against librires
without sonames. To express package dependencies on soanames, one has to
dlopen the versioned file name. Of course that means to compile in the
soname when building an application. At the end that's what linker (ld)
does. Yes, it would mean to patch each application.

> I will not support any solution that would allow to install multiple
> instances of libcurl on a single system.  We (as curl maintainers)
> have no control about which packages link which libraries and it could
> sooner or later happen that both instances of libcurl are loaded in
> a single process through higher-level libraries, which is not
> a scenario supported by upstream.
>
I think the solution is have more packages delivering the same-named
shared library file with the same soname. Each of the packages
conflicting each other. Then the non-minimal package would provide RPM
symbols declaring compiled-in features like "Provides: libcurl(LDAP)"
and then each application package requiring specific feature would
explicitly run-require it ("Requied: libcurl(LDAP)"), besides
automatically genererated dependency on the soname.

The magic of prefering the minimal package over non-minimal package
would be kept on package manager. For example it could sort the
candidates on size or number of dependencies.

-- Petr
--
devel mailing list
devel@lists.fedoraproject.org
http://lists.fedoraproject.org/admin/lists/devel@lists.fedoraproject.org

Reply via email to