diff options
Diffstat (limited to 'libre/python2-libre')
-rw-r--r-- | libre/python2-libre/13156-revert-tls-changeset-subinterpreter.patch | 61 | ||||
-rw-r--r-- | libre/python2-libre/PKGBUILD | 19 | ||||
-rw-r--r-- | libre/python2-libre/gdbm-magic-values.patch | 2 | ||||
-rw-r--r-- | libre/python2-libre/linux2.patch | 1 |
4 files changed, 73 insertions, 10 deletions
diff --git a/libre/python2-libre/13156-revert-tls-changeset-subinterpreter.patch b/libre/python2-libre/13156-revert-tls-changeset-subinterpreter.patch new file mode 100644 index 000000000..ed8154df5 --- /dev/null +++ b/libre/python2-libre/13156-revert-tls-changeset-subinterpreter.patch @@ -0,0 +1,61 @@ + +# HG changeset patch +# User Charles-François Natali <neologix@free.fr> +# Date 1318446474 -7200 +# Node ID ee4fe16d9b4822457ad855ea6c44e65030166304 +# Parent f6feed6ec3f9b024cecd0fd587595c403f55624f +Issue #13156: revert changeset f6feed6ec3f9, which was only relevant for native +TLS implementations, and fails with the ad-hoc TLS implementation when a thread +doesn't have an auto thread state (e.g. a thread created outside of Python +calling into a subinterpreter). + +diff --git a/Include/pystate.h b/Include/pystate.h +--- a/Include/pystate.h ++++ b/Include/pystate.h +@@ -111,7 +111,6 @@ PyAPI_FUNC(void) PyThreadState_Clear(PyT + PyAPI_FUNC(void) PyThreadState_Delete(PyThreadState *); + #ifdef WITH_THREAD + PyAPI_FUNC(void) PyThreadState_DeleteCurrent(void); +-PyAPI_FUNC(void) _PyGILState_Reinit(void); + #endif + + PyAPI_FUNC(PyThreadState *) PyThreadState_Get(void); +diff --git a/Modules/signalmodule.c b/Modules/signalmodule.c +--- a/Modules/signalmodule.c ++++ b/Modules/signalmodule.c +@@ -976,7 +976,6 @@ void + PyOS_AfterFork(void) + { + #ifdef WITH_THREAD +- _PyGILState_Reinit(); + PyEval_ReInitThreads(); + main_thread = PyThread_get_thread_ident(); + main_pid = getpid(); +diff --git a/Python/pystate.c b/Python/pystate.c +--- a/Python/pystate.c ++++ b/Python/pystate.c +@@ -537,23 +537,6 @@ void + autoInterpreterState = NULL; + } + +-/* Reset the TLS key - called by PyOS_AfterFork. +- * This should not be necessary, but some - buggy - pthread implementations +- * don't flush TLS on fork, see issue #10517. +- */ +-void +-_PyGILState_Reinit(void) +-{ +- PyThreadState *tstate = PyGILState_GetThisThreadState(); +- PyThread_delete_key(autoTLSkey); +- if ((autoTLSkey = PyThread_create_key()) == -1) +- Py_FatalError("Could not allocate TLS entry"); +- +- /* re-associate the current thread state with the new key */ +- if (PyThread_set_key_value(autoTLSkey, (void *)tstate) < 0) +- Py_FatalError("Couldn't create autoTLSkey mapping"); +-} +- + /* When a thread state is created for a thread by some mechanism other than + PyGILState_Ensure, it's important that the GILState machinery knows about + it so it doesn't try to create another thread state for the thread (this is + diff --git a/libre/python2-libre/PKGBUILD b/libre/python2-libre/PKGBUILD index c4f09188d..e743151b0 100644 --- a/libre/python2-libre/PKGBUILD +++ b/libre/python2-libre/PKGBUILD @@ -6,22 +6,23 @@ _pkgname=python2 pkgname=python2-libre pkgver=2.7.2 -pkgrel=4 +pkgrel=6 _pybasever=2.7 pkgdesc="A high-level scripting language" arch=('i686' 'x86_64') license=('PSF') url="http://www.python.org/" -depends=('bzip2' 'gdbm' 'openssl' 'zlib' 'expat' 'sqlite3' 'libffi') +depends=('bzip2' 'gdbm' 'openssl' 'zlib' 'expat' 'sqlite' 'libffi') makedepends=('tk') optdepends=('tk: for IDLE') conflicts=('python<3') options=('!makeflags') -source=(http://repo.parabolagnulinux.org/other/${pkgname}-${pkgver}-${pkgrel}-any.src.tar.xz +source=(http://repo.parabolagnulinux.org/other/${pkgname}-${pkgver}-4-any.src.tar.xz doc_license_change.patch WDAS.patch linux2.patch - gdbm-magic-values.patch) + gdbm-magic-values.patch + 13156-revert-tls-changeset-subinterpreter.patch) provides=("$_pkgname=$pkgver") conflicts=("$_pkgname") replaces=("$_pkgname") @@ -33,7 +34,7 @@ build() { # See http://bugs.python.org/issue10835 for upstream report sed -i "/progname =/s/python/python${_pybasever}/" Python/pythonrun.c - # Enable built-in SQLite3 module to load extensions (fix FS#22122) + # Enable built-in SQLite module to load extensions (fix FS#22122) sed -i "/SQLITE_OMIT_LOAD_EXTENSION/d" setup.py # FS#23997 @@ -47,6 +48,9 @@ build() { # http://bugs.python.org/issue13007 patch -Np1 -i ../gdbm-magic-values.patch + # http://bugs.python.org/issue13156 + patch -Np1 -i ../13156-revert-tls-changeset-subinterpreter.patch + # Ensure that we are using the system copy of various libraries (expat, zlib and libffi), # rather than copies shipped in the tarball rm -r Modules/expat @@ -100,5 +104,6 @@ package() { md5sums=('456d053a5d418adc913a4971e95fe918' '1e6595f85a1da7f42b69456119924d50' '3f8c0e310a0be0bd8b319d6c46bbd427' - '74c04694573e0d331e2a99d7b9179460' - '2874e9d93f4f46c1460605a5c7751372') + '6099a7c1aed80cf04943ee4affa84b5c' + '6de394351179c2ada82e95458ceb13e5' + 'daa5110f092f1406c17de23171529e62') diff --git a/libre/python2-libre/gdbm-magic-values.patch b/libre/python2-libre/gdbm-magic-values.patch index 5613ae35c..471faf2c7 100644 --- a/libre/python2-libre/gdbm-magic-values.patch +++ b/libre/python2-libre/gdbm-magic-values.patch @@ -10,5 +10,3 @@ diff -up Python-2.7.2/Lib/whichdb.py.gdbm-1.9-magic Python-2.7.2/Lib/whichdb.py return "gdbm" # Check for old Berkeley db hash file format v2 -diff -up Python-2.7.2/Misc/NEWS.gdbm-1.9-magic Python-2.7.2/Misc/NEWS - diff --git a/libre/python2-libre/linux2.patch b/libre/python2-libre/linux2.patch index 74ae2aa12..670510fde 100644 --- a/libre/python2-libre/linux2.patch +++ b/libre/python2-libre/linux2.patch @@ -21,4 +21,3 @@ diff --git a/configure.in b/configure.in cygwin*) MACHDEP="cygwin";; darwin*) MACHDEP="darwin";; atheos*) MACHDEP="atheos";; - |