[arch-commits] Commit in python2/repos (10 files)

Stéphane Gaudreault stephane at archlinux.org
Tue Jan 31 13:39:06 UTC 2012


    Date: Tuesday, January 31, 2012 @ 08:39:06
  Author: stephane
Revision: 148409

archrelease: copy trunk to testing-i686, testing-x86_64

Added:
  python2/repos/testing-i686/
  python2/repos/testing-i686/13156-revert-tls-changeset-subinterpreter.patch
    (from rev 148408, python2/trunk/13156-revert-tls-changeset-subinterpreter.patch)
  python2/repos/testing-i686/PKGBUILD
    (from rev 148408, python2/trunk/PKGBUILD)
  python2/repos/testing-i686/gdbm-magic-values.patch
    (from rev 148408, python2/trunk/gdbm-magic-values.patch)
  python2/repos/testing-i686/linux2.patch
    (from rev 148408, python2/trunk/linux2.patch)
  python2/repos/testing-x86_64/
  python2/repos/testing-x86_64/13156-revert-tls-changeset-subinterpreter.patch
    (from rev 148408, python2/trunk/13156-revert-tls-changeset-subinterpreter.patch)
  python2/repos/testing-x86_64/PKGBUILD
    (from rev 148408, python2/trunk/PKGBUILD)
  python2/repos/testing-x86_64/gdbm-magic-values.patch
    (from rev 148408, python2/trunk/gdbm-magic-values.patch)
  python2/repos/testing-x86_64/linux2.patch
    (from rev 148408, python2/trunk/linux2.patch)

----------------------------------------------------------------+
 testing-i686/13156-revert-tls-changeset-subinterpreter.patch   |   61 ++++++
 testing-i686/PKGBUILD                                          |  101 ++++++++++
 testing-i686/gdbm-magic-values.patch                           |   12 +
 testing-i686/linux2.patch                                      |   23 ++
 testing-x86_64/13156-revert-tls-changeset-subinterpreter.patch |   61 ++++++
 testing-x86_64/PKGBUILD                                        |  101 ++++++++++
 testing-x86_64/gdbm-magic-values.patch                         |   12 +
 testing-x86_64/linux2.patch                                    |   23 ++
 8 files changed, 394 insertions(+)

Copied: python2/repos/testing-i686/13156-revert-tls-changeset-subinterpreter.patch (from rev 148408, python2/trunk/13156-revert-tls-changeset-subinterpreter.patch)
===================================================================
--- testing-i686/13156-revert-tls-changeset-subinterpreter.patch	                        (rev 0)
+++ testing-i686/13156-revert-tls-changeset-subinterpreter.patch	2012-01-31 13:39:06 UTC (rev 148409)
@@ -0,0 +1,61 @@
+
+# HG changeset patch
+# User Charles-François Natali <neologix at 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
+

