diff options
Diffstat (limited to 'lang/php56/files')
-rw-r--r-- | lang/php56/files/extra-patch-php-fpm-ipv6 | 215 | ||||
-rw-r--r-- | lang/php56/files/patch-TSRM_threads.m4 | 11 | ||||
-rw-r--r-- | lang/php56/files/patch-Zend__zend.h | 11 | ||||
-rw-r--r-- | lang/php56/files/patch-Zend_zend_list.c | 38 | ||||
-rw-r--r-- | lang/php56/files/patch-Zend_zend_list.h | 24 | ||||
-rw-r--r-- | lang/php56/files/patch-acinclude.m4 | 45 | ||||
-rw-r--r-- | lang/php56/files/patch-configure.in | 53 | ||||
-rw-r--r-- | lang/php56/files/patch-ext_standard_image.c | 50 | ||||
-rw-r--r-- | lang/php56/files/patch-ext_zlib_config0.m4 | 11 | ||||
-rw-r--r-- | lang/php56/files/patch-main__php_config.h.in | 12 | ||||
-rw-r--r-- | lang/php56/files/patch-sapi_apache2filter_config.m4 | 11 | ||||
-rw-r--r-- | lang/php56/files/patch-sapi_apache2handler_config.m4 | 11 | ||||
-rw-r--r-- | lang/php56/files/patch-sapi_fpm_Makefile.frag | 12 | ||||
-rw-r--r-- | lang/php56/files/patch-sapi_fpm_config.m4 | 20 | ||||
-rw-r--r-- | lang/php56/files/patch-sapi_fpm_php-fpm.conf.in | 11 | ||||
-rw-r--r-- | lang/php56/files/php-fpm.in | 43 |
16 files changed, 578 insertions, 0 deletions
diff --git a/lang/php56/files/extra-patch-php-fpm-ipv6 b/lang/php56/files/extra-patch-php-fpm-ipv6 new file mode 100644 index 000000000000..ac00a11867f9 --- /dev/null +++ b/lang/php56/files/extra-patch-php-fpm-ipv6 @@ -0,0 +1,215 @@ +diff --git a/sapi/fpm/fpm/fpm_sockets.c b/sapi/fpm/fpm/fpm_sockets.c +index e056565..da14d63 100644 +--- a/sapi/fpm/fpm/fpm_sockets.c ++++ b/sapi/fpm/fpm/fpm_sockets.c +@@ -39,29 +39,6 @@ struct listening_socket_s { + + static struct fpm_array_s sockets_list; + +-static int fpm_sockets_resolve_af_inet(char *node, char *service, struct sockaddr_in *addr) /* {{{ */ +-{ +- struct addrinfo *res; +- struct addrinfo hints; +- int ret; +- +- memset(&hints, 0, sizeof(hints)); +- hints.ai_family = AF_INET; +- ret = getaddrinfo(node, service, &hints, &res); +- +- if (ret != 0) { +- zlog(ZLOG_ERROR, "can't resolve hostname '%s%s%s': getaddrinfo said: %s%s%s\n", +- node, service ? ":" : "", service ? service : "", +- gai_strerror(ret), ret == EAI_SYSTEM ? ", system error: " : "", ret == EAI_SYSTEM ? strerror(errno) : ""); +- return -1; +- } +- +- *addr = *(struct sockaddr_in *) res->ai_addr; +- freeaddrinfo(res); +- return 0; +-} +-/* }}} */ +- + enum { FPM_GET_USE_SOCKET = 1, FPM_STORE_SOCKET = 2, FPM_STORE_USE_SOCKET = 3 }; + + static void fpm_sockets_cleanup(int which, void *arg) /* {{{ */ +@@ -98,14 +75,23 @@ static void fpm_sockets_cleanup(int which, void *arg) /* {{{ */ + } + /* }}} */ + ++static void *fpm_get_in_addr(struct sockaddr *sa) /* {{{ */ ++{ ++ if (sa->sa_family == AF_INET) { ++ return &(((struct sockaddr_in*)sa)->sin_addr); ++ } ++ ++ return &(((struct sockaddr_in6*)sa)->sin6_addr); ++} ++/* }}} */ ++ + static int fpm_sockets_hash_op(int sock, struct sockaddr *sa, char *key, int type, int op) /* {{{ */ + { + if (key == NULL) { + switch (type) { + case FPM_AF_INET : { +- struct sockaddr_in *sa_in = (struct sockaddr_in *) sa; +- key = alloca(sizeof("xxx.xxx.xxx.xxx:ppppp")); +- sprintf(key, "%u.%u.%u.%u:%u", IPQUAD(&sa_in->sin_addr), (unsigned int) ntohs(sa_in->sin_port)); ++ key = alloca(INET6_ADDRSTRLEN); ++ inet_ntop(sa->sa_family, fpm_get_in_addr(sa), key, sizeof key); + break; + } + +@@ -254,11 +240,14 @@ enum fpm_address_domain fpm_sockets_domain_from_address(char *address) /* {{{ */ + + static int fpm_socket_af_inet_listening_socket(struct fpm_worker_pool_s *wp) /* {{{ */ + { +- struct sockaddr_in sa_in; ++ struct addrinfo hints, *servinfo, *p; + char *dup_address = strdup(wp->config->listen_address); +- char *port_str = strchr(dup_address, ':'); ++ char *port_str = strrchr(dup_address, ':'); + char *addr = NULL; ++ int addr_len; + int port = 0; ++ int sock; ++ int status; + + if (port_str) { /* this is host:port pair */ + *port_str++ = '\0'; +@@ -274,23 +263,35 @@ static int fpm_socket_af_inet_listening_socket(struct fpm_worker_pool_s *wp) /* + return -1; + } + +- memset(&sa_in, 0, sizeof(sa_in)); +- +- if (addr) { +- sa_in.sin_addr.s_addr = inet_addr(addr); +- if (sa_in.sin_addr.s_addr == INADDR_NONE) { /* do resolve */ +- if (0 > fpm_sockets_resolve_af_inet(addr, NULL, &sa_in)) { +- return -1; +- } +- zlog(ZLOG_NOTICE, "address '%s' resolved as %u.%u.%u.%u", addr, IPQUAD(&sa_in.sin_addr)); ++ // strip brackets from address for getaddrinfo ++ if (addr != NULL) { ++ addr_len = strlen(addr); ++ if (addr[0] == '[' && addr[addr_len - 1] == ']') { ++ addr[addr_len - 1] = '\0'; ++ addr++; + } +- } else { +- sa_in.sin_addr.s_addr = htonl(INADDR_ANY); + } +- sa_in.sin_family = AF_INET; +- sa_in.sin_port = htons(port); ++ ++ memset(&hints, 0, sizeof hints); ++ hints.ai_family = AF_UNSPEC; ++ hints.ai_socktype = SOCK_STREAM; ++ ++ if ((status = getaddrinfo(addr, port_str, &hints, &servinfo)) != 0) { ++ zlog(ZLOG_ERROR, "getaddrinfo: %s\n", gai_strerror(status)); ++ return -1; ++ } ++ + free(dup_address); +- return fpm_sockets_get_listening_socket(wp, (struct sockaddr *) &sa_in, sizeof(struct sockaddr_in)); ++ ++ for (p = servinfo; p != NULL; p = p->ai_next) { ++ if ((sock = fpm_sockets_get_listening_socket(wp, p->ai_addr, p->ai_addrlen)) != -1) { ++ break; ++ } ++ } ++ ++ freeaddrinfo(servinfo); ++ ++ return sock; + } + /* }}} */ + +diff --git a/sapi/fpm/fpm/fpm_sockets.h b/sapi/fpm/fpm/fpm_sockets.h +index 121c016..446c78e 100644 +--- a/sapi/fpm/fpm/fpm_sockets.h ++++ b/sapi/fpm/fpm/fpm_sockets.h +@@ -45,10 +45,4 @@ static inline int fd_set_blocked(int fd, int blocked) /* {{{ */ + } + /* }}} */ + +-#define IPQUAD(sin_addr) \ +- (unsigned int) ((unsigned char *) &(sin_addr)->s_addr)[0], \ +- (unsigned int) ((unsigned char *) &(sin_addr)->s_addr)[1], \ +- (unsigned int) ((unsigned char *) &(sin_addr)->s_addr)[2], \ +- (unsigned int) ((unsigned char *) &(sin_addr)->s_addr)[3] +- + #endif +diff --git a/sapi/fpm/php-fpm.conf.in b/sapi/fpm/php-fpm.conf.in +index ab03736..8e242aa 100644 +--- a/sapi/fpm/php-fpm.conf.in ++++ b/sapi/fpm/php-fpm.conf.in +@@ -152,6 +152,8 @@ group = @php_fpm_group@ + ; Valid syntaxes are: + ; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific 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 addresses on a + ; specific port; + ; '/path/to/unix/socket' - to listen on a unix socket. +diff --git a/sapi/fpm/tests/003.phpt b/sapi/fpm/tests/003.phpt +new file mode 100644 +index 0000000..389cb24 +--- /dev/null ++++ b/sapi/fpm/tests/003.phpt +@@ -0,0 +1,53 @@ ++--TEST-- ++FPM: Test IPv6 support ++--SKIPIF-- ++<?php include "skipif.inc"; ?> ++--FILE-- ++<?php ++ ++include "include.inc"; ++ ++$logfile = dirname(__FILE__).'/php-fpm.log.tmp'; ++ ++$cfg = <<<EOT ++[global] ++error_log = $logfile ++[unconfined] ++listen = [::1]:9000 ++pm = dynamic ++pm.max_children = 5 ++pm.start_servers = 2 ++pm.min_spare_servers = 1 ++pm.max_spare_servers = 3 ++EOT; ++ ++$fpm = run_fpm($cfg, $tail); ++if (is_resource($fpm)) { ++ var_dump(fgets($tail)); ++ var_dump(fgets($tail)); ++ $i = 0; ++ while (($i++ < 30) && !($fp = fsockopen('[::1]', 9000))) { ++ usleep(10000); ++ } ++ if ($fp) { ++ echo "Done\n"; ++ fclose($fp); ++ } ++ proc_terminate($fpm); ++ stream_get_contents($tail); ++ fclose($tail); ++ proc_close($fpm); ++} ++ ++?> ++--EXPECTF-- ++string(%d) "[%d-%s-%d %d:%d:%d] NOTICE: fpm is running, pid %d ++" ++string(%d) "[%d-%s-%d %d:%d:%d] NOTICE: ready to handle connections ++" ++Done ++--CLEAN-- ++<?php ++ $logfile = dirname(__FILE__).'/php-fpm.log.tmp'; ++ @unlink($logfile); ++?> diff --git a/lang/php56/files/patch-TSRM_threads.m4 b/lang/php56/files/patch-TSRM_threads.m4 new file mode 100644 index 000000000000..299350f078b6 --- /dev/null +++ b/lang/php56/files/patch-TSRM_threads.m4 @@ -0,0 +1,11 @@ +--- TSRM/threads.m4.orig 2013-12-10 23:31:06.000000000 +0000 ++++ TSRM/threads.m4 2013-12-13 21:50:24.898258559 +0000 +@@ -79,7 +79,7 @@ int main() { + pthread_mutexattr_t mattr; + int data = 1; + pthread_mutexattr_init(&mattr); +- return pthread_create(&thd, NULL, thread_routine, &data); ++ return 0; + } ], [ + pthreads_working=yes + ], [ diff --git a/lang/php56/files/patch-Zend__zend.h b/lang/php56/files/patch-Zend__zend.h new file mode 100644 index 000000000000..2bfe580a3848 --- /dev/null +++ b/lang/php56/files/patch-Zend__zend.h @@ -0,0 +1,11 @@ +--- Zend/zend.h.orig 2014-08-27 13:31:35.000000000 +0000 ++++ Zend/zend.h 2014-09-04 07:33:27.289480865 +0000 +@@ -193,7 +193,7 @@ + #endif + #define restrict __restrict__ + +-#if (HAVE_ALLOCA || (defined (__GNUC__) && __GNUC__ >= 2)) && !(defined(ZTS) && defined(NETWARE)) && !(defined(ZTS) && defined(HPUX)) && !defined(DARWIN) ++#if (HAVE_ALLOCA || (defined (__GNUC__) && __GNUC__ >= 2)) && !(defined(ZTS) && defined(NETWARE)) && !(defined(ZTS) && defined(HPUX)) && !defined(DARWIN) && !(defined(ZTS) && defined(__FreeBSD__)) + # define ZEND_ALLOCA_MAX_SIZE (32 * 1024) + # define ALLOCA_FLAG(name) \ + zend_bool name; diff --git a/lang/php56/files/patch-Zend_zend_list.c b/lang/php56/files/patch-Zend_zend_list.c new file mode 100644 index 000000000000..4275e78a40c8 --- /dev/null +++ b/lang/php56/files/patch-Zend_zend_list.c @@ -0,0 +1,38 @@ +--- Zend/zend_list.c.orig 2013-12-10 23:31:06.000000000 +0000 ++++ Zend/zend_list.c 2013-12-13 21:50:25.016258358 +0000 +@@ -47,7 +47,7 @@ ZEND_API int zend_list_insert(void *ptr, + return index; + } + +-ZEND_API int _zend_list_delete(int id TSRMLS_DC) ++ZEND_API int _zend_list_delete(ulong id TSRMLS_DC) + { + zend_rsrc_list_entry *le; + +@@ -64,7 +64,7 @@ ZEND_API int _zend_list_delete(int id TS + } + + +-ZEND_API void *_zend_list_find(int id, int *type TSRMLS_DC) ++ZEND_API void *_zend_list_find(ulong id, int *type TSRMLS_DC) + { + zend_rsrc_list_entry *le; + +@@ -77,7 +77,7 @@ ZEND_API void *_zend_list_find(int id, i + } + } + +-ZEND_API int _zend_list_addref(int id TSRMLS_DC) ++ZEND_API int _zend_list_addref(ulong id TSRMLS_DC) + { + zend_rsrc_list_entry *le; + +@@ -348,7 +348,7 @@ void zend_destroy_rsrc_list_dtors(void) + } + + +-const char *zend_rsrc_list_get_rsrc_type(int resource TSRMLS_DC) ++const char *zend_rsrc_list_get_rsrc_type(ulong resource TSRMLS_DC) + { + zend_rsrc_list_dtors_entry *lde; + int rsrc_type; diff --git a/lang/php56/files/patch-Zend_zend_list.h b/lang/php56/files/patch-Zend_zend_list.h new file mode 100644 index 000000000000..0ab7450f4de9 --- /dev/null +++ b/lang/php56/files/patch-Zend_zend_list.h @@ -0,0 +1,24 @@ +--- Zend/zend_list.h.orig 2013-12-10 23:31:06.000000000 +0000 ++++ Zend/zend_list.h 2013-12-13 21:50:25.087258407 +0000 +@@ -71,9 +71,9 @@ int zend_init_rsrc_list_dtors(void); + void zend_destroy_rsrc_list_dtors(void); + + ZEND_API int zend_list_insert(void *ptr, int type TSRMLS_DC); +-ZEND_API int _zend_list_addref(int id TSRMLS_DC); +-ZEND_API int _zend_list_delete(int id TSRMLS_DC); +-ZEND_API void *_zend_list_find(int id, int *type TSRMLS_DC); ++ZEND_API int _zend_list_addref(ulong id TSRMLS_DC); ++ZEND_API int _zend_list_delete(ulong id TSRMLS_DC); ++ZEND_API void *_zend_list_find(ulong id, int *type TSRMLS_DC); + + #define zend_list_addref(id) _zend_list_addref(id TSRMLS_CC) + #define zend_list_delete(id) _zend_list_delete(id TSRMLS_CC) +@@ -82,7 +82,7 @@ ZEND_API void *_zend_list_find(int id, i + ZEND_API int zend_register_resource(zval *rsrc_result, void *rsrc_pointer, int rsrc_type TSRMLS_DC); + ZEND_API void *zend_fetch_resource(zval **passed_id TSRMLS_DC, int default_id, const char *resource_type_name, int *found_resource_type, int num_resource_types, ...); + +-ZEND_API const char *zend_rsrc_list_get_rsrc_type(int resource TSRMLS_DC); ++ZEND_API const char *zend_rsrc_list_get_rsrc_type(ulong resource TSRMLS_DC); + ZEND_API int zend_fetch_list_dtor_id(char *type_name); + + extern ZEND_API int le_index_ptr; /* list entry type for index pointers */ diff --git a/lang/php56/files/patch-acinclude.m4 b/lang/php56/files/patch-acinclude.m4 new file mode 100644 index 000000000000..836eb4053db4 --- /dev/null +++ b/lang/php56/files/patch-acinclude.m4 @@ -0,0 +1,45 @@ +--- acinclude.m4.orig 2013-12-10 23:31:06.000000000 +0000 ++++ acinclude.m4 2013-12-13 21:50:25.113258550 +0000 +@@ -984,15 +984,9 @@ dnl ------------------------------------ + if test "$3" != "shared" && test "$3" != "yes" && test "$4" = "cli"; then + dnl ---------------------------------------------- CLI static module + [PHP_]translit($1,a-z_-,A-Z__)[_SHARED]=no +- case "$PHP_SAPI" in +- cgi|embed[)] +- PHP_ADD_SOURCES(PHP_EXT_DIR($1),$2,$ac_extra,) +- EXT_STATIC="$EXT_STATIC $1" +- ;; +- *[)] + PHP_ADD_SOURCES(PHP_EXT_DIR($1),$2,$ac_extra,cli) +- ;; +- esac ++ PHP_ADD_SOURCES(PHP_EXT_DIR($1),$2,$ac_extra,cgi) ++ PHP_ADD_SOURCES(PHP_EXT_DIR($1),$2,$ac_extra,fpm) + EXT_CLI_STATIC="$EXT_CLI_STATIC $1" + fi + PHP_ADD_BUILD_DIR($ext_builddir) +@@ -1042,12 +1036,6 @@ You either need to build $1 shared or bu + build to be successful. + ]) + fi +- if test "x$is_it_enabled" = "xno" && test "x$3" != "xtrue"; then +- AC_MSG_ERROR([ +-You've configured extension $1, which depends on extension $2, +-but you've either not enabled $2, or have disabled it. +-]) +- fi + dnl Some systems require that we link $2 to $1 when building + ]) + +@@ -2320,9 +2308,9 @@ AC_DEFUN([PHP_SETUP_OPENSSL],[ + test -z "$PHP_IMAP_SSL" && PHP_IMAP_SSL=no + + dnl Fallbacks for different configure options +- if test "$PHP_OPENSSL" != "no"; then ++ if test -n "$PHP_OPENSSL" && test "$PHP_OPENSSL" != "no"; then + PHP_OPENSSL_DIR=$PHP_OPENSSL +- elif test "$PHP_IMAP_SSL" != "no"; then ++ elif test -n "$PHP_IMAP_SSL" && test "$PHP_IMAP_SSL" != "no"; then + PHP_OPENSSL_DIR=$PHP_IMAP_SSL + fi + diff --git a/lang/php56/files/patch-configure.in b/lang/php56/files/patch-configure.in new file mode 100644 index 000000000000..f30e9d392594 --- /dev/null +++ b/lang/php56/files/patch-configure.in @@ -0,0 +1,53 @@ +--- configure.in.orig 2014-04-01 12:32:03.000000000 +0000 ++++ configure.in 2014-04-09 07:56:27.824397653 +0000 +@@ -370,7 +370,6 @@ + dnl . + dnl ------------------------------------------------------------------------- + +-PTHREADS_CHECK + PHP_HELP_SEPARATOR([SAPI modules:]) + PHP_SHLIB_SUFFIX_NAMES + PHP_BUILD_PROGRAM +@@ -401,15 +400,9 @@ + AC_MSG_RESULT([none]) + fi + +-dnl Exit early +-if test -z "$PHP_INSTALLED_SAPIS"; then +- AC_MSG_ERROR([Nothing to build.]) +-fi +- + dnl force ZTS + if test "$enable_maintainer_zts" = "yes"; then + PTHREADS_ASSIGN_VARS +- PTHREADS_FLAGS + fi + + dnl Starting system checks. +@@ -688,7 +681,7 @@ + ) + + dnl Some systems (like OpenSolaris) do not have nanosleep in libc +-PHP_CHECK_FUNC_LIB(nanosleep, rt) ++PHP_CHECK_FUNC(nanosleep, rt) + + dnl Check for getaddrinfo, should be a better way, but... + dnl Also check for working getaddrinfo +@@ -1225,7 +1218,7 @@ + EXPANDED_DATADIR=$datadir + EXPANDED_PHP_CONFIG_FILE_PATH=`eval echo "$PHP_CONFIG_FILE_PATH"` + EXPANDED_PHP_CONFIG_FILE_SCAN_DIR=`eval echo "$PHP_CONFIG_FILE_SCAN_DIR"` +-INCLUDE_PATH=.:$EXPANDED_PEAR_INSTALLDIR ++INCLUDE_PATH=.:${prefix}/share/pear + + exec_prefix=$old_exec_prefix + libdir=$old_libdir +@@ -1435,7 +1428,7 @@ + PHP_SUBST(install_targets) + PHP_SUBST(install_binary_targets) + +-PHP_INSTALL_HEADERS([Zend/ TSRM/ include/ main/ main/streams/]) ++PHP_INSTALL_HEADERS([Zend/ TSRM/ main/ main/streams/]) + + PHP_ADD_SOURCES(TSRM, TSRM.c tsrm_strtok_r.c tsrm_virtual_cwd.c) + diff --git a/lang/php56/files/patch-ext_standard_image.c b/lang/php56/files/patch-ext_standard_image.c new file mode 100644 index 000000000000..02c0907afc61 --- /dev/null +++ b/lang/php56/files/patch-ext_standard_image.c @@ -0,0 +1,50 @@ +--- ext/standard/image.c.orig 2013-12-10 23:31:06.000000000 +0000 ++++ ext/standard/image.c 2013-12-13 21:50:25.301258244 +0000 +@@ -31,9 +31,7 @@ + #endif + #include "php_image.h" + +-#if HAVE_ZLIB && !defined(COMPILE_DL_ZLIB) + #include "zlib.h" +-#endif + + /* file type markers */ + PHPAPI const char php_sig_gif[3] = {'G', 'I', 'F'}; +@@ -81,9 +79,7 @@ PHP_MINIT_FUNCTION(imagetypes) + REGISTER_LONG_CONSTANT("IMAGETYPE_JP2", IMAGE_FILETYPE_JP2, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("IMAGETYPE_JPX", IMAGE_FILETYPE_JPX, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("IMAGETYPE_JB2", IMAGE_FILETYPE_JB2, CONST_CS | CONST_PERSISTENT); +-#if HAVE_ZLIB && !defined(COMPILE_DL_ZLIB) + REGISTER_LONG_CONSTANT("IMAGETYPE_SWC", IMAGE_FILETYPE_SWC, CONST_CS | CONST_PERSISTENT); +-#endif + REGISTER_LONG_CONSTANT("IMAGETYPE_IFF", IMAGE_FILETYPE_IFF, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("IMAGETYPE_WBMP", IMAGE_FILETYPE_WBMP, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("IMAGETYPE_JPEG2000",IMAGE_FILETYPE_JPC, CONST_CS | CONST_PERSISTENT); /* keep alias */ +@@ -188,7 +184,6 @@ static unsigned long int php_swf_get_bit + } + /* }}} */ + +-#if HAVE_ZLIB && !defined(COMPILE_DL_ZLIB) + /* {{{ php_handle_swc + */ + static struct gfxinfo *php_handle_swc(php_stream * stream TSRMLS_DC) +@@ -259,7 +254,6 @@ static struct gfxinfo *php_handle_swc(ph + return result; + } + /* }}} */ +-#endif + + /* {{{ php_handle_swf + */ +@@ -1318,11 +1312,7 @@ static void php_getimagesize_from_stream + result = php_handle_swf(stream TSRMLS_CC); + break; + case IMAGE_FILETYPE_SWC: +-#if HAVE_ZLIB && !defined(COMPILE_DL_ZLIB) + result = php_handle_swc(stream TSRMLS_CC); +-#else +- php_error_docref(NULL TSRMLS_CC, E_NOTICE, "The image is a compressed SWF file, but you do not have a static version of the zlib extension enabled"); +-#endif + break; + case IMAGE_FILETYPE_PSD: + result = php_handle_psd(stream TSRMLS_CC); diff --git a/lang/php56/files/patch-ext_zlib_config0.m4 b/lang/php56/files/patch-ext_zlib_config0.m4 new file mode 100644 index 000000000000..f0d9c99af2fd --- /dev/null +++ b/lang/php56/files/patch-ext_zlib_config0.m4 @@ -0,0 +1,11 @@ +--- ext/zlib/config0.m4.orig 2013-12-10 23:31:06.000000000 +0000 ++++ ext/zlib/config0.m4 2013-12-13 21:50:25.378258611 +0000 +@@ -8,7 +8,7 @@ PHP_ARG_WITH(zlib,for ZLIB support, + PHP_ARG_WITH(zlib-dir,if the location of ZLIB install directory is defined, + [ --with-zlib-dir=<DIR> Define the location of zlib install directory], no, no) + +-if test "$PHP_ZLIB" != "no" || test "$PHP_ZLIB_DIR" != "no"; then ++if test "$PHP_ZLIB" != "no"; then + PHP_NEW_EXTENSION(zlib, zlib.c zlib_fopen_wrapper.c zlib_filter.c, $ext_shared) + PHP_SUBST(ZLIB_SHARED_LIBADD) + diff --git a/lang/php56/files/patch-main__php_config.h.in b/lang/php56/files/patch-main__php_config.h.in new file mode 100644 index 000000000000..36cc08c6e92b --- /dev/null +++ b/lang/php56/files/patch-main__php_config.h.in @@ -0,0 +1,12 @@ +--- main/php_config.h.in.orig 2013-12-10 23:50:50.000000000 +0000 ++++ main/php_config.h.in 2013-12-13 21:50:25.396258363 +0000 +@@ -2342,6 +2342,9 @@ + /* Define if processor uses big-endian word */ + #undef WORDS_BIGENDIAN + ++/* Include external shared modules configurations */ ++#include "ext/php_config.h" ++ + /* Whether sprintf is broken */ + #undef ZEND_BROKEN_SPRINTF + diff --git a/lang/php56/files/patch-sapi_apache2filter_config.m4 b/lang/php56/files/patch-sapi_apache2filter_config.m4 new file mode 100644 index 000000000000..0741340c5d52 --- /dev/null +++ b/lang/php56/files/patch-sapi_apache2filter_config.m4 @@ -0,0 +1,11 @@ +--- sapi/apache2filter/config.m4.orig 2013-12-10 23:31:06.000000000 +0000 ++++ sapi/apache2filter/config.m4 2013-12-13 21:50:25.481258052 +0000 +@@ -68,7 +68,7 @@ if test "$PHP_APXS2FILTER" != "no"; then + fi + + APXS_LIBEXECDIR='$(INSTALL_ROOT)'`$APXS -q LIBEXECDIR` +- if test -z `$APXS -q SYSCONFDIR`; then ++ if true; then + INSTALL_IT="\$(mkinstalldirs) '$APXS_LIBEXECDIR' && \ + $APXS -S LIBEXECDIR='$APXS_LIBEXECDIR' \ + -i -n php5" diff --git a/lang/php56/files/patch-sapi_apache2handler_config.m4 b/lang/php56/files/patch-sapi_apache2handler_config.m4 new file mode 100644 index 000000000000..42e50def5df3 --- /dev/null +++ b/lang/php56/files/patch-sapi_apache2handler_config.m4 @@ -0,0 +1,11 @@ +--- sapi/apache2handler/config.m4.orig 2013-12-10 23:31:06.000000000 +0000 ++++ sapi/apache2handler/config.m4 2013-12-13 21:50:25.488258534 +0000 +@@ -67,7 +67,7 @@ if test "$PHP_APXS2" != "no"; then + fi + + APXS_LIBEXECDIR='$(INSTALL_ROOT)'`$APXS -q LIBEXECDIR` +- if test -z `$APXS -q SYSCONFDIR`; then ++ if true; then + INSTALL_IT="\$(mkinstalldirs) '$APXS_LIBEXECDIR' && \ + $APXS -S LIBEXECDIR='$APXS_LIBEXECDIR' \ + -i -n php5" diff --git a/lang/php56/files/patch-sapi_fpm_Makefile.frag b/lang/php56/files/patch-sapi_fpm_Makefile.frag new file mode 100644 index 000000000000..3d0ff1979f9e --- /dev/null +++ b/lang/php56/files/patch-sapi_fpm_Makefile.frag @@ -0,0 +1,12 @@ +--- sapi/fpm/Makefile.frag.orig 2013-12-10 23:31:06.000000000 +0000 ++++ sapi/fpm/Makefile.frag 2013-12-13 21:50:25.575258563 +0000 +@@ -18,6 +18,6 @@ install-fpm: $(SAPI_FPM_PATH) + @$(mkinstalldirs) $(INSTALL_ROOT)$(mandir)/man8 + @$(INSTALL_DATA) sapi/fpm/php-fpm.8 $(INSTALL_ROOT)$(mandir)/man8/php-fpm$(program_suffix).8 + +- @echo "Installing PHP FPM status page: $(INSTALL_ROOT)$(datadir)/fpm/" +- @$(mkinstalldirs) $(INSTALL_ROOT)$(datadir)/fpm +- @$(INSTALL_DATA) sapi/fpm/status.html $(INSTALL_ROOT)$(datadir)/fpm/status.html ++ @echo "Installing PHP FPM status page: $(INSTALL_ROOT)$(datadir)/php/fpm/" ++ @$(mkinstalldirs) $(INSTALL_ROOT)$(datadir)/php/fpm ++ @$(INSTALL_DATA) sapi/fpm/status.html $(INSTALL_ROOT)$(datadir)/php/fpm/status.html diff --git a/lang/php56/files/patch-sapi_fpm_config.m4 b/lang/php56/files/patch-sapi_fpm_config.m4 new file mode 100644 index 000000000000..c8d7a8747fbe --- /dev/null +++ b/lang/php56/files/patch-sapi_fpm_config.m4 @@ -0,0 +1,20 @@ +--- sapi/fpm/config.m4.orig 2013-12-10 23:31:06.000000000 +0000 ++++ sapi/fpm/config.m4 2013-12-13 21:50:25.662258580 +0000 +@@ -317,7 +317,7 @@ AC_DEFUN([AC_FPM_LQ], + + AC_MSG_CHECKING([for TCP_INFO]) + +- AC_TRY_COMPILE([ #include <netinet/tcp.h> ], [struct tcp_info ti; int x = TCP_INFO;], [ ++ AC_TRY_COMPILE([ #include <netinet/tcp.h> ], [struct tcp_info ti; ti.tcpi_sacked = 0; int x = TCP_INFO;], [ + have_lq=tcp_info + AC_MSG_RESULT([yes]) + ], [ +@@ -338,7 +338,7 @@ AC_DEFUN([AC_FPM_LQ], + AC_MSG_RESULT([no]) + ]) + +- if test "$have_lq" = "tcp_info"; then ++ if test "$have_lq" = "so_listenq"; then + AC_DEFINE([HAVE_LQ_SO_LISTENQ], 1, [do we have SO_LISTENQxxx?]) + fi + fi diff --git a/lang/php56/files/patch-sapi_fpm_php-fpm.conf.in b/lang/php56/files/patch-sapi_fpm_php-fpm.conf.in new file mode 100644 index 000000000000..f80dcb9ff714 --- /dev/null +++ b/lang/php56/files/patch-sapi_fpm_php-fpm.conf.in @@ -0,0 +1,11 @@ +--- sapi/fpm/php-fpm.conf.in.orig 2013-12-10 23:31:06.000000000 +0000 ++++ sapi/fpm/php-fpm.conf.in 2013-12-13 21:50:25.757258451 +0000 +@@ -341,7 +341,7 @@ pm.max_spare_servers = 3 + ; 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 ++; It's available in: @EXPANDED_DATADIR@/php/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 diff --git a/lang/php56/files/php-fpm.in b/lang/php56/files/php-fpm.in new file mode 100644 index 000000000000..55e2ac992408 --- /dev/null +++ b/lang/php56/files/php-fpm.in @@ -0,0 +1,43 @@ +#!/bin/sh +# +# $FreeBSD$ +# + +# PROVIDE: php-fpm +# REQUIRE: LOGIN +# KEYWORD: shutdown + +# +# Add the following line to /etc/rc.conf to enable php-fpm: +# php_fpm_enable="YES" +# + +. /etc/rc.subr + +name="php_fpm" +rcvar=php_fpm_enable + +load_rc_config "$name" + +: ${php_fpm_enable="NO"} + +extra_commands="reload logrotate" + +command="%%PREFIX%%/sbin/php-fpm" +pidfile="/var/run/php-fpm.pid" +sig_stop="QUIT" +sig_reload="USR2" +logrotate_cmd="php_fpm_logrotate" + +required_files="%%PREFIX%%/etc/php-fpm.conf" + +php_fpm_logrotate() { + if [ -z "$rc_pid" ]; then + _run_rc_notrunning + return 1 + fi + echo "Rotating logs $name." + kill -USR1 $rc_pid +} + +run_rc_command "$1" |