summaryrefslogtreecommitdiffhomepage
path: root/src/nxt_job.h
diff options
context:
space:
mode:
authorAndrew Clayton <a.clayton@nginx.com>2022-11-17 21:56:58 +0000
committerAndrew Clayton <a.clayton@nginx.com>2022-12-06 02:51:03 +0000
commit491d0f700f5690eba0f1fcf2124f3a37ef73eb1a (patch)
tree2b841e1443e2cd14080f2d8378a438d8ab084681 /src/nxt_job.h
parentdfededabdc47caa548c7d7bd62133e0d4df2f0fa (diff)
downloadunit-491d0f700f5690eba0f1fcf2124f3a37ef73eb1a.tar.gz
unit-491d0f700f5690eba0f1fcf2124f3a37ef73eb1a.tar.bz2
Python: Added support for Python 3.11.
Python 3.8 added a new Python initialisation configuration API[0]. Python 3.11 marked the old API as deprecated resulting in the following compiler warnings which we treat as errors, failing the build src/python/nxt_python.c: In function ‘nxt_python_start’: src/python/nxt_python.c:130:13: error: ‘Py_SetProgramName’ is deprecated [-Werror=deprecated-declarations] 130 | Py_SetProgramName(nxt_py_home); | ^~~~~~~~~~~~~~~~~ In file included from /opt/python-3.11/include/python3.11/Python.h:94, from src/python/nxt_python.c:7: /opt/python-3.11/include/python3.11/pylifecycle.h:37:38: note: declared here 37 | Py_DEPRECATED(3.11) PyAPI_FUNC(void) Py_SetProgramName(const wchar_t *); | ^~~~~~~~~~~~~~~~~ src/python/nxt_python.c:134:13: error: ‘Py_SetPythonHome’ is deprecated [-Werror=deprecated-declarations] 134 | Py_SetPythonHome(nxt_py_home); | ^~~~~~~~~~~~~~~~ /opt/python-3.11/include/python3.11/pylifecycle.h:40:38: note: declared here 40 | Py_DEPRECATED(3.11) PyAPI_FUNC(void) Py_SetPythonHome(const wchar_t *); | ^~~~~~~~~~~~~~~~ cc1: all warnings being treated as errors We actually have a few config scenarios: Python < 3, Python >= 3.0 < 3.8 and for Python 3 we have two configs where we select one based on virtual environment setup. Factor out the Python 3 config initialisation into its own function. We actually create two functions, one for Python 3.8+ and one for older Python 3. We pick the right function to use at build time. The new API also has error checking (where the old API doesn't) which we handle. [0]: https://peps.python.org/pep-0587/ Closes: <https://github.com/nginx/unit/issues/710> [ Andrew: Expanded upon patch from @sandeep-gh ] Signed-off-by: Andrew Clayton <a.clayton@nginx.com>
Diffstat (limited to 'src/nxt_job.h')
0 files changed, 0 insertions, 0 deletions