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
openSUSE Build Service is sponsored by