2.12. Building a Software Collection
If you have correctly converted a conventional spec file for your Software Collection as documented in Section 2.10, “Converting a Conventional Spec File”, you will be able to build the resulting package in both the Software Collection and conventional build roots. Building the converted package in a conventional build root will produce a conventional base system RPM package, while building in a Software Collection build root that contains %{scl}-build will produce a Software Collection package.
To build a Software Collection on your system, run the following command:
rpmbuild -ba package.spec --define 'scl name'
The difference between the command shown above and the standard command to build conventional packages (
rpmbuild -ba package.spec
) is that you have to append the --define
option to the rpmbuild
command when building a Software Collection.
The
--define
option defines the scl
macro, which uses the Software Collection configured in the Software Collection spec file (package.spec
).
Alternatively, to be able to use the standard command
rpmbuild -ba package.spec
to build the Software Collection, specify the following in the package.spec
file:
BuildRequires: software_collection-build
where software_collection is the name of the Software Collection.
2.12.1. Rebuilding a Software Collection without build Subpackages
When you want to rebuild a Software Collection that comes with no build subpackage (software_collection-build), you can create the build subpackage by rebuilding the Software Collection metapackage, and thus avoid using the
rpmbuild -ba package.spec --define 'scl name'
command.
Note that you need to have the scl-utils-build package installed on your system, otherwise rebuilding the Software Collection metapackage with the
rpmbuild
command will fail.
For more information about the scl-utils-build package, see Section 1.3, “Enabling Support for Software Collections”.