[Python-modules-commits] r22553 - in packages/mod-wsgi/trunk/debian (3 files)

spamaps-guest at users.alioth.debian.org spamaps-guest at users.alioth.debian.org
Thu Aug 23 23:46:55 UTC 2012


    Date: Thursday, August 23, 2012 @ 23:46:54
  Author: spamaps-guest
Revision: 22553

* New upstream release.
* d/p/python-3.2-compat.patch: Dropped, superseded by new release.

Modified:
  packages/mod-wsgi/trunk/debian/changelog
Deleted:
  packages/mod-wsgi/trunk/debian/patches/python-3.2-compat.patch
  packages/mod-wsgi/trunk/debian/patches/series

Modified: packages/mod-wsgi/trunk/debian/changelog
===================================================================
--- packages/mod-wsgi/trunk/debian/changelog	2012-08-23 22:35:43 UTC (rev 22552)
+++ packages/mod-wsgi/trunk/debian/changelog	2012-08-23 23:46:54 UTC (rev 22553)
@@ -1,3 +1,10 @@
+mod-wsgi (3.4-1) experimental; urgency=low
+
+  * New upstream release.
+  * d/p/python-3.2-compat.patch: Dropped, superseded by new release.
+
+ -- Clint Byrum <clint at ubuntu.com>  Thu, 23 Aug 2012 16:34:39 -0700
+
 mod-wsgi (3.3-4) unstable; urgency=low
 
   [ James Page ]

