%bcond_with system_libzip # with system libzip (reported broken: https://bugs.php.net/bug.php?id=60100)
%bcond_with gd_jis_conv # causes imagettfbbox(): any2eucjp(): invalid code in input string when internal gd used
%bcond_with zend_multibyte # enable zend multibyte, mbstring can't be shared then anymore
+%bcond_with default_php # use this PHP as default PHP in distro
%bcond_without curl # without CURL extension module
%bcond_without filter # without filter extension module
%bcond_without imap # without IMAP extension module
%if "%{pld_release}" == "ac"
%define magic_mime /usr/share/file/magic.mime
+%define _noautoreqdep libphp_common.*
+# if commandline --without was given. respect that
+%if 0%{!?_without_default_php:1}
+%define with_default_php 1
+%endif
%else
%define magic_mime /usr/share/misc/magic.mime
%endif
+%define rel 1
%define orgname php
-%if "%{pld_release}" == "th"
-%define php_suffix 52
-%else
-%define php_suffix %{nil}
-%endif
-
+%define ver_suffix 52
+%define php_suffix %{!?with_default_php:%{ver_suffix}}
+%define backport_date 20130717
Summary: PHP: Hypertext Preprocessor
Summary(fr.UTF-8): Le langage de script embarque-HTML PHP
Summary(pl.UTF-8): Język skryptowy PHP
Summary(uk.UTF-8): PHP Версії 5 - мова препроцесування HTML-файлів, виконувана на сервері
Name: %{orgname}%{php_suffix}
Version: 5.2.17
-Release: 28
+Release: %{backport_date}.%{rel}
Epoch: 4
License: PHP
Group: Libraries
Source12: %{orgname}-branch.sh
Source13: dep-tests.sh
Source14: skip-tests.sh
+Patch100: https://php52-backports.googlecode.com/files/php52-backports-%{backport_date}.patch
+# Patch100-md5: 80014a8f7894d4e893a8b1292b8b3032
Patch0: %{orgname}-shared.patch
Patch1: %{orgname}-pldlogo.patch
Patch2: %{orgname}-mail.patch
Patch65: system-libzip.patch
Patch66: bug-47930.patch
Patch67: php-db.patch
-Patch68: php-libxml.patch
Patch69: bug-50563.patch
+Patch70: php-crypt-null.patch
+Patch71: php-apache24.patch
# CENTALT patches
-# CVE
-Patch201: php-5.2.17-CVE-2011-2202.patch
-Patch202: php-5.2.17-CVE-2011-1938.patch
-Patch203: php-5.2.17-CVE-2011-1148.patch
-Patch204: php-5.2.17-CVE-2011-0708.patch
-Patch205: php-5.2.17-CVE-2011-1092.patch
-Patch206: php-5.2.17-CVE-2011-0421.patch
-
# Backport from 5.3.6
-Patch301: php-5.3.6-bug-54055.patch
-Patch302: php-5.3.6-bug-53577.patch
-Patch303: php-5.2.17-bug-48484.patch
-Patch304: php-5.3.6-bug-48607.patch
-Patch305: php-5.3.6-bug-53574.patch
-Patch306: php-5.3.6-bug-52290.patch
-Patch307: php-5.2.17-bug-52063.patch
-Patch308: php-5.3.6-bug-53924.patch
-Patch309: php-5.3.6-bug-53150.patch
-Patch310: php-5.3.6-bug-52209.patch
Patch311: php-5.3.6-bug-47435.patch
-Patch312: php-5.3.6-bug-53377.patch
-Patch313: php-5.2.17-bug-39847.patch
Patch314: php-5.3.6-39199.patch
-Patch315: php-5.3.6-bug-53630.patch
-Patch316: php-5.3.6-bug-51336.patch
-Patch317: php-5.3.6-bug-53515.patch
-Patch318: php-5.3.6-bug-54092.patch
-Patch319: php-5.3.6-bug-53903.patch
-Patch320: php-5.3.6-bug-54089.patch
-Patch321: php-5.3.6-bug-53603.patch
-Patch322: php-5.3.6-bug-53854.patch
-Patch323: php-5.3.6-bug-53579.patch
-Patch324: php-5.3.6-bug-53568.patch
-Patch325: php-5.2.17-bug-49072.patch
# 5.3.7
-Patch330: php-5.3.7-bug-55399.patch
-Patch331: php-5.2.17-bug-55082.patch
-Patch332: php-5.3.7-bug-55014.patch
#Patch333: php-5.3.7-bug-54924.patch
-Patch334: php-5.3.7-bug-54180.patch
-Patch335: php-5.3.7-bug-54137.patch
-Patch336: php-5.3.7-bug-53848.patch
-Patch337: php-5.3.7-bug-52935.patch
-Patch338: php-5.3.7-bug-51997.patch
-Patch339: php-5.3.7-bug-50363.patch
-Patch340: php-5.3.7-bug-48465.patch
-Patch341: php-5.3.7-bug-54529.patch
-Patch342: php-5.3.7-bug-52496.patch
-Patch343: php-5.3.7-bug-54242.patch
-Patch344: php-5.3.7-bug-54121.patch
-Patch345: php-5.3.7-bug-53037.patch
-Patch346: php-5.3.7-bug-54269.patch
-Patch347: php-5.3.7-bug-54601.patch
-Patch348: php-5.3.7-bug-54440.patch
-Patch349: php-5.3.7-bug-54494.patch
-Patch350: php-5.3.7-bug-54221.patch
-Patch351: php-5.3.7-bug-52104.patch
-Patch352: php-5.3.7-bug-54329.patch
-Patch353: php-5.3.7-bug-53782.patch
-Patch354: php-5.3.7-bug-54318.patch
Patch355: php-5.3.7-bug-55323.patch
-Patch356: php-5.3.7-bug-54312.patch
-Patch357: php-5.3.7-bug-51958.patch
-Patch358: php-5.3.7-bug-54946.patch
-# 5.3.9 backport
-Patch359: php-5.2.17-CVE-2011-4566.patch
-Patch360: php-5.2.17-bug-60206.patch
-Patch361: php-5.2.17-bug-60138.patch
-Patch362: php-5.2.17-bug-60120.patch
-Patch363: php-5.2.17-bug-55674.patch
-Patch364: php-5.2.17-bug-55509.patch
-Patch365: php-5.2.17-bug-55504.patch
-Patch366: php-5.2.17-bug-52461.patch
-Patch367: php-5.2.17-bug-55366.patch
-Patch368: php-5.2.17-bug-55273.patch
-Patch369: php-5.2.17-bug-52624.patch
-Patch370: php-5.2.17-bug-43200.patch
-Patch371: php-5.2.17-bug-54682.patch
-Patch372: php-5.2.17-bug-60455.patch
-Patch373: php-5.2.17-bug-60183.patch
-Patch374: php-5.2.17-bug-55478.patch
-# Bug-319457 CVE-2011-4153
-Patch375: php-5.2.17-bug-319457.patch
-# Bug-55776 CVE-2012-0788
-Patch376: php-5.2.17-bug-55776.patch
-
-#php-5.2-max-input-vars patch
-Patch400: php-5.2.17-max-input-vars.patch
-Patch401: php-5.2.17-bug-323007-2.patch
# Bug-323016 CVE-2012-0831
Patch402: php-5.2.17-bug-323016.patch
URL: https://code.google.com/p/php52-backports/
Requires: %{name}-common = %{epoch}:%{version}-%{release}
Provides: php(cgi)
Provides: webserver(php) = %{version}
+%if "%{pld_release}" != "ac"
+Conflicts: logrotate < 3.8.0
+%endif
%description cgi
php as CGI program.
Requires: php-dirs >= 1.4
Requires: rpm-whiteout >= 1.28
Requires: tzdata
+Provides: %{name}(debug) = %{php_debug}
+Provides: %{name}(modules_api) = %{php_api_version}
+Provides: %{name}(thread-safety) = %{zend_zts}
+Provides: %{name}(zend_extension_api) = %{zend_extension_api}
+Provides: %{name}(zend_module_api) = %{zend_module_api}
+Provides: %{name}-core
+Provides: %{name}-date
+Provides: %{name}-ereg
+%{?with_zend_multibyte:Provides: %{name}-mbstring = %{epoch}:%{version}-%{release}}
+Provides: %{name}-overload
+Provides: %{name}-reflection
+Provides: %{name}-standard
Provides: php(core) = %{version}
Provides: php(date)
Provides: php(ereg)
Provides: php(overload)
Provides: php(reflection)
Provides: php(standard)
-Provides: php(zend_extension_api) = %{zend_extension_api}
-Provides: php(zend_module_api) = %{zend_module_api}
-Provides: php-core
-Provides: php-date
-Provides: php-ereg
-%{?with_zend_multibyte:Provides: php-mbstring = %{epoch}:%{version}-%{release}}
-Provides: php-overload
-Provides: php-reflection
-Provides: php-standard
-Provides: php5(debug) = %{php_debug}
-Provides: php5(thread-safety) = %{zend_zts}
# ensure backward compatibility for Titanium
# to be dropped in future but ask Titanium RM before doing so
%if "%{pld_release}" == "ti"
Requires: %{name}-session = %{epoch}:%{version}-%{release}
Requires: %{name}-spl = %{epoch}:%{version}-%{release}
%endif
+%{!?with_mysqlnd:Obsoletes: php-mysqlnd}
+%{?with_pcre:%requires_ge_to pcre pcre-devel}
Obsoletes: php-pecl-domxml
Conflicts: php-pecl-memcache < 3.0.4-2
Conflicts: php4-common < 3:4.4.4-8
Group: Libraries
URL: http://www.php.net/manual/en/book.bzip2.php
Requires: %{name}-common = %{epoch}:%{version}-%{release}
+Provides: %{name}-bzip2 = %{epoch}:%{version}-%{release}
Provides: php(bz2)
Provides: php(bzip2)
-Provides: php-bzip2 = %{epoch}:%{version}-%{release}
Obsoletes: php-bzip2
%description bz2
Requires: %{name}-common = %{epoch}:%{version}-%{release}
Provides: php(dom)
# it has some compatibility functions
+Provides: %{name}-domxml = %{epoch}:%{version}-%{release}
Provides: php(domxml)
-Provides: php-domxml = %{epoch}:%{version}-%{release}
Obsoletes: php-domxml <= 3:4.3.8-1
%description dom
Group: Libraries
URL: http://www.php.net/manual/en/book.zip.php
Requires: %{name}-common = %{epoch}:%{version}-%{release}
+%{?with_system_libzip:Requires: libzip >= 0.10-3}
Provides: php(zip)
Obsoletes: php-pecl-zip
-%{?with_system_libzip:Requires: libzip >= 0.10-3}
%description zip
Zip is an extension to create, modify and read zip files.
%prep
%setup -q -n %{orgname}-%{version}
+%patch100 -p1
# for suhosin patch
%{__sed} -i -e 's,\r$,,' Zend/Zend.dsp Zend/ZendTS.dsp
%{?with_system_libzip:%patch65 -p1}
%patch66 -p2
%patch67 -p1
-%patch68 -p1
%patch69 -p4
-
-%patch201 -p1 -b .CVE-2011-2202
-%patch202 -p1 -b .CVE-2011-1938
-%patch203 -p1 -b .CVE-2011-1148
-%patch204 -p1 -b .CVE-2011-0708
-%patch205 -p1 -b .CVE-2011-1092
-%patch206 -p1 -b .CVE-2011-0421
+%patch70 -p1
+%patch71 -p1
# Bugfix backport from 5.3.6
-%patch301 -p1 -b .bug-54055
-%patch302 -p1 -b .bug-53577
-%patch303 -p1 -b .bug-48484
-%patch304 -p1 -b .bug-48607
-%patch305 -p1 -b .bug-53574
-%patch306 -p1 -b .bug-52290
-%patch307 -p1 -b .bug-52063
-%patch308 -p1 -b .bug-53924
-%patch309 -p1 -b .bug-53150
-%patch310 -p1 -b .bug-52209
%patch311 -p1 -b .bug-47435
-%patch312 -p1 -b .bug-53377
-%patch313 -p1 -b .bug-39847
%patch314 -p1 -b .bug-39199
-%patch315 -p1 -b .bug-53630
-%patch316 -p1 -b .bug-51336
-%patch317 -p1 -b .bug-53515
-%patch318 -p1 -b .bug-54092
-%patch319 -p1 -b .bug-53903
-%patch320 -p1 -b .bug-54089
-%patch321 -p1 -b .bug-53603
-%patch322 -p1 -b .bug-53854
-%patch323 -p1 -b .bug-53579
-%patch324 -p1 -b .bug-53568
-%patch325 -p1 -b .bug-49072
# Bugfix backport from 5.3.7
-%patch330 -p1 -b .bug-55399
-%patch331 -p1 -b .bug-55082
-%patch332 -p1 -b .bug-55014
#accert %patch333 -p1 -b .bug-54924
-%patch334 -p1 -b .bug-54180
-%patch335 -p1 -b .bug-54137
-%patch336 -p1 -b .bug-53848
-%patch337 -p1 -b .bug-52935
-%patch338 -p1 -b .bug-51997
-%patch339 -p1 -b .bug-50363
-%patch340 -p1 -b .bug-48465
-%patch341 -p1 -b .bug-54529
-%patch342 -p1 -b .bug-52496
-%patch343 -p1 -b .bug-54242
-%patch344 -p1 -b .bug-54121
-%patch345 -p1 -b .bug-53037
-%patch346 -p1 -b .bug-54269
-%patch347 -p1 -b .bug-54601
-%patch348 -p1 -b .bug-54440
-%patch349 -p1 -b .bug-54494
-%patch350 -p1 -b .bug-54221
-%patch351 -p1 -b .bug-52104
-%patch352 -p1 -b .bug-54329
-%patch353 -p1 -b .bug-53782
-%patch354 -p1 -b .bug-54318
#soap %patch355 -p1 -b .bug-55323
-%patch356 -p1 -b .bug-54312
-%patch357 -p1 -b .bug-51958
-%patch358 -p1 -b .bug-54946
-%patch359 -p1 -b .CVE-2011-4566
-%patch360 -p1 -b .bug-60206
-%patch361 -p1 -b .bug-60138
-%patch362 -p1 -b .bug-60120
-%patch363 -p1 -b .bug-55674
-%patch364 -p1 -b .bug-55509
-%patch365 -p1 -b .bug-55504
-%patch366 -p1 -b .bug-52461
-%patch367 -p1 -b .bug-55366
-%patch368 -p1 -b .bug-55273
-%patch369 -p1 -b .bug-52624
-%patch370 -p1 -b .bug-43200
-%patch371 -p1 -b .bug-54682
-%patch372 -p1 -b .bug-60455
-%patch373 -p1 -b .bug-60183
-%patch374 -p1 -b .bug-55478
-%patch375 -p1 -b .bug-319457
-%patch376 -p1 -b .bug-55776
-
-%patch400 -p1 -b .php-5.2-max-input-vars
-%patch401 -p1 -b .bug-323007
# causes regression -> magic_quotes_gpc setting cannot be changed
#%%patch402 -p1 -b .bug-323016
sapi_args='--disable-cli --enable-fastcgi --enable-force-cgi-redirect --enable-fpm'
;;
apxs1)
- ver=$(rpm -q --qf '%{V}' apache1-devel)
- sapi_args="--disable-cli --with-apxs=%{apxs1} --with-apache-version=$ver"
+ apache_ver=$(rpm -q --qf '%{V}' apache1-devel)
+ sapi_args="--disable-cli --with-apxs=%{apxs1} --with-apache-version=$apache_ver"
;;
apxs2)
- ver=$(rpm -q --qf '%{V}' apache-devel)
- sapi_args="--disable-cli --with-apxs2=%{apxs2} --with-apache-version=$ver"
+ apache_ver=$(rpm -q --qf '%{V}' apache-devel)
+ sapi_args="--disable-cli --with-apxs2=%{apxs2} --with-apache-version=$apache_ver"
;;
esac
%configure \
+ FORCE_APACHE_VERSION="${apache_ver}" \
$sapi_args \
%if "%{!?configure_cache:0}%{?configure_cache}" == "0"
--cache-file=config.cache \
# install the Apache modules' files
%{__make} install-headers install-build install-modules install-programs \
+ phpbuilddir=%{_libdir}/%{name}/build \
INSTALL_ROOT=$RPM_BUILD_ROOT
+# version suffix
+v=$(echo %{version} | cut -d. -f1-2)
+
# install Apache1 DSO module
%if %{with apache1}
-libtool --silent --mode=install install sapi/apache/libphp5.la $RPM_BUILD_ROOT%{_libdir}/apache1
-mv $RPM_BUILD_ROOT%{_libdir}/apache1/libphp5{,-%{version}}.so
-ln -s libphp5-%{version}.so $RPM_BUILD_ROOT%{_libdir}/apache1/libphp5.so
+libtool --mode=install install -p sapi/apache/libphp5.la $RPM_BUILD_ROOT%{_libdir}/apache1
+mv $RPM_BUILD_ROOT%{_libdir}/apache1/libphp5{,-$v}.so
+ln -s libphp5-$v.so $RPM_BUILD_ROOT%{_libdir}/apache1/libphp5.so
%endif
# install Apache2 DSO module
%if %{with apache2}
-libtool --silent --mode=install install sapi/apache2handler/libphp5.la $RPM_BUILD_ROOT%{_libdir}/apache
-mv $RPM_BUILD_ROOT%{_libdir}/apache/libphp5{,-%{version}}.so
-ln -s libphp5-%{version}.so $RPM_BUILD_ROOT%{_libdir}/apache/libphp5.so
+libtool --mode=install install -p sapi/apache2handler/libphp5.la $RPM_BUILD_ROOT%{_libdir}/apache
+mv $RPM_BUILD_ROOT%{_libdir}/apache/libphp5{,-$v}.so
+ln -s libphp5-$v.so $RPM_BUILD_ROOT%{_libdir}/apache/libphp5.so
%endif
-libtool --silent --mode=install install libphp_common.la $RPM_BUILD_ROOT%{_libdir}
-# fix install paths, avoid evil rpaths
-sed -i -e "s|^libdir=.*|libdir='%{_libdir}'|" $RPM_BUILD_ROOT%{_libdir}/libphp_common.la
-# better solution?
-sed -i -e 's|libphp_common.la|$(libdir)/libphp_common.la|' $RPM_BUILD_ROOT%{_libdir}/php/build/acinclude.m4
-
# install CGI
libtool --mode=install install -p sapi/cgi/php-cgi $RPM_BUILD_ROOT%{_bindir}/%{name}.cgi
install -p %{SOURCE10} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}-fpm
install -d $RPM_BUILD_ROOT/etc/logrotate.d
cp -p %{SOURCE11} $RPM_BUILD_ROOT/etc/logrotate.d/%{name}-fpm
+%if "%{pld_release}" == "ac"
+%{__sed} -i -e '/su/d' $RPM_BUILD_ROOT/etc/logrotate.d/%{name}-fpm
+%endif
%{__sed} -i -e '
s#/usr/lib/php#%{php_extensiondir}#
libtool --silent --mode=install install sapi/cli/php $RPM_BUILD_ROOT%{_bindir}/%{phpfn}
ln -sf %{phpfn} $RPM_BUILD_ROOT%{_bindir}/php
cp -p sapi/cli/php.1 $RPM_BUILD_ROOT%{_mandir}/man1/%{phpfn}.1
-echo ".so %{phpfn}.1" >$RPM_BUILD_ROOT%{_mandir}/man1/php.1
+echo ".so man1/%{phpfn}.1" >$RPM_BUILD_ROOT%{_mandir}/man1/php.1
ln -sf %{phpfn} $RPM_BUILD_ROOT%{_bindir}/php
cp -p php.ini $RPM_BUILD_ROOT%{_sysconfdir}/php.ini
# use system automake and {lib,sh}tool
%if "%{pld_release}" != "ac"
- ln -snf /usr/share/automake/config.{guess,sub} $RPM_BUILD_ROOT%{_libdir}/php/build
+ ln -snf /usr/share/automake/config.{guess,sub} $RPM_BUILD_ROOT%{_libdir}/%{name}/build
for i in libtool.m4 lt~obsolete.m4 ltoptions.m4 ltsugar.m4 ltversion.m4; do
- ln -snf %{_aclocaldir}/${i} $RPM_BUILD_ROOT%{_libdir}/php/build
+ ln -snf %{_aclocaldir}/${i} $RPM_BUILD_ROOT%{_libdir}/%{name}/build
done
- ln -snf %{_datadir}/libtool/config/ltmain.sh $RPM_BUILD_ROOT%{_libdir}/php/build
+ ln -snf %{_datadir}/libtool/config/ltmain.sh $RPM_BUILD_ROOT%{_libdir}/%{name}/build
%else
- ln -snf %{_aclocaldir}/libtool.m4 $RPM_BUILD_ROOT%{_libdir}/php/build
- ln -snf %{_datadir}/libtool/ltmain.sh $RPM_BUILD_ROOT%{_libdir}/php/build
+ ln -snf %{_aclocaldir}/libtool.m4 $RPM_BUILD_ROOT%{_libdir}/%{name}/build
+ ln -snf %{_datadir}/libtool/ltmain.sh $RPM_BUILD_ROOT%{_libdir}/%{name}/build
%endif
-ln -snf %{_bindir}/shtool $RPM_BUILD_ROOT%{_libdir}/php/build
+ln -snf %{_bindir}/shtool $RPM_BUILD_ROOT%{_libdir}/%{name}/build
+sed -i -e '/^phpdir/ s,/php/build,/%{name}/build,' $RPM_BUILD_ROOT%{_bindir}/phpize
# as a result of ext/pcre/pcrelib removal in %%prep, ext/pcre/php_pcre.h
# isn't installed by install-headers make target, we do it manually here.
install -p run-tests.php $RPM_BUILD_ROOT%{php_data_dir}/tests/php/run-tests.php
cp -a tests/* $RPM_BUILD_ROOT%{php_data_dir}/tests/php
+libtool --silent --mode=install install libphp_common.la $RPM_BUILD_ROOT%{_libdir}
+# fix install paths, avoid evil rpaths
+sed -i -e "s|^libdir=.*|libdir='%{_libdir}'|" $RPM_BUILD_ROOT%{_libdir}/libphp_common.la
+# better solution?
+sed -i -e 's|libphp_common.la|$(libdir)/libphp_common.la|' $RPM_BUILD_ROOT%{_libdir}/%{name}/build/acinclude.m4
+
%clean
rm -rf $RPM_BUILD_ROOT
%dir %{_sysconfdir}/apache.d
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/php-apache.ini
%attr(755,root,root) %{_libdir}/apache1/libphp5.so
-%attr(755,root,root) %{_libdir}/apache1/libphp5-%{version}.so
+%attr(755,root,root) %{_libdir}/apache1/libphp5-*.*.so
%endif
%if %{with apache2}
%dir %{_sysconfdir}/apache2handler.d
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/php-apache2handler.ini
%attr(755,root,root) %{_libdir}/apache/libphp5.so
-%attr(755,root,root) %{_libdir}/apache/libphp5-%{version}.so
+%attr(755,root,root) %{_libdir}/apache/libphp5-*.*.so
%endif
%if %{with fcgi}
%attr(755,root,root) %{_libdir}/libphp_common.so
%{_libdir}/libphp_common.la
%{_includedir}/php
-%{_libdir}/php/build
+%{_libdir}/%{name}/build
%{_mandir}/man1/php-config.1*
%{_mandir}/man1/phpize.1*