Procedure 4.1. Providing your own scldevel subpackage
%package scldevel Summary: Package shipping development files for %scl Provides: scldevel(%{scl_name_base}) %description scldevel Package shipping development files, especially useful for development of packages depending on %scl Software Collection.
Provides: scldevel(%{scl_name_base})
during the build of packages of dependent Software Collections. This will ensure availability of a version of the %{scl_name_base}
Software Collection and its macros, as specified in the following step.
%install
section of your Software Collection's metapackage, create the macros.%{scl_name_base}-scldevel
file that is part of the scldevel subpackage and contains:
cat >> %{buildroot}%{_root_sysconfdir}/rpm/macros.%{scl_name_base}-scldevel << EOF %%scl_%{scl_name_base} %{scl} %%scl_prefix_%{scl_name_base} %{scl_prefix} EOF
%{scl_name_base}
name, the provided macros.%{scl_name_base}-scldevel
files must conflict. This is to disallow installing multiple versions of the %{scl_name_base}
Software Collections. For example, in Red Hat Software Collections, the ruby193-scldevel subpackage cannot be installed when there is the ruby200-scldevel subpackage installed.
Procedure 4.2. Using your own scldevel subpackage in a dependent Software Collection
%{!?scl_ruby:%global scl_ruby ruby200} %{!?scl_prefix_ruby:%global scl_prefix_ruby %{scl_ruby}-}
%{?scl_prefix_ruby}
BuildRequires: %{scl_prefix_ruby}scldevel
%package runtime
part of the metapackage's spec file includes the following lines:
%package runtime Summary: Package that handles %scl Software Collection. Requires: scl-utils Requires: %{scl_prefix_ruby}runtime
%package build
part of the metapackage's spec file includes the following lines:
%package build Summary: Package shipping basic build configuration Requires: %{scl_prefix_ruby}scldevel
Requires: %{scl_prefix_ruby}scldevel
ensures that macros are available in all packages of the Software Collection.