setting up rhel 5.x RPM build server for mortal users

Chen Levy asked:

My task is to setup a RHEL 5.x build host, that can build RPMs for mortal users.

On RHEL 6.x with rpm version 4.8, I have in /usr/lib/macros:

#       Path to top of build area.
%_topdir                %{getenv:HOME}/rpmbuild

On RHEL 5.x with rpm version 4.4, the %{getevn:HOME} is not available.

I know that I can use /home/someuser/.rpmmacros:

%_topdir                /home/someuser/rpmbuild

and this will work for that user, however I don’t want to do this for every user separately. Moreover, since .rpmmacro will not expand ${HOME} or ~ I suspect it is unsafe to use those. This in turn make /etc/skel unstable for this task (or so I suspect).

So in short, my question is: How to setup RHEL 5.x host that allow all users to build RPM packages in their home directory?

My answer:

If at all possible, make your build server EL6. This will save you a lot of hassle later…

For a simple build box where only the occasional RPM package will be built, have your users use mock. You’ll find it in the EPEL repository.

Using mock to build an RPM ensures that all of the correct build dependencies have been specified by building it in a chroot environment.

Add users who should be able to access mock to the mock group.

Then these users can build an RPM with a command like:

mock -r epel-5-x86_64 file.src.rpm

If you need to build a lot of RPMs, or you’re creating a repository, you may want to set up an automated build server with something like koji.

View the full question and any other answers on Server Fault.

Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.