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?

Chen Levy
  • 283
  • 3
  • 12

2 Answers2

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.

Michael Hampton
  • 237,123
  • 42
  • 477
  • 940
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.

Bram
  • 1,121
  • 6
  • 9