aboutsummaryrefslogtreecommitdiff
path: root/www/unit
diff options
context:
space:
mode:
authorSergey A. Osokin <osa@FreeBSD.org>2018-11-19 21:40:15 +0000
committerSergey A. Osokin <osa@FreeBSD.org>2018-11-19 21:40:15 +0000
commitc7e23ec64a00cf614b0a9433a7e1548fd72c3d15 (patch)
treec62013398da576cb2486432ae7e258b1ab61b012 /www/unit
parent87695a0425456720c3ab56fdbaf2c9a9f01e61fc (diff)
downloadports-c7e23ec64a00cf614b0a9433a7e1548fd72c3d15.tar.gz
ports-c7e23ec64a00cf614b0a9433a7e1548fd72c3d15.zip
Notes
Diffstat (limited to 'www/unit')
-rw-r--r--www/unit/Makefile3
-rw-r--r--www/unit/files/php_zts.patch109
2 files changed, 112 insertions, 0 deletions
diff --git a/www/unit/Makefile b/www/unit/Makefile
index 5abdd5b690cd..ce986ae38b36 100644
--- a/www/unit/Makefile
+++ b/www/unit/Makefile
@@ -3,6 +3,7 @@
PORTNAME= unit
PORTVERSION= 1.6
+PORTREVISION= 1
CATEGORIES= www
MASTER_SITES= https://unit.nginx.org/download/
@@ -14,6 +15,8 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
BROKEN_powerpc64= fails to build: nxt_conf_validation.c:275: undefined reference to __builtin_popcount
+EXTRA_PATCHES= ${FILESDIR}/php_zts.patch:-p1
+
USES+= cpe
CPE_VENDOR= nginx
diff --git a/www/unit/files/php_zts.patch b/www/unit/files/php_zts.patch
new file mode 100644
index 000000000000..6aa935887265
--- /dev/null
+++ b/www/unit/files/php_zts.patch
@@ -0,0 +1,109 @@
+# HG changeset patch
+# User Valentin Bartenev <vbart@nginx.com>
+# Date 1542651747 -10800
+# Mon Nov 19 21:22:27 2018 +0300
+# Node ID ea6d58aea6f59d23c53f90c98d29424aa635aed0
+# Parent cb3595d839665885cc83c6a20c84ae4ee1e0b5da
+PHP: fixed compatibility with ZTS.
+
+This closes #184 issue on GitHub.
+
+diff -r cb3595d83966 -r ea6d58aea6f5 auto/modules/php
+--- a/auto/modules/php Thu Nov 15 21:50:00 2018 +0300
++++ b/auto/modules/php Mon Nov 19 21:22:27 2018 +0300
+@@ -111,7 +111,7 @@ if /bin/sh -c "${NXT_PHP_CONFIG} --versi
+ #include <php_main.h>
+
+ int main() {
+- php_request_startup();
++ php_module_startup(NULL, NULL, 0);
+ return 0;
+ }"
+
+diff -r cb3595d83966 -r ea6d58aea6f5 src/nxt_php_sapi.c
+--- a/src/nxt_php_sapi.c Thu Nov 15 21:50:00 2018 +0300
++++ b/src/nxt_php_sapi.c Mon Nov 19 21:22:27 2018 +0300
+@@ -45,19 +45,19 @@ static void nxt_php_set_options(nxt_task
+ int type);
+ static nxt_int_t nxt_php_alter_option(nxt_str_t *name, nxt_str_t *value,
+ int type);
+-static int nxt_php_send_headers(sapi_headers_struct *sapi_headers);
+-static char *nxt_php_read_cookies(void);
++static int nxt_php_send_headers(sapi_headers_struct *sapi_headers TSRMLS_DC);
++static char *nxt_php_read_cookies(TSRMLS_D);
+ static void nxt_php_set_sptr(nxt_unit_request_info_t *req, const char *name,
+ nxt_unit_sptr_t *v, uint32_t len, zval *track_vars_array TSRMLS_DC);
+ nxt_inline void nxt_php_set_str(nxt_unit_request_info_t *req, const char *name,
+ nxt_str_t *s, zval *track_vars_array TSRMLS_DC);
+ static void nxt_php_set_cstr(nxt_unit_request_info_t *req, const char *name,
+ char *str, uint32_t len, zval *track_vars_array TSRMLS_DC);
+-static void nxt_php_register_variables(zval *track_vars_array);
++static void nxt_php_register_variables(zval *track_vars_array TSRMLS_DC);
+ #ifdef NXT_HAVE_PHP_LOG_MESSAGE_WITH_SYSLOG_TYPE
+ static void nxt_php_log_message(char *message, int syslog_type_int);
+ #else
+-static void nxt_php_log_message(char *message);
++static void nxt_php_log_message(char *message TSRMLS_DC);
+ #endif
+
+ #ifdef NXT_PHP7
+@@ -159,6 +159,9 @@ NXT_EXPORT nxt_app_module_t nxt_app_mod
+
+
+ static nxt_task_t *nxt_php_task;
++#ifdef ZTS
++static void ***tsrm_ls;
++#endif
+
+
+ static nxt_int_t
+@@ -262,6 +265,17 @@ nxt_php_init(nxt_task_t *task, nxt_commo
+ nxt_memcpy(index->start, c->index.start, c->index.length);
+ }
+
++#ifdef ZTS
++ tsrm_startup(1, 1, 0, NULL);
++ tsrm_ls = ts_resource(0);
++#endif
++
++#ifdef NXT_PHP7
++#if defined(ZEND_SIGNALS) || PHP_MINOR_VERSION > 0
++ zend_signal_startup();
++#endif
++#endif
++
+ sapi_startup(&nxt_php_sapi_module);
+
+ if (c->options != NULL) {
+@@ -433,7 +447,8 @@ nxt_php_alter_option(nxt_str_t *name, nx
+ if (ini_entry->on_modify
+ && ini_entry->on_modify(ini_entry, cstr, value->length,
+ ini_entry->mh_arg1, ini_entry->mh_arg2,
+- ini_entry->mh_arg3, ZEND_INI_STAGE_ACTIVATE)
++ ini_entry->mh_arg3, ZEND_INI_STAGE_ACTIVATE
++ TSRMLS_CC)
+ != SUCCESS)
+ {
+ nxt_free(cstr);
+@@ -573,7 +588,11 @@ nxt_php_request_handler(nxt_unit_request
+ (char *) ctx->script.start);
+ }
+
++#if (NXT_PHP7)
+ if (nxt_slow_path(php_request_startup() == FAILURE)) {
++#else
++ if (nxt_slow_path(php_request_startup(TSRMLS_C) == FAILURE)) {
++#endif
+ nxt_unit_req_debug(req, "php_request_startup() failed");
+ rc = NXT_UNIT_ERROR;
+
+@@ -915,7 +934,7 @@ static void
+ nxt_php_log_message(char *message, int syslog_type_int)
+ #else
+ static void
+-nxt_php_log_message(char *message)
++nxt_php_log_message(char *message TSRMLS_DC)
+ #endif
+ {
+ nxt_log(nxt_php_task, NXT_LOG_NOTICE, "php message: %s", message);
+