-# NOTE: mysqlnd does not support ssl or compression (see FAQ at http://dev.mysql.com/downloads/connector/php-mysqlnd/)
# UNPACKAGED EXTENSION NOTES:
# - com_dotnet is Win32-only
# TODO:
# 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 lfs # Build with FILE_OFFSET_BITS=64
+%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
+%bcond_with debug # Zend Debug Build
+# - 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 filter # without filter extension module
%bcond_without enchant # without Enchant extension module
%bcond_without imap # without IMAP extension module
%bcond_without interbase # without InterBase extension module
-%bcond_without kerberos5 # without Kerberos5 support
-%bcond_without litespeed # build litespeed module
+%bcond_without intl # without Intl extension 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
%bcond_without tidy # without Tidy extension module
%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_without embed # disable Embedded API
-%bcond_without 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)
%define apxs1 /usr/sbin/apxs1
%define apxs2 /usr/sbin/apxs
%undefine with_litespeed
%endif
+%ifnarch %{ix86} x32
+# has no effect on 64bit systems
+%undefine with_lfs
+%endif
+
+%if %{with default_php}
+%undefine with_alternatives
+%endif
+
# mm is not thread safe
%if %{with zts}
%undefine with_mm
%endif
-%ifnarch %{ix86} %{x8664} sparc sparcv9 alpha
+%ifnarch %{ix86} %{x8664} x32 sparc sparcv9 alpha
# ppc disabled (broken on th-ppc)
%undefine with_interbase
%endif
-%ifnarch %{ix86} %{x8664}
+%ifnarch %{ix86} %{x8664} x32
# unsupported, see sapi/cgi/fpm/fpm_atomic.h
%undefine with_fpm
%endif
%if "%{pld_release}" == "ac"
%define _noautoreqdep libphp_common.*
-# if commandline --with was given. respect that
-%if 0%{!?_with_default_php:1}
-%undefine with_default_php
+# if commandline --without was given. respect that
+%if 0%{!?_without_default_php:1}
+%define with_default_php 1
%endif
%endif
-%define rel 12
+%if %{with default_php}
+%undefine with_alternatives
+%endif
+
+%define rel 47
%define orgname php
%define ver_suffix 53
%define php_suffix %{!?with_default_php:%{ver_suffix}}
Version: 5.3.29
Release: %{rel}%{?with_type_hints:.th}%{?with_oci8:.oci}
Epoch: 4
-License: PHP
+# All files licensed under PHP version 3.01, except
+# Zend is licensed under Zend
+# TSRM is licensed under BSD
+License: PHP 3.01 and Zend and BSD
Group: Libraries
Source0: http://www.php.net/distributions/%{orgname}-%{version}.tar.bz2
# Source0-md5: 9469e240cbe6ac865aeaec89b253dd30
Patch13: bug-test-pcntl-55479.patch
Patch14: %{orgname}-no_pear_install.patch
Patch15: %{orgname}-zlib.patch
+Patch16: php-bug-71475.patch
Patch17: %{orgname}-readline.patch
Patch18: %{orgname}-nohttpd.patch
Patch19: %{orgname}-gd_imagerotate_enable.patch
Patch65: system-libzip.patch
Patch66: %{orgname}-db.patch
Patch67: php-litespeed.patch
-Patch68: mysql-lib-ver-mismatch.patch
+Patch68: x32.patch
Patch69: fpm-conf-split.patch
+Patch70: mysql-lib-ver-mismatch.patch
+# git clone git://github.com/php/php-src.git && git checkout PHP_5_6
+# git diff php-5.3.29..PHP-5.6 ./ext/fileinfo/libmagic > ~/rpm/packages/php/php-fileinfo.patch
+# git diff php-5.3.29..PHP-5.6 ./ext/fileinfo/config.m4 >> ~/rpm/packages/php/php-fileinfo.patch
+# git diff php-5.3.29..PHP-5.6 ./ext/fileinfo/Makefile.frag >> ~/rpm/packages/php/php-fileinfo.patch
+# git diff php-5.3.29..PHP-5.6 ./ext/fileinfo/data_file.c >> ~/rpm/packages/php/php-fileinfo.patch
+Patch71: php-fileinfo.patch
+# Patch71-md5: 771e4934132c5f5c968248c954d1ef6e
+Patch72: x32-suhosin.patch
+Patch73: php-bug-68486.patch
+Patch74: mysqli-err.patch
+Patch75: openssl.patch
+Patch76: php-bug-61930.patch
+Patch77: php-icu64.patch
# Fixes for security bugs
# https://repo.webtatic.com/yum/centos/5/SRPMS/repoview/php.html
# also from RHEL6/CentOS7
Patch220: php-5.3.3-CVE-2011-4153.patch
-Patch238: php-5.3.3-CVE-2014-2270.patch
+
Patch247: php-5.3.3-CVE-2014-2497.patch
-Patch248: php-5.3.3-CVE-2014-3587.patch
+
Patch249: php-5.3.29-CVE-2014-3597.patch
Patch250: php-5.3.3-CVE-2014-4698.patch
Patch251: php-5.3.3-CVE-2014-4670.patch
Patch252: php-5.3.3-CVE-2014-3668.patch
Patch253: php-5.3.3-CVE-2014-3669.patch
Patch254: php-5.3.3-CVE-2014-3670.patch
-Patch255: php-5.3.3-CVE-2014-3710.patch
+
Patch256: php-5.3.29-CVE-2014-8142.patch
Patch257: php-5.3.29-CVE-2015-0231.patch
Patch258: php-5.3.29-CVE-2015-0232.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}
+BuildRequires: apache-base
BuildRequires: autoconf >= 2.53
BuildRequires: automake >= 1.4d
BuildRequires: bison
BuildRequires: db-devel >= 4.0
BuildRequires: elfutils-devel
%{?with_enchant:BuildRequires: enchant-devel >= 1.1.3}
-#BuildRequires: fcgi-devel
BuildRequires: file
%{?with_kerberos5:BuildRequires: heimdal-devel}
+BuildRequires: libatomic-devel
%{?with_system_libzip:BuildRequires: libzip-devel >= 0.10-3}
BuildRequires: mysql-devel
BuildRequires: pkgconfig
+BuildRequires: re2c
BuildRequires: sed >= 4.0
%if %{with mssql} || %{with sybase_ct}
BuildRequires: freetds-devel >= 0.82
BuildRequires: libltdl-devel >= 1.4
BuildRequires: libmcrypt-devel >= 2.4.4
BuildRequires: libpng-devel >= 1.0.8
-#BuildRequires: libtiff-devel
+%{?with_intl:BuildRequires: libstdc++-devel}
%if "%{pld_release}" != "ac"
-BuildRequires: libtool >= 2:2.2
+BuildRequires: libtool >= 2:2.4.6
%else
BuildRequires: libtool >= 1.4.3
%endif
-#BuildRequires: libwrap-devel
BuildRequires: libxml2-devel >= 1:2.7.6-4
BuildRequires: libxslt-devel >= 1.1.0
%{?with_mm:BuildRequires: mm-devel >= 1.3.0}
BuildRequires: apr-devel >= 1:1.0.0
BuildRequires: apr-util-devel >= 1:1.0.0
%endif
-%if %{with fpm}
-#BuildRequires: judy-devel
-%endif
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%define php_sysconfdir /etc/%{name}
%define zipver 1.11.0
%define zend_zts %{!?with_zts:0}%{?with_zts:1}
-%define php_debug %{!?debug:0}%{?debug:1}
+%define php_debug %{!?with_debug:0}%{?with_debug:1}
%if %{with gcov}
%undefine with_ccache
the embedded PHP language in web pages. This package contains PHP
version %{version}.
+%{?with_suhosin:This version is built with Suhosin-Patch for PHP.}
+
%description -l fr.UTF-8
PHP est un langage de script embarque dans le HTM. PHP essaye de
rendre simple aux developpeurs d'ecrire des pages web generees
PHP jako moduł DSO (Dynamic Shared Object) dla Apache 1.3.x.
%package -n apache-mod_%{name}
-Summary: PHP DSO module for Apache 2.x
-Summary(pl.UTF-8): Moduł DSO (Dynamic Shared Object) PHP dla Apache 2.x
+Summary: PHP support for Apache 2.x
+Summary(pl.UTF-8): Wsparcie PHP dla Apache 2.x
Group: Development/Languages/PHP
+Requires: apache-mod_%{name}-core = %{epoch}:%{version}-%{release}
Requires: %{name}-common = %{epoch}:%{version}-%{release}
-Requires: apache(modules-api) = %{apache_modules_api}
-Requires: apache-mod_mime
Provides: webserver(php) = %{version}
Obsoletes: apache-mod_php < 4:5.3.28-7
Obsoletes: phpfi
%description -n apache-mod_%{name}
-PHP as DSO module for Apache 2.x.
+PHP support for Apache 2.x.
%description -n apache-mod_%{name} -l pl.UTF-8
+Wsparcie PHP dla Apache 2.x.
+
+%package -n apache-mod_%{name}-core
+Summary: PHP DSO module for Apache 2.x
+Summary(pl.UTF-8): Moduł DSO (Dynamic Shared Object) PHP dla Apache 2.x
+Group: Development/Languages/PHP
+Requires: %{name}-common = %{epoch}:%{version}-%{release}
+Requires: apache(modules-api) = %{apache_modules_api}
+Requires: apache-mod_mime
+
+%description -n apache-mod_%{name}-core
+PHP as DSO module for Apache 2.x.
+
+%description -n apache-mod_%{name}-core -l pl.UTF-8
PHP jako moduł DSO (Dynamic Shared Object) dla Apache 2.x.
%package litespeed
Provides: webserver(php) = %{version}
Obsoletes: php-cgi < 4:5.3.28-7
Obsoletes: php-fcgi < 4:5.3.0
-%if "%{pld_release}" != "ac"
-Conflicts: logrotate < 3.8.0
-%endif
%description cgi
PHP as CGI or FastCGI program.
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(fcgi)
Provides: php(fpm)
Provides: user(http)
Provides: webserver(php) = %{version}
Obsoletes: php-fpm < 4:5.3.28-7
+%if "%{pld_release}" != "ac"
+Conflicts: logrotate < 3.8.0
+%endif
%description fpm
PHP FastCGI Process Manager.
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_embed:Requires: %{name}-embedded = %{epoch}:%{version}-%{release}}
%{?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
Obsoletes: php52-devel
Obsoletes: php54-devel
Obsoletes: php55-devel
+Obsoletes: php56-devel
+Obsoletes: php70-devel
+Obsoletes: php71-devel
+Obsoletes: php72-devel
+Obsoletes: php73-devel
%description devel
The php-devel package lets you compile dynamic extensions to PHP.
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)
Obsoletes: php-pdo-dblib < 4:5.3.28-7
%description pdo-dblib
Requires: %{name}-common = %{epoch}:%{version}-%{release}
Requires: %{name}-pdo = %{epoch}:%{version}-%{release}
Provides: php(pdo-firebird)
+Provides: php(pdo_firebird)
Obsoletes: php-pdo-firebird < 4:5.3.28-7
Obsoletes: php-pecl-PDO_FIREBIRD
%{?with_mysqlnd:Requires: %{name}-mysqlnd = %{epoch}:%{version}-%{release}}
Requires: %{name}-pdo = %{epoch}:%{version}-%{release}
Provides: php(pdo-mysql)
+Provides: php(pdo_mysql)
Obsoletes: php-pdo-mysql < 4:5.3.28-7
Obsoletes: php-pecl-PDO_MYSQL
Requires: %{name}-common = %{epoch}:%{version}-%{release}
Requires: %{name}-pdo = %{epoch}:%{version}-%{release}
Provides: php(pdo-oci)
+Provides: php(pdo_oci)
Obsoletes: php-pdo-oci < 4:5.3.28-7
Obsoletes: php-pecl-PDO_OCI
Requires: %{name}-common = %{epoch}:%{version}-%{release}
Requires: %{name}-pdo = %{epoch}:%{version}-%{release}
Provides: php(pdo-odbc)
+Provides: php(pdo_odbc)
Obsoletes: php-pdo-odbc < 4:5.3.28-7
Obsoletes: php-pecl-PDO_ODBC
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-pdo-pgsql < 4:5.3.28-7
Obsoletes: php-pecl-PDO_PGSQL < 4:5.2.1-2
Requires: %{name}-common = %{epoch}:%{version}-%{release}
Requires: %{name}-pdo = %{epoch}:%{version}-%{release}
Provides: php(pdo-sqlite)
+Provides: php(pdo_sqlite)
Obsoletes: php-pdo-sqlite < 4:5.3.28-7
Obsoletes: php-pecl-PDO_SQLITE
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
%patch13 -p1
%patch14 -p1
%patch15 -p1
+%patch16 -p1
%patch17 -p1
%patch18 -p1
%if %{with system_gd}
%patch46 -p1
%if %{with suhosin}
%patch47 -p1
+%patch72 -p1
%endif
+%patch68 -p1
%patch48 -p1
%patch49 -p1
%patch50 -p1
%{__rm} -r sapi/litespeed
gzip -dc %{SOURCE15} | tar xf - -C sapi/
%patch67 -p1
-%patch68 -p1
+%patch70 -p1
+%patch71 -p1
+%patch73 -p1
+%patch74 -p1
+%patch75 -p1
+%patch76 -p1
+%patch77 -p1
%patch220 -p1
-%patch238 -p1
+
%patch247 -p1
-%patch248 -p1
+
%patch249 -p1
%patch250 -p1
%patch251 -p1
%patch252 -p1
%patch253 -p1
%patch254 -p1
-%patch255 -p1
+
%patch256 -p1
%patch257 -p1
%patch258 -p1
-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
# disable broken tests
# says just "Terminated" twice and fails
-mv sapi/cli/tests/022.phpt{,.broken}
+%{__mv} sapi/cli/tests/022.phpt{,.broken}
# php-5.3.3/ext/standard/tests/file/statpage.phpt
%{__rm} ext/standard/tests/file/statpage.phpt
touch _built-conf
fi
export PROG_SENDMAIL="/usr/lib/sendmail"
-export CPPFLAGS="-DDEBUG_FASTCGI -DHAVE_STRNDUP %{rpmcppflags} \
- -I%{_includedir}/xmlrpc-epi"
+export CPPFLAGS="-DDEBUG_FASTCGI -DHAVE_STRNDUP -DOPENSSL_NO_SSL2=1 -DOPENSSL_NO_SSL3=1 %{rpmcppflags} -I%{_includedir}/xmlrpc-epi"
+%if %{with lfs}
+CPPFLAGS="$CPPFLAGS $(getconf LFS_CFLAGS)"
+%endif
sapis="
cli
esac
%configure \
+ EXTRA_LDFLAGS="%{rpmldflags}" \
$sapi_args \
%if "%{!?configure_cache:0}%{?configure_cache}" == "0"
--cache-file=config.cache \
--with-config-file-scan-dir=%{_sysconfdir}/conf.d \
--with-exec-dir=%{_bindir} \
--with-system-tzdata \
- --%{!?debug:dis}%{?debug:en}able-debug \
+ --%{!?with_debug:dis}%{?with_debug:en}able-debug \
%{?with_zts:--enable-maintainer-zts} \
--enable-inline-optimization \
--enable-bcmath=shared \
--with-mcrypt=shared \
%{?with_mm:--with-mm} \
%{?with_mssql:--with-mssql=shared} \
- %{?with_mysqlnd:--with-mysqlnd=shared} \
+ %{?with_mysqlnd:--enable-mysqlnd=shared} \
--with-mysql=shared%{?with_mysqlnd:,mysqlnd} \
%{?with_mysqli:--with-mysqli=shared%{?with_mysqlnd:,mysqlnd}} \
%{?with_oci:--with-oci8=shared%{?with_instantclient:,instantclient,%{_libdir}}} \
phpbuilddir=%{_libdir}/%{name}/build \
INSTALL_ROOT=$RPM_BUILD_ROOT
+%if %{without default_php}
+# version the .phar files
+%{__mv} $RPM_BUILD_ROOT%{_bindir}/phar{,%{php_suffix}}.phar
+%endif
+%if %{with alternatives}
+# touch for ghost
+%{__rm} $RPM_BUILD_ROOT%{_bindir}/phar
+touch $RPM_BUILD_ROOT%{_bindir}/phar
+%else
# make link relative
-ln -sfn phar.phar $RPM_BUILD_ROOT%{_bindir}/phar
+ln -sfn phar%{php_suffix}.phar $RPM_BUILD_ROOT%{_bindir}/phar
+%endif
# version suffix
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
%{__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}#
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
%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
+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
%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=
fi
fi
-%posttrans common
# minimizing apache restarts logics. we restart webserver:
#
# 1. at the end of transaction. (posttrans, feature from rpm 4.4.2)
fn=${fn%.rpmsave}
nf=%{_sysconfdir}/$dn/$fn
test -f "$nf" || continue
- cp -vf $nf{,.rpmnew}
- mv -vf $f $nf
+ cp -vfb $nf{,.rpmnew}
+ cp -vfb $f $nf
%{__sed} -i -e '
s#%{_libdir}/php#%{_libdir}/%{name}#
s#/etc/php#%{_sysconfdir}#
%{__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.3.29-23
+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.3.29-23
+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
%extension_scripts pdo-pgsql
%extension_scripts pdo-sqlite
%extension_scripts pgsql
-%extension_scripts phar
%extension_scripts pcntl
%extension_scripts posix
%extension_scripts pspell
%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} || :
+%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
%files -n apache-mod_%{name}
%defattr(644,root,root,755)
%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/httpd/conf.d/*_mod_php.conf
+%attr(755,root,root) %{_libdir}/apache/mod_php.so
+
+%files -n apache-mod_%{name}-core
+%defattr(644,root,root,755)
%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-*.*.so
%endif
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/php-fpm.conf
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/fpm.d/www.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
%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
+%if %{with alternatives}
+%ghost %{_bindir}/phar
+%else
%attr(755,root,root) %{_bindir}/phar
-%attr(755,root,root) %{_bindir}/phar.phar
+%endif
%endif
%files posix