Red Hat Software Collections for RH 5 ?
Does anybody know if RH Software Collections can be used on Red Hat 5 ?
Responses
Red Hat Software Collections is RHEL 6 only, and not available on RHEL 5 since RHEL 5 is nearly in Production Phase 3[1]. Customers are free to create their own software collections though, as the scl-utils package is in RHEL 5.
Hope this helps!
Andrius.
[1] https://access.redhat.com/support/policy/updates/errata/
On building software collections under RHEL5:
A presentation from Red Hat Summit on how to build software collections
The software collections documentation, with more details: Software Collections Guide
After reading those two documents, and trying to make my own software collection starting from the ruby193-1-8 spec, I still wasn't able successfully to build it under RHEL5 until I did the following:
- Added a definition for buildroot to my $HOME/.rpmmacros.
# see https://github.com/rerun/rerun/issues/169
%_buildrootdir %{_topdir}/BUILDROOT
%buildroot %{_buildrootdir}/%{?pkg_name}%{!?pkg_name:%{name}}-%{version}-%{release}.%{_arch}
- Added this line to the ruby193.spec file:
BuildRoot: %{buildroot}
- Made sure there was a Group set for each package specified in the spec file.
(Post edited to get markup straight.)
As it turns out, those challenges above weren't the only ones. I found more build failures while trying to build a Ruby 1.9.3 SCL on RHEL5, and workarounds:
- There were build dependencies which were provided from within the SCL: for example, libyaml. I grabbed those source rpms from the rhsummit repo, and built them inside my SCL.
- RHEL5 does not have libffi. I grabbed libffi from RHEL6, scl-ified it, and made the ruby package require it from within the SCL, following how that's already written for libyaml in the ruby spec.
- RHEL5 autoconf is too old to build ruby 1.9.3. I had to grab and SCL-ify m4 and autoconf from RHEL6; an additional modification in the autoconf spec was to make it use the m4 from the SCL (add M4=%{_bindir}/m4 argument to %configure line).
- The ruby package has noarch subpackages, for example rubygems. But RHEL5 has rpm 4.4 and noarch subpackages were not supported until rpm 4.6. The symptom of this is that when configure is run, the target cpu is noarch instead of x86_64, and configure doesn't know what to do with that and bombs out. To make it build right, I had to comment out BuildArch: noarch for all the subpackages where it was written.
With these changes, Ruby 1.9.3 seems to have built.
Anyone who's backporting a package from a newer RHEL or Fedora to RHEL5 may need to know that bit about noarch subpackages. If lots of people end up doing that sort of thing, it may be wise to collect antinews like this (a humorous example in the world of Emacs). I wouldn't want anyone else to end up stumped for three hours like me.
Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.