Copied: python2/repos/testing-i686/PKGBUILD (from rev 148408, python2/trunk/PKGBUILD)
===================================================================
--- testing-i686/PKGBUILD	                        (rev 0)
+++ testing-i686/PKGBUILD	2012-01-31 13:39:06 UTC (rev 148409)
@@ -0,0 +1,101 @@
+# $Id$
+# Maintainer: Stéphane Gaudreault <stephane at archlinux.org>
+# Contributer: Allan McRae <allan at archlinux.org>
+# Contributer: Jason Chu <jason at archlinux.org>
+
+pkgname=python2
+pkgver=2.7.2
+pkgrel=5
+_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')
+makedepends=('tk')
+optdepends=('tk: for IDLE')
+conflicts=('python<3')
+options=('!makeflags')
+source=(http://www.python.org/ftp/python/${pkgver%rc?}/Python-${pkgver}.tar.xz
+        linux2.patch
+        gdbm-magic-values.patch
+        13156-revert-tls-changeset-subinterpreter.patch)
+sha1sums=('56700044141402dc35e7a0a24aa7ffda1a8c1a53'
+          '937c06190899a491d662c7918658313e7640070e'
+          'ede2c991b1a91eec5a01cc2d3a11231f17d750ae'
+          'd61fa2b8efd1d08a2ee8a9aed434dc94b8297d6b')
+
+build() {
+  cd "${srcdir}/Python-${pkgver}"
+
+  # Temporary workaround for FS#22322
+  # 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)
+  sed -i "/SQLITE_OMIT_LOAD_EXTENSION/d" setup.py
+
+  # FS#23997
+  sed -i -e "s|^#.* /usr/local/bin/python|#!/usr/bin/python2|" Lib/cgi.py
+
+  # Make sure sys.platform is set to linux2, even on kernel 3.X
+  # cf http://bugs.python.org/issue12326
+  patch -Np1 -i ../linux2.patch
+
+  # gdbm has new magic that whichdb does not recognize
+  # 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
+  rm -r Modules/zlib
+  rm -r Modules/_ctypes/{darwin,libffi}*
+
+  export OPT="${CFLAGS}"
+  ./configure --prefix=/usr --enable-shared --with-threads --enable-ipv6 \
+              --enable-unicode=ucs4 --with-system-expat --with-system-ffi \
+              --with-dbmliborder=gdbm:ndbm
+
+  make MACHDEP=linux2
+}
+
+package() {
+  cd "${srcdir}/Python-${pkgver}"
+  make DESTDIR="${pkgdir}" altinstall maninstall
+
+  ln -sf python${_pybasever}        "${pkgdir}/usr/bin/python2"
+  ln -sf python${_pybasever}-config "${pkgdir}/usr/bin/python2-config"
+  ln -sf python${_pybasever}.1      "${pkgdir}/usr/share/man/man1/python2.1"
+
+  ln -sf ../../libpython${_pybasever}.so \
+    "${pkgdir}/usr/lib/python${_pybasever}/config/libpython${_pybasever}.so"
+
+  mv "${pkgdir}/usr/bin/smtpd.py" "${pkgdir}/usr/lib/python${_pybasever}/"
+
+  # some useful "stuff"
+  install -dm755 "${pkgdir}"/usr/lib/python${_pybasever}/Tools/{i18n,scripts}
+  install -m755 Tools/i18n/{msgfmt,pygettext}.py \
+    "${pkgdir}/usr/lib/python${_pybasever}/Tools/i18n/"
+  install -m755 Tools/scripts/{README,*py} \
+    "${pkgdir}/usr/lib/python${_pybasever}/Tools/scripts/"
+
+  # fix conflicts with python
+  mv "${pkgdir}"/usr/bin/idle{,2}
+  mv "${pkgdir}"/usr/bin/pydoc{,2}
+  mv "${pkgdir}"/usr/bin/2to3{,-2.7}
+
+  # clean up #!s
+  find "${pkgdir}/usr/lib/python${_pybasever}/" -name '*.py' | \
+    xargs sed -i "s|#[ ]*![ ]*/usr/bin/env python$|#!/usr/bin/env python2|"
+
+  # clean-up reference to build directory
+  sed -i "s#${srcdir}/Python-${pkgver}:##" \
+    "${pkgdir}/usr/lib/python${_pybasever}/config/Makefile"
+
+  # license
+  install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}

Copied: python2/repos/testing-i686/gdbm-magic-values.patch (from rev 148408, python2/trunk/gdbm-magic-values.patch)
===================================================================
--- testing-i686/gdbm-magic-values.patch	                        (rev 0)
+++ testing-i686/gdbm-magic-values.patch	2012-01-31 13:39:06 UTC (rev 148409)
@@ -0,0 +1,12 @@
+diff -up Python-2.7.2/Lib/whichdb.py.gdbm-1.9-magic Python-2.7.2/Lib/whichdb.py
+--- Python-2.7.2/Lib/whichdb.py.gdbm-1.9-magic	2011-06-11 11:46:26.000000000 -0400
++++ Python-2.7.2/Lib/whichdb.py	2011-09-30 15:45:21.778872290 -0400
+@@ -91,7 +91,7 @@ def whichdb(filename):
+         return ""
+ 
+     # Check for GNU dbm
+-    if magic == 0x13579ace:
++    if magic in (0x13579ace, 0x13579acd, 0x13579acf):
+         return "gdbm"
+ 
+     # Check for old Berkeley db hash file format v2

