summaryrefslogtreecommitdiffstats
path: root/abs/core/python2
diff options
context:
space:
mode:
authorBritney Fransen <brfransen@gmail.com>2018-02-13 19:40:33 (GMT)
committerBritney Fransen <brfransen@gmail.com>2018-02-13 19:40:33 (GMT)
commit99386916bbaf4d29bc546ae0a24fed284f655a46 (patch)
treefe8330703eda4b0a2ad9d60c7cdfb9f0d89e24af /abs/core/python2
parent92857bef1f105647b7e834e69d9f980a81705622 (diff)
downloadlinhes_pkgbuild-99386916bbaf4d29bc546ae0a24fed284f655a46.zip
linhes_pkgbuild-99386916bbaf4d29bc546ae0a24fed284f655a46.tar.gz
linhes_pkgbuild-99386916bbaf4d29bc546ae0a24fed284f655a46.tar.bz2
python2: update to 2.7.14
Diffstat (limited to 'abs/core/python2')
-rw-r--r--abs/core/python2/PKGBUILD50
-rw-r--r--abs/core/python2/__changelog1
-rw-r--r--abs/core/python2/descr_ref.patch58
-rw-r--r--abs/core/python2/fix-profile-task.patch13
4 files changed, 100 insertions, 22 deletions
diff --git a/abs/core/python2/PKGBUILD b/abs/core/python2/PKGBUILD
index 8615d48..aabe74a 100644
--- a/abs/core/python2/PKGBUILD
+++ b/abs/core/python2/PKGBUILD
@@ -5,22 +5,27 @@
# Contributor: Jason Chu <jason@archlinux.org>
pkgname=python2
-pkgver=2.7.11
+pkgver=2.7.14
pkgrel=2
_pybasever=2.7
pkgdesc="A high-level scripting language"
-arch=('i686' 'x86_64')
+arch=('x86_64')
license=('PSF')
url="http://www.python.org/"
depends=('bzip2' 'gdbm' 'openssl' 'zlib' 'expat' 'sqlite' 'libffi')
-makedepends=('tk' 'bluez-libs' 'hardening-wrapper')
-checkdepends=('gdb' 'file')
+makedepends=('tk' 'bluez-libs')
+checkdepends=('gdb' 'file' 'xorg-server-xvfb')
optdepends=('tk: for IDLE'
'python2-setuptools'
'python2-pip')
conflicts=('python<3')
-source=(http://www.python.org/ftp/python/${pkgver%rc?}/Python-${pkgver}.tar.xz)
-sha1sums=('c3b8bbe3f084c4d4ea13ffb03d75a5e22f9756ff')
+source=("https://www.python.org/ftp/python/${pkgver%rc?}/Python-${pkgver}.tar.xz"{,.asc}
+ descr_ref.patch fix-profile-task.patch)
+sha512sums=('78310b0be6388ffa15f29a80afb9ab3c03a572cb094e9da00cfe391afadb51696e41f592eb658d6a31a2f422fdac8a55214a382cbb8cfb43d4a127d5b35ea7f9'
+ 'SKIP'
+ '2e16eb23eb402dbe921c09bce99b400c10939114b4a1ded0e94a744d8cb66427947bc8d07c4fb054f9fe0906d10d1da509fc2273fd136225c0f019cc43dd045d'
+ '5d7b47bfa9f13cf5fb827546189d823033278f96866366fca5257aaf819c92ffb26e2116426c84ab78d9ae3178eebb591fa4b2f22cfc2725e3e3e795fdb5c2b6')
+validpgpkeys=('C01E1CAD5EA2C4F0B8E3571504C367C218ADD4FF') # Benjamin Peterson
prepare() {
cd Python-${pkgver}
@@ -38,11 +43,6 @@ prepare() {
sed -i "s/python2.3/python2/g" Lib/distutils/tests/test_build_scripts.py \
Lib/distutils/tests/test_install_scripts.py
- # TODO: Still not passed
- # Silent test_gdb failures on 'no symbol table loaded'.
- #sed -i '/ignore_patterns = (/a "No symbol table is loaded. Use the \\"file\\" command.",' \
- # Lib/test/test_gdb.py
-
# 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
@@ -55,6 +55,13 @@ prepare() {
# Workaround asdl_c.py/makeopcodetargets.py errors after we touched the shebangs
touch Include/Python-ast.h Python/Python-ast.c Python/opcode_targets.h
+
+ # FS#48761
+ # http://bugs.python.org/issue25750
+ patch -Np1 -i ../descr_ref.patch
+
+ # Backport from Python 3.x
+ patch -Np2 -i ../fix-profile-task.patch
}
build() {
@@ -64,6 +71,8 @@ build() {
./configure --prefix=/usr \
--enable-shared \
--with-threads \
+ --enable-optimizations \
+ --with-lto \
--enable-ipv6 \
--enable-unicode=ucs4 \
--with-system-expat \
@@ -75,23 +84,22 @@ build() {
}
check() {
- # As of 2.7.11, 2 tests failed:
- # test_doctest test_gdb
- # Besides, test_thread disabled as it will stuck
-
- # $SHELL was set to avoid a test failure in test_gdb (it still fails due to other reasons, though)
+ # Since 2.7.13,
+ # test_replace_overflow (present in test_bytes, test_str, test_string, test_unicode, test_userstring) segfault on i686
+ # test_bigrepeat (present in test_tuple) segfault on i686
cd Python-${pkgver}
- SHELL=/bin/sh LD_LIBRARY_PATH="${srcdir}/Python-${pkgver}":${LD_LIBRARY_PATH} \
- "${srcdir}/Python-${pkgver}/python" -m test.regrtest -v -uall -x test_thread || warning "Tests failed"
+ LD_LIBRARY_PATH="${srcdir}/Python-${pkgver}":${LD_LIBRARY_PATH} \
+ xvfb-run "${srcdir}/Python-${pkgver}/python" -m test.regrtest -v -uall -x test_bytes test_str test_string test_tuple test_unicode test_userstring
}
package() {
cd Python-${pkgver}
- make DESTDIR="${pkgdir}" altinstall maninstall
- #LinHES
- ln -sf python2 "${pkgdir}/usr/bin/python"
+ # Hack to avoid building again
+ sed -i 's/^all:.*$/all: build_all/' Makefile
+
+ make DESTDIR="${pkgdir}" altinstall maninstall
rm "${pkgdir}"/usr/share/man/man1/python.1
diff --git a/abs/core/python2/__changelog b/abs/core/python2/__changelog
deleted file mode 100644
index d8cc127..0000000
--- a/abs/core/python2/__changelog
+++ /dev/null
@@ -1 +0,0 @@
-PKGBUILD: add symlink making python2->python
diff --git a/abs/core/python2/descr_ref.patch b/abs/core/python2/descr_ref.patch
new file mode 100644
index 0000000..b55cf58
--- /dev/null
+++ b/abs/core/python2/descr_ref.patch
@@ -0,0 +1,58 @@
+When calling tp_descr_get(self, obj, type), make sure that we own a reference to "self"
+
+diff -ru Python-2.7.9/Objects/typeobject.c Python-2.7.9-fixed//Objects/typeobject.c
+--- Python-2.7.9/Objects/typeobject.c 2014-12-10 16:59:57.000000000 +0100
++++ Python-2.7.9-fixed//Objects/typeobject.c 2015-11-27 20:39:58.276156800 +0100
+@@ -2542,6 +2542,7 @@
+ PyTypeObject *metatype = Py_TYPE(type);
+ PyObject *meta_attribute, *attribute;
+ descrgetfunc meta_get;
++ PyObject* res;
+
+ if (!PyString_Check(name)) {
+ PyErr_Format(PyExc_TypeError,
+@@ -2563,6 +2564,7 @@
+ meta_attribute = _PyType_Lookup(metatype, name);
+
+ if (meta_attribute != NULL) {
++ Py_INCREF(meta_attribute);
+ meta_get = Py_TYPE(meta_attribute)->tp_descr_get;
+
+ if (meta_get != NULL && PyDescr_IsData(meta_attribute)) {
+@@ -2570,10 +2572,11 @@
+ * writes. Assume the attribute is not overridden in
+ * type's tp_dict (and bases): call the descriptor now.
+ */
+- return meta_get(meta_attribute, (PyObject *)type,
++ res = meta_get(meta_attribute, (PyObject *)type,
+ (PyObject *)metatype);
++ Py_DECREF(meta_attribute);
++ return res;
+ }
+- Py_INCREF(meta_attribute);
+ }
+
+ /* No data descriptor found on metatype. Look in tp_dict of this
+@@ -2581,6 +2584,7 @@
+ attribute = _PyType_Lookup(type, name);
+ if (attribute != NULL) {
+ /* Implement descriptor functionality, if any */
++ Py_INCREF(attribute);
+ descrgetfunc local_get = Py_TYPE(attribute)->tp_descr_get;
+
+ Py_XDECREF(meta_attribute);
+@@ -2588,11 +2592,12 @@
+ if (local_get != NULL) {
+ /* NULL 2nd argument indicates the descriptor was
+ * found on the target object itself (or a base) */
+- return local_get(attribute, (PyObject *)NULL,
++ res = local_get(attribute, (PyObject *)NULL,
+ (PyObject *)type);
++ Py_DECREF(attribute);
++ return res;
+ }
+
+- Py_INCREF(attribute);
+ return attribute;
+ }
+
diff --git a/abs/core/python2/fix-profile-task.patch b/abs/core/python2/fix-profile-task.patch
new file mode 100644
index 0000000..c6558ef
--- /dev/null
+++ b/abs/core/python2/fix-profile-task.patch
@@ -0,0 +1,13 @@
+diff --git a/Python-2.7.13/Makefile.pre.in b/Python-2.7.13/Makefile.pre.in
+index e288964..22edc27 100644
+--- a/Python-2.7.13/Makefile.pre.in
++++ b/Python-2.7.13/Makefile.pre.in
+@@ -456,7 +456,7 @@ build_all_generate_profile:
+
+ run_profile_task:
+ : # FIXME: can't run for a cross build
+- $(LLVM_PROF_FILE) ./$(BUILDPYTHON) $(PROFILE_TASK) || true
++ $(LLVM_PROF_FILE) $(RUNSHARED) ./$(BUILDPYTHON) $(PROFILE_TASK) || true
+
+ build_all_merge_profile:
+ $(LLVM_PROF_MERGER)