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”.
Red Hat logoGithubRedditYoutubeTwitter

Learn

Try, buy, & sell

Communities

About Red Hat Documentation

We help Red Hat users innovate and achieve their goals with our products and services with content they can trust.

Making open source more inclusive

Red Hat is committed to replacing problematic language in our code, documentation, and web properties. For more details, see the Red Hat Blog.

About Red Hat

We deliver hardened solutions that make it easier for enterprises to work across platforms and environments, from the core datacenter to the network edge.

© 2024 Red Hat, Inc.