Патч, добавляющий поддержку php-fpm в порт lang/php5

Набросал небольшой патч, добавляющий в порт php 5.3 поддержку php-fpm. Из недостатков — требует наличие svn клиента для загрузки патчей с репозитария svn.php.net. Зато в теории будет работать для любой стабильной версии порта в пределах ветки 5.3.x.

Установка очень простая:

cd /usr/ports/lang/php5
fetch http://sav.ecom24.ru/freebsd/fpm.patch
patch < fpm.patch
make config install clean

Сам патч:

--- Makefile    2010-06-17 07:59:24.414207380 +0000
+++ Makefile    2010-06-17 08:56:48.418613806 +0000
@@ -43,7 +43,8 @@ OPTIONS=      CLI "Build CLI version" on \
                SUHOSIN "Enable Suhosin protection system" on \
                MULTIBYTE "Enable zend multibyte support" off \
                IPV6 "Enable ipv6 support" on \
-               MAILHEAD "Enable mail header patch" off
+               MAILHEAD "Enable mail header patch" off \
+               FPM "Enable PHP-FPM patch" off

 CONFLICTS=     php4-4* php5-pcre-* php5-spl-*

@@ -51,6 +52,13 @@ MAN1=                php-config.1 phpize.1

 .include 

+.if defined(WITH_FPM)
+USE_RC_SUBR=   php-fpm.sh
+LIB_DEPENDS+=  event:${PORTSDIR}/devel/libevent
+BUILD_DEPENDS+=        svn:$(PORTSDIR)/devel/subversion
+CONFIGURE_ARGS+=--enable-fpm --with-fpm-log=/var/log/php-fpm.log --with-fpm-pid=/var/run/php-fpm.pid
+.endif
+
 PATCH_DIST_STRIP=      -p1

 .if !defined(WITHOUT_SUHOSIN)
@@ -136,9 +144,16 @@ CONFIGURE_ARGS+=--disable-ipv6
 post-patch:
        @${TOUCH} ${WRKSRC}/ext/php_config.h
        @${REINPLACE_CMD} "s|^\(extension_dir\)|; \1|" ${WRKSRC}/php.ini-*
+       @(svn export http://svn.php.net/repository/php/php-src/branches/PHP_5_3/sapi/fpm ${WRKSRC}/sapi/fpm)

 pre-configure:
        @${CAT} ${WRKSRC}/acinclude.m4 ${WRKSRC}/build/libtool.m4 > ${WRKSRC}/aclocal.m4
+       @(cd ${WRKSRC} && ./buildconf --force)
+
+post-configure:
+.if defined(WITH_FPM)
+       @${REINPLACE_CMD} "s|/usr/local/var|/var|" ${WRKSRC}/sapi/fpm/php-fpm.conf
+.endif

 post-build:
        @${ECHO_CMD} "PHP_VER=5" > ${WRKDIR}/php.conf
--- files/php-fpm.sh.in 1970-01-01 00:00:00.000000000 +0000
+++ files/php-fpm.sh.in 2010-06-17 09:05:07.600963518 +0000
@@ -0,0 +1,43 @@
+#!/bin/sh
+
+# PROVIDE: php-fpm
+# REQUIRE: NETWORKING SERVERS
+# KEYWORD: shutdown
+
+# Add the following lines to /etc/rc.conf to enable php-fpm:
+# php_fpm_enable (bool):      Set to "NO" by default.
+#                             Set it to "YES" to enable php-fpm
+# php_fpm_config (str):       Set to "" by default.
+#                             Define your php-fpm configuration file here.
+
+. /etc/rc.subr
+
+name="php_fpm"
+rcvar=`set_rcvar`
+
+load_rc_config $name
+
+: ${php_fpm_enable="NO"}
+: ${php_fpm_pidfile="/var/run/php-fpm.pid"}
+: ${php_fpm_config="%%PREFIX%%/etc/php-fpm.conf"}
+
+command="%%PREFIX%%/sbin/php-fpm"
+pidfile=${php_fpm_pidfile}
+reload_precmd="php_fpm_prereload"
+quit_cmd="php_fpm_quit"
+
+[ -n "$php_fpm_config" ] && php_fpm_flags="--fpm-config $php_fpm_config"
+
+php_fpm_prereload()
+{
+       sig_reload=USR2
+}
+
+php_fpm_quit()
+{
+       sig_stop=QUIT
+       run_rc_command stop
+}
+
+extra_commands="reload quit"
+run_rc_command "$1"

Патч, добавляющий поддержку php-fpm в порт lang/php5: 2 комментария

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *