diff options
-rw-r--r-- | PKGBUILD | 821 | ||||
-rw-r--r-- | logrotate.d.php-fpm | 6 | ||||
-rw-r--r-- | php-apache.install | 11 | ||||
-rw-r--r-- | php-fpm.conf.in.patch | 10 | ||||
-rw-r--r-- | php-fpm.install | 9 | ||||
-rw-r--r-- | php-fpm.service | 13 | ||||
-rw-r--r-- | php-fpm.tmpfiles | 1 | ||||
-rw-r--r-- | php.ini.patch | 6 |
8 files changed, 479 insertions, 398 deletions
@@ -3,463 +3,508 @@ # Contributor: Pierre Schmitz <pierre@archlinux.de> pkgbase=php53 -pkgname=('php53' - 'php53-cgi' - 'php53-apache' - 'php53-fpm' - 'php53-embed' - 'php53-pear' - 'php53-enchant' - 'php53-gd' - 'php53-imap' - 'php53-intl' - 'php53-ldap' - 'php53-mcrypt' - 'php53-mssql' - 'php53-odbc' - 'php53-pgsql' - 'php53-pspell' - 'php53-snmp' - 'php53-sqlite' - 'php53-tidy' - 'php53-xsl') +_pkgbase=${pkgbase%53} +pkgname=("${pkgbase}" + "${pkgbase}-cgi" + "${pkgbase}-apache" + "${pkgbase}-fpm" + "${pkgbase}-embed" + "${pkgbase}-dblib" + "${pkgbase}-pear" + "${pkgbase}-enchant" + "${pkgbase}-gd" + "${pkgbase}-imap" + "${pkgbase}-intl" + "${pkgbase}-ldap" + "${pkgbase}-mcrypt" + "${pkgbase}-mssql" + "${pkgbase}-odbc" + "${pkgbase}-pgsql" + "${pkgbase}-pspell" + "${pkgbase}-snmp" + "${pkgbase}-sqlite" + "${pkgbase}-tidy" + "${pkgbase}-xsl") pkgver=5.3.29 _suhosinver=5.3.9-0.9.10 -pkgrel=4 +pkgrel=6 +pkgdesc="A general-purpose scripting language that is especially suited to web development" arch=('i686' 'x86_64') license=('PHP') -url='http://www.php.net' -makedepends=('apache' 'c-client' 'postgresql-libs' 'libldap' 'postfix' +url='http://php.net' +makedepends=('apache' 'c-client' 'postgresql-libs' 'libldap' 'smtp-forwarder' 'sqlite' 'unixodbc' 'net-snmp' 'libzip' 'enchant' 'file' 'freetds' - 'libmcrypt' 'tidyhtml' 'aspell' 'libltdl' 'libpng' 'libjpeg' 'icu' - 'curl' 'libxslt' 'openssl' 'bzip2' 'db' 'gmp' 'freetype2' 'sed') -source=("http://www.php.net/distributions/${pkgbase%53}-${pkgver}.tar.bz2" + 'libmcrypt' 'tidyhtml' 'aspell' 'libltdl' 'libpng' 'libjpeg' 'freetype2' 'icu' + 'curl' 'libxslt' 'openssl' 'db' 'gmp' 'systemd') + +source=("http://php.net/distributions/${_pkgbase}-${pkgver}.tar.xz" + "http://php.net/distributions/${_pkgbase}-${pkgver}.tar.xz.asc" "http://download.suhosin.org/suhosin-patch-${_suhosinver}.patch.gz" - php.ini.patch apache.conf php-fpm.conf.in.patch - logrotate.d.php-fpm suhosin.patch freetype-path.patch - CVE-2014-3587.patch CVE-2014-3597.patch CVE-2014-3668.patch - CVE-2014-3669.patch CVE-2014-3670.patch curl_embedded_null.patch - CVE-2014-8142.patch CVE-2015-0231.patch CVE-2014-9705.patch - CVE-2015-0273.patch CVE-2015-2301.patch CVE-2015-2305.patch - CVE-2015-2783.patch CVE-2015-2787.patch CVE-2015-3330.patch - CVE-2015-3329.patch) + 'php.ini.patch' 'apache.conf' 'php-fpm.conf.in.patch' + 'logrotate.d.php-fpm' 'php-fpm.service' 'php-fpm.tmpfiles' + 'suhosin.patch' + 'CVE-2014-3587.patch' 'CVE-2014-3597.patch' 'CVE-2014-3668.patch' + 'CVE-2014-3669.patch' 'CVE-2014-3670.patch' 'curl_embedded_null.patch' + 'CVE-2014-8142.patch' 'CVE-2015-0231.patch' 'CVE-2014-9705.patch' + 'CVE-2015-0273.patch' 'CVE-2015-2301.patch' 'CVE-2015-2305.patch' + 'CVE-2015-2783.patch' 'CVE-2015-2787.patch' 'CVE-2015-3330.patch' + 'CVE-2015-3329.patch') +sha1sums=('8772d7419511f9f066fb17929194b5492680ec9b' + 'SKIP' + '7b9ef5c3e0831154df0d6290aba0989ca90138ed' + 'b42a385359f5d033748d4d8f44a9f7a0469f628a' + '82776db01f70b9186ba455de22eb06fe193f1d30' + '2247fb95547feefdc898fc2c01bae1817ec2dc2a' + 'ce75999f51fa780c68e1575cca1d660ea60a5e64' + '2a3607973db41aa08f7aba11057218e2d88732b7' + '3c011681562bb620b1717b3829cb354461dd94d5' + '4d9fea0b7ab856c59ddbf722fe6c95b8e479af9b' + 'b5caa85fd1b76a3ece056ab5441852330989640b' + '9f2aa7c2514cb66204f9f5c3dc5f8ebdda238c78' + '4672c18ece397b2f99ad0c992f61220e210b2dc1' + '454e96af5cab1f649fceca61c0afb46ae73179f5' + '2f368143bcdaae4659a65103ffdeb71cac12c5cf' + 'ede78d11b7d4d6c304253bfd358607e160a3918a' + 'e97ea93d37ffbf6c3025281202d2e807facb4e7e' + '0ab48f282d62058318d08c44607aac89912f78d6' + 'b535103d79ba9791c22a841d5d72497dec3dd93d' + '7cb38769807eb7d35ff7f3eaf1cce408d8ad2676' + '066fe3a84e1aabaf45afe26470cd769b9e3ab79a' + '4968abe76ab18c15f85111b3e78dba0059f948ce' + '18e3f12ad04adf4cc59aa5862628ab0d032c76ef' + '4d9551ec6c2462cde45d0e556edf6d9e792c15b4' + '248dc92602721c193f3906f3eb7d98cd5499ba40' + '40fc97494110e9b312ea0f5bade8aa0b7043f40e') +validpgpkeys=('6E4F6AB321FDC07F2C332E3AC2BF0BC433CFC8B3' + '0BD78B5F97500D450838F95DFE857D9A90D90EC1' + '0A95E9A026542D53835E3F3A7DEC4E69FC9C83D7') + +prepare() { + cd ${srcdir} + + msg "Fix the suhosin patch" + patch -l -i suhosin.patch + sed -i 's/1997-2004/1997-2014/g' suhosin-patch-${_suhosinver}.patch + sed -i 's/1997-2012/1997-2014/g' suhosin-patch-${_suhosinver}.patch + + cd ${srcdir}/${_pkgbase}-${pkgver} + + # TODO: some doesn't apply + msg "Applying security patches (from Ubuntu)" + # patch -p1 -i ../CVE-2014-3587.patch + # patch -p1 -i ../CVE-2014-3597.patch + patch -p1 -i ../CVE-2014-3668.patch + patch -p1 -i ../CVE-2014-3669.patch + patch -p1 -i ../CVE-2014-3670.patch + patch -p1 -i ../curl_embedded_null.patch + patch -p1 -i ../CVE-2014-8142.patch + patch -p1 -i ../CVE-2015-0231.patch + patch -p1 -i ../CVE-2014-9705.patch + # patch -p1 -i ../CVE-2015-0273.patch + patch -p1 -i ../CVE-2015-2301.patch + patch -p1 -i ../CVE-2015-2305.patch + patch -p1 -i ../CVE-2015-2783.patch + patch -p1 -i ../CVE-2015-2787.patch + patch -p1 -i ../CVE-2015-3330.patch + patch -p1 -i ../CVE-2015-3329.patch + + msg "Applying suhosin patch" + patch -F3 -p1 -i ${srcdir}/suhosin-patch-${_suhosinver}.patch + + msg "Adjust paths" + patch -p0 -i ${srcdir}/php.ini.patch + patch -p0 -i ${srcdir}/php-fpm.conf.in.patch + # Just because our Apache 2.4 is configured with a threaded MPM by default does not mean we want to build a ZTS PHP. + # Let's supress this behaviour and build a SAPI that works fine with the prefork MPM. + sed '/APACHE_THREADED_MPM=/d' -i sapi/apache2handler/config.m4 -i configure + + # Allow php-tidy to compile with tidy-html5 + sed 's/buffio\.h/tidybuffio\.h/' -i ext/tidy/tidy.c +} build() { - phpconfig="--srcdir=../${pkgbase%53}-${pkgver} \ - --prefix=/usr \ - --sysconfdir=/etc/php \ - --localstatedir=/var \ - --with-layout=GNU \ - --with-config-file-path=/etc/php \ - --with-config-file-scan-dir=/etc/php/conf.d \ - --enable-inline-optimization \ - --disable-debug \ - --disable-rpath \ - --disable-static \ - --enable-shared \ - --mandir=/usr/share/man \ - --without-pear \ - " - - phpextensions="--enable-bcmath=shared \ - --enable-calendar=shared \ - --enable-dba=shared \ - --enable-exif=shared \ - --enable-ftp=shared \ - --enable-gd-native-ttf \ - --enable-intl=shared \ - --enable-json=shared \ - --enable-mbregex \ - --enable-mbstring \ - --enable-pdo \ - --enable-phar=shared \ - --enable-posix=shared \ - --enable-session \ - --enable-shmop=shared \ - --enable-soap=shared \ - --enable-sockets=shared \ - --enable-sqlite-utf8 \ - --enable-sysvmsg=shared \ - --enable-sysvsem=shared \ - --enable-sysvshm=shared \ - --enable-xml \ - --enable-zip=shared \ - --with-bz2=shared \ - --with-curl=shared \ - --with-enchant=shared,/usr \ - --with-freetype-dir=shared,/usr \ - --with-gd=shared \ - --with-gdbm=shared \ - --with-gettext=shared \ - --with-gmp=shared \ - --with-iconv=shared \ - --with-icu-dir=/usr \ - --with-imap-ssl=shared,/usr \ - --with-imap=shared,/usr \ - --with-jpeg-dir=shared,/usr \ - --with-kerberos=/usr \ - --with-ldap=shared \ - --with-ldap-sasl \ - --with-mcrypt=shared \ - --with-mhash \ - --with-mssql=shared \ - --with-mysql-sock=/var/run/mysqld/mysqld.sock \ - --with-mysql=shared,mysqlnd \ - --with-mysqli=shared,mysqlnd \ - --with-openssl=shared \ - --with-pcre-regex=/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-png-dir=shared,/usr \ - --with-pspell=shared \ - --with-regex=php \ - --with-snmp=shared \ - --with-sqlite3=shared,/usr \ - --with-sqlite=shared \ - --with-tidy=shared \ - --with-unixODBC=shared,/usr \ - --with-xmlrpc=shared \ - --with-xsl=shared \ - --with-zlib \ - --without-db2 \ - --without-db3 \ - " - - EXTENSION_DIR=/usr/lib/php/modules - export EXTENSION_DIR - PEAR_INSTALLDIR=/usr/share/pear - export PEAR_INSTALLDIR - - # -D_FORTIFY_SOURCE=2 will generate a warning, which will fail the configure script - unset CPPFLAGS - - msg "Fix the suhosin patch" - patch -l -i ${srcdir}/suhosin.patch - sed -i 's/1997-2004/1997-2014/g' ${srcdir}/suhosin-patch-${_suhosinver}.patch - sed -i 's/1997-2012/1997-2014/g' ${srcdir}/suhosin-patch-${_suhosinver}.patch - - cd ${srcdir}/${pkgbase%53}-${pkgver} - - # TODO: some doesn't apply - msg "Applying security patches (from Ubuntu)" - # patch -p1 -i ../CVE-2014-3587.patch - # patch -p1 -i ../CVE-2014-3597.patch - patch -p1 -i ../CVE-2014-3668.patch - patch -p1 -i ../CVE-2014-3669.patch - patch -p1 -i ../CVE-2014-3670.patch - patch -p1 -i ../curl_embedded_null.patch - patch -p1 -i ../CVE-2014-8142.patch - patch -p1 -i ../CVE-2015-0231.patch - patch -p1 -i ../CVE-2014-9705.patch - # patch -p1 -i ../CVE-2015-0273.patch - patch -p1 -i ../CVE-2015-2301.patch - patch -p1 -i ../CVE-2015-2305.patch - patch -p1 -i ../CVE-2015-2783.patch - patch -p1 -i ../CVE-2015-2787.patch - patch -p1 -i ../CVE-2015-3330.patch - patch -p1 -i ../CVE-2015-3329.patch - - msg "Applying suhosin patch" - patch -F3 -p1 -i ${srcdir}/suhosin-patch-${_suhosinver}.patch - - msg "Adjust paths" - patch -p0 -i ${srcdir}/php.ini.patch - patch -p0 -i ${srcdir}/php-fpm.conf.in.patch - patch -p1 -i ${srcdir}/freetype-path.patch - - # To workaround c-client linking problem - export IMAP_SHARED_LIBADD="-lssl" - - # php - mkdir ${srcdir}/build-php - cd ${srcdir}/build-php - ln -s ../${pkgbase%53}-${pkgver}/configure - ./configure ${phpconfig} \ - --disable-cgi \ - --with-readline \ - --enable-pcntl \ - ${phpextensions} - make - - # cgi and fcgi - # reuse the previous run; this will save us a lot of time - cp -a ${srcdir}/build-php ${srcdir}/build-cgi - cd ${srcdir}/build-cgi - ./configure ${phpconfig} \ - --disable-cli \ - --enable-cgi \ - ${phpextensions} - make - - # apache - cp -a ${srcdir}/build-php ${srcdir}/build-apache - cd ${srcdir}/build-apache - ./configure ${phpconfig} \ - --disable-cli \ - --with-apxs2 \ - ${phpextensions} - make - - # fpm - cp -a ${srcdir}/build-php ${srcdir}/build-fpm - cd ${srcdir}/build-fpm - ./configure ${phpconfig} \ - --disable-cli \ - --enable-fpm \ - --with-fpm-user=http \ - --with-fpm-group=http \ - ${phpextensions} - make - - # embed - cp -a ${srcdir}/build-php ${srcdir}/build-embed - cd ${srcdir}/build-embed - ./configure ${phpconfig} \ - --disable-cli \ - --enable-embed=shared \ - ${phpextensions} - make - - # pear - cp -a ${srcdir}/build-php ${srcdir}/build-pear - cd ${srcdir}/build-pear - ./configure ${phpconfig} \ - --disable-cgi \ - --with-readline \ - --enable-pcntl \ - --with-pear \ - ${phpextensions} - make + local _phpconfig="--srcdir=../${_pkgbase}-${pkgver} \ + --prefix=/usr \ + --sysconfdir=/etc/${pkgbase} \ + --localstatedir=/var \ + --libdir=/usr/lib/${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 \ + --enable-inline-optimization \ + --disable-debug \ + --disable-rpath \ + --disable-static \ + --enable-shared \ + --mandir=/usr/share/man \ + --without-pear \ + " + + local _phpextensions="--enable-bcmath=shared \ + --enable-calendar=shared \ + --enable-dba=shared \ + --enable-exif=shared \ + --enable-ftp=shared \ + --enable-gd-native-ttf \ + --enable-intl=shared \ + --enable-json=shared \ + --enable-mbregex \ + --enable-mbstring \ + --enable-pdo \ + --enable-phar=shared \ + --enable-posix=shared \ + --enable-session \ + --enable-shmop=shared \ + --enable-soap=shared \ + --enable-sockets=shared \ + --enable-sqlite-utf8 \ + --enable-sysvmsg=shared \ + --enable-sysvsem=shared \ + --enable-sysvshm=shared \ + --enable-xml \ + --enable-zip=shared \ + --with-bz2=shared \ + --with-curl=shared \ + --with-enchant=shared,/usr \ + --with-freetype-dir=shared,/usr \ + --with-gd=shared \ + --with-gdbm=shared \ + --with-gettext=shared \ + --with-gmp=shared \ + --with-iconv=shared \ + --with-icu-dir=/usr \ + --with-imap-ssl=shared,/usr \ + --with-imap=shared,/usr \ + --with-kerberos=/usr \ + --with-jpeg-dir=shared,/usr \ + --with-ldap=shared \ + --with-ldap-sasl \ + --with-mcrypt=shared \ + --with-mhash \ + --with-mssql=shared \ + --with-mysql-sock=/run/mysqld/mysqld.sock \ + --with-mysql=shared,mysqlnd \ + --with-mysqli=shared,mysqlnd \ + --with-openssl=shared \ + --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-png-dir=shared,/usr \ + --with-pspell=shared \ + --with-regex=php \ + --with-snmp=shared \ + --with-sqlite3=shared,/usr \ + --with-sqlite=shared \ + --with-tidy=shared \ + --with-unixODBC=shared,/usr \ + --with-xmlrpc=shared \ + --with-xsl=shared \ + --with-zlib \ + --without-db2 \ + --without-db3 \ + " + + export EXTENSION_DIR=/usr/lib/${pkgbase}/modules + export PEAR_INSTALLDIR=/usr/share/${pkgbase}/pear + + cd ${srcdir}/${_pkgbase}-${pkgver} + + # -D_FORTIFY_SOURCE=2 will generate a warning, which will fail the configure script + unset CPPFLAGS + # To workaround c-client linking problem + export IMAP_SHARED_LIBADD="-lssl" + + # php + mkdir -p ${srcdir}/build-php + cd ${srcdir}/build-php + ln -sf ../${_pkgbase}-${pkgver}/configure + ./configure ${_phpconfig} \ + --disable-cgi \ + --with-readline \ + --enable-pcntl \ + ${_phpextensions} + make + + # cgi and fcgi + # reuse the previous run; this will save us a lot of time + cp -Ta ${srcdir}/build-php ${srcdir}/build-cgi + cd ${srcdir}/build-cgi + ./configure ${_phpconfig} \ + --disable-cli \ + --enable-cgi \ + ${_phpextensions} + make + + # apache + cp -Ta ${srcdir}/build-php ${srcdir}/build-apache + cd ${srcdir}/build-apache + ./configure ${_phpconfig} \ + --disable-cli \ + --with-apxs2 \ + ${_phpextensions} + make + + # fpm + cp -Ta ${srcdir}/build-php ${srcdir}/build-fpm + cd ${srcdir}/build-fpm + ./configure ${_phpconfig} \ + --disable-cli \ + --enable-fpm \ + --with-fpm-user=http \ + --with-fpm-group=http \ + ${_phpextensions} + make + + # embed + cp -Ta ${srcdir}/build-php ${srcdir}/build-embed + cd ${srcdir}/build-embed + ./configure ${_phpconfig} \ + --disable-cli \ + --enable-embed=shared \ + ${_phpextensions} + make + + # pear + sed -i 's#@$(top_builddir)/sapi/cli/php $(PEAR_INSTALL_FLAGS) pear/install-pear-nozlib.phar -d#@$(top_builddir)/sapi/cli/php $(PEAR_INSTALL_FLAGS) pear/install-pear-nozlib.phar -p $(bindir)/php$(program_suffix) -d#' ${srcdir}/php-${pkgver}/pear/Makefile.frag + cp -Ta ${srcdir}/build-php ${srcdir}/build-pear + cd ${srcdir}/build-pear + ./configure ${_phpconfig} \ + --disable-cgi \ + --with-readline \ + --enable-pcntl \ + --with-pear \ + ${_phpextensions} + make } -# check() { -# cd ${srcdir}/build-php -# make test -# } - package_php53() { - pkgdesc='An HTML-embedded scripting language - Legacy 5.3 version' - depends=('pcre' 'libxml2' 'bzip2' 'curl') - provides=('php' 'php-fileinfo' 'php-gmp' 'php-curl') - conflicts=('php' 'php-fileinfo' 'php-gmp' 'php-curl') - backup=('etc/php/php.ini') - - cd ${srcdir}/build-php - make -j1 INSTALL_ROOT=${pkgdir} install - install -d -m755 ${pkgdir}/usr/share/pear - # install php.ini - install -D -m644 ${srcdir}/${pkgbase%53}-${pkgver}/php.ini-production ${pkgdir}/etc/php/php.ini - install -d -m755 ${pkgdir}/etc/php/conf.d/ - - # remove static modules - rm -f ${pkgdir}/usr/lib/php/modules/*.a - # remove modules provided by sub packages - rm -f ${pkgdir}/usr/lib/php/modules/{enchant,gd,imap,intl,ldap,mcrypt,mssql,odbc,pdo_odbc,pgsql,pdo_pgsql,pspell,snmp,sqlite3,pdo_sqlite,tidy,xsl}.so - # remove empty directory - rmdir ${pkgdir}/usr/include/php/include + pkgdesc='An HTML-embedded scripting language - Legacy 5.3 version' + depends=('pcre' 'libxml2' 'curl' 'libzip') + backup=("etc/${pkgbase}/php.ini") + provides=("${_pkgbase}=$pkgver") + + cd ${srcdir}/build-php + make -j1 INSTALL_ROOT=${pkgdir} install + + # install php.ini + 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,ldap,mcrypt,mssql,odbc,pdo_odbc,pgsql,pdo_pgsql,pspell,snmp,sqlite3,pdo_sqlite,tidy,xsl,pdo_dblib}.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.${pkgbase/php/phar} ${pkgdir}/usr/bin/${pkgbase/php/phar} + + # rename executables + mv ${pkgdir}/usr/bin/phar.{phar,${pkgbase/php/phar}} + + # fix paths in executables + sed -i "/^includedir=/c \includedir=/usr/include/${pkgbase}" ${pkgdir}/usr/bin/${pkgbase/php/phpize} + sed -i "/^include_dir=/c \include_dir=/usr/include/${pkgbase}" ${pkgdir}/usr/bin/${pkgbase/php/php-config} + + # make phpize use php-config53 + sed -i "/^\[ --with-php-config=/c \[ --with-php-config=PATH Path to php-config [${pkgbase/php/php-config}]], ${pkgbase/php/php-config}, no)" ${pkgdir}/usr/lib/${pkgbase}/build/phpize.m4 } package_php53-cgi() { - pkgdesc='CGI and FCGI SAPI for PHP' - depends=('php53') - conflicts=('php-cgi') - provides=('php-cgi') + pkgdesc='CGI and FCGI SAPI for PHP' + depends=("${pkgbase}") + provides=("${_pkgbase}-cgi=$pkgver") - install -D -m755 ${srcdir}/build-cgi/sapi/cgi/php-cgi ${pkgdir}/usr/bin/php-cgi + install -D -m755 ${srcdir}/build-cgi/sapi/cgi/php-cgi ${pkgdir}/usr/bin/${pkgbase}-cgi } package_php53-apache() { - pkgdesc='Apache SAPI for PHP' - depends=('php53' 'apache') - conflicts=('php-apache') - provides=('php-apache') - backup=('etc/httpd/conf/extra/php5_module.conf') - - install -D -m755 ${srcdir}/build-apache/libs/libphp5.so ${pkgdir}/usr/lib/httpd/modules/libphp5.so - install -D -m644 ${srcdir}/apache.conf ${pkgdir}/etc/httpd/conf/extra/php5_module.conf + pkgdesc='Apache SAPI for PHP' + depends=("${pkgbase}" 'apache') + provides=("${_pkgbase}-apache=$pkgver") + backup=("etc/httpd/conf/extra/${pkgbase}_module.conf") + install='php-apache.install' + + install -D -m755 ${srcdir}/build-apache/libs/libphp5.so ${pkgdir}/usr/lib/httpd/modules/lib${pkgbase}.so + install -D -m644 ${srcdir}/apache.conf ${pkgdir}/etc/httpd/conf/extra/${pkgbase}_module.conf } package_php53-fpm() { - pkgdesc='FastCGI Process Manager for PHP' - depends=('php53') - conflicts=('php-fpm') - provides=('php-fpm') - backup=('etc/php/php-fpm.conf') - - install -D -m755 ${srcdir}/build-fpm/sapi/fpm/php-fpm ${pkgdir}/usr/bin/php-fpm - install -D -m644 ${srcdir}/build-fpm/sapi/fpm/php-fpm.8 ${pkgdir}/usr/share/man/man8/php-fpm.8 - install -D -m644 ${srcdir}/build-fpm/sapi/fpm/php-fpm.conf ${pkgdir}/etc/php/php-fpm.conf - install -D -m644 ${srcdir}/logrotate.d.php-fpm ${pkgdir}/etc/logrotate.d/php-fpm - install -d -m755 ${pkgdir}/etc/php/fpm.d + pkgdesc='FastCGI Process Manager for PHP' + depends=("${pkgbase}" 'systemd') + provides=("${_pkgbase}-fpm=$pkgver") + backup=("etc/${pkgbase}/php-fpm.conf") + install='php-fpm.install' + + install -d -m755 ${pkgdir}/usr/bin + install -D -m755 ${srcdir}/build-fpm/sapi/fpm/php-fpm ${pkgdir}/usr/bin/${pkgbase}-fpm + + install -D -m644 ${srcdir}/build-fpm/sapi/fpm/php-fpm.8 ${pkgdir}/usr/share/man/man8/${pkgbase}-fpm.8 + install -D -m644 ${srcdir}/build-fpm/sapi/fpm/php-fpm.conf ${pkgdir}/etc/${pkgbase}/php-fpm.conf + + install -d -m755 ${pkgdir}/etc/${pkgbase}/fpm.d + install -D -m644 ${srcdir}/php-fpm.tmpfiles ${pkgdir}/usr/lib/tmpfiles.d/${pkgbase}-fpm.conf + install -D -m644 ${srcdir}/php-fpm.service ${pkgdir}/usr/lib/systemd/system/${pkgbase}-fpm.service + + install -d -m755 ${pkgdir}/etc/logrotate.d + install -D -m644 ${srcdir}/logrotate.d.php-fpm ${pkgdir}/etc/logrotate.d/${pkgbase}-fpm } package_php53-embed() { - pkgdesc='Embed SAPI for PHP' - depends=('php53') - conflicts=('php-embed') - provides=('php-embed') + pkgdesc='Embedded PHP SAPI library' + depends=("${pkgbase}") + provides=("${_pkgbase}-embed=$pkgver") + + install -D -m755 ${srcdir}/build-embed/libs/libphp5.so ${pkgdir}/usr/lib/libphp53.so + install -D -m644 ${srcdir}/${_pkgbase}-${pkgver}/sapi/embed/php_embed.h ${pkgdir}/usr/include/${pkgbase}/sapi/embed/php_embed.h +} + +package_php53-dblib() { + pkgdesc='dblib module for PHP' + depends=("${pkgbase}") + provides=("${_pkgbase}-dblib=$pkgver") - install -D -m755 ${srcdir}/build-embed/libs/libphp5.so ${pkgdir}/usr/lib/libphp5.so - install -D -m644 ${srcdir}/${pkgbase%53}-${pkgver}/sapi/embed/php_embed.h ${pkgdir}/usr/include/php/sapi/embed/php_embed.h + install -D -m755 ${srcdir}/build-php/modules/pdo_dblib.so ${pkgdir}/usr/lib/${pkgbase}/modules/pdo_dblib.so } package_php53-pear() { - pkgdesc='PHP Extension and Application Repository' - depends=('php53') - conflicts=('php-pear') - provides=('php-pear') - backup=('etc/php/pear.conf') - - cd ${srcdir}/build-pear - make -j1 install-pear INSTALL_ROOT=${pkgdir} - local i - while read i; do - [ ! -e "$i" ] || rm -rf "$i" - done < <(find ${pkgdir} -name '.*') + pkgdesc='PHP Extension and Application Repository' + depends=("${pkgbase}") + provides=("${_pkgbase}-pear=$pkgver") + backup=("etc/${pkgbase}/pear.conf") + + cd ${srcdir}/build-pear + make -j1 install-pear INSTALL_ROOT=${pkgdir} + rm -rf ${pkgdir}{/usr/share/${pkgbase}/pear,}/.{channels,depdb,depdblock,filemap,lock,registry} + + mv ${pkgdir}/usr/bin/{pear,${pkgbase/php/pear}} + mv ${pkgdir}/usr/bin/{peardev,${pkgbase/php/peardev}} + mv ${pkgdir}/usr/bin/{pecl,${pkgbase/php/pecl}} } package_php53-enchant() { - depends=('php53' 'enchant') - conflicts=('php-enchant') - provides=('php-enchant') - pkgdesc='enchant module for PHP' - install -D -m755 ${srcdir}/build-php/modules/enchant.so ${pkgdir}/usr/lib/php/modules/enchant.so + pkgdesc='enchant module for PHP' + depends=("${pkgbase}" 'enchant') + provides=("${_pkgbase}-enchant=$pkgver") + + install -D -m755 ${srcdir}/build-php/modules/enchant.so ${pkgdir}/usr/lib/${pkgbase}/modules/enchant.so } package_php53-gd() { - depends=('php53' 'libpng' 'libjpeg' 'freetype2') - conflicts=('php-gd') - provides=('php-gd') - pkgdesc='gd module for PHP' - install -D -m755 ${srcdir}/build-php/modules/gd.so ${pkgdir}/usr/lib/php/modules/gd.so + pkgdesc='gd module for PHP' + depends=("${pkgbase}" 'libpng' 'libjpeg' 'freetype2') + provides=("${_pkgbase}-gd=$pkgver") + + install -D -m755 ${srcdir}/build-php/modules/gd.so ${pkgdir}/usr/lib/${pkgbase}/modules/gd.so } package_php53-imap() { - depends=('php53' 'c-client') - conflicts=('php-imap') - provides=('php-imap') + pkgdesc='imap module for PHP' + depends=("${pkgbase}" 'c-client') + provides=("${_pkgbase}-imap=$pkgver") - install -D -m755 ${srcdir}/build-php/modules/imap.so ${pkgdir}/usr/lib/php/modules/imap.so + install -D -m755 ${srcdir}/build-php/modules/imap.so ${pkgdir}/usr/lib/${pkgbase}/modules/imap.so } package_php53-intl() { - depends=('php53' 'icu') - conflicts=('php-intl') - provides=('php-intl') - pkgdesc='intl module for PHP' - install -D -m755 ${srcdir}/build-php/modules/intl.so ${pkgdir}/usr/lib/php/modules/intl.so + pkgdesc='intl module for PHP' + depends=("${pkgbase}" 'icu') + provides=("${_pkgbase}-intl=$pkgver") + + install -D -m755 ${srcdir}/build-php/modules/intl.so ${pkgdir}/usr/lib/${pkgbase}/modules/intl.so } package_php53-ldap() { - depends=('php53' 'libldap') - conflicts=('php-ldap') - provides=('php-ldap') - pkgdesc='ldap module for PHP' - install -D -m755 ${srcdir}/build-php/modules/ldap.so ${pkgdir}/usr/lib/php/modules/ldap.so + pkgdesc='ldap module for PHP' + depends=("${pkgbase}" 'libldap') + provides=("${pkgbase}-ldap=$pkgver") + + install -D -m755 ${srcdir}/build-php/modules/ldap.so ${pkgdir}/usr/lib/${pkgbase}/modules/ldap.so } package_php53-mcrypt() { - depends=('php53' 'libmcrypt' 'libltdl') - conflicts=('php-mcrypt') - provides=('php-mcrypt') - pkgdesc='mcrypt module for PHP' - install -D -m755 ${srcdir}/build-php/modules/mcrypt.so ${pkgdir}/usr/lib/php/modules/mcrypt.so + pkgdesc='mcrypt module for PHP' + depends=("${pkgbase}" 'libmcrypt' 'libltdl') + provides=("${_pkgbase}-mcrypt=$pkgver") + + install -D -m755 ${srcdir}/build-php/modules/mcrypt.so ${pkgdir}/usr/lib/${pkgbase}/modules/mcrypt.so } package_php53-mssql() { - depends=('php53' 'freetds') - conflicts=('php-mssql') - provides=('php-mssql') - pkgdesc='mssql module for PHP' - install -D -m755 ${srcdir}/build-php/modules/mssql.so ${pkgdir}/usr/lib/php/modules/mssql.so + pkgdesc='mssql module for PHP' + depends=("${pkgbase}" 'freetds') + provides=("${_pkgbase}-mssql=$pkgver") + + install -D -m755 ${srcdir}/build-php/modules/mssql.so ${pkgdir}/usr/lib/${pkgbase}/modules/mssql.so } package_php53-odbc() { - depends=('php53' 'unixodbc') - conflicts=('php-odbc') - provides=('php-odbc') - pkgdesc='ODBC modules for PHP' - install -D -m755 ${srcdir}/build-php/modules/odbc.so ${pkgdir}/usr/lib/php/modules/odbc.so - install -D -m755 ${srcdir}/build-php/modules/pdo_odbc.so ${pkgdir}/usr/lib/php/modules/pdo_odbc.so + pkgdesc='ODBC modules for PHP' + depends=("${pkgbase}" 'unixodbc') + provides=("${_pkgbase}-odbc=$pkgver") + + install -D -m755 ${srcdir}/build-php/modules/odbc.so ${pkgdir}/usr/lib/${pkgbase}/modules/odbc.so + install -D -m755 ${srcdir}/build-php/modules/pdo_odbc.so ${pkgdir}/usr/lib/${pkgbase}/modules/pdo_odbc.so } package_php53-pgsql() { - depends=('php53' 'postgresql-libs') - conflicts=('php-pgsql') - provides=('php-pgsql') - pkgdesc='PostgreSQL modules for PHP' - install -D -m755 ${srcdir}/build-php/modules/pgsql.so ${pkgdir}/usr/lib/php/modules/pgsql.so - install -D -m755 ${srcdir}/build-php/modules/pdo_pgsql.so ${pkgdir}/usr/lib/php/modules/pdo_pgsql.so + pkgdesc='PostgreSQL modules for PHP' + depends=("${pkgbase}" 'postgresql-libs') + provides=("${_pkgbase}-pgsql=$pkgver") + + install -D -m755 ${srcdir}/build-php/modules/pgsql.so ${pkgdir}/usr/lib/${pkgbase}/modules/pgsql.so + install -D -m755 ${srcdir}/build-php/modules/pdo_pgsql.so ${pkgdir}/usr/lib/${pkgbase}/modules/pdo_pgsql.so } package_php53-pspell() { - depends=('php53' 'aspell') - conflicts=('php-aspell') - provides=('php-aspell') - pkgdesc='pspell module for PHP' - install -D -m755 ${srcdir}/build-php/modules/pspell.so ${pkgdir}/usr/lib/php/modules/pspell.so + pkgdesc='pspell module for PHP' + depends=("${pkgbase}" 'aspell') + provides=("${_pkgbase}-pspell=$pkgver") + + install -D -m755 ${srcdir}/build-php/modules/pspell.so ${pkgdir}/usr/lib/${pkgbase}/modules/pspell.so } package_php53-snmp() { - depends=('php53' 'net-snmp') - conflicts=('php-snmp') - provides=('php-snmp') - pkgdesc='snmp module for PHP' - install -D -m755 ${srcdir}/build-php/modules/snmp.so ${pkgdir}/usr/lib/php/modules/snmp.so + pkgdesc='snmp module for PHP' + depends=("${pkgbase}" 'net-snmp') + provides=("${_pkgbase}-snmp=$pkgver") + + install -D -m755 ${srcdir}/build-php/modules/snmp.so ${pkgdir}/usr/lib/${pkgbase}/modules/snmp.so } package_php53-sqlite() { - depends=('php53' 'sqlite') - conflicts=('php-sqlite') - provides=('php-sqlite') - pkgdesc='sqlite module for PHP' - install -D -m755 ${srcdir}/build-php/modules/sqlite3.so ${pkgdir}/usr/lib/php/modules/sqlite3.so - install -D -m755 ${srcdir}/build-php/modules/pdo_sqlite.so ${pkgdir}/usr/lib/php/modules/pdo_sqlite.so + pkgdesc='sqlite module for PHP' + depends=("${pkgbase}" 'sqlite') + provides=("${_pkgbase}-sqlite=$pkgver") + + install -D -m755 ${srcdir}/build-php/modules/sqlite3.so ${pkgdir}/usr/lib/${pkgbase}/modules/sqlite3.so + install -D -m755 ${srcdir}/build-php/modules/pdo_sqlite.so ${pkgdir}/usr/lib/${pkgbase}/modules/pdo_sqlite.so } package_php53-tidy() { - depends=('php53' 'tidyhtml') - conflicts=('php-tidy') - provides=('php-tidy') - pkgdesc='tidy module for PHP' - install -D -m755 ${srcdir}/build-php/modules/tidy.so ${pkgdir}/usr/lib/php/modules/tidy.so -} + pkgdesc='tidy module for PHP' + depends=("${pkgbase}" 'tidyhtml') + provides=("${_pkgbase}-tidy=$pkgver") -package_php53-xsl() { - depends=('php53' 'libxslt') - conflicts=('php-xsl') - provides=('php-xsl') - pkgdesc='xsl module for PHP' - install -D -m755 ${srcdir}/build-php/modules/xsl.so ${pkgdir}/usr/lib/php/modules/xsl.so + install -D -m755 ${srcdir}/build-php/modules/tidy.so ${pkgdir}/usr/lib/${pkgbase}/modules/tidy.so } -sha1sums=('6e9e492c6d5853d063ddb9a4dbef60b8e5d87444' - '7b9ef5c3e0831154df0d6290aba0989ca90138ed' - '462927954b4074487b46722b0442185100def240' - '82776db01f70b9186ba455de22eb06fe193f1d30' - 'ea9a9101b9678a8461d9dddfc0df2a4412a4cb5d' - 'b6a661523535a8e7e60d4a0c054d8f6066edf63e' - '4d9fea0b7ab856c59ddbf722fe6c95b8e479af9b' - '8f19ee0e351aa2cdc9b110db4e33b4c8f6131b12' - 'b5caa85fd1b76a3ece056ab5441852330989640b' - '9f2aa7c2514cb66204f9f5c3dc5f8ebdda238c78' - '4672c18ece397b2f99ad0c992f61220e210b2dc1' - '454e96af5cab1f649fceca61c0afb46ae73179f5' - '2f368143bcdaae4659a65103ffdeb71cac12c5cf' - 'ede78d11b7d4d6c304253bfd358607e160a3918a' - 'e97ea93d37ffbf6c3025281202d2e807facb4e7e' - '0ab48f282d62058318d08c44607aac89912f78d6' - 'b535103d79ba9791c22a841d5d72497dec3dd93d' - '7cb38769807eb7d35ff7f3eaf1cce408d8ad2676' - '066fe3a84e1aabaf45afe26470cd769b9e3ab79a' - '4968abe76ab18c15f85111b3e78dba0059f948ce' - '18e3f12ad04adf4cc59aa5862628ab0d032c76ef' - '4d9551ec6c2462cde45d0e556edf6d9e792c15b4' - '248dc92602721c193f3906f3eb7d98cd5499ba40' - '40fc97494110e9b312ea0f5bade8aa0b7043f40e') +package_php53-xsl() { + pkgdesc='xsl module for PHP' + depends=("${pkgbase}" 'libxslt') + provides=("${_pkgbase}-xsl=$pkgver") -# Fix for AUR -pkgdesc='An HTML-embedded scripting language - Legacy 5.3 version' + install -D -m755 ${srcdir}/build-php/modules/xsl.so ${pkgdir}/usr/lib/${pkgbase}/modules/xsl.so +} diff --git a/logrotate.d.php-fpm b/logrotate.d.php-fpm index 7a1ba2597d6e..a6dd8c21f436 100644 --- a/logrotate.d.php-fpm +++ b/logrotate.d.php-fpm @@ -1,6 +1,8 @@ -/var/log/php-fpm.log { +/var/log/php53-fpm.log { missingok + notifempty + delaycompress postrotate - /etc/rc.d/php-fpm logrotate >/dev/null || true + /bin/kill -SIGUSR1 `cat /run/php53-fpm/php-fpm.pid 2>/dev/null` 2>/dev/null || true endscript } diff --git a/php-apache.install b/php-apache.install new file mode 100644 index 000000000000..cda7e5bd0e4a --- /dev/null +++ b/php-apache.install @@ -0,0 +1,11 @@ +post_install() { + echo "You will need to add the following line after the existing LoadModule instructions in /etc/httpd/conf/httpd.conf :" + echo "LoadModule php5_module modules/libphp53.so" + echo + echo "Additionally, include this line at the end of /etc/httpd/conf/httpd.conf if you want .php files to be handled by php 5.3 :" + echo "Include conf/extra/php53_module.conf" + echo + echo "Be aware that ONLY A SINGLE PHP MODULE can be loaded into an Apache instance." + echo "If you want php 5 and php 7 to cohabitate, you'll have to use another method such as php-fpm, fcgi or cgi for the other PHP version." +} + diff --git a/php-fpm.conf.in.patch b/php-fpm.conf.in.patch index ca8f92083616..349d013e69ac 100644 --- a/php-fpm.conf.in.patch +++ b/php-fpm.conf.in.patch @@ -2,10 +2,10 @@ +++ sapi/fpm/php-fpm.conf.in 2012-03-01 19:50:48.549947258 +0100 @@ -12,7 +12,7 @@ ; Relative path can also be used. They will be prefixed by: - ; - the global prefix if it's been set (-p arguement) + ; - the global prefix if it's been set (-p argument) ; - @prefix@ otherwise -;include=etc/fpm.d/*.conf -+;include=/etc/php/fpm.d/*.conf ++;include=/etc/php53/fpm.d/*.conf ;;;;;;;;;;;;;;;;;; ; Global Options ; @@ -14,7 +14,7 @@ ; Note: the default prefix is @EXPANDED_LOCALSTATEDIR@ ; Default Value: none -;pid = run/php-fpm.pid -+pid = run/php-fpm/php-fpm.pid ++pid = run/php53-fpm/php-fpm.pid ; Error log file ; If it's set to "syslog", log is sent to syslogd instead of being written @@ -23,8 +23,8 @@ ; '/path/to/unix/socket' - to listen on a unix socket. ; Note: This value is mandatory. -listen = 127.0.0.1:9000 -+;listen = 127.0.0.1:9000 -+listen = /var/run/php-fpm/php-fpm.sock ++;listen = 127.0.0.1:9001 ++listen = /run/php53-fpm/php-fpm.sock ; Set listen(2) backlog. ; Default Value: 128 (-1 on FreeBSD and OpenBSD) diff --git a/php-fpm.install b/php-fpm.install new file mode 100644 index 000000000000..539b13a9b694 --- /dev/null +++ b/php-fpm.install @@ -0,0 +1,9 @@ +post_install() { + if [[ ! -d run/php53-fpm ]]; then + usr/bin/systemd-tmpfiles --create php53-fpm.conf + fi +} + +post_upgrade() { + post_install +} diff --git a/php-fpm.service b/php-fpm.service new file mode 100644 index 000000000000..2c31af90d9f3 --- /dev/null +++ b/php-fpm.service @@ -0,0 +1,13 @@ +[Unit] +Description=The PHP 5.3 FastCGI Process Manager +After=syslog.target network.target + +[Service] +Type=simple +PIDFile=/run/php53-fpm/php-fpm.pid +PrivateTmp=true +ExecStart=/usr/bin/php53-fpm --nodaemonize --pid /run/php53-fpm/php-fpm.pid +ExecReload=/bin/kill -USR2 $MAINPID + +[Install] +WantedBy=multi-user.target diff --git a/php-fpm.tmpfiles b/php-fpm.tmpfiles new file mode 100644 index 000000000000..1f14f6c012ca --- /dev/null +++ b/php-fpm.tmpfiles @@ -0,0 +1 @@ +d /run/php53-fpm 755 root root diff --git a/php.ini.patch b/php.ini.patch index 87b1aef919ec..67e8b00c1049 100644 --- a/php.ini.patch +++ b/php.ini.patch @@ -5,7 +5,7 @@ ; *NOT* affected by whether Safe Mode is turned On or Off. ; http://php.net/open-basedir -;open_basedir = -+open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/ ++open_basedir = /srv/http/:/home/:/tmp/:/usr/share/php53/pear/:/usr/share/webapps/ ; This directive allows you to disable certain functions for security reasons. ; It receives a comma-delimited list of function names. This directive is @@ -14,7 +14,7 @@ ; UNIX: "/path1:/path2" -;include_path = ".:/php/includes" -+include_path = ".:/usr/share/pear" ++include_path = ".:/usr/share/php53/pear" ; ; Windows: "\path1;\path2" ;include_path = ".;c:\php\includes" @@ -23,7 +23,7 @@ ; Directory in which the loadable extensions (modules) reside. ; http://php.net/extension-dir -; extension_dir = "./" -+extension_dir = "/usr/lib/php/modules/" ++extension_dir = "/usr/lib/php53/modules/" ; On windows: ; extension_dir = "ext" |