Copied: python2/repos/testing-i686/linux2.patch (from rev 148408, python2/trunk/linux2.patch)
===================================================================
--- testing-i686/linux2.patch	                        (rev 0)
+++ testing-i686/linux2.patch	2012-01-31 13:39:06 UTC (rev 148409)
@@ -0,0 +1,23 @@
+http://hg.python.org/cpython/rev/c816479f6aaf/
+diff --git a/configure b/configure
+--- a/configure
++++ b/configure
+@@ -2995,6 +2995,7 @@ then
+	MACHDEP="$ac_md_system$ac_md_release"
+
+	case $MACHDEP in
++	linux*) MACHDEP="linux2";;
+	cygwin*) MACHDEP="cygwin";;
+	darwin*) MACHDEP="darwin";;
+	atheos*) MACHDEP="atheos";;
+diff --git a/configure.in b/configure.in
+--- a/configure.in
++++ b/configure.in
+@@ -293,6 +293,7 @@ then
+	MACHDEP="$ac_md_system$ac_md_release"
+
+	case $MACHDEP in
++	linux*) MACHDEP="linux2";;
+	cygwin*) MACHDEP="cygwin";;
+	darwin*) MACHDEP="darwin";;
+	atheos*) MACHDEP="atheos";;

Copied: python2/repos/testing-x86_64/13156-revert-tls-changeset-subinterpreter.patch (from rev 148408, python2/trunk/13156-revert-tls-changeset-subinterpreter.patch)
===================================================================
--- testing-x86_64/13156-revert-tls-changeset-subinterpreter.patch	                        (rev 0)
+++ testing-x86_64/13156-revert-tls-changeset-subinterpreter.patch	2012-01-31 13:39:06 UTC (rev 148409)
@@ -0,0 +1,61 @@
+
+# HG changeset patch
+# User Charles-François Natali <neologix at 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
+

Copied: python2/repos/testing-x86_64/PKGBUILD (from rev 148408, python2/trunk/PKGBUILD)
===================================================================
--- testing-x86_64/PKGBUILD	                        (rev 0)
+++ testing-x86_64/PKGBUILD	2012-01-31 13:39:06 UTC (rev 148409)
@@ -0,0 +1,101 @@
+# $Id$
+# Maintainer: Stéphane Gaudreault <stephane at archlinux.org>
+# Contributer: Allan McRae <allan at archlinux.org>
+# Contributer: Jason Chu <jason at archlinux.org>
+
+pkgname=python2
+pkgver=2.7.2
+pkgrel=5
+_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')
+makedepends=('tk')
+optdepends=('tk: for IDLE')
+conflicts=('python<3')
+options=('!makeflags')
+source=(http://www.python.org/ftp/python/${pkgver%rc?}/Python-${pkgver}.tar.xz
+        linux2.patch
+        gdbm-magic-values.patch
+        13156-revert-tls-changeset-subinterpreter.patch)
+sha1sums=('56700044141402dc35e7a0a24aa7ffda1a8c1a53'
+          '937c06190899a491d662c7918658313e7640070e'
+          'ede2c991b1a91eec5a01cc2d3a11231f17d750ae'
+          'd61fa2b8efd1d08a2ee8a9aed434dc94b8297d6b')
+
+build() {
+  cd "${srcdir}/Python-${pkgver}"
+
+  # Temporary workaround for FS#22322
+  # 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)
+  sed -i "/SQLITE_OMIT_LOAD_EXTENSION/d" setup.py
+
+  # FS#23997
+  sed -i -e "s|^#.* /usr/local/bin/python|#!/usr/bin/python2|" Lib/cgi.py
+
+  # Make sure sys.platform is set to linux2, even on kernel 3.X
+  # cf http://bugs.python.org/issue12326
+  patch -Np1 -i ../linux2.patch
+
+  # gdbm has new magic that whichdb does not recognize
+  # 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
+  rm -r Modules/zlib
+  rm -r Modules/_ctypes/{darwin,libffi}*
+
+  export OPT="${CFLAGS}"
+  ./configure --prefix=/usr --enable-shared --with-threads --enable-ipv6 \
+              --enable-unicode=ucs4 --with-system-expat --with-system-ffi \
+              --with-dbmliborder=gdbm:ndbm
+
+  make MACHDEP=linux2
+}
+
+package() {
+  cd "${srcdir}/Python-${pkgver}"
+  make DESTDIR="${pkgdir}" altinstall maninstall
+
+  ln -sf python${_pybasever}        "${pkgdir}/usr/bin/python2"
+  ln -sf python${_pybasever}-config "${pkgdir}/usr/bin/python2-config"
+  ln -sf python${_pybasever}.1      "${pkgdir}/usr/share/man/man1/python2.1"
+
+  ln -sf ../../libpython${_pybasever}.so \
+    "${pkgdir}/usr/lib/python${_pybasever}/config/libpython${_pybasever}.so"
+
+  mv "${pkgdir}/usr/bin/smtpd.py" "${pkgdir}/usr/lib/python${_pybasever}/"
+
+  # some useful "stuff"
+  install -dm755 "${pkgdir}"/usr/lib/python${_pybasever}/Tools/{i18n,scripts}
+  install -m755 Tools/i18n/{msgfmt,pygettext}.py \
+    "${pkgdir}/usr/lib/python${_pybasever}/Tools/i18n/"
+  install -m755 Tools/scripts/{README,*py} \
+    "${pkgdir}/usr/lib/python${_pybasever}/Tools/scripts/"
+
+  # fix conflicts with python
+  mv "${pkgdir}"/usr/bin/idle{,2}
+  mv "${pkgdir}"/usr/bin/pydoc{,2}
+  mv "${pkgdir}"/usr/bin/2to3{,-2.7}
+
+  # clean up #!s
+  find "${pkgdir}/usr/lib/python${_pybasever}/" -name '*.py' | \
+    xargs sed -i "s|#[ ]*![ ]*/usr/bin/env python$|#!/usr/bin/env python2|"
+
+  # clean-up reference to build directory
+  sed -i "s#${srcdir}/Python-${pkgver}:##" \
+    "${pkgdir}/usr/lib/python${_pybasever}/config/Makefile"
+
+  # license
+  install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}

