# To recompile using the Oracle Instant Client libraries, use: # rpmbuild --rebuild --define 'oracle 1' php-4.3.2-X.ent.src.rpm %{!?oracle:%define oracle 0} %define contentdir /var/www %define apiver 20041225 %define zendver 20050922 %define pdover 20060409 # Version of Instant Client RPM. christopher.jones@oracle.com May 2007 %define ociver 10.2.0.4 # For testing OCI8 and PDO_OCI. Use the password of the SYSTEM schema # and the connection string for the target # database. christopher.jones@oracle.com May 2007 %define oci8_test_system_password oracle %define oci8_test_connection_string localhost/orcl # Set oci8_test_local_db to TRUE when the Oracle DB is on the machine # building the RPMS. Otherwise set it to FALSE. # christopher.jones@oracle.com May 2007 %define oci8_test_local_db TRUE Summary: The PHP HTML-embedded scripting language. (PHP: Hypertext Preprocessor) Name: php Version: 5.1.6 Release: 23.2%{?dist}.ora License: The PHP License v3.01 Group: Development/Languages URL: http://www.php.net/ Source0: http://www.php.net/distributions/php-%{version}.tar.gz Source50: php.conf Source51: php.ini Patch1: php-5.1.4-gnusrc.patch Patch2: php-5.1.4-warnings.patch Patch5: php-4.3.3-install.patch Patch6: php-5.0.4-norpath.patch Patch7: php-4.3.2-libtool15.patch Patch13: php-5.0.2-phpize64.patch Patch14: php-5.1.6-ecalloc.patch Patch15: php-5.2.0-includedir.patch Patch16: php-5.1.6-bug38534.patch Patch17: php-5.1.6-umask.patch Patch18: php-4.3.9-metaphone.patch Patch19: php-5.1.6-zendecase.patch Patch20: php-5.1.6-zendhash.patch # Fixes for extension modules Patch21: php-4.3.1-odbc.patch Patch22: php-4.3.11-shutdown.patch Patch23: php-5.1.6-xmlstream.patch Patch24: php-5.1.6-imapplain.patch Patch25: php-5.1.6-bug37368.patch Patch26: php-5.1.6-pdomysqllive.patch Patch27: php-5.1.6-bug37514.patch # Functional changes Patch30: php-5.0.4-dlopen.patch Patch31: php-5.0.0-easter.patch Patch32: php-5.1.6-systzdata.patch Patch33: php-5.1.6-pdoref.patch # Fixes for tests Patch50: php-5.0.4-tests-dashn.patch Patch51: php-5.0.4-tests-wddx.patch Patch52: php-5.1.6-tests-date.patch # Oci8 Patch Patch60: php-5.1.6-oci8conf.patch # Security fixes Patch70: php-4.3.9-CVE-2006-5465.patch Patch71: php-5.1.6-CVE-2007-0906-imap.patch Patch72: php-4.3.9-CVE-2007-0906-strreplace.patch Patch73: php-4.3.9-CVE-2007-0907.patch Patch74: php-4.3.9-CVE-2007-0908.patch Patch75: php-4.3.9-CVE-2007-0909-odbc.patch Patch76: php-4.3.9-CVE-2007-0909-printf.patch Patch77: php-5.1.6-CVE-2007-0910.patch Patch78: php-4.3.9-CVE-2007-0988.patch Patch79: php-5.1.6-CVE-2007-1285.patch Patch80: php-5.1.6-CVE-2007-1583.patch Patch81: php-5.1.6-CVE-2007-0455.patch Patch82: php-5.1.6-CVE-2007-1001.patch Patch83: php-5.1.6-CVE-2007-1718.patch Patch84: php-5.1.6-CVE-2007-1864.patch Patch85: php-5.1.6-soapredir.patch Patch86: php-5.1.6-ftpcrlf.patch Patch87: php-5.1.6-CVE-2007-2872.patch Patch88: php-5.1.6-CVE-2007-4658.patch Patch89: php-5.1.6-CVE-2007-2756.patch Patch90: php-5.1.6-CVE-2007-3799.patch Patch91: php-5.1.6-CVE-2007-3996.patch Patch92: php-5.1.6-CVE-2007-4670.patch Patch93: php-5.1.6-CVE-2007-3998.patch Patch94: php-5.1.6-CVE-2007-5898.patch Patch95: php-5.1.6-CVE-2007-4782.patch Patch96: php-5.1.6-CVE-2007-5899.patch Patch97: php-5.1.6-CVE-2008-2051.patch Patch98: php-5.1.6-CVE-2008-210x.patch Patch99: php-5.1.6-CVE-2008-3658.patch Patch100: php-5.1.6-CVE-2008-3660.patch Patch101: php-5.1.6-CVE-2008-5498.patch Patch102: php-5.1.6-CVE-2008-5557.patch Patch103: php-5.1.6-CVE-2008-5814.patch Patch104: php-5.1.6-mbstring-overload-func.patch Patch105: php-5.1.6-gdoverflow.patch BuildRoot: %{_tmppath}/%{name}-root BuildRequires: bzip2-devel, curl-devel >= 7.9, db4-devel, expat-devel BuildRequires: gmp-devel, aspell-devel >= 0.50.0 BuildRequires: httpd-devel >= 2.0.46-1, libjpeg-devel, libpng-devel, pam-devel BuildRequires: libstdc++-devel, openssl-devel, sqlite-devel >= 3.0.0 BuildRequires: zlib-devel, pcre-devel >= 4.5, smtpdaemon BuildRequires: bzip2, fileutils, file >= 4.0, perl, libtool >= 1.4.3, gcc-c++ Obsoletes: php-dbg, php3, phpfi, stronghold-php # Enforce Apache module ABI compatibility Requires: httpd-mmn = %(cat %{_includedir}/httpd/.mmn || echo missing-httpd-devel) Requires: file >= 4.0 Provides: mod_php = %{version}-%{release} Requires: php-common = %{version}-%{release} # For backwards-compatibility, require php-cli for the time being: Requires: php-cli = %{version}-%{release} %description PHP is an HTML-embedded scripting language. PHP attempts to make it easy for developers to write dynamically generated webpages. PHP also offers built-in database integration for several commercial and non-commercial database management systems, so writing a database-enabled webpage with PHP is fairly simple. The most common use of PHP coding is probably as a replacement for CGI scripts. The php package contains the module which adds support for the PHP language to Apache HTTP Server. %package cli Group: Development/Languages Summary: Command-line interface for PHP Requires: php-common = %{version}-%{release} Provides: php-cgi = %{version}-%{release} Provides: php-pcntl Requires: file >= 4.0 %description cli The php-cli package contains the command-line interface executing PHP scripts, /usr/bin/php, and the CGI interface. %package common Group: Development/Languages Summary: Common files for PHP Provides: php-api = %{apiver}, php-zend-abi = %{zendver} # Provides for all builtin modules: Provides: php-bz2, php-calendar, php-ctype, php-curl, php-date, php-exif Provides: php-ftp, php-gettext, php-gmp, php-hash, php-iconv, php-libxml Provides: php-mime_magic, php-openssl, php-pcre, php-posix, php-pspell Provides: php-reflection, php-session, php-shmop, php-simplexml, php-sockets Provides: php-spl, php-sysvsem, php-sysvshm, php-sysvmsg, php-tokenizer Provides: php-wddx, php-zlib, php-dbase %if %{oracle} Provides: php-oci8 %endif Obsoletes: php-openssl, php-dbase %description common The php-common package contains files used by both the php package and the php-cli package. %package devel Group: Development/Libraries Summary: Files needed for building PHP extensions. Requires: php = %{version}-%{release}, autoconf, automake Obsoletes: php-pecl-pdo-devel %description devel The php-devel package contains the files needed for building PHP extensions. If you need to compile your own PHP extensions, you will need to install this package. %package imap Summary: A module for PHP applications that use IMAP. Group: Development/Languages Requires: php-common = %{version}-%{release} Obsoletes: mod_php3-imap, stronghold-php-imap BuildRequires: krb5-devel, openssl-devel, libc-client-devel %description imap The php-imap package contains a dynamic shared object (DSO) for the Apache Web server. When compiled into Apache, the php-imap module will add IMAP (Internet Message Access Protocol) support to PHP. IMAP is a protocol for retrieving and uploading e-mail messages on mail servers. PHP is an HTML-embedded scripting language. If you need IMAP support for PHP applications, you will need to install this package and the php package. %package ldap Summary: A module for PHP applications that use LDAP. Group: Development/Languages Requires: php-common = %{version}-%{release} Obsoletes: mod_php3-ldap, stronghold-php-ldap BuildRequires: cyrus-sasl-devel, openldap-devel, openssl-devel %description ldap The php-ldap package is a dynamic shared object (DSO) for the Apache Web server that adds Lightweight Directory Access Protocol (LDAP) support to PHP. LDAP is a set of protocols for accessing directory services over the Internet. PHP is an HTML-embedded scripting language. If you need LDAP support for PHP applications, you will need to install this package in addition to the php package. %package pdo Summary: A database access abstraction module for PHP applications Group: Development/Languages Requires: php-common = %{version}-%{release} Obsoletes: php-pecl-pdo-sqlite, php-pecl-pdo Provides: php-pdo-abi = %{pdover} %description pdo The php-pdo package contains a dynamic shared object that will add a database access abstraction layer to PHP. This module provides a common interface for accessing MySQL, PostgreSQL or other databases. %package mysql Summary: A module for PHP applications that use MySQL databases. Group: Development/Languages Requires: php-common = %{version}-%{release}, php-pdo Provides: php_database, php-mysqli Obsoletes: mod_php3-mysql, stronghold-php-mysql BuildRequires: mysql-devel >= 4.1.0 %description mysql The php-mysql package contains a dynamic shared object that will add MySQL database support to PHP. MySQL is an object-relational database management system. PHP is an HTML-embeddable scripting language. If you need MySQL support for PHP applications, you will need to install this package and the php package. %package pgsql Summary: A PostgreSQL database module for PHP. Group: Development/Languages Requires: php-common = %{version}-%{release}, php-pdo Provides: php_database Obsoletes: mod_php3-pgsql, stronghold-php-pgsql BuildRequires: krb5-devel, openssl-devel, postgresql-devel %description pgsql The php-pgsql package includes a dynamic shared object (DSO) that can be compiled in to the Apache Web server to add PostgreSQL database support to PHP. PostgreSQL is an object-relational database management system that supports almost all SQL constructs. PHP is an HTML-embedded scripting language. If you need back-end support for PostgreSQL, you should install this package in addition to the main php package. %package odbc Group: Development/Languages Requires: php-common = %{version}-%{release}, php-pdo Summary: A module for PHP applications that use ODBC databases. Provides: php_database Obsoletes: stronghold-php-odbc BuildRequires: unixODBC-devel %description odbc The php-odbc package contains a dynamic shared object that will add database support through ODBC to PHP. ODBC is an open specification which provides a consistent API for developers to use for accessing data sources (which are often, but not always, databases). PHP is an HTML-embeddable scripting language. If you need ODBC support for PHP applications, you will need to install this package and the php package. %if %{oracle} %package oci8 Group: Development/Languages Summary: A module for PHP applications that use OCI8 databases. BuildRequires: oracle-instantclient-devel = %{ociver} Requires: php = %{version}-%{release}, oracle-instantclient-basic = %{ociver} php-pdo Provides: php_database, php-oci AutoReq: 0 AutoReqProv: No %description oci8 The php-oci8 package contains a dynamic shared object (DSO) for the Apache Web server. When compiled into Apache, the php-oci8 module will add OCI8 support to PHP. OCI8 is an extension for Oracle Database access. PHP is an HTML-embedded scripting language. If you need Oracle support for PHP applications, you can install this package and the php package. This package also contains PDO_OCI for use with the PDO extension. %endif %package soap Group: Development/Languages Requires: php-common = %{version}-%{release} Summary: A module for PHP applications that use the SOAP protocol BuildRequires: libxml2-devel %description soap The php-soap package contains a dynamic shared object that will add support to PHP for using the SOAP web services protocol. %package snmp Summary: A module for PHP applications that query SNMP-managed devices. Group: Development/Languages Requires: php-common = %{version}-%{release}, net-snmp BuildRequires: net-snmp-devel %description snmp The php-snmp package contains a dynamic shared object that will add support for querying SNMP devices to PHP. PHP is an HTML-embeddable scripting language. If you need SNMP support for PHP applications, you will need to install this package and the php package. %package xml Summary: A module for PHP applications which use XML Group: Development/Languages Requires: php-common = %{version}-%{release} Obsoletes: php-domxml, php-dom Provides: php-dom, php-xsl, php-domxml BuildRequires: libxslt-devel >= 1.0.18-1, libxml2-devel >= 2.4.14-1 %description xml The php-xml package contains dynamic shared objects which add support to PHP for manipulating XML documents using the DOM tree, and performing XSL transformations on XML documents. %package xmlrpc Summary: A module for PHP applications which use the XML-RPC protocol Group: Development/Languages Requires: php-common = %{version}-%{release} BuildRequires: expat-devel %description xmlrpc The php-xmlrpc package contains a dynamic shared object that will add support for the XML-RPC protocol to PHP. %package mbstring Summary: A module for PHP applications which need multi-byte string handling Group: Development/Languages Requires: php-common = %{version}-%{release} %description mbstring The php-mbstring package contains a dynamic shared object that will add support for multi-byte string handling to PHP. %package ncurses Summary: A module for PHP applications for using ncurses interfaces Group: Development/Languages Requires: php-common = %{version}-%{release} BuildRequires: ncurses-devel %description ncurses The php-ncurses package contains a dynamic shared object that will add support for using the ncurses terminal output interfaces. %package gd Summary: A module for PHP applications for using the gd graphics library Group: Development/Languages Requires: php-common = %{version}-%{release} BuildRequires: gd-devel, freetype-devel %description gd The php-gd package contains a dynamic shared object that will add support for using the gd graphics library to PHP. %package bcmath Summary: A module for PHP applications for using the bcmath library Group: Development/Languages Requires: php-common = %{version}-%{release} %description bcmath The php-bcmath package contains a dynamic shared object that will add support for using the bcmath library to PHP. %package dba Summary: A database abstraction layer module for PHP applications Group: Development/Languages Requires: php-common = %{version}-%{release} %description dba The php-dba package contains a dynamic shared object that will add support for using the DBA database abstraction layer to PHP. %prep %setup -q %patch1 -p1 -b .gnusrc %patch2 -p1 -b .warnings %patch5 -p1 -b .install %patch6 -p1 -b .norpath %patch7 -p1 -b .libtool15 %patch13 -p1 -b .phpize64 %patch14 -p1 -b .ecalloc %patch15 -p1 -b .includedir %patch16 -p1 -b .bug38534 %patch17 -p1 -b .umask %patch18 -p1 -b .metaphone %patch19 -p1 -b .zendecase %patch20 -p1 -b .zendhash %patch21 -p1 -b .odbc %patch22 -p1 -b .shutdown %patch23 -p1 -b .xmlstream %patch24 -p1 -b .imapplain %patch25 -p1 -b .bug37368 %patch26 -p1 -b .pdomysqllive %patch27 -p1 -b .bug37514 %patch30 -p1 -b .dlopen %patch31 -p1 -b .easter %patch32 -p1 -b .systzdata %patch33 -p1 -b .pdoref %patch50 -p1 -b .tests-dashn %patch51 -p1 -b .tests-wddx %patch52 -p1 -b .tests-date %patch60 -p0 -b .oci8 %patch70 -p1 -b .cve5465 %patch71 -p1 -b .cve0906-imap %patch72 -p1 -b .cve0906-strreplace %patch73 -p1 -b .cve0907 %patch74 -p1 -b .cve0908 %patch75 -p1 -b .cve0909-odbc %patch76 -p1 -b .cve0909-printf %patch77 -p1 -b .cve0910 %patch78 -p1 -b .cve0988 %patch79 -p1 -b .cve1285 %patch80 -p1 -b .cve1583 %patch81 -p1 -b .cve0455 %patch82 -p1 -b .cve1001 %patch83 -p1 -b .cve1718 %patch84 -p1 -b .cve1864 %patch85 -p1 -b .soapredir %patch86 -p1 -b .ftpcrlf %patch87 -p1 -b .cve2872 %patch88 -p1 -b .cve4658 %patch89 -p1 -b .cve2756 %patch90 -p1 -b .cve3799 ### patch105 adding overflow2() applied here; this fix is a ### prerequisite of both the -3996 and -3658 patches below: %patch105 -p1 -b .gdoverflow %patch91 -p1 -b .cve3996 %patch92 -p1 -b .cve4670 %patch93 -p1 -b .cve3998 %patch94 -p1 -b .cve5898 %patch95 -p1 -b .cve4782 %patch96 -p1 -b .cve5899 %patch97 -p1 -b .cve2051 %patch98 -p1 -b .cve210x %patch99 -p1 -b .cve3658 %patch100 -p1 -b .cve3660 %patch101 -p1 -b .cve5498 %patch102 -p1 -b .cve5557 %patch103 -p1 -b .cve5814 %patch104 -p1 -b .mbstring-overload-func # Prevent %%doc confusion over LICENSE files cp Zend/LICENSE Zend/ZEND_LICENSE cp TSRM/LICENSE TSRM_LICENSE cp regex/COPYRIGHT regex_COPYRIGHT cp ext/gd/libgd/README gd_README # Source is built twice: once for /usr/bin/php, once for the Apache DSO. mkdir build-cgi build-apache # Remove bogus test; position of read position after fopen(, "a+") # is not defined by C standard, so don't presume anything. rm -f ext/standard/tests/file/bug21131.phpt # Tests that fail. rm -f ext/standard/tests/file/bug22414.phpt \ ext/iconv/tests/bug16069.phpt %if %{oracle} rm -f ext/oci8/tests/bug27303.phpt \ ext/oci8/tests/bug27303_2.phpt \ ext/oci8/tests/bug27303_4.phpt %endif # Safety check for API version change. vapi=`sed -n '/#define PHP_API_VERSION/{s/.* //;p}' main/php.h` if test "x${vapi}" != "x%{apiver}"; then : Error: Upstream API version is now ${vapi}, expecting %{apiver}. : Update the apiver macro and rebuild. exit 1 fi # Safety check for Zend API version change. vzend=`sed -n '/#define ZEND_MODULE_API_NO/{s/^[^0-9]*//;p;}' Zend/zend_modules.h` if test "x${vzend}" != "x%{zendver}"; then : Error: Upstream Zend module ABI version is now ${vzend}, expecting %{zendver}. : Update the zendver macro and rebuild. exit 1 fi # Safety check for PDO ABI version change vpdo=`sed -n '/#define PDO_DRIVER_API/{s/.*[ ]//;p}' ext/pdo/php_pdo_driver.h` if test "x${vpdo}" != "x%{pdover}"; then : Error: Upstream PDO ABI version is now ${vpdo}, expecting %{pdover}. : Update the pdover macro and rebuild. exit 1 fi %build # Force use of system libtool: libtoolize --force --copy cat `aclocal --print-ac-dir`/libtool.m4 > build/libtool.m4 # Regenerate configure scripts (patches change config.m4's) ./buildconf --force CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing -Wno-pointer-sign" CPPFLAGS="-DLDAP_DEPRECATED=1" export CFLAGS CPPFLAGS # Install extension modules in %{_libdir}/php/modules. EXTENSION_DIR=%{_libdir}/php/modules; export EXTENSION_DIR # Set PEAR_INSTALLDIR to ensure that the hard-coded include_path # includes the PEAR directory even though pear is packaged # separately. PEAR_INSTALLDIR=%{_datadir}/pear; export PEAR_INSTALLDIR # Shell function to configure and build a PHP tree. build() { # bison-1.875-2 seems to produce a broken parser; workaround. mkdir Zend && cp ../Zend/zend_{language,ini}_{parser,scanner}.[ch] Zend ln -sf ../configure %configure \ --cache-file=../config.cache \ --with-libdir=%{_lib} \ --with-config-file-path=%{_sysconfdir} \ --with-config-file-scan-dir=%{_sysconfdir}/php.d \ --disable-debug \ --with-pic \ --disable-rpath \ --without-pear \ --with-bz2 \ --with-curl \ --with-exec-dir=%{_bindir} \ --with-freetype-dir=%{_prefix} \ --with-png-dir=%{_prefix} \ --enable-gd-native-ttf \ --without-gdbm \ --with-gettext \ --with-gmp \ --with-iconv \ --with-jpeg-dir=%{_prefix} \ --with-openssl \ --with-png \ --with-pspell \ --with-expat-dir=%{_prefix} \ --with-pcre-regex=%{_prefix} \ --with-zlib \ --with-layout=GNU \ --enable-exif \ --enable-ftp \ --enable-magic-quotes \ --enable-sockets \ --enable-sysvsem --enable-sysvshm --enable-sysvmsg \ --enable-track-vars \ --enable-trans-sid \ --enable-yp \ --enable-wddx \ --with-kerberos \ --enable-ucd-snmp-hack \ --with-unixODBC=shared,%{_prefix} \ --enable-memory-limit \ --enable-shmop \ --enable-calendar \ --enable-dbx \ --enable-dio \ --with-mime-magic=%{_datadir}/file/magic.mime \ --without-sqlite \ --with-libxml-dir=%{_prefix} \ --with-xml \ --with-system-tzdata \ $* if test $? != 0; then tail -500 config.log : configure failed exit 1 fi make %{?_smp_mflags} } # Build /usr/bin/php-cgi with the CGI SAPI, and all the shared extensions pushd build-cgi build --enable-force-cgi-redirect \ --enable-pcntl \ --with-imap=shared --with-imap-ssl \ --enable-mbstring=shared --enable-mbstr-enc-trans \ --enable-mbregex \ --with-ncurses=shared \ --with-gd=shared \ --enable-bcmath=shared \ --enable-dba=shared --with-db4=%{_prefix} \ --with-xmlrpc=shared \ --with-ldap=shared --with-ldap-sasl \ --with-mysql=shared,%{_prefix} \ --with-mysqli=shared,%{_bindir}/mysql_config \ --enable-dom=shared \ --with-dom-xslt=%{_prefix} --with-dom-exslt=%{_prefix} \ %if %{oracle} --with-pdo-oci=shared,instantclient,/usr,%{ociver} \ --with-oci8=shared,instantclient,/usr/lib/oracle/%{ociver}/client/lib \ --enable-sigchild \ %endif --with-pgsql=shared \ --with-snmp=shared,%{_prefix} \ --enable-soap=shared \ --with-xsl=shared,%{_prefix} \ --enable-xmlreader=shared --enable-xmlwriter=shared \ --enable-fastcgi \ --enable-pdo=shared \ --with-pdo-odbc=shared,unixODBC,%{_prefix} \ --with-pdo-mysql=shared,%{_prefix} \ --with-pdo-pgsql=shared,%{_prefix} \ --with-pdo-sqlite=shared,%{_prefix} \ --enable-dbase=shared popd # Build Apache module, and the CLI SAPI, /usr/bin/php pushd build-apache build --with-apxs2=%{_sbindir}/apxs \ --without-mysql --without-gd \ --without-odbc --disable-dom \ --disable-dba --without-unixODBC \ --disable-pdo --disable-xmlreader --disable-xmlwriter popd %check cd build-apache # Run tests, using the CLI SAPI export NO_INTERACTION=1 REPORT_EXIT_STATUS=1 MALLOC_CHECK_=2 unset TZ LANG LC_ALL make test || true %if %{oracle} # Allows PDO_OCI tests to connect. christopher.jones@oracle.com May 2007 export PDO_OCI_TEST_DSN=oci:dbname=%{oci8_test_connection_string} export PDO_OCI_TEST_USER=system export PDO_OCI_TEST_PASS=%{oci8_test_system_password} # Allows OCI8 tests to connect. christopher.jones@oracle.com Dec 2007 export PHP_OCI8_TEST_USER=system export PHP_OCI8_TEST_PASS=%{oci8_test_system_password} export PHP_OCI8_TEST_DB=%{oci8_test_connection_string} export PHP_OCI8_TEST_DB_ON_LOCALHOST=TRUE %endif set +x for f in `find .. -name \*.diff -type f -print`; do echo "TEST FAILURE: $f --" cat "$f" echo -e "\n-- $f result ends." done set -x unset NO_INTERACTION REPORT_EXIT_STATUS MALLOC_CHECK_ %if %{oracle} unset PDO_OCI_TEST_DSN PDO_OCI_TEST_USER PDO_OCI_TEST_PASS PHP_OCI8_TEST_USER PHP_OCI8_TEST_PASS PHP_OCI8_TEST_DB PHP_OCI8_TEST_DB_ON_LOCALHOST %endif %install [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT # Install everything from the CGI SAPI build pushd build-cgi make install INSTALL_ROOT=$RPM_BUILD_ROOT mv $RPM_BUILD_ROOT%{_bindir}/php $RPM_BUILD_ROOT%{_bindir}/php-cgi # Install the CLI SAPI as /usr/bin/php make install-cli INSTALL_ROOT=$RPM_BUILD_ROOT popd # Install the Apache module pushd build-apache make install-sapi INSTALL_ROOT=$RPM_BUILD_ROOT popd # Install the default configuration file and icons install -m 755 -d $RPM_BUILD_ROOT%{_sysconfdir}/ install -m 644 $RPM_SOURCE_DIR/php.ini $RPM_BUILD_ROOT%{_sysconfdir}/php.ini install -m 755 -d $RPM_BUILD_ROOT%{contentdir}/icons install -m 644 *.gif $RPM_BUILD_ROOT%{contentdir}/icons/ # For PEAR packaging: install -m 755 -d $RPM_BUILD_ROOT%{_libdir}/php/pear # Use correct libdir sed -i -e 's|%{_prefix}/lib|%{_libdir}|' $RPM_BUILD_ROOT%{_sysconfdir}/php.ini # install the DSO install -m 755 -d $RPM_BUILD_ROOT%{_libdir}/httpd/modules install -m 755 build-apache/libs/libphp5.so $RPM_BUILD_ROOT%{_libdir}/httpd/modules # Apache config fragment install -m 755 -d $RPM_BUILD_ROOT/etc/httpd/conf.d install -m 644 $RPM_SOURCE_DIR/php.conf $RPM_BUILD_ROOT/etc/httpd/conf.d install -m 755 -d $RPM_BUILD_ROOT%{_sysconfdir}/php.d install -m 755 -d $RPM_BUILD_ROOT%{_localstatedir}/lib/php install -m 700 -d $RPM_BUILD_ROOT%{_localstatedir}/lib/php/session %if %{oracle} ocimod=oci8 pdomod=pdo_oci %endif # Generate files lists and stub .ini files for each subpackage for mod in pgsql mysql mysqli odbc ldap ${ocimod} snmp xmlrpc imap \ mbstring ncurses gd dom xsl soap bcmath dba xmlreader xmlwriter \ pdo pdo_mysql pdo_pgsql pdo_odbc ${pdomod} pdo_sqlite dbase; do cat > $RPM_BUILD_ROOT%{_sysconfdir}/php.d/${mod}.ini < files.${mod} < files.xml # The mysql and mysqli modules are both packaged in php-mysql cat files.mysqli >> files.mysql # Split out the PDO modules %if %{oracle} cat files.pdo_oci >> files.oci8 %endif cat files.pdo_mysql >> files.mysql cat files.pdo_pgsql >> files.pgsql cat files.pdo_odbc >> files.odbc # Package pdo_sqlite with pdo; isolating the sqlite dependency # isn't useful at this time since rpm itself requires sqlite. cat files.pdo_sqlite >> files.pdo # Package dbase in -common. cat files.dbase > files.common # Remove unpackaged files rm -rf $RPM_BUILD_ROOT%{_libdir}/php/modules/*.a \ $RPM_BUILD_ROOT%{_bindir}/{phptar} \ $RPM_BUILD_ROOT%{_datadir}/pear # Remove irrelevant docs rm -f README.{Zeus,QNX,CVS-RULES} %clean [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT rm files.* %files %defattr(-,root,root) %{_libdir}/httpd/modules/libphp5.so %attr(0770,root,apache) %dir %{_localstatedir}/lib/php/session %config %{_sysconfdir}/httpd/conf.d/php.conf %{contentdir}/icons/php.gif %files common -f files.common %defattr(-,root,root) %doc CODING_STANDARDS CREDITS EXTENSIONS INSTALL LICENSE NEWS README* %doc Zend/ZEND_* TSRM_LICENSE regex_COPYRIGHT %config %{_sysconfdir}/php.ini %dir %{_sysconfdir}/php.d %dir %{_libdir}/php %dir %{_libdir}/php/modules %dir %{_localstatedir}/lib/php %dir %{_libdir}/php/pear %files cli %defattr(-,root,root) %{_bindir}/php %{_bindir}/php-cgi %{_mandir}/man1/php.1* %files devel %defattr(-,root,root) %{_bindir}/php-config %{_bindir}/phpize %{_includedir}/php %{_libdir}/php/build %{_mandir}/man1/php-config.1* %{_mandir}/man1/phpize.1* %files pgsql -f files.pgsql %files mysql -f files.mysql %files odbc -f files.odbc %if %{oracle} %files oci8 -f files.oci8 %endif %files imap -f files.imap %files ldap -f files.ldap %files snmp -f files.snmp %files xml -f files.xml %files xmlrpc -f files.xmlrpc %files mbstring -f files.mbstring %files ncurses -f files.ncurses %files gd -f files.gd %doc gd_README %files soap -f files.soap %files bcmath -f files.bcmath %files dba -f files.dba %files pdo -f files.pdo %changelog * Mon Nov 9 2009 TSUDA Fumika 5.1.6-23.el5_3.ora - Add oci8 package * Thu Feb 26 2009 Joe Orton 5.1.6-23.2.el5 - ext/gd: fix overflow2 usage for CVE-2007-3996, CVE-2008-3658 * Thu Feb 26 2009 Joe Orton 5.1.6-23.1.el5 - add security fixes for CVE-2008-3658, CVE-2008-3660, CVE-2008-5498, CVE-2008-5557, CVE-2008-5814, and mbstring func_overload issue (#487369) * Wed Nov 12 2008 Joe Orton 5.1.6-23.el5 - date: further relative time handling fix for strotime (#444425) * Mon Aug 4 2008 Joe Orton 5.1.6-22.el5 - fix possible crash in metaphone() (#446183) - imap: link in AUTH=PLAIN authenticator (#447983) - Zend: fix class name case in error messages (#446180) - move gd_README from -common to -gd (#443812) - pdo: fix possible crash in error path (#429693) - add security fixes for CVE-2007-5898, CVE-2007-4782, CVE-2007-5899, CVE-2008-2051, CVE-2008-2107, CVE-2008-2108 (#445924) - date: fix handling of relative days in strtotime (#444419) - date: fix test suite failure with current tzdata (#454863) - Zend: fix behaviour of constructors during destructors (#456313) - pdo_mysql: detect stale db connections (#450880) * Fri Jun 6 2008 Joe Orton 5.1.6-21.el5 - reset umask after each request (#448074) * Tue Jan 15 2008 Joe Orton 5.1.6-20.el5 - use magic.mime provided by file (#240845) - fix possible crash with setlocale() (#428675) * Thu Jan 10 2008 Joe Orton 5.1.6-19.el5 - ext/date: fix test cases for recent timezone values (#266441) * Thu Jan 10 2008 Joe Orton 5.1.6-18.el5 - ext/date: updates for system tzdata support (#266441) * Wed Jan 9 2008 Joe Orton 5.1.6-17.el5 - ext/date: use system timezone database (#266441) * Tue Jan 8 2008 Joe Orton 5.1.6-16.el5 - add dbase extension in -common (#161639) - add /usr/share/php to builtin include_path (#238455) - ext/ldap: enable ldap_sasl_bind (#336221) - ext/libxml: reset stream context (#298031) * Wed Sep 12 2007 Joe Orton 5.1.6-15.el5 - improve fix for CVE-2007-3997 (#278411) * Fri Sep 7 2007 Joe Orton 5.1.6-14.el5 - fix backport for CVE-2007-3996 (#278411) * Thu Sep 6 2007 Joe Orton 5.1.6-13.el5 - add security fixes for CVE-2007-2756, CVE-2007-2872, CVE-2007-3799, CVE-2007-3996, CVE-2007-3998, CVE-2007-4658, CVE-2007-4670 (#278411) * Wed Apr 4 2007 Joe Orton 5.1.6-12.el5 - add security fix for CVE-2007-1864, SOAP redirect handling issue, FTP CRLF injection issue (#235016) * Wed Apr 4 2007 Joe Orton 5.1.6-11.el5 - add security fix for CVE-2007-1718 (#235016) * Tue Apr 3 2007 Joe Orton 5.1.6-9.el5 - add security fix for CVE-2007-1583 (#235016) - add security fixes for CVE-2007-0455, CVE-2007-1001 (#235036) * Fri Mar 9 2007 Joe Orton 5.1.6-7.el5 - add security fix for CVE-2007-1285 (#231597) * Fri Feb 16 2007 Joe Orton 5.1.6-6.el5 - add security fixes for: CVE-2007-0906, CVE-2007-0907, CVE-2007-0908, CVE-2007-0909, CVE-2007-0910, CVE-2007-0988 (#229013) * Tue Dec 19 2006 Joe Orton 5.1.6-5.el5 - fix version for php-zend-abi (#218758) * Thu Nov 23 2006 Joe Orton 5.1.6-4.el5 - php-xml provides php-domxml (#215656) - fix php-pdo-abi provide (#214281) - provide php-zend-abi (#212804) - don't Obsolete mod_php - fix PDO sqlite TEXT extraction truncate-by-one (#217033) - package php{ize,-config} man pages in -devel (#199382) - change module subpackages to require php-common not php (#177821) - add security fix for CVE-2006-5465 (#216114) * Wed Oct 4 2006 Joe Orton 5.1.6-3 - from upstream: add safety checks against integer overflow in _ecalloc * Tue Aug 29 2006 Joe Orton 5.1.6-2 - update to 5.1.6 (security fixes) - bump default memory_limit to 16M (#196802) * Wed Jul 12 2006 Jesse Keating - 5.1.4-8.1 - rebuild * Fri Jun 9 2006 Joe Orton 5.1.4-8 - Provide php-posix (#194583) - only provide php-pcntl from -cli subpackage - add missing defattr's (thanks to Matthias Saou) * Fri Jun 9 2006 Joe Orton 5.1.4-7 - move Obsoletes for php-openssl to -common (#194501) - Provide: php-cgi from -cli subpackage * Fri Jun 2 2006 Joe Orton 5.1.4-6 - split out php-cli, php-common subpackages (#177821) - add php-pdo-abi version export (#193202) * Wed May 24 2006 Radek Vokal 5.1.4-5.1 - rebuilt for new libnetsnmp * Thu May 18 2006 Joe Orton 5.1.4-5 - provide mod_php (#187891) - provide php-cli (#192196) - use correct LDAP fix (#181518) - define _GNU_SOURCE in php_config.h and leave it defined - drop (circular) dependency on php-pear * Mon May 8 2006 Joe Orton 5.1.4-3 - update to 5.1.4 * Wed May 3 2006 Joe Orton 5.1.3-3 - update to 5.1.3 * Tue Feb 28 2006 Joe Orton 5.1.2-5 - provide php-api (#183227) - add provides for all builtin modules (Tim Jackson, #173804) - own %%{_libdir}/php/pear for PEAR packages (per #176733) - add obsoletes to allow upgrade from FE4 PDO packages (#181863) * Fri Feb 10 2006 Jesse Keating - 5.1.2-4.3 - bump again for double-long bug on ppc(64) * Tue Feb 07 2006 Jesse Keating - 5.1.2-4.1 - rebuilt for new gcc4.1 snapshot and glibc changes * Tue Jan 31 2006 Joe Orton 5.1.2-4 - rebuild for new libc-client soname * Mon Jan 16 2006 Joe Orton 5.1.2-3 - only build xmlreader and xmlwriter shared (#177810) * Fri Jan 13 2006 Joe Orton 5.1.2-2 - update to 5.1.2 * Thu Jan 5 2006 Joe Orton 5.1.1-8 - rebuild again * Mon Jan 2 2006 Joe Orton 5.1.1-7 - rebuild for new net-snmp * Mon Dec 12 2005 Joe Orton 5.1.1-6 - enable short_open_tag in default php.ini again (#175381) * Fri Dec 09 2005 Jesse Keating - rebuilt * Thu Dec 8 2005 Joe Orton 5.1.1-5 - require net-snmp for php-snmp (#174800) * Sun Dec 4 2005 Joe Orton 5.1.1-4 - add /usr/share/pear back to hard-coded include_path (#174885) * Fri Dec 2 2005 Joe Orton 5.1.1-3 - rebuild for httpd 2.2 * Mon Nov 28 2005 Joe Orton 5.1.1-2 - update to 5.1.1 - remove pear subpackage - enable pdo extensions (php-pdo subpackage) - remove non-standard conditional module builds - enable xmlreader extension * Thu Nov 10 2005 Tomas Mraz 5.0.5-6 - rebuilt against new openssl * Mon Nov 7 2005 Joe Orton 5.0.5-5 - pear: update to XML_RPC 1.4.4, XML_Parser 1.2.7, Mail 1.1.9 (#172528) * Tue Nov 1 2005 Joe Orton 5.0.5-4 - rebuild for new libnetsnmp * Wed Sep 14 2005 Joe Orton 5.0.5-3 - update to 5.0.5 - add fix for upstream #34435 - devel: require autoconf, automake (#159283) - pear: update to HTTP-1.3.6, Mail-1.1.8, Net_SMTP-1.2.7, XML_RPC-1.4.1 - fix imagettftext et al (upstream, #161001) * Thu Jun 16 2005 Joe Orton 5.0.4-11 - ldap: restore ldap_start_tls() function * Fri May 6 2005 Joe Orton 5.0.4-10 - disable RPATHs in shared extensions (#156974) * Tue May 3 2005 Joe Orton 5.0.4-9 - build simplexml_import_dom even with shared dom (#156434) - prevent truncation of copied files to ~2Mb (#155916) - install /usr/bin/php from CLI build alongside CGI - enable sysvmsg extension (#142988) * Mon Apr 25 2005 Joe Orton 5.0.4-8 - prevent build of builtin dba as well as shared extension * Wed Apr 13 2005 Joe Orton 5.0.4-7 - split out dba and bcmath extensions into subpackages - BuildRequire gcc-c++ to avoid AC_PROG_CXX{,CPP} failure (#155221) - pear: update to DB-1.7.6 - enable FastCGI support in /usr/bin/php-cgi (#149596) * Wed Apr 13 2005 Joe Orton 5.0.4-6 - build /usr/bin/php with the CLI SAPI, and add /usr/bin/php-cgi, built with the CGI SAPI (thanks to Edward Rudd, #137704) - add php(1) man page for CLI - fix more test cases to use -n when invoking php * Wed Apr 13 2005 Joe Orton 5.0.4-5 - rebuild for new libpq soname * Tue Apr 12 2005 Joe Orton 5.0.4-4 - bundle from PEAR: HTTP, Mail, XML_Parser, Net_Socket, Net_SMTP - snmp: disable MSHUTDOWN function to prevent error_log noise (#153988) - mysqli: add fix for crash on x86_64 (Georg Richter, upstream #32282) * Mon Apr 11 2005 Joe Orton 5.0.4-3 - build shared objects as PIC (#154195) * Mon Apr 4 2005 Joe Orton 5.0.4-2 - fix PEAR installation and bundle PEAR DB-1.7.5 package * Fri Apr 1 2005 Joe Orton 5.0.4-1 - update to 5.0.4 (#153068) - add .phps AddType to php.conf (#152973) - better gcc4 fix for libxmlrpc * Wed Mar 30 2005 Joe Orton 5.0.3-5 - BuildRequire mysql-devel >= 4.1 - don't mark php.ini as noreplace to make upgrades work (#152171) - fix subpackage descriptions (#152628) - fix memset(,,0) in Zend (thanks to Dave Jones) - fix various compiler warnings in Zend * Thu Mar 24 2005 Joe Orton 5.0.3-4 - package mysqli extension in php-mysql - really enable pcntl (#142903) - don't build with --enable-safe-mode (#148969) - use "Instant Client" libraries for oci8 module (Kai Bolay, #149873) * Fri Feb 18 2005 Joe Orton 5.0.3-3 - fix build with GCC 4 * Wed Feb 9 2005 Joe Orton 5.0.3-2 - install the ext/gd headers (#145891) - enable pcntl extension in /usr/bin/php (#142903) - add libmbfl array arithmetic fix (dcb314@hotmail.com, #143795) - add BuildRequire for recent pcre-devel (#147448) * Wed Jan 12 2005 Joe Orton 5.0.3-1 - update to 5.0.3 (thanks to Robert Scheck et al, #143101) - enable xsl extension (#142174) - package both the xsl and dom extensions in php-xml - enable soap extension, shared (php-soap package) (#142901) - add patches from upstream 5.0 branch: * Zend_strtod.c compile fixes * correct php_sprintf return value usage * Mon Nov 22 2004 Joe Orton 5.0.2-8 - update for db4-4.3 (Robert Scheck, #140167) - build against mysql-devel - run tests in %%check * Wed Nov 10 2004 Joe Orton 5.0.2-7 - truncate changelog at 4.3.1-1 - merge from 4.3.x package: - enable mime_magic extension and Require: file (#130276) * Mon Nov 8 2004 Joe Orton 5.0.2-6 - fix dom/sqlite enable/without confusion * Mon Nov 8 2004 Joe Orton 5.0.2-5 - fix phpize installation for lib64 platforms - add fix for segfault in variable parsing introduced in 5.0.2 * Mon Nov 8 2004 Joe Orton 5.0.2-4 - update to 5.0.2 (#127980) - build against mysqlclient10-devel - use new RTLD_DEEPBIND to load extension modules - drop explicit requirement for elfutils-devel - use AddHandler in default conf.d/php.conf (#135664) - "fix" round() fudging for recent gcc on x86 - disable sqlite pending audit of warnings and subpackage split * Fri Sep 17 2004 Joe Orton 5.0.1-4 - don't build dom extension into 2.0 SAPI * Fri Sep 17 2004 Joe Orton 5.0.1-3 - ExclusiveArch: x86 ppc x86_64 for the moment * Fri Sep 17 2004 Joe Orton 5.0.1-2 - fix default extension_dir and conf.d/php.conf * Thu Sep 9 2004 Joe Orton 5.0.1-1 - update to 5.0.1 - only build shared modules once - put dom extension in php-dom subpackage again - move extension modules into %%{_libdir}/php/modules - don't use --with-regex=system, it's ignored for the apache* SAPIs * Wed Aug 11 2004 Tom Callaway - Merge in some spec file changes from Jeff Stern (jastern@uci.edu) * Mon Aug 09 2004 Tom Callaway - bump to 5.0.0 - add patch to prevent clobbering struct re_registers from regex.h - remove domxml references, replaced with dom now built-in - fix php.ini to refer to php5 not php4 * Wed Aug 04 2004 Florian La Roche - rebuild * Wed Jul 14 2004 Joe Orton 4.3.8-3 - update to 4.3.8 - catch some fd > FD_SETSIZE vs select() issues (#125258) * Mon Jun 21 2004 Joe Orton 4.3.7-4 - pick up test failures again - have -devel require php of same release * Thu Jun 17 2004 Joe Orton 4.3.7-3 - add gmp_powm fix (Oskari Saarenmaa, #124318) - split mbstring, ncurses, gd, openssl extns into subpackages - fix memory leak in apache2handler; use ap_r{write,flush} rather than brigade interfaces * Tue Jun 15 2004 Elliot Lee - rebuilt * Thu Jun 3 2004 Joe Orton 4.3.7-1 - update to 4.3.7 - have -pear subpackage require php of same VR * Wed May 26 2004 Joe Orton 4.3.6-6 - buildrequire smtpdaemon (#124430) - try switching to system libgd again (prevent symbol conflicts when e.g. mod_perl loads the system libgd library.) * Wed May 19 2004 Joe Orton 4.3.6-5 - don't obsolete php-imap (#123580) - unconditionally build -imap subpackage * Thu May 13 2004 Joe Orton 4.3.6-4 - remove trigger * Thu Apr 22 2004 Joe Orton 4.3.6-3 - fix umask reset "feature" (#121454) - don't use DL_GLOBAL when dlopen'ing extension modules * Sun Apr 18 2004 Joe Orton 4.3.6-2 - fix segfault on httpd SIGHUP (upstream #27810) * Fri Apr 16 2004 Joe Orton 4.3.6-1 - update to 4.3.6 (Robert Scheck, #121011) * Wed Apr 7 2004 Joe Orton 4.3.4-11 - add back imap subpackage, using libc-client (#115535) * Tue Mar 02 2004 Elliot Lee - rebuilt * Wed Feb 18 2004 Joe Orton 4.3.4-10 - eliminate /usr/local/lib RPATH in odbc.so - really use system pcre library * Fri Feb 13 2004 Elliot Lee 4.3.4-9 - rebuilt * Mon Feb 2 2004 Bill Nottingham 4.3.4-8 - obsolete php-imap if we're not building it * Wed Jan 28 2004 Joe Orton 4.3.4-7 - gd fix for build with recent Freetype2 (from upstream) - remove easter egg (Oden Eriksson, Mandrake) * Wed Jan 21 2004 Joe Orton 4.3.4-6 - php-pear requires php - also remove extension=imap from php.ini in upgrade trigger - merge from Taroon: allow upgrade from Stronghold 4.0 * Wed Jan 21 2004 Joe Orton 4.3.4-5 - add defattr for php-pear subpackage - restore defaults: output_buffering=Off, register_argc_argv=On - add trigger to handle php.ini upgrades smoothly (#112470) * Tue Jan 13 2004 Joe Orton 4.3.4-4 - conditionalize support for imap extension for the time being - switch /etc/php.ini to use php.ini-recommended (but leave variables_order as EGPCS) (#97765) - set session.path to /var/lib/php/session by default (#89975) - own /var/lib/php{,/session} and have apache own the latter - split off php-pear subpackage (#83771) * Sat Dec 13 2003 Jeff Johnson 4.3.4-3 - rebuild against db-4.2.52. * Mon Dec 1 2003 Joe Orton 4.3.4-2 - rebuild for new libxslt (#110658) - use --with-{mssql,oci8} for enabling extensions (#110482) - fix rebuild issues (Jan Visser, #110274) - remove hard-coded LIBS - conditional support for mhash (Aleksander Adamowski, #111251) * Mon Nov 10 2003 Joe Orton 4.3.4-1.1 - rebuild for FC1 updates * Mon Nov 10 2003 Joe Orton 4.3.4-1 - update to 4.3.4 - include all licence files - libxmlrpc fixes * Mon Oct 20 2003 Joe Orton 4.3.3-6 - use bundled libgd (#107407) - remove manual: up-to-date manual sources are no longer DFSG-free; it's too big; it's on the web anyway; #91292, #105804, #107384 * Wed Oct 15 2003 Joe Orton 4.3.3-5 - add php-xmlrpc subpackage (#107138) * Mon Oct 13 2003 Joe Orton 4.3.3-4 - drop recode support, symbols collide with MySQL * Sun Oct 12 2003 Joe Orton 4.3.3-3 - split domxml extension into php-domxml subpackage - enable xslt and xml support in domxml extension (#106042) - fix httpd-devel build requirement (#104341) - enable recode extension (#106755) - add workaround for #103982 * Thu Sep 25 2003 Jeff Johnson 4.3.3-3 - rebuild against db-4.2.42. * Sun Sep 7 2003 Joe Orton 4.3.3-2 - don't use --enable-versioning, it depends on libtool being broken (#103690) * Sun Sep 7 2003 Joe Orton 4.3.3-1 - update to 4.3.3 - add libtool build prereq (#103388) - switch to apache2handler * Mon Jul 28 2003 Joe Orton 4.3.2-8 - rebuild * Tue Jul 22 2003 Nalin Dahyabhai 4.3.2-7 - rebuild * Tue Jul 8 2003 Joe Orton 4.3.2-6 - use system pcre library * Mon Jun 9 2003 Joe Orton 4.3.2-5 - enable mbstring and mbregex (#81336) - fix use of libtool 1.5 * Wed Jun 04 2003 Elliot Lee - rebuilt * Tue Jun 3 2003 Joe Orton 4.3.2-3 - add lib64 and domxml fixes * Tue Jun 3 2003 Frank Dauer - added conditional support for mssql module (#92149) * Fri May 30 2003 Joe Orton 4.3.2-2 - update the -tests and -lib64 patches - fixes for db4 detection - require aspell-devel >= 0.50.0 for pspell compatibility * Thu May 29 2003 Joe Orton 4.3.2-1 - update to 4.3.2 * Fri May 16 2003 Joe Orton 4.3.1-3 - link odbc module correctly - patch so that php -n doesn't scan inidir - run tests using php -n, avoid loading system modules * Wed May 14 2003 Joe Orton 4.3.1-2 - workaround broken parser produced by bison-1.875 * Tue May 6 2003 Joe Orton 4.3.1-1 - update to 4.3.1; run test suite - open extension modules with RTLD_NOW rather than _LAZY