1954 lines
62 KiB
RPMSpec
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
|