summaryrefslogtreecommitdiff
path: root/libre/python2-libre
diff options
context:
space:
mode:
Diffstat (limited to 'libre/python2-libre')
-rw-r--r--libre/python2-libre/13156-revert-tls-changeset-subinterpreter.patch61
-rw-r--r--libre/python2-libre/PKGBUILD19
-rw-r--r--libre/python2-libre/gdbm-magic-values.patch2
-rw-r--r--libre/python2-libre/linux2.patch1
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";;
-