Subject: [alpine-aports] [PATCH 2/2] main/php5: reuse community/php7 APKBUILD to build this one

From: Valery Kartel <[email-masked]>
Date: Fri, 9 Dec 2016 16:46:02 +0200

--
synchronized with php7 APKBUILD
php5 specific extensions: mssql, mysql are there
all features implemented in php7 are now in php5

to switch system-default php binary just run:
'apk fix php5-common'
'apk fix php7-common'
---
 main/php5/APKBUILD                                 | 671 ++++++++-------------
 main/php5/gd-iconv.patch                           |  45 --
 main/php5/includedir.patch                         |  41 ++
 ...p-install-pear-xml.patch => install-pear.patch} |   0
 main/php5/php-fpm.patch                            | 534 ++++++++++++++++
 main/php5/php5-common.pre-deinstall                |   5 +
 main/php5/php5-common.pre-upgrade                  |   7 +
 main/php5/php5-common.trigger                      |   9 +
 main/php5/{php-fpm.initd => php5-fpm.initd}        |  35 +-
 main/php5/php5-fpm.logrotate                       |  13 +
 main/php5/php5.post-upgrade                        |  11 -
 main/php5/tidy-buffio.patch                        |  11 +
 12 files changed, 877 insertions(+), 505 deletions(-)
 delete mode 100644 main/php5/gd-iconv.patch
 create mode 100644 main/php5/includedir.patch
 rename main/php5/{php-install-pear-xml.patch => install-pear.patch} (100%)
 create mode 100644 main/php5/php-fpm.patch
 create mode 100644 main/php5/php5-common.pre-deinstall
 create mode 100644 main/php5/php5-common.pre-upgrade
 create mode 100644 main/php5/php5-common.trigger
 rename main/php5/{php-fpm.initd => php5-fpm.initd} (73%)
 create mode 100644 main/php5/php5-fpm.logrotate
 delete mode 100644 main/php5/php5.post-upgrade
 create mode 100644 main/php5/tidy-buffio.patch

diff --git a/main/php5/APKBUILD b/main/php5/APKBUILD
index 69cda09009..89c3faaf12 100644
--- a/main/php5/APKBUILD
+++ b/main/php5/APKBUILD
@@ -1,518 +1,337 @@
+# Contributor: Valery Kartel <[email-masked]>
 # Contributor: Andy Blyler <[email-masked]>
 # Contributor: Łukasz Jendrysik <[email-masked]>
 # Contributor: Carlo Landmeter <[email-masked]>
 # Maintainer: Matt Smith <[email-masked]>
+provides=php
 pkgname=php5
 pkgver=5.6.29
 pkgrel=0
-pkgdesc="The PHP language runtime engine"
+_apiver="20131106"
+pkgdesc="The PHP language runtime engine - 5th branch"
 url="http://www.php.net/"
 arch="all"
 license="PHP-3"
-depends="$pkgname-cli"
-depends_dev="$pkgname-cli pcre-dev"
-install="$pkgname.post-upgrade"
-provides="php"
-makedepends="
-	$depends_dev
-	apache2-dev
-	apr-dev
-	apr-util-dev
-	aspell-dev
-	bzip2-dev
-	curl-dev
-	db-dev
-	enchant-dev
-	expat-dev
-	freetds-dev
-	freetype-dev
-	gdbm-dev
-	gettext-dev
-	gmp-dev
-	icu-dev
-	imap-dev
-	libevent-dev
-	libgcrypt-dev
-	libjpeg-turbo-dev
-	libmcrypt-dev
-	libpng-dev
-	libtool
-	libxml2-dev
-	libxslt-dev
-	mariadb-dev
-	net-snmp-dev
-	openldap-dev
-	libressl-dev
-	postgresql-dev
-	readline-dev
-	sqlite-dev
-	unixodbc-dev
-	zlib-dev
-	autoconf
-	bison
+options=""
+install="$pkgname-common.pre-upgrade $pkgname-common.pre-deinstall"
+triggers="$pkgname-common.trigger=/usr/bin"
+depends="$pkgname-common"
+depends_dev="$pkgname-pear"
+depends_imap="-- $depends_recode"
+depends_mysql="-- $depends_recode"
+depends_mysqlnd="$pkgname-mysqli $depends_mysqli"
+depends_pdo_mysql="$pkgname-pdo $depends_pdo"
+depends_pdo_odbc="$pkgname-pdo $depends_pdo"
+depends_pdo_pgsql="$pkgname-pdo $depends_pdo"
+depends_pdo_sqlite="$pkgname-pdo $depends_pdo"
+depends_dom="$pkgname-xml $depends_xml"
+depends_soap="$pkgname-xml $depends_xml"
+depends_wddx="$pkgname-xml $depends_xml"
+depends_xmlrpc="$pkgname-xml $depends_xml"
+depends_xmlreader="$pkgname-dom $depends_dom"
+depends_xsl="$pkgname-dom $depends_dom"
+_prefix_opcache="zend_"
+makedepends="autoconf bison re2c apache2-dev libxml2-dev libxslt-dev libzip-dev bzip2-dev zlib-dev
+	aspell-dev enchant-dev expat-dev pcre-dev curl-dev gmp-dev icu-dev imap-dev
+	libical-dev libressl-dev openldap-dev net-snmp-dev db-dev krb5-dev gdbm-dev sqlite-dev
+	freetds-dev mariadb-dev postgresql-dev unixodbc-dev freetype-dev tidyhtml-dev libxpm-dev
+	libpng-dev libwebp-dev libjpeg-turbo-dev libmcrypt-dev gsoap-dev recode-dev
+	readline-dev gettext-dev
 	"
-subpackages="$pkgname-dbg $pkgname-dev $pkgname-doc $pkgname-common::noarch $pkgname-cgi
-	$pkgname-cli $pkgname-fpm $pkgname-apache2 $pkgname-embed
-	$pkgname-phpdbg
-
-	$pkgname-pear::noarch
-	$pkgname-bcmath
-	$pkgname-bz2
-	$pkgname-calendar
-	$pkgname-ctype
-	$pkgname-curl:_curl
-	$pkgname-dba
-	$pkgname-dom
-	$pkgname-enchant
-	$pkgname-exif
-	$pkgname-ftp
-	$pkgname-gd
-	$pkgname-gettext
-	$pkgname-gmp
-	$pkgname-iconv
-	$pkgname-imap
-	$pkgname-intl
-	$pkgname-json
-	$pkgname-ldap
-	$pkgname-mcrypt
-	$pkgname-mysql
-	$pkgname-mysqli
-	$pkgname-odbc
-	$pkgname-openssl
-	$pkgname-pcntl
-	$pkgname-pdo
-	$pkgname-pdo_mysql
-	$pkgname-pdo_odbc
-	$pkgname-pdo_pgsql
-	$pkgname-pdo_sqlite
-	$pkgname-pgsql
-	$pkgname-phar
-	$pkgname-posix
-	$pkgname-pspell
-	$pkgname-shmop
-	$pkgname-snmp
-	$pkgname-soap
-	$pkgname-sockets
-	$pkgname-sqlite3
-	$pkgname-sysvmsg
-	$pkgname-sysvsem
-	$pkgname-sysvshm
-	$pkgname-xml
-	$pkgname-xmlreader
-	$pkgname-xmlrpc
-	$pkgname-xsl
-	$pkgname-zip
-	$pkgname-zlib
-	$pkgname-mssql
-	$pkgname-pdo_dblib
-	$pkgname-wddx
-	$pkgname-opcache
+source="http://php.net/distributions/$provides-$pkgver.tar.bz2
+	$pkgname-fpm.initd
+	$pkgname-fpm.logrotate
+	$pkgname-module.conf
+	install-pear.patch
+	tidy-buffio.patch
+	includedir.patch
+	php-fpm.patch
 	"
-
-source="http://php.net/distributions/php-$pkgver.tar.bz2
-	php-fpm.initd
-	php5-module.conf
-	php-install-pear-xml.patch
-	gd-iconv.patch
+_exts5="mssql mysql"
+_exts="bcmath bz2 calendar ctype curl dba dom enchant exif ftp gd gettext gmp iconv imap intl json
+	ldap mbstring mcrypt mysqli mysqlnd odbc opcache openssl pcntl pdo pdo_dblib pdo_mysql
+	pdo_odbc pdo_pgsql pdo_sqlite pgsql phar posix pspell recode session shmop snmp soap
+	sockets sqlite3 sysvmsg sysvsem sysvshm tidy wddx xml xmlreader xmlrpc xsl zip zlib
 	"
-
-_apiver="20131106"
-_extdir="/usr/lib/$pkgname/modules"
-_srcdir="$srcdir"/php-$pkgver
-_confdir=/etc/$pkgname
-
-# seems like pear hardcode /usr/share/pear directory
-_peardir=/usr/share/pear
+subpackages="$pkgname-dev $pkgname-doc $pkgname-apache2 $pkgname-phpdbg $pkgname-embed
+	$pkgname-litespeed $pkgname-cgi $pkgname-fpm $pkgname-pear::noarch
+	"
+for _ext in $_exts $_exts5; do
+	subpackages="$subpackages $pkgname-$_ext:_default_ext"
+done
+subpackages="$subpackages $pkgname-common::noarch"
+builddir="$srcdir"/$provides-$pkgver
 
 prepare() {
-	cd "$_srcdir"
-	update_config_sub
-	for i in $source; do
-		case $i in
-		*.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
-		esac
-	done
-
-	# safty check for api changes
+	cd "$builddir"
+	default_prepare || return 1
+	update_config_sub || return 1
 	local vapi=$(sed -n '/#define PHP_API_VERSION/{s/.* //;p}' main/php.h)
 	if [ "$vapi" != "$_apiver" ]; then
-		error "Upstreram API version is now $vapi. Expecting $_vapi"
+		error "Upstreram API version is now $vapi. Expecting $_apiver"
 		return 1
 	fi
 	autoconf
 }
 
