]> TLD Linux GIT Repositories - packages/php.git/blobdiff - php.spec
- updated to 7.0.2, mostly PLD merge, but TLDized (as usual) and with some patches
[packages/php.git] / php.spec
index 9479ee17a5b2c4dc9a559939ac9efa4138a23049..aaff873e174bd9ef52221173c9fd7b9734498c27 100644 (file)
--- a/php.spec
+++ b/php.spec
@@ -1,15 +1,11 @@
 # TODO 5.6:
-# - phpdbg: link with libphp_common
 # - enable --with-fpm-systemd, but ensure it checks for sd_booted()
 # - build with system libgd 2.1, see 73c5128
 # TODO 5.4:
-# - check php-sapi-ini-file.patch for safe mode removal
 # - 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
 # --with-onig=DIR         MBSTRING: Use external oniguruma. DIR is the oniguruma install prefix.
-# UNPACKAGED EXTENSION NOTES:
-# - com_dotnet is Win32-only
 # 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
 #   -  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)
-# - deal with modules removed from php and not moved to PECL, still not obsoleted anywhere
-#   - removed from php 5.0 (currently in php4):
-#   db [pecl-svn], hyperwave [pecl-svn], java [pecl-svn], mcal [pecl-svn], qtdom [pecl-svn]
-#   - removed from php 5.1:
-#   oracle [pecl-svn]
-#   - removed from php 5.2:
-#   filepro [pecl-svn], hwapi [pecl-svn]
-# - make additional headers and checking added by mail patch configurable
 # - modularize standard (output from pure php -m)?
-# - lib64 patch obsolete by $PHP_LIBDIR ?
-# - WARNING: Phar: sha256/sha512 signature support disabled if ext/hash is
-#   built shared, also PHAR_HAVE_OPENSSL is false if openssl is built shared.
-#   make it runtime dep and add Suggests (or php warning messages)
 # - some mods should be shared:
 #$ php -m
 # [PHP Modules]
-#+Core
+# Core
 # date
-#+ereg
 # libxml
 # Reflection
 # standard
-# 
+#
 # Conditional build:
 %bcond_without default_php     # use this PHP as default PHP in distro
+# - General options:
+%bcond_without embed           # disable building Embedded API
+%bcond_with    gcov            # Enable Code coverage reporting
+%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    oci             # with Oracle oci8 extension module     (BR: proprietary libs)
-%bcond_with    instantclient   # build Oracle oci8 extension module against oracle-instantclient package
+%bcond_without kerberos5       # without Kerberos5 support
+%bcond_with    mm              # without mm support for session storage
+%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    system_gd       # with system gd (imageantialias function is missing then)
 %bcond_with    system_libzip   # with system libzip (reported broken currently)
+%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_without webp            # Without WebP support in GD extension (imagecreatefromwebp)
+%bcond_with    zts             # Zend Thread Safety
+# - 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
+# - 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 ereg            # without ext/ereg support
+%bcond_without exif            # without EXIF 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 hash            # without hash extension module
+%bcond_without iconv           # without iconv 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 json            # without json extension module
 %bcond_without ldap            # without LDAP extension module
+%bcond_without mbstring        # without mbstring extension module
+%bcond_without mcrypt          # without mbcrypt 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
+%bcond_without mysqli          # without mysqli support (Requires mysql >= 4.1)
 %bcond_without mysqlnd         # without 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 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 pcre            # without PCRE extension module
+%bcond_without pdo             # without PDO extension module
+%bcond_without pdo_dblib       # without PDO dblib extension module
+%bcond_without pdo_mysql       # without PDO MySQL 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 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 recode          # without recode extension module
+%bcond_without session         # without session extension module
 %bcond_without snmp            # without SNMP extension module
 %bcond_without sqlite2         # without SQLite extension module
 %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_with    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 phpdbg          # disable phpdbg SAPI
-%bcond_with    milter          # disable Milter SAPI
-%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    gcov            # Enable Code coverage reporting
-%bcond_with    type_hints      # experimental support for strict typing/casting
 
 %define apxs1          /usr/sbin/apxs1
 %define        apxs2           /usr/sbin/apxs
 
 # disable all sapis
 %if %{with gcov}
-%undefine      with_apache1
 %undefine      with_apache2
 %undefine      with_cgi
 %undefine      with_litespeed
 %undefine      with_milter
 %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 0
-%if %{without apache1} && %{without apache2}
-ERROR: You need to select at least one Apache SAPI to build shared modules.
-%endif
-%endif
-
 # filter depends on pcre
 %if %{without pcre}
 %undefine      with_filter
 %endif
 
-%define                rel     1
 %define                orgname php
-%define                ver_suffix 56
+%define                ver_suffix 70
 %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 Версии 5 - язык препроцессирования HTML-файлов, выполняемый на сервере
-Summary(uk.UTF-8):     PHP Версії 5 - мова препроцесування HTML-файлів, виконувана на сервері
+Summary(ru.UTF-8):     PHP Версии 7 - язык препроцессирования HTML-файлов, выполняемый на сервере
+Summary(uk.UTF-8):     PHP Версії 7 - мова препроцесування HTML-файлів, виконувана на сервері
 Name:          %{orgname}%{php_suffix}
-Version:       5.6.17
-Release:       %{rel}%{?with_type_hints:.th}
+Version:       7.0.2
+Release:       0.1
 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.xz
-# Source0-md5: 5e080e4b7df5db24f1b64313f8114bd8
-Source2:       %{orgname}-mod_%{orgname}.conf
+# Source0-md5: ce5964672e4ec0b66ff088a6bafde8c7
+Source2:       %{orgname}-mod_php.conf
 Source3:       %{orgname}-cgi-fcgi.ini
 Source4:       %{orgname}-apache.ini
 Source5:       %{orgname}-cli.ini
-# Taken from: http://browsers.garykeith.com/downloads.asp
-Source9:       %{orgname}_browscap.ini
 Source10:      %{orgname}-fpm.init
 Source11:      %{orgname}-fpm.logrotate
 Source12:      %{orgname}-branch.sh
@@ -166,7 +167,6 @@ Patch0:             %{orgname}-shared.patch
 Patch1:                %{orgname}-tld.patch
 Patch2:                %{orgname}-mail.patch
 Patch3:                %{orgname}-link-libs.patch
-Patch4:                %{orgname}-libpq_fs_h_path.patch
 Patch5:                %{orgname}-filter-shared.patch
 Patch6:                %{orgname}-build_modules.patch
 Patch7:                %{orgname}-sapi-ini-file.patch
@@ -174,13 +174,9 @@ Patch8:            milter.patch
 Patch9:                libtool-tag.patch
 Patch10:       %{orgname}-ini.patch
 Patch11:       embed.patch
-%if %{with type_hints}
-Patch12:       http://ilia.ws/patch/type_hint_53_v2.txt
-%endif
 Patch14:       %{orgname}-no_pear_install.patch
 Patch17:       %{orgname}-readline.patch
 Patch18:       %{orgname}-nohttpd.patch
-Patch20:       %{orgname}-uint32_t.patch
 Patch21:       %{orgname}-dba-link.patch
 Patch22:       %{orgname}-both-apxs.patch
 Patch23:       %{orgname}-builddir.patch
@@ -191,8 +187,6 @@ Patch27:    %{orgname}-config-dir.patch
 Patch29:       %{orgname}-fcgi-graceful.patch
 Patch31:       %{orgname}-fcgi-error_log-no-newlines.patch
 Patch34:       %{orgname}-libtool.patch
-Patch35:       %{orgname}-tds.patch
-Patch36:       %{orgname}-mysql-charsetphpini.patch
 Patch37:       %{orgname}-mysqli-charsetphpini.patch
 Patch38:       %{orgname}-pdo_mysql-charsetphpini.patch
 Patch39:       %{orgname}-use-prog_sendmail.patch
@@ -211,12 +205,14 @@ Patch55:  bug-52078-fileinode.patch
 Patch59:       %{orgname}-systzdata.patch
 Patch60:       %{orgname}-oracle-instantclient.patch
 Patch62:       mcrypt-libs.patch
-Patch63:       %{orgname}-mysql-nowarning.patch
 Patch65:       system-libzip.patch
 Patch66:       php-db.patch
 Patch67:       mysql-lib-ver-mismatch.patch
-Patch69:       fpm-conf-split.patch
+# https://bugs.php.net/bug.php?id=68344
+Patch68:       php-mysql-ssl-context.patch
 Patch70:       mysqlnd-ssl.patch
+Patch71:       libdb-info.patch
+Patch72:       phar-hash-shared.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}
@@ -230,14 +226,15 @@ BuildRequires:    db-devel >= 4.0
 BuildRequires: elfutils-devel
 %{?with_enchant:BuildRequires: enchant-devel >= 1.1.3}
 %{?with_kerberos5:BuildRequires:       heimdal-devel}
+%{?with_fpm:BuildRequires:     libapparmor-devel}
 %{?with_system_libzip:BuildRequires:   libzip-devel >= 0.10.1-2}
 %{!?with_mysqlnd:BuildRequires:        mysql-devel}
 BuildRequires: pkgconfig
 BuildRequires: sed >= 4.0
-%if %{with mssql} || %{with sybase_ct}
+%if %{with pdo_dblib}
 BuildRequires: freetds-devel >= 0.82
 %endif
-BuildRequires: freetype-devel >= 2.5.1
+BuildRequires: freetype-devel >= 1:2.5.1
 %if %{with system_gd}
 BuildRequires: gd-devel >= 2.1
 %endif
@@ -249,15 +246,15 @@ BuildRequires:    libjpeg-devel
 BuildRequires: libltdl-devel >= 1.4
 BuildRequires: libmcrypt-devel >= 2.4.4
 BuildRequires: libpng-devel >= 1.0.8
-%{?with_webp:BuildRequires:    libvpx-devel}
+%{?with_webp:BuildRequires:    libwebp-devel}
 BuildRequires: tokyocabinet-devel
-BuildRequires: libtool >= 2:2.2
+BuildRequires: libtool >= 2:2.4.6
 BuildRequires: libxml2-devel >= 1:2.7.6-4
 BuildRequires: libxslt-devel >= 1.1.0
 %{?with_mm:BuildRequires:      mm-devel >= 1.3.0}
 %{?with_ldap:BuildRequires:    openldap-devel >= 2.3.0}
 %if %{with openssl} || %{with ldap}
-BuildRequires: openssl-devel >= 0.9.7d
+BuildRequires: openssl-devel >= 0.9.8
 %endif
 %{?with_gcov:BuildRequires:    lcov}
 %{?with_snmp:%{?with_tests:BuildRequires:      mibs-net-snmp}}
@@ -266,26 +263,22 @@ BuildRequires:    openssl-devel >= 0.9.7d
 BuildRequires: pam-devel
 %{?with_pcre:BuildRequires:    pcre-devel >= 8.10}
 BuildRequires: pkgconfig
-%{?with_pgsql:BuildRequires:   postgresql-backend-devel >= 7.2}
 %{?with_pgsql:BuildRequires:   postgresql-devel}
 BuildRequires: readline-devel
 %{?with_recode:BuildRequires:  recode-devel >= 3.5d-3}
 BuildRequires: rpm >= 4.4.9-56
 BuildRequires: rpm-build >= 4.4.0
 BuildRequires: rpmbuild(macros) >= 1.566
+%{?with_systemtap:BuildRequires:       systemtap-sdt-devel}
 BuildRequires: tar >= 1:1.22
 BuildRequires: xz
 %if %{with sqlite3} || %{with pdo_sqlite}
 BuildRequires: sqlite3-devel >= 3.3.9
 %endif
-BuildRequires: t1lib-devel
 %{?with_tidy:BuildRequires:    tidy-devel}
 %{?with_odbc:BuildRequires:    unixODBC-devel}
 %{?with_xmlrpc:BuildRequires:  xmlrpc-epi-devel >= 0.54.1}
 BuildRequires: zlib-devel >= 1.0.9
-%if %{with apache1}
-BuildRequires: apache1-devel
-%endif
 %if %{with apache2}
 BuildRequires: apache-devel >= 2.0.52-2
 BuildRequires: apr-devel >= 1:1.0.0
@@ -298,10 +291,10 @@ BuildRoot:        %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 %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         20131106
-%define                zend_module_api         20131226
-%define                zend_extension_api      220131226
-%define                php_pdo_api_version     20080721
+%define                php_api_version         20151012
+%define                zend_module_api         20151012
+%define                zend_extension_api      320151012
+%define                php_pdo_api_version     20150127
 
 # Extension versions
 %define                bz2ver          1.0
@@ -309,12 +302,12 @@ BuildRoot:        %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 %define                fileinfover     1.0.5
 %define                hashver         1.0
 %define                intlver         1.1.0
-%define                jsonver         1.2.1
+%define                jsonver         1.4.0
 %define                opcachever      7.0.6-dev
 %define                pharver         2.0.2
 %define                sqlite3ver      0.7-dev
-%define                zipver          1.12.5
-%define                phpdbgver       0.4.0
+%define                zipver          1.13.0
+%define                phpdbgver       0.5.0
 
 %define                _zend_zts               %{!?with_zts:0}%{?with_zts:1}
 %define                php_debug               %{!?debug:0}%{?debug:1}
@@ -381,24 +374,6 @@ PHP - це мова написання скриптів, що вбудовуют
 роботи з базами даних є доволі простим. Найбільш популярне
 використання PHP - заміна для CGI скриптів.
 
-%package -n apache1-mod_%{name}
-Summary:       PHP DSO module for Apache 1.3.x
-Summary(pl.UTF-8):     Moduł DSO (Dynamic Shared Object) PHP dla Apache 1.3.x
-Group:         Development/Languages/PHP
-Requires:      %{name}-common = %{epoch}:%{version}-%{release}
-Requires:      apache1(EAPI) >= 1.3.33-2
-Requires:      apache1-mod_mime
-Provides:      webserver(php) = %{version}
-Obsoletes:     apache-mod_php < 1:4.1.1
-Obsoletes:     apache1-mod_php < 4:5.3.28-7
-Obsoletes:     phpfi
-
-%description -n apache1-mod_%{name}
-PHP as DSO module for Apache 1.3.x.
-
-%description -n apache1-mod_%{name} -l pl.UTF-8
-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
@@ -442,7 +417,6 @@ Provides:   php(fcgi)
 Provides:      webserver(php) = %{version}
 Obsoletes:     php-cgi < 4:5.3.28-7
 Obsoletes:     php-fcgi < 4:5.3.0
-Conflicts:     logrotate < 3.8.0
 
 %description cgi
 PHP as CGI or FastCGI program.
@@ -490,10 +464,12 @@ Requires(pre):    /bin/id
 Requires(pre): /usr/sbin/useradd
 Requires:      %{name}-common = %{epoch}:%{version}-%{release}
 Requires:      rc-scripts
+Provides:      php(fcgi)
 Provides:      php(fpm)
 Provides:      user(http)
 Provides:      webserver(php) = %{version}
 Obsoletes:     php-fpm < 4:5.3.28-7
+Conflicts:     logrotate < 3.8.0
 
 %description fpm
 PHP FastCGI Process Manager.
@@ -536,17 +512,18 @@ Provides: %{name}(zend_extension_api) = %{zend_extension_api}
 Provides:      %{name}(zend_module_api) = %{zend_module_api}
 Provides:      %{name}-core
 Provides:      %{name}-date
-Provides:      %{name}-ereg
+%{?with_ereg:Provides: %{name}-ereg}
 Provides:      %{name}-reflection
 Provides:      %{name}-standard
 Provides:      php(core) = %{version}
 Provides:      php(date)
-Provides:      php(ereg)
+%{?with_ereg:Provides: php(ereg)}
 Provides:      php(libxml)
 Provides:      php(reflection)
 Provides:      php(standard)
 %{!?with_mysqlnd:Obsoletes:    %{name}-mysqlnd}
 %{?with_pcre:%requires_ge_to   pcre pcre-devel}
+Suggests:      browscap
 Obsoletes:     php-common < 4:5.3.28-7
 Obsoletes:     php-pecl-domxml
 Conflicts:     php4-common < 3:4.4.4-8
@@ -577,16 +554,18 @@ Group:            Development/Languages/PHP
 Requires:      %{name}-common = %{epoch}:%{version}-%{release}
 Requires:      autoconf >= 2.13
 Requires:      automake
