extra/python to 3.5.0-2

This commit is contained in:
Kevin Mihelich 2015-10-01 23:39:24 +00:00
parent 99702a810b
commit eee3d5a58b
4 changed files with 139 additions and 12 deletions

View file

@ -9,16 +9,16 @@
# - removed valgrind from makedepends
pkgname=python
pkgver=3.4.3
pkgrel=3
_pybasever=3.4
pkgver=3.5.0
pkgrel=2
_pybasever=3.5
pkgdesc="Next generation of the python high-level scripting language"
arch=('i686' 'x86_64')
license=('custom')
url="http://www.python.org/"
depends=('expat' 'bzip2' 'gdbm' 'openssl' 'libffi' 'zlib')
makedepends=('tk' 'sqlite' 'bluez-libs' 'mpdecimal' 'hardening-wrapper')
checkdepends=('gdb')
makedepends=('tk' 'sqlite' 'bluez-libs' 'mpdecimal')
checkdepends=('gdb' 'xorg-server-xvfb')
optdepends=('python-setuptools'
'python-pip'
'sqlite'
@ -28,12 +28,27 @@ optdepends=('python-setuptools'
options=('!makeflags')
provides=('python3')
replaces=('python3')
source=(http://www.python.org/ftp/python/${pkgver%rc*}/Python-${pkgver}.tar.xz)
sha1sums=('7ca5cd664598bea96eec105aa6453223bb6b4456')
source=("http://www.python.org/ftp/python/${pkgver%rc*}/Python-${pkgver}.tar.xz"
test_gdb-version-fix.patch
dont-make-libpython-readonly.patch
issue25150.patch)
sha1sums=('871a06df9ab70984b7398ac53047fe125c757a70'
'ab86515aff465385675e2e6e593f09596e0a8db0'
'c22b24324b8e53326702de439c401d97927ee3f2'
'bd068695d22931320069200f240c425096bb5011')
prepare() {
cd Python-${pkgver}
# https://bugs.python.org/issue25096
patch -p1 -i ../test_gdb-version-fix.patch
# FS#45809
patch -p1 -i ../dont-make-libpython-readonly.patch
# https://bugs.python.org/issue25150
patch -p1 -i ../issue25150.patch
# FS#23997
sed -i -e "s|^#.* /usr/local/bin/python|#!/usr/bin/python|" Lib/cgi.py
@ -61,21 +76,26 @@ build() {
--enable-loadable-sqlite-extensions \
--without-ensurepip
make
make EXTRA_CFLAGS="$CFLAGS"
}
check() {
# test_site: http://bugs.python.org/issue21535
# Failures:
# test_pathlib & test_posixpath: https://bugs.python.org/issue24950
# Hacks:
# test_tk: xvfb-run
# test_unicode_file: LC_CTYPE=en_US.utf-8
cd Python-${pkgver}
LD_LIBRARY_PATH="${srcdir}/Python-${pkgver}":${LD_LIBRARY_PATH} \
TERM=screen \
"${srcdir}/Python-${pkgver}/python" -m test.regrtest -uall -x test_site test_posixpath test_urllib2_localnet
LC_CTYPE=en_US.utf-8 xvfb-run \
"${srcdir}/Python-${pkgver}/python" -m test.regrtest -uall || warning "Expected failure"
}
package() {
cd Python-${pkgver}
make DESTDIR="${pkgdir}" install maninstall
make DESTDIR="${pkgdir}" EXTRA_CFLAGS="$CFLAGS" install maninstall
# Why are these not done by default...
ln -s python3 "${pkgdir}"/usr/bin/python
@ -88,6 +108,11 @@ package() {
ln -sf ../../libpython${_pybasever}m.so \
"${pkgdir}/usr/lib/python${_pybasever}/config-${_pybasever}m/libpython${_pybasever}m.so"
# some useful "stuff" FS#46146
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/
# Clean-up reference to build directory
sed -i "s|$srcdir/Python-${pkgver}:||" "$pkgdir/usr/lib/python${_pybasever}/config-${_pybasever}m/Makefile"

View file

@ -0,0 +1,13 @@
diff --git a/Makefile.pre.in b/Makefile.pre.in
index ce2c0aa..7d6dcf7 100644
--- a/Makefile.pre.in
+++ b/Makefile.pre.in
@@ -60,7 +60,7 @@ INSTALL_DATA= @INSTALL_DATA@
# Shared libraries must be installed with executable mode on some systems;
# rather than figuring out exactly which, we always give them executable mode.
# Also, making them read-only seems to be a good idea...
-INSTALL_SHARED= ${INSTALL} -m 555
+INSTALL_SHARED= ${INSTALL} -m 755
MKDIR_P= @MKDIR_P@

View file

@ -0,0 +1,78 @@
# HG changeset patch
# User Victor Stinner <victor.stinner@gmail.com>
# Date 1442581594 -7200
# Node ID d4fcb362f7c66b25b22ddc0d27db0cc96acc727b
# Parent d04a0954e142f873adee88ec5bc1c1d81cd46bc4
Issue #25150: Hide the private _Py_atomic_xxx symbols from the public
Python.h header to fix a compilation error with OpenMP. PyThreadState_GET()
becomes an alias to PyThreadState_Get() to avoid ABI incompatibilies.
It is important that the _PyThreadState_Current variable is always accessed
with the same implementation of pyatomic.h. Use the PyThreadState_Get()
function so extension modules will all reuse the same implementation.
diff --git a/Include/pyatomic.h b/Include/pyatomic.h
--- a/Include/pyatomic.h
+++ b/Include/pyatomic.h
@@ -1,8 +1,6 @@
-/* Issue #23644: <stdatomic.h> is incompatible with C++, see:
- https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60932 */
-#if !defined(Py_LIMITED_API) && !defined(__cplusplus)
#ifndef Py_ATOMIC_H
#define Py_ATOMIC_H
+#ifdef Py_BUILD_CORE
#include "dynamic_annotations.h"
@@ -248,5 +246,5 @@ static __inline__ void
#define _Py_atomic_load_relaxed(ATOMIC_VAL) \
_Py_atomic_load_explicit(ATOMIC_VAL, _Py_memory_order_relaxed)
+#endif /* Py_BUILD_CORE */
#endif /* Py_ATOMIC_H */
-#endif /* Py_LIMITED_API */
diff --git a/Include/pystate.h b/Include/pystate.h
--- a/Include/pystate.h
+++ b/Include/pystate.h
@@ -177,20 +177,13 @@ PyAPI_FUNC(int) PyThreadState_SetAsyncEx
/* Variable and macro for in-line access to current thread state */
/* Assuming the current thread holds the GIL, this is the
- PyThreadState for the current thread.
-
- Issue #23644: pyatomic.h is incompatible with C++ (yet). Disable
- PyThreadState_GET() optimization: declare it as an alias to
- PyThreadState_Get(), as done for limited API. */
-#if !defined(Py_LIMITED_API) && !defined(__cplusplus)
+ PyThreadState for the current thread. */
+#ifdef Py_BUILD_CORE
PyAPI_DATA(_Py_atomic_address) _PyThreadState_Current;
-#endif
-
-#if defined(Py_DEBUG) || defined(Py_LIMITED_API) || defined(__cplusplus)
-#define PyThreadState_GET() PyThreadState_Get()
+# define PyThreadState_GET() \
+ ((PyThreadState*)_Py_atomic_load_relaxed(&_PyThreadState_Current))
#else
-#define PyThreadState_GET() \
- ((PyThreadState*)_Py_atomic_load_relaxed(&_PyThreadState_Current))
+# define PyThreadState_GET() PyThreadState_Get()
#endif
typedef
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -11,6 +11,10 @@ Release date: TBA
Core and Builtins
-----------------
+- Issue #25150: Hide the private _Py_atomic_xxx symbols from the public
+ Python.h header to fix a compilation error with OpenMP. PyThreadState_GET()
+ becomes an alias to PyThreadState_Get() to avoid ABI incompatibilies.
+
Library
-------

View file

@ -0,0 +1,11 @@
--- a/Lib/test/test_gdb.py 2015-09-14 11:58:09.218811556 +0800
+++ b/Lib/test/test_gdb.py 2015-09-14 11:58:24.845647558 +0800
@@ -28,7 +28,7 @@
# This is what "no gdb" looks like. There may, however, be other
# errors that manifest this way too.
raise unittest.SkipTest("Couldn't find gdb on the path")
-gdb_version_number = re.search(b"^GNU gdb [^\d]*(\d+)\.(\d)", gdb_version)
+gdb_version_number = re.search(b"^GNU gdb [^\d]*(\d+)\.(\d+)", gdb_version)
gdb_major_version = int(gdb_version_number.group(1))
gdb_minor_version = int(gdb_version_number.group(2))
if gdb_major_version < 7: