From 7263950d393896ae3ab2ee2b9df30ffdd687e860 Mon Sep 17 00:00:00 2001 From: Bartek Szady Date: Fri, 11 Nov 2016 21:41:42 +0100 Subject: [PATCH] - apache was dying during reload without import.patch --- apache-mod_python.spec | 4 +++- import.patch | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 import.patch diff --git a/apache-mod_python.spec b/apache-mod_python.spec index 4aa391d..d5ee607 100644 --- a/apache-mod_python.spec +++ b/apache-mod_python.spec @@ -20,7 +20,7 @@ Summary(pl.UTF-8): Wbudowany interpreter języka Python dla serwera WWW Apache Summary(sv.UTF-8): En inbyggd Python-interpretator för webbservern Apache Name: apache-mod_%{mod_name} Version: 3.5.0 -Release: 19 +Release: 20 License: Apache Group: Networking/Daemons/HTTP Source0: http://dist.modpython.org/dist/mod_%{mod_name}-%{version}.tgz @@ -31,6 +31,7 @@ Patch0: %{name}-httpd-not-needed.patch Patch1: no-git.patch Patch2: set-request-response-status.patch Patch3: install.patch +Patch4: import.patch URL: http://www.modpython.org/ BuildRequires: apache-devel >= 2.0.52-7 BuildRequires: apr-devel >= 1:1.0.0 @@ -239,6 +240,7 @@ prestandan jämfört med den traditionella CGI-metoden. %patch1 -p1 %patch2 -p1 %patch3 -p1 +%patch4 -p1 %build %{__aclocal} diff --git a/import.patch b/import.patch new file mode 100644 index 0000000..defaa88 --- /dev/null +++ b/import.patch @@ -0,0 +1,36 @@ +commit 5bb5d6d0113f6bbd72966a5c1f3e6d40c2e9c8fd +Author: Grisha Trubetskoy +Date: Tue Dec 1 22:07:50 2015 -0500 + + Do not import site.py for the main interpreter. Fixes #46. + +diff --git a/src/mod_python.c b/src/mod_python.c +index 8c33c04..7e0ef1e 100644 +--- a/src/mod_python.c ++++ b/src/mod_python.c +@@ -775,8 +775,15 @@ static int python_init(apr_pool_t *p, apr_pool_t *ptemp, + /* disable user site directories */ + Py_NoUserSiteDirectory = 1; + +- /* initialze the interpreter */ ++ /* Initialze the main interpreter. We do not want site.py to ++ * be imported because as of Python 2.7.9 it would cause a ++ * circular dependency related to _locale which breaks ++ * graceful restart so we set Py_NoSiteFlag to 1 just for this ++ * one time. (https://github.com/grisha/mod_python/issues/46) ++ */ ++ Py_NoSiteFlag = 1; + Py_Initialize(); ++ Py_NoSiteFlag = 0; + + #ifdef WITH_THREAD + /* create and acquire the interpreter lock */ +@@ -2649,7 +2656,7 @@ static void PythonChildInitHandler(apr_pool_t *p, server_rec *s) + * problems as well. Thus disable cleanup of Python when + * child processes are being shutdown. (MODPYTHON-109) + * +- apr_pool_cleanup_register(p, NULL, python_finalize, apr_pool_cleanup_null); ++ * apr_pool_cleanup_register(p, NULL, python_finalize, apr_pool_cleanup_null); + */ + + /* -- 2.43.0