X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=php.spec;h=afb7e94981a126f7b8a209d81a4ffce244c93969;hb=6b74b6e;hp=99644bf91b15e3bc53b4e4b6f6865465c7ab380b;hpb=c3979b6249ececbabd269c9c33c90da8408c4edd;p=packages%2Fphp.git diff --git a/php.spec b/php.spec index 99644bf..afb7e94 100644 --- a/php.spec +++ b/php.spec @@ -39,27 +39,41 @@ # Reflection # # Conditional build: -%bcond_with interbase_inst # use InterBase install., not Firebird (BR: proprietary libs) -%bcond_with oci # with Oracle oci8 extension module (BR: proprietary libs) -%bcond_without instantclient # build Oracle oci8 extension module against oracle-instantclient package -%bcond_with system_gd # with system gd (we prefer internal since it enables few more features) -%bcond_with system_libzip # with system libzip (reported broken currently) -%bcond_with default_php # use this PHP as default PHP in distro +# - packaging options +%bcond_without alternatives # use alternatives system to select default phar and php-fpm +%bcond_with default_php # build this PHP as default PHP in system (disables alternatives) +# - General options: +%bcond_without embed # disable building Embedded API +%bcond_with gcov # Enable Code coverage reporting +%bcond_without kerberos5 # without Kerberos5 support +%bcond_with suhosin # with suhosin patch, has little point in PHP>=5.3, see https://github.com/stefanesser/suhosin/issues/42#issuecomment-41728178 +%bcond_with tests # default off; test process very often hangs on builders, approx run time 45m; perform "make test" +%bcond_with type_hints # experimental support for strict typing/casting +%bcond_with zts # Zend Thread Safety +# - SAPI +%bcond_without apache1 # disable building Apache 1.3.x SAPI +%bcond_without apache2 # disable building Apache 2.x SAPI +%bcond_without cgi # disable CGI/FCGI SAPI +%bcond_without fpm # disable FPM SAPI +%bcond_without litespeed # build litespeed SAPI +# - Extensions +%bcond_without bcmath # without bcmath extension module +%bcond_without bz2 # without bz2 extension module +%bcond_without calendar # without calendar extension module +%bcond_without ctype # without ctype extension module %bcond_without curl # without CURL extension module %bcond_without enchant # without Enchant extension module %bcond_without filter # without filter extension module %bcond_without imap # without IMAP extension module %bcond_without interbase # without InterBase extension module %bcond_without intl # without Intl extension module -%bcond_without kerberos5 # without Kerberos5 support -%bcond_without litespeed # build litespeed module %bcond_without ldap # without LDAP extension module %bcond_without mhash # without mhash extension (supported by hash extension) -%bcond_without mm # without mm support for session storage %bcond_without mssql # without MS SQL extension module # don't turn it on by default; see TODO item for mysqlnd in this spec %bcond_with mysqlnd # with mysqlnd support in mysql related extensions %bcond_without mysqli # without mysqli support (Requires mysql > 4.1) +%bcond_with oci # with Oracle oci8 extension module (BR: proprietary libs) %bcond_without odbc # without ODBC extension module %bcond_without openssl # without OpenSSL support and OpenSSL extension (module) %bcond_without pcre # without PCRE extension module @@ -73,19 +87,15 @@ %bcond_without sqlite3 # without SQLite3 extension module %bcond_without sybase_ct # without Sybase-CT extension module %bcond_without tidy # without Tidy extension module -%bcond_without webp # Without WebP support in GD extension (imagecreatefromwebp) %bcond_without wddx # without WDDX extension module %bcond_without xmlrpc # without XML-RPC extension module -%bcond_without apache1 # disable building Apache 1.3.x SAPI -%bcond_without apache2 # disable building Apache 2.x SAPI -%bcond_with zts # Zend Thread Safety -%bcond_without cgi # disable CGI/FCGI SAPI -%bcond_without fpm # disable FPM -%bcond_with embed # disable Embedded API -%bcond_with suhosin # with suhosin patch -%bcond_with tests # default off; test process very often hangs on builders, approx run time 45m; perform "make test" -%bcond_with gcov # Enable Code coverage reporting -%bcond_with type_hints # experimental support for strict typing/casting +# extensions options +%bcond_without instantclient # build Oracle oci8 extension module against oracle-instantclient package +%bcond_with interbase_inst # use InterBase install., not Firebird (BR: proprietary libs) +%bcond_with mm # without mm support for session storage +%bcond_with system_gd # with system gd (imageantialias function is missing then) +%bcond_with system_libzip # with system libzip (reported broken currently) +%bcond_without webp # Without WebP support in GD extension (imagecreatefromwebp) %define apxs1 /usr/sbin/apxs1 %define apxs2 /usr/sbin/apxs @@ -98,6 +108,10 @@ %undefine with_litespeed %endif +%if %{with default_php} +%undefine with_alternatives +%endif + # mm is not thread safe %if %{with zts} %undefine with_mm @@ -124,7 +138,7 @@ ERROR: You need to select at least one Apache SAPI to build shared modules. %undefine with_filter %endif -%define rel 1 +%define rel 13 %define orgname php %define ver_suffix 54 %define php_suffix %{!?with_default_php:%{ver_suffix}} @@ -135,7 +149,7 @@ Summary(pt_BR.UTF-8): A linguagem de script PHP Summary(ru.UTF-8): PHP Версии 5 - язык препроцессирования HTML-файлов, выполняемый на сервере Summary(uk.UTF-8): PHP Версії 5 - мова препроцесування HTML-файлів, виконувана на сервері Name: %{orgname}%{php_suffix} -Version: 5.4.44 +Version: 5.4.45 Release: %{rel}%{?with_type_hints:.th}%{?with_oci8:.oci} Epoch: 4 # All files licensed under PHP version 3.01, except @@ -144,7 +158,7 @@ Epoch: 4 License: PHP 3.01 and Zend and BSD Group: Libraries Source0: http://www.php.net/distributions/%{orgname}-%{version}.tar.bz2 -# Source0-md5: 25725eb0dff0d45351b01fb483709b8d +# Source0-md5: 185f67f1ca652b18bc0cca9d7edbde7c Source2: %{orgname}-mod_%{orgname}.conf Source3: %{orgname}-cgi-fcgi.ini Source4: %{orgname}-apache.ini @@ -163,6 +177,7 @@ Patch5: %{orgname}-filter-shared.patch Patch6: %{orgname}-build_modules.patch Patch7: %{orgname}-sapi-ini-file.patch Patch8: %{orgname}-config-file-scan-dir.patch +Patch9: php-bug-71475.patch Patch10: %{orgname}-ini.patch Patch11: embed.patch %if %{with type_hints} @@ -255,7 +270,7 @@ BuildRequires: libpng-devel >= 1.0.8 %{?with_webp:BuildRequires: libvpx-devel} BuildRequires: tokyocabinet-devel %if "%{pld_release}" != "ac" -BuildRequires: libtool >= 2:2.2 +BuildRequires: libtool >= 2:2.4.6 %else BuildRequires: libtool >= 1.4.3 %endif @@ -504,6 +519,8 @@ Requires(postun): /usr/sbin/userdel Requires(pre): /bin/id Requires(pre): /usr/sbin/useradd Requires: %{name}-common = %{epoch}:%{version}-%{release} +%{?with_alternatives:Requires: alternatives} +Requires: php-dirs >= 1.4-2 Requires: rc-scripts Provides: php(fpm) Provides: user(http) @@ -575,12 +592,13 @@ Requires: %{name}-common = %{epoch}:%{version}-%{release} Requires: autoconf >= 2.13 Requires: automake %if "%{pld_release}" != "ac" -Requires: libtool >= 2:2.2 +Requires: libtool >= 2:2.4.6 %else Requires: libtool %endif %{?with_pcre:Requires: pcre-devel >= 8.10} Requires: shtool +Provides: php-devel = %{epoch}:%{version}-%{release} Obsoletes: php-devel Obsoletes: php-pear-devel Obsoletes: php4-devel @@ -588,6 +606,8 @@ Obsoletes: php52-devel Obsoletes: php53-devel Obsoletes: php55-devel Obsoletes: php56-devel +Obsoletes: php70-devel +Obsoletes: php71-devel %description devel The php-devel package lets you compile dynamic extensions to PHP. @@ -1262,7 +1282,7 @@ Group: Libraries URL: http://www.php.net/manual/en/ref.pdo-dblib.php Requires: %{name}-common = %{epoch}:%{version}-%{release} Requires: %{name}-pdo = %{epoch}:%{version}-%{release} -Provides: php(dblib) +Provides: php(pdo_dblib) %description pdo-dblib This is a dynamic shared object (DSO) for PHP that will add PDO @@ -1280,6 +1300,7 @@ URL: http://www.php.net/manual/en/ref.pdo-firebird.php Requires: %{name}-common = %{epoch}:%{version}-%{release} Requires: %{name}-pdo = %{epoch}:%{version}-%{release} Provides: php(pdo-firebird) +Provides: php(pdo_firebird) Obsoletes: php-pecl-PDO_FIREBIRD %description pdo-firebird @@ -1299,6 +1320,7 @@ Requires: %{name}-common = %{epoch}:%{version}-%{release} %{?with_mysqlnd:Requires: %{name}-mysqlnd = %{epoch}:%{version}-%{release}} Requires: %{name}-pdo = %{epoch}:%{version}-%{release} Provides: php(pdo-mysql) +Provides: php(pdo_mysql) Obsoletes: php-pecl-PDO_MYSQL %description pdo-mysql @@ -1317,6 +1339,7 @@ URL: http://www.php.net/manual/en/ref.pdo-oci.php Requires: %{name}-common = %{epoch}:%{version}-%{release} Requires: %{name}-pdo = %{epoch}:%{version}-%{release} Provides: php(pdo-oci) +Provides: php(pdo_oci) Obsoletes: php-pecl-PDO_OCI %description pdo-oci @@ -1335,6 +1358,7 @@ URL: http://www.php.net/manual/en/ref.pdo-odbc.php Requires: %{name}-common = %{epoch}:%{version}-%{release} Requires: %{name}-pdo = %{epoch}:%{version}-%{release} Provides: php(pdo-odbc) +Provides: php(pdo_odbc) Obsoletes: php-pecl-PDO_ODBC %description pdo-odbc @@ -1353,7 +1377,7 @@ URL: http://www.php.net/manual/en/ref.pdo-pgsql.php Requires: %{name}-common = %{epoch}:%{version}-%{release} Requires: %{name}-pdo = %{epoch}:%{version}-%{release} Provides: php(pdo-pgsql) -Provides: php-pecl-PDO_PGSQL +Provides: php(pdo_pgsql) Obsoletes: php-pecl-PDO_PGSQL < 4:5.2.1-2 %description pdo-pgsql @@ -1372,6 +1396,7 @@ URL: http://www.php.net/manual/en/ref.pdo-sqlite.php Requires: %{name}-common = %{epoch}:%{version}-%{release} Requires: %{name}-pdo = %{epoch}:%{version}-%{release} Provides: php(pdo-sqlite) +Provides: php(pdo_sqlite) Obsoletes: php-pecl-PDO_SQLITE %description pdo-sqlite @@ -1401,12 +1426,13 @@ Moduł PHP umożliwiający dostęp do bazy danych PostgreSQL. Um módulo para aplicações PHP que usam bancos de dados postgresql. %package phar -Summary: phar database module for PHP +Summary: Phar archive module for PHP Summary(pl.UTF-8): Moduł phar dla PHP Group: Libraries URL: http://www.php.net/manual/en/book.phar.php Requires: %{name}-common = %{epoch}:%{version}-%{release} Requires: %{name}-spl = %{epoch}:%{version}-%{release} +%{?with_alternatives:Requires: alternatives} Suggests: %{name}-cli # zlib is required by phar program, but as phar cli is optional should the dep be too Suggests: %{name}-zlib @@ -1885,6 +1911,7 @@ Moduł PHP umożliwiający używanie kompresji zlib. %patch5 -p1 %patch6 -p1 %patch8 -p1 +%patch9 -p1 %patch7 -p1 cp -p php.ini-production php.ini %patch10 -p1 @@ -1947,7 +1974,7 @@ cp -p php.ini-production php.ini %patch71 -p1 %endif -sed -i -e '/PHP_ADD_LIBRARY_WITH_PATH/s#xmlrpc,#xmlrpc-epi,#' ext/xmlrpc/config.m4 +%{__sed} -i -e '/PHP_ADD_LIBRARY_WITH_PATH/s#xmlrpc,#xmlrpc-epi,#' ext/xmlrpc/config.m4 # cleanup backups after patching find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f @@ -1979,22 +2006,22 @@ sed -i -e 's#-fvisibility=hidden##g' configure* # disable broken tests # says just "Terminated" twice and fails -mv sapi/cli/tests/022.phpt{,.broken} +%{__mv} sapi/cli/tests/022.phpt{,.broken} # really dumb test, executable binary name is .libs/ something when building # https://bugs.php.net/bug.php?id=54514 -mv tests/basic/bug54514.phpt{,.disable} +%{__mv} tests/basic/bug54514.phpt{,.disable} # breaks whole testsuite unexpectedly: # Fatal error: Call to undefined function gzencode() in run-tests.php on line 1714 # probably broken as zlib is built as shared -mv ext/soap/tests/server019.phpt{,disable} +%{__mv} ext/soap/tests/server019.phpt{,disable} # Fatal error: Call to undefined function gzcompress() in run-tests.php on line 1728 -mv ext/soap/tests/server020.phpt{,disable} +%{__mv} ext/soap/tests/server020.phpt{,disable} # runs out of memory and kills carme vserver # PASS Bug #39438 (Fatal error: Out of memory) [Zend/tests/bug39438.phpt] -mv Zend/tests/bug39438.phpt{,.disable} +%{__mv} Zend/tests/bug39438.phpt{,.disable} # php-5.3.3/ext/standard/tests/file/statpage.phpt %{__rm} ext/standard/tests/file/statpage.phpt @@ -2170,6 +2197,7 @@ for sapi in $sapis; do esac %configure \ + EXTRA_LDFLAGS="%{rpmldflags}" \ $sapi_args \ %if "%{!?configure_cache:0}%{?configure_cache}" == "0" --cache-file=config.cache \ @@ -2414,8 +2442,17 @@ cp -pf Makefile.cli Makefile phpbuilddir=%{_libdir}/%{name}/build \ INSTALL_ROOT=$RPM_BUILD_ROOT -# make link relative -ln -sfn phar.phar $RPM_BUILD_ROOT%{_bindir}/phar +%if %{without default_php} +# version the .phar files +%{__mv} $RPM_BUILD_ROOT%{_bindir}/phar{,%{php_suffix}}.phar +%{__mv} $RPM_BUILD_ROOT%{_mandir}/man1/phar{,%{php_suffix}}.1 +%endif +%if %{with alternatives} +# touch for ghost +%{__rm} $RPM_BUILD_ROOT%{_bindir}/phar +touch $RPM_BUILD_ROOT%{_bindir}/phar +touch $RPM_BUILD_ROOT%{_mandir}/man1/phar.1 +%endif # version suffix v=$(echo %{version} | cut -d. -f1-2) @@ -2423,15 +2460,15 @@ v=$(echo %{version} | cut -d. -f1-2) # install Apache1 DSO module %if %{with apache1} 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 +%{__mv} $RPM_BUILD_ROOT%{_libdir}/apache1/libphp5{,-$v}.so +ln -s libphp5-$v.so $RPM_BUILD_ROOT%{_libdir}/apache1/mod_php.so %endif # install Apache2 DSO module %if %{with apache2} 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 +%{__mv} $RPM_BUILD_ROOT%{_libdir}/apache/libphp5{,-$v}.so +ln -s libphp5-$v.so $RPM_BUILD_ROOT%{_libdir}/apache/mod_php.so %endif # install litespeed sapi @@ -2463,6 +2500,11 @@ cp -p %{SOURCE11} $RPM_BUILD_ROOT/etc/logrotate.d/%{name}-fpm %{__sed} -i -e '/su/d' $RPM_BUILD_ROOT/etc/logrotate.d/%{name}-fpm %endif +%if %{with alternatives} +# touch for ghost for alternatives +touch $RPM_BUILD_ROOT%{_sbindir}/php-fpm +%endif + %{__sed} -i -e ' s#/usr/lib/php#%{php_extensiondir}# s#/etc/php#%{_sysconfdir}# @@ -2514,7 +2556,7 @@ cp -p conf.d/*.ini $RPM_BUILD_ROOT%{_sysconfdir}/conf.d install -d $RPM_BUILD_ROOT%{_sysconfdir}/{cgi-fcgi,cli,apache,apache2handler}.d # for CLI SAPI only -mv $RPM_BUILD_ROOT%{_sysconfdir}/{conf.d/readline.ini,cli.d} +%{__mv} $RPM_BUILD_ROOT%{_sysconfdir}/{conf.d/readline.ini,cli.d} # use system automake and {lib,sh}tool ln -snf /usr/share/automake/config.{guess,sub} $RPM_BUILD_ROOT%{_libdir}/%{name}/build @@ -2579,11 +2621,17 @@ fi %post fpm /sbin/chkconfig --add %{name}-fpm %service %{name}-fpm restart +%if %{with alternatives} +update-alternatives --install %{_sbindir}/php-fpm php-fpm %{_sbindir}/php%{ver_suffix}-fpm %{ver_suffix} || : +%endif %preun fpm if [ "$1" = 0 ]; then %service %{name}-fpm stop /sbin/chkconfig --del %{name}-fpm +%if %{with alternatives} + update-alternatives --remove php-fpm %{_sbindir}/php-fpm || : +%endif fi %postun fpm @@ -2594,7 +2642,7 @@ fi %post embedded -p /sbin/ldconfig %postun embedded -p /sbin/ldconfig -%post common +%posttrans common # PHP 5.3 requires timezone being setup, try setup it from tzdata if ! grep -q '^date.timezone[[:space:]]*=' %{_sysconfdir}/php.ini && [ -f /etc/sysconfig/timezone ]; then TIMEZONE= @@ -2604,7 +2652,6 @@ if ! grep -q '^date.timezone[[:space:]]*=' %{_sysconfdir}/php.ini && [ -f /etc/s fi fi -%posttrans common # minimizing apache restarts logics. we restart webserver: # # 1. at the end of transaction. (posttrans, feature from rpm 4.4.2) @@ -2626,17 +2673,31 @@ if [ ! -e /usr/share/browscap/php_browscap.ini ]; then %{__sed} -i -e 's#^browscap = /usr/share/browscap/php_browscap.ini#;&#' %{_sysconfdir}/php.ini fi +%triggerpostun -n apache1-mod_%{name} -- apache1-mod_%{name} < 4:5.4.45-2 +sed -i -e 's#modules/libphp5.so#modules/mod_php.so#g' /etc/apache/conf.d/*_mod_php.conf + +%triggerpostun -n apache-mod_%{name} -- apache-mod_%{name} < 4:5.4.45-2 +sed -i -e 's#modules/libphp[57].so#modules/mod_php.so#g' /etc/httpd/conf.d/*_mod_php.conf + # common macros called at extension post/postun scriptlet -%define extension_scripts() \ -%post %1 \ +%define ext_post \ if [ "$1" = "1" ]; then \ %php_webserver_restart \ fi \ -\ -%postun %1 \ +%{nil} + +%define ext_postun \ if [ "$1" = "0" ]; then \ %php_webserver_restart \ -fi +fi \ +%{nil} + +%define extension_scripts() \ +%post %1 \ +%ext_post \ +\ +%postun %1 \ +%ext_postun \ %{nil} # extension scripts defines @@ -2681,7 +2742,6 @@ fi %extension_scripts pdo-pgsql %extension_scripts pdo-sqlite %extension_scripts pgsql -%extension_scripts phar %extension_scripts pcntl %extension_scripts posix %extension_scripts pspell @@ -2709,13 +2769,29 @@ fi %extension_scripts zip %extension_scripts zlib +%post phar +%ext_post +%if %{with alternatives} +update-alternatives \ + --install %{_bindir}/phar phar %{_bindir}/phar%{ver_suffix}.phar %{ver_suffix} \ + --slave %{_mandir}/man1/phar.1 phar.1 %{_mandir}/man1/phar%{ver_suffix}.1* || : +%endif + +%postun phar +%ext_postun +%if %{with alternatives} +if [ $1 -eq 0 ]; then + update-alternatives --remove phar %{_bindir}/phar || : +fi +%endif + %if %{with apache1} %files -n apache1-mod_%{name} %defattr(644,root,root,755) %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/apache/conf.d/*_mod_php.conf %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/mod_php.so %attr(755,root,root) %{_libdir}/apache1/libphp5-*.*.so %endif @@ -2725,7 +2801,7 @@ fi %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/httpd/conf.d/*_mod_php.conf %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/mod_php.so %attr(755,root,root) %{_libdir}/apache/libphp5-*.*.so %endif @@ -2769,6 +2845,9 @@ fi %dir %{_sysconfdir}/fpm.d %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/php-fpm.conf %attr(755,root,root) %{_sbindir}/%{name}-fpm +%if %{with alternatives} +%ghost %{_sbindir}/php-fpm +%endif %{_mandir}/man8/%{name}-fpm.8* %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/%{name}-fpm %attr(754,root,root) /etc/rc.d/init.d/%{name}-fpm @@ -3101,10 +3180,15 @@ fi %doc ext/phar/{CREDITS,TODO} %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/phar.ini %attr(755,root,root) %{php_extensiondir}/phar.so +%attr(755,root,root) %{_bindir}/phar%{php_suffix}.phar +%{_mandir}/man1/phar%{php_suffix}.1* +%{_mandir}/man1/phar.phar.1* +%if %{with alternatives} +%ghost %{_bindir}/phar +%ghost %{_mandir}/man1/phar.1 +%else %attr(755,root,root) %{_bindir}/phar -%attr(755,root,root) %{_bindir}/phar.phar -%{_mandir}/man1/phar.1* -%{_mandir}/man1/phar.phar.1 +%endif %endif %files posix