summaryrefslogtreecommitdiffstats
path: root/abs/core/python/PKGBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'abs/core/python/PKGBUILD')
-rw-r--r--abs/core/python/PKGBUILD104
1 files changed, 70 insertions, 34 deletions
diff --git a/abs/core/python/PKGBUILD b/abs/core/python/PKGBUILD
index 5a3a401..acb5af1 100644
--- a/abs/core/python/PKGBUILD
+++ b/abs/core/python/PKGBUILD
@@ -1,48 +1,40 @@
-# $Id$
# Maintainer: Angel Velasquez <angvp@archlinux.org>
# Maintainer: Felix Yan <felixonmars@archlinux.org>
# Contributor: Stéphane Gaudreault <stephane@archlinux.org>
# Contributor: Allan McRae <allan@archlinux.org>
# Contributor: Jason Chu <jason@archlinux.org>
-pkgname=python
-pkgver=3.6.8
-pkgrel=1
-_pybasever=3.6
+shopt -s extglob
+
+pkgbase=python
+pkgname=(python python-tests)
+pkgver=3.8.5
+pkgrel=2
+_pybasever=${pkgver%.*}
pkgdesc="Next generation of the python high-level scripting language"
arch=('x86_64')
license=('custom')
-url="http://www.python.org/"
-depends=('expat' 'bzip2' 'gdbm' 'openssl' 'libffi' 'zlib')
-makedepends=('tk' 'sqlite' 'valgrind' 'bluez-libs' 'mpdecimal' 'llvm' 'gdb' 'xorg-server-xvfb')
-optdepends=('python-setuptools'
- 'python-pip'
- 'sqlite'
- 'mpdecimal: for decimal'
- 'xz: for lzma'
- 'tk: for tkinter')
-provides=('python3')
-replaces=('python3')
-source=("https://www.python.org/ftp/python/${pkgver%rc*}/Python-${pkgver}.tar.xz"{,.asc}
- dont-make-libpython-readonly.patch)
-sha512sums=('b17867e451ebe662f50df83ed112d3656c089e7d750651ea640052b01b713b58e66aac9e082f71fd16f5b5510bc9b797f5ccd30f5399581e9aa406197f02938a'
- 'SKIP'
- '2ef96708d5b13ae2a3d2cc62c87b4780e60ecfce914e190564492def3a11d5e56977659f41c7f9d12266e58050c766bce4e2b5d50b708eb792794fa8357920c4')
-validpgpkeys=('0D96DF4D4110E5C43FBFB17F2D347EA6AA65421D') # Ned Deily (Python release signing key) <nad@python.org>
+url="https://www.python.org/"
+depends=('bzip2' 'expat' 'gdbm' 'libffi' 'libnsl' 'libxcrypt' 'openssl' 'zlib')
+makedepends=('tk' 'sqlite' 'valgrind' 'bluez-libs' 'mpdecimal' 'llvm' 'gdb' 'xorg-server-xvfb' 'ttf-font')
+source=("https://www.python.org/ftp/python/${pkgver%rc*}/Python-${pkgver}.tar.xz"{,.asc})
+sha512sums=('460cee65d7df7150694590575502d7f22e548ebfc99c8f8b363eef8bf30ee72e58d8ffacb1d607824f877f880eb9fd6775a508388029583e1e1df3380f3f9587'
+ 'SKIP')
+validpgpkeys=('0D96DF4D4110E5C43FBFB17F2D347EA6AA65421D' # Ned Deily (Python release signing key) <nad@python.org>
+ 'E3FF2839C048B25C084DEBE9B26995E310250568') # Łukasz Langa (GPG langa.pl) <lukasz@langa.pl>
prepare() {
cd Python-${pkgver}
- # FS#45809
- patch -p1 -i ../dont-make-libpython-readonly.patch
-
# FS#23997
sed -i -e "s|^#.* /usr/local/bin/python|#!/usr/bin/python|" Lib/cgi.py
- # Ensure that we are using the system copy of various libraries (expat, zlib, libffi, and libmpdec),
+ # Speed up LTO
+ sed -i -e "s|-flto |-flto=4 |g" configure configure.ac
+
+ # Ensure that we are using the system copy of various libraries (expat, libffi, and libmpdec),
# rather than copies shipped in the tarball
rm -r Modules/expat
- rm -r Modules/zlib
rm -r Modules/_ctypes/{darwin,libffi}*
rm -r Modules/_decimal/libmpdec
}
@@ -50,10 +42,15 @@ prepare() {
build() {
cd Python-${pkgver}
+ # PGO should be done with -O3
+ # Also included the -fno-semantic-interposition optimization:
+ # https://fedoraproject.org/wiki/Changes/PythonNoSemanticInterpositionSpeedup
+ CFLAGS="${CFLAGS/-O2/-O3} -fno-semantic-interposition"
+ LDFLAGS="$LDFLAGS -fno-semantic-interposition"
+
# Disable bundled pip & setuptools
./configure --prefix=/usr \
--enable-shared \
- --with-threads \
--with-computed-gotos \
--enable-optimizations \
--with-lto \
@@ -69,12 +66,11 @@ build() {
export servernum=99
while ! xvfb-run -a -n "$servernum" /bin/true 2>/dev/null; do servernum=$((servernum+1)); done
- LC_CTYPE=en_US.UTF-8 xvfb-run -s "-screen 0 1280x720x24 -ac +extension GLX" -a -n "$servernum" make EXTRA_CFLAGS="$CFLAGS"
+ LC_CTYPE=en_US.UTF-8 xvfb-run -s "-screen 0 1920x1080x16 -ac +extension GLX" -a -n "$servernum" make EXTRA_CFLAGS="$CFLAGS"
}
check() {
- # test_gdb is expected to fail with LTO~
- # test_idle, test_tk, test_ttk_guionly segfaults on 3.6.5
+ # test_tk: https://bugs.python.org/issue41306
cd Python-${pkgver}
@@ -83,18 +79,33 @@ check() {
while ! xvfb-run -a -n "$servernum" /bin/true 2>/dev/null; do servernum=$((servernum+1)); done
LD_LIBRARY_PATH="${srcdir}/Python-${pkgver}":${LD_LIBRARY_PATH} \
- LC_CTYPE=en_US.UTF-8 xvfb-run -s "-screen 0 1280x720x24 -ac +extension GLX" -a -n "$servernum" \
- "${srcdir}/Python-${pkgver}/python" -m test.regrtest -v -uall -x test_gdb -x test_idle -x test_tk -x test_ttk_guionly
+ LC_CTYPE=en_US.UTF-8 xvfb-run -s "-screen 0 1920x1080x16 -ac +extension GLX" -a -n "$servernum" \
+ "${srcdir}/Python-${pkgver}/python" -m test.regrtest -v -uall -x test_tk
}
-package() {
+package_python() {
+ optdepends=('python-setuptools'
+ 'python-pip'
+ 'sqlite'
+ 'mpdecimal: for decimal'
+ 'xz: for lzma'
+ 'tk: for tkinter')
+ provides=('python3')
+ replaces=('python3')
+
cd Python-${pkgver}
# Hack to avoid building again
sed -i 's/^all:.*$/all: build_all/' Makefile
+ # PGO should be done with -O3
+ CFLAGS="${CFLAGS/-O2/-O3}"
+
make DESTDIR="${pkgdir}" EXTRA_CFLAGS="$CFLAGS" install
+ # Split tests
+ rm -r "$pkgdir"/usr/lib/python*/{test,ctypes/test,distutils/tests,idlelib/idle_test,lib2to3/tests,sqlite3/test,tkinter/test,unittest/test}
+
# Why are these not done by default...
ln -s python3 "${pkgdir}"/usr/bin/python
ln -s python3-config "${pkgdir}"/usr/bin/python-config
@@ -110,3 +121,28 @@ package() {
# License
install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
}
+
+package_python-tests() {
+ pkgdesc="Regression tests packages for Python"
+ depends=('python')
+
+ cd Python-${pkgver}
+
+ make DESTDIR="${pkgdir}" EXTRA_CFLAGS="$CFLAGS" libinstall
+ cd "$pkgdir"/usr/lib/python*/
+ rm -r !(test|ctypes|distutils|idlelib|lib2to3|sqlite3|tkinter|unittest)
+ cd "$pkgdir"/usr/lib/python*/ctypes
+ rm -r !(test)
+ cd "$pkgdir"/usr/lib/python*/distutils
+ rm -r !(tests)
+ cd "$pkgdir"/usr/lib/python*/idlelib
+ rm -r !(idle_test)
+ cd "$pkgdir"/usr/lib/python*/lib2to3
+ rm -r !(tests)
+ cd "$pkgdir"/usr/lib/python*/sqlite3
+ rm -r !(test)
+ cd "$pkgdir"/usr/lib/python*/tkinter
+ rm -r !(test)
+ cd "$pkgdir"/usr/lib/python*/unittest
+ rm -r !(test)
+}