You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
602 lines
16 KiB
602 lines
16 KiB
## |
|
## php-fpm.spec -- OpenPKG RPM Package Specification |
|
## Copyright (c) 2000-2022 OpenPKG Project <http://openpkg.org/> |
|
## |
|
## Permission to use, copy, modify, and distribute this software for |
|
## any purpose with or without fee is hereby granted, provided that |
|
## the above copyright notice and this permission notice appear in all |
|
## copies. |
|
## |
|
## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED |
|
## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF |
|
## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. |
|
## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR |
|
## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
|
## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
|
## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF |
|
## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND |
|
## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, |
|
## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT |
|
## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
|
## SUCH DAMAGE. |
|
## |
|
|
|
# package information |
|
Name: php-fpm |
|
Summary: Standalone PHP FastCGI Process Manager (FPM) |
|
URL: http://www.php.net/ |
|
Vendor: The PHP Project |
|
Packager: OpenPKG Project |
|
Distribution: OpenPKG Community |
|
Class: BASE |
|
Group: Web |
|
License: PHP |
|
Version: 8.1.1 |
|
Release: 20211218 |
|
|
|
# package options |
|
%option with_bc no |
|
%option with_bdb no |
|
%option with_bzip2 no |
|
%option with_calendar no |
|
%option with_ctype no |
|
%option with_curl no |
|
%option with_debug no |
|
%option with_dom no |
|
%option with_exif no |
|
%option with_fileinfo no |
|
%option with_freetype no |
|
%option with_ftp no |
|
%option with_gd no |
|
%option with_gdbm no |
|
%option with_gettext no |
|
%option with_gmp no |
|
%option with_iconv no |
|
%option with_imap no |
|
%option with_intl no |
|
%option with_tokenizer no |
|
%option with_mbregex no |
|
%option with_mbstring no |
|
%option with_mcrypt no |
|
%option with_mhash no |
|
%option with_mm no |
|
%option with_mysql no |
|
%option with_oci8 no |
|
%option with_odbc no |
|
%option with_opcache no |
|
%option with_openldap no |
|
%option with_openldapsasl no |
|
%option with_pear no |
|
%option with_pgsql no |
|
%option with_phar no |
|
%option with_posix no |
|
%option with_sendmail no |
|
%option with_session no |
|
%option with_simplexml no |
|
%option with_snmp no |
|
%option with_soap no |
|
%option with_sockets no |
|
%option with_sqlite no |
|
%option with_ssl no |
|
%option with_tidy no |
|
%option with_versioning no |
|
%option with_wddx no |
|
%option with_xml no |
|
%option with_xslt no |
|
%option with_zlib no |
|
%option with_zip no |
|
%option with_pcntl no |
|
|
|
# fixing implicit extension dependencies and correlations |
|
%if "%{with_mm}" == "yes" |
|
%undefine with_session |
|
%define with_session yes |
|
%endif |
|
%if "%{with_pear}" == "yes" |
|
%undefine with_xml |
|
%define with_xml yes |
|
%endif |
|
%if "%{with_freetype}" == "yes" |
|
%undefine with_gd |
|
%define with_gd yes |
|
%endif |
|
%if "%{with_gd}" == "yes" || "%{with_dom}" == "yes" || "%{with_zip}" == "yes" |
|
%undefine with_zlib |
|
%define with_zlib yes |
|
%endif |
|
%if "%{with_xslt}" == "yes" |
|
%undefine with_dom |
|
%define with_dom yes |
|
%endif |
|
%if "%{with_dom}" == "yes" |
|
%undefine with_xml |
|
%define with_xml yes |
|
%endif |
|
%if "%{with_soap}" == "yes" |
|
%undefine with_xml |
|
%define with_xml yes |
|
%endif |
|
%if "%{with_pgsql}" == "yes" |
|
%undefine with_ssl |
|
%define with_ssl yes |
|
%endif |
|
|
|
# list of sources |
|
Source0: https://www.php.net/distributions/php-%{version}.tar.xz |
|
Source1: php-fpm.conf |
|
Source2: php-fpm.ini |
|
Source3: rc.php-fpm |
|
Patch0: php-fpm.patch |
|
|
|
# build information |
|
BuildPreReq: OpenPKG, openpkg >= 20160101, gcc, flex, bison |
|
PreReq: OpenPKG, openpkg >= 20160101 |
|
BuildPreReq: pcre2 |
|
PreReq: pcre2 |
|
%if "%{with_sqlite}" == "yes" |
|
BuildPreReq: sqlite |
|
PreReq: sqlite |
|
%endif |
|
%if "%{with_pgsql}" == "yes" |
|
BuildPreReq: postgresql |
|
PreReq: postgresql |
|
%endif |
|
%if "%{with_gd}" == "yes" |
|
BuildPreReq: gd >= 2.0.20, jpeg, png |
|
PreReq: gd >= 2.0.20, jpeg, png |
|
%endif |
|
%if "%{with_bdb}" == "yes" |
|
BuildPreReq: db |
|
PreReq: db |
|
%endif |
|
%if "%{with_zlib}" == "yes" |
|
BuildPreReq: zlib |
|
PreReq: zlib |
|
%endif |
|
%if "%{with_zip}" == "yes" |
|
BuildPreReq: libzip, pkgconfig |
|
PreReq: libzip |
|
%endif |
|
%if "%{with_bzip2}" == "yes" |
|
BuildPreReq: bzip2 |
|
PreReq: bzip2 |
|
%endif |
|
%if "%{with_ssl}" == "yes" |
|
BuildPreReq: openssl |
|
PreReq: openssl |
|
%endif |
|
%if "%{with_openldap}" == "yes" |
|
BuildPreReq: openldap |
|
PreReq: openldap |
|
%if "%{with_openldapsasl}" == "yes" |
|
BuildPreReq: openldap::with_sasl = yes |
|
PreReq: openldap::with_sasl = yes |
|
%else |
|
BuildPreReq: openldap::with_sasl = no |
|
PreReq: openldap::with_sasl = no |
|
%endif |
|
%endif |
|
%if "%{with_mm}" == "yes" |
|
BuildPreReq: mm |
|
PreReq: mm |
|
%endif |
|
%if "%{with_freetype}" == "yes" |
|
BuildPreReq: freetype, pkgconfig |
|
PreReq: freetype |
|
%endif |
|
%if "%{with_gettext}" == "yes" |
|
BuildPreReq: gettext, libiconv |
|
PreReq: gettext, libiconv |
|
%endif |
|
%if "%{with_iconv}" == "yes" |
|
BuildPreReq: libiconv |
|
PreReq: libiconv |
|
%endif |
|
%if "%{with_imap}" == "yes" |
|
BuildPreReq: imap, openssl |
|
PreReq: imap, openssl |
|
%endif |
|
%if "%{with_intl}" == "yes" |
|
BuildPreReq: icu |
|
PreReq: icu |
|
%endif |
|
%if "%{with_xml}" == "yes" |
|
BuildPreReq: libxml |
|
PreReq: libxml |
|
%endif |
|
%if "%{with_xslt}" == "yes" |
|
BuildPreReq: libxslt |
|
PreReq: libxslt |
|
%endif |
|
%if "%{with_dom}" == "yes" |
|
BuildPreReq: libxml, libxslt |
|
PreReq: libxml, libxslt |
|
%endif |
|
%if "%{with_curl}" == "yes" |
|
BuildPreReq: curl |
|
PreReq: curl |
|
%endif |
|
%if "%{with_mhash}" == "yes" |
|
BuildPreReq: mhash |
|
PreReq: mhash |
|
%endif |
|
%if "%{with_mcrypt}" == "yes" |
|
BuildPreReq: libmcrypt |
|
PreReq: libmcrypt |
|
%endif |
|
%if "%{with_gdbm}" == "yes" |
|
BuildPreReq: gdbm, gdbm::with_ndbm = yes |
|
PreReq: gdbm, gdbm::with_ndbm = yes |
|
%endif |
|
%if "%{with_oci8}" == "yes" |
|
BuildPreReq: oracle |
|
PreReq: oracle |
|
%endif |
|
%if "%{with_snmp}" == "yes" |
|
BuildPreReq: snmp |
|
PreReq: snmp |
|
%endif |
|
%if "%{with_odbc}" == "yes" |
|
BuildPreReq: unixodbc |
|
PreReq: unixodbc |
|
%endif |
|
%if "%{with_sendmail}" == "yes" |
|
BuildPreReq: MTA |
|
PreReq: MTA |
|
%endif |
|
%if "%{with_simplexml}" == "yes" |
|
BuildPreReq: libxml |
|
PreReq: libxml |
|
%endif |
|
%if "%{with_tidy}" == "yes" |
|
BuildPreReq: tidy |
|
PreReq: tidy |
|
%endif |
|
%if "%{with_gmp}" == "yes" |
|
BuildPreReq: gmp |
|
PreReq: gmp |
|
%endif |
|
|
|
%description |
|
PHP is an HTML-embedded scripting language. Much of its syntax is |
|
borrowed from C, Java and Perl with a couple of unique PHP-specific |
|
features thrown in. The goal of the language is to allow web |
|
developers to write dynamically generated pages quickly. |
|
|
|
This package provides a Dynamic Shared Object (DSO) for the Apache |
|
HTTP 2.2 web server. In general speaking, this module is also known |
|
as mod_php. |
|
|
|
%track |
|
prog php-fpm = { |
|
version = %{version} |
|
url = https://www.php.net/downloads.php |
|
regex = php-(\d+\.\d+\.\d+)\.tar\.xz |
|
} |
|
|
|
%prep |
|
%setup -q -n php-%{version} |
|
%patch -p0 |
|
|
|
%build |
|
# configure package |
|
case "%{l_platform -t}" in |
|
*-sunos5.10 ) cflags="%{l_cflags}" ;; |
|
* ) cflags="%{l_cflags -O}" ;; |
|
esac |
|
cppflags="%{l_cppflags}" |
|
ldflags="%{l_ldflags}" |
|
libs="" |
|
%if "%{with_freetype}" == "yes" |
|
cppflags="%{l_cppflags freetype .} $cppflags" |
|
%endif |
|
%if "%{with_gdbm}" == "yes" |
|
libs="$libs -lndbm -lgdbm" |
|
%endif |
|
%if "%{with_gd}" == "yes" |
|
libs="$libs -lpng -lz" |
|
%endif |
|
%if "%{with_gettext}" == "yes" |
|
libs="$libs -liconv" |
|
%endif |
|
%if "%{with_openldap}" == "yes" && "%{with_openldapsasl}" == "yes" |
|
libs="$libs -lsasl2" |
|
%endif |
|
%if "%{with_imap}" == "yes" |
|
libs="$libs -lssl -lcrypto" |
|
%endif |
|
%if "%{with_intl}" == "yes" |
|
cppflags="%{l_cppflags icu .} $cppflags" |
|
%endif |
|
%if "%{with_bdb}" == "yes" |
|
libs="$libs -ldb" |
|
%endif |
|
%if "%{with_pgsql}" == "yes" |
|
libs="$libs `pg_config --libs`" |
|
%endif |
|
%if "%{with_oci8}" == "yes" |
|
ORACLE_HOME="`%{l_rc} --query oracle_home`" |
|
export ORACLE_HOME |
|
%endif |
|
%if "%{with_zip}" == "yes" |
|
libs="$libs `pkg-config libzip --libs`" |
|
%endif |
|
CC="%{l_cc}" \ |
|
CFLAGS="$cflags" \ |
|
CPPFLAGS="$cppflags" \ |
|
LDFLAGS="$ldflags" \ |
|
LIBS="$libs" \ |
|
%if "%{with_sendmail}" == "yes" |
|
PROG_SENDMAIL="%{l_prefix}/sbin/sendmail" \ |
|
%else |
|
PROG_SENDMAIL="`%{l_shtool} path false`" \ |
|
%endif |
|
./configure \ |
|
--prefix=%{l_prefix} \ |
|
--sysconfdir=%{l_prefix}/etc/php-fpm \ |
|
--localstatedir=%{l_prefix}/var/php-fpm \ |
|
--with-config-file-path=%{l_prefix}/etc/php-fpm \ |
|
--libdir=%{l_prefix}/lib/php \ |
|
--mandir=%{l_prefix}/man \ |
|
--disable-all \ |
|
--enable-pdo \ |
|
--enable-filter \ |
|
--with-external-pcre \ |
|
%if "%{with_fileinfo}" == "yes" |
|
--enable-fileinfo \ |
|
%endif |
|
%if "%{with_calendar}" == "yes" |
|
--enable-calendar \ |
|
%endif |
|
%if "%{with_sqlite}" == "yes" |
|
--with-sqlite3=%{l_prefix} \ |
|
--with-pdo-sqlite=%{l_prefix} \ |
|
%else |
|
--without-pdo-sqlite \ |
|
%endif |
|
%if "%{with_mysql}" == "yes" |
|
--with-mysqli=mysqlnd \ |
|
--with-pdo-mysql=mysqlnd \ |
|
--with-mysql-sock=%{l_prefix}/var/mysql/run/mysqld.sock \ |
|
%else |
|
--without-mysqli \ |
|
--without-pdo-mysql \ |
|
%endif |
|
%if "%{with_pgsql}" == "yes" |
|
--with-pgsql=%{l_prefix} \ |
|
--with-pdo-pgsql=%{l_prefix} \ |
|
%else |
|
--without-pgsql \ |
|
%endif |
|
%if "%{with_posix}" == "yes" |
|
--enable-posix \ |
|
%endif |
|
%if "%{with_gd}" == "yes" |
|
--with-gd=yes \ |
|
--with-jpeg-dir=%{l_prefix} \ |
|
--with-png-dir=%{l_prefix} \ |
|
%endif |
|
%if "%{with_gmp}" == "yes" |
|
--with-gmp=%{l_prefix} \ |
|
%endif |
|
%if "%{with_freetype}" == "yes" |
|
--with-freetype-dir=%{l_prefix} \ |
|
%endif |
|
%if "%{with_bdb}" == "yes" |
|
--with-db4=%{l_prefix} \ |
|
%endif |
|
%if "%{with_debug}" == "yes" |
|
--enable-debug \ |
|
%else |
|
--disable-debug \ |
|
%endif |
|
%if "%{with_zlib}" == "yes" |
|
--with-zlib=%{l_prefix} \ |
|
--with-zlib-dir=%{l_prefix} \ |
|
%endif |
|
%if "%{with_bzip2}" == "yes" |
|
--with-bz2=%{l_prefix} \ |
|
%endif |
|
%if "%{with_ssl}" == "yes" || "%{with_openldap}" == "yes" |
|
--with-openssl=%{l_prefix} \ |
|
%endif |
|
%if "%{with_openldap}" == "yes" |
|
--with-ldap=%{l_prefix} \ |
|
%endif |
|
%if "%{with_session}" == "yes" |
|
--enable-session \ |
|
%endif |
|
%if "%{with_mm}" == "yes" |
|
--with-mm=%{l_prefix} \ |
|
%endif |
|
%if "%{with_ftp}" == "yes" |
|
--enable-ftp \ |
|
%endif |
|
%if "%{with_oci8}" == "yes" |
|
--with-oci8 \ |
|
%endif |
|
%if "%{with_gettext}" == "yes" |
|
--with-gettext=%{l_prefix} \ |
|
%endif |
|
%if "%{with_imap}" == "yes" |
|
--with-imap=%{l_prefix} \ |
|
--with-imap-ssl=%{l_prefix} \ |
|
%endif |
|
%if "%{with_intl}" == "yes" |
|
--enable-intl \ |
|
--with-icu-dir=%{l_prefix} \ |
|
%endif |
|
%if "%{with_tokenizer}" == "yes" |
|
--enable-tokenizer \ |
|
%else |
|
--disable-tokenizer \ |
|
%endif |
|
%if "%{with_xml}" == "yes" |
|
--enable-xml \ |
|
--enable-xmlreader \ |
|
--enable-xmlwriter \ |
|
--with-libxml \ |
|
%else |
|
--disable-xml \ |
|
%endif |
|
%if "%{with_xslt}" == "yes" |
|
--with-xsl \ |
|
%else |
|
--without-xsl \ |
|
%endif |
|
%if "%{with_dom}" == "yes" |
|
--enable-dom \ |
|
%else |
|
--disable-dom \ |
|
%endif |
|
%if "%{with_wddx}" == "yes" |
|
--enable-wddx \ |
|
%endif |
|
%if "%{with_soap}" == "yes" |
|
--enable-soap \ |
|
%endif |
|
%if "%{with_bc}" == "yes" |
|
--enable-bcmath \ |
|
%endif |
|
%if "%{with_mhash}" == "yes" |
|
--with-mhash=%{l_prefix} \ |
|
%endif |
|
%if "%{with_mcrypt}" == "yes" |
|
--with-mcrypt=%{l_prefix} \ |
|
%endif |
|
%if "%{with_ctype}" == "yes" |
|
--enable-ctype \ |
|
%endif |
|
%if "%{with_curl}" == "yes" |
|
--with-curl=%{l_prefix} \ |
|
%endif |
|
%if "%{with_gdbm}" == "yes" |
|
--with-gdbm=%{l_prefix} \ |
|
%endif |
|
%if "%{with_versioning}" == "yes" |
|
--enable-versioning \ |
|
%endif |
|
%if "%{with_pear}" == "yes" |
|
--with-pear=%{l_prefix}/lib/php \ |
|
%else |
|
--without-pear \ |
|
%endif |
|
%if "%{with_phar}" == "yes" |
|
--enable-phar \ |
|
%else |
|
--disable-phar \ |
|
%endif |
|
%if "%{with_sockets}" == "yes" |
|
--enable-sockets \ |
|
%endif |
|
%if "%{with_simplexml}" == "yes" |
|
--enable-simplexml \ |
|
--with-libxml \ |
|
%else |
|
--disable-simplexml \ |
|
%endif |
|
%if "%{with_snmp}" == "yes" |
|
--with-snmp=%{l_prefix} \ |
|
--with-openssl-dir=%{l_prefix} \ |
|
%endif |
|
%if "%{with_odbc}" == "yes" |
|
--with-unixODBC=%{l_prefix} \ |
|
--with-pdo-odbc=unixODBC,%{l_prefix} \ |
|
%endif |
|
%if "%{with_mbregex}" == "yes" |
|
--enable-mbregex \ |
|
%endif |
|
%if "%{with_mbstring}" == "yes" |
|
--enable-mbstring \ |
|
%endif |
|
%if "%{with_exif}" == "yes" |
|
--enable-exif \ |
|
%endif |
|
%if "%{with_iconv}" == "yes" |
|
--with-iconv=%{l_prefix} \ |
|
%endif |
|
%if "%{with_tidy}" == "yes" |
|
--with-tidy=%{l_prefix} \ |
|
%else |
|
--without-tidy \ |
|
%endif |
|
%if "%{with_zip}" == "yes" |
|
--with-zip \ |
|
%else |
|
--without-zip \ |
|
%endif |
|
%if "%{with_opcache}" == "yes" |
|
--enable-opcache \ |
|
%endif |
|
%if "%{with_pcntl}" == "yes" |
|
--enable-pcntl \ |
|
%endif |
|
--enable-fpm \ |
|
--with-fpm-user=%{l_nusr} \ |
|
--with-fpm-group=%{l_ngrp} \ |
|
--disable-cli \ |
|
--disable-cgi |
|
|
|
# build package |
|
%{l_make} %{l_mflags} |
|
|
|
%install |
|
# install package (seems to do nothing for php-fpm case) |
|
%{l_make} %{l_mflags} install-sapi INSTALL_ROOT=$RPM_BUILD_ROOT |
|
|
|
# install PHP-FPM |
|
%{l_shtool} mkdir -f -p -m 755 \ |
|
$RPM_BUILD_ROOT%{l_prefix}/sbin \ |
|
$RPM_BUILD_ROOT%{l_prefix}/man/man8 |
|
%{l_shtool} install -c -s -m 755 \ |
|
sapi/fpm/php-fpm $RPM_BUILD_ROOT%{l_prefix}/sbin/ |
|
%{l_shtool} install -c -m 644 \ |
|
sapi/fpm/php-fpm.8 $RPM_BUILD_ROOT%{l_prefix}/man/man8/ |
|
|
|
# install run-command script |
|
%{l_shtool} mkdir -f -p -m 755 \ |
|
$RPM_BUILD_ROOT%{l_prefix}/etc/rc.d |
|
%{l_shtool} install -c -m 644 %{l_value -s -a} \ |
|
%{SOURCE rc.php-fpm} \ |
|
$RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/ |
|
|
|
# install default configuration file |
|
%{l_shtool} mkdir -f -p -m 755 \ |
|
$RPM_BUILD_ROOT%{l_prefix}/etc/php-fpm \ |
|
$RPM_BUILD_ROOT%{l_prefix}/etc/php-fpm/php-fpm.d |
|
%{l_shtool} install -c -m 644 %{l_value -s -a} \ |
|
%{SOURCE php-fpm.conf} \ |
|
$RPM_BUILD_ROOT%{l_prefix}/etc/php-fpm/ |
|
%{l_shtool} install -c -m 644 %{l_value -s -a} \ |
|
%{SOURCE php-fpm.ini} \ |
|
$RPM_BUILD_ROOT%{l_prefix}/etc/php-fpm/ |
|
|
|
# create run-time directories |
|
%{l_shtool} mkdir -f -p -m 755 \ |
|
$RPM_BUILD_ROOT%{l_prefix}/var/php-fpm/run \ |
|
$RPM_BUILD_ROOT%{l_prefix}/var/php-fpm/log |
|
%if "%{with_session}" == "yes" |
|
%{l_shtool} mkdir -f -p -m 755 \ |
|
$RPM_BUILD_ROOT%{l_prefix}/var/php-fpm/run/php-fpm.session |
|
%endif |
|
|
|
# determine installation files |
|
%{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std} \ |
|
'%attr(-,%{l_nusr},%{l_ngrp}) %{l_prefix}/var/php-fpm/*' \ |
|
%if "%{with_session}" == "yes" |
|
'%attr(0750,%{l_nusr},%{l_ngrp}) %{l_prefix}/var/php-fpm/run/php-fpm.session' \ |
|
%endif |
|
'%config %{l_prefix}/etc/php-fpm/php-fpm.ini' \ |
|
'%config %{l_prefix}/etc/php-fpm/php-fpm.conf' |
|
|
|
%files -f files |
|
|
|
%clean |
|
|
|
%post |
|
# after upgrade, restart service |
|
[ $1 -eq 2 ] || exit 0 |
|
eval `%{l_rc} php-fpm status 2>/dev/null` |
|
[ ".$php_fpm_active" = .yes ] && %{l_rc} php-fpm restart |
|
exit 0 |
|
|
|
|