3.16. Differences Between Red Hat Enterprise Linux 6 and 7
The RPM Package Manager in Red Hat Enterprise Linux 7 ships with a number of feature changes that are not available in the older version of the RPM Package Manager shipped with Red Hat Enterprise Linux 6.
This section provides more details on the changes that may affect you when building your Software Collection packages for both systems.
Differences in library support are detailed in Section 3.5.3, “Software Collection Library Support in Red Hat Enterprise Linux 7”. Differences in SELinux support are documented in Section 3.15.1, “SELinux Support in Red Hat Enterprise Linux 7”.
3.16.1. The %license Macro
The
%license
macro allows you to specify the license file to be installed by your package. The macro is only supported by the RPM Package Manager in Red Hat Enterprise Linux 7. When building your Software Collection package on both Red Hat Enterprise Linux 6 and 7, declare the %license
macro for Red Hat Enterprise Linux 6 as follows:
%{!?_licensedir:%global license %%doc}
3.16.2. Missing runtime Subpackage Dependencies
On Red Hat Enterprise Linux 7, the scl tool automatically generates the needed
Requires
on the Software Collection runtime subpackage. This does not work on Red Hat Enterprise Linux 6. When building your Software Collection for that system, you need to explicitly specify the dependency on the runtime subpackage in each Software Collection package:
Requires: %{?scl_prefix}runtime
3.16.3. The scl-package() Provides
By design, building a Software Collection package generates a number of
Provide: scl-package()
tags. The purpose of these is to internally identify the built package as belonging to a specific Software Collection. The tags are detailed in the following table.
Table 3.2. Provides in Red Hat Enterprise Linux 7
Software Collection package
|
Provide
|
---|---|
| scl-package(software_collection_1)
|
${software_collection_1}-build
| scl-package(software_collection_1)
|
${software_collection_1}-runtime
| scl-package(software_collection_1)
|
Red Hat Enterprise Linux 6 ships with an older version of the RPM Package Manager, so as an exception, building the same package on Red Hat Enterprise Linux 6 only generates a single
Provide: scl-package()
tag, as detailed in the following table. This is an expected behavior and the differences are handled internally by the scl tool.
Table 3.3. Provide in Red Hat Enterprise Linux 6
Software Collection package
|
Provide
|
---|---|
${software_collection_1}
| scl-package(software_collection_1)
|
Do not use these internally generated dependencies to list packages that belong to a particular Software Collection. For information on how to properly list Software Collection packages, see Section 1.5, “Listing Installed Software Collections”.