The Bcfg2 distribution contains two different spec files.
Copy the tarball to /usr/src/packages/SOURCES/
Extract another copy of it somewhere else (eg: /tmp) and retrieve the misc/bcfg2.spec file
rpmbuild -ba bcfg2.spec
The resulting RPMs will be in /usr/src/packages/RPMS/ and SRPMs in /usr/src/packages/SRPMS
Change to the redhat/ directory in the working copy
The resulting RPMs will be in /usr/src/redhat/RPMS/ and SRPMs in /usr/src/redhat/SRPMS and will have the SVN revision appended
While you can go about building all these things from source, this how to will try and meet the dependencies using packages from EPEL. The el5 and the el6 package should be compatible with CentOS 5.x.
Installation of the EPEL repository package
[root@centos ~]# rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-6.noarch.rpm
Now you can install the rest of the prerequisites
[root@centos ~]# yum install python-genshi python-cheetah python-lxml
After installing git, check out the master branch
[root@centos redhat]# git clone git://git.mcs.anl.gov/bcfg2.git
Install the fedora-packager package
[root@centos ~]# yum install fedora-packager
A directory structure for the RPM build process has to be established.
[you@centos ~]$ rpmdev-setuptree
Change to the redhat directory of the checked out Bcfg2 source:
[you@centos ~]$ cd bcfg2/redhat/
In the particular directory is a Makefile which will do the job of building the RPM packages. You can do this as root, but it’s not recommended:
[you@centos redhat]$ make
Now the new RPM package can be installed. Please adjust the path to your RPM package
[root@centos ~]# rpm -ihv /home/YOU/rpmbuild/RPMS/noarch/bcfg2-server-1.0.0-0.2r5835.noarch.rpm