RPM Package Build System
June 9, 2008
Build systems suck. Mostly because they are a lot harder that you would think to put together. Its just been recently that we have the Koji system from Fedora and the Open SuSE build system. Implementing those on site for your customized or possibly closed environments can be very non-trivial. In my case, I found that RHN, being my gateway to RHEL packages, made using Koji very difficult. Especially as I wanted to be able to trigger a rebuild of kernel modules every time a new kernel was available.
So, I made a poor man’s build system for my own stuff at work. I took a lot of ideas from Fedora’s CVS based package system of a year or two ago and created something similar based on Subversion. Toss in Mock and you have the bare essentials of a build system. Those being 1) Backups of all your package work, 2) Versioning of your package work and each EVR released 2) Clean, repeatable builds in a controlled build root.
I’ve posted some documentation on the CLS Wiki at work which should be enough for anyone to look at my SVN repo for an example and to clone the magic for your site. Note that, you’ll need to change the Yum configurations stored in common/mock for the Mock configs as outside folks wont have access to my yum repositories of RHEL.