[Pkg-php-commits] [php/debian-sid] Add FPM SAPI to unstable build
Ondřej Surý
ondrej at sury.org
Wed Feb 16 15:12:46 UTC 2011
This reverts commit e180d3c69cd590fe30d2227fdbc1668ca4cd5bf7.
---
debian/control | 23 +++++++++++++++--
debian/php5-fpm.init | 58 +++++++++++++++++++++++++++++++++++++++++++
debian/php5-fpm.postinst | 15 +++++++++++
debian/rules | 61 +++++++++++++++++++++++++++++++++++++++-------
4 files changed, 145 insertions(+), 12 deletions(-)
create mode 100644 debian/php5-fpm.init
create mode 100644 debian/php5-fpm.postinst
diff --git a/debian/control b/debian/control
index d4e2f86..a59ff77 100644
--- a/debian/control
+++ b/debian/control
@@ -73,10 +73,10 @@ Homepage: http://www.php.net/
Package: php5
Architecture: all
-Depends: ${misc:Depends}, libapache2-mod-php5 (>= ${source:Version}) | libapache2-mod-php5filter (>= ${source:Version}) | php5-cgi (>= ${source:Version}), php5-common (>= ${source:Version})
+Depends: ${misc:Depends}, libapache2-mod-php5 (>= ${source:Version}) | libapache2-mod-php5filter (>= ${source:Version}) | php5-cgi (>= ${source:Version}) | php5-fpm (>= ${source:Version}), php5-common (>= ${source:Version})
Description: server-side, HTML-embedded scripting language (metapackage)
This package is a metapackage that, when installed, guarantees that you
- have at least one of the three server-side versions of the PHP5 interpreter
+ have at least one of the four server-side versions of the PHP5 interpreter
installed. Removing this package won't remove PHP5 from your system, however
it may remove other packages that depend on this one.
.
@@ -182,6 +182,23 @@ Description: command-line interpreter for the php5 scripting language
dynamically generated pages quickly. This version of PHP5 was built
with the Suhosin patch.
+Package: php5-fpm
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, mime-support, php5-common (= ${binary:Version}), libmagic1, ucf, tzdata
+Provides: ${php:Provides}
+Suggests: php-pear
+Description: server-side, HTML-embedded scripting language (FPM-CGI binary)
+ This package provides the Fast Process Manager interpreter that runs
+ as a daemon and receives Fast/CGI requests. Note that MOST Apache users
+ probably want the libapache2-mod-php5 package.
+ .
+ ${php:Extensions}
+ .
+ PHP5 is an HTML-embedded scripting language. Much of its syntax is borrowed
+ from C, Java and Perl with a couple of unique PHP-specific features thrown
+ in. The goal of the language is to allow web developers to write dynamically
+ generated pages quickly. This version of PHP5 was built with the Suhosin patch.
+
Package: php5-dev
Depends: ${misc:Depends}, autoconf (>= 2.63), automake (>= 1.11), libssl-dev, libtool (>= 2.2), shtool, php5-common (>= ${binary:Version})
Conflicts: ${libtool:Conflicts}
@@ -197,7 +214,7 @@ Description: Files for PHP5 module development
with the Suhosin patch.
Package: php5-dbg
-Depends: ${misc:Depends}, php5-common (= ${binary:Version}), libapache2-mod-php5 (= ${binary:Version}) | libapache2-mod-php5filter (= ${binary:Version}) | php5-cgi (= ${binary:Version}) | php5-cli (= ${binary:Version}) | php5-curl (= ${binary:Version}) | php5-enchant (= ${binary:Version}) | php5-gd (= ${binary:Version}) | php5-gmp (= ${binary:Version}) | php5-imap (= ${binary:Version}) | php5-interbase (= ${binary:Version}) | php5-intl (= ${binary:Version}) | php5-ldap (= ${binary:Version}) | php5-mcrypt (= ${binary:Version}) | php5-mysql (= ${binary:Version}) | php5-odbc (= ${binary:Version}) | php5-pgsql (= ${binary:Version}) | php5-pspell (= ${binary:Version}) | php5-recode (= ${binary:Version}) | php5-snmp (= ${binary:Version}) | php5-sqlite (= ${binary:Version}) | php5-sybase (= ${binary:Version}) | php5-tidy (= ${binary:Version}) | php5-xmlrpc (= ${binary:Version}) | php5-xsl (= ${binary:Version})
+Depends: ${misc:Depends}, php5-common (= ${binary:Version}), libapache2-mod-php5 (= ${binary:Version}) | libapache2-mod-php5filter (= ${binary:Version}) | php5-cgi (= ${binary:Version}) | php5-cli (= ${binary:Version}) | php5-fpm (= ${binary:Version}) | php5-curl (= ${binary:Version}) | php5-enchant (= ${binary:Version}) | php5-gd (= ${binary:Version}) | php5-gmp (= ${binary:Version}) | php5-imap (= ${binary:Version}) | php5-interbase (= ${binary:Version}) | php5-intl (= ${binary:Version}) | php5-ldap (= ${binary:Version}) | php5-mcrypt (= ${binary:Version}) | php5-mysql (= ${binary:Version}) | php5-odbc (= ${binary:Version}) | php5-pgsql (= ${binary:Version}) | php5-pspell (= ${binary:Version}) | php5-recode (= ${binary:Version}) | php5-snmp (= ${binary:Version}) | php5-sqlite (= ${binary:Version}) | php5-sybase (= ${binary:Version}) | php5-tidy (= ${binary:Version}) | php5-xmlrpc (= ${binary:Version}) | php5-xsl (= ${binary:Version})
Recommends: gdb
Section: debug
Priority: extra
diff --git a/debian/php5-fpm.init b/debian/php5-fpm.init
new file mode 100644
index 0000000..945bd09
--- /dev/null
+++ b/debian/php5-fpm.init
@@ -0,0 +1,58 @@
+#!/bin/sh
+
+### BEGIN INIT INFO
+# Provides: php-fpm php5-fpm
+# Required-Start: $remote_fs $network
+# Required-Stop: $remote_fs $network
+# Default-Start: 2 3 4 5
+# Default-Stop:
+# Short-Description: starts php-fpm
+### END INIT INFO
+
+set -u
+
+DAEMON="PHP5 FPM"
+FPM_CMD=/usr/sbin/php5-fpm
+FPM_CONF=/etc/php5/fpm/main.conf
+FPM_PID=/var/run/php5-fpm.pid
+TIMEOUT=30
+
+FPM_OPTIONS="--fpm-config $FPM_CONF"
+SSD_OPTIONS="--oknodo --quiet --pidfile $FPM_PID --exec $FPM_CMD"
+
+. /lib/lsb/init-functions
+
+case "$1" in
+ start)
+ log_begin_msg "Starting $DAEMON..."
+
+ /sbin/start-stop-daemon --start $SSD_OPTIONS -- $FPM_OPTIONS
+ log_end_msg $?
+ ;;
+ stop)
+ log_begin_msg "Stopping $DAEMON..."
+
+ /sbin/start-stop-daemon --stop $SSD_OPTIONS
+ log_end_msg $?
+ ;;
+ graceful-stop)
+ log_begin_msg "Gracefully stopping $DAEMON..."
+
+ /sbin/start-stop-daemon --stop --retry QUIT/$TIMEOUT/TERM $SSD_OPTIONS
+ log_end_msg $?
+ ;;
+ restart)
+ $0 stop
+ $0 start
+ ;;
+ reload|force-reload)
+ log_begin_msg "Reloading $DAEMON..."
+
+ /sbin/start-stop-daemon --stop --signal USR2 $SSD_OPTIONS
+ log_end_msg $?
+ ;;
+ *)
+ echo "Usage: $0 {start|stop|graceful-stop|restart|reload|force-reload}"
+ exit 1
+ ;;
+esac
diff --git a/debian/php5-fpm.postinst b/debian/php5-fpm.postinst
new file mode 100644
index 0000000..19246bf
--- /dev/null
+++ b/debian/php5-fpm.postinst
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+set -e
+
+#DEBHELPER#
+
+if [ "$1" != "configure" ]; then
+ exit 0
+fi
+
+phpini="/etc/php5/fpm/php.ini"
+
+ucf /usr/share/php5/php.ini-production $phpini
+
+exit 0
diff --git a/debian/rules b/debian/rules
index 4d38363..4fea88e 100755
--- a/debian/rules
+++ b/debian/rules
@@ -190,7 +190,7 @@ else
echo 'nocheck found in DEB_BUILD_OPTIONS' | tee test-results.txt
endif
-build: build-apache2-stamp build-apache2filter-stamp build-cgi-stamp build-cli-stamp build-pear-stamp test-results.txt
+build: build-apache2-stamp build-apache2filter-stamp build-cgi-stamp build-cli-stamp build-fpm-stamp build-pear-stamp test-results.txt
build-apache2-stamp: configure-apache2-stamp
dh_testdir
@@ -210,6 +210,13 @@ build-cli-stamp: configure-cli-stamp
touch build-cli-stamp
+build-fpm-stamp: configure-fpm-stamp
+ dh_testdir
+ cd fpm-build && $(MAKE)
+
+ touch build-fpm-stamp
+
+
build-cgi-stamp: configure-cgi-stamp
dh_testdir
cd cgi-build && $(MAKE) && mv sapi/cgi/php-cgi sapi/cgi/cgi-bin.php5
@@ -241,7 +248,7 @@ build-pear-stamp: build-cgi-stamp
sed -i -re "s#('PEAR_CONFIG_SYSCONFDIR', PHP_SYSCONFDIR)#\1 . '/pear'#" $(CURDIR)/pear-build/usr/share/php/PEAR/Config.php
touch build-pear-stamp
-configure: configure-apache2-stamp configure-apache2filter-stamp configure-cli-stamp configure-cgi-stamp
+configure: configure-apache2-stamp configure-apache2filter-stamp configure-cli-stamp configure-fpm-stamp configure-cgi-stamp
configure-apache2-stamp: prepared-stamp
dh_testdir
@@ -362,6 +369,29 @@ configure-cli-stamp: prepared-stamp
Zend/
touch configure-cli-stamp
+configure-fpm-stamp: prepared-stamp
+ dh_testdir
+ if [ -d fpm-build ]; then rm -rf fpm-build; fi
+ -mkdir fpm-build
+ cd fpm-build && \
+ CFLAGS="$(CFLAGS)" PROG_SENDMAIL="$(PROG_SENDMAIL)" ../configure \
+ --prefix=/usr --enable-fpm --disable-cgi \
+ --with-fpm-user=www-data --with-fpm-group=www-data \
+ --with-config-file-path=/etc/php5/fpm \
+ --with-config-file-scan-dir=/etc/php5/fpm/conf.d \
+ $(COMMON_CONFIG) \
+ --with-libevent-dir=/usr \
+ --without-mm \
+ --disable-pdo \
+ --without-mysql --without-sybase-ct --without-sqlite \
+ --without-mssql --without-sqlite3
+ cd fpm-build && \
+ cp ../Zend/zend_ini_scanner.c ../Zend/zend_language_scanner.c \
+ ../Zend/zend_ini_parser.h ../Zend/zend_language_parser.h \
+ ../Zend/zend_ini_parser.c ../Zend/zend_language_parser.c \
+ Zend/
+ touch configure-fpm-stamp
+
clean: unprepared unpatch
dh_testdir
dh_testroot
@@ -371,12 +401,14 @@ clean: unprepared unpatch
rm -f configure-apache2filter-stamp build-apache2filter-stamp
rm -f configure-cgi-stamp build-cgi-stamp
rm -f configure-cli-stamp build-cli-stamp
+ rm -f configure-fpm-stamp build-fpm-stamp
rm -f build-pear-stamp
rm -f install-stamp
rm -rf apache2-build
rm -rf apache2filter-build
rm -rf cgi-build
rm -rf cli-build
+ rm -rf fpm-build
rm -rf pear-build pear-build-download
rm -f debian/copyright
rm -rf test-results.txt $(MYSQL_DATA_DIR)
@@ -386,7 +418,7 @@ clean: unprepared unpatch
cat debian/modulelist | while read package extname dsoname; do \
rm -f debian/php5-$$package.postinst; \
done
- for sapi in libapache2-mod-php5 libapache2-mod-php5filter php5-cgi php5-cli; do \
+ for sapi in libapache2-mod-php5 libapache2-mod-php5filter php5-cgi php5-cli php5-fpm; do \
for cruft in postrm links; do \
rm -f debian/$${sapi}.$${cruft}; \
done; \
@@ -465,7 +497,7 @@ install: build
# install extensions
ext=`./debian/libapache2-mod-php5/usr/bin/php-config --extension-dir`;\
- for i in libapache2-mod-php5 libapache2-mod-php5filter php5-cgi php5-cli; do \
+ for i in libapache2-mod-php5 libapache2-mod-php5filter php5-cgi php5-fpm php5-cli; do \
mkdir -p debian/$$i/$${ext}; \
done; \
cat debian/modulelist debian/extramodulelist | while read package extname dsoname; do \
@@ -488,6 +520,17 @@ install: build
cp cli-build/sapi/cli/php debian/php5-cli/usr/bin/php5
cp cli-build/sapi/cli/php.1 debian/php5-cli/usr/share/man/man1/php5.1
+ # install FPM
+ mkdir -p debian/php5-fpm/usr/sbin debian/php5-fpm/usr/share/man/man8/ debian/php5-fpm/etc/php5/fpm/pool.d
+ cp fpm-build/sapi/fpm/php-fpm debian/php5-fpm/usr/sbin/php5-fpm
+ cp fpm-build/sapi/fpm/php-fpm.1 debian/php5-fpm/usr/share/man/man8/php5-fpm.8
+ # we don't want the pool definitions on the main file itself:
+ sed -r '/('"'"'|\[)www('"'"'|\])/Q' < fpm-build/sapi/fpm/php-fpm.conf > \
+ debian/php5-fpm/etc/php5/fpm/main.conf
+ # extract the first pool, called "www," from the config file:
+ sed -nr '/('"'"'|\[)www('"'"'|\])/{h;p;d};x;/www/{x;p}' < fpm-build/sapi/fpm/php-fpm.conf \
+ > debian/php5-fpm/etc/php5/fpm/pool.d/www.conf
+
# move and install -dev files
dh_movefiles --sourcedir=debian/libapache2-mod-php5
rm -rf debian/libapache2-mod-php5/usr/lib/php5/build/ \
@@ -524,7 +567,7 @@ install: build
# install some generic lintian overrides
ext=`debian/php5-dev/usr/bin/php-config5 --extension-dir | cut -b2- `; \
- for sapi in php5-cli php5-cgi libapache2-mod-php5 libapache2-mod-php5filter; do \
+ for sapi in php5-cli php5-fpm php5-cgi libapache2-mod-php5 libapache2-mod-php5filter; do \
mkdir -p $(CURDIR)/debian/"$$sapi"/usr/share/lintian/overrides/; \
sed "s/@sapi@/$$sapi/g;s, at extdir@,$$ext,g" \
< $(CURDIR)/debian/php5-sapi.lintian-overrides \
@@ -593,7 +636,7 @@ binary-arch: build install
# likewise, for the different sapi implementations
for tmpl in postrm links; do \
- for sapi in apache2 apache2filter cgi cli; do \
+ for sapi in apache2 apache2filter cgi cli fpm; do \
sed -e "s/@sapi@/$$sapi/g" \
< debian/php5-sapi.$$tmpl \
> debian/php5-$${sapi}.$$tmpl; \
@@ -610,7 +653,7 @@ binary-arch: build install
ln -s php5-common debian/php5-$$package/usr/share/doc/php5-$$package; \
done
- for package in php5-dbg php5-dev php5-cgi php5-cli libapache2-mod-php5 libapache2-mod-php5filter; do \
+ for package in php5-dbg php5-dev php5-cgi php5-cli php5-fpm libapache2-mod-php5 libapache2-mod-php5filter; do \
rm -rf debian/$$package/usr/share/doc/$$package; \
ln -s php5-common debian/$$package/usr/share/doc/$$package; \
done
@@ -625,14 +668,14 @@ binary-arch: build install
dh_shlibdeps -s
phpapi=`./debian/php5-dev/usr/bin/php-config5 --phpapi`; \
- for i in libapache2-mod-php5 libapache2-mod-php5filter php5-cgi php5-cli; do \
+ for i in libapache2-mod-php5 libapache2-mod-php5filter php5-cgi php5-cli php5-fpm; do \
echo "php:Provides=phpapi-$${phpapi}" >> debian/$$i.substvars; \
done; \
cat debian/modulelist | while read package extname dsoname; do \
echo "php:Depends=phpapi-$${phpapi}" >> debian/php5-$$package.substvars; \
done
- for i in cgi cli; do \
+ for i in cgi cli fpm; do \
"$$i"-build/sapi/cli/php -n -r '$(BUILTIN_EXTENSION_CHECK)' \
>> debian/php5-"$$i".substvars; \
done
--
1.7.1
More information about the Pkg-php-commits
mailing list