File project.diff of Package php8
--- php8.rpmlintrc.orig
+++ php8.rpmlintrc
@@ -1,7 +1,7 @@
# Non-versioned shared library, php-embed requires
# exact version of main package, parallel installation
# not wanted
-addFilter("php.-embed.* shlib-policy-name-error")
+addFilter("php[0-9]*-embed.* shlib-policy-name-error")
# PHP7 is (almost) obsolete, replaced by PHP8
addFilter("obsolete-not-provided php7-*")
# Silence expected error in configuration script
--- php8.spec.orig
+++ php8.spec
@@ -18,7 +18,12 @@
%global flavor @BUILD_FLAVOR@%{nil}
-%define php_name php8
+#define php_name php8
+%define php_name php83
+#define php_basename php
+%define php_basename php83
+#define php_versuffix %nil
+%define php_versuffix 83
%if "%{flavor}" == "apache2"
%define pprefix apache2-mod_
@@ -64,15 +69,15 @@ License: MIT AND PHP-3.01
Group: Development/Libraries/PHP
URL: https://secure.php.net
Source0: https://secure.php.net/distributions/php-%{version}.tar.xz
-Source1: mod_%{php_name}.conf
-Source2: %{php_name}-fpm.conf
+Source1: mod_php8.conf
+Source2: php8-fpm.conf
Source5: README.macros
Source6: macros.php
# temporarily repacked tarball https://github.com/php/php-src/issues/11300
Source8: https://secure.php.net/distributions/php-%{version}.tar.xz.asc
# Source9: https://www.php.net/distributions/php-keyring.gpg#/%%{php_name}.keyring
-Source9: %{php_name}.keyring
-Source11: %{php_name}.rpmlintrc
+Source9: php8.keyring
+Source11: php8.rpmlintrc
Source12: php-fpm.tmpfiles.d
Source100: build-test.sh
## SUSE specific patches
@@ -160,52 +165,52 @@ BuildRequires: pkgconfig(libsodium) >=
BuildRequires: pkgconfig(libargon2)
%endif
%if "%{flavor}" == "test"
+BuildRequires: %{php_basename}-cli = %{version}
+BuildRequires: %{php_basename}-fpm = %{version}
BuildRequires: apache-rex
-BuildRequires: mod_php_any = %{version}
-BuildRequires: php-cli = %{version}
-BuildRequires: php-fpm = %{version}
+BuildRequires: mod_%{php_basename}_any = %{version}
%apache_rex_deps
%endif
%if "%{flavor}" == ""
-Requires: php-sapi = %{version}
+Requires: %{php_basename}-sapi = %{version}
Requires: timezone
-Recommends: php-ctype = %{version}
-Recommends: php-dom = %{version}
-Recommends: php-iconv = %{version}
-Recommends: php-openssl = %{version}
-Recommends: php-sqlite = %{version}
-Recommends: php-tokenizer = %{version}
-Recommends: php-xmlreader = %{version}
-Recommends: php-xmlwriter = %{version}
+Recommends: %{php_basename}-ctype = %{version}
+Recommends: %{php_basename}-dom = %{version}
+Recommends: %{php_basename}-iconv = %{version}
+Recommends: %{php_basename}-openssl = %{version}
+Recommends: %{php_basename}-sqlite = %{version}
+Recommends: %{php_basename}-tokenizer = %{version}
+Recommends: %{php_basename}-xmlreader = %{version}
+Recommends: %{php_basename}-xmlwriter = %{version}
# Recommends instead of Requires smtp_daemon bsc#1115213
Recommends: smtp_daemon
-# Suggest php-* = %%{version} instead of php-* [bsc#1022158c#4]
-Suggests: php-cli = %{version}
-Suggests: php-gd = %{version}
-Suggests: php-gettext = %{version}
-Suggests: php-mbstring = %{version}
-Suggests: php-mysql = %{version}
+# Suggest %{php_basename}-* = %%{version} instead of php-* [bsc#1022158c#4]
+Suggests: %{php_basename}-cli = %{version}
+Suggests: %{php_basename}-gd = %{version}
+Suggests: %{php_basename}-gettext = %{version}
+Suggests: %{php_basename}-mbstring = %{version}
+Suggests: %{php_basename}-mysql = %{version}
## Provides
-Provides: php = %{version}
-Provides: php-api = %{apiver}
-Provides: php-zend-abi = %{zendver}
+Provides: %{php_name} = %{version}
+Provides: %{php_basename}-api = %{apiver}
+Provides: %{php_basename}-zend-abi = %{zendver}
Provides: php(api) = %{apiver}
Provides: php(zend-abi) = %{zendver}
# builtin extensions
-Provides: php-date = %{version}
-Provides: php-filter = %{version}
-Provides: php-hash = %{version}
-Provides: php-json = %{version}
-Provides: php-pcre = %{version}
-Provides: php-reflection = %{version}
-Provides: php-session = %{version}
-Provides: php-simplexml = %{version}
-Provides: php-spl = %{version}
-Provides: php-xml = %{version}
+Provides: %{php_basename}-date = %{version}
+Provides: %{php_basename}-filter = %{version}
+Provides: %{php_basename}-hash = %{version}
+Provides: %{php_basename}-json = %{version}
+Provides: %{php_basename}-pcre = %{version}
+Provides: %{php_basename}-reflection = %{version}
+Provides: %{php_basename}-session = %{version}
+Provides: %{php_basename}-simplexml = %{version}
+Provides: %{php_basename}-spl = %{version}
+Provides: %{php_basename}-xml = %{version}
Provides: zend = %{zendver}
# conflicts other php major versions with and should replace it
-Conflicts: php < %{version}
+Conflicts: %{php_basename} < %{version}
Conflicts: php72
# mcrypt was removed in php 7.2
Obsoletes: php7-mcrypt
@@ -226,10 +231,10 @@ modules and server modules (e.g. for Apa
%package cli
Summary: Interpreter for the PHP scripting language version 8
Group: Development/Libraries/PHP
-Requires: php = %{version}
-Provides: php-cli = %{version}
-Provides: php-sapi = %{version}
-Conflicts: php-cli < %{version}
+Requires: %{php_name} = %{version}
+Provides: %{php_basename}-cli = %{version}
+Provides: %{php_basename}-sapi = %{version}
+Conflicts: %{php_basename}-cli < %{version}
%description cli
PHP is a server-side HTML embedded scripting language designed
@@ -240,20 +245,20 @@ This package contains the standard imple
PHP. Included are the PHP command-line binary and the configuration
file (php.ini).
-Additional documentation is available in package php-doc.
+Additional documentation is available in package %{php_basename}-doc.
%package devel
# this is required by the installed development headers
Summary: PHP development files for C/C++ extensions
Group: Development/Libraries/PHP
+Requires: %{php_name} = %{version}
Requires: %{php_name}-pear
Requires: %{php_name}-pecl
Requires: glibc-devel
-Requires: php = %{version}
Requires: pkgconfig(libpcre2-8) >= 10.30
Requires: pkgconfig(libxml-2.0) >= 2.9.0
-Provides: php-devel = %{version}
-Conflicts: php-devel < %{version}
+Provides: %{php_basename}-devel = %{version}
+Conflicts: %{php_basename}-devel < %{version}
%description devel
PHP is a server-side HTML embedded scripting language designed
@@ -264,7 +269,7 @@ This package contains the C headers to b
%endif
%if "%{flavor}" == "test"
-Requires: php-cli = %{version}
+Requires: %{php_basename}-cli = %{version}
%description
Run php upstream testsuite.
@@ -273,17 +278,17 @@ Run php upstream testsuite.
%if "%{flavor}" == "apache2"
Summary: PHP module for the Apache 2.x webserver
Group: Development/Libraries/PHP
+BuildRequires: %{php_name} = %{version}
BuildRequires: apache-rpm-macros-control
BuildRequires: apache2-devel
-BuildRequires: php = %{version}
Requires: %{apache_mmn}
+Requires: %{php_name} = %{version}
Requires: apache2-prefork
-Requires: php = %{version}
Requires(post): %{_sbindir}/a2enmod
Requires(preun): %{_sbindir}/a2enmod
-Provides: mod_php_any = %{version}
-Provides: php-sapi = %{version}
-Obsoletes: mod_php_any < %{version}
+Provides: %{php_basename}-sapi = %{version}
+Provides: mod_%{php_basename}_any = %{version}
+Obsoletes: mod_%{php_basename}_any < %{version}
%description
PHP is a server-side, cross-platform HTML embedded scripting language.
@@ -299,12 +304,12 @@ information on how to load the module in
%if "%{flavor}" == "fastcgi"
Summary: FastCGI PHP Module
Group: Development/Libraries/PHP
-BuildRequires: php = %{version}
-Requires: php = %{version}
-Provides: php-cgi = %{version}
-Provides: php-fastcgi = %{version}
-Provides: php-sapi = %{version}
-Conflicts: php-fastcgi < %{version}
+BuildRequires: %{php_name} = %{version}
+Requires: %{php_name} = %{version}
+Provides: %{php_basename}-cgi = %{version}
+Provides: %{php_basename}-fastcgi = %{version}
+Provides: %{php_basename}-sapi = %{version}
+Conflicts: %{php_basename}-fastcgi < %{version}
%description
PHP is a server-side, cross-platform HTML embedded scripting language.
@@ -317,14 +322,14 @@ resources available in the links section
%if "%{flavor}" == "fpm"
Summary: FastCGI Process Manager PHP Module
Group: Development/Libraries/PHP
-BuildRequires: php = %{version}
+BuildRequires: %{php_name} = %{version}
BuildRequires: pkgconfig(libsystemd) >= 209
-Requires: php = %{version}
+Requires: %{php_name} = %{version}
Requires: group(www)
Requires: user(wwwrun)
-Provides: php-fpm = %{version}
-Provides: php-sapi = %{version}
-Conflicts: php-fpm < %{version}
+Provides: %{php_basename}-fpm = %{version}
+Provides: %{php_basename}-sapi = %{version}
+Conflicts: %{php_basename}-fpm < %{version}
%{?systemd_ordering}
%description
@@ -339,11 +344,11 @@ Summary: Apache configuration for
Group: Development/Libraries/PHP
BuildRequires: apache-rpm-macros-control
BuildRequires: apache2
+Requires: %{php_basename}-fpm = %{version}
Requires: apache2
-Requires: php-fpm = %{version}
Requires(post): %{_sbindir}/a2enmod
-Supplements: (php-fpm and apache2)
-Conflicts: mod_php_any
+Supplements: (%{php_basename}-fpm and apache2)
+Conflicts: mod_%{php_basename}_any
BuildArch: noarch
%description apache
@@ -354,9 +359,9 @@ PHP-FPM server using reverse proxy.
%if "%{flavor}" == "embed"
Summary: Embedded SAPI Library
Group: Development/Libraries/PHP
-BuildRequires: php = %{version}
-Requires: php = %{version}
-Provides: php-sapi = %{version}
+BuildRequires: %{php_name} = %{version}
+Requires: %{php_name} = %{version}
+Provides: %{php_basename}-sapi = %{version}
%description
PHP is a server-side, cross-platform HTML embedded scripting language.
@@ -370,9 +375,9 @@ resources available in the links section
%package bcmath
Summary: "Binary Calculator" extension for PHP
Group: Development/Libraries/PHP
-Requires: php = %{version}
-Provides: php-bcmath = %{version}
-Obsoletes: php-bcmath < %{version}
+Requires: %{php_name} = %{version}
+Provides: %{php_basename}-bcmath = %{version}
+Obsoletes: %{php_basename}-bcmath < %{version}
%description bcmath
Binary Calculator which supports numbers of any size and precision,
@@ -381,9 +386,9 @@ represented as strings.
%package bz2
Summary: PHP bzip2 codec support
Group: Development/Libraries/PHP
-Requires: php = %{version}
-Provides: php-bz2 = %{version}
-Obsoletes: php-bz2 < %{version}
+Requires: %{php_name} = %{version}
+Provides: %{php_basename}-bz2 = %{version}
+Obsoletes: %{php_basename}-bz2 < %{version}
%description bz2
PHP functions to read and write bzip2 (.bz2) compressed files.
@@ -391,9 +396,9 @@ PHP functions to read and write bzip2 (.
%package calendar
Summary: PHP Extension Module
Group: Development/Libraries/PHP
-Requires: php = %{version}
-Provides: php-calendar = %{version}
-Obsoletes: php-calendar < %{version}
+Requires: %{php_name} = %{version}
+Provides: %{php_basename}-calendar = %{version}
+Obsoletes: %{php_basename}-calendar < %{version}
%description calendar
PHP functions for converting between different calendar formats.
@@ -401,9 +406,9 @@ PHP functions for converting between dif
%package ctype
Summary: Character class extension for PHP
Group: Development/Libraries/PHP
-Requires: php = %{version}
-Provides: php-ctype = %{version}
-Obsoletes: php-ctype < %{version}
+Requires: %{php_name} = %{version}
+Provides: %{php_basename}-ctype = %{version}
+Obsoletes: %{php_basename}-ctype < %{version}
%description ctype
PHP functions for checking whether a character or string falls into a
@@ -412,9 +417,9 @@ certain character class according to the
%package curl
Summary: PHP libcurl integration
Group: Development/Libraries/PHP
-Requires: php = %{version}
-Provides: php-curl = %{version}
-Obsoletes: php-curl < %{version}
+Requires: %{php_name} = %{version}
+Provides: %{php_basename}-curl = %{version}
+Obsoletes: %{php_basename}-curl < %{version}
%description curl
PHP interface to libcurl that allows you to connect to and communicate
@@ -424,9 +429,9 @@ types.
%package dba
Summary: Database abstraction layer for PHP
Group: Development/Libraries/PHP
-Requires: php = %{version}
-Provides: php-dba = %{version}
-Obsoletes: php-dba < %{version}
+Requires: %{php_name} = %{version}
+Provides: %{php_basename}-dba = %{version}
+Obsoletes: %{php_basename}-dba < %{version}
%description dba
This is a general abstraction layer for several file-based databases.
@@ -438,9 +443,9 @@ through the ODBC functions.)
%package dom
Summary: Document Object Model extension for PHP
Group: Development/Libraries/PHP
-Requires: php = %{version}
-Provides: php-dom = %{version}
-Obsoletes: php-dom < %{version}
+Requires: %{php_name} = %{version}
+Provides: %{php_basename}-dom = %{version}
+Obsoletes: %{php_basename}-dom < %{version}
%description dom
This module adds Document Object Model (DOM) support.
@@ -448,9 +453,9 @@ This module adds Document Object Model (
%package enchant
Summary: Spell checking extension for PHP
Group: Development/Libraries/PHP
-Requires: php = %{version}
-Provides: php-enchant = %{version}
-Obsoletes: php-enchant < %{version}
+Requires: %{php_name} = %{version}
+Provides: %{php_basename}-enchant = %{version}
+Obsoletes: %{php_basename}-enchant < %{version}
# Obsolete pspell plugin as enchant is favored solution (goodbye aspell)
Obsoletes: php7-pspell
@@ -464,10 +469,10 @@ and every definition of "just working."
%package exif
Summary: EXIF metadata extensions for PHP
Group: Development/Libraries/PHP
-Requires: php = %{version}
-Requires: php-mbstring = %{version}
-Provides: php-exif = %{version}
-Obsoletes: php-exif < %{version}
+Requires: %{php_basename}-mbstring = %{version}
+Requires: %{php_name} = %{version}
+Provides: %{php_basename}-exif = %{version}
+Obsoletes: %{php_basename}-exif < %{version}
%description exif
PHP functions for extracting EXIF (Exchangable Image File Format;
@@ -477,8 +482,8 @@ images.
%package ffi
Summary: Main interface to C code and data
Group: Development/Libraries/PHP
-Requires: php = %{version}
-Provides: php-ffi = %{version}
+Requires: %{php_name} = %{version}
+Provides: %{php_basename}-ffi = %{version}
%description ffi
This extension allows the loading of shared libraries (.DLL or .so),
@@ -489,9 +494,9 @@ without having to learn a third "interme
%package fileinfo
Summary: File identification extension for PHP
Group: Development/Libraries/PHP
-Requires: php = %{version}
-Provides: php-fileinfo = %{version}
-Obsoletes: php-fileinfo < %{version}
+Requires: %{php_name} = %{version}
+Provides: %{php_basename}-fileinfo = %{version}
+Obsoletes: %{php_basename}-fileinfo < %{version}
%description fileinfo
The functions in this module try to guess the content type and
@@ -502,9 +507,9 @@ libmagic to heuristically determine this
%package ftp
Summary: FTP protocol support for PHP
Group: Development/Libraries/PHP
-Requires: php = %{version}
-Provides: php-ftp = %{version}
-Obsoletes: php-ftp < %{version}
+Requires: %{php_name} = %{version}
+Provides: %{php_basename}-ftp = %{version}
+Obsoletes: %{php_basename}-ftp < %{version}
%description ftp
PHP functions for access to file servers speaking the File Transfer
@@ -513,9 +518,9 @@ Protocol (FTP) as defined in RFC 959.
%package gd
Summary: GD Graphics Library extension for PHP
Group: Development/Libraries/PHP
-Requires: php = %{version}
-Provides: php-gd = %{version}
-Obsoletes: php-gd < %{version}
+Requires: %{php_name} = %{version}
+Provides: %{php_basename}-gd = %{version}
+Obsoletes: %{php_basename}-gd < %{version}
%description gd
PHP functions to create and manipulate image files in a variety of
@@ -525,9 +530,9 @@ more convenient: PHP can output image st
%package gettext
Summary: Native language support for PHP
Group: Development/Libraries/PHP
-Requires: php = %{version}
-Provides: php-gettext = %{version}
-Obsoletes: php-gettext < %{version}
+Requires: %{php_name} = %{version}
+Provides: %{php_basename}-gettext = %{version}
+Obsoletes: %{php_basename}-gettext < %{version}
%description gettext
PHP functions that implement a Native Language Support (NLS) API which
@@ -536,9 +541,9 @@ can be used to internationalize your PHP
%package gmp
Summary: Bignum extension for PHP
Group: Development/Libraries/PHP
-Requires: php = %{version}
-Provides: php-gmp = %{version}
-Obsoletes: php-gmp < %{version}
+Requires: %{php_name} = %{version}
+Provides: %{php_basename}-gmp = %{version}
+Obsoletes: %{php_basename}-gmp < %{version}
%description gmp
PHP functions for work with arbitrary-length integers using the GNU MP
@@ -547,9 +552,9 @@ library.
%package iconv
Summary: Character set conversion functions for PHP
Group: Development/Libraries/PHP
-Requires: php = %{version}
-Provides: php-iconv = %{version}
-Obsoletes: php-iconv < %{version}
+Requires: %{php_name} = %{version}
+Provides: %{php_basename}-iconv = %{version}
+Obsoletes: %{php_basename}-iconv < %{version}
%description iconv
This module contains an interface to iconv character set conversion
@@ -561,9 +566,9 @@ implementation of your system.
%package intl
Summary: ICU integration for PHP
Group: Development/Libraries/PHP
-Requires: php = %{version}
-Provides: php-intl = %{version}
-Obsoletes: php-intl < %{version}
+Requires: %{php_name} = %{version}
+Provides: %{php_basename}-intl = %{version}
+Obsoletes: %{php_basename}-intl < %{version}
%description intl
The internationalization (intl) extension is a wrapper for the ICU
@@ -574,9 +579,9 @@ currency formatting in their scripts.
%package ldap
Summary: LDAP protocol support for PHP
Group: Development/Libraries/PHP
-Requires: php = %{version}
-Provides: php-ldap = %{version}
-Obsoletes: php-ldap < %{version}
+Requires: %{php_name} = %{version}
+Provides: %{php_basename}-ldap = %{version}
+Obsoletes: %{php_basename}-ldap < %{version}
%description ldap
PHP interface to the Lightweight Directory Access Protocol (LDAP).
@@ -584,9 +589,9 @@ PHP interface to the Lightweight Directo
%package mbstring
Summary: Multibyte string functions for PHP
Group: Development/Libraries/PHP
-Requires: php = %{version}
-Provides: php-mbstring = %{version}
-Obsoletes: php-mbstring < %{version}
+Requires: %{php_name} = %{version}
+Provides: %{php_basename}-mbstring = %{version}
+Obsoletes: %{php_basename}-mbstring < %{version}
%description mbstring
mbstring provides multibyte specific string functions that help
@@ -598,13 +603,13 @@ single-byte encodings for convenience.
%package mysql
Summary: MySQL database client for PHP
Group: Development/Libraries/PHP
-Requires: php = %{version}
-Requires: php-pdo = %{version}
-Provides: php-mysql = %{version}
-Provides: php-mysqli = %{version}
-Provides: php-pdo_mysql = %{version}
-Provides: php_any_db = %{version}
-Obsoletes: php-mysql < %{version}
+Requires: %{php_basename}-pdo = %{version}
+Requires: %{php_name} = %{version}
+Provides: %{php_basename}-mysql = %{version}
+Provides: %{php_basename}-mysqli = %{version}
+Provides: %{php_basename}-pdo_mysql = %{version}
+Provides: %{php_basename}_any_db = %{version}
+Obsoletes: %{php_basename}-mysql < %{version}
%description mysql
PHP functions for access to MySQL database servers.
@@ -613,11 +618,11 @@ PHP functions for access to MySQL databa
%package firebird
Summary: Firebird database client for PHP
Group: Development/Libraries/PHP
-Requires: php = %{version}
-Requires: php-pdo = %{version}
-Provides: php-firebird = %{version}
-Provides: php_any_db = %{version}
-Obsoletes: php-firebird < %{version}
+Requires: %{php_basename}-pdo = %{version}
+Requires: %{php_name} = %{version}
+Provides: %{php_basename}-firebird = %{version}
+Provides: %{php_basename}_any_db = %{version}
+Obsoletes: %{php_basename}-firebird < %{version}
%description firebird
PHP functions for access to firebird database servers.
@@ -626,11 +631,11 @@ PHP functions for access to firebird dat
%package odbc
Summary: ODBC extension for PHP
Group: Development/Libraries/PHP
-Requires: php = %{version}
-Requires: php-pdo = %{version}
-Provides: php-odbc = %{version}
-Provides: php-pdo_odbc = %{version}
-Obsoletes: php-odbc < %{version}
+Requires: %{php_basename}-pdo = %{version}
+Requires: %{php_name} = %{version}
+Provides: %{php_basename}-odbc = %{version}
+Provides: %{php_basename}-pdo_odbc = %{version}
+Obsoletes: %{php_basename}-odbc < %{version}
%description odbc
This module adds Open Database Connectivity (ODBC) support.
@@ -638,9 +643,9 @@ This module adds Open Database Connectiv
%package opcache
Summary: Opcode cache extension for PHP
Group: Development/Libraries/PHP
-Requires: php = %{version}
-Provides: php-opcache = %{version}
-Obsoletes: php-opcache < %{version}
+Requires: %{php_name} = %{version}
+Provides: %{php_basename}-opcache = %{version}
+Obsoletes: %{php_basename}-opcache < %{version}
%description opcache
OPcache improves PHP performance by storing precompiled script
@@ -650,9 +655,9 @@ and parse scripts on each request.
%package openssl
Summary: OpenSSL integration for PHP
Group: Development/Libraries/PHP
-Requires: php = %{version}
-Provides: php-openssl = %{version}
-Obsoletes: php-openssl < %{version}
+Requires: %{php_name} = %{version}
+Provides: %{php_basename}-openssl = %{version}
+Obsoletes: %{php_basename}-openssl < %{version}
%description openssl
This extension binds functions of OpenSSL library for symmetric and
@@ -663,9 +668,9 @@ TLS streams.
%package pcntl
Summary: Process Control extension for PHP
Group: Development/Libraries/PHP
-Requires: php = %{version}
-Provides: php-pcntl = %{version}
-Obsoletes: php-pcntl < %{version}
+Requires: %{php_name} = %{version}
+Provides: %{php_basename}-pcntl = %{version}
+Obsoletes: %{php_basename}-pcntl < %{version}
%description pcntl
Process Control support in PHP implements the Unix style of process
@@ -675,10 +680,10 @@ creation, program execution, signal hand
%package phar
Summary: PHP Archive extension for PHP
Group: Development/Libraries/PHP
-Requires: php = %{version}
-Requires: php-zlib = %{version}
-Provides: php-phar = %{version}
-Conflicts: php-phar < %{version}
+Requires: %{php_basename}-zlib = %{version}
+Requires: %{php_name} = %{version}
+Provides: %{php_basename}-phar = %{version}
+Conflicts: %{php_basename}-phar < %{version}
%description phar
The phar extension provides a way to put entire PHP applications into
@@ -694,9 +699,9 @@ zip and phar file formats.
%package pdo
Summary: PHP Data Objects extension for PHP
Group: Development/Libraries/PHP
-Requires: php = %{version}
-Provides: php-pdo = %{version}
-Obsoletes: php-pdo < %{version}
+Requires: %{php_name} = %{version}
+Provides: %{php_basename}-pdo = %{version}
+Obsoletes: %{php_basename}-pdo < %{version}
%description pdo
The PHP Data Objects (PDO) extension defines an interface for
@@ -713,12 +718,12 @@ it does not rewrite SQL or emulate missi
%package pgsql
Summary: PostgreSQL database client for PHP
Group: Development/Libraries/PHP
-Requires: php = %{version}
-Requires: php-pdo = %{version}
-Provides: php-pdo_pgsql = %{version}
-Provides: php-pgsql = %{version}
-Provides: php_any_db = %{version}
-Obsoletes: php-pgsql < %{version}
+Requires: %{php_basename}-pdo = %{version}
+Requires: %{php_name} = %{version}
+Provides: %{php_basename}-pdo_pgsql = %{version}
+Provides: %{php_basename}-pgsql = %{version}
+Provides: %{php_basename}_any_db = %{version}
+Obsoletes: %{php_basename}-pgsql < %{version}
%description pgsql
PHP functions for access to PostgreSQL database servers. It includes
@@ -727,9 +732,9 @@ both traditional pgsql and pdo_pgsql dri
%package posix
Summary: POSIX functions for PHP
Group: Development/Libraries/PHP
-Requires: php = %{version}
-Provides: php-posix = %{version}
-Obsoletes: php-posix < %{version}
+Requires: %{php_name} = %{version}
+Provides: %{php_basename}-posix = %{version}
+Obsoletes: %{php_basename}-posix < %{version}
%description posix
This module contains an interface to those functions defined in the
@@ -739,9 +744,9 @@ through other means.
%package readline
Summary: PHP readline extension
Group: Development/Libraries/PHP
-Requires: php = %{version}
-Provides: php-readline = %{version}
-Obsoletes: php-readline < %{version}
+Requires: %{php_name} = %{version}
+Provides: %{php_basename}-readline = %{version}
+Obsoletes: %{php_basename}-readline < %{version}
%description readline
PHP interface to libedit, which provides editable command line as well
@@ -750,9 +755,9 @@ as PHP interactive mode (php -a).
%package shmop
Summary: Alternate, low-level shared memory implementation for PHP
Group: Development/Libraries/PHP
-Requires: php = %{version}
-Provides: php-shmop = %{version}
-Obsoletes: php-shmop < %{version}
+Requires: %{php_name} = %{version}
+Provides: %{php_basename}-shmop = %{version}
+Obsoletes: %{php_basename}-shmop < %{version}
%description shmop
An extension created as an alternative to the sysvmsg module.
@@ -760,9 +765,9 @@ An extension created as an alternative t
%package snmp
Summary: SNMP extension for PHP
Group: Development/Libraries/PHP
-Requires: php = %{version}
-Provides: php-snmp = %{version}
-Obsoletes: php-snmp < %{version}
+Requires: %{php_name} = %{version}
+Provides: %{php_basename}-snmp = %{version}
+Obsoletes: %{php_basename}-snmp < %{version}
%description snmp
The SNMP extension provides a toolset for managing remote devices via
@@ -776,9 +781,9 @@ variables.
%package soap
Summary: SOAP/WSDL extension module for PHP
Group: Development/Libraries/PHP
-Requires: php = %{version}
-Provides: php-soap = %{version}
-Obsoletes: php-soap < %{version}
+Requires: %{php_name} = %{version}
+Provides: %{php_basename}-soap = %{version}
+Obsoletes: %{php_basename}-soap < %{version}
%description soap
This module provides SOAP support.
@@ -789,9 +794,9 @@ supports subsets of SOAP 1.1, SOAP 1.2 a
%package sockets
Summary: Berkeley sockets API for PHP
Group: Development/Libraries/PHP
-Requires: php = %{version}
-Provides: php-sockets = %{version}
-Obsoletes: php-sockets < %{version}
+Requires: %{php_name} = %{version}
+Provides: %{php_basename}-sockets = %{version}
+Obsoletes: %{php_basename}-sockets < %{version}
%description sockets
The socket extension implements a low-level interface to the socket
@@ -802,9 +807,9 @@ possibility to act as a socket server as
%package sodium
Summary: Cryptographic Extension Based on Libsodium
Group: Development/Libraries/PHP
-Requires: php = %{version}
-Provides: php-sodium = %{version}
-Obsoletes: php-sodium < %{version}
+Requires: %{php_name} = %{version}
+Provides: %{php_basename}-sodium = %{version}
+Obsoletes: %{php_basename}-sodium < %{version}
%description sodium
PHP binding to libsodium software library for encryption, decryption,
@@ -814,11 +819,11 @@ signatures, password hashing and more.
%package sqlite
Summary: SQLite database client for PHP
Group: Development/Libraries/PHP
-Requires: php = %{version}
-Requires: php-pdo = %{version}
-Provides: php-pdo_sqlite = %{version}
-Provides: php-sqlite = %{version}
-Obsoletes: php-sqlite < %{version}
+Requires: %{php_basename}-pdo = %{version}
+Requires: %{php_name} = %{version}
+Provides: %{php_basename}-pdo_sqlite = %{version}
+Provides: %{php_basename}-sqlite = %{version}
+Obsoletes: %{php_basename}-sqlite < %{version}
%description sqlite
This is an extension for the SQLite Embeddable SQL Database Engine.
@@ -838,9 +843,9 @@ This package includes sqlite and pdo_sql
%package sysvmsg
Summary: SysV Message Queue support for PHP
Group: Development/Libraries/PHP
-Requires: php = %{version}
-Provides: php-sysvmsg = %{version}
-Obsoletes: php-sysvmsg < %{version}
+Requires: %{php_name} = %{version}
+Provides: %{php_basename}-sysvmsg = %{version}
+Obsoletes: %{php_basename}-sysvmsg < %{version}
%description sysvmsg
This module provides System V Message Queue support.
@@ -848,9 +853,9 @@ This module provides System V Message Qu
%package sysvsem
Summary: SysV Semaphore support for PHP
Group: Development/Libraries/PHP
-Requires: php = %{version}
-Provides: php-sysvsem = %{version}
-Obsoletes: php-sysvsem < %{version}
+Requires: %{php_name} = %{version}
+Provides: %{php_basename}-sysvsem = %{version}
+Obsoletes: %{php_basename}-sysvsem < %{version}
%description sysvsem
PHP interface for System V semaphores.
@@ -858,9 +863,9 @@ PHP interface for System V semaphores.
%package sysvshm
Summary: SysV Shared Memory support for PHP
Group: Development/Libraries/PHP
-Requires: php = %{version}
-Provides: php-sysvshm = %{version}
-Obsoletes: php-sysvshm < %{version}
+Requires: %{php_name} = %{version}
+Provides: %{php_basename}-sysvshm = %{version}
+Obsoletes: %{php_basename}-sysvshm < %{version}
%description sysvshm
PHP interface for System V shared memory.
@@ -868,9 +873,9 @@ PHP interface for System V shared memory
%package tidy
Summary: PHP binding for the Tidy HTML cleaner
Group: Development/Libraries/PHP
-Requires: php = %{version}
-Provides: php-tidy = %{version}
-Obsoletes: php-tidy < %{version}
+Requires: %{php_name} = %{version}
+Provides: %{php_basename}-tidy = %{version}
+Obsoletes: %{php_basename}-tidy < %{version}
%description tidy
Tidy is an extension based on Libtidy (http://tidy.sourceforge.net) and allows
@@ -881,9 +886,9 @@ PHP or ASP within them using OO construc
%package tokenizer
Summary: Extension module to access Zend Engine's PHP tokenizer
Group: Development/Libraries/PHP
-Requires: php = %{version}
-Provides: php-tokenizer = %{version}
-Obsoletes: php-tokenizer < %{version}
+Requires: %{php_name} = %{version}
+Provides: %{php_basename}-tokenizer = %{version}
+Obsoletes: %{php_basename}-tokenizer < %{version}
%description tokenizer
The tokenizer functions provide an interface to the PHP tokenizer
@@ -894,10 +899,10 @@ with the language specification at the l
%package xsl
Summary: PHP Extension Module
Group: Development/Libraries/PHP
-Requires: php = %{version}
-Requires: php-dom = %{version}
-Provides: php-xsl = %{version}
-Obsoletes: php-xsl < %{version}
+Requires: %{php_basename}-dom = %{version}
+Requires: %{php_name} = %{version}
+Provides: %{php_basename}-xsl = %{version}
+Obsoletes: %{php_basename}-xsl < %{version}
%description xsl
PHP's XSL extension implements the XSL (Extensible Stylesheet
@@ -907,10 +912,10 @@ library
%package xmlreader
Summary: Streaming XML reader extension for PHP
Group: Development/Libraries/PHP
-Requires: php = %{version}
-Requires: php-dom = %{version}
-Provides: php-xmlreader = %{version}
-Obsoletes: php-xmlreader < %{version}
+Requires: %{php_basename}-dom = %{version}
+Requires: %{php_name} = %{version}
+Provides: %{php_basename}-xmlreader = %{version}
+Obsoletes: %{php_basename}-xmlreader < %{version}
%description xmlreader
The XMLReader extension is an XML Pull parser. The reader acts as a
@@ -920,9 +925,9 @@ on the way.
%package xmlwriter
Summary: Streaming-based XML writer extension for PHP
Group: Development/Libraries/PHP
-Requires: php = %{version}
-Provides: php-xmlwriter = %{version}
-Obsoletes: php-xmlwriter < %{version}
+Requires: %{php_name} = %{version}
+Provides: %{php_basename}-xmlwriter = %{version}
+Obsoletes: %{php_basename}-xmlwriter < %{version}
%description xmlwriter
XMLWriter wraps the libxml xmlWriter API. Represents a writer that
@@ -932,9 +937,9 @@ files containing XML data.
%package zip
Summary: ZIP archive support for PHP
Group: Development/Libraries/PHP
-Requires: php = %{version}
-Provides: php-zip = %{version}
-Obsoletes: php-zip < %{version}
+Requires: %{php_name} = %{version}
+Provides: %{php_basename}-zip = %{version}
+Obsoletes: %{php_basename}-zip < %{version}
%description zip
This extension allows to transparently read or write ZIP compressed
@@ -943,9 +948,9 @@ archives and the files inside them.
%package zlib
Summary: Zlib compression support for PHP
Group: Development/Libraries/PHP
-Requires: php = %{version}
-Provides: php-zlib = %{version}
-Obsoletes: php-zlib < %{version}
+Requires: %{php_name} = %{version}
+Provides: %{php_basename}-zlib = %{version}
+Obsoletes: %{php_basename}-zlib < %{version}
%description zlib
This module enables to transparently read and write gzip (.gz)
@@ -960,6 +965,11 @@ cp %{SOURCE5} .
%autopatch -p1 -v
+# make the includedir versioned
+sed -i "/^phpincludedir =/ s/php8/%{php_name}/" scripts/Makefile.frag
+sed -i "/^includedir =/ s/php8/%{php_name}/" scripts/phpize.in
+sed -i "/^include_dir =/ s/php8/%{php_name}/" scripts/php-config.in
+
# use system pcre2
rm -r ext/pcre/pcre2lib
@@ -1222,7 +1232,7 @@ fi
# check if we link against system libgd
if [ -z "$(ldd modules/gd.so | grep libgd.so)" ]; then
- echo 'php-gd does not link against system libgd.'
+ echo '%{php_basename}-gd does not link against system libgd.'
exit 1
fi
%endif
@@ -1231,7 +1241,7 @@ fi
# do the actual installation
%if "%{flavor}" == "apache2"
-install -m 755 -D .libs/mod_php8.so %{buildroot}%{apache_libexecdir}/mod_php8.so
+install -m 755 -D .libs/mod_%{php_name}.so %{buildroot}%{apache_libexecdir}/mod_%{php_name}.so
# php sapi configuration
install -dm 755 %{buildroot}%{php_sysconf}/apache2
sed "s=@extdir@=%{extension_dir}=" php.ini-production > %{buildroot}%{php_sysconf}/apache2/php.ini
@@ -1250,7 +1260,11 @@ install -dm 755 %{buildroot}%{php_syscon
sed "s=@extdir@=%{extension_dir}=" php.ini-production > %{buildroot}%{php_sysconf}/fastcgi/php.ini
# provide compat symlink
mkdir -p %{buildroot}%{apache_serverroot}/cgi-bin
-ln -s %{_bindir}/php-cgi %{buildroot}%{apache_serverroot}/cgi-bin/php
+ln -s %{_bindir}/%{php_basename}-cgi %{buildroot}%{apache_serverroot}/cgi-bin/php%{php_versuffix}
+test "php" == "%{php_basename}" || {
+ mv %{buildroot}%{_bindir}/php-cgi %{buildroot}%{_bindir}/php%{php_versuffix}-cgi || exit 1
+ mv %{buildroot}%{_mandir}/man1/php-cgi.1 %{buildroot}%{_mandir}/man1/php%{php_versuffix}-cgi.1 || exit 1
+}
%endif
%if "%{flavor}" == "fpm"
@@ -1258,17 +1272,22 @@ make install-binaries INSTALL_ROOT=%{bui
install -dm 755 %{buildroot}%{php_sysconf}/fpm
sed "s=@extdir@=%{extension_dir}=" php.ini-production > %{buildroot}%{php_sysconf}/fpm/php.ini
#install fpm init script.
-install -D -m 0644 sapi/fpm/php-fpm.service %{buildroot}%{_unitdir}/php-fpm.service
-ln -s service %{buildroot}%{_sbindir}/rcphp-fpm
+install -D -m 0644 sapi/fpm/php-fpm.service %{buildroot}%{_unitdir}/%{php_basename}-fpm.service
+ln -s service %{buildroot}%{_sbindir}/rc%{php_basename}-fpm
# bug 1173786
install -d -m 0755 %{buildroot}%{_tmpfilesdir}
-install -m 0644 %{SOURCE12} %{buildroot}%{_tmpfilesdir}/php-fpm.conf
+install -m 0644 %{SOURCE12} %{buildroot}%{_tmpfilesdir}/%{php_basename}-fpm.conf
# bug 1192414
mv %{buildroot}%{php_sysconf}/fpm/php-fpm.conf{.default,}
mv %{buildroot}%{php_sysconf}/fpm/php-fpm.d/www.conf{.default,}
# apache configuration
mkdir -p %{buildroot}%{apache_sysconfdir}/conf.d
install -m 644 %{SOURCE2} %{buildroot}%{apache_sysconfdir}/conf.d/%{php_name}-fpm.conf
+# make binary and manpage versioned
+test "php" == "%{php_basename}" || {
+ mv %{buildroot}%{_sbindir}/php-fpm %{buildroot}%{_sbindir}/php%{php_versuffix}-fpm || exit 1
+ mv %{buildroot}%{_mandir}/man8/php-fpm.8 %{buildroot}%{_mandir}/man8/php%{php_versuffix}-fpm.8 || exit 1
+}
%endif
%if "%{flavor}" == ""
@@ -1309,7 +1328,19 @@ done
# directory for sessions
install -d %{buildroot}%{_localstatedir}/lib/%{php_name}/sessions
# fix symlink (bnc#734176)
-ln -s %{_bindir}/php %{buildroot}%{_bindir}/%{php_name}
+mv %{buildroot}%{_bindir}/php %{buildroot}%{_bindir}/%{php_name}
+ln -s %{_bindir}/%{php_name} %{buildroot}%{_bindir}/php
+
+# rename php-config and manpages to versioned filename
+test "php" == "%{php_basename}" || {
+ mv %{buildroot}%{_bindir}/php-config %{buildroot}%{_bindir}/php%{php_versuffix}-config || exit 1
+ mv %{buildroot}%{_mandir}/man1/php.1 %{buildroot}%{_mandir}/man1/php%{php_versuffix}.1 || exit 1
+ mv %{buildroot}%{_mandir}/man1/phpize.1 %{buildroot}%{_mandir}/man1/phpize%{php_versuffix}.1 || exit 1
+ mv %{buildroot}%{_mandir}/man1/php-config.1 %{buildroot}%{_mandir}/man1/php%{php_versuffix}-config.1 || exit 1
+ mv %{buildroot}%{_mandir}/man1/phar.1 %{buildroot}%{_mandir}/man1/phar%{php_versuffix}.1 || exit 1
+ mv %{buildroot}%{_mandir}/man1/phar.phar.1 %{buildroot}%{_mandir}/man1/phar.phar%{php_versuffix}.1 || exit 1
+}
+
# install the macros file:
install -d %{buildroot}%{_rpmconfigdir}/macros.d
sed -e "s/@PHP_APIVER@/%{apiver}/;s/@PHP_ZENDVER@/%{zendver}/" %{SOURCE6} > macros.php
@@ -1350,17 +1381,17 @@ fi
%if "%{flavor}" == "fpm"
%pre
-%service_add_pre php-fpm.service
+%service_add_pre %{php_basename}-fpm.service
%post
-%service_add_post php-fpm.service
-%tmpfiles_create %{_tmpfilesdir}/php-fpm.conf
+%service_add_post %{php_basename}-fpm.service
+%tmpfiles_create %{_tmpfilesdir}/%{php_basename}-fpm.conf
%preun
-%service_del_preun php-fpm.service
+%service_del_preun %{php_basename}-fpm.service
%postun
-%service_del_postun php-fpm.service
+%service_del_postun %{php_basename}-fpm.service
%post apache
if [ $1 -eq 1 ]; then
@@ -1405,18 +1436,18 @@ fi
%dir %{php_sysconf}/cli
%{_bindir}/php
%{_bindir}/%{php_name}
-%{_mandir}/man1/php.1%{?ext_man}
+%{_mandir}/man1/php%{php_versuffix}.1%{?ext_man}
%files devel
%defattr(-, root, root)
%doc README.macros
%{_bindir}/phpize
-%{_bindir}/php-config
+%{_bindir}/%{php_basename}-config
%{_datadir}/%{php_name}/build
%attr(0755, root, root) %{_datadir}/%{php_name}/build/{gen_stub.php,run-tests.php}
%{_includedir}/%{php_name}
-%{_mandir}/man1/phpize.1%{?ext_man}
-%{_mandir}/man1/php-config.1%{?ext_man}
+%{_mandir}/man1/phpize%{php_versuffix}.1%{?ext_man}
+%{_mandir}/man1/%{php_basename}-config.1%{?ext_man}
%{_rpmconfigdir}/macros.d/macros.php
%endif
@@ -1431,9 +1462,9 @@ fi
%defattr(-, root, root)
%config(noreplace) %{php_sysconf}/fastcgi/php.ini
%dir %{php_sysconf}/fastcgi
-%{_bindir}/php-cgi
-%{_mandir}/man1/php-cgi.1%{?ext_man}
-%{apache_serverroot}/cgi-bin/php
+%{_bindir}/%{php_basename}-cgi
+%{_mandir}/man1/%{php_basename}-cgi.1%{?ext_man}
+%{apache_serverroot}/cgi-bin/php%{php_versuffix}
%endif
%if "%{flavor}" == "fpm"
@@ -1446,12 +1477,12 @@ fi
%config(noreplace) %{php_sysconf}/fpm/php-fpm.d/www.conf
%dir %{_datadir}/%{php_name}/fpm
%{_datadir}/%{php_name}/fpm/status.html
-%{_sbindir}/php-fpm
-%{_sbindir}/rcphp-fpm
-%{_mandir}/man8/php-fpm.8%{?ext_man}
-%{_unitdir}/php-fpm.service
-%{_tmpfilesdir}/php-fpm.conf
-%ghost %dir %attr(711,root,root) /run/php-fpm
+%{_sbindir}/%{php_basename}-fpm
+%{_sbindir}/rc%{php_basename}-fpm
+%{_mandir}/man8/%{php_basename}-fpm.8%{?ext_man}
+%{_unitdir}/%{php_basename}-fpm.service
+%{_tmpfilesdir}/%{php_basename}-fpm.conf
+%ghost %dir %attr(711,root,root) /run/%{php_basename}-fpm
%files apache
%config(noreplace) %{apache_sysconfdir}/conf.d/%{php_name}-fpm.conf
@@ -1597,8 +1628,8 @@ fi
%files phar
%defattr(-, root, root)
-%{_mandir}/man1/phar.1%{?ext_man}
-%{_mandir}/man1/phar.phar.1%{?ext_man}
+%{_mandir}/man1/phar%{php_versuffix}.1%{?ext_man}
+%{_mandir}/man1/phar.phar%{php_versuffix}.1%{?ext_man}
%{extension_dir}/phar.so
%config(noreplace) %{php_sysconf}/conf.d/*phar.ini
%{_bindir}/phar