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.

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
${software_collection_1}
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”.