Proposal to reduce anti-bundling requirements

Carlos O'Donell carlos at redhat.com
Fri Sep 11 14:34:02 UTC 2015


On 09/10/2015 10:42 AM, Florian Weimer wrote:
> On 09/10/2015 03:53 PM, Stephen Gallagher wrote:
> 
>> I would like to propose that the no-bundled-libraries policy be
>> amended  as follows: "Any package that has an existing mechanism to
>> link against a shared system library and functions correctly when
>> doing so must link against that library and not bundle it internally.
>> Any package whose upstream releases cannot link against a shared
>> system library (or are incompatible with the version in Fedora) may
>> bundle that library (without requiring a special exemption) but MUST
>> add Provides: bundled(<libname>) = <version> in the spec file for each
>> known bundled library.(This will allow us to track down the bundling
>> when we need to). Package maintainers should continue attempt to
>> engage upstream to support linking against shared system libraries
>> wherever possible, due to the advantages it provides the package
>> maintainer."
> 
> Is <libname> the name of the SRPM which provides the system version of
> the library?
> 
> How do you propose to resolve symbol conflicts if both the system
> library and the bundled library are loaded into the same process?  The
> current ELF linking scheme lacks good support for bundling libraries
> whose exported symbols have not been mangled in some way.
> 

If you need different versions of the same shared libraries in the same
process then you must use dlmopen to load the conflicting set into a
distinct load namespace.

At present dlmopen is not functional for this purpose in upstream
glibc master. It is something that I'm working on fixing [1].

Failing that we need to implement Solaris' grouping model (RTLD_GROUP,
-B group, RTLD_PARENT) to further support isolation at the dynamic
loader level.

All of this would be useful for software collections, and better
handling of multiple installed versions of libraries, all while
having the potential to avoid containers and bundling.

Cheers,
Carlos.

[1] https://sourceware.org/ml/libc-alpha/2015-07/msg00474.html


More information about the devel mailing list