diff options
Diffstat (limited to 'abs/core/python/PKGBUILD')
-rw-r--r-- | abs/core/python/PKGBUILD | 104 |
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) +} |