-_do_build() {
-	local _flavor="$1"
-	shift
-	local _builddir="$srcdir"/build-$_flavor
-	mkdir -p "$_builddir"
-	cd "$_builddir"
-	export EXTENSION_DIR=$_extdir
-	export PEAR_INSTALLDIR="$_peardir"
-	"$_srcdir"/configure $@ || return 1
-	sed -ri "s/^(EXTRA_LDFLAGS[ ]*\=.*)/\1 -lpthread/" Makefile  # see #183
-	make || return 1
-}
-
-build() {
-	_phpconfig="\
+_build() {
+	export EXTENSION_DIR=/usr/lib/$pkgname/modules
+	./configure \
 		--build=$CBUILD \
 		--host=$CHOST \
 		--prefix=/usr \
-		--sysconfdir=$_confdir \
+		--libdir=/usr/lib/$pkgname \
+		--datadir=/usr/share/$pkgname \
+		--sysconfdir=/etc/$pkgname \
 		--localstatedir=/var \
 		--with-layout=GNU \
-		--with-config-file-path=$_confdir \
-		--with-config-file-scan-dir=$_confdir/conf.d \
-		--enable-inline-optimization \
-		--disable-debug \
-		--disable-rpath \
-		--disable-static \
-		--enable-shared \
-		--mandir=/usr/share/man \
 		--with-pic \
-		"
-
-	_phpextensions=" \
+		--with-pear=/usr/share/$provides \
+		--with-config-file-path=/etc/$pkgname \
+		--with-config-file-scan-dir=/etc/$pkgname/conf.d \
+		--disable-short-tags \
+		--with-openssl=shared --with-kerberos --with-system-ciphers \
+		--with-pcre-regex --with-pcre-dir \
+		--with-zlib=shared --with-zlib-dir \
 		--enable-bcmath=shared \
-		  --with-bz2=shared \
+		--with-bz2=shared \
 		--enable-calendar=shared \
-		  --with-cdb \
 		--enable-ctype=shared \
-		  --with-curl=shared \
-		--enable-dba=shared \
-		  --with-db4=shared \
+		--with-curl=shared \
+		--enable-dba=shared --with-gdbm --with-db4 \
 		--enable-dom=shared \
-		  --with-enchant=shared \
+		--with-enchant=shared \
 		--enable-exif=shared \
-		  --with-freetype-dir=shared,/usr \
 		--enable-ftp=shared \
-		  --with-gd=shared \
-		--enable-gd-native-ttf \
-		  --with-gdbm=shared \
-		  --with-gettext=shared \
-		  --with-gmp=shared \
-		  --with-iconv=shared \
-		  --with-icu-dir=/usr \
-		  --with-imap=shared \
-		  --with-imap-ssl=shared \
-		--enable-intl=shared \
-		  --with-jpeg-dir=shared,/usr \
+		--with-gd=shared --with-webp-dir=shared --with-jpeg-dir=shared --with-png-dir=shared --with-xpm-dir=shared \
+		--with-freetype-dir=shared --enable-gd-native-ttf --enable-gd-jis-conv \
+		--with-gettext=shared \
+		--with-gmp=shared \
+		--with-iconv=shared \
+		--enable-intl=shared --with-icu-dir=/usr \
 		--enable-json=shared \
-		  --with-ldap=shared \
-		--enable-libxml=shared \
-		--enable-mbregex \
-		--enable-mbstring=all \
-		  --with-mcrypt=shared \
-		  --with-mysql=shared,mysqlnd \
-		  --with-mysql-sock=/var/run/mysqld/mysqld.sock \
-		  --with-mysqli=shared,mysqlnd \
-		  --with-openssl=shared \
-		  --with-pcre-regex=/usr \
-		--enable-pcntl=shared \
+		--enable-libxml=shared --with-libxml-dir=shared --with-libexpat-dir=shared \
+		--with-ldap=shared --with-ldap-sasl \
+		--enable-mbstring=shared --enable-mbregex \
+		--with-mssql=shared \
+		--with-mcrypt=shared \
+		--with-sqlite3=shared,/usr --with-pdo-sqlite=shared,/usr \
+		--with-pdo-dblib=shared \
+		--with-mysql=shared,mysqlnd \
+		--with-mysqli=shared,/usr/bin/mysql_config \
+		--enable-mysqlnd=shared --with-pdo-mysql=shared,/usr/bin/mysql_config --with-mysql-sock=/run/mysqld/mysqld.sock \
+		--with-pgsql=shared --with-pdo-pgsql=shared \
+		--with-unixODBC=shared,/usr -with-pdo-odbc=shared,unixODBC,/usr \
+		--with-dbmaker=shared \
+		--enable-opcache=shared \
 		--enable-pdo=shared \
-		  --with-pdo-mysql=shared,mysqlnd \
-		  --with-pdo-odbc=shared,unixODBC,/usr \
-		  --with-pdo-pgsql=shared \
-		  --with-pdo-sqlite=shared,/usr \
-		  --with-pgsql=shared \
-		--enable-phar=shared \
-		  --with-png-dir=shared,/usr \
+		--enable-pcntl=shared \
 		--enable-posix=shared \
-		  --with-pspell=shared \
-		  --with-regex=php \
-		--enable-session \
+		--enable-phar=shared \
+		--with-pspell=shared \
+		--enable-session=shared \
 		--enable-shmop=shared \
-		  --with-snmp=shared \
+		--with-snmp=shared \
 		--enable-soap=shared \
 		--enable-sockets=shared \
-		  --with-sqlite3=shared,/usr \
 		--enable-sysvmsg=shared \
 		--enable-sysvsem=shared \
 		--enable-sysvshm=shared \
-		  --with-unixODBC=shared,/usr \
+		--with-tidy=shared \
 		--enable-xml=shared \
 		--enable-xmlreader=shared \
-		  --with-xmlrpc=shared \
-		  --with-xsl=shared \
+		--with-xmlrpc=shared \
+		--with-xsl=shared \
 		--enable-wddx=shared \
-		--enable-zip=shared \
-		  --with-zlib=shared \
-		--without-db1 \
-		--without-db2 \
-		--without-db3 \
-		--without-qdbm \
-		--with-mssql=shared \
-		--with-pdo-dblib=shared \
-		--enable-opcache \
-		"
-
-	# cgi, fcgi, cli, pear and extensions
-	_do_build cgi \
-		${_phpconfig} \
-		--disable-cli \
-		--enable-cgi \
-		--enable-cli \
-		--with-pear \
+		--enable-zip=shared --with-libzip=shared \
 		--with-readline \
-		--enable-phpdbg \
-		${_phpextensions} \
-		|| return 1
+		$@ || return 1
+	sed -ri "s/^(EXTRA_LDFLAGS[ ]*\=.*)/\1 -lpthread/" Makefile  # see #183
+	make || return 1
+}
 
