%bcond_without apache2 # disable building apache 2.x module
%bcond_without fcgi # disable building FCGI SAPI
%bcond_without zts # disable experimental-zts
+%bcond_with tests # default off; test process very often hangs on buildersl; perform "make test"
%bcond_with versioning # build with experimental versioning (to load php4/php5 into same apache)
%define apxs1 /usr/sbin/apxs1
%undefine with_filter
%endif
-%define _rel 1
+%define _rel 2
Summary: PHP: Hypertext Preprocessor
Summary(fr.UTF-8): Le langage de script embarque-HTML PHP
Summary(pl.UTF-8): Język skryptowy PHP
Summary(ru.UTF-8): PHP Версии 5 - язык препроцессирования HTML-файлов, выполняемый на сервере
Summary(uk.UTF-8): PHP Версії 5 - мова препроцесування HTML-файлів, виконувана на сервері
Name: php
-Version: 5.2.1
+Version: 5.2.4
Release: %{_rel}%{?with_hardening:hardened}
Epoch: 4
License: PHP
Group: Libraries
Source0: http://www.php.net/distributions/%{name}-%{version}.tar.bz2
-# Source0-md5: 261218e3569a777dbd87c16a15f05c8d
+# Source0-md5: 55c97a671fdabf462cc7a82971a656d2
Source2: zend.gif
Source3: %{name}-mod_%{name}.conf
Source4: %{name}-cgi-fcgi.ini
Patch9: %{name}-sh.patch
Patch10: %{name}-ini.patch
Patch11: %{name}-acam.patch
-#Patch15: %{name}-threads-acfix.patch
-Patch16: %{name}-tsrmlsfetchgcc2.patch
-Patch17: %{name}-no_pear_install.patch
-Patch18: %{name}-zlib.patch
-Patch19: %{name}-sybase-fix.patch
-Patch20: %{name}-readline.patch
-Patch21: %{name}-nohttpd.patch
-Patch23: %{name}-gd_imagerotate_enable.patch
-Patch24: %{name}-uint32_t.patch
-Patch26: %{name}-dba-link.patch
-Patch30: %{name}-hardening-fix.patch
-Patch31: %{name}-both-apxs.patch
-Patch32: %{name}-builddir.patch
-Patch33: %{name}-zlib-for-getimagesize.patch
-Patch35: %{name}-versioning.patch
-Patch36: %{name}-linkflags-clean.patch
-
-Patch39: %{name}-pear.patch
-Patch41: %{name}-config-dir.patch
+# XXX: needs fix
+Patch12: %{name}-threads-acfix.patch
+Patch13: %{name}-tsrmlsfetchgcc2.patch
+Patch14: %{name}-no_pear_install.patch
+Patch15: %{name}-zlib.patch
+Patch16: %{name}-sybase-fix.patch
+Patch17: %{name}-readline.patch
+Patch18: %{name}-nohttpd.patch
+Patch19: %{name}-gd_imagerotate_enable.patch
+Patch20: %{name}-uint32_t.patch
+Patch21: %{name}-dba-link.patch
+Patch22: %{name}-hardening-fix.patch
+Patch23: %{name}-both-apxs.patch
+Patch24: %{name}-builddir.patch
+Patch25: %{name}-zlib-for-getimagesize.patch
+Patch26: %{name}-versioning.patch
+Patch27: %{name}-linkflags-clean.patch
+Patch28: %{name}-pear.patch
+Patch29: %{name}-config-dir.patch
+Patch30: %{name}-mysql.patch
URL: http://www.php.net/
%{?with_interbase:%{!?with_interbase_inst:BuildRequires: Firebird-devel >= 1.0.2.908-2}}
%{?with_pspell:BuildRequires: aspell-devel >= 2:0.50.0}
%define php_sysconfdir /etc/php
%define php_extensiondir %{_libdir}/php
+%define _sysconfdir %{php_sysconfdir}
# must be in sync with source. extra check ensuring that it is so is done in %%build
%define php_api_version 20041225
Provides: php(standard)
Provides: php(zend_extension_api) = %{zend_extension_api}
Provides: php(zend_module_api) = %{zend_module_api}
+%{?with_pcre:Provides: php-pcre}
Provides: php5(debug) = %{php_debug}
Provides: php5(thread-safety) = %{zend_zts}
Obsoletes: php-pcre < 4:5.2.0
Requires: autoconf
Requires: automake
Requires: libtool
+%{?with_pcre:Requires: pcre-devel >= 6.6}
Requires: shtool
Obsoletes: php-pear-devel
Obsoletes: php4-devel
Requires: %{name}-common = %{epoch}:%{version}-%{release}
Requires: %{name}-pdo = %{epoch}:%{version}-%{release}
Provides: php(pdo-pgsql)
+Provides: php-pecl-PDO_PGSQL
Obsoletes: php-pecl-PDO_PGSQL
%description pdo-pgsql
Requires: %{name}-common = %{epoch}:%{version}-%{release}
Provides: php(sybase)
Obsoletes: php-sybase-ct
+Conflicts: php-sybase-ct
%description sybase
This is a dynamic shared object (DSO) for PHP that will add Sybase and
Requires: %{name}-common = %{epoch}:%{version}-%{release}
Provides: php(sybase-ct)
Obsoletes: php-sybase
+Conflicts: php-sybase
%description sybase-ct
This is a dynamic shared object (DSO) for PHP that will add Sybase and
Summary(pl.UTF-8): Moduł xsl dla PHP
Group: Libraries
Requires: %{name}-common = %{epoch}:%{version}-%{release}
+Requires: %{name}-dom = %{epoch}:%{version}-%{release}
Requires: libxslt >= 1.0.18
# actually not true, functionality is similar, but API differs
Provides: php(xsl)
%prep
%setup -q
-%patch36 -p1
+%patch27 -p1
%patch0 -p1
%patch1 -p1
%patch2 -p1
# for ac2.53b/am1.6b - AC_LANG_CXX has AM_CONDITIONAL, so cannot be invoked
# conditionally...
%patch11 -p1
-#%patch15 -p1 # breaks with ac cache vars, but later -lpthread is missing ...
+#%patch12 -p1 # breaks with ac cache vars, but later -lpthread is missing ...
+%patch13 -p1
+%patch14 -p1
+%patch15 -p1
%patch16 -p1
%patch17 -p1
%patch18 -p1
%patch19 -p1
%patch20 -p1
%patch21 -p1
-%patch23 -p1
-%patch24 -p1
-%patch26 -p1
%if %{with hardening}
zcat %{SOURCE8} | patch -p1 || exit 1
-patch -p1 < %{PATCH30} || exit 1
+patch -p1 < %{PATCH22} || exit 1
%endif
-%patch31 -p1
-%patch32 -p1
-%patch33 -p1
+%patch23 -p1
+%patch24 -p1
+%patch25 -p1
-%{?with_versioning:%patch35 -p1}
+%{?with_versioning:%patch26 -p1}
-%patch39 -p1
-%patch41 -p1
+%patch28 -p1
+%patch29 -p1
+%patch30 -p1
# conflict seems to be resolved by recode patches
rm -f ext/recode/config9.m4
%{__make} build-modules
%if %{with apache1}
-%{__make} libtool-sapi LIBTOOL_SAPI=sapi/apache/libphp5.la -f Makefile.apxs1
+%{__make} libtool-sapi LIBTOOL_SAPI=sapi/apache/libphp5.la -f Makefile.apxs1 LDFLAGS=-lpthread
%endif
%if %{with apache2}
# FCGI
%if %{with fcgi}
cp -af php_config.h.fcgi main/php_config.h
-%{__make} sapi/cgi/php -f Makefile.fcgi LDFLAGS=-lpthread
+%{__make} sapi/cgi/php-cgi -f Makefile.fcgi LDFLAGS=-lpthread
cp -r sapi/cgi sapi/fcgi
rm -rf sapi/cgi/.libs sapi/cgi/*.lo
%endif
# CGI
cp -af php_config.h.cgi main/php_config.h
-%{__make} sapi/cgi/php -f Makefile.cgi LDFLAGS=-lpthread
+%{__make} sapi/cgi/php-cgi -f Makefile.cgi LDFLAGS=-lpthread
# CLI
cp -af php_config.h.cli main/php_config.h
%{__make} sapi/cli/php -f Makefile.cli LDFLAGS=-lpthread
+%if %{with tests}
+# Run tests, using the CLI SAPI
+export NO_INTERACTION=1 REPORT_EXIT_STATUS=1 MALLOC_CHECK_=2
+unset TZ LANG LC_ALL || :
+%{__make} test
+unset NO_INTERACTION REPORT_EXIT_STATUS MALLOC_CHECK_
+%endif
+
%install
rm -rf $RPM_BUILD_ROOT
install -d $RPM_BUILD_ROOT{%{_libdir}/{php,apache{,1}},%{php_sysconfdir}/{apache,cgi}} \
sed -i -e 's|libphp_common.la|$(libdir)/libphp_common.la|' $RPM_BUILD_ROOT%{_libdir}/php/build/acinclude.m4
# install CGI
-libtool --silent --mode=install install sapi/cgi/php $RPM_BUILD_ROOT%{_bindir}/php.cgi
+libtool --silent --mode=install install sapi/cgi/php-cgi $RPM_BUILD_ROOT%{_bindir}/php.cgi
# install FCGI
%if %{with fcgi}
-libtool --silent --mode=install install sapi/fcgi/php $RPM_BUILD_ROOT%{_bindir}/php.fcgi
+libtool --silent --mode=install install sapi/fcgi/php-cgi $RPM_BUILD_ROOT%{_bindir}/php.fcgi
%endif
# install CLI