-Requires:      libtool >= 2:2.2
+Requires:      libtool >= 2:2.4.6
 %{?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:     php53-devel
 Obsoletes:     php54-devel
 Obsoletes:     php55-devel
+Obsoletes:     php56-devel
 
 %description devel
 The php-devel package lets you compile dynamic extensions to PHP.
@@ -1103,27 +1082,6 @@ databases support through FreeTDS library.
 Moduł PHP dodający obsługę baz danych MS SQL poprzez bibliotekę
 FreeTDS.
 
-%package mysql
-Summary:       MySQL database module for PHP
-Summary(pl.UTF-8):     Moduł bazy danych MySQL dla PHP
-Summary(pt_BR.UTF-8):  Um módulo para aplicações PHP que usam bancos de dados MySQL
-Group:         Libraries
-URL:           http://www.php.net/manual/en/book.mysql.php
-Requires:      %{name}-common = %{epoch}:%{version}-%{release}
-%{?with_mysqlnd:Requires:      %{name}-mysqlnd = %{epoch}:%{version}-%{release}}
-Provides:      php(mysql)
-Obsoletes:     php-mysql < 4:5.3.28-7
-
-%description mysql
-This is a dynamic shared object (DSO) for PHP that will add MySQL
-database support.
-
-%description mysql -l pl.UTF-8
-Moduł PHP umożliwiający dostęp do bazy danych MySQL.
-
-%description mysql -l pt_BR.UTF-8
-Um módulo para aplicações PHP que usam bancos de dados MySQL.
-
 %package mysqli
 Summary:       MySQLi module for PHP
 Summary(pl.UTF-8):     Moduł MySQLi dla PHP
@@ -1227,6 +1185,7 @@ Summary(pl.UTF-8):        Zend Optimizer+ - optymalizator kodu PHP
 Group:         Libraries
 URL:           https://wiki.php.net/rfc/optimizerplus
 Requires:      %{name}-common = %{epoch}:%{version}-%{release}
+Requires:      %{name}-pcre = %{epoch}:%{version}-%{release}
 Provides:      php(opcache) = %{opcachever}
 
 %description opcache
@@ -1474,6 +1433,7 @@ Group:            Libraries
 URL:           http://www.php.net/manual/en/book.phar.php
 Requires:      %{name}-common = %{epoch}:%{version}-%{release}
 Requires:      %{name}-spl = %{epoch}:%{version}-%{release}
+Requires:      %{name}-hash = %{epoch}:%{version}-%{release}
 Suggests:      %{name}-cli
 # zlib is required by phar program, but as phar cli is optional should the dep be too
 Suggests:      %{name}-zlib
@@ -1705,24 +1665,6 @@ baz danych. SQLite sam jest serwerem. Biblioteka SQLite czyta i
 zapisuje dane bezpośrednio z/do plików baz danych znajdujących się na
 dysku.
 
-%package sybase-ct
-Summary:       Sybase-CT extension module for PHP
-Summary(pl.UTF-8):     Moduł Sybase-CT dla PHP
-Group:         Libraries
-URL:           http://www.php.net/manual/en/book.sybase.php
-Requires:      %{name}-common = %{epoch}:%{version}-%{release}
-Provides:      php(sybase-ct)
-Obsoletes:     php-sybase
-Obsoletes:     php-sybase-ct < 4:5.3.28-7
-
-%description sybase-ct
-This is a dynamic shared object (DSO) for PHP that will add Sybase and
-MS SQL databases support through CT-lib.
-
-%description sybase-ct -l pl.UTF-8
-Moduł PHP dodający obsługę baz danych Sybase oraz MS SQL poprzez
-CT-lib.
-
 %package sysvmsg
 Summary:       SysV msg extension module for PHP
 Summary(pl.UTF-8):     Moduł SysV msg dla PHP
@@ -1970,26 +1912,21 @@ compression support to PHP.
 Moduł PHP umożliwiający używanie kompresji zlib.
 
 %prep
-%setup -q -n %{orgname}-%{version}%{?subver}
+%setup -q -n %{orgname}-%{version}
 cp -p php.ini-production php.ini
 %patch0 -p1
 %patch1 -p1
-%patch2 -p1
+#%patch2 -p1
 %patch3 -p1
-%patch4 -p1
 %patch5 -p1
 %patch6 -p1
 %patch7 -p1
-%patch8 -p1
+%{?with_milter:%patch8 -p1}
 %patch9 -p1
 %patch10 -p1
-%if %{with type_hints}
-%patch12 -p0
-%endif
 %patch14 -p1
 %patch17 -p1
 %patch18 -p1
-%patch20 -p1
 %patch21 -p1
 %patch22 -p1
 %patch23 -p1
@@ -2000,13 +1937,10 @@ cp -p php.ini-production php.ini
 %patch29 -p1
 %patch31 -p1
 %patch34 -p1
-%patch35 -p1
-%patch36 -p1
 %patch37 -p1
 %patch38 -p1
 %patch39 -p1
 %if %{with fpm}
-%patch69 -p1
 %patch41 -p1
 %patch42 -p1
 %endif
@@ -2026,17 +1960,22 @@ cp -p php.ini-production php.ini
 %patch59 -p1
 %patch60 -p1
 %patch62 -p1
-%patch63 -p1
 %{?with_system_libzip:%patch65 -p1}
 %patch66 -p1
 %patch67 -p1
+#%patch68 -p1
 %patch70 -p1
+%patch71 -p1
+%patch72 -p1
 
 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
 
+# com_dotnet is Win32-only
+%{__rm} -r ext/com_dotnet
+
 # conflict seems to be resolved by recode patches
 %{__rm} ext/recode/config9.m4
 
@@ -2096,16 +2035,37 @@ mv Zend/tests/bug39438.phpt{,.disable}
 %{__rm} -r ext/sqlite3/tests
 %endif
 
+# ----- Manage known as failed test -------
+# affected by systzdata patch
+%{__rm} ext/date/tests/timezone_location_get.phpt
+%{__rm} ext/date/tests/timezone_version_get.phpt
+%{__rm} ext/date/tests/timezone_version_get_basic1.phpt
+# Should be skipped but fails sometime
+%{__rm} ext/standard/tests/file/file_get_contents_error001.phpt
+# fails sometimes
+%{__rm} ext/sockets/tests/mcast_ipv?_recv.phpt
+# causes stack exhausion
+%{__rm} Zend/tests/bug54268.phpt
+%{__rm} Zend/tests/bug68412.phpt
+
+# avoid issues when two builds run simultaneously
+%ifarch %{x8664}
+sed -e 's/64321/64322/' -i ext/openssl/tests/*.phpt
+%endif
+
 # skip XFAILs
 # no point testing stuff that is knowingly broken
-find -name '*.phpt' | xargs grep XFAIL -l | xargs rm -v
+find -name '*.phpt' | xargs grep '^--XFAIL--' -l | xargs rm -v
 
 env \
 %ifarch %{ix86}
-ix86= x8664=:
+ix86= x8664=: \
 %endif
 %ifarch %{x8664}
 ix86=: x8664= \
+%endif
+%ifarch x32
+ix86=: x8664=: \
 %endif
        sh -xe %{_sourcedir}/skip-tests.sh
 
@@ -2165,7 +2125,7 @@ if test "$ver" != "%{jsonver}"; then
        : Update the jsonver macro and rebuild.
        exit 1
 fi
-ver=$(sed -n '/#define PHP_ZENDOPCACHE_VERSION /{s/.* "//;s/".*$//;p}' ext/opcache/ZendAccelerator.h)
+ver=$(awk '/#define PHP_ZENDOPCACHE_VERSION/ {print $3}' ext/opcache/ZendAccelerator.h | xargs)
 if test "$ver" != "%{opcachever}"; then
        : Error: Upstream Zend Opcache version is now ${ver}, expecting %{opcachever}.
        : Update the opcachever macro and rebuild.
@@ -2189,7 +2149,7 @@ if test "$ver" != "%{enchantver}"; then
        : Update the enchantver macro and rebuild.
        exit 1
 fi
-ver=$(awk '/#define PHP_HASH_EXTVER/ {print $3}' ext/hash/php_hash.h | xargs)
+ver=$(awk '/#define PHP_HASH_VERSION/ {print $3}' ext/hash/php_hash.h | xargs)
 if test "$ver" != "%{hashver}"; then
        : Error: Upstream HASH version is now ${ver}, expecting %{hashver}.
        : Update the hashver macro and rebuild.
@@ -2231,9 +2191,6 @@ fpm
 %if %{with embed}
 embed
 %endif
-%if %{with apache1}
-apxs1
-%endif
 %if %{with apache2}
 apxs2
 %endif
@@ -2263,10 +2220,6 @@ for sapi in $sapis; do
        embed)
                sapi_args='--disable-cli --disable-cgi --enable-embed'
                ;;
-       apxs1)
-               ver=$(rpm -q --qf '%{V}' apache1-devel)
-               sapi_args="--disable-cli --disable-cgi --with-apxs=%{apxs1} --with-apache-version=$ver"
-       ;;
        apxs2)
                ver=$(rpm -q --qf '%{V}' apache-devel)
                sapi_args="--disable-cli --disable-cgi --with-apxs2=%{apxs2} --with-apache-version=$ver"
@@ -2294,29 +2247,30 @@ for sapi in $sapis; do
        --%{!?debug:dis}%{?debug:en}able-debug \
        %{?with_zts:--enable-maintainer-zts} \
        --enable-inline-optimization \
-       --enable-bcmath=shared \
-       --enable-calendar=shared \
-       --enable-ctype=shared \
-       --enable-dba=shared \
-       --enable-dom=shared \
-       --enable-exif=shared \
-       --enable-fileinfo=shared \
-       --enable-ftp=shared \
+       %{__enable_disable bcmath bcmath shared} \
+       %{__enable_disable calendar calendar shared} \
+       %{__enable_disable ctype ctype shared} \
+       %{__enable_disable dba dba shared} \
+       %{__enable_disable dom dom shared} \
+       %{?with_systemtap:--enable-dtrace} \
+       %{__enable_disable exif exif shared} \
+       %{__enable_disable fileinfo fileinfo shared} \
+       %{__enable_disable ftp ftp shared} \
        --enable-gd-native-ttf \
        %{?with_intl:--enable-intl=shared} \
        --enable-libxml \
-       --enable-mbstring=shared,all \
+       %{__enable_disable mbstring mbstring shared,all} \
        --enable-mbregex \
-       --enable-pcntl=shared \
-       --enable-pdo=shared \
-       --enable-json=shared \
-       --enable-hash=shared \
+       %{__enable_disable pcntl pcntl shared} \
+       %{__enable_disable pdo pdo shared} \
+       %{__enable_disable json json shared} \
+       %{__enable_disable hash hash shared} \
        --enable-xmlwriter=shared \
 %if %{with fpm}
        --with-fpm-user=http \
        --with-fpm-group=http \
 %endif
-%if %{with mssql} || %{with sybase_ct}
+%if %{with pdo_dblib}
        --with-pdo-dblib=shared \
 %endif
 %if %{with interbase} && %{without interbase_inst}
@@ -2324,16 +2278,16 @@ for sapi in $sapis; do
 %endif
        %{?with_mhash:--with-mhash=yes} \
        --with-mysql-sock=/var/lib/mysql/mysql.sock \
-       --with-pdo-mysql=shared,%{!?with_mysqlnd:/usr}%{?with_mysqlnd:mysqlnd} \
+       %{__with_without pdo_mysql pdo-mysql shared,%{!?with_mysqlnd:/usr}%{?with_mysqlnd:mysqlnd}} \
        %{?with_oci:--with-pdo-oci=shared%{?with_instantclient:,instantclient,%{_libdir}}} \
        %{?with_odbc:--with-pdo-odbc=shared,unixODBC,/usr} \
        %{?with_pgsql:--with-pdo-pgsql=shared} \
        %{?with_pdo_sqlite:--with-pdo-sqlite=shared,/usr} \
        %{?with_webp:--with-vpx-dir=/usr} \
        --without-libexpat-dir \
-       --enable-posix=shared \
+       %{__enable_disable posix posix shared} \
        --enable-shared \
-       --enable-session=shared \
+       %{__enable_disable session session shared} \
        --enable-shmop=shared \
        --enable-simplexml=shared \
        --enable-sysvmsg=shared \
@@ -2345,28 +2299,26 @@ for sapi in $sapis; do
        %{?with_wddx:--enable-wddx=shared} \
        --enable-xml=shared \
        --enable-xmlreader=shared \
-       --with-bz2=shared \
+       %{__with_without bz2 bz2 shared} \
        %{__with_without curl curl shared} \
        --with-db4 \
-       --with-iconv=shared \
+       %{__with_without iconv iconv shared} \
        %{?with_enchant:--with-enchant=shared,/usr} \
        --with-freetype-dir=shared \
-       --with-gettext=shared \
-       --with-gd=shared%{?with_system_gd:,/usr} \
+       %{__with_without gettext gettext shared} \
+       %{__with_without gd gd shared%{?with_system_gd:,/usr}} \
        --with-gdbm \
-       --with-gmp=shared \
+       %{__with_without gmp gmp shared} \
        %{?with_imap:--with-imap=shared --with-imap-ssl} \
        %{?with_interbase:--with-interbase=shared%{!?with_interbase_inst:,/usr}} \
        --with-jpeg-dir=/usr \
        %{?with_ldap:--with-ldap=shared --with-ldap-sasl} \
-       --with-mcrypt=shared \
+       %{__with_without mcrypt mcrypt shared} \
        %{?with_mm:--with-mm} \
-       %{?with_mssql:--with-mssql=shared} \
        %{?with_mysqlnd:--enable-mysqlnd=shared} \
-       --with-mysql=shared,%{!?with_mysqlnd:/usr}%{?with_mysqlnd:mysqlnd} \
        %{?with_mysqli:--with-mysqli=shared,%{!?with_mysqlnd:/usr/bin/mysql_config}%{?with_mysqlnd:mysqlnd}} \
        %{?with_oci:--with-oci8=shared%{?with_instantclient:,instantclient,%{_libdir}}} \
-       %{?with_opcache:--enable-opcache=shared} \
+       %{__enable_disable opcache opcache shared} \
        %{?with_openssl:--with-openssl=shared} \
        %{?with_kerberos5:--with-kerberos} \
        --with-tcadb=/usr \
@@ -2377,14 +2329,12 @@ for sapi in $sapis; do
        %{__enable_disable phar phar shared} \
        --with-png-dir=/usr \
        %{?with_pspell:--with-pspell=shared} \
-       --with-readline=shared \
+       %{__with_without readline readline shared} \
        %{?with_recode:--with-recode=shared} \
-       --with-regex=system \
+       %{__with_without ereg regex system} \
        %{?with_snmp:--with-snmp=shared} \
-       %{?with_sybase_ct:--with-sybase-ct=shared,/usr} \
        %{!?with_pdo_sqlite:--without-pdo-sqlite} \
        %{__with_without sqlite3 sqlite3 shared,/usr} \
-       --with-t1lib=shared \
        %{?with_tidy:--with-tidy=shared} \
        %{?with_odbc:--with-unixODBC=shared,/usr} \
        %{__with_without xmlrpc xmlrpc shared,/usr} \
@@ -2412,12 +2362,8 @@ cp -af Makefile.cli Makefile
 %{__make} build-modules \
        MYSQLND_SHARED_LIBADD="-lssl -lcrypto"
 
-%if %{with apache1}
-%{__make} libtool-sapi LIBTOOL_SAPI=sapi/apache/libphp5.la -f Makefile.apxs1
-%endif
-
 %if %{with apache2}
-%{__make} libtool-sapi LIBTOOL_SAPI=sapi/apache2handler/libphp5.la -f Makefile.apxs2
+%{__make} libtool-sapi LIBTOOL_SAPI=sapi/apache2handler/libphp7.la -f Makefile.apxs2
 %endif
 
 %if %{with litespeed}
@@ -2425,7 +2371,7 @@ cp -af Makefile.cli Makefile
 %endif
 
 %if %{with embed}
-%{__make} -f Makefile.embed libphp5.la
+%{__make} -f Makefile.embed libphp7.la
 %endif
 
 %if %{with phpdbg}
@@ -2478,7 +2424,7 @@ generate_inifiles() {
                [ "$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"
-               # mysqlnd needs to be loaded before mysql,mysqli,pdo_mysqli
+               # mysqlnd needs to be loaded before mysqli,pdo_mysqli
                [ "$mod" = "mysqlnd" ] && conf="MySQLND.ini"
                echo "+ $conf"
                cat > conf.d/$conf <<-EOF
@@ -2508,6 +2454,7 @@ exit 1
 cat <<'EOF' > run-tests.sh
 #!/bin/sh
 export NO_INTERACTION=1 REPORT_EXIT_STATUS=1 MALLOC_CHECK_=2
+export SKIP_ONLINE_TESTS=1
 unset TZ LANG LC_ALL || :
 %{__make} test \
        EXTENSION_DIR=modules \
@@ -2550,24 +2497,20 @@ cp -pf Makefile.cli Makefile
        phpbuilddir=%{_libdir}/%{name}/build \
        INSTALL_ROOT=$RPM_BUILD_ROOT
 
+# version the .phar files
+mv $RPM_BUILD_ROOT%{_bindir}/phar{,%{ver_suffix}}.phar
+mv $RPM_BUILD_ROOT%{_mandir}/man1/phar{,%{ver_suffix}}.phar.1
 # make link relative
-ln -sfn phar.phar $RPM_BUILD_ROOT%{_bindir}/phar
+ln -sfn phar%{ver_suffix}.phar $RPM_BUILD_ROOT%{_bindir}/phar
 
 # 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
-%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
+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
 %endif
 
 # install litespeed sapi
@@ -2597,11 +2540,11 @@ cp -p %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/php-cgi-fcgi.ini
 
 # install FCGI PM
 %if %{with fpm}
-install -d $RPM_BUILD_ROOT{%{_sysconfdir}/fpm.d,%{_sbindir}}
+install -d $RPM_BUILD_ROOT{%{_sysconfdir}/php-fpm.d,%{_sbindir}}
 libtool --mode=install install -p sapi/fpm/php-fpm $RPM_BUILD_ROOT%{_sbindir}/%{name}-fpm
 cp -p sapi/fpm/php-fpm.8 $RPM_BUILD_ROOT%{_mandir}/man8/%{name}-fpm.8
 cp -p sapi/fpm/php-fpm.conf $RPM_BUILD_ROOT%{_sysconfdir}
-cp -p sapi/fpm/php-fpm.conf-d $RPM_BUILD_ROOT%{_sysconfdir}/fpm.d/www.conf
+cp -p sapi/fpm/www.conf $RPM_BUILD_ROOT%{_sysconfdir}/php-fpm.d
 install -d $RPM_BUILD_ROOT/etc/rc.d/init.d
 install -p %{SOURCE10} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}-fpm
 install -d $RPM_BUILD_ROOT/etc/logrotate.d
@@ -2609,9 +2552,9 @@ cp -p %{SOURCE11} $RPM_BUILD_ROOT/etc/logrotate.d/%{name}-fpm
 
 %{__sed} -i -e '
        s#/usr/lib/php#%{php_extensiondir}#
-       s#/etc/php#%{_sysconfdir}#
+       s#/etc/php/#%{_sysconfdir}/#
        s#@processname@#%{name}-fpm#g
-' $RPM_BUILD_ROOT{/etc/{rc.d/init.d/%{name}-fpm,logrotate.d/%{name}-fpm},%{_sysconfdir}/php-fpm.conf,%{_sysconfdir}/fpm.d/www.conf}
+' $RPM_BUILD_ROOT{/etc/{rc.d/init.d/%{name}-fpm,logrotate.d/%{name}-fpm},%{_sysconfdir}/php-fpm.conf,%{_sysconfdir}/php-fpm.d/www.conf}
 %endif
 
 # install Embedded API
@@ -2619,7 +2562,7 @@ cp -p %{SOURCE11} $RPM_BUILD_ROOT/etc/logrotate.d/%{name}-fpm
 # 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/libphp5.so $RPM_BUILD_ROOT%{_libdir}
+install -p libs/libphp7.so $RPM_BUILD_ROOT%{_libdir}
 cp -p sapi/embed/php_embed.h $RPM_BUILD_ROOT%{_includedir}/php/sapi/embed
 %endif
 
@@ -2638,20 +2581,12 @@ ln -sf php $RPM_BUILD_ROOT%{_bindir}/php.cli
 %endif
 
 cp -p php.ini $RPM_BUILD_ROOT%{_sysconfdir}/php.ini
-
 cp -p %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/php-cli.ini
-cp -p %{SOURCE9} $RPM_BUILD_ROOT%{_sysconfdir}/browscap.ini
-
-%if %{with apache1}
-cp -p %{SOURCE2} $RPM_BUILD_ROOT/etc/apache/conf.d/70_mod_php.conf
-cp -p %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/php-apache.ini
-%{__rm} -f $RPM_BUILD_ROOT%{_libdir}/apache1/libphp5.la
-%endif
 
 %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/libphp5.la
+%{__rm} -f $RPM_BUILD_ROOT%{_libdir}/apache/libphp7.la
 %endif
 
 # ensure that paths are correct for current php version and arch
@@ -2671,12 +2606,19 @@ install -d $RPM_BUILD_ROOT%{_sysconfdir}/{cgi-fcgi,cli,apache,apache2handler}.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
-       for i in libtool.m4 lt~obsolete.m4 ltoptions.m4 ltsugar.m4 ltversion.m4; do
-               ln -snf %{_aclocaldir}/${i} $RPM_BUILD_ROOT%{_libdir}/%{name}/build
-       done
-       ln -snf %{_datadir}/libtool/config/ltmain.sh $RPM_BUILD_ROOT%{_libdir}/%{name}/build
+ln -snf /usr/share/automake/config.{guess,sub} $RPM_BUILD_ROOT%{_libdir}/%{name}/build
 ln -snf %{_bindir}/shtool $RPM_BUILD_ROOT%{_libdir}/%{name}/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
+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
+       break
+done
 sed -i -e '/^phpdir/ s,/php/build,/%{name}/build,' $RPM_BUILD_ROOT%{_bindir}/phpize
 
 # for php-pecl-mailparse
@@ -2696,16 +2638,6 @@ sed -i -e 's|libphp_common.la|$(libdir)/libphp_common.la|' $RPM_BUILD_ROOT%{_lib
 %clean
 rm -rf $RPM_BUILD_ROOT
 
-%post -n apache1-mod_%{name}
-if [ "$1" = "1" ]; then
-       %service -q apache restart
-fi
-
-%postun -n apache1-mod_%{name}
-if [ "$1" = "0" ]; then
-       %service -q apache restart
-fi
-
 %post -n apache-mod_%{name}
 if [ "$1" = "1" ]; then
        %service -q httpd restart
@@ -2724,7 +2656,7 @@ fi
 %service %{name}-fpm restart
 
 %preun fpm
-if [ "$1" = 0 ]; then
+if [ "$1" = "0" ]; then
        %service %{name}-fpm stop
        /sbin/chkconfig --del %{name}-fpm
 fi
@@ -2774,14 +2706,25 @@ for f in /etc/php/*.ini.rpmsave /etc/php/*.d/*.ini.rpmsave; do
        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}#
        ' $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
+
 # common macros called at extension post/postun scriptlet
 %define        extension_scripts() \
 %post %1 \
@@ -2820,8 +2763,6 @@ fi
 %extension_scripts ldap
 %extension_scripts mbstring
 %extension_scripts mcrypt
-%extension_scripts mssql
-%extension_scripts mysql
 %extension_scripts mysqli
 %extension_scripts mysqlnd
 %extension_scripts oci8
@@ -2851,7 +2792,6 @@ fi
 %extension_scripts sockets
 %extension_scripts spl
 %extension_scripts sqlite3
-%extension_scripts sybase-ct
 %extension_scripts sysvmsg
 %extension_scripts sysvsem
 %extension_scripts sysvshm
@@ -2866,24 +2806,14 @@ fi
 %extension_scripts zip
 %extension_scripts zlib
 
-%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/libphp5-*.*.so
-%endif
-
 %if %{with apache2}
 %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
 %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
+%attr(755,root,root) %{_libdir}/apache/mod_php.so
+%attr(755,root,root) %{_libdir}/apache/libphp7-*.*.so
 %endif
 
 %if %{with litespeed}
@@ -2904,7 +2834,7 @@ fi
 %if %{with embed}
 %files embedded
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libphp5.so
+%attr(755,root,root) %{_libdir}/libphp7.so
 %endif
 
 %files cli
@@ -2923,9 +2853,9 @@ fi
 %files fpm
 %defattr(644,root,root,755)
 %doc sapi/fpm/{CREDITS,LICENSE}
-%dir %{_sysconfdir}/fpm.d
+%dir %{_sysconfdir}/php-fpm.d
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/php-fpm.conf
-%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/fpm.d/www.conf
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/php-fpm.d/www.conf
 %attr(755,root,root) %{_sbindir}/%{name}-fpm
 %{_mandir}/man8/%{name}-fpm.8*
 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/%{name}-fpm
@@ -2951,7 +2881,6 @@ fi
 %dir %{_sysconfdir}
 %dir %{_sysconfdir}/conf.d
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/php.ini
-%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/browscap.ini
 %attr(755,root,root) %{_libdir}/libphp_common-*.so
 %dir %{php_extensiondir}
 
@@ -2969,28 +2898,36 @@ fi
 %{_mandir}/man1/php-config.1*
 %{_mandir}/man1/phpize.1*
 
+%if %{with bcmath}
 %files bcmath
 %defattr(644,root,root,755)
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/bcmath.ini
 %attr(755,root,root) %{php_extensiondir}/bcmath.so
+%endif
 
+%if %{with bz2}
 %files bz2
 %defattr(644,root,root,755)
 %doc ext/bz2/CREDITS
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/bz2.ini
 %attr(755,root,root) %{php_extensiondir}/bz2.so
+%endif
 
+%if %{with calendar}
 %files calendar
 %defattr(644,root,root,755)
 %doc ext/calendar/CREDITS
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/calendar.ini
 %attr(755,root,root) %{php_extensiondir}/calendar.so
+%endif
 
+%if %{with ctype}
 %files ctype
 %defattr(644,root,root,755)
 %doc ext/calendar/CREDITS
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/ctype.ini
 %attr(755,root,root) %{php_extensiondir}/ctype.so
+%endif
 
 %if %{with curl}
 %files curl
@@ -3000,18 +2937,22 @@ fi
 %attr(755,root,root) %{php_extensiondir}/curl.so
 %endif
 
+%if %{with dba}
 %files dba
 %defattr(644,root,root,755)
 %doc ext/dba/{CREDITS,README}
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/dba.ini
 %attr(755,root,root) %{php_extensiondir}/dba.so
+%endif
 
+%if %{with dom}
 %files dom
 %defattr(644,root,root,755)
 %doc ext/dom/{CREDITS,TODO}
 %doc ext/dom/examples
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/dom.ini
 %attr(755,root,root) %{php_extensiondir}/dom.so
+%endif
 
 %if %{with enchant}
 %files enchant
@@ -3021,17 +2962,21 @@ fi
 %attr(755,root,root) %{php_extensiondir}/enchant.so
 %endif
 
+%if %{with exif}
 %files exif
 %defattr(644,root,root,755)
 %doc ext/exif/CREDITS
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/exif.ini
 %attr(755,root,root) %{php_extensiondir}/exif.so
+%endif
 
+%if %{with fileinfo}
 %files fileinfo
 %defattr(644,root,root,755)
 %doc ext/fileinfo/CREDITS
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/fileinfo.ini
 %attr(755,root,root) %{php_extensiondir}/fileinfo.so
+%endif
 
 %if %{with filter}
 %files filter
@@ -3041,41 +2986,53 @@ fi
 %attr(755,root,root) %{php_extensiondir}/filter.so
 %endif
 
+%if %{with ftp}
 %files ftp
 %defattr(644,root,root,755)
 %doc ext/ftp/CREDITS
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/ftp.ini
 %attr(755,root,root) %{php_extensiondir}/ftp.so
+%endif
 
+%if %{with gd}
 %files gd
 %defattr(644,root,root,755)
 %doc ext/gd/CREDITS
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/gd.ini
 %attr(755,root,root) %{php_extensiondir}/gd.so
+%endif
 
+%if %{with gettext}
 %files gettext
 %defattr(644,root,root,755)
 %doc ext/gettext/CREDITS
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/gettext.ini
 %attr(755,root,root) %{php_extensiondir}/gettext.so
+%endif
 
+%if %{with gmp}
 %files gmp
 %defattr(644,root,root,755)
 %doc ext/gmp/{CREDITS,README,TODO}
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/gmp.ini
 %attr(755,root,root) %{php_extensiondir}/gmp.so
+%endif
 
+%if %{with hash}
 %files hash
 %defattr(644,root,root,755)
 %doc ext/hash/{CREDITS,README}
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/hash.ini
 %attr(755,root,root) %{php_extensiondir}/hash.so
+%endif
 
+%if %{with iconv}
 %files iconv
 %defattr(644,root,root,755)
 %doc ext/iconv/CREDITS
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/iconv.ini
 %attr(755,root,root) %{php_extensiondir}/iconv.so
+%endif
 
 %if %{with imap}
 %files imap
@@ -3101,11 +3058,13 @@ fi
 %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
@@ -3115,32 +3074,22 @@ fi
 %attr(755,root,root) %{php_extensiondir}/ldap.so
 %endif
 
+%if %{with mbstring}
 %files mbstring
 %defattr(644,root,root,755)
 %doc ext/mbstring/{CREDITS,README*}
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mbstring.ini
 %attr(755,root,root) %{php_extensiondir}/mbstring.so
+%endif
 
+%if %{with mcrypt}
 %files mcrypt
 %defattr(644,root,root,755)
 %doc ext/mcrypt/{CREDITS,TODO}
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mcrypt.ini
 %attr(755,root,root) %{php_extensiondir}/mcrypt.so
-
-%if %{with mssql}
-%files mssql
-%defattr(644,root,root,755)
-%doc ext/mssql/CREDITS
-%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mssql.ini
-%attr(755,root,root) %{php_extensiondir}/mssql.so
 %endif
 
-%files mysql
-%defattr(644,root,root,755)
-%doc ext/mysql/CREDITS
-%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mysql.ini
-%attr(755,root,root) %{php_extensiondir}/mysql.so
-
 %if %{with mysqli}
 %files mysqli
 %defattr(644,root,root,755)
@@ -3189,11 +3138,13 @@ fi
 %attr(755,root,root) %{php_extensiondir}/openssl.so
 %endif
 
+%if %{with pcntl}
 %files pcntl
 %defattr(644,root,root,755)
 %doc ext/pcntl/{CREDITS,README}
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/pcntl.ini
 %attr(755,root,root) %{php_extensiondir}/pcntl.so
+%endif
 
 %if %{with pcre}
 %files pcre
@@ -3203,13 +3154,15 @@ fi
 %attr(755,root,root) %{php_extensiondir}/pcre.so
 %endif
 
+%if %{with pdo}
 %files pdo
 %defattr(644,root,root,755)
 %doc ext/pdo/{CREDITS,README,TODO}
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/pdo.ini
 %attr(755,root,root) %{php_extensiondir}/pdo.so
+%endif
 
-%if %{with mssql} || %{with sybase_ct}
+%if %{with pdo_dblib}
 %files pdo-dblib
 %defattr(644,root,root,755)
 %doc ext/pdo_dblib/{CREDITS,README}
@@ -3225,11 +3178,13 @@ fi
 %attr(755,root,root) %{php_extensiondir}/pdo_firebird.so
 %endif
 
+%if %{with pdo_mysql}
 %files pdo-mysql
 %defattr(644,root,root,755)
 %doc ext/pdo_mysql/CREDITS
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/pdo_mysql.ini
 %attr(755,root,root) %{php_extensiondir}/pdo_mysql.so
+%endif
 
 %if %{with oci}
 %files pdo-oci
@@ -3278,16 +3233,18 @@ fi
 %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
-%attr(755,root,root) %{_bindir}/phar.phar
+%attr(755,root,root) %{_bindir}/phar%{ver_suffix}.phar
 %{_mandir}/man1/phar.1*
-%{_mandir}/man1/phar.phar.1
+%{_mandir}/man1/phar%{ver_suffix}.phar.1
 %endif
 
+%if %{with posix}
 %files posix
 %defattr(644,root,root,755)
 %doc ext/posix/CREDITS
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/posix.ini
 %attr(755,root,root) %{php_extensiondir}/posix.so
+%endif
 
 %if %{with pspell}
 %files pspell
@@ -3297,11 +3254,13 @@ fi
 %attr(755,root,root) %{php_extensiondir}/pspell.so
 %endif
 
+%if %{with readline}
 %files readline
 %defattr(644,root,root,755)
 %doc ext/readline/{CREDITS,README*}
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/cli.d/readline.ini
 %attr(755,root,root) %{php_extensiondir}/readline.so
+%endif
 
 %if %{with recode}
 %files recode
@@ -3311,12 +3270,14 @@ fi
 %attr(755,root,root) %{php_extensiondir}/recode.so
 %endif
 
+%if %{with session}
 %files session
 %defattr(644,root,root,755)
 %doc ext/session/CREDITS
 %doc ext/session/mod_files.sh
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/Session.ini
 %attr(755,root,root) %{php_extensiondir}/session.so
+%endif
 
 %files shmop
 %defattr(644,root,root,755)
@@ -3366,14 +3327,6 @@ fi
 %attr(755,root,root) %{php_extensiondir}/sqlite3.so
 %endif
 
-%if %{with sybase_ct}
-%files sybase-ct
-%defattr(644,root,root,755)
-%doc ext/sybase_ct/CREDITS
-%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/sybase_ct.ini
-%attr(755,root,root) %{php_extensiondir}/sybase_ct.so
-%endif
-
 %files sysvmsg
 %defattr(644,root,root,755)
 %doc ext/sysvmsg/CREDITS