-# NOTES
-# - mysqlnd driver doesn't support reconnect: https://bugs.php.net/bug.php?id=52561
-# TODO 7.2:
-# - https://github.com/php/php-src/blob/php-7.2.0/UPGRADING
-# TODO 5.6:
-# - enable --with-fpm-systemd, but ensure it checks for sd_booted()
-# TODO 5.4:
-# - update imap annotations patch (needs api porting)
-# - update imap myrights patch (needs api porting)
-# --with-libmbfl=DIR MBSTRING: Use external libmbfl. DIR is the libmbfl base install directory BUNDLED
-# TODO:
-# - fileinfo extension bundles magic db in library: data_file.c (dump of magic.mgc) is 14M
-# - 2.3M fileinfo.so php54-fileinfo-5.4.6-0.15.x86_64
-# - 2.3M fileinfo.so php-fileinfo-5.3.16-1.x86_64
-# - 13K fileinfo.so php-pecl-fileinfo-1.0.4-8.amd64
-# - ttyname_r() misdetected http://bugs.php.net/bug.php?id=48820
-# - wddx: restore session support (not compiled in due DL extension check)
-# - modularize standard (output from pure php -m)?
-# - some mods should be shared:
-#$ php -m
-# [PHP Modules]
-# Core
-# date
-# libxml
-# Reflection
-# standard
-#
# Conditional build:
# - 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 systemtap # systemtap/DTrace support
%bcond_with tests # default off; test process very often hangs on builders, approx run time 45m; perform "make test"
%bcond_with zts # Zend Thread Safety
+%bcond_with debug # Zend Debug Build
# - SAPI
%bcond_without apache2 # disable building Apache 2.x SAPI
%bcond_without cgi # disable CGI/FCGI SAPI
%bcond_without wddx # without WDDX extension module
%bcond_without xmlrpc # without XML-RPC extension module
%bcond_without xsl # without xsl extension module
+%bcond_without zip # without zip extension module
# extensions options
%bcond_without argon2 # argon2 password hashing
%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_without system_gd # system gd
-%bcond_without system_libzip # system libzip
%bcond_without webp # Without WebP support in GD extension (imagecreatefromwebp)
%define apxs1 /usr/sbin/apxs1
Summary(ru.UTF-8): PHP Версии 7 - язык препроцессирования HTML-файлов, выполняемый на сервере
Summary(uk.UTF-8): PHP Версії 7 - мова препроцесування HTML-файлів, виконувана на сервері
Name: %{orgname}%{php_suffix}
-Version: 7.2.20
-Release: 2
+Version: 7.2.33
+Release: 1
Epoch: 4
# All files licensed under PHP version 3.01, except
# Zend is licensed under Zend
License: PHP 3.01 and Zend and BSD
Group: Libraries
Source0: http://php.net/distributions/%{orgname}-%{version}.tar.xz
-# Source0-md5: b023517d701397f90094083aef57a78c
+# Source0-md5: 8921fa6824dee6f261a3c832a43ea6ac
Source1: opcache.ini
Source2: %{orgname}-mod_php.conf
Source3: %{orgname}-cgi-fcgi.ini
Patch42: %{orgname}-fpm-shared.patch
Patch43: %{orgname}-silent-session-cleanup.patch
Patch44: %{orgname}-include_path.patch
-Patch47: suhosin.patch
Patch50: extension-shared-optional-dep.patch
Patch51: spl-shared.patch
Patch52: pcre-shared.patch
BuildRequires: elfutils-devel
%{?with_enchant:BuildRequires: enchant-devel >= 1.1.3}
%{?with_kerberos5:BuildRequires: heimdal-devel}
-%{?with_argon2:BuildRequires: libargon2-devel >= 20161029}
-%{?with_sodium:BuildRequires: libsodium-devel >= 1.0.8}
%if %{with pdo_dblib}
BuildRequires: freetds-devel >= 0.82
%endif
%{?with_imap:BuildRequires: imap-devel >= 1:2007e-2}
%{?with_gcov:BuildRequires: lcov}
%{?with_fpm:BuildRequires: libapparmor-devel}
+%{?with_argon2:BuildRequires: libargon2-devel >= 20161029}
%{?with_intl:BuildRequires: libicu-devel >= 4.4}
BuildRequires: libjpeg-devel
BuildRequires: libltdl-devel >= 1.4
BuildRequires: libpng-devel >= 1.0.8
+%{?with_sodium:BuildRequires: libsodium-devel >= 1.0.8}
%{?with_intl:BuildRequires: libstdc++-devel}
%{?with_webp:BuildRequires: libwebp-devel}
BuildRequires: libtool >= 2:2.4.6
BuildRequires: libxml2-devel >= 1:2.7.6-4
%{?with_xsl:BuildRequires: libxslt-devel >= 1.1.0}
-%{?with_system_libzip:BuildRequires: libzip-devel >= 1.2.0}
+%{?with_zip:BuildRequires: libzip-devel >= 1.3.1}
%{?with_snmp:%{?with_tests:BuildRequires: mibs-net-snmp}}
%{?with_mm:BuildRequires: mm-devel >= 1.3.0}
-%{!?with_pdo_mysql:BuildRequires: mysql-devel}
%{!?with_mysqli:BuildRequires: mysql-devel >= 4.1.13}
+%{!?with_pdo_mysql:BuildRequires: mysql-devel}
%{?with_snmp:BuildRequires: net-snmp-devel >= 5.3}
BuildRequires: oniguruma-devel
%{?with_ldap:BuildRequires: openldap-devel >= 2.3.0}
%define sodiumver %{version}
%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
використання PHP - заміна для CGI скриптів.
%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: %{name}-common = %{epoch}:%{version}-%{release}
-Requires: apache(modules-api) = %{apache_modules_api}
-Requires: apache-mod_mime
+Requires: apache-mod_%{name}-core = %{epoch}:%{version}-%{release}
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
-PHP jako moduł DSO (Dynamic Shared Object) dla Apache 2.x.
+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
Summary: PHP for litespeed HTTP server
Group: Libraries
URL: http://php.net/manual/en/book.zip.php
Requires: %{name}-common = %{epoch}:%{version}-%{release}
-%{?with_system_libzip:Requires: libzip >= 1.2.0}
+%{?with_zip:Requires: libzip >= 1.3.1}
Provides: php(zip) = %{zipver}
Obsoletes: php-pecl-zip < %{zipver}
Obsoletes: php-zip < 4:5.3.28-7
%endif
%patch43 -p1
%patch44 -p1
-%if %{with suhosin}
-%patch47 -p1
-%endif
%patch50 -p1
%patch51 -p1 -b .spl-shared
%patch52 -p1 -b .pcre-shared
export CPPFLAGS="-DDEBUG_FASTCGI -DHAVE_STRNDUP %{rpmcppflags} \
-I%{_includedir}/xmlrpc-epi"
+%if %{with intl}
+# icu 59+ C++ API requires C++ >= 11
+CXXFLAGS="$CXXFLAGS -std=c++11"
+%endif
+
sapis="
cli
%if %{with cgi}
--with-config-file-scan-dir=%{_sysconfdir}/conf.d \
--with-system-tzdata \
%{?with_argon2:--with-password-argon2} \
- --%{!?debug:dis}%{?debug:en}able-debug \
+ --%{!?with_debug:dis}%{?with_debug:en}able-debug \
%{?with_zts:--enable-maintainer-zts} \
--enable-inline-optimization \
%{__enable_disable bcmath bcmath shared} \
%{?with_xsl:--with-xsl=shared} \
--with-zlib=shared \
--with-zlib-dir=shared,/usr \
- %{?with_system_libzip:--with-libzip} \
- --enable-zip=shared,/usr \
+ %{?with_zip:--enable-zip=shared,/usr --with-libzip} \
# save for debug
cp -f Makefile Makefile.$sapi
[ "$mod" = "spl" ] && conf="SPL.ini"
# session needs to be loaded before php-pecl-http, php-pecl-memcache, php-pecl-session_mysql
[ "$mod" = "session" ] && conf="Session.ini"
+ # hash needs to be loaded before mysqlnd
+ [ "$mod" = "hash" ] && conf="hash.ini"
# mysqlnd needs to be loaded before mysqli,pdo_mysqli
[ "$mod" = "mysqlnd" ] && conf="MySQLND.ini"
echo "+ $conf"
cp -pf php_config.h.cli main/php_config.h
cp -pf Makefile.cli Makefile
%{__make} install \
- phpbuilddir=%{_libdir}/%{name}/build \
+ phpbuilddir=%{_libdir}/php/php%{php_suffix}/build \
INSTALL_ROOT=$RPM_BUILD_ROOT
# version the .phar files
%{__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
-ln -snf %{_bindir}/shtool $RPM_BUILD_ROOT%{_libdir}/%{name}/build
+ln -snf /usr/share/automake/config.{guess,sub} $RPM_BUILD_ROOT%{_libdir}/php/php%{php_suffix}/build
+ln -snf %{_bindir}/shtool $RPM_BUILD_ROOT%{_libdir}/php/php%{php_suffix}/build
for fn in libtool.m4 lt~obsolete.m4 ltoptions.m4 ltsugar.m4 ltversion.m4; do
f=%{_aclocaldir}/$fn
test -f $f || continue
- ln -snf $f $RPM_BUILD_ROOT%{_libdir}/%{name}/build
+ ln -snf $f $RPM_BUILD_ROOT%{_libdir}/php/php%{php_suffix}/build
done
for fn in ltmain.sh config/ltmain.sh build-aux/ltmain.sh; do
f=/usr/share/libtool/$fn
test -f $f || continue
- ln -snf $f $RPM_BUILD_ROOT%{_libdir}/%{name}/build
+ ln -snf $f $RPM_BUILD_ROOT%{_libdir}/php/php%{php_suffix}/build
break
done
sed -i -e '/^phpdir/ s,/php/build,/%{name}/build,' $RPM_BUILD_ROOT%{_bindir}/phpize%{php_suffix}
# fix install paths, avoid evil rpaths
sed -i -e "s|^libdir=.*|libdir='%{_libdir}'|" $RPM_BUILD_ROOT%{_libdir}/libphp_common%{php_suffix}.la
# better solution?
-sed -i -e 's|libphp_common.la|$(libdir)/libphp_common%{php_suffix}.la|' $RPM_BUILD_ROOT%{_libdir}/%{name}/build/acinclude.m4
+sed -i -e 's|libphp_common.la|$(libdir)/libphp_common%{php_suffix}.la|' $RPM_BUILD_ROOT%{_libdir}/php/php%{php_suffix}/build/acinclude.m4
%clean
rm -rf $RPM_BUILD_ROOT
%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/mod_php.so
%attr(755,root,root) %{_libdir}/apache/libphp%{php_suffix}.so
%endif
%attr(755,root,root) %{_libdir}/libphp_common%{php_suffix}.so
%{_libdir}/libphp_common%{php_suffix}.la
%{_includedir}/php/php%{php_suffix}
-%{_libdir}/%{name}/build
+%{_libdir}/php/php%{php_suffix}/build
%{_mandir}/man1/php-config%{php_suffix}.1*
%ghost %{_mandir}/man1/php-config.1*
%{_mandir}/man1/phpize%{php_suffix}.1*
%attr(755,root,root) %{php_extensiondir}/xsl.so
%endif
+%if %{with zip}
%files zip
%defattr(644,root,root,755)
%doc ext/zip/{CREDITS,TODO}
%doc ext/zip/examples
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/zip.ini
%attr(755,root,root) %{php_extensiondir}/zip.so
+%endif
%files zlib
%defattr(644,root,root,755)