raven-rhel6/php83/php83.spec

1954 lines
62 KiB
RPMSpec

# remirepo spec file for php82-php
# with SCL and backport stuff, adapted from
#
# Fedora spec file for php
#
# License: MIT
# http://opensource.org/licenses/MIT
#
# Please preserve changelog entries
#
%global php_name php83
%global scl_prefix %{php_name}-
%global scl %{php_name}
%global pkg_name %{name}
%global _root_sysconfdir %{_sysconfdir}
%global _root_bindir %{_bindir}
%global _root_sbindir %{_sbindir}
%global _root_includedir %{_includedir}
%global _root_libdir %{_libdir}
%global _root_prefix %{_prefix}
%global _root_initddir %{_initrddir}
%global _root_datadir %{_datadir}
%global _prefix /opt/%{php_name}
%global _sysconfdir %{_root_sysconfdir}/opt/%{php_name}
%global _localstatedir /var/opt/%{php_name}
%global _libdir %{_prefix}/lib
%global _bindir %{_prefix}/bin
%global _sbindir %{_prefix}/sbin
%global _includedir %{_prefix}/include
%global _datadir %{_prefix}/share
%global _mandir %{_datadir}/man
%global _docdir %{_datadir}/doc
%global _infodir %{_datadir}/info
%global _initrddir %{_root_initddir}
%global _mysql_dir /opt/mysql-8
# API/ABI check
%global apiver 20230831
%global zendver 20230831
%global pdover 20170320
# Extension version
%global oci8ver 3.3.0
%global zipver 1.22.2
# Adds -z now to the linker flags
%global _hardened_build 1
# version used for php embedded library soname
%global embed_version 8.3
# Ugly hack. Harcoded values to avoid relocation.
%global _httpd_mmn %(cat %{_root_includedir}/httpd/.mmn 2>/dev/null || echo 0)
%global _httpd_confdir %{_root_sysconfdir}/httpd/conf.d
%global _httpd_moddir %{_libdir}/httpd/modules
%global _root_httpd_moddir %{_root_libdir}/httpd/modules
%if 0%{?fedora} >= 18 || 0%{?rhel} >= 7
# httpd 2.4 values
%global _httpd_apxs %{_root_bindir}/apxs
%global _httpd_modconfdir %{_root_sysconfdir}/httpd/conf.modules.d
%global _httpd_contentdir /usr/share/httpd
%else
# httpd 2.2 values
%global _httpd_apxs %{_root_sbindir}/apxs
%global _httpd_modconfdir %{_root_sysconfdir}/httpd/conf.d
%global _httpd_contentdir /var/www
%endif
%global macrosdir %(d=%{_rpmconfigdir}/macros.d; [ -d $d ] || d=%{_root_sysconfdir}/rpm; echo $d)
%global mysql_sock %(mysql_config --socket 2>/dev/null || echo /var/lib/mysql/mysql.sock)
%global oraclever 21.7
%global oraclelib 21.1
# Build for LiteSpeed Web Server (LSAPI), you can disable using --without tests
%bcond_without lsws
# Regression tests take a long time, you can skip 'em with this
%bcond_with tests
# Use the arch-specific mysql_config binary to avoid mismatch with the
# arch detection heuristic used by bindir/mysql_config.
%global mysql_config %{_mysql_dir}/bin/mysql_config
# Optional extensions; to enable: pass "--with xxx" etc to rpmbuild/mock.
%bcond_with oci8
%bcond_without zip
# Optional extensions; to disable: pass "--without xxx" etc to rpmbuild/mock.
%bcond_without imap
%bcond_without firebird
%bcond_without freetds
%bcond_without tidy
%bcond_without sqlite3
%bcond_without enchant
%if 0%{?fedora} >= 27 || 0%{?rhel} != 7
# switch to bundled library using --without libpcre
%bcond_without libpcre
%else
# switch to system library using --with libpcre
%bcond_with libpcre
%endif
# Using qdbm from "remi" for now, see https://bugzilla.redhat.com/2017308
%if 0%{?fedora} >= 33 || 0%{?rhel} >= 8
%bcond_without qdbm
%else
%bcond_with qdbm
%endif
%if 0%{?fedora} >= 33 || 0%{?rhel} >= 8
# switch to bundled library using --without libxcrypt
%bcond_without libxcrypt
%else
# switch to system library using --with libxcrypt
%bcond_with libxcrypt
%endif
%bcond_without dtrace
# build with system libgd (gd-last in remi repo)
%bcond_without libgd
# build with system tzdata (2021 required)
%if 0%{?fedora} >= 33 || 0%{?rhel} >= 6
%bcond_without tzdata
%else
%bcond_with tzdata
%endif
%if 0%{?rhel} == 7
%global dtsname devtoolset-8
%global dtsprefix %{dtsname}-
%endif
# httpd 2.4.10 with httpd-filesystem and sethandler support
%if 0%{?fedora} >= 21 || 0%{?rhel} >= 8
%global with_httpd2410 1
%else
%global with_httpd2410 0
%endif
%global gh_commit e2e2d2997328951de813fd157b6b4bf8701d8607
%global gh_short %(c=%{gh_commit}; echo ${c:0:7})
#global gh_date 20220530
%global gh_owner php
%global gh_project php-src
%global upver 8.3.11
#global rcver RC7
Summary: PHP scripting language for creating dynamic web sites
Name: %{?scl_prefix}php
Version: %{upver}%{?rcver:~%{rcver}}%{?gh_date:.%{gh_date}}
Release: 1%{?dist}
# All files licensed under PHP version 3.01, except
# Zend is licensed under Zend
# TSRM is licensed under BSD
# main/snprintf.c, main/spprintf.c and main/rfc1867.c are ASL 1.0
# ext/date/lib is MIT
# Zend/zend_sort is NCSA
# Zend/asm is Boost
License: PHP and Zend and BSD and MIT and ASL 1.0 and NCSA and Boost
URL: http://www.php.net/
%if 0%{?gh_date}
Source0: https://github.com/%{gh_owner}/%{gh_project}/archive/%{gh_commit}/%{gh_project}-%{upver}-%{gh_short}.tar.gz
%else
Source0: http://www.php.net/distributions/php-%{upver}%{?rcver}.tar.xz
# See https://secure.php.net/gpg-keys.php
Source20: https://www.php.net/distributions/php-keyring.gpg
Source21: https://www.php.net/distributions/php-%{upver}%{?rcver}.tar.xz.asc
%endif
Source1: php.conf
Source2: php.ini
Source3: macros.php
Source4: php-fpm.conf
Source5: php-fpm-www.conf
Source6: php-fpm.service
Source7: php-fpm.logrotate
Source8: php-fpm.sysconfig
Source9: php.modconf
Source10: php.conf2
Source12: php-fpm.wants
Source13: php-fpm.init
# Configuration files for some extensions
Source50: 10-opcache.ini
Source51: opcache-default.blacklist
Source52: 20-oci8.ini
Source53: 20-ffi.ini
# Build fixes
Patch1: php-7.4.0-httpd.patch
Patch5: php-7.2.0-includedir.patch
Patch6: php-8.0.0-embed.patch
Patch8: php-8.1.0-libdb.patch
# RHEL backports
Patch10: php-8.2.0-curl.patch
# Functional changes
# Use system nikic/php-parser
Patch41: php-8.3.0-parser.patch
# use system tzdata
Patch42: php-8.2.23-systzdata-v24.patch
# See http://bugs.php.net/53436
Patch44: php-7.4.0-phpize.patch
# Use -lldap_r for OpenLDAP
Patch45: php-7.4.0-ldap_r.patch
# Ignore unsupported "threads" option on password_hash
Patch46: php-8.0.7-argon2.patch
# drop "Configure command" from phpinfo output
# and only use gcc (instead of full version)
Patch47: php-8.1.0-phpinfo.patch
# Always warn about missing curve_name
# Both Fedora and RHEL do not support arbitrary EC parameters
Patch48: php-8.3.0-openssl-ec-param.patch
# RC Patch
Patch91: php-7.2.0-oci8conf.patch
# Upstream fixes (100+)
# Security fixes (200+)
# Fixes for tests (300+)
# Factory is droped from system tzdata
Patch300: php-7.4.0-datetests.patch
# WIP
BuildRequires: gnupg2
BuildRequires: bzip2-devel
BuildRequires: pkgconfig(libcurl) >= 7.29.0
#BuildRequires: libdb-devel
BuildRequires: httpd-devel >= 2.0.46-1
BuildRequires: pam-devel
%if %{with_httpd2410}
# to ensure we are using httpd with filesystem feature (see #1081453)
BuildRequires: httpd-filesystem
%endif
BuildRequires: %{?dtsprefix}libstdc++-devel
# no pkgconfig to avoid compat-openssl10
BuildRequires: openssl3-devel
BuildRequires: pkgconfig(sqlite3) >= 3.7.4
BuildRequires: pkgconfig(zlib) >= 1.2.0.4
BuildRequires: smtpdaemon
BuildRequires: pkgconfig(libedit)
%if %{with libpcre}
BuildRequires: pkgconfig(libpcre2-8) >= 10.30
%else
Provides: bundled(pcre2) = 10.32
%endif
%if %{with libxcrypt}
BuildRequires: pkgconfig(libxcrypt)
%endif
BuildRequires: bzip2
BuildRequires: perl
BuildRequires: autoconf >= 2.68
BuildRequires: automake >= 1.13
BuildRequires: make
BuildRequires: %{?dtsprefix}gcc
BuildRequires: %{?dtsprefix}gcc-c++
BuildRequires: libtool
BuildRequires: libtool-ltdl-devel
%if %{with dtrace}
BuildRequires: systemtap-sdt-devel
%endif
%if 0%{?gh_date}
BuildRequires: bison
BuildRequires: re2c >= 1.0.3
%endif
# used for tests
BuildRequires: /bin/ps
%if %{with tzdata}
BuildRequires: tzdata
%endif
Requires: httpd-mmn = %{_httpd_mmn}
Provides: %{?scl_prefix}mod_php = %{version}-%{release}
Requires: %{?scl_prefix}php-common%{?_isa} = %{version}-%{release}
# To ensure correct /var/lib/php/session ownership:
%if %{with_httpd2410}
Requires(pre): httpd-filesystem
%else
Requires(pre): httpd
%endif
%if 0%{?fedora} >= 27 || 0%{?rhel} >= 8
# For backwards-compatibility, pull the "php" command
Recommends: %{?scl_prefix}php-cli%{?_isa} = %{version}-%{release}
# httpd have threaded MPM by default
Recommends: %{?scl_prefix}php-fpm%{?_isa} = %{version}-%{release}
# as "php" is now mostly a meta-package, commonly used extensions
Recommends: %{?scl_prefix}php-mbstring%{?_isa} = %{version}-%{release}
Recommends: %{?scl_prefix}php-opcache%{?_isa} = %{version}-%{release}
Recommends: %{?scl_prefix}php-pdo%{?_isa} = %{version}-%{release}
Recommends: %{?scl_prefix}php-sodium%{?_isa} = %{version}-%{release}
Recommends: %{?scl_prefix}php-xml%{?_isa} = %{version}-%{release}
%else
# For backwards-compatibility, require php-cli for the time being:
Requires: %{?scl_prefix}php-cli%{?_isa} = %{version}-%{release}
# For ARGON2 password
Requires: %{?scl_prefix}php-sodium%{?_isa} = %{version}-%{release}
%endif
# Don't provides extensions, or shared libraries (embedded)
%{?filter_from_requires: %filter_from_requires /libphp.*so/d}
%{?filter_provides_in: %filter_provides_in %{_libdir}/.*\.so$}
%{?filter_setup}
%description
PHP is an HTML-embedded scripting language. PHP attempts to make it
easy for developers to write dynamically generated web pages. PHP also
offers built-in database integration for several commercial and
non-commercial database management systems, so writing a
database-enabled webpage with PHP is fairly simple. The most common
use of PHP coding is probably as a replacement for CGI scripts.
This package contains the module (often referred to as mod_php)
which adds support for the PHP language to system Apache HTTP Server.
%package cli
Summary: Command-line interface for PHP
# sapi/cli/ps_title.c is PostgreSQL
License: PHP and Zend and BSD and MIT and ASL 1.0 and NCSA and Boost and PostgreSQL
Requires: %{?scl_prefix}php-common%{?_isa} = %{version}-%{release}
Provides: %{?scl_prefix}php-cgi = %{version}-%{release}, %{?scl_prefix}php-cgi%{?_isa} = %{version}-%{release}
Provides: %{?scl_prefix}php-pcntl, %{?scl_prefix}php-pcntl%{?_isa}
Provides: %{?scl_prefix}php-readline, %{?scl_prefix}php-readline%{?_isa}
%description cli
The %{?scl_prefix}php-cli package contains the command-line interface
executing PHP scripts, %{_bindir}/php, and the CGI interface.
%package dbg
Summary: The interactive PHP debugger
Requires: %{?scl_prefix}php-common%{?_isa} = %{version}-%{release}
%description dbg
The %{?scl_prefix}php-dbg package contains the interactive PHP debugger.
%package fpm
Summary: PHP FastCGI Process Manager
BuildRequires: libacl-devel
%if 0%{?rhel} >= 7
BuildRequires: pkgconfig(libsystemd) >= 209
%{?systemd_requires}
# This is actually needed for the %%triggerun script but Requires(triggerun)
# is not valid. We can use %%post because this particular %%triggerun script
# should fire just after this package is installed.
Requires(post): systemd-sysv
%endif
BuildRequires: pkgconfig(libselinux)
Requires: %{?scl_prefix}php-common%{?_isa} = %{version}-%{release}
%if %{with_httpd2410}
# To ensure correct /var/lib/php/session ownership:
Requires(pre): httpd-filesystem
# For php.conf in /etc/httpd/conf.d
# and version 2.4.10 for proxy support in SetHandler
Requires: httpd-filesystem >= 2.4.10
%else
Requires(pre): %{_root_sbindir}/useradd
%endif
%description fpm
PHP-FPM (FastCGI Process Manager) is an alternative PHP FastCGI
implementation with some additional features useful for sites of
any size, especially busier sites.
%if %{with lsws}
%package litespeed
Summary: LiteSpeed Web Server PHP support
Requires: %{?scl_prefix}php-common%{?_isa} = %{version}-%{release}
%description litespeed
The %{?scl_prefix}php-litespeed package provides the %{_bindir}/lsphp command
used by the LiteSpeed Web Server (LSAPI enabled PHP).
%endif
%package embedded
Summary: PHP library for embedding in applications
Requires: %{?scl_prefix}php-common%{?_isa} = %{version}-%{release}
# doing a real -devel package for just the .so symlink is a bit overkill
Provides: %{?scl_prefix}php-embedded-devel = %{version}-%{release}
Provides: %{?scl_prefix}php-embedded-devel%{?_isa} = %{version}-%{release}
%description embedded
The %{?scl_prefix}php-embedded package contains a library which can be embedded
into applications to provide PHP scripting language support.
%package common
Summary: Common files for PHP
# All files licensed under PHP version 3.01, except
# fileinfo is licensed under PHP version 3.0
# regex, libmagic are licensed under BSD
License: PHP and BSD
# ABI/API check - Arch specific
Provides: %{?scl_prefix}php(api) = %{apiver}-%{__isa_bits}
Provides: %{?scl_prefix}php(zend-abi) = %{zendver}-%{__isa_bits}
Provides: %{?scl_prefix}php(language) = %{version}
Provides: %{?scl_prefix}php(language)%{?_isa} = %{version}
# Provides for all builtin/shared modules:
Provides: %{?scl_prefix}php-bz2, %{?scl_prefix}php-bz2%{?_isa}
Provides: %{?scl_prefix}php-calendar, %{?scl_prefix}php-calendar%{?_isa}
Provides: %{?scl_prefix}php-core = %{version}, %{?scl_prefix}php-core%{?_isa} = %{version}
Provides: %{?scl_prefix}php-ctype, %{?scl_prefix}php-ctype%{?_isa}
Provides: %{?scl_prefix}php-curl, %{?scl_prefix}php-curl%{?_isa}
Provides: %{?scl_prefix}php-date, %{?scl_prefix}php-date%{?_isa}
Provides: bundled(timelib)
Provides: %{?scl_prefix}php-exif, %{?scl_prefix}php-exif%{?_isa}
Provides: %{?scl_prefix}php-fileinfo, %{?scl_prefix}php-fileinfo%{?_isa}
Provides: bundled(libmagic) = 5.43
Provides: %{?scl_prefix}php-filter, %{?scl_prefix}php-filter%{?_isa}
Provides: %{?scl_prefix}php-ftp, %{?scl_prefix}php-ftp%{?_isa}
Provides: %{?scl_prefix}php-gettext, %{?scl_prefix}php-gettext%{?_isa}
Provides: %{?scl_prefix}php-hash, %{?scl_prefix}php-hash%{?_isa}
Provides: %{?scl_prefix}php-mhash = %{version}, %{?scl_prefix}php-mhash%{?_isa} = %{version}
Provides: %{?scl_prefix}php-iconv, %{?scl_prefix}php-iconv%{?_isa}
Obsoletes: %{?scl_prefix}php-json < 8.0.0
Provides: %{?scl_prefix}php-json = %{upver}, %{?scl_prefix}php-json%{?_isa} = %{upver}
Provides: %{?scl_prefix}php-libxml, %{?scl_prefix}php-libxml%{?_isa}
Provides: %{?scl_prefix}php-openssl, %{?scl_prefix}php-openssl%{?_isa}
Provides: %{?scl_prefix}php-phar, %{?scl_prefix}php-phar%{?_isa}
Provides: %{?scl_prefix}php-pcre, %{?scl_prefix}php-pcre%{?_isa}
Provides: %{?scl_prefix}php-random, %{?scl_prefix}php-random%{?_isa}
Provides: %{?scl_prefix}php-reflection, %{?scl_prefix}php-reflection%{?_isa}
Provides: %{?scl_prefix}php-session, %{?scl_prefix}php-session%{?_isa}
Provides: %{?scl_prefix}php-sockets, %{?scl_prefix}php-sockets%{?_isa}
Provides: %{?scl_prefix}php-spl, %{?scl_prefix}php-spl%{?_isa}
Provides: %{?scl_prefix}php-standard = %{version}, %{?scl_prefix}php-standard%{?_isa} = %{version}
Provides: %{?scl_prefix}php-tokenizer, %{?scl_prefix}php-tokenizer%{?_isa}
Provides: %{?scl_prefix}php-zlib, %{?scl_prefix}php-zlib%{?_isa}
Conflicts: isp-php82 >= 8.2.0
%description common
The %{?scl_prefix}php-common package contains files used by both
the %{?scl_prefix}php package and the %{?scl_prefix}php-cli package.
%package devel
Summary: Files needed for building PHP extensions
Requires: %{?scl_prefix}php-cli%{?_isa} = %{version}-%{release}
# always needed to build extension
Requires: autoconf >= 2.68
Requires: automake >= 1.13
Requires: make
Requires: gcc
Requires: gcc-c++
Requires: libtool
# see "php-config --libs"
Requires: krb5-devel%{?_isa}
Requires: libxml2-devel%{?_isa}
Requires: openssl-devel%{?_isa} >= 1.0.2
%if %{with libpcre}
Requires: pcre2-devel%{?_isa} >= 10.30
%endif
Requires: zlib-devel%{?_isa}
%if 0%{?fedora} || 0%{?rhel} >= 8
Recommends: php-nikic-php-parser4 >= 4.13.1
%endif
%description devel
The %{?scl_prefix}php-devel package contains the files needed for building PHP
extensions. If you need to compile your own PHP extensions, you will
need to install this package.
%package opcache
Summary: The Zend OPcache
License: PHP
BuildRequires: pkgconfig(capstone) >= 3.0
Requires: %{?scl_prefix}php-common%{?_isa} = %{version}-%{release}
Provides: %{?scl_prefix}php-pecl-zendopcache = %{version}
Provides: %{?scl_prefix}php-pecl-zendopcache%{?_isa} = %{version}
Provides: %{?scl_prefix}php-pecl(opcache) = %{version}
Provides: %{?scl_prefix}php-pecl(opcache)%{?_isa} = %{version}
%description opcache
The Zend OPcache provides faster PHP execution through opcode caching and
optimization. It improves PHP performance by storing precompiled script
bytecode in the shared memory. This eliminates the stages of reading code from
the disk and compiling it on future access. In addition, it applies a few
bytecode optimization patterns that make code execution faster.
%if %{with imap}
%package imap
Summary: A module for PHP applications that use IMAP
# All files licensed under PHP version 3.01
License: PHP
Requires: %{?scl_prefix}php-common%{?_isa} = %{version}-%{release}
BuildRequires: pkgconfig(krb5)
BuildRequires: pkgconfig(krb5-gssapi)
#BuildRequires: openssl-devel >= 1.0.2
BuildRequires: libc-client-devel
%description imap
The %{?scl_prefix}php-imap module will add IMAP (Internet Message Access Protocol)
support to PHP. IMAP is a protocol for retrieving and uploading e-mail
messages on mail servers. PHP is an HTML-embedded scripting language.
%endif
%package ldap
Summary: A module for PHP applications that use LDAP
# All files licensed under PHP version 3.01
License: PHP
Requires: %{?scl_prefix}php-common%{?_isa} = %{version}-%{release}
BuildRequires: pkgconfig(libsasl2)
BuildRequires: openldap-devel
#BuildRequires: openssl-devel >= 1.0.2
%description ldap
The %{?scl_prefix}php-ldap package adds Lightweight Directory Access Protocol (LDAP)
support to PHP. LDAP is a set of protocols for accessing directory
services over the Internet. PHP is an HTML-embedded scripting
language.
%package pdo
Summary: A database access abstraction module for PHP applications
# All files licensed under PHP version 3.01
License: PHP
Requires: %{?scl_prefix}php-common%{?_isa} = %{version}-%{release}
# ABI/API check - Arch specific
Provides: %{?scl_prefix}php-pdo-abi = %{pdover}-%{__isa_bits}
Provides: %{?scl_prefix}php(pdo-abi) = %{pdover}-%{__isa_bits}
%if %{with sqlite3}
Provides: %{?scl_prefix}php-sqlite3, %{?scl_prefix}php-sqlite3%{?_isa}
%endif
Provides: %{?scl_prefix}php-pdo_sqlite, %{?scl_prefix}php-pdo_sqlite%{?_isa}
%description pdo
The %{?scl_prefix}php-pdo package contains a dynamic shared object that will add
a database access abstraction layer to PHP. This module provides
a common interface for accessing MySQL, PostgreSQL or other
databases.
%package mysqlnd
Summary: A module for PHP applications that use MySQL databases
# All files licensed under PHP version 3.01
License: PHP
BuildRequires: mysql8-devel
Requires: %{?scl_prefix}php-pdo%{?_isa} = %{version}-%{release}
Provides: %{?scl_prefix}php_database
Provides: %{?scl_prefix}php-mysqli = %{version}-%{release}
Provides: %{?scl_prefix}php-mysqli%{?_isa} = %{version}-%{release}
Provides: %{?scl_prefix}php-pdo_mysql, %{?scl_prefix}php-pdo_mysql%{?_isa}
%description mysqlnd
The %{?scl_prefix}php-mysqlnd package contains a dynamic shared object that will add
MySQL database support to PHP. MySQL is an object-relational database
management system. PHP is an HTML-embeddable scripting language. If
you need MySQL support for PHP applications, you will need to install
this package and the php package.
This package use the MySQL Native Driver
%package pgsql
Summary: A PostgreSQL database module for PHP
# All files licensed under PHP version 3.01
License: PHP
Requires: %{?scl_prefix}php-pdo%{?_isa} = %{version}-%{release}
Provides: %{?scl_prefix}php_database
Provides: %{?scl_prefix}php-pdo_pgsql, %{?scl_prefix}php-pdo_pgsql%{?_isa}
BuildRequires: krb5-devel
#BuildRequires: openssl-devel >= 1.0.2
BuildRequires: libpq-devel
Requires: libpq >= 15
%description pgsql
The %{?scl_prefix}php-pgsql package add PostgreSQL database support to PHP.
PostgreSQL is an object-relational database management
system that supports almost all SQL constructs. PHP is an
HTML-embedded scripting language. If you need back-end support for
PostgreSQL, you should install this package in addition to the main
php package.
%package process
Summary: Modules for PHP script using system process interfaces
# All files licensed under PHP version 3.01
License: PHP
Requires: %{?scl_prefix}php-common%{?_isa} = %{version}-%{release}
Provides: %{?scl_prefix}php-posix, %{?scl_prefix}php-posix%{?_isa}
Provides: %{?scl_prefix}php-shmop, %{?scl_prefix}php-shmop%{?_isa}
Provides: %{?scl_prefix}php-sysvsem, %{?scl_prefix}php-sysvsem%{?_isa}
Provides: %{?scl_prefix}php-sysvshm, %{?scl_prefix}php-sysvshm%{?_isa}
Provides: %{?scl_prefix}php-sysvmsg, %{?scl_prefix}php-sysvmsg%{?_isa}
%description process
The %{?scl_prefix}php-process package contains dynamic shared objects which add
support to PHP using system interfaces for inter-process
communication.
%package odbc
Summary: A module for PHP applications that use ODBC databases
# All files licensed under PHP version 3.01, except
# pdo_odbc is licensed under PHP version 3.0
License: PHP
Requires: %{?scl_prefix}php-pdo%{?_isa} = %{version}-%{release}
Provides: %{?scl_prefix}php_database
Provides: %{?scl_prefix}php-pdo_odbc, %{?scl_prefix}php-pdo_odbc%{?_isa}
# EL-7 version don't have pkgconfig
BuildRequires: unixODBC-devel
%description odbc
The %{?scl_prefix}php-odbc package contains a dynamic shared object that will add
database support through ODBC to PHP. ODBC is an open specification
which provides a consistent API for developers to use for accessing
data sources (which are often, but not always, databases). PHP is an
HTML-embeddable scripting language. If you need ODBC support for PHP
applications, you will need to install this package and the php
package.
%package soap
Summary: A module for PHP applications that use the SOAP protocol
# All files licensed under PHP version 3.01
License: PHP
Requires: %{?scl_prefix}php-common%{?_isa} = %{version}-%{release}
BuildRequires: pkgconfig(libxml-2.0)
%description soap
The %{?scl_prefix}php-soap package contains a dynamic shared object that will add
support to PHP for using the SOAP web services protocol.
%if %{with firebird}
%package pdo-firebird
Summary: PDO driver for Interbase/Firebird databases
# All files licensed under PHP version 3.01
License: PHP
BuildRequires: firebird-devel
Requires: %{?scl_prefix}php-pdo%{?_isa} = %{version}-%{release}
Provides: %{?scl_prefix}php_database
Provides: %{?scl_prefix}php-pdo_firebird, %{?scl_prefix}php-pdo_firebird%{?_isa}
%description pdo-firebird
The %{?scl_prefix}php-pdo-firebird package contains the PDO driver for
Interbase/Firebird databases.
InterBase is the name of the closed-source variant of this RDBMS that was
developed by Borland/Inprise.
Firebird is a commercially independent project of C and C++ programmers,
technical advisors and supporters developing and enhancing a multi-platform
relational database management system based on the source code released by
Inprise Corp (now known as Borland Software Corp) under the InterBase Public
License.
%endif
%if %{with oci8}
%package oci8
Summary: A module for PHP applications that use OCI8 databases
# All files licensed under PHP version 3.01
License: PHP
BuildRequires: oracle-instantclient-devel >= %{oraclever}
Requires: %{?scl_prefix}php-pdo%{?_isa} = %{version}-%{release}
Provides: %{?scl_prefix}php_database
Provides: %{?scl_prefix}php-pdo_oci
Provides: %{?scl_prefix}php-pdo_oci%{?_isa}
Obsoletes: %{?scl_prefix}php-pecl-oci8 <= %{oci8ver}
Conflicts: %{?scl_prefix}php-pecl-oci8 > %{oci8ver}
Provides: %{?scl_prefix}php-pecl(oci8) = %{oci8ver}
Provides: %{?scl_prefix}php-pecl(oci8)%{?_isa} = %{oci8ver}
# Should requires libclntsh.so.18.3, but it's not provided by Oracle RPM.
AutoReq: 0
%description oci8
The %{?scl_prefix}php-oci8 packages provides the OCI8 extension version %{oci8ver}
and the PDO driver to access Oracle Database.
The extension is linked with Oracle client libraries %{oraclever}
(Oracle Instant Client). For details, see Oracle's note
"Oracle Client / Server Interoperability Support" (ID 207303.1).
You must install libclntsh.so.%{oraclelib} to use this package, provided
in the database installation, or in the free Oracle Instant Client
available from Oracle.
Notice:
- %{?scl_prefix}php-oci8 provides oci8 and pdo_oci extensions from php sources.
- %{?scl_prefix}php-pecl-oci8 only provides oci8 extension.
Documentation is at http://php.net/oci8 and http://php.net/pdo_oci
%endif
%package snmp
Summary: A module for PHP applications that query SNMP-managed devices
# All files licensed under PHP version 3.01
License: PHP
Requires: %{?scl_prefix}php-common%{?_isa} = %{version}-%{release}, net-snmp
BuildRequires: net-snmp-devel
%description snmp
The %{?scl_prefix}php-snmp package contains a dynamic shared object that will add
support for querying SNMP devices to PHP. PHP is an HTML-embeddable
scripting language. If you need SNMP support for PHP applications, you
will need to install this package and the php package.
%package xml
Summary: A module for PHP applications which use XML
# All files licensed under PHP version 3.01
License: PHP
Requires: %{?scl_prefix}php-common%{?_isa} = %{version}-%{release}
Provides: %{?scl_prefix}php-dom, %{?scl_prefix}php-dom%{?_isa}
Provides: %{?scl_prefix}php-domxml, %{?scl_prefix}php-domxml%{?_isa}
Provides: %{?scl_prefix}php-simplexml, %{?scl_prefix}php-simplexml%{?_isa}
Provides: %{?scl_prefix}php-xmlreader, %{?scl_prefix}php-xmlreader%{?_isa}
Provides: %{?scl_prefix}php-xmlwriter, %{?scl_prefix}php-xmlwriter%{?_isa}
Provides: %{?scl_prefix}php-xsl, %{?scl_prefix}php-xsl%{?_isa}
BuildRequires: pkgconfig(libxslt) >= 1.1
BuildRequires: pkgconfig(libexslt)
BuildRequires: pkgconfig(libxml-2.0) >= 2.7.6
%description xml
The %{?scl_prefix}php-xml package contains dynamic shared objects which add support
to PHP for manipulating XML documents using the DOM tree,
and performing XSL transformations on XML documents.
%package mbstring
Summary: A module for PHP applications which need multi-byte string handling
# All files licensed under PHP version 3.01, except
# libmbfl is licensed under LGPLv2
# onigurama is licensed under BSD
# ucgendat is licensed under OpenLDAP
License: PHP and LGPLv2 and BSD and OpenLDAP
%if 0%{?rhel}
BuildRequires: oniguruma5php-devel
%else
BuildRequires: oniguruma-devel
%endif
Provides: bundled(libmbfl) = 1.3.2
Requires: %{?scl_prefix}php-common%{?_isa} = %{version}-%{release}
%description mbstring
The %{?scl_prefix}php-mbstring package contains a dynamic shared object that will add
support for multi-byte string handling to PHP.
%package gd
Summary: A module for PHP applications for using the gd graphics library
# All files licensed under PHP version 3.01
%if %{with libgd}
License: PHP
%else
# bundled libgd is licensed under BSD
License: PHP and BSD
%endif
Requires: %{?scl_prefix}php-common%{?_isa} = %{version}-%{release}
%if %{with libgd}
BuildRequires: pkgconfig(gdlib) >= 2.3.3
%else
# Required to build the bundled GD library
BuildRequires: pkgconfig(zlib)
BuildRequires: pkgconfig(libjpeg) >= 2.0
BuildRequires: pkgconfig(libpng)
BuildRequires: pkgconfig(freetype2)
BuildRequires: pkgconfig(xpm)
BuildRequires: pkgconfig(libwebp)
BuildRequires: pkgconfig(libavif)
Provides: bundled(gd) = 2.0.35
%endif
%description gd
The %{?scl_prefix}php-gd package contains a dynamic shared object that will add
support for using the gd graphics library to PHP.
%package bcmath
Summary: A module for PHP applications for using the bcmath library
# All files licensed under PHP version 3.01, except
# libbcmath is licensed under LGPLv2+
License: PHP and LGPLv2+
Requires: %{?scl_prefix}php-common%{?_isa} = %{version}-%{release}
Provides: bundled(libbcmath)
%description bcmath
The %{?scl_prefix}php-bcmath package contains a dynamic shared object that will add
support for using the bcmath library to PHP.
%package gmp
Summary: A module for PHP applications for using the GNU MP library
# All files licensed under PHP version 3.01
License: PHP
BuildRequires: gmp-devel >= 6.0
Requires: %{?scl_prefix}php-common%{?_isa} = %{version}-%{release}
%description gmp
These functions allow you to work with arbitrary-length integers
using the GNU MP library.
%package dba
Summary: A database abstraction layer module for PHP applications
# All files licensed under PHP version 3.01
License: PHP
BuildRequires: db4-devel
BuildRequires: tokyocabinet-devel
BuildRequires: lmdb-devel
%if %{with qdbm}
BuildRequires: qdbm-devel
%endif
Requires: %{?scl_prefix}php-common%{?_isa} = %{version}-%{release}
%description dba
The %{?scl_prefix}php-dba package contains a dynamic shared object that will add
support for using the DBA database abstraction layer to PHP.
%if %{with tidy}
%package tidy
Summary: Standard PHP module provides tidy library support
# All files licensed under PHP version 3.01
License: PHP
Requires: %{?scl_prefix}php-common%{?_isa} = %{version}-%{release}
BuildRequires: libtidy-devel
%description tidy
The %{?scl_prefix}php-tidy package contains a dynamic shared object that will add
support for using the tidy library to PHP.
%endif
%if %{with freetds}
%package pdo-dblib
Summary: PDO driver for Microsoft SQL Server and Sybase databases
# All files licensed under PHP version 3.01
License: PHP
Requires: %{?scl_prefix}php-pdo%{?_isa} = %{version}-%{release}
BuildRequires: freetds-devel
Provides: %{?scl_prefix}php-pdo_dblib, %{?scl_prefix}php-pdo_dblib%{?_isa}
%description pdo-dblib
The %{?scl_prefix}php-pdo-dblib package contains a dynamic shared object
that implements the PHP Data Objects (PDO) interface to enable access from
PHP to Microsoft SQL Server and Sybase databases through the FreeTDS library.
%endif
%package pspell
Summary: A module for PHP applications for using pspell interfaces
# All files licensed under PHP version 3.01
License: PHP
Requires: %{?scl_prefix}php-common%{?_isa} = %{version}-%{release}
BuildRequires: aspell-devel >= 0.50.0
%description pspell
The %{?scl_prefix}php-pspell package contains a dynamic shared object that will add
support for using the pspell library to PHP.
%package intl
Summary: Internationalization extension for PHP applications
# All files licensed under PHP version 3.01
License: PHP
Requires: %{?scl_prefix}php-common%{?_isa} = %{version}-%{release}
BuildRequires: pkgconfig(icu-i18n) >= 71
BuildRequires: pkgconfig(icu-io) >= 71
BuildRequires: pkgconfig(icu-uc) >= 71
%description intl
The %{?scl_prefix}php-intl package contains a dynamic shared object that will add
support for using the ICU library to PHP.
%if %{with enchant}
%package enchant
Summary: Enchant spelling extension for PHP applications
# All files licensed under PHP version 3.0
License: PHP
Requires: %{?scl_prefix}php-common%{?_isa} = %{version}-%{release}
BuildRequires: pkgconfig(enchant-2)
%description enchant
The %{?scl_prefix}php-enchant package contains a dynamic shared object that will add
support for using the enchant library to PHP.
%endif
%if %{with zip}
%package zip
Summary: ZIP archive management extension for PHP
# All files licensed under PHP version 3.0.1
License: PHP-3.01
Requires: php-common%{?_isa} = %{version}-%{release}
Obsoletes: php-pecl-zip < %{zipver}
Provides: php-pecl(zip) = %{zipver}
Provides: php-pecl(zip)%{?_isa} = %{zipver}
Provides: php-pecl-zip = %{zipver}
Provides: php-pecl-zip%{?_isa} = %{zipver}
Requires: %{?scl_prefix}php-common%{?_isa} = %{version}-%{release}
BuildRequires: pkgconfig(libzip) >= 0.11
%description zip
The %{?scl_prefix}php-zip package provides an extension that will add
support for ZIP archive management to PHP.
%endif
%package sodium
Summary: Wrapper for the Sodium cryptographic library
# All files licensed under PHP version 3.0.1
License: PHP
# Minimal is 1.0.8, 1.0.14 is needed for argon2 password
BuildRequires: pkgconfig(libsodium) >= 1.0.18
Requires: %{?scl_prefix}php-common%{?_isa} = %{version}-%{release}
Obsoletes: %{?scl_prefix}php-pecl-libsodium2 < 3
Provides: %{?scl_prefix}php-pecl(libsodium) = %{version}
Provides: %{?scl_prefix}php-pecl(libsodium)%{?_isa} = %{version}
%description sodium
The %{?scl_prefix}php-sodium package provides a simple,
low-level PHP extension for the libsodium cryptographic library.
%package ffi
Summary: Foreign Function Interface
# All files licensed under PHP version 3.0.1
License: PHP
BuildRequires: pkgconfig(libffi)
Requires: %{?scl_prefix}php-common%{?_isa} = %{version}-%{release}
%description ffi
FFI is one of the features that made Python and LuaJIT very useful for fast
prototyping. It allows calling C functions and using C data types from pure
scripting language and therefore develop “system code” more productively.
For PHP, FFI opens a way to write PHP extensions and bindings to C libraries
in pure PHP.
%prep
: Building %{name}-%{version}-%{release}
%if %{with lsws}
: With Litespeed SAPI
%endif
%if %{with oci8}
: With Oracle extensions
%endif
%if %{with enchant}
: With Enchant extensions
%endif
%if %{with imap}
: With Imap extensions
%endif
%if %{with firebird}
: With pdo_firebird extension
%endif
%if %{with freetds}
: With pdo_dblib extension
%endif
%if %{with sqlite3}
: With Sqlite3 extension
%endif
%if %{with tidy}
: With Tidy extension
%endif
%if %{with zip}
: With Zip extension
%endif
%if %{with tests}
: Run Test suite
%endif
%if %{with libgd}
: Use System libgd
%else
: Use Bundled libgd
%endif
%if %{with libpcre}
: Use System libpcre
%else
: Use Bundled libpcre
%endif
%if %{with dtrace}
: Enable Dtrace build
%endif
%if 0%{?gh_date}
: no gpg check for git snapshot
%else
#{?gpgverify:%{gpgverify} --keyring='%{SOURCE20}' --signature='%{SOURCE21}' --data='%{SOURCE0}'}
%endif
%if 0%{?gh_date}
%setup -q -n %{gh_project}-%{gh_commit}
%else
%setup -q -n php-%{upver}%{?rcver}
%endif
%patch1 -p1 -b .mpmcheck
%patch5 -p1 -b .includedir
%patch6 -p1 -b .embed
%patch8 -p1 -b .libdb
%if 0%{?rhel} == 7
%patch10 -p1 -b .curltls
%endif
%patch41 -p1 -b .syslib
%if %{with tzdata}
%patch42 -p1 -b .systzdata
%endif
%patch44 -p1 -b .headers
sed -e 's/php-devel/%{?scl_prefix}php-devel/' -i scripts/phpize.in
%if 0%{?fedora} >= 18 || 0%{?rhel} >= 7
%patch45 -p1 -b .ldap_r
%endif
%patch46 -p1 -b .argon2
%patch47 -p1 -b .phpinfo
%patch48 -p1 -b .ec-param
%patch91 -p1 -b .remi-oci8
# upstream patches
# security patches
# Fixes for tests
%patch300 -p1 -b .datetests
# WIP patch
# Prevent %%doc confusion over LICENSE files
cp Zend/LICENSE ZEND_LICENSE
cp Zend/asm/LICENSE BOOST_LICENSE
cp TSRM/LICENSE TSRM_LICENSE
cp sapi/fpm/LICENSE fpm_LICENSE
cp ext/mbstring/libmbfl/LICENSE libmbfl_LICENSE
cp ext/bcmath/libbcmath/LICENSE libbcmath_LICENSE
cp ext/date/lib/LICENSE.rst timelib_LICENSE
# Multiple builds for multiple SAPIs
mkdir \
build-fpm \
build-apache \
build-embedded \
build-cgi
# ----- Manage known as failed test -------
# affected by systzdata patch
%if %{with tzdata}
rm ext/date/tests/timezone_location_get.phpt
rm ext/date/tests/bug80963.phpt
%endif
%if 0%{?fedora} < 36
# need tzdata 2022b
rm ext/date/tests/bug33415-2.phpt
%endif
# too fast builder
rm ext/date/tests/bug73837.phpt
# fails sometime
rm ext/sockets/tests/mcast_ipv?_recv.phpt
# Should be skipped but fails sometime
rm ext/standard/tests/file/file_get_contents_error001.phpt
# cause stack exhausion
rm Zend/tests/bug54268.phpt
rm Zend/tests/bug68412.phpt
# slow and erratic result
rm sapi/cli/tests/upload_2G.phpt
# tar issue
rm ext/zlib/tests/004-mb.phpt
# Both Fedora and RHEL do not support arbitrary EC parameters
# https://bugzilla.redhat.com/2223953
rm ext/openssl/tests/ecc_custom_params.phpt
# Safety check for API version change.
pver=$(sed -n '/#define PHP_VERSION /{s/.* "//;s/".*$//;p}' main/php_version.h)
if test "x${pver}" != "x%{upver}%{?rcver}%{!?rcver:%{?gh_date:-dev}}"; then
: Error: Upstream PHP version is now ${upver}, expecting %{upver}%{?rcver}%{!?rcver:%{?gh_date:-dev}}.
: Update the version/rcver macros and rebuild.
exit 1
fi
vapi=`sed -n '/#define PHP_API_VERSION/{s/.* //;p}' main/php.h`
if test "x${vapi}" != "x%{apiver}"; then
: Error: Upstream API version is now ${vapi}, expecting %{apiver}.
: Update the apiver macro and rebuild.
exit 1
fi
vzend=`sed -n '/#define ZEND_MODULE_API_NO/{s/^[^0-9]*//;p;}' Zend/zend_modules.h`
if test "x${vzend}" != "x%{zendver}"; then
: Error: Upstream Zend ABI version is now ${vzend}, expecting %{zendver}.
: Update the zendver macro and rebuild.
exit 1
fi
# Safety check for PDO ABI version change
vpdo=`sed -n '/#define PDO_DRIVER_API/{s/.*[ ]//;p}' ext/pdo/php_pdo_driver.h`
if test "x${vpdo}" != "x%{pdover}"; then
: Error: Upstream PDO ABI version is now ${vpdo}, expecting %{pdover}.
: Update the pdover macro and rebuild.
exit 1
fi
# Check for some extension version
ver=$(sed -n '/#define PHP_OCI8_VERSION /{s/.* "//;s/".*$//;p}' ext/oci8/php_oci8.h)
if test "$ver" != "%{oci8ver}"; then
: Error: Upstream OCI8 version is now ${ver}, expecting %{oci8ver}.
: Update the oci8ver macro and rebuild.
exit 1
fi
# https://bugs.php.net/63362 - Not needed but installed headers.
# Drop some Windows specific headers to avoid installation,
# before build to ensure they are really not needed.
rm -f TSRM/tsrm_win32.h \
TSRM/tsrm_config.w32.h \
Zend/zend_config.w32.h \
ext/mysqlnd/config-win.h \
ext/standard/winver.h \
main/win32_internal_function_disabled.h \
main/win95nt.h
# Fix some bogus permissions
find . -name \*.[ch] -exec chmod 644 {} \;
chmod 644 README.*
# Create the macros.php files
sed -e "s/@PHP_APIVER@/%{apiver}-%{__isa_bits}/" \
-e "s/@PHP_ZENDVER@/%{zendver}-%{__isa_bits}/" \
-e "s/@PHP_PDOVER@/%{pdover}-%{__isa_bits}/" \
-e "s/@PHP_VERSION@/%{upver}/" \
-e "s:@LIBDIR@:%{_libdir}:" \
-e "s:@ETCDIR@:%{_sysconfdir}:" \
-e "s:@INCDIR@:%{_includedir}:" \
-e "s:@BINDIR@:%{_bindir}:" \
-e "s:@SCL@:%{?scl:%{scl}_}:" \
%{SOURCE3} | tee macros.php
%if 0%{?fedora} >= 24 || 0%{?rhel} >= 8
echo '%%%{?scl:%{scl}_}pecl_xmldir %{_localstatedir}/lib/php/peclxml' | tee -a macros.php
%endif
# Some extensions have their own configuration file
cp %{SOURCE50} %{SOURCE51} %{SOURCE52} %{SOURCE53} .
sed -e 's:%{_root_sysconfdir}:%{_sysconfdir}:' \
-i 10-opcache.ini
sed -e 's:%{_root_datadir}:%{_datadir}:' \
-i 20-ffi.ini
%if 0%{!?scl:1}
: SCL macro not defined
exit 1
%endif
%build
# This package fails to build with LTO due to undefined symbols. LTO
# was disabled in OpenSuSE as well, but with no real explanation why
# beyond the undefined symbols. It really shold be investigated further.
# Disable LTO
%define _lto_cflags %{nil}
#. /opt/rh/%{dtsname}/enable
# Set build date from https://reproducible-builds.org/specs/source-date-epoch/
export SOURCE_DATE_EPOCH=$(date +%s -r NEWS)
export PHP_UNAME=$(uname)
export PHP_BUILD_SYSTEM=$(cat /etc/redhat-release | sed -e 's/ Beta//')
%if 0%{?vendor:1}
export PHP_BUILD_PROVIDER="%{vendor}"
%endif
export PHP_BUILD_COMPILER="$(gcc --version | head -n1)"
export PHP_BUILD_ARCH="%{_arch}"
# Force use of system libtool:
libtoolize --force --copy
cat $(aclocal --print-ac-dir)/{libtool,ltoptions,ltsugar,ltversion,lt~obsolete}.m4 >build/libtool.m4
%if 0%{?gh_date}
# Bison files
scripts/dev/genfiles
%endif
# Regenerate configure scripts (patches change config.m4's)
touch configure.ac
./buildconf --force
CFLAGS="-I/opt/rx/includes $RPM_OPT_FLAGS -fno-strict-aliasing -Wno-pointer-sign"
export CFLAGS
LDFLAGS="-L%{_root_libdir}/pgsql -Wl,-rpath=%{_root_libdir}/pgsql -L/opt/rx/lib -Wl,-rpath=/opt/rx/lib $_LDFLAGS"
export LDFLAGS
export PKG_CONFIG_PATH=/opt/rx/lib/pkgconfig${PKG_CONFIG_PATH:+:${PKG_CONFIG_PATH}}
# Install extension modules in %{_libdir}/php/modules.
EXTENSION_DIR=%{_libdir}/php/modules; export EXTENSION_DIR
# Set PEAR_INSTALLDIR to ensure that the hard-coded include_path
# includes the PEAR directory even though pear is packaged
# separately.
PEAR_INSTALLDIR=%{_datadir}/pear; export PEAR_INSTALLDIR
# Shell function to configure and build a PHP tree.
build() {
# Old/recent bison version seems to produce a broken parser;
# upstream uses GNU Bison 2.3. Workaround:
mkdir Zend && cp ../Zend/zend_{language,ini}_{parser,scanner}.[ch] Zend
# Always static:
# date, filter, libxml, reflection, spl: not supported
# hash: for PHAR_SIG_SHA256 and PHAR_SIG_SHA512
# session: dep on hash, used by soap
# pcre: used by filter, zip
# pcntl, readline: only used by CLI sapi
# openssl: for PHAR_SIG_OPENSSL
# zlib: used by image
ln -sf ../configure
%configure \
--enable-rtld-now \
--cache-file=../config.cache \
--with-libdir=%{_lib} \
--with-config-file-path=%{_sysconfdir} \
--with-config-file-scan-dir=%{_sysconfdir}/php.d \
--disable-debug \
--with-pic \
--disable-rpath \
--without-pear \
--with-exec-dir=%{_bindir} \
--without-gdbm \
--with-openssl \
--with-system-ciphers \
%if %{with libpcre}
--with-external-pcre \
%endif
%if %{with libxcrypt}
--with-external-libcrypt \
%endif
--with-zlib \
--with-layout=GNU \
--with-kerberos \
--with-libxml \
%if %{with tzdata}
--with-system-tzdata \
%endif
--with-mhash \
--without-password-argon2 \
%if %{with dtrace}
--enable-dtrace \
%endif
$*
if test $? != 0; then
tail -500 config.log
: configure failed
exit 1
fi
make %{?_smp_mflags}
}
# Build /usr/bin/php-cgi with the CGI SAPI, and most the shared extensions
pushd build-cgi
build --libdir=%{_libdir}/php \
--enable-pcntl \
--enable-opcache \
--enable-opcache-file \
--with-capstone \
--enable-phpdbg \
%if %{with imap}
--with-imap=shared --with-imap-ssl \
%endif
--enable-mbstring=shared \
--enable-mbregex \
--enable-gd=shared \
%if %{with libgd}
--with-external-gd \
%else
--with-webp \
--with-jpeg \
--with-xpm \
--with-freetype \
%endif
--with-gmp=shared \
--enable-calendar=shared \
--enable-bcmath=shared \
--with-bz2=shared \
--enable-ctype=shared \
--enable-dba=shared \
--with-tcadb=%{_root_prefix} \
--with-lmdb=%{_root_prefix} \
%if %{with qdbm}
--with-qdbm=%{_root_prefix} \
%endif
--enable-exif=shared \
--enable-ftp=shared \
--with-gettext=shared \
--with-iconv=shared \
--enable-sockets=shared \
--enable-tokenizer=shared \
--with-ldap=shared --with-ldap-sasl \
--enable-mysqlnd=shared,%{_mysql_dir} \
--with-mysqli=shared,mysqlnd \
--with-mysql-sock=%{mysql_sock} \
%if %{with oci8}
--with-oci8=shared,instantclient,%{_root_libdir}/oracle/%{oraclever}/client64/lib,%{oraclever} \
--with-pdo-oci=shared,instantclient,%{_root_libdir}/oracle/%{oraclever}/client64/lib,%{oraclever} \
%endif
%if %{with firebird}
--with-pdo-firebird=shared \
%endif
--enable-dom=shared \
--with-pgsql=shared \
--enable-simplexml=shared \
--enable-xml=shared \
--with-snmp=shared,%{_root_prefix} \
--enable-soap=shared \
--with-xsl=shared,%{_root_prefix} \
--enable-xmlreader=shared --enable-xmlwriter=shared \
--with-curl=shared \
--enable-pdo=shared \
--with-pdo-odbc=shared,unixODBC,%{_root_prefix} \
--with-pdo-mysql=shared,mysqlnd \
--with-pdo-pgsql=shared,%{_root_prefix} \
--with-pdo-sqlite=shared \
%if %{with sqlite3}
--with-sqlite3=shared \
%else
--without-sqlite3 \
%endif
%if %{with zip}
--with-zip=shared \
%endif
--without-readline \
--with-libedit \
--with-pspell=shared \
--enable-phar=shared \
%if %{with tidy}
--with-tidy=shared,%{_root_prefix} \
%endif
%if %{with freetds}
--with-pdo-dblib=shared,%{_root_prefix} \
%endif
--enable-sysvmsg=shared --enable-sysvshm=shared --enable-sysvsem=shared \
--enable-shmop=shared \
--enable-posix=shared \
--with-unixODBC=shared,%{_root_prefix} \
--enable-intl=shared \
%if %{with enchant}
--with-enchant=shared \
%endif
--enable-fileinfo=shared \
--with-ffi=shared \
--with-sodium=shared
popd
without_shared="--disable-gd \
--disable-dom --disable-dba --without-unixODBC \
--disable-opcache \
--disable-phpdbg \
--without-ffi \
--disable-xmlreader --disable-xmlwriter \
--without-sodium \
--without-sqlite3 --disable-phar --disable-fileinfo \
--without-pspell \
--without-curl --disable-posix --disable-xml \
--disable-simplexml --disable-exif --without-gettext \
--without-iconv --disable-ftp --without-bz2 --disable-ctype \
--disable-shmop --disable-sockets --disable-tokenizer \
--disable-sysvmsg --disable-sysvshm --disable-sysvsem"
# Build Apache module, and the CLI SAPI, /usr/bin/php
pushd build-apache
build --with-apxs2=%{_httpd_apxs} \
--libdir=%{_libdir}/php \
%if %{with lsws}
--enable-litespeed \
%endif
--without-mysqli \
--disable-pdo \
${without_shared}
popd
# Build php-fpm
pushd build-fpm
build --enable-fpm \
%if 0%{?rhel} >= 7
--with-fpm-systemd \
%endif
--with-fpm-selinux \
--with-fpm-acl \
--libdir=%{_libdir}/php \
--without-mysqli \
--disable-pdo \
${without_shared}
popd
# Build for inclusion as embedded script language into applications,
# /usr/lib[64]/libphp.so
pushd build-embedded
build --enable-embed \
--without-mysqli \
--disable-pdo \
${without_shared}
popd
%check
%if %{with tests}
cd build-fpm
# Run tests, using the CLI SAPI
export NO_INTERACTION=1 REPORT_EXIT_STATUS=1 MALLOC_CHECK_=2
export SKIP_ONLINE_TESTS=1
export SKIP_IO_CAPTURE_TESTS=1
unset TZ LANG LC_ALL
if ! make test TESTS=-j4; then
set +x
for f in $(find .. -name \*.diff -type f -print); do
if ! grep -q XFAIL "${f/.diff/.phpt}"
then
echo "TEST FAILURE: $f --"
head -n 100 "$f"
echo -e "\n-- $f result ends."
fi
done
set -x
#exit 1
fi
unset NO_INTERACTION REPORT_EXIT_STATUS MALLOC_CHECK_
%endif
%install
%{?dtsenable}
# Install the version for embedded script language in applications + php_embed.h
make -C build-embedded install-sapi install-headers \
INSTALL_ROOT=$RPM_BUILD_ROOT
# Install the php-fpm binary
make -C build-fpm install-fpm \
INSTALL_ROOT=$RPM_BUILD_ROOT
# Install everything from the CGI SAPI build
make -C build-cgi install \
INSTALL_ROOT=$RPM_BUILD_ROOT
# Use php-config from embed SAPI to reduce used libs
install -m 755 build-embedded/scripts/php-config $RPM_BUILD_ROOT%{_bindir}/php-config
# Install the default configuration file
install -m 755 -d $RPM_BUILD_ROOT%{_sysconfdir}/
install -m 644 %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/php.ini
sed -e 's:%{_root_sysconfdir}:%{_sysconfdir}:' \
-i $RPM_BUILD_ROOT%{_sysconfdir}/php.ini
# For third-party packaging:
install -m 755 -d $RPM_BUILD_ROOT%{_datadir}/php/preload
# install the DSO
install -m 755 -d $RPM_BUILD_ROOT%{_httpd_moddir}
install -m 755 build-apache/libs/libphp.so $RPM_BUILD_ROOT%{_httpd_moddir}
# Apache config fragment
%if %{?scl:1}0
sed -e 's/libphp/lib%{scl}/' %{SOURCE9} >modconf
install -m 755 -d $RPM_BUILD_ROOT%{_root_httpd_moddir}
ln -s %{_httpd_moddir}/libphp.so $RPM_BUILD_ROOT%{_root_httpd_moddir}/lib%{scl}.so
%else
cp %{SOURCE9} modconf
%endif
# Dual config file with httpd >= 2.4 (RHEL >= 7)
install -D -m 644 modconf $RPM_BUILD_ROOT%{_httpd_modconfdir}/20-%{name}.conf
install -D -m 644 %{SOURCE1} $RPM_BUILD_ROOT%{_httpd_confdir}/%{name}.conf
%if %{with_httpd2410}
cat %{SOURCE10} >>$RPM_BUILD_ROOT%{_httpd_confdir}/%{name}.conf
%endif
sed -e 's:/var/lib:%{_localstatedir}/lib:' \
-i $RPM_BUILD_ROOT%{_httpd_confdir}/%{name}.conf
install -m 755 -d $RPM_BUILD_ROOT%{_sysconfdir}/php.d
install -m 755 -d $RPM_BUILD_ROOT%{_localstatedir}/lib/php
install -m 700 -d $RPM_BUILD_ROOT%{_localstatedir}/lib/php/session
install -m 700 -d $RPM_BUILD_ROOT%{_localstatedir}/lib/php/wsdlcache
install -m 700 -d $RPM_BUILD_ROOT%{_localstatedir}/lib/php/opcache
install -m 755 -d $RPM_BUILD_ROOT%{_localstatedir}/lock/subsys
%if 0%{?fedora} >= 24 || 0%{?rhel} >= 8
install -m 755 -d $RPM_BUILD_ROOT%{_localstatedir}/lib/php/peclxml
install -m 755 -d $RPM_BUILD_ROOT%{_docdir}/pecl
install -m 755 -d $RPM_BUILD_ROOT%{_datadir}/tests/pecl
%endif
%if %{with lsws}
install -m 755 build-apache/sapi/litespeed/php $RPM_BUILD_ROOT%{_bindir}/lsphp
%endif
# PHP-FPM stuff
# Log
install -m 755 -d $RPM_BUILD_ROOT%{_localstatedir}/log/php-fpm
install -m 755 -d $RPM_BUILD_ROOT%{_localstatedir}/run/php-fpm
# Config
install -m 755 -d $RPM_BUILD_ROOT%{_sysconfdir}/php-fpm.d
install -m 644 %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/php-fpm.conf
sed -e 's:/run:%{_localstatedir}/run:' \
-e 's:/var/log:%{_localstatedir}/log:' \
-e 's:/etc:%{_sysconfdir}:' \
-i $RPM_BUILD_ROOT%{_sysconfdir}/php-fpm.conf
install -m 644 %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/php-fpm.d/www.conf
sed -e 's:/var/lib:%{_localstatedir}/lib:' \
-e 's:/var/log:%{_localstatedir}/log:' \
-i $RPM_BUILD_ROOT%{_sysconfdir}/php-fpm.d/www.conf
mv $RPM_BUILD_ROOT%{_sysconfdir}/php-fpm.conf.default .
mv $RPM_BUILD_ROOT%{_sysconfdir}/php-fpm.d/www.conf.default .
%if 0%{?rhel} >= 7
# tmpfiles.d
# install -m 755 -d $RPM_BUILD_ROOT%{_prefix}/lib/tmpfiles.d
# install -m 644 php-fpm.tmpfiles $RPM_BUILD_ROOT%{_prefix}/lib/tmpfiles.d/php-fpm.conf
# install systemd unit files and scripts for handling server startup
install -Dm 644 %{SOURCE6} $RPM_BUILD_ROOT%{_unitdir}/%{?scl_prefix}php-fpm.service
%if 0%{?fedora} >= 27 || 0%{?rhel} >= 8
install -Dm 644 %{SOURCE12} $RPM_BUILD_ROOT%{_unitdir}/httpd.service.d/%{?scl_prefix}php-fpm.conf
install -Dm 644 %{SOURCE12} $RPM_BUILD_ROOT%{_unitdir}/nginx.service.d/%{?scl_prefix}php-fpm.conf
sed -e 's/php-fpm/%{?scl_prefix}php-fpm/' -i $RPM_BUILD_ROOT%{_unitdir}/*.service.d/%{?scl_prefix}php-fpm.conf
%endif
sed -e 's:/run:%{_localstatedir}/run:' \
-e 's:/etc/sysconfig:%{_sysconfdir}/sysconfig:' \
-e 's:php-fpm.service:%{?scl_prefix}php-fpm.service:' \
-e 's:/usr/sbin:%{_sbindir}:' \
-i $RPM_BUILD_ROOT%{_unitdir}/%{?scl_prefix}php-fpm.service
# this folder requires systemd >= 204
install -m 755 -d $RPM_BUILD_ROOT%{_root_sysconfdir}/systemd/system/%{?scl_prefix}php-fpm.service.d
%else
install -m 755 -d $RPM_BUILD_ROOT%{_initrddir}
install -Dm 755 %{SOURCE13} $RPM_BUILD_ROOT%{_initrddir}/%{?scl_prefix}php-fpm
sed -e 's:/var/run:%{_localstatedir}/run:' \
-e 's:/etc/sysconfig/php-fpm:%{_root_sysconfdir}/sysconfig/%{scl_prefix}php-fpm:' \
-e 's:/var/lock:%{_localstatedir}/lock:' \
-e 's:prog="php-fpm":prog="%{?scl_prefix}php-fpm":' \
-e 's:/usr/sbin:%{_sbindir}:' \
-i $RPM_BUILD_ROOT%{_initrddir}/%{?scl_prefix}php-fpm
%endif
%if %{with_httpd2410}
# Switch to UDS
# FPM
sed -e 's@127.0.0.1:9000@%{_localstatedir}/run/php-fpm/www.sock@' \
-e 's@^;listen.acl_users@listen.acl_users@' \
-i $RPM_BUILD_ROOT%{_sysconfdir}/php-fpm.d/www.conf
# Apache
sed -e 's@proxy:fcgi://127.0.0.1:9000@proxy:unix:%{_localstatedir}/run/php-fpm/www.sock|fcgi://localhost@' \
-i $RPM_BUILD_ROOT%{_httpd_confdir}/%{name}.conf
%endif
# LogRotate
install -m 755 -d $RPM_BUILD_ROOT%{_root_sysconfdir}/logrotate.d
install -m 644 %{SOURCE7} $RPM_BUILD_ROOT%{_root_sysconfdir}/logrotate.d/%{?scl_prefix}php-fpm
sed -e 's:/run:%{_localstatedir}/run:' \
-e 's:/var/log:%{_localstatedir}/log:' \
-i $RPM_BUILD_ROOT%{_root_sysconfdir}/logrotate.d/%{?scl_prefix}php-fpm
# Environment file
%if 0%{?fedora} >= 26 || 0%{?rhel} >= 8
sed -e '/EnvironmentFile/d' -i $RPM_BUILD_ROOT%{_unitdir}/%{?scl_prefix}php-fpm.service
%else
install -m 755 -d $RPM_BUILD_ROOT%{_root_sysconfdir}/sysconfig
install -m 644 %{SOURCE8} $RPM_BUILD_ROOT%{_root_sysconfdir}/sysconfig/%{scl_prefix}php-fpm
sed -e 's:php-fpm.service:%{?scl_prefix}php-fpm.service:' \
-i $RPM_BUILD_ROOT%{_root_sysconfdir}/sysconfig/%{scl_prefix}php-fpm
%endif
# make the cli commands available in standard root for SCL build
%if 0%{?scl:1}
install -m 755 -d $RPM_BUILD_ROOT%{_root_bindir}
ln -s %{_bindir}/php $RPM_BUILD_ROOT%{_root_bindir}/%{scl}
ln -s %{_bindir}/php-cgi $RPM_BUILD_ROOT%{_root_bindir}/%{scl}-cgi
ln -s %{_bindir}/phar.phar $RPM_BUILD_ROOT%{_root_bindir}/%{scl_prefix}phar
ln -s %{_bindir}/phpdbg $RPM_BUILD_ROOT%{_root_bindir}/%{scl_prefix}phpdbg
%if %{with lsws}
ln -s %{_bindir}/lsphp $RPM_BUILD_ROOT%{_root_bindir}/ls%{scl}
%endif
%endif
TESTCMD="$RPM_BUILD_ROOT%{_bindir}/php --no-php-ini"
# Ensure all provided extensions are really there
for mod in core date filter hash json libxml openssl pcntl pcre readline reflection session spl standard zlib
do
$TESTCMD --modules | grep -i "$mod\$"
done
TESTCMD="$TESTCMD --define extension_dir=$RPM_BUILD_ROOT%{_libdir}/php/modules"
# Generate files lists and stub .ini files for each subpackage
for mod in pgsql odbc ldap snmp \
mysqlnd mysqli \
%if %{with imap}
imap \
%endif
mbstring gd dom xsl soap bcmath dba \
simplexml bz2 calendar ctype exif ftp gettext gmp iconv \
sockets tokenizer opcache \
pdo \
%if %{with sqlite3}
sqlite3 \
%endif
%if %{with enchant}
enchant \
%endif
ffi \
phar fileinfo intl \
%if %{with tidy}
tidy \
%endif
%if %{with zip}
zip \
%endif
sodium \
pspell curl xml \
posix shmop sysvshm sysvsem sysvmsg \
pdo_mysql pdo_pgsql pdo_odbc pdo_sqlite \
%if %{with oci8}
oci8 pdo_oci \
%endif
%if %{with firebird}
pdo_firebird \
%endif
%if %{with freetds}
pdo_dblib \
%endif
xmlreader xmlwriter
do
# for extension load order
case $mod in
opcache)
# Zend extensions
TESTCMD="$TESTCMD --define zend_extension=$mod"
ini=10-${mod}.ini;;
pdo_*|mysqli|xmlreader)
# Extensions with dependencies on 20-*
TESTCMD="$TESTCMD --define extension=$mod"
ini=30-${mod}.ini;;
*)
TESTCMD="$TESTCMD --define extension=$mod"
# Extensions with no dependency
ini=20-${mod}.ini;;
esac
$TESTCMD --modules | grep -i "$mod\$"
# some extensions have their own config file
if [ -f ${ini} ]; then
cp -p ${ini} $RPM_BUILD_ROOT%{_sysconfdir}/php.d/${ini}
else
cat > $RPM_BUILD_ROOT%{_sysconfdir}/php.d/${ini} <<EOF
; Enable ${mod} extension module
extension=${mod}
EOF
fi
cat > files.${mod} <<EOF
%{_libdir}/php/modules/${mod}.so
%config(noreplace) %{_sysconfdir}/php.d/${ini}
EOF
done
# The dom, xsl and xml* modules are all packaged in php-xml
cat files.dom files.xsl files.xml{reader,writer} \
files.simplexml >> files.xml
# mysqlnd
cat files.mysqli \
files.pdo_mysql \
>> files.mysqlnd
# Split out the PDO modules
cat files.pdo_pgsql >> files.pgsql
cat files.pdo_odbc >> files.odbc
%if %{with oci8}
cat files.pdo_oci >> files.oci8
%endif
# sysv* and posix in packaged in php-process
cat files.shmop files.sysv* files.posix > files.process
# Package sqlite3 and pdo_sqlite with pdo; isolating the sqlite dependency
# isn't useful at this time since rpm itself requires sqlite.
cat files.pdo_sqlite >> files.pdo
%if %{with sqlite3}
cat files.sqlite3 >> files.pdo
%endif
# Package curl, phar and fileinfo in -common.
cat files.curl files.phar files.fileinfo \
files.exif files.gettext files.iconv files.calendar \
files.ftp files.bz2 files.ctype files.sockets \
files.tokenizer > files.common
# The default Zend OPcache blacklist file
install -m 644 opcache-default.blacklist $RPM_BUILD_ROOT%{_sysconfdir}/php.d/opcache-default.blacklist
# Install the macros file:
install -m 644 -D macros.php \
$RPM_BUILD_ROOT%{macrosdir}/macros.%{name}
# Remove unpackaged files
rm -rf $RPM_BUILD_ROOT%{_libdir}/php/modules/*.a \
$RPM_BUILD_ROOT%{_bindir}/{phptar} \
$RPM_BUILD_ROOT%{_datadir}/pear \
$RPM_BUILD_ROOT%{_libdir}/libphp.a \
$RPM_BUILD_ROOT%{_libdir}/libphp.la
# Remove irrelevant docs
rm -f README.{Zeus,QNX,CVS-RULES}
%if ! %{with_httpd2410}
%pre fpm
# Add the "apache" user (to avoid pulling httpd in our dep)
getent group apache >/dev/null || \
groupadd -g 48 -r apache
getent passwd apache >/dev/null || \
useradd -r -u 48 -g apache -s /sbin/nologin \
-d %{_httpd_contentdir} -c "Apache" apache
exit 0
%endif
%post fpm
%if 0%{?rhel} >= 7
%systemd_post %{?scl:%{scl}-}php-fpm.service
%endif
%preun fpm
%if 0%{?rhel} >= 7
%systemd_preun %{?scl:%{scl}-}php-fpm.service
%else
if [ $1 = 0 ]; then
# Package removal, not upgrade
/sbin/service %{?scl_prefix}php-fpm stop >/dev/null 2>&1
/sbin/chkconfig --del %{?scl_prefix}php-fpm
fi
%endif
%if 0%{?fedora} < 27 && 0%{?rhel} < 8
%postun fpm
%if 0%{?rhel} >= 7
%systemd_postun_with_restart %{?scl:%{scl}-}php-fpm.service
%else
if [ $1 -ge 1 ]; then
/sbin/service %{?scl_prefix}php-fpm condrestart >/dev/null 2>&1 || :
fi
%endif
%endif
%if 0%{?fedora} >= 27 || 0%{?rhel} >= 8
# Raised by new pool installation or new extension installation
%transfiletriggerin fpm -- %{_sysconfdir}/php-fpm.d %{_sysconfdir}/php.d
systemctl try-restart %{?scl:%{scl}-}php-fpm.service >/dev/null 2>&1 || :
%endif
# Handle upgrading from SysV initscript to native systemd unit.
# We can tell if a SysV version of php-fpm was previously installed by
# checking to see if the initscript is present.
%if 0%{?rhel} >= 7
%triggerun fpm -- %{?scl_prefix}php-fpm
if [ -f /etc/rc.d/init.d/%{?scl_prefix}php-fpm ]; then
# Save the current service runlevel info
# User must manually run systemd-sysv-convert --apply php-fpm
# to migrate them to systemd targets
/usr/bin/systemd-sysv-convert --save %{?scl_prefix}php-fpm >/dev/null 2>&1 || :
# Run these because the SysV package being removed won't do them
/sbin/chkconfig --del %{?scl_prefix}php-fpm >/dev/null 2>&1 || :
/bin/systemctl try-restart %{?scl_prefix}php-fpm.service >/dev/null 2>&1 || :
fi
%endif
%if 0%{?fedora} < 28 && 0%{?rhel} < 8
%post embedded -p /sbin/ldconfig
%postun embedded -p /sbin/ldconfig
%endif
%{!?_licensedir:%global license %%doc}
%files
%{_httpd_moddir}/libphp.so
%if 0%{?scl:1}
%dir %{_libdir}/httpd
%dir %{_libdir}/httpd/modules
%{_root_httpd_moddir}/lib%{scl}.so
%endif
%attr(0770,root,apache) %dir %{_localstatedir}/lib/php/session
%attr(0770,root,apache) %dir %{_localstatedir}/lib/php/wsdlcache
%attr(0770,root,apache) %dir %{_localstatedir}/lib/php/opcache
%config(noreplace) %{_httpd_confdir}/%{name}.conf
%config(noreplace) %{_httpd_modconfdir}/20-%{name}.conf
%files common -f files.common
%doc EXTENSIONS NEWS UPGRADING* README.REDIST.BINS *md docs
%license LICENSE TSRM_LICENSE ZEND_LICENSE BOOST_LICENSE
%license timelib_LICENSE
%doc php.ini-*
%config(noreplace) %{_sysconfdir}/php.ini
%dir %{_sysconfdir}/php.d
%dir %{_libdir}/php
%dir %{_libdir}/php/modules
%dir %{_localstatedir}/lib/php
%dir %{_datadir}/php
%if 0%{?fedora} >= 24 || 0%{?rhel} >= 8
%dir %{_localstatedir}/lib/php/peclxml
%dir %{_docdir}/pecl
%dir %{_datadir}/tests
%dir %{_datadir}/tests/pecl
%endif
%files cli
%{_bindir}/php
%{_bindir}/php-cgi
%{_bindir}/phar.phar
%{_bindir}/phar
# provides phpize here (not in -devel) for pecl command
%{_bindir}/phpize
%{_mandir}/man1/php.1*
%{_mandir}/man1/php-cgi.1*
%{_mandir}/man1/phar.1*
%{_mandir}/man1/phar.phar.1*
%{_mandir}/man1/phpize.1*
%if 0%{?scl:1}
%{_root_bindir}/%{scl}
%{_root_bindir}/%{scl}-cgi
%{_root_bindir}/%{scl_prefix}phar
%endif
%files dbg
%{_bindir}/phpdbg
%{_mandir}/man1/phpdbg.1*
%doc sapi/phpdbg/CREDITS
%if 0%{?scl:1}
%{_root_bindir}/%{scl_prefix}phpdbg
%endif
%files fpm
%doc php-fpm.conf.default www.conf.default
%license fpm_LICENSE
%attr(0770,root,apache) %dir %{_localstatedir}/lib/php/session
%attr(0770,root,apache) %dir %{_localstatedir}/lib/php/wsdlcache
%attr(0770,root,apache) %dir %{_localstatedir}/lib/php/opcache
%attr(0770,root,apache) %dir %{_localstatedir}/lock/subsys
%if %{with_httpd2410}
%config(noreplace) %{_httpd_confdir}/%{name}.conf
%endif
%config(noreplace) %{_sysconfdir}/php-fpm.conf
%config(noreplace) %{_sysconfdir}/php-fpm.d/www.conf
%config(noreplace) %{_root_sysconfdir}/logrotate.d/%{?scl_prefix}php-fpm
%if 0%{?fedora} < 26 && 0%{?rhel} < 8
%config(noreplace) %{_root_sysconfdir}/sysconfig/%{scl_prefix}php-fpm
%endif
%if 0%{?rhel} >= 7
# {_prefix}/lib/tmpfiles.d/php-fpm.conf
%{_unitdir}/%{?scl_prefix}php-fpm.service
%dir %{_root_sysconfdir}/systemd/system/%{?scl_prefix}php-fpm.service.d
%if 0%{?fedora} >= 27 || 0%{?rhel} >= 8
%{_unitdir}/httpd.service.d/%{?scl_prefix}php-fpm.conf
%{_unitdir}/nginx.service.d/%{?scl_prefix}php-fpm.conf
%endif
%else
%{_initrddir}/%{?scl_prefix}php-fpm
%endif
%{_sbindir}/php-fpm
%dir %{_sysconfdir}/php-fpm.d
# log owned by apache for log
%attr(770,apache,root) %dir %{_localstatedir}/log/php-fpm
%dir %{_localstatedir}/run/php-fpm
%{_mandir}/man8/php-fpm.8*
%dir %{_datadir}/fpm
%{_datadir}/fpm/status.html
%if %{with lsws}
%files litespeed
%{_bindir}/lsphp
%if 0%{?scl:1}
%{_root_bindir}/ls%{scl}
%endif
%endif
%files embedded
%{_libdir}/libphp.so
%{_libdir}/libphp-%{embed_version}.so
%files devel
%{_bindir}/php-config
%{_includedir}/php
%{_libdir}/php/build
%{_mandir}/man1/php-config.1*
%{macrosdir}/macros.%{name}
%files pgsql -f files.pgsql
%files odbc -f files.odbc
%if %{with imap}
%files imap -f files.imap
%endif
%files ldap -f files.ldap
%files snmp -f files.snmp
%files xml -f files.xml
%files mbstring -f files.mbstring
%license libmbfl_LICENSE
%files gd -f files.gd
%files soap -f files.soap
%files bcmath -f files.bcmath
%license libbcmath_LICENSE
%files gmp -f files.gmp
%files dba -f files.dba
%files pdo -f files.pdo
%if %{with tidy}
%files tidy -f files.tidy
%endif
%if %{with freetds}
%files pdo-dblib -f files.pdo_dblib
%endif
%files pspell -f files.pspell
%files intl -f files.intl
%files process -f files.process
%if %{with firebird}
%files pdo-firebird -f files.pdo_firebird
%endif
%if %{with enchant}
%files enchant -f files.enchant
%endif
%files mysqlnd -f files.mysqlnd
%files opcache -f files.opcache
%config(noreplace) %{_sysconfdir}/php.d/opcache-default.blacklist
%if %{with oci8}
%files oci8 -f files.oci8
%endif
%if %{with zip}
%files zip -f files.zip
%endif
%files sodium -f files.sodium
%files ffi -f files.ffi
%dir %{_datadir}/php/preload
%changelog
* Thu Apr 11 2024 Raven <raven@sysadmins.ws> - 8.3.6-1
- update to 8.3.6
* Thu Mar 21 2024 Raven <raven@sysadmins.ws> - 8.3.4-1
- update to 8.3.4
* Wed Feb 28 2024 Raven <raven@sysadmins.ws> - 8.3.3-1
- update to 8.3.3
* Mon Jan 22 2024 Raven <raven@sysadmins.ws> - 8.3.2-1
- initial release