%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 embed # Embedded API
+%bcond_with gcov # Code coverage reporting
+%bcond_without kerberos5 # Kerberos5 support
%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 fpm # disable FPM SAPI
-%bcond_without litespeed # build litespeed SAPI
-%bcond_with milter # disable Milter SAPI
-%bcond_without phpdbg # disable phpdbg SAPI
+%bcond_without apache2 # building Apache 2.x SAPI
+%bcond_without cgi # CGI/FCGI SAPI
+%bcond_without fpm # FPM SAPI
+%bcond_without litespeed # litespeed SAPI
+%bcond_without phpdbg # phpdbg 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 dba # without DBA extension module
-%bcond_without dom # without DOM extension module
-%bcond_without enchant # without Enchant extension module
-%bcond_without exif # without EXIF extension module
-%bcond_without ffi # without FFI extension module
-%bcond_without fileinfo # without fileinfo extension module
-%bcond_without filter # without filter extension module
-%bcond_without ftp # without FTP extension module
-%bcond_without gd # without GD extension module
-%bcond_without gettext # without gettext extension module
-%bcond_without gmp # without gmp 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 mysqli # without mysqli support (Requires mysql >= 4.1)
-%bcond_without mysqlnd # without mysqlnd support in mysql related extensions
-%bcond_with oci # with Oracle oci8 extension module (BR: proprietary libs)
-%bcond_without odbc # without ODBC extension module
-%bcond_without opcache # without Enable Zend OPcache extension support
-%bcond_without openssl # without OpenSSL support and OpenSSL extension (module)
-%bcond_without pcntl # without pcntl extension module
+%bcond_without bcmath # bcmath extension module
+%bcond_without bzip2 # bz2 extension module
+%bcond_without calendar # calendar extension module
+%bcond_without ctype # ctype extension module
+%bcond_without curl # CURL extension module
+%bcond_without dba # DBA extension module
+%bcond_without dom # DOM extension module
+%bcond_without enchant # Enchant extension module
+%bcond_without exif # EXIF extension module
+%bcond_without ffi # FFI extension module
+%bcond_without fileinfo # fileinfo extension module
+%bcond_without filter # filter extension module
+%bcond_without ftp # FTP extension module
+%bcond_without gd # GD extension module
+%bcond_without gettext # gettext extension module
+%bcond_without gmp # gmp extension module
+%bcond_without iconv # iconv extension module
+%bcond_without imap # IMAP extension module
+%bcond_without intl # Intl extension module
+%bcond_without ldap # LDAP extension module
+%bcond_without mbstring # mbstring extension module
+%bcond_without mhash # mhash extension (supported by hash extension)
+%bcond_without mysqli # mysqli support (Requires mysql >= 4.1)
+%bcond_without mysqlnd # mysqlnd support in mysql related extensions
+%bcond_with oci # Oracle oci8 extension module (BR: proprietary libs)
+%bcond_without odbc # ODBC extension module
+%bcond_without opcache # Enable Zend OPcache extension support
+%bcond_without openssl # OpenSSL support and OpenSSL extension (module)
+%bcond_without pcntl # pcntl extension module
%bcond_without pcre_jit # PCRE JIT
-%bcond_without pdo # without PDO extension module
-%bcond_without pdo_dblib # without PDO dblib extension module
-%bcond_without pdo_firebird # without PDO Firebird extension module
-%bcond_without pdo_mysql # without PDO MySQL extension module
+%bcond_without pdo # PDO extension module
+%bcond_without pdo_dblib # PDO dblib extension module
+%bcond_without pdo_firebird # PDO Firebird extension module
+%bcond_without pdo_mysql # PDO MySQL extension module
%bcond_without pdo_oci # without PDO oci extension module
-%bcond_without pdo_odbc # without PDO ODBC extension module
-%bcond_without pdo_pgsql # without PDO pgsql extension module
-%bcond_without pdo_sqlite # without PDO SQLite extension module
-%bcond_without pgsql # without PostgreSQL extension module
-%bcond_without phar # without Phar extension module
-%bcond_without posix # without POSIX extension module
-%bcond_without pspell # without pspell extension module
-%bcond_without readline # without readline extension module
-%bcond_without session # without session extension module
-%bcond_without snmp # without SNMP extension module
-%bcond_without sodium # without sodium extension module
-%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
+%bcond_without pdo_odbc # PDO ODBC extension module
+%bcond_without pdo_pgsql # PDO pgsql extension module
+%bcond_without pdo_sqlite # PDO SQLite extension module
+%bcond_without pgsql # PostgreSQL extension module
+%bcond_without phar # Phar extension module
+%bcond_without posix # POSIX extension module
+%bcond_without pspell # pspell extension module
+%bcond_without readline # readline extension module
+%bcond_without session # session extension module
+%bcond_without snmp # SNMP extension module
+%bcond_without sodium # sodium extension module
+%bcond_without sqlite2 # SQLite extension module
+%bcond_without sqlite3 # SQLite3 extension module
+%bcond_without tidy # Tidy extension module
+%bcond_without xsl # xsl extension module
+%bcond_without zip # zip extension module
# extensions options
%bcond_without argon2 # argon2 password hashing
-%bcond_without instantclient # build Oracle oci8 extension module against oracle-instantclient package
+%bcond_without instantclient # 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 webp # Without WebP support in GD extension (imagecreatefromwebp)
+%bcond_with mm # mm support for session storage
+%bcond_without system_gd # system gd library
+%bcond_without avif # AVIF support in GD extension (imagecreatefromavif and imageavif)
+%bcond_without webp # WebP support in GD extension (imagecreatefromwebp)
-%define apxs1 /usr/sbin/apxs1
%define apxs2 /usr/sbin/apxs
# segfaults on x32
%undefine with_mm
%endif
-# milter requires ZTS
-%if %{with milter} && %{without zts}
-%undefine with_milter
-%endif
-
%if %{without odbc}
%undefine with_pdo_odbc
%endif
%undefine with_pdo_sqlite
%endif
-%define subver beta1
-%define rel 1
%define orgname php
-%define ver_suffix 74
+%define ver_suffix 82
%define php_suffix %{!?with_default_php:%{ver_suffix}}
+%define subver RC4
+%define rel 2
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: 1.%{subver}.%{rel}
+Version: 8.2.0
+Release: 0.%{subver}.%{rel}
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: fa3501cf158adce37359667383ddb672
+#Source0: https://www.php.net/distributions/%{orgname}-%{version}.tar.xz
+Source0: https://downloads.php.net/~sergey/php-%{version}%{subver}.tar.xz
+# Source0-md5: e05241f38fa79a6c1fccbf1edf59c80c
Source1: opcache.ini
Source2: %{orgname}-mod_php.conf
Source3: %{orgname}-cgi-fcgi.ini
Source4: %{orgname}-apache.ini
Source5: %{orgname}-cli.ini
+Source6: timezone.ini
Source10: %{orgname}-fpm.init
Source11: %{orgname}-fpm.logrotate
Source12: %{orgname}-branch.sh
Patch2: %{orgname}-mail.patch
Patch3: %{orgname}-link-libs.patch
Patch4: intl-stdc++.patch
+# https://bugs.php.net/bug.php?id=79589
+Patch5: openssl.patch
Patch7: %{orgname}-sapi-ini-file.patch
-Patch8: milter.patch
-Patch9: libtool-tag.patch
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
Patch31: %{orgname}-fcgi-error_log-no-newlines.patch
Patch39: %{orgname}-use-prog_sendmail.patch
Patch41: %{orgname}-fpm-config.patch
-Patch42: %{orgname}-fpm-shared.patch
Patch43: %{orgname}-silent-session-cleanup.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
# https://bugs.php.net/bug.php?id=68344
Patch68: php-mysql-ssl-context.patch
Patch71: libdb-info.patch
-URL: http://php.net/
+URL: https://www.php.net/
%{?with_pdo_firebird:%{!?with_interbase_inst:BuildRequires: Firebird-devel >= 1.0.2.908-2}}
%{?with_pspell:BuildRequires: aspell-devel >= 2:0.50.0}
BuildRequires: autoconf >= 2.59
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_avif:BuildRequires: libavif-devel >= 0.8.2}
+%{?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_webp:BuildRequires: libwebp-devel >= 0.2.0}
BuildRequires: libxml2-devel >= 1:2.7.6-4
%{?with_xsl:BuildRequires: libxslt-devel >= 1.1.0}
%{?with_zip:BuildRequires: libzip-devel >= 1.3.1}
BuildRequires: oniguruma-devel
%{?with_ldap:BuildRequires: openldap-devel >= 2.3.0}
%if %{with openssl} || %{with ldap}
-BuildRequires: openssl-devel >= 1.0.1
+BuildRequires: openssl-devel >= 1.0.2
%endif
%{?with_oci:%{?with_instantclient:BuildRequires: oracle-instantclient-devel}}
BuildRequires: pam-devel
BuildRequires: rpmbuild(macros) >= 1.566
BuildRequires: sed >= 4.0
%if %{with sqlite3} || %{with pdo_sqlite}
-BuildRequires: sqlite3-devel >= 3.7.4
+BuildRequires: sqlite3-devel >= 3.7.7
%endif
%{?with_systemtap:BuildRequires: systemtap-sdt-devel}
BuildRequires: tar >= 1:1.22
%{?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 20190529
+%define php_api_version 20220829
%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 fileinfover %{version}
%define hashver %{version}
%define intlver %{version}
-%define jsonver 1.7.0
+%define jsonver %{version}
%define pharver %{version}
%define sqlite3ver %{version}
-%define zipver 1.15.4
+%define zipver 1.21.1
%define phpdbgver %{version}
%define sodiumver %{version}
Summary(pl.UTF-8): Dowiązanie symboliczne /usr/bin/php
Group: Development/Languages/PHP
Requires: %{name}-cli = %{epoch}:%{version}-%{release}
-Obsoletes: /usr/bin/php
Obsoletes: php-program < 4:5.3.28-7
+Obsoletes: php4-program < 3:5
+Obsoletes: php52-program < 4:5.3
+Obsoletes: php53-program < 4:5.4
+Obsoletes: php54-program < 4:5.5
+Obsoletes: php55-program < 4:5.6
+Obsoletes: php56-program < 4:7
+Obsoletes: php70-program < 4:7.1
+Obsoletes: php71-program < 4:7.2
+Obsoletes: php72-program < 4:7.3
+Obsoletes: php73-program < 4:7.4
+Obsoletes: php74-program < 4:8
+Obsoletes: php80-program < 4:8.1
+Obsoletes: php81-program < 4:8.2
%description program
Package providing /usr/bin/php symlink to PHP CLI.
Requires: shtool
Provides: php-devel = %{epoch}:%{version}-%{release}
Obsoletes: php-devel
-Obsoletes: php-pear-devel
-Obsoletes: php4-devel
-Obsoletes: php52-devel
-Obsoletes: php53-devel
-Obsoletes: php54-devel
-Obsoletes: php55-devel
-Obsoletes: php56-devel
-Obsoletes: php70-devel
-Obsoletes: php71-devel
-Obsoletes: php73-devel
+Obsoletes: php-pear-devel < 3:4.3.0-1
+Obsoletes: php4-devel < 3:5
+Obsoletes: php52-devel < 4:5.3
+Obsoletes: php53-devel < 4:5.4
+Obsoletes: php54-devel < 4:5.5
+Obsoletes: php55-devel < 4:5.6
+Obsoletes: php56-devel < 4:7
+Obsoletes: php70-devel < 4:7.1
+Obsoletes: php71-devel < 4:7.2
+Obsoletes: php72-devel < 4:7.3
+Obsoletes: php73-devel < 4:7.4
+Obsoletes: php74-devel < 4:8
+Obsoletes: php80-devel < 4:8.1
+Obsoletes: php81-devel < 4:8.2
%description devel
The php-devel package lets you compile dynamic extensions to PHP.
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
Requires: %{name}-pcre = %{epoch}:%{version}-%{release}
Provides: php(filter)
Obsoletes: php-filter < 4:5.3.28-7
-Obsoletes: php-pecl-filter
+Obsoletes: php-pecl-filter < 0.12
%description filter
We all know that you should always check input variables, but PHP does
Provides: %{name}(PDO_API) = %{php_pdo_api_version}
Provides: php(pdo)
Obsoletes: php-pdo < 4:5.3.28-7
-Obsoletes: php-pecl-PDO
+Obsoletes: php-pecl-PDO < 1.1
%description pdo
This is a dynamic shared object (DSO) for PHP that will add PDO
Provides: php(pdo-firebird)
Provides: php(pdo_firebird)
Obsoletes: php-pdo-firebird < 4:5.3.28-7
-Obsoletes: php-pecl-PDO_FIREBIRD
+Obsoletes: php-pecl-PDO_FIREBIRD < 0.3
%description pdo-firebird
This is a dynamic shared object (DSO) for PHP that will add PDO
Provides: php(pdo-mysql)
Provides: php(pdo_mysql)
Obsoletes: php-pdo-mysql < 4:5.3.28-7
-Obsoletes: php-pecl-PDO_MYSQL
+Obsoletes: php-pecl-PDO_MYSQL < 1.1
%description pdo-mysql
This is a dynamic shared object (DSO) for PHP that will add PDO MySQL
Provides: php(pdo-oci)
Provides: php(pdo_oci)
Obsoletes: php-pdo-oci < 4:5.3.28-7
-Obsoletes: php-pecl-PDO_OCI
+Obsoletes: php-pecl-PDO_OCI < 1.1
%description pdo-oci
This is a dynamic shared object (DSO) for PHP that will add PDO Oracle
Provides: php(pdo-odbc)
Provides: php(pdo_odbc)
Obsoletes: php-pdo-odbc < 4:5.3.28-7
-Obsoletes: php-pecl-PDO_ODBC
+Obsoletes: php-pecl-PDO_ODBC < 1.1
%description pdo-odbc
This is a dynamic shared object (DSO) for PHP that will add PDO ODBC
Provides: php(pdo-sqlite)
Provides: php(pdo_sqlite)
Obsoletes: php-pdo-sqlite < 4:5.3.28-7
-Obsoletes: php-pecl-PDO_SQLITE
+Obsoletes: php-pecl-PDO_SQLITE < 1.1
%description pdo-sqlite
This is a dynamic shared object (DSO) for PHP that will add PDO SQLite
%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
Group: Libraries
URL: http://qa.php.net/
Requires: %{name}-cli
-%if "%{_rpmversion}" >= "5"
BuildArch: noarch
-%endif
%description tests
This package contains unit tests for PHP and its extensions.
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
URL: http://php.net/manual/en/book.xmlwriter.php
Requires: %{name}-common = %{epoch}:%{version}-%{release}
Provides: php(xmlwriter)
-Obsoletes: php-pecl-xmlwriter
+Obsoletes: php-pecl-xmlwriter < 2.1
Obsoletes: php-xmlwriter < 4:5.3.28-7
%description xmlwriter
%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
+#%patch5 -p1 resolved upstream?
-%patch7 -p1
-%{?with_milter:%patch8 -p1}
-%patch9 -p1
-%patch10 -p1
+%patch7 -p1 -b .sapi-ini-file
+%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
-%patch42 -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
: Update the zipver macro and rebuild.
exit 1
fi
-ver=$(sed -n '/#define PHP_JSON_VERSION /{s/.* "//;s/".*$//;p}' ext/json/php_json.h)
-if test "$ver" != "%{jsonver}"; then
+ver=$(get_version PHP_JSON_VERSION ext/json/php_json.h)
+if test "$ver" != "PHP_VERSION"; then
: Error: Upstream JSON version is now ${ver}, expecting %{jsonver}.
: Update the jsonver macro and rebuild.
exit 1
# configure once (for faster debugging purposes)
if [ ! -f _built-conf ]; then
# now remove Makefile copies
- rm -f Makefile.{cgi-fcgi,fpm,cli,apxs1,apxs2,litespeed,phpdbg,milter}
+ rm -f Makefile.{cgi-fcgi,fpm,cli,apxs2,litespeed,phpdbg}
# Force use of system libtool:
mv build/libtool.m4 build/libtool.m4.saved
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
%if %{with phpdbg}
phpdbg
%endif
-%if %{with milter}
-milter
-%endif
"
for sapi in $sapis; do
: SAPI $sapi
phpdbg)
sapi_args='--enable-phpdbg %{?debug:--enable-phpdbg-debug}'
;;
- milter)
- sapi_args='--with-milter'
- ;;
esac
%configure \
%{?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 \
+ %{?with_avif:--with-avif} \
%if %{with fpm}
--with-fpm-user=http \
--with-fpm-group=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} \
MYSQLND_SHARED_LIBADD="-lssl -lcrypto"
%if %{with apache2}
-%{__make} libtool-sapi LIBTOOL_SAPI=sapi/apache2handler/libphp7.la -f Makefile.apxs2
+%{__make} libtool-sapi LIBTOOL_SAPI=sapi/apache2handler/libphp8.la -f Makefile.apxs2
%endif
%if %{with litespeed}
%endif
%if %{with embed}
-%{__make} -f Makefile.embed libphp7.la
+%{__make} -f Makefile.embed libphp8.la
%endif
%if %{with phpdbg}
PHPDBG_EXTRA_LIBS=-lreadline
%endif
-%if %{with milter}
-%{__make} -f Makefile.milter milter
-%endif
-
# CGI/FCGI
%if %{with cgi}
cp -pf php_config.h.cgi-fcgi main/php_config.h
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{%{_libdir}/{php,apache{,1}},%{_sysconfdir}/{apache,cgi}} \
+install -d \
+ $RPM_BUILD_ROOT%{_libdir}/{php,apache} \
+ $RPM_BUILD_ROOT%{_sysconfdir}/{conf,cgi-fcgi,cli,apache2handler}.d \
$RPM_BUILD_ROOT{%{_sbindir},%{_bindir}} \
- $RPM_BUILD_ROOT/etc/{apache/conf.d,httpd/conf.d} \
+ $RPM_BUILD_ROOT/etc/httpd/conf.d \
$RPM_BUILD_ROOT%{_mandir}/man{1,8} \
cp -pf php_config.h.cli main/php_config.h
# install Apache2 DSO module
%if %{with apache2}
-libtool --mode=install install -p sapi/apache2handler/libphp7.la $RPM_BUILD_ROOT%{_libdir}/apache
-%{__mv} $RPM_BUILD_ROOT%{_libdir}/apache/libphp7{,-$v}.so
-ln -s libphp7-$v.so $RPM_BUILD_ROOT%{_libdir}/apache/mod_php.so
+libtool --mode=install install -p sapi/apache2handler/libphp8.la $RPM_BUILD_ROOT%{_libdir}/apache
+%{__mv} $RPM_BUILD_ROOT%{_libdir}/apache/libphp8{,-$v}.so
+ln -s libphp8-$v.so $RPM_BUILD_ROOT%{_libdir}/apache/mod_php.so
%endif
# install litespeed sapi
%endif
%endif
-%if %{with milter}
-%{__make} -f Makefile.milter install-milter \
- INSTALL_ROOT=$RPM_BUILD_ROOT
-%endif
-
libtool --mode=install install -p libphp_common.la $RPM_BUILD_ROOT%{_libdir}
# install CGI/FCGI
# install-cgi
libtool --mode=install install -p sapi/cgi/php-cgi $RPM_BUILD_ROOT%{_bindir}/%{name}.cgi
ln -sf %{name}.cgi $RPM_BUILD_ROOT%{_bindir}/%{name}.fcgi
-cp -p %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/php-cgi-fcgi.ini
+cp -p %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/cgi-fcgi.d/php.ini
%endif
# install FCGI PM
# we could use install-headers from Makefile.embed, but that would reinstall all headers
# install-sapi installs to wrong dir, so just do it all manually
install -d $RPM_BUILD_ROOT%{_includedir}/php/sapi/embed
-install -p libs/libphp7.so $RPM_BUILD_ROOT%{_libdir}
+install -p libs/libphp8.so $RPM_BUILD_ROOT%{_libdir}
cp -p sapi/embed/php_embed.h $RPM_BUILD_ROOT%{_includedir}/php/sapi/embed
%endif
ln -sf php%{ver_suffix} $RPM_BUILD_ROOT%{_bindir}/php
cp -p php.ini $RPM_BUILD_ROOT%{_sysconfdir}/php.ini
-cp -p %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/php-cli.ini
+cp -p %{SOURCE6} $RPM_BUILD_ROOT%{_sysconfdir}/conf.d/timezone.ini
+cp -p %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/cli.d/php.ini
%if %{with apache2}
cp -p %{SOURCE2} $RPM_BUILD_ROOT/etc/httpd/conf.d/70_mod_php.conf
-cp -p %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/php-apache2handler.ini
-%{__rm} -f $RPM_BUILD_ROOT%{_libdir}/apache/libphp7.la
+cp -p %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/apache2handler.d/php.ini
+%{__rm} -f $RPM_BUILD_ROOT%{_libdir}/apache/libphp8.la
%endif
# ensure that paths are correct for current php version and arch
cp -p conf.d/*.ini $RPM_BUILD_ROOT%{_sysconfdir}/conf.d
cp -p %{_sourcedir}/opcache.ini $RPM_BUILD_ROOT%{_sysconfdir}/conf.d
-# per SAPI ini directories
-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}
TIMEZONE=
. /etc/sysconfig/timezone
if [ "$TIMEZONE" ]; then
- %{__sed} -i -e "s,^;date.timezone[[:space:]]*=.*,date.timezone = $TIMEZONE," %{_sysconfdir}/php.ini
+ %{__sed} -i -e "s,^;date.timezone[[:space:]]*=.*,date.timezone = $TIMEZONE," %{_sysconfdir}/conf.d/timezone.ini
fi
fi
# common package are very important for all this to work.
# restart webserver at the end of transaction
-[ ! -f /etc/apache/conf.d/??_mod_php.conf ] || %service -q apache restart
[ ! -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
%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/libphp7-*.*.so
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/apache2handler.d/php.ini
+%attr(755,root,root) %{_libdir}/apache/libphp8-*.*.so
%endif
%if %{with litespeed}
%files cgi
%defattr(644,root,root,755)
%dir %{_sysconfdir}/cgi-fcgi.d
-%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/php-cgi-fcgi.ini
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/cgi-fcgi.d/php.ini
%attr(755,root,root) %{_bindir}/%{name}.cgi
%attr(755,root,root) %{_bindir}/%{name}.fcgi
%endif
%if %{with embed}
%files embedded
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libphp7.so
+%attr(755,root,root) %{_libdir}/libphp8.so
%endif
%files cli
%defattr(644,root,root,755)
%dir %{_sysconfdir}/cli.d
-%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/php-cli.ini
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/cli.d/php.ini
%attr(755,root,root) %{_bindir}/php%{ver_suffix}
%{_mandir}/man1/php%{ver_suffix}.1*
%{_mandir}/man1/phpdbg%{php_suffix}.1*
%endif
-%if %{with milter}
-%files milter
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/php-milter
-%endif
-
%files common
%defattr(644,root,root,755)
%doc EXTENSIONS LICENSE NEWS UPGRADING* Zend/{LICENSE.Zend,README*} php.ini-* .gdbinit
%dir %{_sysconfdir}
%dir %{_sysconfdir}/conf.d
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/php.ini
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/timezone.ini
%attr(755,root,root) %{_libdir}/libphp_common-*.so
%dir %{php_extensiondir}
%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
%if %{with pdo_oci}
%files oci8
%defattr(644,root,root,755)
-%doc ext/oci8/{CREDITS,README}
+%doc ext/oci8/{CREDITS,README.md}
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/??_oci8.ini
%attr(755,root,root) %{php_extensiondir}/oci8.so
%endif
%{php_data_dir}/tests/php/run-test
%{php_data_dir}/tests/php/security
%{php_data_dir}/tests/php/strings
-%{php_data_dir}/tests/php/quicktester.inc
%attr(755,root,root) %{php_data_dir}/tests/php/run-tests.php
%if %{with tidy}
%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