diff options
author | muhviehstarr | 2020-12-07 12:10:04 +0100 |
---|---|---|
committer | muhviehstarr | 2020-12-07 12:10:04 +0100 |
commit | fbba1d507024e454bb135dd348faf9366c1941ce (patch) | |
tree | 1cd2e64c91a2d12cf5f99884f9bf357d0b3b45ff | |
download | aur-fbba1d507024e454bb135dd348faf9366c1941ce.tar.gz |
initial
-rw-r--r-- | .SRCINFO | 158 | ||||
-rw-r--r-- | PKGBUILD | 367 | ||||
-rw-r--r-- | apache.conf | 13 | ||||
-rw-r--r-- | apache.patch | 10 | ||||
-rwxr-xr-x | generate_patches | 64 | ||||
-rw-r--r-- | php-fpm.patch | 76 | ||||
-rw-r--r-- | php-fpm.tmpfiles | 1 | ||||
-rw-r--r-- | php.ini.patch | 75 |
8 files changed, 764 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..9ec77b2d52ea --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,158 @@ +pkgbase = php80 + pkgver = 8.0.0 + pkgrel = 1 + url = https://www.php.net/ + arch = x86_64 + license = PHP + checkdepends = procps-ng + makedepends = apache + makedepends = aspell + makedepends = c-client + makedepends = db + makedepends = enchant + makedepends = gd + makedepends = gmp + makedepends = icu + makedepends = libsodium + makedepends = libxslt + makedepends = libzip + makedepends = net-snmp + makedepends = postgresql-libs + makedepends = sqlite + makedepends = systemd + makedepends = tidy + makedepends = unixodbc + makedepends = curl + makedepends = libtool + makedepends = postfix + makedepends = freetds + makedepends = pcre2 + makedepends = libnsl + makedepends = oniguruma + source = https://php.net/distributions/php-8.0.0.tar.xz + source = https://php.net/distributions/php-8.0.0.tar.xz.asc + source = apache.patch + source = apache.conf + source = php-fpm.patch + source = php-fpm.tmpfiles + source = php.ini.patch + validpgpkeys = CBAF69F173A0FEA4B537F470D66C9593118BCCB6 + validpgpkeys = 1729F83938DA44E27BA0F4D3DBDB397470D12172 + validpgpkeys = F38252826ACD957EF380D39F2F7956BC5DA04B5D + sha256sums = b5278b3eef584f0c075d15666da4e952fa3859ee509d6b0cc2ed13df13f65ebb + sha256sums = SKIP + sha256sums = b4ea038f2863801175d6c4e74c685913feecdd5be3d49aff7d9b3fa92d8c4159 + sha256sums = ebc0af1ef3a6baccb013d0ccb29923895a7b22ff2d032e3bba802dc6328301ce + sha256sums = 591a266b62cd027483675b07254a61f54fe73d2118b4fbea7b168b632cb7243d + sha256sums = 3d8c5d47300ddd9509dcc502209a4337f46ff1b424764498c18e1e34e8240dea + sha256sums = 7a0b7b976d61d4f0e0c12572e781021e03a364eae89aa1e5d76846049d6dba2f + +pkgname = php80 + pkgdesc = A general-purpose scripting language that is especially suited to web development + depends = libxml2 + depends = curl + depends = libzip + depends = pcre2 + depends = argon2 + provides = php80-ldap=8.0.0 + provides = php80 + conflicts = php80-ldap + replaces = php80-ldap + backup = etc/php80/php.ini + +pkgname = php80-cgi + pkgdesc = CGI and FCGI SAPI for PHP + depends = php80 + +pkgname = php80-apache + pkgdesc = Apache SAPI for PHP + depends = php80 + depends = apache + depends = libnsl + backup = etc/httpd/conf/extra/php80_module.conf + +pkgname = php80-fpm + pkgdesc = FastCGI Process Manager for PHP + depends = php80 + depends = systemd + options = !emptydirs + backup = etc/php80/php-fpm.conf + backup = etc/php80/php-fpm.d/www.conf + +pkgname = php80-embed + pkgdesc = Embedded PHP SAPI library + depends = php80 + depends = systemd-libs + depends = libnsl + options = !emptydirs + +pkgname = php80-phpdbg + pkgdesc = Interactive PHP debugger + depends = php80 + options = !emptydirs + +pkgname = php80-dblib + pkgdesc = dblib module for PHP + depends = php80 + depends = freetds + +pkgname = php80-enchant + pkgdesc = enchant module for PHP + depends = php80 + depends = enchant + +pkgname = php80-gd + pkgdesc = gd module for PHP + depends = php80 + depends = gd + +pkgname = php80-imap + pkgdesc = imap module for PHP + depends = php80 + depends = c-client + +pkgname = php80-intl + pkgdesc = intl module for PHP + depends = php80 + depends = icu + +pkgname = php80-sodium + pkgdesc = sodium module for PHP + depends = php80 + depends = libsodium + +pkgname = php80-odbc + pkgdesc = ODBC modules for PHP + depends = php80 + depends = unixodbc + +pkgname = php80-pgsql + pkgdesc = PostgreSQL modules for PHP + depends = php80 + depends = postgresql-libs + +pkgname = php80-pspell + pkgdesc = pspell module for PHP + depends = php80 + depends = aspell + +pkgname = php80-snmp + pkgdesc = snmp module for PHP + depends = php80 + depends = net-snmp + +pkgname = php80-sqlite + pkgdesc = sqlite module for PHP + depends = php80 + depends = sqlite + +pkgname = php80-tidy + pkgdesc = tidy module for PHP + depends = php80 + depends = tidy + +pkgname = php80-xsl + pkgdesc = xsl module for PHP + depends = php80 + depends = libxslt + diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..6a1accbc3c25 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,367 @@ +# Maintainer: Matt Harrison <matt@harrison.us.com> +# Contributor: Pierre Schmitz <pierre@archlinux.de> + +pkgbase=php80 +_pkgbase=${pkgbase%80} +pkgname=("${pkgbase}" + "${pkgbase}-cgi" + "${pkgbase}-apache" + "${pkgbase}-fpm" + "${pkgbase}-embed" + "${pkgbase}-phpdbg" + "${pkgbase}-dblib" + "${pkgbase}-enchant" + "${pkgbase}-gd" + "${pkgbase}-imap" + "${pkgbase}-intl" + "${pkgbase}-sodium" + "${pkgbase}-odbc" + "${pkgbase}-pgsql" + "${pkgbase}-pspell" + "${pkgbase}-snmp" + "${pkgbase}-sqlite" + "${pkgbase}-tidy" + "${pkgbase}-xsl") +pkgver=8.0.0 +pkgrel=1 +arch=('x86_64') +license=('PHP') +url='https://www.php.net/' +makedepends=('apache' 'aspell' 'c-client' 'db' 'enchant' 'gd' 'gmp' 'icu' 'libsodium' 'libxslt' 'libzip' 'net-snmp' + 'postgresql-libs' 'sqlite' 'systemd' 'tidy' 'unixodbc' 'curl' 'libtool' 'postfix' 'freetds' 'pcre2' 'libnsl' + 'oniguruma') +checkdepends=('procps-ng') +source=("https://php.net/distributions/${_pkgbase}-${pkgver}.tar.xz"{,.asc} + 'apache.patch' 'apache.conf' 'php-fpm.patch' 'php-fpm.tmpfiles' 'php.ini.patch') +sha256sums=('b5278b3eef584f0c075d15666da4e952fa3859ee509d6b0cc2ed13df13f65ebb' + 'SKIP' + 'b4ea038f2863801175d6c4e74c685913feecdd5be3d49aff7d9b3fa92d8c4159' + 'ebc0af1ef3a6baccb013d0ccb29923895a7b22ff2d032e3bba802dc6328301ce' + '591a266b62cd027483675b07254a61f54fe73d2118b4fbea7b168b632cb7243d' + '3d8c5d47300ddd9509dcc502209a4337f46ff1b424764498c18e1e34e8240dea' + '7a0b7b976d61d4f0e0c12572e781021e03a364eae89aa1e5d76846049d6dba2f') +validpgpkeys=('CBAF69F173A0FEA4B537F470D66C9593118BCCB6' + '1729F83938DA44E27BA0F4D3DBDB397470D12172' + 'F38252826ACD957EF380D39F2F7956BC5DA04B5D') + +prepare() { + cd ${srcdir}/${_pkgbase}-${pkgver} + + patch -p0 -i ${srcdir}/apache.patch + patch -p0 -i ${srcdir}/php-fpm.patch + patch -p0 -i ${srcdir}/php.ini.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=../${_pkgbase}-${pkgver} \ + --config-cache \ + --prefix=/usr \ + --sbindir=/usr/bin \ + --sysconfdir=/etc/${pkgbase} \ + --localstatedir=/var \ + --libdir=/usr/lib/${pkgbase} \ + --datarootdir=/usr/share/${pkgbase} \ + --datadir=/usr/share/${pkgbase} \ + --program-suffix=${pkgbase#php} \ + --with-layout=GNU \ + --with-config-file-path=/etc/${pkgbase} \ + --with-config-file-scan-dir=/etc/${pkgbase}/conf.d \ + --disable-rpath \ + --mandir=/usr/share/man \ + " + + 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-sockets=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-xsl=shared \ + --with-zlib \ + --with-zip=shared \ + " + + EXTENSION_DIR=/usr/lib/${pkgbase}/modules + export EXTENSION_DIR + + mkdir ${srcdir}/build + cd ${srcdir}/build + ln -s ../${_pkgbase}-${pkgver}/configure + ./configure ${_phpconfig} \ + --enable-cgi \ + --enable-fpm \ + --with-fpm-systemd \ + --with-fpm-acl \ + --with-fpm-user=http \ + --with-fpm-group=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_php80() { + pkgdesc='A general-purpose scripting language that is especially suited to web development' + depends=('libxml2' 'curl' 'libzip' 'pcre2' 'argon2') + replaces=('php80-ldap') + conflicts=('php80-ldap') + provides=("php80-ldap=${pkgver}" "php80") + backup=("etc/${pkgbase}/php.ini") + + cd ${srcdir}/build + make -j1 INSTALL_ROOT=${pkgdir} install-{modules,cli,build,headers,programs,pharcmd} + install -D -m644 ${srcdir}/${_pkgbase}-${pkgver}/php.ini-production ${pkgdir}/etc/${pkgbase}/php.ini + install -d -m755 ${pkgdir}/etc/${pkgbase}/conf.d/ + + # remove static modules + rm -f ${pkgdir}/usr/lib/${pkgbase}/modules/*.a + # remove modules provided by sub packages + rm -f ${pkgdir}/usr/lib/${pkgbase}/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/php/include + + # move include directory + mv ${pkgdir}/usr/include/php ${pkgdir}/usr/include/${pkgbase} + + # fix phar symlink + #rm ${pkgdir}/usr/bin/phar + ln -sf phar.phar80 ${pkgdir}/usr/bin/phar80 + + # rename executables + #mv ${pkgdir}/usr/bin/phar.phar ${pkgdir}/usr/bin/phar.phar80 + + # rename man pages + #mv ${pkgdir}/usr/share/man/man1/{phar,phar80}.1 + #mv ${pkgdir}/usr/share/man/man1/phar.{phar,phar80}.1 + + # fix paths in executables + sed -i "/^includedir=/c \includedir=/usr/include/${pkgbase}" ${pkgdir}/usr/bin/phpize80 + sed -i "/^include_dir=/c \include_dir=/usr/include/${pkgbase}" ${pkgdir}/usr/bin/php-config80 + + # make phpize use php-config80 + sed -i "/^\[ --with-php-config=/c \[ --with-php-config=PATH Path to php-config [php-config80]], php-config80, no)" ${pkgdir}/usr/lib/${pkgbase}/build/phpize.m4 +} + +package_php80-cgi() { + pkgdesc='CGI and FCGI SAPI for PHP' + depends=("${pkgbase}") + + cd ${srcdir}/build + make -j1 INSTALL_ROOT=${pkgdir} install-cgi +} + +package_php80-apache() { + pkgdesc='Apache SAPI for PHP' + depends=("${pkgbase}" 'apache' 'libnsl') + backup=("etc/httpd/conf/extra/${pkgbase}_module.conf") + + install -D -m755 ${srcdir}/build-apache/libs/libphp.so ${pkgdir}/usr/lib/httpd/modules/lib${pkgbase}.so + install -D -m644 ${srcdir}/apache.conf ${pkgdir}/etc/httpd/conf/extra/${pkgbase}_module.conf +} + +package_php80-fpm() { + pkgdesc='FastCGI Process Manager for PHP' + depends=("${pkgbase}" 'systemd') + backup=("etc/${pkgbase}/php-fpm.conf" "etc/${pkgbase}/php-fpm.d/www.conf") + options=('!emptydirs') + + cd ${srcdir}/build + make -j1 INSTALL_ROOT=${pkgdir} install-fpm + install -D -m644 sapi/fpm/php-fpm.service ${pkgdir}/usr/lib/systemd/system/${pkgbase}-fpm.service + install -D -m644 ${srcdir}/php-fpm.tmpfiles ${pkgdir}/usr/lib/tmpfiles.d/${pkgbase}-fpm.conf +} + +package_php80-embed() { + pkgdesc='Embedded PHP SAPI library' + depends=("${pkgbase}" 'systemd-libs' 'libnsl') + options=('!emptydirs') + + cd ${srcdir}/build + make -j1 INSTALL_ROOT=${pkgdir} PHP_SAPI=embed install-sapi + mv ${pkgdir}/usr/lib/libphp.so ${pkgdir}/usr/lib/libphp-80.so +} + +package_php80-phpdbg() { + pkgdesc='Interactive PHP debugger' + depends=("${pkgbase}") + options=('!emptydirs') + + cd ${srcdir}/build-phpdbg + make -j1 INSTALL_ROOT=${pkgdir} install-phpdbg +} + +package_php80-dblib() { + pkgdesc='dblib module for PHP' + depends=("${pkgbase}" 'freetds') + + install -D -m755 ${srcdir}/build/modules/pdo_dblib.so ${pkgdir}/usr/lib/${pkgbase}/modules/pdo_dblib.so +} + +package_php80-enchant() { + pkgdesc='enchant module for PHP' + depends=("${pkgbase}" 'enchant') + + install -D -m755 ${srcdir}/build/modules/enchant.so ${pkgdir}/usr/lib/${pkgbase}/modules/enchant.so +} + +package_php80-gd() { + pkgdesc='gd module for PHP' + depends=("${pkgbase}" 'gd') + + install -D -m755 ${srcdir}/build/modules/gd.so ${pkgdir}/usr/lib/${pkgbase}/modules/gd.so +} + +package_php80-imap() { + pkgdesc='imap module for PHP' + depends=("${pkgbase}" 'c-client') + + install -D -m755 ${srcdir}/build/modules/imap.so ${pkgdir}/usr/lib/${pkgbase}/modules/imap.so +} + +package_php80-intl() { + pkgdesc='intl module for PHP' + depends=("${pkgbase}" 'icu') + + install -D -m755 ${srcdir}/build/modules/intl.so ${pkgdir}/usr/lib/${pkgbase}/modules/intl.so +} + +package_php80-sodium() { + pkgdesc='sodium module for PHP' + depends=("${pkgbase}" 'libsodium') + + install -D -m755 ${srcdir}/build/modules/sodium.so ${pkgdir}/usr/lib/${pkgbase}/modules/sodium.so +} + +package_php80-odbc() { + pkgdesc='ODBC modules for PHP' + depends=("${pkgbase}" 'unixodbc') + + install -D -m755 ${srcdir}/build/modules/odbc.so ${pkgdir}/usr/lib/${pkgbase}/modules/odbc.so + install -D -m755 ${srcdir}/build/modules/pdo_odbc.so ${pkgdir}/usr/lib/${pkgbase}/modules/pdo_odbc.so +} + +package_php80-pgsql() { + pkgdesc='PostgreSQL modules for PHP' + depends=("${pkgbase}" 'postgresql-libs') + + install -D -m755 ${srcdir}/build/modules/pgsql.so ${pkgdir}/usr/lib/${pkgbase}/modules/pgsql.so + install -D -m755 ${srcdir}/build/modules/pdo_pgsql.so ${pkgdir}/usr/lib/${pkgbase}/modules/pdo_pgsql.so +} + +package_php80-pspell() { + pkgdesc='pspell module for PHP' + depends=("${pkgbase}" 'aspell') + + install -D -m755 ${srcdir}/build/modules/pspell.so ${pkgdir}/usr/lib/${pkgbase}/modules/pspell.so +} + +package_php80-snmp() { + pkgdesc='snmp module for PHP' + depends=("${pkgbase}" 'net-snmp') + + install -D -m755 ${srcdir}/build/modules/snmp.so ${pkgdir}/usr/lib/${pkgbase}/modules/snmp.so +} + +package_php80-sqlite() { + pkgdesc='sqlite module for PHP' + depends=("${pkgbase}" 'sqlite') + + install -D -m755 ${srcdir}/build/modules/sqlite3.so ${pkgdir}/usr/lib/${pkgbase}/modules/sqlite3.so + install -D -m755 ${srcdir}/build/modules/pdo_sqlite.so ${pkgdir}/usr/lib/${pkgbase}/modules/pdo_sqlite.so +} + +package_php80-tidy() { + pkgdesc='tidy module for PHP' + depends=("${pkgbase}" 'tidy') + + install -D -m755 ${srcdir}/build/modules/tidy.so ${pkgdir}/usr/lib/${pkgbase}/modules/tidy.so +} + +package_php80-xsl() { + pkgdesc='xsl module for PHP' + depends=("${pkgbase}" 'libxslt') + + install -D -m755 ${srcdir}/build/modules/xsl.so ${pkgdir}/usr/lib/${pkgbase}/modules/xsl.so +} diff --git a/apache.conf b/apache.conf new file mode 100644 index 000000000000..b516b5e66ffa --- /dev/null +++ b/apache.conf @@ -0,0 +1,13 @@ +# Required modules: dir_module, php7_module + +<IfModule dir_module> + <IfModule php7_module> + DirectoryIndex index.php index.html + <FilesMatch "\.php$"> + SetHandler application/x-httpd-php + </FilesMatch> + <FilesMatch "\.phps$"> + SetHandler application/x-httpd-php-source + </FilesMatch> + </IfModule> +</IfModule> diff --git a/apache.patch b/apache.patch new file mode 100644 index 000000000000..c64021b8fbcd --- /dev/null +++ b/apache.patch @@ -0,0 +1,10 @@ +--- sapi/apache2handler/config.m4.orig ++++ sapi/apache2handler/config.m4 +@@ -111,7 +111,6 @@ + PHP_BUILD_THREAD_SAFE + fi + else +- APACHE_THREADED_MPM=`$APXS_HTTPD -V 2>/dev/null | grep 'threaded:.*yes'` + if test -n "$APACHE_THREADED_MPM"; then + PHP_BUILD_THREAD_SAFE + fi diff --git a/generate_patches b/generate_patches new file mode 100755 index 000000000000..33de7a16109f --- /dev/null +++ b/generate_patches @@ -0,0 +1,64 @@ +#!/bin/bash + +. PKGBUILD + +makepkg -o --nodeps --noprepare --skipinteg + +pushd src/${_pkgbase}-${pkgver} + +sed '/APACHE_THREADED_MPM=/d' -i.orig sapi/apache2handler/config.m4 + +sed 's/.conf.default/.conf/g' -i.orig sapi/fpm/Makefile.frag + +sed \ + -e 's#run/php-fpm.pid#/run/php80-fpm/php-fpm.pid#' \ + -e 's#^;error_log =.*#error_log = syslog#' \ + -i.orig sapi/fpm/php-fpm.conf.in + +sed \ + -e 's#^listen =.*#listen = /run/php80-fpm/php-fpm.sock#' \ + -e 's#^;listen.owner =#listen.owner =#' \ + -e 's#^;listen.group =#listen.group =#' \ + -e 's#^;chdir =.*#;chdir = /srv/http#' \ + -i.orig sapi/fpm/www.conf.in + +sed \ + -e 's#^PIDFile=.*#PIDFile=/run/php80-fpm/php-fpm.pid#' \ + -e 's#^ExecStart=@EXPANDED_SBINDIR@/php-fpm --nodaemonize#ExecStart=@EXPANDED_SBINDIR@/php-fpm80 --nodaemonize#' \ + -i.orig sapi/fpm/php-fpm.service.in + +extensions=";extension=bcmath\n;extension=bz2\n;extension=calendar\nextension=curl\n;extension=dba\n;extension=enchant\n;extension=exif\n;extension=ffi\n;extension=ftp\n;extension=gd\n;extension=gettext\n;extension=gmp\n;extension=iconv\n;extension=imap\n;extension=intl\n;extension=ldap\n;extension=mysqli\n;extension=odbc\n;zend_extension=opcache\n;extension=pdo_dblib\n;extension=pdo_mysql\n;extension=pdo_odbc\n;extension=pdo_pgsql\n;extension=pdo_sqlite\n;extension=pgsql\n;extension=pspell\n;extension=shmop\n;extension=snmp\n;extension=soap\n;extension=sockets\n;extension=sodium\n;extension=sqlite3\n;extension=sysvmsg\n;extension=sysvsem\n;extension=sysvshm\n;extension=tidy\n;extension=xmlrpc\n;extension=xsl\nextension=zip\n" + +sed \ + -r ":a;N;\$!ba;s/; Notes for Windows environments :\n.+;?extension=\w+\n/${extensions}/g" \ + -i.orig php.ini-production +sed \ + -e 's#^;extension_dir = "\./"$#extension_dir = "/usr/lib/php80/modules/"#g' \ + -i php.ini-production + +sed \ + -r 's#PKG_CHECK_MODULES\(\[ENCHANT\], \[enchant\]\)#PKG_CHECK_MODULES([ENCHANT], [enchant-2])#g' \ + -i.orig ext/enchant/config.m4 +sed \ + -r 's#enchant_dict_free_suggestions\(pdict->pdict, suggs\)#enchant_dict_free_string_list(pdict->pdict, suggs)#g' \ + -i.orig ext/enchant/enchant.c +sed \ + -r 's#enchant_dict_add_to_personal\(pdict->pdict, word, wordlen\)#enchant_dict_add(pdict->pdict, word, wordlen)#g' \ + -i ext/enchant/enchant.c +sed \ + -r 's#enchant_dict_is_in_session\(pdict->pdict, word, wordlen\)#enchant_dict_is_added(pdict->pdict, word, wordlen)#g' \ + -i ext/enchant/enchant.c + +diff -u sapi/apache2handler/config.m4.orig sapi/apache2handler/config.m4 | filterdiff --clean --remove-timestamps > ../../apache.patch + +diff -u sapi/fpm/Makefile.frag.orig sapi/fpm/Makefile.frag | filterdiff --clean --remove-timestamps > ../../php-fpm.patch +diff -u sapi/fpm/php-fpm.conf.in.orig sapi/fpm/php-fpm.conf.in | filterdiff --clean --remove-timestamps >> ../../php-fpm.patch +diff -u sapi/fpm/www.conf.in.orig sapi/fpm/www.conf.in | filterdiff --clean --remove-timestamps >> ../../php-fpm.patch +diff -u sapi/fpm/php-fpm.service.in.orig sapi/fpm/php-fpm.service.in | filterdiff --clean --remove-timestamps >> ../../php-fpm.patch + +diff -u php.ini-production.orig php.ini-production | filterdiff --clean --remove-timestamps > ../../php.ini.patch + +diff -u ext/enchant/config.m4.orig ext/enchant/config.m4 | filterdiff --clean --remove-timestamps > ../../enchant-2.patch +diff -u ext/enchant/enchant.c.orig ext/enchant/enchant.c | filterdiff --clean --remove-timestamps >> ../../enchant-2.patch + +popd diff --git a/php-fpm.patch b/php-fpm.patch new file mode 100644 index 000000000000..346b1388a3cf --- /dev/null +++ b/php-fpm.patch @@ -0,0 +1,76 @@ +--- sapi/fpm/Makefile.frag.orig ++++ sapi/fpm/Makefile.frag +@@ -15,8 +15,8 @@ + else \ + echo "Installing PHP FPM defconfig: $(INSTALL_ROOT)$(sysconfdir)/" && \ + $(mkinstalldirs) $(INSTALL_ROOT)$(sysconfdir)/php-fpm.d; \ +- $(INSTALL_DATA) sapi/fpm/php-fpm.conf $(INSTALL_ROOT)$(sysconfdir)/php-fpm.conf.default; \ +- $(INSTALL_DATA) sapi/fpm/www.conf $(INSTALL_ROOT)$(sysconfdir)/php-fpm.d/www.conf.default; \ ++ $(INSTALL_DATA) sapi/fpm/php-fpm.conf $(INSTALL_ROOT)$(sysconfdir)/php-fpm.conf; \ ++ $(INSTALL_DATA) sapi/fpm/www.conf $(INSTALL_ROOT)$(sysconfdir)/php-fpm.d/www.conf; \ + fi + + @echo "Installing PHP FPM man page: $(INSTALL_ROOT)$(mandir)/man8/" +--- sapi/fpm/php-fpm.conf.in.orig ++++ sapi/fpm/php-fpm.conf.in +@@ -14,14 +14,14 @@ + ; Pid file + ; Note: the default prefix is @EXPANDED_LOCALSTATEDIR@ + ; Default Value: none +-;pid = run/php-fpm.pid ++;pid = /run/php80-fpm/php-fpm.pid + + ; Error log file + ; If it's set to "syslog", log is sent to syslogd instead of being written + ; into a local file. + ; Note: the default prefix is @EXPANDED_LOCALSTATEDIR@ + ; Default Value: log/php-fpm.log +-;error_log = log/php-fpm.log ++error_log = syslog + + ; syslog_facility is used to specify what type of program is logging the + ; message. This lets syslogd specify that messages from different facilities +--- sapi/fpm/www.conf.in.orig ++++ sapi/fpm/www.conf.in +@@ -33,7 +33,7 @@ + ; (IPv6 and IPv4-mapped) on a specific port; + ; '/path/to/unix/socket' - to listen on a unix socket. + ; Note: This value is mandatory. +-listen = 127.0.0.1:9000 ++listen = /run/php80-fpm/php-fpm.sock + + ; Set listen(2) backlog. + ; Default Value: 511 (-1 on FreeBSD and OpenBSD) +@@ -44,8 +44,8 @@ + ; BSD-derived systems allow connections regardless of permissions. + ; Default Values: user and group are set as the running user + ; mode is set to 0660 +-;listen.owner = @php_fpm_user@ +-;listen.group = @php_fpm_group@ ++listen.owner = @php_fpm_user@ ++listen.group = @php_fpm_group@ + ;listen.mode = 0660 + ; When POSIX Access Control Lists are supported you can set them using + ; these options, value is a comma separated list of user/group names. +@@ -370,7 +370,7 @@ + ; Chdir to this directory at the start. + ; Note: relative path can be used. + ; Default Value: current directory or / when chroot +-;chdir = /var/www ++;chdir = /srv/http + + ; Redirect worker stdout and stderr into main error log. If not set, stdout and + ; stderr will be redirected to /dev/null according to FastCGI specs. +--- sapi/fpm/php-fpm.service.in.orig ++++ sapi/fpm/php-fpm.service.in +@@ -8,8 +8,8 @@ + + [Service] + Type=@php_fpm_systemd@ +-PIDFile=@EXPANDED_LOCALSTATEDIR@/run/php-fpm.pid +-ExecStart=@EXPANDED_SBINDIR@/php-fpm --nodaemonize --fpm-config @EXPANDED_SYSCONFDIR@/php-fpm.conf ++PIDFile=/run/php80-fpm/php-fpm.pid ++ExecStart=@EXPANDED_SBINDIR@/php-fpm80 --nodaemonize --fpm-config @EXPANDED_SYSCONFDIR@/php-fpm.conf + ExecReload=/bin/kill -USR2 $MAINPID + PrivateTmp=true + diff --git a/php-fpm.tmpfiles b/php-fpm.tmpfiles new file mode 100644 index 000000000000..326bb62d8770 --- /dev/null +++ b/php-fpm.tmpfiles @@ -0,0 +1 @@ +d /run/php80-fpm 755 root root diff --git a/php.ini.patch b/php.ini.patch new file mode 100644 index 000000000000..c1d10631bd9e --- /dev/null +++ b/php.ini.patch @@ -0,0 +1,75 @@ +--- php.ini-production.orig ++++ php.ini-production +@@ -756,7 +756,7 @@ + + ; Directory in which the loadable extensions (modules) reside. + ; http://php.net/extension-dir +-;extension_dir = "./" ++extension_dir = "/usr/lib/php80/modules/" + ; On windows: + ;extension_dir = "ext" + +@@ -913,48 +913,43 @@ + ; deprecated in a future PHP major version. So, when it is possible, please + ; move to the new ('extension=<ext>) syntax. + ; +-; Notes for Windows environments : +-; +-; - Many DLL files are located in the extensions/ (PHP 4) or ext/ (PHP 5+) +-; extension folders as well as the separate PECL DLL download (PHP 5+). +-; Be sure to appropriately set the extension_dir directive. +-; ++;extension=bcmath + ;extension=bz2 +-;extension=curl ++;extension=calendar ++extension=curl ++;extension=dba ++;extension=enchant ++;extension=exif + ;extension=ffi + ;extension=ftp +-;extension=fileinfo + ;extension=gd + ;extension=gettext + ;extension=gmp +-;extension=intl ++;extension=iconv + ;extension=imap ++;extension=intl + ;extension=ldap +-;extension=mbstring +-;extension=exif ; Must be after mbstring as it depends on it + ;extension=mysqli +-;extension=oci8_12c ; Use with Oracle Database 12c Instant Client + ;extension=odbc +-;extension=openssl +-;extension=pdo_firebird + ;extension=pdo_mysql +-;extension=pdo_oci + ;extension=pdo_odbc + ;extension=pdo_pgsql + ;extension=pdo_sqlite + ;extension=pgsql ++;extension=pspell + ;extension=shmop +- +-; The MIBS data available in the PHP distribution must be installed. +-; See http://www.php.net/manual/en/snmp.installation.php + ;extension=snmp +- + ;extension=soap + ;extension=sockets + ;extension=sodium + ;extension=sqlite3 ++;extension=sysvmsg ++;extension=sysvsem ++;extension=sysvshm + ;extension=tidy ++;extension=xmlrpc + ;extension=xsl ++extension=zip + + ;zend_extension=opcache + + |