# NOTES
# - mysqlnd driver doesn't support reconnect: https://bugs.php.net/bug.php?id=52561
+# TODO 8.0:
+# - removed packages: xmlrpc
# TODO 5.6:
# - enable --with-fpm-systemd, but ensure it checks for sd_booted()
# TODO:
%bcond_without phpdbg # disable phpdbg SAPI
# - Extensions
%bcond_without bcmath # without bcmath extension module
-%bcond_without bz2 # without bz2 extension module
+%bcond_without bzip2 # 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 iconv # without iconv extension module
%bcond_without imap # without IMAP extension module
%bcond_without intl # without Intl extension module
-%bcond_without json # without json extension module
%bcond_without ldap # without LDAP extension module
%bcond_without mbstring # without mbstring extension module
%bcond_without mhash # without mhash extension (supported by hash extension)
%bcond_without sqlite2 # without SQLite extension module
%bcond_without sqlite3 # without SQLite3 extension module
%bcond_without tidy # without Tidy 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
%undefine with_pdo_sqlite
%endif
-%define subver RC3
-%define rel 1
%define orgname php
-%define ver_suffix 74
+%define ver_suffix 80
%define php_suffix %{!?with_default_php:%{ver_suffix}}
Summary: PHP: Hypertext Preprocessor
Summary(fr.UTF-8): Le langage de script embarque-HTML PHP
Summary(pl.UTF-8): Język skryptowy PHP
Summary(pt_BR.UTF-8): A linguagem de script PHP
-Summary(ru.UTF-8): PHP Версии 7 - язык препроцессирования HTML-файлов, выполняемый на сервере
-Summary(uk.UTF-8): PHP Версії 7 - мова препроцесування HTML-файлів, виконувана на сервері
+Summary(ru.UTF-8): PHP - язык препроцессирования HTML-файлов, выполняемый на сервере
+Summary(uk.UTF-8): PHP - мова препроцесування HTML-файлів, виконувана на сервері
Name: %{orgname}%{php_suffix}
-Version: 7.4.0
-Release: 2.%{subver}.%{rel}
+Version: 8.0.0
+Release: 2
Epoch: 4
# 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: https://php.net/distributions/%{orgname}-%{version}.tar.xz
-Source0: https://downloads.php.net/~derick/php-%{version}%{subver}.tar.xz
-# Source0-md5: 16bab715ced5f8af92344c4400d7bed5
+Source0: https://php.net/distributions/%{orgname}-%{version}.tar.xz
+# Source0-md5: 52ad70ea64968d6095c6e38139533d57
Source1: opcache.ini
Source2: %{orgname}-mod_php.conf
Source3: %{orgname}-cgi-fcgi.ini
Patch10: %{orgname}-ini.patch
Patch11: embed.patch
Patch14: %{orgname}-no_pear_install.patch
-Patch17: %{orgname}-readline.patch
Patch18: %{orgname}-nohttpd.patch
Patch21: %{orgname}-dba-link.patch
Patch22: %{orgname}-both-apxs.patch
Patch44: %{orgname}-include_path.patch
Patch50: extension-shared-optional-dep.patch
Patch53: fix-test-run.patch
-Patch55: bug-52078-fileinode.patch
Patch59: %{orgname}-systzdata.patch
Patch60: %{orgname}-oracle-instantclient.patch
Patch66: php-db.patch
BuildRequires: db-devel >= 4.0
BuildRequires: elfutils-devel
%{?with_enchant:BuildRequires: enchant-devel >= 1.1.3}
-%{?with_kerberos5:BuildRequires: heimdal-devel}
-%{?with_argon2:BuildRequires: libargon2-devel >= 20161029}
-%{?with_ffi:BuildRequires: libffi-devel}
-%{?with_sodium:BuildRequires: libsodium-devel >= 1.0.8}
%if %{with pdo_dblib}
BuildRequires: freetds-devel >= 0.82
%endif
%endif
BuildRequires: gdbm-devel
BuildRequires: gmp-devel >= 4.2
+%{?with_kerberos5:BuildRequires: heimdal-devel}
%{?with_imap:BuildRequires: imap-devel >= 1:2007e-2}
%{?with_gcov:BuildRequires: lcov}
%{?with_fpm:BuildRequires: libapparmor-devel}
+%{?with_argon2:BuildRequires: libargon2-devel >= 20161029}
+%{?with_ffi:BuildRequires: libffi-devel}
%{?with_intl:BuildRequires: libicu-devel >= 50.1}
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}
BuildRequires: libtool >= 2:2.4.6
%{?with_webp:BuildRequires: libwebp-devel}
%{?with_tidy:BuildRequires: tidy-devel}
BuildRequires: tokyocabinet-devel
%{?with_odbc:BuildRequires: unixODBC-devel}
-%{?with_xmlrpc:BuildRequires: xmlrpc-epi-devel >= 0.54.1}
BuildRequires: xz
BuildRequires: zlib-devel >= 1.2.0.4
%if %{with apache2}
%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 20190902
+%define php_api_version 20200930
%define zend_module_api %{php_api_version}
-%define zend_extension_api 3%{zend_module_api}
+%define zend_extension_api 4%{zend_module_api}
%define php_pdo_api_version 20170320
# Extension versions
%define jsonver %{version}
%define pharver %{version}
%define sqlite3ver %{version}
-%define zipver 1.15.5
+%define zipver 1.19.1
%define phpdbgver %{version}
%define sodiumver %{version}
Moduł PHP dodający obsługę znaczników EXIF w plikach obrazków.
%package ffi
-Summary: %{modname} - Foreign Function Interface
+Summary: Foreign Function Interface module for PHP
+Summary(pl.UTF-8): Moduł Foreign Function Interface (interfejsu do obcych języków) dla PHP
Group: Libraries
URL: https://www.php.net/manual/en/book.ffi.php
Requires: %{name}-common = %{epoch}:%{version}-%{release}
FFI is a multi-platform extension for PHP that allows you to bind to
functions from arbitrary shared libraries and call them.
+%description ffi -l pl.UTF-8
+FFI to wieloplatformowe rozszerzenie dla PHP pozwalające dowiązywać
+funkcje z dowolnych bibliotek współdzielonych i wywoływać je.
+
%package fileinfo
Summary: libmagic bindings
Summary(pl.UTF-8): Wiązania do libmagic
%package sodium
Summary: Wrapper for the Sodium cryptographic library
+Summary(pl.UTF-8): Interfejs do biblioteki kryptograficznej Sodium
Group: Libraries
URL: https://paragonie.com/book/pecl-libsodium
Requires: %{name}-common = %{epoch}:%{version}-%{release}
%description sodium
A simple, low-level PHP extension for libsodium.
+%description sodium -l pl.UTF-8
+Proste, niskopoziomowe rozszerzenie PHP wykorzystując libsodium.
+
%package sqlite3
Summary: SQLite3 extension module for PHP
Summary(pl.UTF-8): Moduł SQLite3 dla PHP
działa jako kursor przechodzący przez strumień dokumentu i
zatrzymujący się na każdym węźle po drodze.
-%package xmlrpc
-Summary: xmlrpc extension module for PHP
-Summary(pl.UTF-8): Moduł xmlrpc dla PHP
-Group: Libraries
-URL: http://php.net/manual/en/book.xmlrpc.php
-Requires: %{name}-common = %{epoch}:%{version}-%{release}
-Requires: %{name}-xml = %{epoch}:%{version}-%{release}
-Provides: php(xmlrpc)
-Obsoletes: php-xmlrpc < 4:5.3.28-7
-
-%description xmlrpc
-This is a dynamic shared object (DSO) for PHP that will add XMLRPC
-support.
-
-%description xmlrpc -l pl.UTF-8
-Moduł PHP dodający obsługę XMLRPC.
-
%package xmlwriter
Summary: Fast, non-cached, forward-only means to write XML data
Summary(pl.UTF-8): Szybka, nie cachowana metoda zapisu danych w formacie XML
%prep
%setup -q -n %{orgname}-%{version}%{?subver}
+
cp -p php.ini-production php.ini
%patch0 -p1
%patch1 -p1
-%patch2 -p1
+#%patch2 -p1 -b .mail
%patch3 -p1
%patch4 -p1
-%patch7 -p1
+%patch7 -p1 -b .sapi-ini-file
%patch9 -p1
-%patch10 -p1
+%patch10 -p1 -b .ini
%patch14 -p1
-%patch17 -p1
%patch18 -p1
%patch21 -p1
%patch22 -p1
%patch23 -p1
-%patch24 -p1
+%patch24 -p1 -b .zlib-for-getimagesize
%patch25 -p1
%patch27 -p1
%patch29 -p1
%patch31 -p1
-%patch39 -p1
+%patch39 -p1 -b .use-prog_sendmail
%patch41 -p1
%patch43 -p1
%patch44 -p1
%patch50 -p1
-
%patch53 -p1
-%undos ext/spl/tests/SplFileInfo_getInode_basic.phpt
-%patch55 -p1
%patch59 -p1 -b .systzdata
%if %{with instantclient}
%patch60 -p1 -b .instantclient
%endif
%patch66 -p1
-%patch67 -p1
+%patch67 -p1 -b .mysql-lib-ver-mismatch
#%patch68 -p1 DROP or update to 7.0 APIs
-%patch71 -p1
+%patch71 -p1 -b .libdb-info
-%{__sed} -i -e '/PHP_ADD_LIBRARY_WITH_PATH/s#xmlrpc,#xmlrpc-epi,#' ext/xmlrpc/config.m4
+sed -E -i -e '1s,#!\s*/usr/bin/env\s+(.*),#!%{__bindir}\1,' \
+ ext/ext_skel.php \
+ run-tests.php
# cleanup backups after patching
find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
#%{__rm} -r ext/mbstring/libmbfl
#%{__rm} -r ext/pcre/pcre2lib
#%{__rm} -r ext/soap/interop
-%{__rm} -r ext/xmlrpc/libxmlrpc
#%{__rm} -r ext/zip/lib
%{__rm} ext/date/lib/timezonedb.h
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 %{rpmcppflags}"
# This should be detected by configure and set there,
# but looks like the build system is hosed on 7.3
%{?with_argon2:--with-password-argon2} \
--%{!?with_debug:dis}%{?with_debug:en}able-debug \
%{?with_zts:--enable-maintainer-zts} \
- --enable-inline-optimization \
+ --enable-option-checking=fatal \
%{__enable_disable bcmath bcmath shared} \
%{__enable_disable calendar calendar shared} \
%{__enable_disable ctype ctype shared} \
--enable-mbregex \
%{__enable_disable pcntl pcntl shared} \
%{__enable_disable pdo pdo shared} \
- %{__enable_disable json json shared} \
--enable-xmlwriter=shared \
%if %{with fpm}
--with-fpm-user=http \
--enable-tokenizer=shared \
--enable-xml=shared \
--enable-xmlreader=shared \
- %{__with_without bz2 bz2 shared} \
+ %{__with_without bzip2 bz2 shared} \
%{__with_without curl curl shared} \
--with-db4 \
%{__with_without iconv iconv shared} \
%{__with_without sqlite3 sqlite3 shared} \
%{?with_tidy:--with-tidy=shared} \
%{?with_odbc:--with-unixODBC=shared} \
- %{__with_without xmlrpc xmlrpc shared,/usr} \
%{?with_xsl:--with-xsl=shared} \
--with-zlib=shared \
%{?with_zip:--with-zip=shared} \
# restart webserver at the end of transaction
[ ! -f /etc/httpd/conf.d/??_mod_php.conf ] || %service -q httpd restart
-%triggerpostun common -- php-common < 4:5.3.28-7
+%triggerpostun common -- %{name}-common < 4:5.6.4-2, php-common < 4:5.6.4-2
+# switch to browscap package if the ini file has original value
+%{__sed} -i -e 's#%{_sysconfdir}/browscap.ini#/usr/share/browscap/php_browscap.ini#' %{_sysconfdir}/php.ini
+# disable browscap, if optional package not present
+if [ ! -e /usr/share/browscap/php_browscap.ini ]; then
+ %{__sed} -i -e 's#^browscap = /usr/share/browscap/php_browscap.ini#;&#' %{_sysconfdir}/php.ini
+fi
+
# migrate configs /etc/php/conf.d -> /etc/phpXY/conf.d/
# do config migration in php-common trigger, as the trigger is ran after all packages are upgraded
# this way we can stick to one trigger, instead of attaching one for each (sub)package!
' $nf
done
-%triggerpostun common -- %{name}-common < 4:5.6.4-2, php-common < 4:5.6.4-2
-# switch to browscap package if the ini file has original value
-%{__sed} -i -e 's#%{_sysconfdir}/browscap.ini#/usr/share/browscap/php_browscap.ini#' %{_sysconfdir}/php.ini
-# disable browscap, if optional package not present
-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 apache-mod_%{name} -- apache-mod_%{name} < 4:7.0.0-2.RC4
sed -i -e 's#modules/libphp[57].so#modules/mod_php.so#g' /etc/httpd/conf.d/*_mod_php.conf
%extension_scripts tokenizer
%extension_scripts xml
%extension_scripts xmlreader
-%extension_scripts xmlrpc
%extension_scripts xmlwriter
%extension_scripts xsl
%extension_scripts zip
%attr(755,root,root) %{php_extensiondir}/bcmath.so
%endif
-%if %{with bz2}
+%if %{with bzip2}
%files bz2
%defattr(644,root,root,755)
%doc ext/bz2/CREDITS
%attr(755,root,root) %{php_extensiondir}/intl.so
%endif
-%if %{with json}
%files json
%defattr(644,root,root,755)
%doc ext/json/CREDITS
-%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/??_json.ini
-%attr(755,root,root) %{php_extensiondir}/json.so
-%endif
%if %{with ldap}
%files ldap
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/??_xmlreader.ini
%attr(755,root,root) %{php_extensiondir}/xmlreader.so
-%if %{with xmlrpc}
-%files xmlrpc
-%defattr(644,root,root,755)
-%doc ext/xmlrpc/CREDITS
-%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/??_xmlrpc.ini
-%attr(755,root,root) %{php_extensiondir}/xmlrpc.so
-%endif
-
%files xmlwriter
%defattr(644,root,root,755)
%doc ext/xmlwriter/CREDITS