Copied: python2/repos/testing-x86_64/gdbm-magic-values.patch (from rev 148408, python2/trunk/gdbm-magic-values.patch)
===================================================================
--- testing-x86_64/gdbm-magic-values.patch	                        (rev 0)
+++ testing-x86_64/gdbm-magic-values.patch	2012-01-31 13:39:06 UTC (rev 148409)
@@ -0,0 +1,12 @@
+diff -up Python-2.7.2/Lib/whichdb.py.gdbm-1.9-magic Python-2.7.2/Lib/whichdb.py
+--- Python-2.7.2/Lib/whichdb.py.gdbm-1.9-magic	2011-06-11 11:46:26.000000000 -0400
++++ Python-2.7.2/Lib/whichdb.py	2011-09-30 15:45:21.778872290 -0400
+@@ -91,7 +91,7 @@ def whichdb(filename):
+         return ""
+ 
+     # Check for GNU dbm
+-    if magic == 0x13579ace:
++    if magic in (0x13579ace, 0x13579acd, 0x13579acf):
+         return "gdbm"
+ 
+     # Check for old Berkeley db hash file format v2

Copied: python2/repos/testing-x86_64/linux2.patch (from rev 148408, python2/trunk/linux2.patch)
===================================================================
--- testing-x86_64/linux2.patch	                        (rev 0)
+++ testing-x86_64/linux2.patch	2012-01-31 13:39:06 UTC (rev 148409)
@@ -0,0 +1,23 @@
+http://hg.python.org/cpython/rev/c816479f6aaf/
+diff --git a/configure b/configure
+--- a/configure
++++ b/configure
+@@ -2995,6 +2995,7 @@ then
+	MACHDEP="$ac_md_system$ac_md_release"
+
+	case $MACHDEP in
++	linux*) MACHDEP="linux2";;
+	cygwin*) MACHDEP="cygwin";;
+	darwin*) MACHDEP="darwin";;
+	atheos*) MACHDEP="atheos";;
+diff --git a/configure.in b/configure.in
+--- a/configure.in
++++ b/configure.in
+@@ -293,6 +293,7 @@ then
+	MACHDEP="$ac_md_system$ac_md_release"
+
+	case $MACHDEP in
++	linux*) MACHDEP="linux2";;
+	cygwin*) MACHDEP="cygwin";;
+	darwin*) MACHDEP="darwin";;
+	atheos*) MACHDEP="atheos";;




More information about the arch-commits mailing list