A. Get and install Sablotron and Sablot-devel RPMs: http://dag.wieers.com/packages/sablotron/ Code: wget http://dag.wieers.com/packages/sablotron/sablotron-1.0.2-1.1.fc3.rf.x86_64.rpm rpm -Uvh sablotron-1.0.2-1.1.fc3.rf.x86_64.rpm wget http://dag.wieers.com/packages/sablotron/sablotron-devel-1.0.2-1.1.fc3.rf.i386.rpm rpm -Uvh sablotron-devel-1.0.2-1.1.fc3.rf.i386.rpm ***Get appropriate RPMs for your OS. +++++++++++++++++++++++++++++++++++ B. Get and install JS Code: wget http://dag.wieers.com/packages/js/js-1.5-0.rc6a.1.fc3.rf.i386.rpm rpm -Uvh js-1.5-0.rc6a.1.fc3.rf.i386.rpm wget http://dag.wieers.com/packages/js/js-devel-1.5-0.rc6a.1.fc3.rf.i386.rpm rpm -Uvh js-devel-1.5-0.rc6a.1.fc3.rf.i386.rpm ***Get appropriate RPMs for your OS. +++++++++++++++++++++++++++++++++++ 1. Install the php SRPM: Code: rpm -Uvh http://updates.interworx.info/iworx/SRPMS/php-4.3.10-103.iworx.src.rpm +++++++++++++++++++++++++++++++++++ 2. Prepare Build - Edit the php SPEC file, which is located at: /usr/src/redhat/SPECS/php.spec a. Optionally add the following to the '%if %{build_' section for your OS. This is not required but is helpful in stopping a build early if something is missing. The build can be a lengthy operation. Code: BuildRequires: sablotron-devel, js-devel b. Add the necessary Sablotron flags to the configure section. See example php.spec file. I added the following: --enable-xml2 \ --with-xml2 \ --enable-xslt \ --with-xslt-sablot \ --with-sablot-js=%{_prefix} \ c. Edit the '%define bversion' at the beginning of the file and change it from the current value to 1 + cur value. i.e. change 103 to 104. +++++++++++++++++++++++++++++++++++ 3. Install rpmbuild (if not already present) Code: yum install rpm-build +++++++++++++++++++++++++++++++++++ 4. Install Dependent Files - rpmbuild may generate a list of missing dependencies. The following is an example based a particular Fedora Core 3 installation. The list of missing dependencies generated when rpmbuild runs and may vary widely. Code: yum install bzip2-devel db4-devel expat-devel freetype-devel gdbm-devel gmp-devel aspell-devel libjpeg-devel libpng-devel pam-devel libstdc++-devel ncurses-devel pcre-devel libmcrypt-devel postgresql-devel unixODBC-devel libxslt-devel libxml2-devel cyrus-sasl-devel openldap-devel libc-client-devel readline-devel apr-devel apr-util-devel net-snmp-devel elfutils-devel wget http://dag.wieers.com/packages/libmhash/libmhash-0.9.1-1.1.fc3.rf.i386.rpm rpm -Uvh libmhash-0.9.1-1.1.fc3.rf.i386.rpm wget http://dag.wieers.com/packages/libmhash/libmhash-devel-0.9.1-1.1.fc3.rf.i386.rpm rpm -Uvh libmhash-devel-0.9.1-1.1.fc3.rf.i386.rpm ***After running YUM on the list, a few apps may not be found. See Dag RPM site for these missing RPMs for your OS. +++++++++++++++++++++++++++++++++++ 5. Rebuild Code: rpmbuild -bb --with fdr30 /usr/src/redhat/SPECS/php.spec This will build php and stick the resulting RPMS in /usr/src/redhat/RPMS/i386 ***This will take some time depending on your server. +++++++++++++++++++++++++++++++++++ 6. Install the RPMs Code: cd /usr/src/redhat/RPMS/i386 *Check to be sure on one version of RPMs are present. The installation command below assumes you have only one set (version) of RPMS, as it will install all files in that directory. Code: rpm -Uvh * +++++++++++++++++++++++++++++++++++ 7. Restart Apache Code: /etc/rc.d/init.d/httpd restart +++++++++++++++++++++++++++++++++++ 8. Edit YUM. You need to edit the /etc/yum.conf file so future php updates don't overwrite your custom version. InterWorx says they'll try to get Sablotron support in the upcoming 4.3.11 release of PHP but I can't make any promises today. /etc/yum.conf, look for the "exclude=". Add 'php' after the =, i.e. exclude=php +++++++++++++++++++++++++++++++++++ Nick Kraft nkraft@indigo8.com