# Maintainer: # Contributor: Kiyoshi Aman pkgname=python3-tkinter pkgver=3.8.0 _basever="${pkgver%.*}" pkgrel=0 pkgdesc="A graphical user interface for the Python" url="https://wiki.python.org/moin/TkInter" arch="all" license="custom" replaces=python3 subpackages="$pkgname-tests python3-idle:_idle" makedepends="expat-dev openssl-dev zlib-dev ncurses-dev bzip2-dev xz-dev sqlite-dev libffi-dev tcl-dev linux-headers gdbm-dev readline-dev tk tk-dev python3" source="https://www.python.org/ftp/python/$pkgver/Python-$pkgver.tar.xz musl-find_library.patch fix-xattrs-glibc.patch " builddir="$srcdir/Python-$pkgver" # secfixes: # 3.6.8-r1: # - CVE-2019-5010 prepare() { local _pyapkbuild="$startdir"/../../main/python3/APKBUILD if [ -e "$_pyapkbuild" ]; then _pver=$(. "$_pyapkbuild" ; echo $pkgver) if [ "$_pver" != "$pkgver" ]; then error "python version mismatch ($_pver). Set pkgver=$_pver" return 1 fi fi default_prepare cd "$builddir" # force system libs rm -r Modules/expat \ Modules/_ctypes/darwin* \ Modules/_ctypes/libffi* } build() { cd "$builddir" # --enable-optimizations is not enabled because it # is very, very slow as many tests are ran sequentially # for profile guided optimizations. additionally it # seems some of the training tests hang on certain # e.g. architectures (x86) possibly due to grsec or musl. ./configure \ --prefix=/usr \ --disable-rpath \ --enable-ipv6 \ --enable-loadable-sqlite-extensions \ --enable-shared \ --with-lto \ --with-computed-gotos \ --with-dbmliborder=gdbm:ndbm \ --with-system-expat \ --with-system-ffi \ --with-threads # set thread stack size to 1MB so we don't segfault before we hit # sys.getrecursionlimit() make EXTRA_CFLAGS="$CFLAGS -DTHREAD_STACK_SIZE=0x100000" } package() { cd "$builddir" # we only care about idle, and tkinter make DESTDIR="$builddir"/tmpinstall sharedinstall libinstall \ || return 1 mkdir -p "$pkgdir"/usr/lib/python${_basever}/lib-dynload \ "$pkgdir"/usr/bin for lib in idlelib tkinter; do mv "$builddir"/tmpinstall/usr/lib/python${_basever}/$lib \ "$pkgdir"/usr/lib/python${_basever}/ done mv "$builddir"/tmpinstall/usr/lib/python${_basever}/lib-dynload/_tkinter*.so \ "$pkgdir"/usr/lib/python${_basever}/lib-dynload/ mv "$builddir"/tmpinstall/usr/bin/idle* \ "$pkgdir"/usr/bin/ } _mv_files() { local i for i in "$@"; do mkdir -p "$subpkgdir"/${i%/*} mv "$pkgdir"/$i "$subpkgdir"/$i done } tests() { pkgdesc="The test modules from the main python package for tkinter" replaces="python3-tests" cd "$pkgdir" _mv_files usr/lib/python*/*/*_test \ usr/lib/python${pkgver%.*}/tkinter/test } _idle() { pkgdesc="IDE for Python3 using Tkinter" depends="$pkgname=$pkgver-r$pkgrel" replaces=python3 cd "$pkgdir" _mv_files usr/bin _mv_files usr/lib/python*/idlelib } sha512sums="5f9bfcb3acdf592770a9d5abd2c32c68c55a49b92f958ded069e3ef31cf2d415e67112b4f6738fab237dc29e5c622298719946d2e9471e7e78e3a6bdf2fac1d1 Python-3.8.0.tar.xz ab8eaa2858d5109049b1f9f553198d40e0ef8d78211ad6455f7b491af525bffb16738fed60fc84e960c4889568d25753b9e4a1494834fea48291b33f07000ec2 musl-find_library.patch 37b6ee5d0d5de43799316aa111423ba5a666c17dc7f81b04c330f59c1d1565540eac4c585abe2199bbed52ebe7426001edb1c53bd0a17486a2a8e052d0f494ad fix-xattrs-glibc.patch"