3

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?

2 Answers 2

2

In my .rpmmacros on RHEL5 I use

%_topdir        %(echo ${HOME}/rpm)

If you don't want to set up mock (but I too recommend doing that) this might help.

1
  • This solves my problem with minimal additional noise to the system.
    – Chen Levy
    Sep 4, 2012 at 8:40
5

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.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .