jobextra/php7/PKGBUILD

352 lines
10 KiB
Bash

#!/usr/bin/bash
# JOBoRun : Jwm OpenBox Obarun RUNit
# Maintainer : Joe Bo Run <joborun@disroot.org>
# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname"
# Website : https://pozol.eu
#-----------------------------------------| DESCRIPTION |---------------------------------------
pkgbase=php7
pkgname=(php7 php7-cgi php7-apache php7-fpm php7-embed php7-phpdbg php7-dblib php7-enchant
php7-gd php7-imap php7-intl php7-sodium php7-odbc php7-pgsql php7-pspell php7-snmp
php7-sqlite php7-tidy php7-xsl)
pkgver=7.4.33
pkgrel=01
arch=(x86_64)
url='https://www.php.net/'
makedepends=(apache aspell c-client db enchant-pure gd gmp icu libsodium libxslt libzip net-snmp
postgresql-libs sqlite tidy unixodbc curl libtool postfix freetds pcre2 libnsl
oniguruma)
checkdepends=(procps-ng)
#options=(debug) ## uncomment this line to produce the php7-debug pkg
source=("https://php.net/distributions/php-${pkgver}.tar.xz"{,.asc}
'php7-openssl3-eof.patch::https://github.com/php/php-src/commit/74f75db0c3665677ec006cd379fd561feacffdc6.patch'
'php7-openssl3.patch::https://github.com/php/php-src/commit/a0972deb0f441fc7991001cb51efc994b70a3b51.patch'
apache.patch apache.conf php-fpm.tmpfiles php.ini.patch
enchant-2.patch php7.patch)
# systemd patch removed 'php-fpm.patch'
_interpreter=${pkgver%.*}
prepare() {
cd "${srcdir}/php-${pkgver}"
patch -p1 -i "${srcdir}/php7-openssl3.patch"
patch -p1 -i "${srcdir}/php7-openssl3-eof.patch"
patch -p0 -i "${srcdir}/apache.patch"
# patch -p0 -i "${srcdir}/php-fpm.patch"
patch -p0 -i "${srcdir}/php.ini.patch"
patch -p0 -i "${srcdir}/enchant-2.patch"
patch -p0 -i "${srcdir}/php7.patch"
autoconf
rm tests/output/stream_isatty_*.phpt
}
build() {
# http://site.icu-project.org/download/61#TOC-Migration-Issues
CPPFLAGS+=' -DU_USING_ICU_NAMESPACE=1'
local _phpconfig="--srcdir=../php-${pkgver} \
--config-cache \
--prefix=/usr \
--sbindir=/usr/bin \
--sysconfdir=/etc/php7 \
--localstatedir=/var \
--with-layout=GNU \
--with-config-file-path=/etc/php7 \
--with-config-file-scan-dir=/etc/php7/conf.d \
--disable-rpath \
--mandir=/usr/share/man \
--libdir=/usr/lib/php7 \
--datarootdir=/usr/share/php7 \
--datadir=/usr/share/php7 \
--program-suffix=7 \
--includedir=/usr/include/php7 \
--disable-gcc-global-regs \
"
local _phpextensions="\
--enable-bcmath=shared \
--enable-calendar=shared \
--enable-dba=shared \
--enable-exif=shared \
--enable-ftp=shared \
--enable-gd=shared \
--enable-intl=shared \
--enable-mbstring \
--enable-pcntl \
--enable-shmop=shared \
--enable-soap=shared \
--enable-sysvmsg=shared \
--enable-sysvsem=shared \
--enable-sysvshm=shared \
--with-bz2=shared \
--with-curl=shared \
--with-db4=/usr \
--with-enchant=shared \
--with-external-gd \
--with-external-pcre \
--with-ffi=shared \
--with-gdbm \
--with-gettext=shared \
--with-gmp=shared \
--with-iconv=shared \
--with-imap-ssl \
--with-imap=shared \
--with-kerberos \
--with-ldap=shared \
--with-ldap-sasl \
--with-mhash \
--with-mysql-sock=/run/mysqld/mysqld.sock \
--with-mysqli=shared,mysqlnd \
--with-openssl \
--with-password-argon2 \
--with-pdo-dblib=shared,/usr \
--with-pdo-mysql=shared,mysqlnd \
--with-pdo-odbc=shared,unixODBC,/usr \
--with-pdo-pgsql=shared \
--with-pdo-sqlite=shared \
--with-pgsql=shared \
--with-pspell=shared \
--with-readline \
--with-snmp=shared \
--with-sodium=shared \
--with-sqlite3=shared \
--with-tidy=shared \
--with-unixODBC=shared \
--with-xmlrpc=shared \
--with-xsl=shared \
--with-zip=shared \
--with-zlib \
"
EXTENSION_DIR=/usr/lib/php7/modules
export EXTENSION_DIR
mkdir "${srcdir}/build"
cd "${srcdir}/build"
ln -s ../php-${pkgver}/configure
./configure ${_phpconfig} \
--enable-cgi \
--enable-fpm \
--with-fpm-systemd=no \
--with-fpm-acl \
--with-fpm-user=http \
--with-fpm-groups=http \
--enable-embed=shared \
${_phpextensions}
make
# apache
# reuse the previous run; this will save us a lot of time
cp -a "${srcdir}/build" "${srcdir}/build-apache"
cd "${srcdir}/build-apache"
./configure ${_phpconfig} \
--with-apxs2 \
${_phpextensions}
make
# phpdbg
cp -a "${srcdir}/build" "${srcdir}/build-phpdbg"
cd "${srcdir}/build-phpdbg"
./configure ${_phpconfig} \
--enable-phpdbg \
${_phpextensions}
make
}
check() {
cd "${srcdir}/build"
# Check if sendmail was configured correctly (FS#47600)
sapi/cli/php -n -r 'echo ini_get("sendmail_path");' | grep -q '/usr/bin/sendmail'
export REPORT_EXIT_STATUS=1
export NO_INTERACTION=1
export SKIP_ONLINE_TESTS=1
export SKIP_SLOW_TESTS=1
export TEST_PHP_ARGS="-j$(nproc)"
export TESTS='tests Zend'
make test
}
package_php7() {
pkgdesc='A general-purpose scripting language that is especially suited to web development w/o systemd'
depends=('libxml2' 'curl' 'libzip' 'pcre2' 'argon2' 'oniguruma')
provides=(php-interpreter=$_interpreter)
backup=('etc/php7/php.ini')
cd "${srcdir}/build"
make -j1 INSTALL_ROOT="${pkgdir}" install-{modules,cli,build,headers,programs,pharcmd}
install -D -m644 "${srcdir}/php-${pkgver}/php.ini-production" "${pkgdir}/etc/php7/php.ini"
install -d -m755 "${pkgdir}/etc/php7/conf.d/"
# remove static modules
rm -f "${pkgdir}/usr/lib/php7/modules/"*.a
# remove modules provided by sub packages
rm -f "${pkgdir}/usr/lib/php7/modules/"{enchant,gd,imap,intl,sodium,odbc,pdo_dblib,pdo_odbc,pgsql,pdo_pgsql,pspell,snmp,sqlite3,pdo_sqlite,tidy,xsl}.so
# remove empty directory
rmdir "${pkgdir}/usr/include/php7/php/include"
}
package_php7-cgi() {
pkgdesc='CGI and FCGI SAPI for PHP w/o systemd'
depends=('php7')
cd "${srcdir}/build"
make -j1 INSTALL_ROOT="${pkgdir}" install-cgi
}
package_php7-apache() {
pkgdesc='Apache SAPI for PHP w/o systemd'
depends=('php7' 'apache' 'libnsl')
backup=('etc/httpd/conf/extra/php7_module.conf')
install -D -m755 "${srcdir}/build-apache/libs/libphp7.so" "${pkgdir}/usr/lib/httpd/modules/libphp7.so"
install -D -m644 "${srcdir}/apache.conf" "${pkgdir}/etc/httpd/conf/extra/php7_module.conf"
}
package_php7-fpm() {
pkgdesc='FastCGI Process Manager for PHP w/o systemd'
depends=('php7')
backup=('etc/php7/php-fpm.conf' 'etc/php7/php-fpm.d/www.conf')
options=('!emptydirs')
cd "${srcdir}/build"
make -j1 INSTALL_ROOT="${pkgdir}" install-fpm
install -D -m644 "${srcdir}/php-fpm.tmpfiles" "${pkgdir}/usr/lib/tmpfiles.d/php-fpm7.conf"
}
package_php7-embed() {
pkgdesc='Embedded PHP SAPI library w/o systemd'
depends=('php7' 'libnsl' 'libxcrypt')
options=('!emptydirs')
cd "${srcdir}/build"
make -j1 INSTALL_ROOT="${pkgdir}" PHP_SAPI=embed install-sapi
}
package_php7-phpdbg() {
pkgdesc='Interactive PHP debugger w/o systemd'
depends=('php7')
options=('!emptydirs')
cd "${srcdir}/build-phpdbg"
make -j1 INSTALL_ROOT="${pkgdir}" install-phpdbg
}
package_php7-dblib() {
pkgdesc='dblib module for PHP w/o systemd'
depends=('php7' 'freetds')
install -D -m755 "${srcdir}/build/modules/pdo_dblib.so" "${pkgdir}/usr/lib/php7/modules/pdo_dblib.so"
}
package_php7-enchant() {
pkgdesc='enchant module for PHP w/o systemd'
depends=('php7' 'enchant-pure')
install -D -m755 "${srcdir}/build/modules/enchant.so" "${pkgdir}/usr/lib/php7/modules/enchant.so"
}
package_php7-gd() {
pkgdesc='gd module for PHP w/o systemd'
depends=('php7' 'gd')
install -D -m755 "${srcdir}/build/modules/gd.so" "${pkgdir}/usr/lib/php7/modules/gd.so"
}
package_php7-imap() {
pkgdesc='imap module for PHP w/o systemd'
depends=('php7' 'c-client' 'libxcrypt')
install -D -m755 "${srcdir}/build/modules/imap.so" "${pkgdir}/usr/lib/php7/modules/imap.so"
}
package_php7-intl() {
pkgdesc='intl module for PHP w/o systemd'
depends=('php7' 'icu')
install -D -m755 "${srcdir}/build/modules/intl.so" "${pkgdir}/usr/lib/php7/modules/intl.so"
}
package_php7-sodium() {
pkgdesc='sodium module for PHP w/o systemd'
depends=('php7' 'libsodium')
install -D -m755 "${srcdir}/build/modules/sodium.so" "${pkgdir}/usr/lib/php7/modules/sodium.so"
}
package_php7-odbc() {
pkgdesc='ODBC modules for PHP w/o systemd'
depends=('php7' 'unixodbc')
install -D -m755 "${srcdir}/build/modules/odbc.so" "${pkgdir}/usr/lib/php7/modules/odbc.so"
install -D -m755 "${srcdir}/build/modules/pdo_odbc.so" "${pkgdir}/usr/lib/php7/modules/pdo_odbc.so"
}
package_php7-pgsql() {
pkgdesc='PostgreSQL modules for PHP w/o systemd'
depends=('php7' 'postgresql-libs')
install -D -m755 "${srcdir}/build/modules/pgsql.so" "${pkgdir}/usr/lib/php7/modules/pgsql.so"
install -D -m755 "${srcdir}/build/modules/pdo_pgsql.so" "${pkgdir}/usr/lib/php7/modules/pdo_pgsql.so"
}
package_php7-pspell() {
pkgdesc='pspell module for PHP w/o systemd'
depends=('php7' 'aspell')
install -D -m755 "${srcdir}/build/modules/pspell.so" "${pkgdir}/usr/lib/php7/modules/pspell.so"
}
package_php7-snmp() {
pkgdesc='snmp module for PHP w/o systemd'
depends=('php7' 'net-snmp')
install -D -m755 "${srcdir}/build/modules/snmp.so" "${pkgdir}/usr/lib/php7/modules/snmp.so"
}
package_php7-sqlite() {
pkgdesc='sqlite module for PHP w/o systemd'
depends=('php7' 'sqlite')
install -D -m755 "${srcdir}/build/modules/sqlite3.so" "${pkgdir}/usr/lib/php7/modules/sqlite3.so"
install -D -m755 "${srcdir}/build/modules/pdo_sqlite.so" "${pkgdir}/usr/lib/php7/modules/pdo_sqlite.so"
}
package_php7-tidy() {
pkgdesc='tidy module for PHP w/o systemd'
depends=('php7' 'tidy')
install -D -m755 "${srcdir}/build/modules/tidy.so" "${pkgdir}/usr/lib/php7/modules/tidy.so"
}
package_php7-xsl() {
pkgdesc='xsl module for PHP w/o systemd'
depends=('php7' 'libxslt')
install -D -m755 "${srcdir}/build/modules/xsl.so" "${pkgdir}/usr/lib/php7/modules/xsl.so"
}
#---- license gpg-key sha256sums ----
license=(PHP)
validpgpkeys=(5A52880781F755608BF815FC910DEB46F53EA312
42670A7FE4D0441C8E4632349E4FDC074A4EF02D)
sha256sums=(924846abf93bc613815c55dd3f5809377813ac62a9ec4eb3778675b82a27b927 # php-7.4.33.tar.xz
569a01c7c605a4571fdf7dfadfff4215cc4a63ea5d474c7ec92bd7b4fecfffcb # php-7.4.33.tar.xz.asc
c3e892a045e864dd9cce30a64e243e3516a51c9d3498137e5f8f2dce8cdd2b7f # php7-openssl3-eof.patch
8ffecdd493e69b58b46fc278e4911ba79de382cfdd34734f8609c11aa489e8e8 # php7-openssl3.patch
b4ea038f2863801175d6c4e74c685913feecdd5be3d49aff7d9b3fa92d8c4159 # apache.patch
ebc0af1ef3a6baccb013d0ccb29923895a7b22ff2d032e3bba802dc6328301ce # apache.conf
46c720063fa0def3ecc788c442a8fcc01c92edae2bd44eb45c2c946e3a1896c7 # php-fpm.tmpfiles
e02f657e2661ad01081835ded7fcdb0fbe9177b7d0acc4aeaae4164a593a991f # php.ini.patch
d94d22ad8bcd13829addda84e9de6b73fa04be9bc6da8622086c7e19c97ab724 # enchant-2.patch
52d7d524ce54c73afde7ddc21b354e76578c8a83fbad0496a743c1ea4916bfe1) # php7.patch