mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2024-11-08 22:45:43 +00:00
extra/python to 3.5.0-2
This commit is contained in:
parent
99702a810b
commit
eee3d5a58b
4 changed files with 139 additions and 12 deletions
|
@ -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"
|
||||
|
||||
|
|
13
extra/python/dont-make-libpython-readonly.patch
Normal file
13
extra/python/dont-make-libpython-readonly.patch
Normal 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@
|
||||
|
78
extra/python/issue25150.patch
Normal file
78
extra/python/issue25150.patch
Normal 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
|
||||
-------
|
||||
|
||||
|
11
extra/python/test_gdb-version-fix.patch
Normal file
11
extra/python/test_gdb-version-fix.patch
Normal 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:
|
Loading…
Reference in a new issue