Packaging:Treatment Of Bundled Libraries
Packages with Bundled Libraries
Packages which contain bundled libraries (bundled libraries being defined as libraries which exist and are mantained independently, whether or not they are packaged separately for Fedora) must be handled in the following manner:
- Bundled libraries (and/or their source code) must be explicitly deleted during %prep. Build scripts may need to be patched to deal with this situation. Whenever possible, the patching should be done in a way to conditionalize use of the bundled libraries, so that it can be sent upstream for consideration.
- It is not necessary to remove bundled libraries from the source tarball unless there is a legal reason to do so
- Bundled libraries must NEVER end up in a package, even if they are not used.
There are some notable exceptions:
Packages which depend upon bundled libraries in order to bootstrap a build may retain them for use when the package is built in bootstrapping mode. When the package is built in a normal mode, the normal guidelines apply.
Packages which bundle specific subsets of third-party source code with the sole purpose of providing functionality that is not available in the system copy, and explicitly conditionalize that use in such a way that if the system copy provides that functionality, the bundled source code is not used, are exempt from the requirement to delete the bundled source code during %prep. Packages in this exception case MUST document this situation in a specfile comment, and verify that the functionality is properly conditionalized with each update.
Buildscripts such as aclocal.m4 and libtool are exempt from these guidelines and are not considered bundled libraries.
Packages which have been given an explicit exception are exempt from these guidelines. See: Packaging:No_Bundled_Libraries