-	# fpm
-	cp -a "$srcdir"/build-cgi "$srcdir"/build-fpm
-	_do_build fpm \
-		${_phpconfig} \
+build() {
+	cd "$builddir"
+	# build phpdbg
+	_build --enable-phpdbg \
+		--enable-phpdbg-webhelper \
+		--disable-cgi \
 		--disable-cli \
-		--enable-fpm \
-		${_phpextensions} \
 		|| return 1
-
-	# apache2
-	cp -a "$srcdir"/build-cgi "$srcdir"/build-apache2
-	_do_build apache2 \
-		${_phpconfig} \
+	# build apache2 module
+	_build --disable-phpdbg \
+		--disable-cgi \
 		--disable-cli \
 		--with-apxs2 \
-		${_phpextensions} \
 		|| return 1
-
-	# embed
-	cp -a "$srcdir"/build-cgi "$srcdir"/build-embed
-	_do_build embed \
-		${_phpconfig} \
-		--disable-cli \
-		--enable-embed=shared \
-		${_phpextensions} \
+	mv libs/lib$pkgname.so sapi/apache2handler/
+	# common build - with recode
+	_build --disable-phpdbg \
+		--enable-fpm \
+		--enable-embed \
+		--with-litespeed \
+		--with-recode=shared \
+		|| return 1
+	# common build - with imap
+	_build --disable-phpdbg \
+		--enable-fpm \
+		--enable-embed \
+		--with-litespeed \
+		--with-imap=shared --with-imap-ssl \
 		|| return 1
 }
 
 package() {
-	cd "$srcdir"/build-cgi
-	# install php-cgi, cli, pear and modules
-	make -j1 install install-pear INSTALL_ROOT="$pkgdir" || return 1
-
-	# cleanup after pear
-	find "$pkgdir" -name '.*' | xargs rm -rf || return 1
-
-	# install embed
-	install -D -m755 "$srcdir"/build-embed/libs/libphp5.so \
-		"$pkgdir"/usr/lib/libphp5.so || return 1
-	install -D -m644 "$_srcdir"/sapi/embed/php_embed.h \
-		"$pkgdir"/usr/include/php/sapi/embed/php_embed.h || return 1
-
-	# Create symlink with version suffix, parallel to php7 package,
-	# to simplify multiversion aports and prepare us for future.
-	local f; for f in php php-cgi php-config phpdbg phpize; do
-		ln -s $f "$pkgdir"/usr/bin/${f}5 || return 1
-	done
+	cd "$builddir"
+	make -j1 INSTALL_ROOT="$pkgdir" install || return 1
+	rm -fr "$pkgdir"/.[[:alpha:]]* "$pkgdir"/var || return 1
+	mv "$pkgdir"/usr/share/man/man1/php.1 \
+		"$pkgdir"/usr/share/man/man1/$pkgname.1
+	mv "$pkgdir"/usr/share/man/man1/php-cgi.1 \
+		"$pkgdir"/usr/share/man/man1/$pkgname-cgi.1
+	mv "$pkgdir"/usr/share/man/man8/php-fpm.8 \
+		"$pkgdir"/usr/share/man/man8/$pkgname-fpm.8
+	mv "$pkgdir"/usr/bin/php "$pkgdir"/usr/bin/$pkgname
 }
 
 dev() {
-	default_dev || return 1
-
-	mkdir -p "$subpkgdir"/usr/lib/php
-	mv "$pkgdir"/usr/lib/php/build \
-		"$subpkgdir"/usr/lib/php/ || return 1
-	mv "$pkgdir"/usr/bin/php-config5 "$subpkgdir"/usr/bin/
+	default_dev
+	replaces="php7-dev"
+	provides="php-dev"
+	depends="$depends $pkgname-phar"
+	mv "$pkgdir"/usr/bin/phpize \
+		"$pkgdir"/usr/bin/peardev \
+		"$pkgdir"/usr/bin/phar* \
+		"$subpkgdir"/usr/bin/
+	mv "$pkgdir"/usr/lib/$pkgname/build "$subpkgdir"/usr/lib/$pkgname/
 }
 
 doc() {
-	# man pages
-	default_doc || return 1
-	cd "$srcdir"/php-$pkgver
-
-	# doc files
-	_docs="CODING_STANDARDS CREDITS EXTENSIONS INSTALL LICENSE NEWS \
-	UPGRADING UPGRADING.INTERNALS"
-	for _doc in $_docs README.*; do
-		install -Dm644 "$srcdir"/php-$pkgver/$_doc \
-			"$subpkgdir"/usr/share/doc/$pkgname/$_doc || return 1
+	default_doc
+	install_if="docs $pkgname-common=$pkgver-r$pkgrel"
+	cd "$builddir"
+	for file in $(ls CODING_STANDARDS CREDITS EXTENSIONS INSTALL LICENSE NEWS README* UPGRADING*); do
+		install -Dm644 $file "$subpkgdir"/usr/share/doc/$pkgname/$file || return 1
 	done
 }
 
