unit-python: add Python 3.11 support using upstream patch Bump PKGREVISION.diff -r1.10 -r1.11 pkgsrc/www/unit/distinfo
(wiz)
@@ -1,12 +1,13 @@ | @@ -1,12 +1,13 @@ | |||
1 | $NetBSD: distinfo,v 1.10 2022/09/14 05:31:41 osa Exp $ | 1 | $NetBSD: distinfo,v 1.11 2022/12/06 08:54:23 wiz Exp $ | |
2 | 2 | |||
3 | BLAKE2s (unit-1.28.0.tar.gz) = fe95e41bc6876ae30070ef0a1cba33181df6813bc69d3a246c71c25ff6193d2a | 3 | BLAKE2s (unit-1.28.0.tar.gz) = fe95e41bc6876ae30070ef0a1cba33181df6813bc69d3a246c71c25ff6193d2a | |
4 | SHA512 (unit-1.28.0.tar.gz) = 7d2033be3d8e9d15db21b5431348be73a10fbc19bcab7e83d3c5a770e11e23a53967afe051ec53e236896ac9e021d9146501bc32b87254f9b25778b4bc5d1cbe | 4 | SHA512 (unit-1.28.0.tar.gz) = 7d2033be3d8e9d15db21b5431348be73a10fbc19bcab7e83d3c5a770e11e23a53967afe051ec53e236896ac9e021d9146501bc32b87254f9b25778b4bc5d1cbe | |
5 | Size (unit-1.28.0.tar.gz) = 878878 bytes | 5 | Size (unit-1.28.0.tar.gz) = 878878 bytes | |
6 | SHA1 (patch-auto_events) = 0347dfefbedaacd206c8c2bfd8ea38b18995dd9f | 6 | SHA1 (patch-auto_events) = 0347dfefbedaacd206c8c2bfd8ea38b18995dd9f | |
7 | SHA1 (patch-auto_os_conf) = 6d1cd7aef662a60d4288014eb6fadbe8c1268e55 | 7 | SHA1 (patch-auto_os_conf) = 6d1cd7aef662a60d4288014eb6fadbe8c1268e55 | |
8 | SHA1 (patch-auto_shmem) = cb37c368c19205c2cc1750f4a847af23be8bfa25 | 8 | SHA1 (patch-auto_shmem) = cb37c368c19205c2cc1750f4a847af23be8bfa25 | |
9 | SHA1 (patch-src_nxt__kqueue__engine.c) = c341425f4b21d4cff6e003958f88a04b53dc4ee1 | 9 | SHA1 (patch-src_nxt__kqueue__engine.c) = c341425f4b21d4cff6e003958f88a04b53dc4ee1 | |
10 | SHA1 (patch-src_nxt__php__sapi.c) = 2d5e557ff2066bec78f5bfbca6a64688f60da01b | 10 | SHA1 (patch-src_nxt__php__sapi.c) = 2d5e557ff2066bec78f5bfbca6a64688f60da01b | |
11 | SHA1 (patch-src_nxt__unix.h) = c0db5bc4d9c45a3ead48627567284d8b3041b0a0 | 11 | SHA1 (patch-src_nxt__unix.h) = c0db5bc4d9c45a3ead48627567284d8b3041b0a0 | |
12 | SHA1 (patch-src_nxt__websocket__header.h) = 1b50405b187cc8a662372a1c20ab7737278135ae | 12 | SHA1 (patch-src_nxt__websocket__header.h) = 1b50405b187cc8a662372a1c20ab7737278135ae | |
13 | SHA1 (patch-src_python_nxt__python.c) = 18b638d2e2f155e7f2839309552d34772f0f5162 |
@@ -1,23 +1,21 @@ | @@ -1,23 +1,21 @@ | |||
1 | # $NetBSD: Makefile,v 1.5 2022/11/15 12:47:59 wiz Exp $ | 1 | # $NetBSD: Makefile,v 1.6 2022/12/06 08:54:23 wiz Exp $ | |
2 | 2 | |||
3 | PKGNAME= unit-${LANG}${PYVERSSUFFIX}-${UNIT_VERSION} | 3 | PKGNAME= unit-${LANG}${PYVERSSUFFIX}-${UNIT_VERSION} | |
4 | PKGREVISION= 1 | |||
4 | COMMENT= Python module for NGINX Unit | 5 | COMMENT= Python module for NGINX Unit | |
5 | 6 | |||
6 | LANG= python | 7 | LANG= python | |
7 | MODNAME= ${LANG} | 8 | MODNAME= ${LANG} | |
8 | 9 | |||
9 | MAINTAINER= osa@NetBSD.org | 10 | MAINTAINER= osa@NetBSD.org | |
10 | 11 | |||
11 | # https://github.com/nginx/unit/issues/710 | |||
12 | PYTHON_VERSIONS_INCOMPATIBLE= 311 | |||
13 | ||||
14 | post-configure: | 12 | post-configure: | |
15 | ${RUN} cd ${WRKSRC} && ${SETENV} ${_CONFIGURE_SCRIPT_ENV} \ | 13 | ${RUN} cd ${WRKSRC} && ${SETENV} ${_CONFIGURE_SCRIPT_ENV} \ | |
16 | ${CONFIG_SHELL} ${CONFIG_SHELL_FLAGS} ${CONFIGURE_SCRIPT} \ | 14 | ${CONFIG_SHELL} ${CONFIG_SHELL_FLAGS} ${CONFIGURE_SCRIPT} \ | |
17 | ${LANG} --module=${MODNAME} \ | 15 | ${LANG} --module=${MODNAME} \ | |
18 | --config=${LANG}${PYVERSSUFFIX}-config | 16 | --config=${LANG}${PYVERSSUFFIX}-config | |
19 | 17 | |||
20 | .include "../../lang/${LANG}/application.mk" | 18 | .include "../../lang/${LANG}/application.mk" | |
21 | .include "../../www/unit/ext.mk" | 19 | .include "../../www/unit/ext.mk" | |
22 | .include "../../www/unit/Makefile.common" | 20 | .include "../../www/unit/Makefile.common" | |
23 | .include "../../mk/bsd.pkg.mk" | 21 | .include "../../mk/bsd.pkg.mk" |
$NetBSD: patch-src_python_nxt__python.c,v 1.1 2022/12/06 08:54:23 wiz Exp $
Python 3.11 support.
https://github.com/nginx/unit/commit/491d0f700f5690eba0f1fcf2124f3a37ef73eb1a
--- src/python/nxt_python.c.orig 2022-09-12 23:26:26.000000000 +0000
+++ src/python/nxt_python.c
@@ -22,6 +22,10 @@ typedef struct {
} nxt_py_thread_info_t;
+#if PY_MAJOR_VERSION == 3
+static nxt_int_t nxt_python3_init_config(nxt_int_t pep405);
+#endif
+
static nxt_int_t nxt_python_start(nxt_task_t *task,
nxt_process_data_t *data);
static nxt_int_t nxt_python_set_target(nxt_task_t *task,
@@ -64,6 +68,63 @@ static nxt_py_thread_info_t *nxt_py_thr
static nxt_python_proto_t nxt_py_proto;
+#if PY_VERSION_HEX >= NXT_PYTHON_VER(3, 8)
+
+static nxt_int_t
+nxt_python3_init_config(nxt_int_t pep405)
+{
+ PyStatus status;
+ PyConfig config;
+
+ PyConfig_InitIsolatedConfig(&config);
+
+ if (pep405) {
+ status = PyConfig_SetString(&config, &config.program_name,
+ nxt_py_home);
+ if (PyStatus_Exception(status)) {
+ goto pyinit_exception;
+ }
+
+ } else {
+ status =PyConfig_SetString(&config, &config.home, nxt_py_home);
+ if (PyStatus_Exception(status)) {
+ goto pyinit_exception;
+ }
+ }
+
+ status = Py_InitializeFromConfig(&config);
+ if (PyStatus_Exception(status)) {
+ goto pyinit_exception;
+ }
+ PyConfig_Clear(&config);
+
+ return NXT_OK;
+
+pyinit_exception:
+
+ PyConfig_Clear(&config);
+
+ return NXT_ERROR;
+}
+
+#elif PY_MAJOR_VERSION == 3
+
+static nxt_int_t
+nxt_python3_init_config(nxt_int_t pep405)
+{
+ if (pep405) {
+ Py_SetProgramName(nxt_py_home);
+
+ } else {
+ Py_SetPythonHome(nxt_py_home);
+ }
+
+ return NXT_OK;
+}
+
+#endif
+
+
static nxt_int_t
nxt_python_start(nxt_task_t *task, nxt_process_data_t *data)
{
@@ -127,11 +188,15 @@ nxt_python_start(nxt_task_t *task, nxt_p
if (pep405) {
mbstowcs(nxt_py_home, c->home, len);
mbstowcs(nxt_py_home + len, bin_python, sizeof(bin_python));
- Py_SetProgramName(nxt_py_home);
} else {
mbstowcs(nxt_py_home, c->home, len + 1);
- Py_SetPythonHome(nxt_py_home);
+ }
+
+ ret = nxt_python3_init_config(pep405);
+ if (nxt_slow_path(ret == NXT_ERROR)) {
+ nxt_alert(task, "Failed to initialise config");
+ return NXT_ERROR;
}
#else