On 2016-03-18, Kamil Dudka <kdudka@xxxxxxxxxx> 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@xxxxxxxxxxxxxxxxxxxxxxx http://lists.fedoraproject.org/admin/lists/devel@xxxxxxxxxxxxxxxxxxxxxxx