-common() {
-	pkgdesc="PHP Common Files"
-	depends=""
-	cd "$srcdir"/php-$pkgver
-	install -D -m644 php.ini-production "$subpkgdir"$_confdir/php.ini
-	sed -i -e "s:^; extension_dir = \"./\":extension_dir = \"$_extdir\":" "$subpkgdir"/etc/php/php.ini
-	sed -ri 's/;(date.timezone =)/\1 UTC/' "$subpkgdir"$_confdir/php.ini
-	sed -ri "s~^([;]*cgi\.rfc2616_headers.*)$~\1\n\n\; If this is enabled, the PHP CGI binary can safely be placed outside of the\n; web tree and people will not be able to circumvent .htaccess security.\ncgi\.discard_path = 1~" "$subpkgdir"$_confdir/php.ini
+apache2() {
+	pkgdesc="$pkgname module for Apache2"
+	depends="$pkgname-common apache2"
+	install -Dm755 "$builddir"/sapi/apache2handler/lib$pkgname.so \
+		"$subpkgdir"/usr/lib/apache2/lib$pkgname.so || return 1
+	install -Dm644 "$srcdir"/$pkgname-module.conf \
+		"$subpkgdir"/etc/apache2/conf.d/$pkgname-module.conf
 }
 
-cgi() {
-	pkgdesc="PHP Common Gateway Interface (CGI)"
+phpdbg() {
+	pkgdesc="$pkgname interactive debugger"
 	depends="$pkgname-common"
-	mkdir -p "$subpkgdir"/usr/bin
-	mv "$pkgdir"/usr/bin/php-cgi* "$subpkgdir"/usr/bin/
+	install -Dm755 "$builddir"/sapi/phpdbg/phpdbg \
+		 "$subpkgdir"/usr/bin/${pkgname}dbg
 }
 
-cli() {
-	pkgdesc="PHP Command Line Interface (CLI)"
+embed() {
+	pkgdesc="$pkgname embedded library"
 	depends="$pkgname-common"
-	mkdir -p "$subpkgdir"/usr/bin
-	mv "$pkgdir"/usr/bin/php "$subpkgdir"/usr/bin/ || return 1
-	mv "$pkgdir"/usr/bin/php5 "$subpkgdir"/usr/bin/ || return 1
-	# provide phpize here instead of -dev due to pecl command
-	mv "$pkgdir"/usr/bin/phpize* "$subpkgdir"/usr/bin/ || return 1
+	mkdir -p "$subpkgdir"/usr/lib
+	mv "$pkgdir"/usr/lib/lib$pkgname.so "$subpkgdir"/usr/lib/
 }
 
-fpm() {
-	pkgdesc="PHP FastCGI Process Manager (FPM)"
+litespeed() {
+	pkgdesc="$pkgname litespeed SAPI"
 	depends="$pkgname-common"
-	mkdir -p "$subpkgdir"$_confdir/fpm.d
-	install -D -m755 "$srcdir"/build-fpm/sapi/fpm/php-fpm \
-		"$subpkgdir"/usr/bin/php-fpm || return 1
-	install -D -m644 "$srcdir"/build-fpm/sapi/fpm/php-fpm.conf \
-		"$subpkgdir"$_confdir/php-fpm.conf || return 1
-	install -D -m755 "$srcdir"/php-fpm.initd "$subpkgdir"/etc/init.d/php-fpm
-	# enable some default options
-	sed -ri	-e "s~^;(error_log)(.*)~\1 = /var/log/php-fpm.log~" \
-		-e "s~^;(include)(.*)~\1 = $_confdir/fpm.d/*.conf~" \
-		-e "s/^;(pm.start_servers)/\1/" \
-		-e "s/^;(pm.min_spare_servers)/\1/" \
-		-e "s/^;(pm.max_spare_servers)/\1/" \
-		"$subpkgdir"$_confdir/php-fpm.conf || return 1
-	ln -s php-fpm "$subpkgdir"/usr/bin/php-fpm5
+	mkdir -p "$subpkgdir"/usr/bin
+	mv "$pkgdir"/usr/bin/lsphp "$subpkgdir"/usr/bin/ls$pkgname
 }
 
-apache2() {
-	pkgdesc="PHP Module for Apache2"
-	depends="$pkgname-common apache2"
-	install -D -m755 "$srcdir"/build-apache2/libs/libphp5.so \
-		"$subpkgdir"/usr/lib/apache2/libphp5.so || return 1
-	install -D -m644 "$srcdir"/php5-module.conf \
-		"$subpkgdir"/etc/apache2/conf.d/php5-module.conf || return 1
+cgi() {
+	pkgdesc="$pkgname common gateway interface"
+	depends="$pkgname-common"
+	mkdir -p "$subpkgdir"/usr/bin
+	mv "$pkgdir"/usr/bin/php-cgi "$subpkgdir"/usr/bin/$pkgname-cgi
 }
 
-embed() {
-	pkgdesc="PHP Embed Library"
+fpm() {
+	pkgdesc="$pkgname FastCGI process manager"
 	depends="$pkgname-common"
-	mkdir -p "$subpkgdir"/usr/lib
-	mv "$pkgdir"/usr/lib/libphp5.so "$subpkgdir"/usr/lib/
+	mkdir -p "$subpkgdir"/etc/$pkgname \
+		"$subpkgdir"/usr \
+		"$subpkgdir"/var/lib \
+		"$subpkgdir"/var/log/$pkgname
+	mv "$pkgdir"/usr/share/$pkgname/fpm "$subpkgdir"/var/lib/$pkgname || return 1
+	mv "$pkgdir"/usr/sbin "$subpkgdir"/usr/
+	mv "$subpkgdir"/usr/sbin/php-fpm "$subpkgdir"/usr/sbin/$pkgname-fpm || return 1
+	mv "$pkgdir"/etc/$pkgname/php-fpm* "$subpkgdir"/etc/$pkgname/ || return 1
+	find "$subpkgdir"/etc/$pkgname -name *.default -exec sh -c 'f={}; mv $f ${f%.default}' \;
+	install -D -m755 "$srcdir"/$pkgname-fpm.initd "$subpkgdir"/etc/init.d/$pkgname-fpm
+	install -D -m644 "$srcdir"/$pkgname-fpm.logrotate "$subpkgdir"/etc/logrotate.d/$pkgname-fpm
 }
 
 pear() {
-	pkgdesc="PHP Extension and Application Repository (PEAR)"
-	depends="$pkgname-cli $pkgname-xml"
-	mkdir -p "$subpkgdir"/usr/share "$subpkgdir"$_confdir \
-		"$subpkgdir"/usr/bin
-	mv "$pkgdir"/usr/bin/pecl \
-		"$pkgdir"/usr/bin/pear \
-		"$pkgdir"/usr/bin/peardev \
-		"$subpkgdir"/usr/bin/ || return 1
-	mv "$pkgdir"$_confdir/pear.conf \
-		"$subpkgdir"$_confdir/ || return 1
-	mv "$pkgdir"${_peardir} \
-		"$subpkgdir"/usr/share/ || return 1
+	replaces="php7-pear"
+	provides="php-pear"
+	pkgdesc="$pkgname extension and application repository"
+	depends="$pkgname $pkgname-xml"
+	mkdir -p "$subpkgdir"/usr/bin "$subpkgdir"/etc/$pkgname
+	mv "$pkgdir"/usr/bin/pecl "$pkgdir"/usr/bin/pear "$subpkgdir"/usr/bin/
+	mv "$pkgdir"/etc/$pkgname/pear.conf "$subpkgdir"/etc/$pkgname/ || return 1
+	mv "$pkgdir"/usr/share "$subpkgdir"/usr/
+	rmdir "$subpkgdir"/usr/share/$pkgname || return 1
 }
 
-phpdbg() {
-	pkgdesc="Interactive PHP debugger"
-	mkdir -p "$subpkgdir"/usr/bin
-	mv "$pkgdir"/usr/bin/phpdbg* "$subpkgdir"/usr/bin/
+common() {
+	pkgdesc="$pkgname common config"
+	depends=
+	install -Dm644 "$builddir"/php.ini-production \
+		"$subpkgdir"/etc/$pkgname/php.ini || return 1
+	# exit with an error if there is any configs
+	# or if some modules were not in subpackages
+	rmdir "$pkgdir"/usr/lib/$pkgname/modules \
+		"$pkgdir"/etc/$pkgname || return 1
+	rm -fr "$pkgdir"/etc "$pkgdir"/usr/lib
 }
 
-_mv_ext() {
-	local ext=$1
-	local ini=$ext.ini
-	pkgdesc="${ext} extension for PHP"
-
-	# extension dependencies
-	if [ -n "${2-}" ]; then
-		depends="${2-}"
-	fi
-	depends="${pkgname} ${depends}"
-
-	# work around dependency issue
-	# https://bugs.alpinelinux.org/issues/1848
-	if [ "$ext" = "wddx" ]; then
-		ini=xml_$ext.ini
-	fi
-
-	mkdir -p "$subpkgdir"/$_extdir
-	mv "$pkgdir"/$_extdir/${ext}.so "$subpkgdir"/$_extdir/ || return 1
-	mkdir -p "$subpkgdir"$_confdir/conf.d
-	case "$1" in
-		opcache)
-			echo "zend_extension=${ext}.so" > "$subpkgdir"$_confdir/conf.d/$ini
-			;;
-		*)
-			echo "extension=${ext}.so" > "$subpkgdir"$_confdir/conf.d/$ini
-			;;
-	esac
+_default_ext() {
+	local dep=
+	local sep=
+	local elo=0
+	local extname=${subpkgname#$pkgname-}
+	pkgdesc="$pkgname extension: $extname"
+	for dep in $(eval echo \$depends_$extname); do
+		elo=$(expr $elo + 1)
+		[ "$dep" = "--" ] && sep=$dep
+		[ "$sep" = "--" ] || depends="$depends $dep"
+	done
+	mkdir -p "$subpkgdir"/usr/lib/$pkgname/modules \
+		"$subpkgdir"/etc/$pkgname/conf.d
+	mv "$pkgdir"/usr/lib/$pkgname/modules/$extname.so \
+		"$subpkgdir"/usr/lib/$pkgname/modules/ || return 1
+	echo $(eval echo \$_prefix_$extname)extension=$extname.so >\
+		"$subpkgdir"/etc/$pkgname/conf.d/$(printf %02d $elo)_${extname}.ini
 }
 
-bcmath()	{ _mv_ext bcmath; }
-bz2()		{ _mv_ext bz2; }
-calendar()	{ _mv_ext calendar; }
-ctype()		{ _mv_ext ctype; }
-_curl()		{ _mv_ext curl; }
-dba()		{ _mv_ext dba; }
-dom()		{ _mv_ext dom; }
-enchant()	{ _mv_ext enchant; }
-exif()		{ _mv_ext exif; }
-ftp()		{ _mv_ext ftp; }
-gd()		{ _mv_ext gd; }
-gettext()	{ _mv_ext gettext; }
-gmp()		{ _mv_ext gmp; }
-iconv()		{ _mv_ext iconv; }
-imap()		{ _mv_ext imap; }
-intl()		{ _mv_ext intl; }
-json()		{ _mv_ext json; }
-ldap()		{ _mv_ext ldap; }
-mcrypt()	{ _mv_ext mcrypt; }
-mysql()		{ _mv_ext mysql; }
-mysqli()	{ _mv_ext mysqli; }
-odbc()		{ _mv_ext odbc unixodbc; }
-openssl()	{ _mv_ext openssl; }
-pcntl()		{ _mv_ext pcntl; }
-pdo()		{ _mv_ext pdo; }
-pdo_mysql()	{ _mv_ext pdo_mysql $pkgname-pdo; }
-pdo_odbc()	{ _mv_ext pdo_odbc $pkgname-pdo; }
-pdo_pgsql()	{ _mv_ext pdo_pgsql $pkgname-pdo; }
-pdo_sqlite()	{ _mv_ext pdo_sqlite $pkgname-pdo; }
-pgsql()		{ _mv_ext pgsql; }
-phar()		{
-			_mv_ext phar
-			mkdir -p "$subpkgdir"/usr/bin
-			mv "$pkgdir"/usr/bin/phar* "$subpkgdir"/usr/bin/
-		}
-posix()		{ _mv_ext posix; }
-pspell()	{ _mv_ext pspell; }
-shmop()		{ _mv_ext shmop; }
-snmp()		{ _mv_ext snmp; }
-soap()		{ _mv_ext soap; }
-sockets()	{ _mv_ext sockets; }
-sqlite3()	{ _mv_ext sqlite3; }
-sysvmsg()	{ _mv_ext sysvmsg; }
-sysvsem()	{ _mv_ext sysvsem; }
-sysvshm()	{ _mv_ext sysvshm; }
-xml()		{ _mv_ext xml; }
-xmlreader()	{ _mv_ext xmlreader $pkgname-dom; }
-xmlrpc()	{ _mv_ext xmlrpc $pkgname-xml; }
-xsl()		{ _mv_ext xsl $pkgname-dom; }
-zip()		{ _mv_ext zip; }
-zlib()		{ _mv_ext zlib; }
-mssql()		{ _mv_ext mssql; }
-pdo_dblib()	{ _mv_ext pdo_dblib "$pkgname-pdo freetds"; }
-wddx()		{ _mv_ext wddx; }
-opcache()	{ _mv_ext opcache; }
-
-md5sums="56758fdb5ff156a36fb600950b7999aa  php-5.6.28.tar.bz2
-63b16caff0d7aa881a31a1e02f3080c3  php-fpm.initd
+md5sums="b2772a0bdada0e20f4e1937f71416bcc  php-5.6.29.tar.bz2
+387c70cebc8c32ea547f52e2b8e24534  php5-fpm.initd
+5d858ed3471b3445f422fae87f2b5101  php5-fpm.logrotate
 67719f428f44ec004da18705cbabe2ee  php5-module.conf
-483bc0a85c50a9a9aedbe14a19ed4526  php-install-pear-xml.patch
-7200972a23adae799921c4ca20ff0074  gd-iconv.patch"
-sha256sums="c55ea3f4aad5a0b65631d01c4468930fd981ad208ffcd242acdf731bcb47548f  php-5.6.28.tar.bz2
-be9bfdab10a994fe553119b181be7015325a7618de454a58bdee06bcfb711454  php-fpm.initd
+483bc0a85c50a9a9aedbe14a19ed4526  install-pear.patch
+66f0037a029f9eed2b31d2e1d50f1860  tidy-buffio.patch
+f216e041b6e10c9881904970b1d19ed2  includedir.patch
+f31de64b4d4df9ce768517b6422b0987  php-fpm.patch"
+sha256sums="499b844c8aa7be064c111692e51a093ba94e54d2d9abb01e70ea76183a1825bb  php-5.6.29.tar.bz2
+97d15cf42e03a9883401caddd5c5166ae1cfb52125539b238ebd5c36e0a7fdbf  php5-fpm.initd
+298708d0f0e4518bcddc287acd204bafa449625c5bf5694d22bab818f714247e  php5-fpm.logrotate
 ceec4d5b2a128c6a97e49830af604f0bb555bca1a86a9cd0366b828ba392257f  php5-module.conf
-f739ca427a1dd53a388bad0823565299c5d4a5796b1171b892884e4d7d099bab  php-install-pear-xml.patch
-98de37c650a36870a543225f6a6b81813ccd447a484f0881511be4eb6e901844  gd-iconv.patch"
-sha512sums="57efbbf422b74d74cdbc701ada03e3eb517bbc543169de642bada5843f612e2f1a43f1654b0ab92d015d3d1e777ac15c630d05f98f0ee259f2e3c0ba63b9dbc2  php-5.6.28.tar.bz2
-1f5cb18f85a2e279e24344d993f5c51c7bfbcbecc0e9bfcf075bebd1b0b893e2ffb793d95a632c9333033597d4b4f74840bfd00520a6dc700444d1a054225da1  php-fpm.initd
+f739ca427a1dd53a388bad0823565299c5d4a5796b1171b892884e4d7d099bab  install-pear.patch
+5dc8f32e5e2b1cd6317ada5a5adb9b5f0802ed6e0dbe065d7bfcc0f55d47e0d5  tidy-buffio.patch
+ce8aabb99c75145124193393d8534d2dfec64ba539c31fd58d089b1a6f26e245  includedir.patch
+88731a5638bd0acba2ab1cf60f80022cb007a6f5bfd22730a133f3b9aea0f1ad  php-fpm.patch"
+sha512sums="305049ab9ece8fd5b61f2b2beeaf8bbe994aa325911d90b5fcf8be1dbc43dcdf2528296aa017b8c73cfc3b4614e306a1741fd7c69f90fb23477ca6bf13c10d44  php-5.6.29.tar.bz2
+2800a3913638e58916d1f61d55f1ff4cdf1fe594d3a78a566aea4abebdbc1caf3b3cdb8d1ae66da29a6820d084f8db826b13f3d926066c0ef8251a9647edadfd  php5-fpm.initd
+72c19414362d7262e7dfc828dec3814a93f1c0de369c747967b33cfd8b18e2b340232308f3baf20b9458ee62d668963fa31cb2d981d5587da9b7162e3bb1f0fa  php5-fpm.logrotate
 895e94c791bd82060ad820fef049d366a09c932097faa6b7b9a2c2e9e00a18cb7c0f9b128679c7659b404379266fd0f95dba5c0333f626194cf60f7bf6044102  php5-module.conf
-f1177cbf6b1f44402f421c3d317aab1a2a40d0b1209c11519c1158df337c8945f3a313d689c939768584f3e4edbe52e8bd6103fb6777462326a9d94e8ab1f505  php-install-pear-xml.patch
-6ecd0be2da1dc5b1d7512e46a2a5cd107a8b2a8c364efc9c624a7d6b2ab081685a329c94c22c970dc14c5c1115f702c512e97ae858da1bc69c6423323dbeeba2  gd-iconv.patch"
+f1177cbf6b1f44402f421c3d317aab1a2a40d0b1209c11519c1158df337c8945f3a313d689c939768584f3e4edbe52e8bd6103fb6777462326a9d94e8ab1f505  install-pear.patch
+6894c9cba7752a3406e774d9efc0e058c37433493c1c20101e9563bf247c112157a67e306b06b9517b0422eca521f543d637a6cbd2cea7639e43f13d773b3d2b  tidy-buffio.patch
+8fc56dc52b8eb2c88c69b445dd667ceefc5407017ba323701134bda9cd4f6b154db86442e5285817b5eb9799bf9e9dd11523e75006760fba80b334991d477088  includedir.patch
+5d62c12d43595f71a230022c26b96faecbec149926c417bea17a7eb44c4fbff436e907beaf74c356fe301a77fbe2d207697ecdb84a0bddd12f2be8a8d20e648c  php-fpm.patch"
diff --git a/main/php5/gd-iconv.patch b/main/php5/gd-iconv.patch
deleted file mode 100644
index 7f7bd0e196..0000000000
--- a/main/php5/gd-iconv.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-diff --git a/ext/gd/config.m4 b/ext/gd/config.m4
-index e643e52..fc41ab9 100644
---- a/ext/gd/config.m4
-+++ b/ext/gd/config.m4
-@@ -6,6 +6,9 @@ dnl
- dnl Configure options
- dnl
- 
-+PHP_ARG_WITH(iconv-dir, iconv dir for GD and XMLRPC-EPI,
-+[  --with-iconv-dir=DIR      GD/XMLRPC-EPI: iconv dir for GD/XMLRPC-EPI],no,no)
-+
- PHP_ARG_WITH(gd, for GD support,
- [  --with-gd[=DIR]           Include GD support.  DIR is the GD library base
-                           install directory [BUNDLED]])
-@@ -329,6 +332,18 @@ dnl enable the support in bundled GD library
-     GDLIB_CFLAGS="$GDLIB_CFLAGS -DJISX0208"
-   fi
- 
-+  dnl link to iconv if needed
-+  if test "$PHP_ICONV_DIR" != "no"; then
-+    PHP_ICONV=$PHP_ICONV_DIR
-+  fi
-+
-+  if test -z "$PHP_ICONV" || test "$PHP_ICONV" = "no"; then
-+    PHP_ICONV=yes
-+  fi
-+
-+  PHP_SETUP_ICONV(GD_SHARED_LIBADD, [], [
-+    AC_MSG_ERROR([iconv not found, in order to build gd you need the iconv library])
-+  ])
- else
- 
-  if test "$PHP_GD" != "no"; then
---- a/ext/xmlrpc/config.m4
-+++ b/ext/xmlrpc/config.m4
-@@ -18,9 +18,6 @@
- PHP_ARG_WITH(libexpat-dir, libexpat dir for XMLRPC-EPI,
- [  --with-libexpat-dir=DIR XMLRPC-EPI: libexpat dir for XMLRPC-EPI (deprecated)],no,no)
- 
--PHP_ARG_WITH(iconv-dir, iconv dir for XMLRPC-EPI,
--[  --with-iconv-dir=DIR    XMLRPC-EPI: iconv dir for XMLRPC-EPI],no,no)
--
- if test "$PHP_XMLRPC" != "no"; then
- 
-   PHP_ADD_EXTENSION_DEP(xmlrpc, libxml)
diff --git a/main/php5/includedir.patch b/main/php5/includedir.patch
new file mode 100644
index 0000000000..68d953e222
--- /dev/null
+++ b/main/php5/includedir.patch
@@ -0,0 +1,41 @@
+--- a/scripts/Makefile.frag
++++ b/scripts/Makefile.frag
+@@ -3,7 +3,7 @@
+ # Build environment install
+ #
+ 
+-phpincludedir = $(includedir)/php
++phpincludedir = $(includedir)/php5
+ phpbuilddir = $(libdir)/build
+ 
+ BUILD_FILES = \
+--- a/ext/pdo/Makefile.frag
++++ b/ext/pdo/Makefile.frag
+@@ -1,4 +1,4 @@
+-phpincludedir=$(prefix)/include/php
++phpincludedir=$(prefix)/include/php5
+ 
+ PDO_HEADER_FILES= \
+ 	php_pdo.h \
+--- a/scripts/php-config.in
++++ b/scripts/php-config.in
+@@ -6,7 +6,7 @@
+ exec_prefix="@exec_prefix@"
+ version="@PHP_VERSION@"
+ vernum="@PHP_VERSION_ID@"
+-include_dir="@includedir@/php"
++include_dir="@includedir@/php5"
+ includes="-I$include_dir -I$include_dir/main -I$include_dir/TSRM -I$include_dir/Zend -I$include_dir/ext -I$include_dir/ext/date/lib"
+ ldflags="@PHP_LDFLAGS@"
+ libs="@EXTRA_LIBS@"
+--- a/scripts/phpize.in
++++ b/scripts/phpize.in
+@@ -5,7 +5,7 @@
+ datarootdir='@datarootdir@'
+ exec_prefix="`eval echo @exec_prefix@`"
+ phpdir="`eval echo @libdir@`/build"
+-includedir="`eval echo @includedir@`/php"
++includedir="`eval echo @includedir@`/php5"
+ builddir="`pwd`"
+ SED="@SED@"
+ 
diff --git a/main/php5/php-install-pear-xml.patch b/main/php5/install-pear.patch
similarity index 100%
rename from main/php5/php-install-pear-xml.patch
rename to main/php5/install-pear.patch
diff --git a/main/php5/php-fpm.patch b/main/php5/php-fpm.patch
new file mode 100644
index 0000000000..0a45112289
--- /dev/null
+++ b/main/php5/php-fpm.patch
@@ -0,0 +1,534 @@
+--- a/sapi/fpm/fpm/fpm_conf.c
++++ b/sapi/fpm/fpm/fpm_conf.c
+@@ -1178,7 +1178,7 @@
+ 	}
+ 
+ 	if (!fpm_global_config.error_log) {
+-		fpm_global_config.error_log = strdup("log/php-fpm.log");
++		fpm_global_config.error_log = strdup("log/php5/error.log");
+ 	}
+ 
+ #ifdef HAVE_SYSTEMD
+@@ -1189,7 +1189,7 @@
+ 
+ #ifdef HAVE_SYSLOG_H
+ 	if (!fpm_global_config.syslog_ident) {
+-		fpm_global_config.syslog_ident = strdup("php-fpm");
++		fpm_global_config.syslog_ident = strdup("php5-fpm");
+ 	}
+ 
+ 	if (fpm_global_config.syslog_facility < 0) {
+@@ -1663,7 +1663,7 @@
+ 		if (fpm_globals.prefix == NULL) {
+ 			spprintf(&tmp, 0, "%s/php-fpm.conf", PHP_SYSCONFDIR);
+ 		} else {
+-			spprintf(&tmp, 0, "%s/etc/php-fpm.conf", fpm_globals.prefix);
++			spprintf(&tmp, 0, "%s/etc/php5/php-fpm.conf", fpm_globals.prefix);
+ 		}
+ 
+ 		if (!tmp) {
+--- a/sapi/fpm/php-fpm.conf.in
++++ b/sapi/fpm/php-fpm.conf.in
+@@ -22,14 +22,14 @@
+ ; Pid file
+ ; Note: the default prefix is @EXPANDED_LOCALSTATEDIR@
+ ; Default Value: none
+-;pid = run/php-fpm.pid
++;pid = run/php5-fpm.pid
+ 
+ ; Error log file
+ ; If it's set to "syslog", log is sent to syslogd instead of being written
+ ; in a local file.
+ ; Note: the default prefix is @EXPANDED_LOCALSTATEDIR@
+-; Default Value: log/php-fpm.log
+-;error_log = log/php-fpm.log
++; Default Value: log/php5/error.log
++;error_log = log/php5/error.log
+ 
+ ; syslog_facility is used to specify what type of program is logging the
+ ; message. This lets syslogd specify that messages from different facilities
+@@ -41,8 +41,8 @@
+ ; syslog_ident is prepended to every message. If you have multiple FPM
+ ; instances running on the same server, you can change the default value
+ ; which must suit common needs.
+-; Default Value: php-fpm
+-;syslog.ident = php-fpm
++; Default Value: php5-fpm
++;syslog.ident = php5-fpm
+ 
+ ; Log level
+ ; Possible Values: alert, error, warning, notice, debug
+@@ -124,414 +124,10 @@
+ ; used in logs and stats. There is no limitation on the number of pools which
+ ; FPM can handle. Your system will tell you anyway :)
+ 
+-; Start a new pool named 'www'.
+-; the variable $pool can we used in any directive and will be replaced by the
+-; pool name ('www' here)
+-[www]
+-
+-; Per pool prefix
+-; It only applies on the following directives:
+-; - 'access.log'
+-; - 'slowlog'
+-; - 'listen' (unixsocket)
+-; - 'chroot'
+-; - 'chdir'
+-; - 'php_values'
+-; - 'php_admin_values'
+-; When not set, the global prefix (or @php_fpm_prefix@) applies instead.
+-; Note: This directive can also be relative to the global prefix.
+-; Default Value: none
+-;prefix = /path/to/pools/$pool
+-
+-; Unix user/group of processes
+-; Note: The user is mandatory. If the group is not set, the default user's group
+-;       will be used.
+-user = @php_fpm_user@
+-group = @php_fpm_group@
+-
+-; The address on which to accept FastCGI requests.
+-; Valid syntaxes are:
+-;   'ip.add.re.ss:port'    - to listen on a TCP socket to a specific IPv4 address on
+-;                            a specific port;
+-;   '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on
+-;                            a specific port;
+-;   'port'                 - to listen on a TCP socket to all IPv4 addresses on a
+-;                            specific port;
+-;   '[::]:port'            - to listen on a TCP socket to all addresses
+-;                            (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
+-
+-; Set listen(2) backlog.
+-; Default Value: 65535 (-1 on FreeBSD and OpenBSD)
+-;listen.backlog = 65535
+-
+-; Set permissions for unix socket, if one is used. In Linux, read/write
+-; permissions must be set in order to allow connections from a web server. Many
+-; 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.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.
+-; When set, listen.owner and listen.group are ignored
+-;listen.acl_users =
+-;listen.acl_groups =
+- 
+-; List of addresses (IPv4/IPv6) of FastCGI clients which are allowed to connect.
+-; Equivalent to the FCGI_WEB_SERVER_ADDRS environment variable in the original
+-; PHP FCGI (5.2.2+). Makes sense only with a tcp listening socket. Each address
+-; must be separated by a comma. If this value is left blank, connections will be
+-; accepted from any ip address.
+-; Default Value: any
+-;listen.allowed_clients = 127.0.0.1
+-
+-; Specify the nice(2) priority to apply to the pool processes (only if set)
+-; The value can vary from -19 (highest priority) to 20 (lower priority)
+-; Note: - It will only work if the FPM master process is launched as root
+-;       - The pool processes will inherit the master process priority
+-;         unless it specified otherwise
+-; Default Value: no set
+-; process.priority = -19
+-
+-; Choose how the process manager will control the number of child processes.
+-; Possible Values:
+-;   static  - a fixed number (pm.max_children) of child processes;
+-;   dynamic - the number of child processes are set dynamically based on the
+-;             following directives. With this process management, there will be
+-;             always at least 1 children.
+-;             pm.max_children      - the maximum number of children that can
+-;                                    be alive at the same time.
+-;             pm.start_servers     - the number of children created on startup.
+-;             pm.min_spare_servers - the minimum number of children in 'idle'
+-;                                    state (waiting to process). If the number
+-;                                    of 'idle' processes is less than this
+-;                                    number then some children will be created.
+-;             pm.max_spare_servers - the maximum number of children in 'idle'
+-;                                    state (waiting to process). If the number
+-;                                    of 'idle' processes is greater than this
+-;                                    number then some children will be killed.
+-;  ondemand - no children are created at startup. Children will be forked when
+-;             new requests will connect. The following parameter are used:
+-;             pm.max_children           - the maximum number of children that
+-;                                         can be alive at the same time.
+-;             pm.process_idle_timeout   - The number of seconds after which
+-;                                         an idle process will be killed.
+-; Note: This value is mandatory.
+-pm = dynamic
+-
+-; The number of child processes to be created when pm is set to 'static' and the
+-; maximum number of child processes when pm is set to 'dynamic' or 'ondemand'.
+-; This value sets the limit on the number of simultaneous requests that will be
+-; served. Equivalent to the ApacheMaxClients directive with mpm_prefork.
+-; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP
+-; CGI. The below defaults are based on a server without much resources. Don't
+-; forget to tweak pm.* to fit your needs.
+-; Note: Used when pm is set to 'static', 'dynamic' or 'ondemand'
+-; Note: This value is mandatory.
+-pm.max_children = 5
+-
+-; The number of child processes created on startup.
+-; Note: Used only when pm is set to 'dynamic'
+-; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2
+-pm.start_servers = 2
+-
+-; The desired minimum number of idle server processes.
+-; Note: Used only when pm is set to 'dynamic'
+-; Note: Mandatory when pm is set to 'dynamic'
+-pm.min_spare_servers = 1
+-
+-; The desired maximum number of idle server processes.
+-; Note: Used only when pm is set to 'dynamic'
+-; Note: Mandatory when pm is set to 'dynamic'
+-pm.max_spare_servers = 3
+-
+-; The number of seconds after which an idle process will be killed.
+-; Note: Used only when pm is set to 'ondemand'
+-; Default Value: 10s
+-;pm.process_idle_timeout = 10s;
+- 
+-; The number of requests each child process should execute before respawning.
+-; This can be useful to work around memory leaks in 3rd party libraries. For
+-; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS.
+-; Default Value: 0
+-;pm.max_requests = 500
+-
+-; The URI to view the FPM status page. If this value is not set, no URI will be
+-; recognized as a status page. It shows the following informations:
+-;   pool                 - the name of the pool;
+-;   process manager      - static, dynamic or ondemand;
+-;   start time           - the date and time FPM has started;
+-;   start since          - number of seconds since FPM has started;
+-;   accepted conn        - the number of request accepted by the pool;
+-;   listen queue         - the number of request in the queue of pending
+-;                          connections (see backlog in listen(2));
+-;   max listen queue     - the maximum number of requests in the queue
+-;                          of pending connections since FPM has started;
+-;   listen queue len     - the size of the socket queue of pending connections;
+-;   idle processes       - the number of idle processes;
+-;   active processes     - the number of active processes;
+-;   total processes      - the number of idle + active processes;
+-;   max active processes - the maximum number of active processes since FPM
+-;                          has started;
+-;   max children reached - number of times, the process limit has been reached,
+-;                          when pm tries to start more children (works only for
+-;                          pm 'dynamic' and 'ondemand');
+-; Value are updated in real time.
+-; Example output:
+-;   pool:                 www
+-;   process manager:      static
+-;   start time:           01/Jul/2011:17:53:49 +0200
+-;   start since:          62636
+-;   accepted conn:        190460
+-;   listen queue:         0
+-;   max listen queue:     1
+-;   listen queue len:     42
+-;   idle processes:       4
+-;   active processes:     11
+-;   total processes:      15
+-;   max active processes: 12
+-;   max children reached: 0
+-;
+-; By default the status page output is formatted as text/plain. Passing either
+-; 'html', 'xml' or 'json' in the query string will return the corresponding
+-; output syntax. Example:
+-;   http://www.foo.bar/status
+-;   http://www.foo.bar/status?json
+-;   http://www.foo.bar/status?html
+-;   http://www.foo.bar/status?xml
+-;
+-; By default the status page only outputs short status. Passing 'full' in the
+-; query string will also return status for each pool process.
+-; Example: 
+-;   http://www.foo.bar/status?full
+-;   http://www.foo.bar/status?json&full
+-;   http://www.foo.bar/status?html&full
+-;   http://www.foo.bar/status?xml&full
+-; The Full status returns for each process:
+-;   pid                  - the PID of the process;
+-;   state                - the state of the process (Idle, Running, ...);
+-;   start time           - the date and time the process has started;
+-;   start since          - the number of seconds since the process has started;
+-;   requests             - the number of requests the process has served;
+-;   request duration     - the duration in µs of the requests;
+-;   request method       - the request method (GET, POST, ...);
+-;   request URI          - the request URI with the query string;
+-;   content length       - the content length of the request (only with POST);
+-;   user                 - the user (PHP_AUTH_USER) (or '-' if not set);
+-;   script               - the main script called (or '-' if not set);
+-;   last request cpu     - the %cpu the last request consumed
+-;                          it's always 0 if the process is not in Idle state
+-;                          because CPU calculation is done when the request
+-;                          processing has terminated;
+-;   last request memory  - the max amount of memory the last request consumed
+-;                          it's always 0 if the process is not in Idle state
+-;                          because memory calculation is done when the request
+-;                          processing has terminated;
+-; If the process is in Idle state, then informations are related to the
+-; last request the process has served. Otherwise informations are related to
+-; the current request being served.
+-; Example output:
+-;   ************************
+-;   pid:                  31330
+-;   state:                Running
+-;   start time:           01/Jul/2011:17:53:49 +0200
+-;   start since:          63087
+-;   requests:             12808
+-;   request duration:     1250261
+-;   request method:       GET
+-;   request URI:          /test_mem.php?N=10000
+-;   content length:       0
+-;   user:                 -
+-;   script:               /home/fat/web/docs/php/test_mem.php
+-;   last request cpu:     0.00
+-;   last request memory:  0
+-;
+-; Note: There is a real-time FPM status monitoring sample web page available
+-;       It's available in: @EXPANDED_DATADIR@/fpm/status.html
+-;
+-; Note: The value must start with a leading slash (/). The value can be
+-;       anything, but it may not be a good idea to use the .php extension or it
+-;       may conflict with a real PHP file.
+-; Default Value: not set 
+-;pm.status_path = /status
+- 
+-; The ping URI to call the monitoring page of FPM. If this value is not set, no
+-; URI will be recognized as a ping page. This could be used to test from outside
+-; that FPM is alive and responding, or to
+-; - create a graph of FPM availability (rrd or such);
+-; - remove a server from a group if it is not responding (load balancing);
+-; - trigger alerts for the operating team (24/7).
+-; Note: The value must start with a leading slash (/). The value can be
+-;       anything, but it may not be a good idea to use the .php extension or it
+-;       may conflict with a real PHP file.
+-; Default Value: not set
+-;ping.path = /ping
+-
+-; This directive may be used to customize the response of a ping request. The
+-; response is formatted as text/plain with a 200 response code.
+-; Default Value: pong
+-;ping.response = pong
+-
+-; The access log file
+-; Default: not set
+-;access.log = log/$pool.access.log
+-
+-; The access log format.
+-; The following syntax is allowed
+-;  %%: the '%' character
+-;  %C: %CPU used by the request
+-;      it can accept the following format:
+-;      - %{user}C for user CPU only
+-;      - %{system}C for system CPU only
+-;      - %{total}C  for user + system CPU (default)
+-;  %d: time taken to serve the request
+-;      it can accept the following format:
+-;      - %{seconds}d (default)
+-;      - %{miliseconds}d
+-;      - %{mili}d
+-;      - %{microseconds}d
+-;      - %{micro}d
+-;  %e: an environment variable (same as $_ENV or $_SERVER)
+-;      it must be associated with embraces to specify the name of the env
+-;      variable. Some exemples:
+-;      - server specifics like: %{REQUEST_METHOD}e or %{SERVER_PROTOCOL}e
+-;      - HTTP headers like: %{HTTP_HOST}e or %{HTTP_USER_AGENT}e
+-;  %f: script filename
+-;  %l: content-length of the request (for POST request only)
+-;  %m: request method
+-;  %M: peak of memory allocated by PHP
+-;      it can accept the following format:
+-;      - %{bytes}M (default)
+-;      - %{kilobytes}M
+-;      - %{kilo}M
+-;      - %{megabytes}M
+-;      - %{mega}M
+-;  %n: pool name
+-;  %o: output header
+-;      it must be associated with embraces to specify the name of the header:
+-;      - %{Content-Type}o
+-;      - %{X-Powered-By}o
+-;      - %{Transfert-Encoding}o
+-;      - ....
+-;  %p: PID of the child that serviced the request
+-;  %P: PID of the parent of the child that serviced the request
+-;  %q: the query string 
+-;  %Q: the '?' character if query string exists
+-;  %r: the request URI (without the query string, see %q and %Q)
+-;  %R: remote IP address
+-;  %s: status (response code)
+-;  %t: server time the request was received
+-;      it can accept a strftime(3) format:
+-;      %d/%b/%Y:%H:%M:%S %z (default)
+-;  %T: time the log has been written (the request has finished)
+-;      it can accept a strftime(3) format:
+-;      %d/%b/%Y:%H:%M:%S %z (default)
+-;  %u: remote user
+-;
+-; Default: "%R - %u %t \"%m %r\" %s"
+-;access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%"
+- 
+-; The log file for slow requests
+-; Default Value: not set
+-; Note: slowlog is mandatory if request_slowlog_timeout is set
+-;slowlog = log/$pool.log.slow
+- 
+-; The timeout for serving a single request after which a PHP backtrace will be
+-; dumped to the 'slowlog' file. A value of '0s' means 'off'.
+-; Available units: s(econds)(default), m(inutes), h(ours), or d(ays)
+-; Default Value: 0
+-;request_slowlog_timeout = 0
+- 
+-; The timeout for serving a single request after which the worker process will
+-; be killed. This option should be used when the 'max_execution_time' ini option
+-; does not stop script execution for some reason. A value of '0' means 'off'.
+-; Available units: s(econds)(default), m(inutes), h(ours), or d(ays)
+-; Default Value: 0
+-;request_terminate_timeout = 0
+- 
+-; Set open file descriptor rlimit.
+-; Default Value: system defined value
+-;rlimit_files = 1024
+- 
+-; Set max core size rlimit.
+-; Possible Values: 'unlimited' or an integer greater or equal to 0
+-; Default Value: system defined value
+-;rlimit_core = 0
+- 
+-; Chroot to this directory at the start. This value must be defined as an
+-; absolute path. When this value is not set, chroot is not used.
+-; Note: you can prefix with '$prefix' to chroot to the pool prefix or one
+-; of its subdirectories. If the pool prefix is not set, the global prefix
+-; will be used instead.
+-; Note: chrooting is a great security feature and should be used whenever 
+-;       possible. However, all PHP paths will be relative to the chroot
+-;       (error_log, sessions.save_path, ...).
+-; Default Value: not set
+-;chroot = 
+- 
+-; Chdir to this directory at the start.
+-; Note: relative path can be used.
+-; Default Value: current directory or / when chroot
+-;chdir = /var/www
+- 
+-; 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.
+-; Note: on highloaded environement, this can cause some delay in the page
+-; process time (several ms).
+-; Default Value: no
+-;catch_workers_output = yes
+-
+-; Clear environment in FPM workers
+-; Prevents arbitrary environment variables from reaching FPM worker processes
+-; by clearing the environment in workers before env vars specified in this
+-; pool configuration are added.
+-; Setting to "no" will make all environment variables available to PHP code
+-; via getenv(), $_ENV and $_SERVER.
+-; Default Value: yes
+-;clear_env = no
+-
+-; Limits the extensions of the main script FPM will allow to parse. This can
+-; prevent configuration mistakes on the web server side. You should only limit
+-; FPM to .php extensions to prevent malicious users to use other extensions to
+-; exectute php code.
+-; Note: set an empty value to allow all extensions.
+-; Default Value: .php
+-;security.limit_extensions = .php .php3 .php4 .php5
+- 
+-; Pass environment variables like LD_LIBRARY_PATH. All $VARIABLEs are taken from
+-; the current environment.
+-; Default Value: clean env
+-;env[HOSTNAME] = $HOSTNAME
+-;env[PATH] = /usr/local/bin:/usr/bin:/bin
+-;env[TMP] = /tmp
+-;env[TMPDIR] = /tmp
+-;env[TEMP] = /tmp
+-
+-; Additional php.ini defines, specific to this pool of workers. These settings
+-; overwrite the values previously defined in the php.ini. The directives are the
+-; same as the PHP SAPI:
+-;   php_value/php_flag             - you can set classic ini defines which can
+-;                                    be overwritten from PHP call 'ini_set'. 
+-;   php_admin_value/php_admin_flag - these directives won't be overwritten by
+-;                                     PHP call 'ini_set'
+-; For php_*flag, valid values are on, off, 1, 0, true, false, yes or no.
+-
+-; Defining 'extension' will load the corresponding shared extension from
+-; extension_dir. Defining 'disable_functions' or 'disable_classes' will not
+-; overwrite previously defined php.ini values, but will append the new value
+-; instead.
+-
+-; Note: path INI options can be relative and will be expanded with the prefix
+-; (pool, global or @prefix@)
+-
+-; Default Value: nothing is defined by default except the values in php.ini and
+-;                specified at startup with the -d argument
+-;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f [email-masked]
+-;php_flag[display_errors] = off
+-;php_admin_value[error_log] = /var/log/fpm-php.www.log
+-;php_admin_flag[log_errors] = on
+-;php_admin_value[memory_limit] = 32M
++; Include one or more files. If glob(3) exists, it is used to include a bunch of
++; files from a glob(3) pattern. This directive can be used everywhere in the
++; file.
++; Relative path can also be used. They will be prefixed by:
++;  - the global prefix if it's been set (-p argument)
++;  - @prefix@ otherwise
++include=@php_fpm_sysconfdir@/php-fpm.d/*.conf
+--- a/sapi/fpm/www.conf.in
++++ b/sapi/fpm/www.conf.in
+@@ -250,7 +250,7 @@
+ 
+ ; The access log file
+ ; Default: not set
+-;access.log = log/$pool.access.log
++;access.log = log/php5/$pool.access.log
+ 
+ ; The access log format.
+ ; The following syntax is allowed
+@@ -314,7 +314,7 @@
+ ; The log file for slow requests
+ ; Default Value: not set
+ ; Note: slowlog is mandatory if request_slowlog_timeout is set
+-;slowlog = log/$pool.log.slow
++;slowlog = log/php5/$pool.slow.log
+ 
+ ; The timeout for serving a single request after which a PHP backtrace will be
+ ; dumped to the 'slowlog' file. A value of '0s' means 'off'.
+@@ -408,6 +408,6 @@
+ ;                specified at startup with the -d argument
+ ;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f [email-masked]
+ ;php_flag[display_errors] = off
+-;php_admin_value[error_log] = /var/log/fpm-php.www.log
++;php_admin_value[error_log] = /var/log/php5/$pool.error.log
+ ;php_admin_flag[log_errors] = on
+ ;php_admin_value[memory_limit] = 32M
+--- a/sapi/fpm/config.m4
++++ b/sapi/fpm/config.m4
+@@ -667,7 +667,7 @@
+ 
+   PHP_ADD_BUILD_DIR(sapi/fpm/fpm)
+   PHP_ADD_BUILD_DIR(sapi/fpm/fpm/events)
+-  PHP_OUTPUT(sapi/fpm/php-fpm.conf sapi/fpm/init.d.php-fpm sapi/fpm/php-fpm.service sapi/fpm/php-fpm.8 sapi/fpm/status.html)
++  PHP_OUTPUT(sapi/fpm/php-fpm.conf sapi/fpm/www.conf sapi/fpm/init.d.php-fpm sapi/fpm/php-fpm.service sapi/fpm/php-fpm.8 sapi/fpm/status.html)
+   PHP_ADD_MAKEFILE_FRAGMENT([$abs_srcdir/sapi/fpm/Makefile.frag])
+ 
+   SAPI_FPM_PATH=sapi/fpm/php-fpm
+--- a/sapi/fpm/Makefile.frag
++++ b/sapi/fpm/Makefile.frag
+@@ -11,8 +11,9 @@
+ 	@$(INSTALL) -m 0755 $(SAPI_FPM_PATH) $(INSTALL_ROOT)$(sbindir)/$(program_prefix)php-fpm$(program_suffix)$(EXEEXT)
+ 
+ 	@echo "Installing PHP FPM config:        $(INSTALL_ROOT)$(sysconfdir)/" && \
+-	$(mkinstalldirs) $(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 || :
+ 
+ 	@echo "Installing PHP FPM man page:      $(INSTALL_ROOT)$(mandir)/man8/"
+ 	@$(mkinstalldirs) $(INSTALL_ROOT)$(mandir)/man8
diff --git a/main/php5/php5-common.pre-deinstall b/main/php5/php5-common.pre-deinstall
new file mode 100644
index 0000000000..cec8da2a94
--- /dev/null
+++ b/main/php5/php5-common.pre-deinstall
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+find -L /usr/bin -type l -name "*php*" -delete
+
+exit 0
diff --git a/main/php5/php5-common.pre-upgrade b/main/php5/php5-common.pre-upgrade
new file mode 100644
index 0000000000..96a08da734
--- /dev/null
+++ b/main/php5/php5-common.pre-upgrade
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+for file in $(find /usr/bin -type f -name "*php5*"); do
+	[ ! -e ${file/5/} -o -L ${file/5/} ] && ln -sf $file ${file/5/}
+done
+
+exit 0
diff --git a/main/php5/php5-common.trigger b/main/php5/php5-common.trigger
new file mode 100644
index 0000000000..dcdad55fb6
--- /dev/null
+++ b/main/php5/php5-common.trigger
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+find -L /usr/bin -type l -name "*php*" -delete
+
+for file in $(find /usr/bin -type f -name "*php5*"); do
+	[ ! -e ${file/5/} ] && ln -sf $file ${file/5/}
+done
+
+exit 0
diff --git a/main/php5/php-fpm.initd b/main/php5/php5-fpm.initd
similarity index 73%
rename from main/php5/php-fpm.initd
rename to main/php5/php5-fpm.initd
index 9f091e7645..cd3939ab6f 100644
--- a/main/php5/php-fpm.initd
+++ b/main/php5/php5-fpm.initd
@@ -6,18 +6,17 @@
 # variable "user" and optionally "group" in conf.d file, or in the $fpm_config
 # file (the former has precedence).
 
-: ${name:="PHP FastCGI Process Manager"}
-
-command="/usr/bin/php-fpm"
+command="/usr/bin/php5-fpm"
 command_background="yes"
 start_stop_daemon_args="--quiet"
-pidfile="/run/$RC_SVCNAME/php-fpm.pid"
+pidfile="/run/$RC_SVCNAME/php5-fpm.pid"
 retry="SIGTERM/20"
 
 # configtest is here only for backward compatibility
-extra_commands="checkconfig configtest"
+extra_commands="checkconfig"
 extra_started_commands="reload reopen"
-description_checkconfig="Run php-fpm config check"
+description="PHP5 FastCGI Process Manager"
+description_checkconfig="Run config check"
 description_reload="Gracefully reload workers and config"
 description_reopen="Reopen log files"
 
@@ -25,47 +24,43 @@ required_files="$fpm_config"
 
 depend() {
 	need net
-	use apache2 lighttpd nginx
+	before apache2 lighttpd nginx
 }
 
 init_vars() {
 	# Defaults for single master process with multiple pools
-	if [ "$RC_SVCNAME" = "php-fpm" ]; then
+	if [ "$RC_SVCNAME" = "php5-fpm" ]; then
 		: ${fpm_config:="/etc/php5/php-fpm.conf"}
 		: ${user:="root"}
 	# Defaults for master process per pool
 	else
-		: ${fpm_config="/etc/php5/fpm.d/${RC_SVCNAME#php-fpm.}.conf"}
+		: ${fpm_config="/etc/php5/php-fpm.d/${RC_SVCNAME#php5-fpm.}.conf"}
 		: ${user:="$(conf_get user)"}
 		: ${user:="nobody"}
 		: ${group:="$(conf_get group)"}
 	fi
-	command_args="--nodaemonize --fpm-config $fpm_config"
+	command_args="--nodaemonize --fpm-config $fpm_config --pid $pidfile"
 	start_stop_daemon_args="$start_stop_daemon_args
 		--user $user ${group:+"--group $group"}"
 }
 
 start_pre() {
 	checkconfig || return 1
-
 	# If unix socket is used (instead of TCP/IP), then ensure that the
 	# directory exists and has correct privileges.
 	local listen="$(conf_get listen)"
-	if [ "${listen:0:1}" = "/" ]; then
-		checkpath -d -o $user:$group "$(dirname "$listen")"
-	fi
-
+	[ "${listen:0:1}" = "/" ] && checkpath -d -o $user:$group "$(dirname "$listen")"
 	checkpath -d "$(dirname "$pidfile")"
 }
 
 reload() {
-	ebegin "Reloading $name"
+	ebegin "Reloading $RC_SVCNAME"
 	start-stop-daemon --signal USR2 --pidfile "$pidfile"
 	eend $?
 }
 
 reopen() {
-	ebegin "Reopening $name log files"
+	ebegin "Reopening $RC_SVCNAME log files"
 	start-stop-daemon --signal USR1 --pidfile "$pidfile"
 	eend $?
 }
@@ -73,7 +68,6 @@ reopen() {
 checkconfig() {
 	init_vars
 	ebegin "Checking $fpm_config"
-
 	local out
 	out="$(su -s /bin/sh -c "$command --test --fpm-config $fpm_config" $user 2>&1)" || {
 		printf "%s\n" "$out"
@@ -82,11 +76,6 @@ checkconfig() {
 	}
 }
 
-configtest() {
-	ewarn "configtest is deprecated, use checkconfig instead"
-	checkconfig
-}
-
 conf_get() {
 	local key="$1"
 	sed -nE "s/^${key}\s*=\s*\"?([^\";]+).*/\1/p" "$fpm_config" | head -n 1
diff --git a/main/php5/php5-fpm.logrotate b/main/php5/php5-fpm.logrotate
new file mode 100644
index 0000000000..7f3c42ea00
--- /dev/null
+++ b/main/php5/php5-fpm.logrotate
@@ -0,0 +1,13 @@
+/var/log/php5/*.log {
+	rotate 7
+	daily
+	missingok
+	notifempty
+	delaycompress
+	compress
+	dateext
+	sharedscripts
+	postrotate
+		/etc/init.d/php5-fpm --ifstarted --quiet reopen
+	endscript
+}
diff --git a/main/php5/php5.post-upgrade b/main/php5/php5.post-upgrade
deleted file mode 100644
index 98c959958c..0000000000
--- a/main/php5/php5.post-upgrade
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/sh
-
-new=$1
-old=$2
-
-if [ "$(apk version -t $old 5.3)" = "<" ]; then
-	echo "*"
-	echo "* Please see migration notes here: http://php.net/migration53"
-	echo "*"
-fi
-
diff --git a/main/php5/tidy-buffio.patch b/main/php5/tidy-buffio.patch
new file mode 100644
index 0000000000..c15f9540a4
--- /dev/null
+++ b/main/php5/tidy-buffio.patch
@@ -0,0 +1,11 @@
+--- a/ext/tidy/tidy.c
++++ b/ext/tidy/tidy.c
+@@ -31,7 +31,7 @@
+ #include "ext/standard/info.h"
+ 
+ #include "tidy.h"
+-#include "buffio.h"
++#include "tidybuffio.h"
+ 
+ /* compatibility with older versions of libtidy */
+ #ifndef TIDY_CALL
-- 
2.11.0

---
Unsubscribe:  [email-masked]
Help:         [email-masked]
---