diff --git a/php73/default/PKGBUILD b/php73/default/PKGBUILD new file mode 100644 index 00000000..9f631a59 --- /dev/null +++ b/php73/default/PKGBUILD @@ -0,0 +1,356 @@ +# Maintainer: Matt Harrison +# Contributor: Pierre Schmitz + +pkgbase=php73 +_pkgbase=${pkgbase%73} +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=7.3.30 +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') +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' + 'enchant-2.patch' 'freetype.patch') +sha256sums=('0ebfd656df0f3b1ea37ff2887f8f2d1a71cd160fb0292547c0ee0a99e58ffd1b' + 'SKIP' + '62e5ceea3c90a3c6eab1166488f876e766efcfd7d4e973c44060a9e72d51a98a' + 'ebc0af1ef3a6baccb013d0ccb29923895a7b22ff2d032e3bba802dc6328301ce' + '7e4736dc63746e8b58f0d76ccbcd14cf5f221864b61ba16e2fc736e1ac22f41a' + 'c28997b08d3ea257a2435164e35d0340f42cd3306def6a94b6b8c0a2f5644def' + 'cd3b12c1cd5860f77325ef5405b987eca9cd894cbc99bde6ea4bdbed78ff5d46' + '3992491eebaf5b31f6b00095a7276d11682f9a8aaff473bfb25afbdcfa6eba32' + '07c4648669dc05afc3c1ad5a4739768079c423b817eabf5296ca3d1ea5ffd163') +validpgpkeys=('CBAF69F173A0FEA4B537F470D66C9593118BCCB6' + '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 + patch -p1 -i ${srcdir}/enchant-2.patch + patch -p1 -i ${srcdir}/freetype.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 \ + --without-pear \ + " + + local _phpextensions="\ + --enable-bcmath=shared \ + --enable-calendar=shared \ + --enable-dba=shared \ + --enable-exif=shared \ + --enable-ftp=shared \ + --enable-intl=shared \ + --enable-mbstring \ + --enable-shmop=shared \ + --enable-soap=shared \ + --enable-sockets=shared \ + --enable-sysvmsg=shared \ + --enable-sysvsem=shared \ + --enable-sysvshm=shared \ + --enable-zip=shared \ + --with-bz2=shared \ + --with-curl=shared \ + --with-db4=/usr \ + --with-enchant=shared,/usr \ + --with-freetype-dir=/usr \ + --with-gd=shared,/usr \ + --with-gdbm \ + --with-gettext=shared \ + --with-gmp=shared \ + --with-iconv=shared \ + --with-imap-ssl \ + --with-imap=shared \ + --with-kerberos=/usr \ + --with-ldap=shared \ + --with-ldap-sasl \ + --with-libzip \ + --with-mhash \ + --with-mysql-sock=/run/mysqld/mysqld.sock \ + --with-mysqli=shared,mysqlnd \ + --with-openssl \ + --with-password-argon2 \ + --with-pcre-regex=/usr \ + --with-pdo-dblib=shared,/usr \ + --with-pdo-mysql=shared,mysqlnd \ + --with-pdo-odbc=shared,unixODBC,/usr \ + --with-pdo-pgsql=shared \ + --with-pdo-sqlite=shared,/usr \ + --with-pgsql=shared \ + --with-pspell=shared \ + --with-readline \ + --with-snmp=shared \ + --with-sodium=shared \ + --with-sqlite3=shared,/usr \ + --with-tidy=shared \ + --with-unixODBC=shared,/usr \ + --with-xmlrpc=shared \ + --with-xsl=shared \ + --with-zlib \ + --enable-pcntl \ + " + + 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 +} + +package_php73() { + pkgdesc='A general-purpose scripting language that is especially suited to web development' + depends=('libxml2' 'curl' 'libzip' 'pcre2' 'argon2') + replaces=('php73-ldap') + conflicts=('php73-ldap') + provides=("php73-ldap=${pkgver}" "php") + 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.phar73 ${pkgdir}/usr/bin/phar73 + + # rename executables + mv ${pkgdir}/usr/bin/phar.phar ${pkgdir}/usr/bin/phar.phar73 + + # rename man pages + mv ${pkgdir}/usr/share/man/man1/{phar,phar73}.1 + mv ${pkgdir}/usr/share/man/man1/phar.{phar,phar73}.1 + + # fix paths in executables + sed -i "/^includedir=/c \includedir=/usr/include/${pkgbase}" ${pkgdir}/usr/bin/phpize73 + sed -i "/^include_dir=/c \include_dir=/usr/include/${pkgbase}" ${pkgdir}/usr/bin/php-config73 + + # make phpize use php-config73 + sed -i "/^\[ --with-php-config=/c \[ --with-php-config=PATH Path to php-config [php-config73]], php-config73, no)" ${pkgdir}/usr/lib/${pkgbase}/build/phpize.m4 +} + +package_php73-cgi() { + pkgdesc='CGI and FCGI SAPI for PHP' + depends=("${pkgbase}") + + cd ${srcdir}/build + make -j1 INSTALL_ROOT=${pkgdir} install-cgi +} + +package_php73-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/libphp7.so ${pkgdir}/usr/lib/httpd/modules/lib${pkgbase}.so + install -D -m644 ${srcdir}/apache.conf ${pkgdir}/etc/httpd/conf/extra/${pkgbase}_module.conf +} + +package_php73-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_php73-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/libphp7.so ${pkgdir}/usr/lib/libphp-73.so +} + +package_php73-phpdbg() { + pkgdesc='Interactive PHP debugger' + depends=("${pkgbase}") + options=('!emptydirs') + + cd ${srcdir}/build-phpdbg + make -j1 INSTALL_ROOT=${pkgdir} install-phpdbg +} + +package_php73-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_php73-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_php73-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_php73-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_php73-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_php73-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_php73-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_php73-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_php73-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_php73-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_php73-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_php73-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_php73-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/php73/default/apache.conf b/php73/default/apache.conf new file mode 100644 index 00000000..b516b5e6 --- /dev/null +++ b/php73/default/apache.conf @@ -0,0 +1,13 @@ +# Required modules: dir_module, php7_module + + + + DirectoryIndex index.php index.html + + SetHandler application/x-httpd-php + + + SetHandler application/x-httpd-php-source + + + diff --git a/php73/default/apache.patch b/php73/default/apache.patch new file mode 100644 index 00000000..c2e64d95 --- /dev/null +++ b/php73/default/apache.patch @@ -0,0 +1,10 @@ +--- sapi/apache2handler/config.m4.orig ++++ sapi/apache2handler/config.m4 +@@ -113,7 +113,6 @@ + PHP_BUILD_THREAD_SAFE + fi + else +- APACHE_THREADED_MPM=`$APXS_HTTPD -V | grep 'threaded:.*yes'` + if test -n "$APACHE_THREADED_MPM"; then + PHP_BUILD_THREAD_SAFE + fi diff --git a/php73/default/enchant-2.patch b/php73/default/enchant-2.patch new file mode 100644 index 00000000..75be0136 --- /dev/null +++ b/php73/default/enchant-2.patch @@ -0,0 +1,61 @@ +--- php-7.1.13/ext/enchant/config.m4.orig 2018-01-03 02:32:29.000000000 +0000 ++++ php-7.1.13/ext/enchant/config.m4 2018-01-21 22:10:03.788875780 +0000 +@@ -14,9 +14,9 @@ + ENCHANT_SEARCH_DIRS="/usr/local /usr" + fi + for i in $ENCHANT_SEARCH_DIRS; do +- if test -f $i/include/enchant/enchant.h; then ++ if test -f $i/include/enchant-2/enchant.h; then + ENCHANT_DIR=$i +- ENCHANT_INCDIR=$i/include/enchant ++ ENCHANT_INCDIR=$i/include/enchant-2 + elif test -f $i/include/enchant.h; then + ENCHANT_DIR=$i + ENCHANT_INCDIR=$i/include +@@ -31,7 +31,7 @@ + + AC_DEFINE(HAVE_ENCHANT,1,[ ]) + PHP_SUBST(ENCHANT_SHARED_LIBADD) +- PHP_ADD_LIBRARY_WITH_PATH(enchant, $ENCHANT_LIBDIR, ENCHANT_SHARED_LIBADD) ++ PHP_ADD_LIBRARY_WITH_PATH(enchant-2, $ENCHANT_LIBDIR, ENCHANT_SHARED_LIBADD) + PHP_ADD_INCLUDE($ENCHANT_INCDIR) + PHP_CHECK_LIBRARY(enchant, enchant_broker_set_param, + [ +--- php-7.2.1/ext/enchant/enchant.c.orig 2018-01-02 22:36:05.000000000 +0000 ++++ php-7.2.1/ext/enchant/enchant.c 2018-01-21 22:34:50.205791491 +0000 +@@ -741,7 +741,7 @@ + for (i = 0; i < n_sugg; i++) { + add_next_index_string(sugg, suggs[i]); + } +- enchant_dict_free_suggestions(pdict->pdict, suggs); ++ enchant_dict_free_string_list(pdict->pdict, suggs); + } + + +@@ -798,7 +798,7 @@ + add_next_index_string(return_value, suggs[i]); + } + +- enchant_dict_free_suggestions(pdict->pdict, suggs); ++ enchant_dict_free_string_list(pdict->pdict, suggs); + } + } + /* }}} */ +@@ -818,7 +818,7 @@ + + PHP_ENCHANT_GET_DICT; + +- enchant_dict_add_to_personal(pdict->pdict, word, wordlen); ++ enchant_dict_add(pdict->pdict, word, wordlen); + } + /* }}} */ + +@@ -856,7 +856,7 @@ + + PHP_ENCHANT_GET_DICT; + +- RETURN_BOOL(enchant_dict_is_in_session(pdict->pdict, word, wordlen)); ++ RETURN_BOOL(enchant_dict_is_added(pdict->pdict, word, wordlen)); + } + /* }}} */ + diff --git a/php73/default/freetype.patch b/php73/default/freetype.patch new file mode 100644 index 00000000..f88695d6 --- /dev/null +++ b/php73/default/freetype.patch @@ -0,0 +1,38 @@ +diff -u -r php-7.2.5/ext/gd/config.m4 php-7.2.5-freetype/ext/gd/config.m4 +--- php-7.2.5/ext/gd/config.m4 2018-04-24 17:09:54.000000000 +0200 ++++ php-7.2.5-freetype/ext/gd/config.m4 2018-05-09 14:49:03.647108948 +0200 +@@ -186,6 +186,9 @@ + AC_DEFUN([PHP_GD_FREETYPE2],[ + if test "$PHP_FREETYPE_DIR" != "no"; then + ++ AC_PATH_PROG(PKG_CONFIG, pkg-config, no) ++ ++ AC_MSG_CHECKING([for freetype]) + for i in $PHP_FREETYPE_DIR /usr/local /usr; do + if test -f "$i/bin/freetype-config"; then + FREETYPE2_DIR=$i +@@ -194,13 +197,20 @@ + fi + done + +- if test -z "$FREETYPE2_DIR"; then ++ if test -n "$FREETYPE2_CONFIG"; then ++ FREETYPE2_CFLAGS=`$FREETYPE2_CONFIG --cflags` ++ FREETYPE2_LIBS=`$FREETYPE2_CONFIG --libs` ++ AC_MSG_RESULT([found in $FREETYPE2_DIR]) ++ elif test "$PKG_CONFIG" != "no" && $PKG_CONFIG --exists freetype2; then ++ FREETYPE2_DIR=pkg-config ++ FREETYPE2_CFLAGS=`$PKG_CONFIG freetype2 --cflags` ++ FREETYPE2_LIBS=`$PKG_CONFIG freetype2 --libs` ++ AC_MSG_RESULT([found by pkg-config]) ++ else ++ AC_MSG_RESULT([not found]) + AC_MSG_ERROR([freetype-config not found.]) + fi + +- FREETYPE2_CFLAGS=`$FREETYPE2_CONFIG --cflags` +- FREETYPE2_LIBS=`$FREETYPE2_CONFIG --libs` +- + PHP_EVAL_INCLINE($FREETYPE2_CFLAGS) + PHP_EVAL_LIBLINE($FREETYPE2_LIBS, GD_SHARED_LIBADD) + AC_DEFINE(HAVE_LIBFREETYPE,1,[ ]) diff --git a/php73/default/generate_patches b/php73/default/generate_patches new file mode 100755 index 00000000..ac156d5a --- /dev/null +++ b/php73/default/generate_patches @@ -0,0 +1,48 @@ +#!/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/php73-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/php73-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/php73-fpm/php-fpm.pid#' \ + -e 's#^ExecStart=@EXPANDED_SBINDIR@/php-fpm --nodaemonize#ExecStart=@EXPANDED_SBINDIR@/php-fpm73 --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=ftp\n;extension=gd\n;extension=gettext\n;extension=gmp\n;extension=iconv\n;extension=imap\n;extension=intl\n;extension=sodium\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=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/php73/modules/"#g' \ + -i php.ini-production + +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 + +popd diff --git a/php73/default/php-7.3.30.tar.xz b/php73/default/php-7.3.30.tar.xz new file mode 100644 index 00000000..dabdc3cb Binary files /dev/null and b/php73/default/php-7.3.30.tar.xz differ diff --git a/php73/default/php-7.3.30.tar.xz.asc b/php73/default/php-7.3.30.tar.xz.asc new file mode 100644 index 00000000..ba2a950f --- /dev/null +++ b/php73/default/php-7.3.30.tar.xz.asc @@ -0,0 +1,17 @@ +-----BEGIN PGP SIGNATURE----- + +iQJABAABCAAqFiEEy69p8XOg/qS1N/Rw1myVkxGLzLYFAmEkxKQMHGNtYkBwaHAu +bmV0AAoJENZslZMRi8y2NpUQAIz+HE6allfMtMxMkmMdKS8RbidxCKpaA3HXLIVH +T8SEl8qOPDSFlrSyXEBMx7uUSge0ezC38y3mKFvb1STSfUb5q4UqCrvJ76MEybfl +MCvbHR53n6D5jir2nryF3MZWwZWAr/Pg6e18P/+7PgUVqWtlXDOWPPo8zRhKb9Gy +OnfwnVe4Ad2TIlobwo56VjHeM3N0fdOGhd1rlCm6rBNMUcjsVOI7FOqHzXR3T1O1 +y0MtSkIsG9IefiawTrpoSUo7CrkUkUFnJcjp4ix9q6zPkKyIiJh8BdW5iBxfnjFj +6TnTM/U1wknU07VO7/zBZK3rbvgnI95lOLcdgzwVj29cLkknT2dAAzo9oMr97eig +55mL2f3oyL8foNPKGF2wcLtCPTvd7xBQMUfPc02k2wyCUJYc/JnKk/UIQzr3D9S/ +aQ1ZJPzNcDdiosVW71gBxy1cmubeLNqQI8LSPFQv4ORlC2hfWhnqyu66cWwgU9N/ +PGWY+4N9HBiE+Xq7zqV2uexbQUwdF/Tn9UdNM5raDTsX1c6MZUSC/GljPRZsoJUE +hR/MqAuuMt4XIFNasEYryVmaaqmiDjU5agcZOeji7GwbYBZS28JzFmaw/2jLNId4 +jDaiUKssh64pINgzqvt8Tp3MN08W54afV16rqR3jTKXaBhaOPNpGUpVS8bBczMWb +ERZJ +=ykrU +-----END PGP SIGNATURE----- diff --git a/php73/default/php-fpm.patch b/php73/default/php-fpm.patch new file mode 100644 index 00000000..e00aeb01 --- /dev/null +++ b/php73/default/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/php73-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/php73-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/php73-fpm/php-fpm.pid ++ExecStart=@EXPANDED_SBINDIR@/php-fpm73 --nodaemonize --fpm-config @EXPANDED_SYSCONFDIR@/php-fpm.conf + ExecReload=/bin/kill -USR2 $MAINPID + PrivateTmp=true + diff --git a/php73/default/php-fpm.tmpfiles b/php73/default/php-fpm.tmpfiles new file mode 100644 index 00000000..dfee161d --- /dev/null +++ b/php73/default/php-fpm.tmpfiles @@ -0,0 +1 @@ +d /run/php73-fpm 755 root root diff --git a/php73/default/php.ini.patch b/php73/default/php.ini.patch new file mode 100644 index 00000000..1f843ea9 --- /dev/null +++ b/php73/default/php.ini.patch @@ -0,0 +1,78 @@ +--- php.ini-production.orig ++++ php.ini-production +@@ -751,7 +751,7 @@ + + ; Directory in which the loadable extensions (modules) reside. + ; http://php.net/extension-dir +-;extension_dir = "./" ++extension_dir = "/usr/lib/php73/modules/" + ; On windows: + ;extension_dir = "ext" + +@@ -899,48 +899,44 @@ + ; deprecated in a future PHP major version. So, when it is possible, please + ; move to the new ('extension=) 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=fileinfo +-;extension=gd2 ++;extension=calendar ++extension=curl ++;extension=dba ++;extension=enchant ++;extension=exif ++;extension=ftp ++;extension=gd + ;extension=gettext + ;extension=gmp +-;extension=intl ++;extension=iconv + ;extension=imap +-;extension=interbase ++;extension=intl ++;extension=sodium + ;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 ++;zend_extension=opcache ++;extension=pdo_dblib + ;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 + + ;;;;;;;;;;;;;;;;;;; + ; Module Settings ;