[CentOS] Rebuilding PHP: how do I manage updates?

Tue Jan 29 11:01:51 UTC 2008
Niki Kovacs <contact at kikinovak.net>

Hi,

Our public library management software (PMB) runs on Apache/PHP/MySQL. 
It requires some additional PHP modules to run correctly, namely:

1) php-gd
2) php-yaz
3) php-xslt

I've googled and fiddled around quite a bit, and come to the following 
conclusions:

1) php-gd can be installed from extra repos (rpmforge IIRC), so this 
one's no problem.

2) To install php-yaz, I have to install the yaz library first. To do 
this, I download the FC6 SRPM for yaz from www.indexdata.dk, it builds 
without any problem, and I install the resulting libyaz3 and 
libyaz3-devel. Then, I can install the according PHP module with a 
simple 'pecl install yaz'.

3) Apparently, there's no php-xslt module around. AFAIK, the only way to 
have it is to build it into PHP. So I went and downloaded the PHP SRPM 
from one of the CentOS mirrors. I edited php.spec and added the 
following configure option in php.spec:

--with-xslt-sablot

After installing a myriad of build dependencies, I launched 'rpmbuild 
-bb --clean php.spec', and after a while, I got my 
/usr/src/redhat/RPMS/i386 directory chock-full with resulting PHP packages.

I uninstalled everything I already had PHP-wise, like this:

yum remove `rpm qa | grep php`

Then I simply installed my resulting RPMS like this:

rpm -ivh php-*.rpm

I checked the PHP information page (with phpinfo()), and every module 
needed by my application was there.

Now I wonder: how will I manage security and/or bugfix updates for PHP 
and its modules in the future? When simply issuing 'yum update', any 
update to php will squash my rebuilt version, and PMB will become 
dysfunctional. My first idea would be: see if there are available 
updates, and in that case, download the according SRPM, rebuild and 
reinstall the whole thing. But that sounds a bit tedious.

Or simply put a line in /etc/yum.conf:

exclude=php php-*

???

Any suggestions?

Niki