Linux/OSS : RPM spec files
This page is completely obsolete; I now use and contribute to the Fedora Project.
I'm a great fan of RPMs; the RPM system is a brilliant way to keep your system in order. In particular, on critical servers it's crucial that your system is organised and that the result of program/library updates is as predictable and reliable as possible, and that's where RPMs really come into their own.
Unfortunately, not all programs are distributed with RPM specification (spec) files. Since I like to keep my systems 'RPMified', I generally make spec files for programs that I install if they don't have them, so that I can compile/build them as RPMs. Therefore, I've put this page together in order to make available some of the spec files that I've created in the hope that they will be useful to others.
I don't claim that these spec files are the best or most perfect spec files. Some (e.g. PHP) are already made available from other sources (e.g. Red Hat) and my version is considerably less generic. But you might well find mine much simpler if your needs are similar to mine. All are tested on (and many are biased towards) Red Hat 7.2 and/or 7.3 and may need modifications for other systems.
Server daemons
| Package | Version | Spec file | Notes |
|---|---|---|---|
| Apache HTTPD (v1.3) | 1.3.31 | apache.spec | Useful for those running Red Hat 8+ (which come with Apache 2) but want to run Apache 1.x. This spec is tested on Red Hat 9 and Fedora Core 1. It also works on Red Hat 7.3 if you modify the "db4-devel" build prerequisite to "db3-devel". It is heavily based on the original Red Hat 7.3 Apache 1.x specs, and includes support for mod_ssl (see spec below). Note, however, that I have made a slight simplification which means that you will end up with a copy of mod_ssl itself in the Apache SRPM. You will also require the following minor patches: apache_1.3.14-mkstemp.patch, apache_1.3.20-apachectl-init.patch, apache_1.3.29-config.patch, apache_1.3.23-dbmdb.patch, apache_1.3.27-db.patch, httpd.init, SSL-Certificate-Creation and apache.logrotate |
| Mod SSL | 2.8.16 | mod_ssl.spec | mod_ssl; useful if you are building Apache 1.3.x from my spec file. Based very closely on the original Red Hat 7.3 spec. Requires mod_ssl-2.6.4-tty.patch, mod_ssl-2.8.4-sdbm.patch, mod_ssl-2.8.4-openssl.patch, SSL-Certificate-Creation and mod_ssl.logrotate |
| mm | 1.3.0 | mm.spec | Ralf Engelschall's memory manager, required to build Apache 1.x on Red Hat 8+. Requires shtool.patch |
| Clam Antivirus | 0.67 | clamav-0.67.spec | Much improved from the 0.65 spec, this is based on this spec file, with all the milter stuff (which I don't need) commented out. You'll also need clamd.sh, clamd.logrotate, clamav-0.66-conf.patch, freshclam.sh, freshclam.logrotate and freshclam.sysconfig. The clamav.conf file supplied is not much changed from the default but is all set up nicely for Red Hat/Fedora. |
| Clam Antivirus | 0.65 | clamav-0.65.spec | Based on the PLD spec file, with modifications to make it work for me :-) You'll also need clamav.init, clamav.logrotate and clamav-0.65.conf. The clamav.conf file supplied is not much changed from the default but is all set up nicely for Red Hat. |
| Clam Antivirus | 0.60 | clamav.spec | Older version of the above. You'll also need clamav.init, clamav.logrotate and clamav.conf. |
| Exim (v4) | 4.x | Please see my Exim page | |
| Exim (v3) | 3.36 | exim.spec | The Exim 3 branch of Exim. New users should use Exim 4 but this v3 spec file is kept here for existing users who wish to stick with v3 for the time being. You'll also need the following files: exim.aliases, exim.clean, exim.init and exim.logrotate, exim.sysconfig and exim.Makefile.patch. |
| monit | 4.3 | monit.spec | Service monitoring daemon. |
| Qpopper (standalone mode) | 4.0.5 | qpopper.spec | Can now build as non-root. Includes a SysV init file, config file and manpage support. Compiles by default as standalone server. Requires qpopper.init. |
| Qpopper (inetd mode) | 4.0.4 | qpopper-inetd.spec | As above, but this spec file is better if you prefer to run Qpopper from inetd/xinetd - it compiles by default without the --enable-standalone option, and omits the SysV init/chkconfig stuff. |
| sophie (v3) | 3.03 | sophie3.spec | Use in conjunction with the Sophos spec below. You'll also need sophie.init. |
| sophie (v1) | 1.42 | sophie.spec | Version of the above for the old (v1.x) series of sophie. You'll also need sophie.init. |
| Sophos Antivirus | 3.70 | sophos.spec | Replaces my libsavi spec; ideal for use with the sophie spec above. Includes the shared library, config file, virus data file, InterCheck daemon and Sophos Sweep. Latest version no longer needs an external sav.conf to build; it's generated automatically. The InterCheck support is not well-developed. |
PHP and related packages
| Package | Version | Spec file | Notes |
|---|---|---|---|
| PHP (v4) | 4.3.4 | php434.spec | Compiles as both an Apache module and a command line binary. Doesn't mess with your httpd.conf file. Uses the far more sensible location /etc/php.ini than the default. Compiles as commandline by default, with optional Apache module. |
| PHP (v5) | 5.0.0b2 | php500.spec | Spec for the forthcoming PHP5 release |
| PHP manual | 20031102 | phpmanual.spec | Handy for use with PHP Help, below. Update the version number to reflect the date you download the manual tarball. |
| PHP Help | 1.0.2 | phphelp.spec | See my PHP Helppage for more details. |
| Zend Optimizer | 2.1.0 | ZendOptimizer.spec | Packages the binary Zend Optimizer for PHP into an RPM. Modify the code_ver parameter to suit your version of PHP. |
Random userland applications
| Package | Version | Spec file | Notes |
|---|---|---|---|
| Adobe Acrobat Reader | 5.0.7 | AcrobatReader.spec | Messes around a bit to achieve the required result including patching the install file so you'll need this patch. I've also made a small desktop file which will make it appear in the menus on many standard configurations. Check the spec file for some install paths you can alter, although you will have to update the patch too. NB Red Hat 9 users may need to set the LANG variable in their environment to the non-UTF8 version, i.e. "en_GB" instead of "en_GB.UTF-8". |
| avifile - Win32 Codecs | 011002 | avifile-codecs.spec | A spec file to package the avifile Win32 binary codecs as an RPM |
| Blackdown Java2 Runtime Environment | 1.3.1 | j2re.spec | The Blackdown documentation mentions RPM install packages, but I can't find one, so this spec file will turn the downloadable binary .tar.bz2 into an RPM. |
| compface | 1.4 | compface.spec | |
| Deck-It WAP/WML Previewer | 1.2.4 | deckit.spec | |
| GIMP WinICO plugin | 1.0.0 | gimp-winicon-plugin.spec | |
| GPGME | 0.3.14 | gpgme.spec | Handy for use with the excellent mail client Sylpheed. |
| MPlayer - Win32 Codecs | 0.60 | MPlayer-codecs.spec | A spec file to package the MPlayer Win32 binary codecs as an RPM. Note that this is just the codecs - go here for MPlayer RPMs |
| Nserver | 1.0.0 | nserver.spec | Essential program for Nokia 9000/9110 owners |
| RealSystem Producer Basic | 8.51 | realproducer.spec | Packages the RealSystem Producer Basic binaries as an RPM. I've been a bit naughty here - you need to rename the downloaded file to be realproducer_8.51_linux.tar. This is mostly deprecated and replaced by Helix. |
| recover | 1.3 | recover.spec | Absolutely essential tool! Install it now! |
| Alcatel SpeedTouch ADSL modem management module | 1.3.4 | speedmgmt.spec | Packages the binary module (ONLY!) from the Alcatel distribution. Ideal for use with the GPL SpeedTouch drivers. |
| rpl | 1.4.0 | rpl.spec | |
| TKDiff | 3.09 | tkdiff.spec | Brilliant visual diff program. |
| whatmask | 1.1 | whatmask.spec | Fixes some of the problems with the original supplied by the author, including not overwriting system files and capable of building as non-root. Also packages the extra man page (see author's site). |
| YAREC | 0.65 | yarec.spec | Sound recording program. |
Linux kernel
Note: these specs have not been maintained for a while, and also require that you build as root rather than a normal user - not so good. I may update them at some point.
| Package | Version | Spec file | Notes |
|---|---|---|---|
| kernel | 2.4.20 | kernel-2.4.20.spec | A sensible kernel spec file that isn't 150KiB (like Red Hat's). OK, so it's not as generic and there is a minor hack in there, but it works very well for me and others. ALSO! Includes (optional) support for Robert Love's pre-emptive kernel patch. I've set the revision number to 100 to avoid any possible conflicts with Red Hat-supplied kernels |
| kernel | 2.4.19 | kernel-2.4.19.spec | Older version of the above |
| kernel | 2.4.18 | kernel-2.4.18.spec | Older version of the above |