The Fedora build system Koji runs on RHEL 5
Xen and builds everything on top of that using mock. This can lead to some rather difficult to debug problems where your package builds and tests OK for you on your local Rawhide machine, but fails in Koji. The reason it can fail in Koji is because it is running on the RHEL 5 Linux kernel (2.6.18). Your program, or any program you depend on during the build, might make assumptions about system calls that work for a Rawhide kernel, but fail for a RHEL 5 kernel.
Reproducing these bugs is difficult. Hopefully this posting should be a good start.
Koji is doing roughly the equivalent of this command (on a RHEL 5 host):
mock -r fedora-rawhide-x86_64 --rebuild your.src.rpm
That command doesn’t work straightaway. There are some things you have to install and upgrade first before that works:
- Install RHEL 5 (or use CentOS or another no-cost alternative).
- Install EPEL.
- Install or update yum, python-hashlib, mock.
- Use /usr/sbin/vigr to add yourself to the “mock” group.
- The version of RPM from RHEL 5 is too old to understand the new xz-based compression format used by Rawhide RPMs. You have to build the Fedora 12 RPM (NB: Fedora 13 RPM definitely doesn’t work because it requires Python 2.6).
The Fedora 12 specfile is a starting point, but it won’t work directly. There are some small changes you have to make, and a single patch to the source code, but hopefully those will be obvious.Update: Here for a short time is a scratch build of the Fedora 12 RPM made to work on RHEL 5.4. Once you’ve built the new rpm RPM (!), install it.
At this point you can use the mock command above to test-build SRPMs using the unusual RHEL 5 kernel / Rawhide userspace combination.