Deleted: packages/mod-wsgi/trunk/debian/patches/python-3.2-compat.patch
===================================================================
--- packages/mod-wsgi/trunk/debian/patches/python-3.2-compat.patch	2012-08-23 22:35:43 UTC (rev 22552)
+++ packages/mod-wsgi/trunk/debian/patches/python-3.2-compat.patch	2012-08-23 23:46:54 UTC (rev 22553)
@@ -1,327 +0,0 @@
-Description: Patch to allow Python 3.2 to be used. 
- May be incompatible with using mod_python at the same time so upstream patch
- modified locally to apply changes only when compiling against python 3.2.
-Origin: http://code.google.com/p/modwsgi/source/detail?r=8633d5afeea845a12c028cfae31dc828c5ce8908
-Author: Graham Dumpleton <Graham.Dumpleton at gmail.com>
-Forwarded: not-needed
-
-Index: fix-759943-2/mod_wsgi.c
-===================================================================
---- fix-759943-2.orig/mod_wsgi.c	2011-04-19 18:13:25.680114438 +0100
-+++ fix-759943-2/mod_wsgi.c	2011-04-19 18:33:24.816199741 +0100
-@@ -386,6 +386,10 @@
- #define WSGI_RELOAD_MODULE 0
- #define WSGI_RELOAD_PROCESS 1
- 
-+/* Python interpreter state. */
-+#if PY_MAJOR_VERSION == 3 && PY_MINOR_VERSION >= 2
-+static PyThreadState *wsgi_main_tstate = NULL;
-+#endif
- /* Base server object. */
- 
- static server_rec *wsgi_server = NULL;
-@@ -3598,7 +3602,11 @@
-      */
- 
-     if (!wsgi_daemon_pool && self->config->pass_apache_request) {
-+#if PY_MAJOR_VERSION == 3 && PY_MINOR_VERSION >= 2
-+        object = PyCapsule_New(self->r, 0, 0);
-+#else
-         object = PyCObject_FromVoidPtr(self->r, 0);
-+#endif
-         PyDict_SetItemString(vars, "apache.request_rec", object);
-         Py_DECREF(object);
-     }
-@@ -5147,6 +5155,24 @@
-     PyObject *exitfunc = NULL;
-     PyObject *module = NULL;
- 
-+#if PY_MAJOR_VERSION == 3 && PY_MINOR_VERSION >= 2
-+    PyThreadState *tstate_enter = NULL;
-+
-+    /*
-+     * We should always enter here with the Python GIL
-+     * held and an active thread state. This should only
-+     * now occur when shutting down interpreter and not
-+     * when releasing interpreter as don't support
-+     * recyling of interpreters within the process. Thus
-+     * the thread state should be that for the main
-+     * Python interpreter. Where dealing with a named
-+     * sub interpreter, we need to change the thread
-+     * state to that which was originally used to create
-+     * that sub interpreter before doing anything.
-+     */
-+
-+    tstate_enter = PyThreadState_Get();
-+#else
-     /*
-      * We should always enter here with the Python GIL held, but
-      * there will be no active thread state. Note that it should
-@@ -5156,6 +5182,7 @@
-      */
- 
-     PyEval_ReleaseLock();
-+#endif
- 
-     if (*self->name) {
- #if APR_HAS_THREADS
-@@ -5194,10 +5221,20 @@
-         tstate = self->tstate;
- #endif
- 
-+#if PY_MAJOR_VERSION == 3 && PY_MINOR_VERSION >= 2
-+        /*
-+	 * Swap to interpreter thread state that was used when
-+	 * the sub interpreter was created.
-+         */
-+
-+        PyThreadState_Swap(tstate);
-+    }
-+#else
-         PyEval_AcquireThread(tstate);
-     }
-     else
-         PyGILState_Ensure();
-+#endif
- 
-     if (self->owner) {
-         Py_BEGIN_ALLOW_THREADS
-@@ -5492,6 +5529,9 @@
- 
-     /* If we own it, we destroy it. */
- 
-+#if PY_MAJOR_VERSION == 3 && PY_MINOR_VERSION >= 2
-+    if (self->owner) {
-+#else
-     if (!self->owner) {
-         if (*self->name) {
-             tstate = PyThreadState_Get();
-@@ -5506,6 +5546,7 @@
-         PyEval_AcquireLock();
-     }
-     else {
-+#endif
-         /*
-          * We need to destroy all the thread state objects
-          * associated with the interpreter. If there are
-@@ -5539,6 +5580,10 @@
-         /* Can now destroy the interpreter. */
- 
-         Py_EndInterpreter(tstate);
-+
-+#if PY_MAJOR_VERSION == 3 && PY_MINOR_VERSION >= 2
-+        PyThreadState_Swap(tstate_enter);
-+#endif
-     }
- 
-     free(self->name);
-@@ -5647,7 +5692,18 @@
-     ap_log_error(APLOG_MARK, WSGI_LOG_INFO(0), wsgi_server,
-                  "mod_wsgi (pid=%d): Terminating Python.", getpid());
- 
-+#if PY_MAJOR_VERSION == 3 && PY_MINOR_VERSION >= 2
-+    /*
-+     * We should be executing in the main thread again at this
-+     * point but without the GIL, so simply restore the original
-+     * thread state for that thread that we remembered when we
-+     * initialised the interpreter.
-+     */
-+
-+    PyEval_AcquireThread(wsgi_main_tstate);
-+#else
-     PyGILState_Ensure();
-+#endif
- 
-     /*
-      * Work around bug in Python 3.X whereby it will crash if
-@@ -5822,15 +5878,28 @@
-         /* Initialise threading. */
- 
-         PyEval_InitThreads();
-+#if PY_MAJOR_VERSION == 3 && PY_MINOR_VERSION >= 2
-+        /*
-+	 * We now want to release the GIL. Before we do that
-+	 * though we remember what the current thread state is.
-+	 * We will use that later to restore the main thread
-+	 * state when we want to cleanup interpreters on
-+	 * shutdown.
-+         */
-+
-+        wsgi_main_tstate = PyThreadState_Get();
-+        PyEval_ReleaseThread(wsgi_main_tstate);
-+#else
-         PyThreadState_Swap(NULL);
-         PyEval_ReleaseLock();
-+#endif
- 
-         wsgi_python_initialized = 1;
- 
--    /*
--     * Register cleanups to be performed on parent restart
--     * or shutdown. This will destroy Python itself.
--     */
-+        /*
-+         * Register cleanups to be performed on parent restart
-+         * or shutdown. This will destroy Python itself.
-+         */
- 
- #if AP_SERVER_MAJORVERSION_NUMBER < 2
-         ap_register_cleanup(p, NULL, wsgi_python_parent_cleanup,
-@@ -5879,7 +5948,11 @@
- 
-     /*
-      * This function should never be called when the
--     * Python GIL is held, so need to acquire it.
-+     * Python GIL is held, so need to acquire it. Even
-+     * though we may need to work with a sub
-+     * interpreter, we need to acquire GIL against main
-+     * interpreter first to work with interpreter
-+     * dictionary.
-      */
- 
-     state = PyGILState_Ensure();
-@@ -5998,6 +6071,10 @@
- {
-     PyThreadState *tstate = NULL;
- 
-+#if PY_MAJOR_VERSION == 3 && PY_MINOR_VERSION >= 2
-+    PyGILState_STATE state;
-+#endif
-+
-     /*
-      * Need to release and destroy the thread state that
-      * was created against the interpreter. This will
-@@ -6023,11 +6100,19 @@
-      * in its destruction if its the last reference.
-      */
- 
-+#if PY_MAJOR_VERSION == 3 && PY_MINOR_VERSION >= 2
-+    state = PyGILState_Ensure();
-+#else
-     PyEval_AcquireLock();
-+#endif
- 
-     Py_DECREF(handle);
- 
-+#if PY_MAJOR_VERSION == 3 && PY_MINOR_VERSION >= 2
-+    PyGILState_Release(state);
-+#else
-     PyEval_ReleaseLock();
-+#endif
- }
- 
- /*
-@@ -6630,8 +6715,18 @@
-     apr_thread_mutex_lock(wsgi_interp_lock);
- #endif
- 
--    PyEval_AcquireLock();
-+#if PY_MAJOR_VERSION == 3 && PY_MINOR_VERSION >= 2
-+    /*
-+     * We should be executing in the main thread again at this
-+     * point but without the GIL, so simply restore the original
-+     * thread state for that thread that we remembered when we
-+     * initialised the interpreter.
-+     */
- 
-+    PyEval_AcquireThread(wsgi_main_tstate);
-+#else
-+    PyEval_AcquireLock();
-+#endif
-     /*
-      * Extract a handle to the main Python interpreter from
-      * interpreters dictionary as want to process that one last.
-@@ -6668,7 +6763,17 @@
- 
-     Py_DECREF(interp);
- 
-+#if PY_MAJOR_VERSION == 3 && PY_MINOR_VERSION >= 2
-+    /*
-+     * The code which performs actual shutdown of the main
-+     * interpreter expects to be called without the GIL, so
-+     * we release it here again.
-+     */
-+
-+    PyEval_ReleaseThread(wsgi_main_tstate);
-+#else
-     PyEval_ReleaseLock();
-+#endif
- 
-     /*
-      * Destroy Python itself including the main interpreter.
-@@ -8369,7 +8474,11 @@
-      */
- 
-     if (!wsgi_daemon_pool && self->config->pass_apache_request) {
-+#if PY_MAJOR_VERSION == 3 && PY_MINOR_VERSION >= 2
-+        object = PyCapsule_New(self->r, 0, 0);
-+#else
-         object = PyCObject_FromVoidPtr(self->r, 0);
-+#endif
-         PyDict_SetItemString(vars, "apache.request_rec", object);
-         Py_DECREF(object);
-     }
-@@ -10509,6 +10618,10 @@
- {
-     WSGIDaemonProcess *daemon = data;
- 
-+#if PY_MAJOR_VERSION == 3 && PY_MINOR_VERSION >= 2
-+    PyGILState_STATE gilstate;
-+#endif
-+
-     if (wsgi_server_config->verbose_debugging) {
-         ap_log_error(APLOG_MARK, WSGI_LOG_DEBUG(0), wsgi_server,
-                      "mod_wsgi (pid=%d): Enable deadlock thread in "
-@@ -10523,8 +10636,13 @@
-     while (1) {
-         apr_sleep(apr_time_from_sec(1));
- 
-+#if PY_MAJOR_VERSION == 3 && PY_MINOR_VERSION >= 2
-+        gilstate = PyGILState_Ensure();
-+        PyGILState_Release(gilstate);
-+#else
-         PyEval_AcquireLock();
-         PyEval_ReleaseLock();
-+#endif
- 
-         apr_thread_mutex_lock(wsgi_shutdown_lock);
-         wsgi_deadlock_shutdown_time = apr_time_now();
-@@ -11101,6 +11219,7 @@
-         if (wsgi_python_after_fork)
-             wsgi_python_init(p);
- 
-+#if PY_MAJOR_VERSION < 3
-         /*
-          * If mod_python is also being loaded and thus it was
-          * responsible for initialising Python it can leave in
-@@ -11110,7 +11229,9 @@
-          * initialisation but in daemon process we skip the
-          * mod_python child initialisation so the active thread
-          * state still exists. Thus need to do a bit of a fiddle
--         * to ensure there is no active thread state.
-+         * to ensure there is no active thread state. Don't need
-+         * to worry about this with Python 3.X as mod_python
-+         * only supports Python 2.X.
-          */
- 
-         if (!wsgi_python_initialized) {
-@@ -11126,6 +11247,7 @@
- 
-             PyEval_ReleaseLock();
-         }
-+#endif
- 
-         /*
-          * If the daemon is associated with a virtual host then
-@@ -13372,7 +13494,11 @@
-      */
- 
-     if (!wsgi_daemon_pool && self->config->pass_apache_request) {
-+#if PY_MAJOR_VERSION == 3 && PY_MINOR_VERSION >= 2
-+        object = PyCapsule_New(self->r, 0, 0);
-+#else
-         object = PyCObject_FromVoidPtr(self->r, 0);
-+#endif
-         PyDict_SetItemString(vars, "apache.request_rec", object);
-         Py_DECREF(object);
-     }

Deleted: packages/mod-wsgi/trunk/debian/patches/series
===================================================================
--- packages/mod-wsgi/trunk/debian/patches/series	2012-08-23 22:35:43 UTC (rev 22552)
+++ packages/mod-wsgi/trunk/debian/patches/series	2012-08-23 23:46:54 UTC (rev 22553)
@@ -1 +0,0 @@
-python-3.2-compat.patch




More information about the Python-modules-commits mailing list