# Maintainer: # Contributor: Sheila Aman # Contributor: Pranjal Kole pkgname=python3-tkinter pkgver=3.11.4 _basever="${pkgver%.*}" pkgrel=0 pkgdesc="A graphical user interface for the Python programming language" url="https://wiki.python.org/moin/TkInter" arch="all" license="PSF-2.0" replaces="python3" subpackages="$pkgname-tests::noarch python3-idle:_idle:noarch $pkgname-pyc" makedepends=" bzip2-dev expat-dev gdbm-dev libffi-dev linux-headers ncurses-dev openssl-dev>3 python3 readline-dev sqlite-dev tcl-dev tk-dev xz-dev zlib-dev " source="https://www.python.org/ftp/python/$pkgver/Python-$pkgver.tar.xz musl-find_library.patch idle.desktop " 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 # force system libs rm -r Modules/expat \ Modules/_ctypes/darwin* \ Modules/_ctypes/libffi* } build() { # --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. # -Os overwrites --enable-optimizations export CFLAGS="${CFLAGS/-Os/} -fno-semantic-interposition" export LDFLAGS="$LDFLAGS -fno-semantic-interposition" ./configure \ --build=$CBUILD \ --host=$CHOST \ --prefix=/usr \ --enable-ipv6 \ --enable-loadable-sqlite-extensions \ --enable-shared \ --with-lto \ --with-computed-gotos \ --with-dbmliborder=gdbm:ndbm \ --with-system-expat \ --with-system-ffi # 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() { # we only care about idle, and tkinter make DESTDIR="$builddir"/tmpinstall sharedinstall libinstall 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/ } tests() { pkgdesc="The test modules from the main python package for tkinter" replaces="python3-tests" amove usr/lib/python*/*/*_test \ usr/lib/python${pkgver%.*}/tkinter/test } _idle() { pkgdesc="IDE for Python3 using Tkinter" depends="$pkgname=$pkgver-r$pkgrel python3 python3-tests" replaces="python3" amove usr/bin \ usr/lib/python*/idlelib install -Dm644 "$srcdir"/idle.desktop \ -t "$subpkgdir"/usr/share/applications local size for size in 16 32 48 256; do install -Dm644 "$builddir"/Lib/idlelib/Icons/idle_"$size".png \ "$subpkgdir"/usr/share/icons/hicolor/"$size"x"$size"/apps/idle.png done } sha512sums=" 7eb14fecbf60824d10c22a9057584c3a142c2866f4af6caa2525c10c8bcb24e6e7afb32a44a0e118df0a2b2543d578c3b422ffd4a5fa317dfe6ea371cc7ee1ee Python-3.11.4.tar.xz ab8eaa2858d5109049b1f9f553198d40e0ef8d78211ad6455f7b491af525bffb16738fed60fc84e960c4889568d25753b9e4a1494834fea48291b33f07000ec2 musl-find_library.patch f1ecb004871dc7e0c794eebe94ca1084b211924ecc97edc57f32a7c8df5d572e9ca6cdc45d6fc08009e480eb9a2c9f3d359d46989dc72c03679eb94ad97a2916 idle.desktop "