diff options
| -rw-r--r-- | abs/core/python/PKGBUILD | 105 | ||||
| -rw-r--r-- | abs/core/python/dont-make-libpython-readonly.patch | 13 | ||||
| -rwxr-xr-x | abs/core/python/genrebuild | 7 | 
3 files changed, 81 insertions, 44 deletions
diff --git a/abs/core/python/PKGBUILD b/abs/core/python/PKGBUILD index 5a3a401..ffa1189 100644 --- a/abs/core/python/PKGBUILD +++ b/abs/core/python/PKGBUILD @@ -1,48 +1,43 @@ -# $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 +shopt -s extglob + +pkgbase=python +pkgname=(python python-tests) +pkgver=3.8.3  pkgrel=1 -_pybasever=3.6 +_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') +url="https://www.python.org/" +depends=('expat' 'bzip2' 'gdbm' 'openssl' 'libffi' 'zlib' 'libnsl')  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> +source=("https://www.python.org/ftp/python/${pkgver%rc*}/Python-${pkgver}.tar.xz"{,.asc}) +sha512sums=('3103bd8d944f3905eee3a2b52fd1f5c7dee380f9c5a99ad35a401fcba5a9117c3860ecec5cb47a92712c6549442fd2fa553a15c5657241dd09f5d00b9ed4f0f4' +            '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 +  # https://bugs.python.org/issue34587 +  sed -i -e "s|testCongestion|disabled_&|" Lib/test/test_socket.py    # 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 +45,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 +69,14 @@ 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_gdb is expected to fail with LTO +  # test_idle, test_tk, test_ttk_guionly segfaults since 3.6.5 +  # test_socket hangs since 3.8.2 +  # test_decimal fails since 3.8.2    cd Python-${pkgver} @@ -83,18 +85,34 @@ 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_gdb -x test_idle -x test_tk -x test_ttk_guionly \ +                                                                  -x test_socket -x test_decimal  } -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 +128,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) +} diff --git a/abs/core/python/dont-make-libpython-readonly.patch b/abs/core/python/dont-make-libpython-readonly.patch deleted file mode 100644 index 92308bf..0000000 --- a/abs/core/python/dont-make-libpython-readonly.patch +++ /dev/null @@ -1,13 +0,0 @@ -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@ -  diff --git a/abs/core/python/genrebuild b/abs/core/python/genrebuild new file mode 100755 index 0000000..5f447b0 --- /dev/null +++ b/abs/core/python/genrebuild @@ -0,0 +1,7 @@ +#!/bin/bash +( +_pyver=$(expac %v python | grep -oP '^[0-9]+\.[0-9]+') +pacman -Fq /usr/lib/python${_pyver}/ | grep -v archlinuxcn | cut -d / -f 2 +sogrep all libpython${_pyver}m.so +printf "%s\n" boost vim +) | sort -u  | 
