# Template file for 'python3-tkinter' # # THIS PACKAGE MUST BE SYNCHRONIZED WITH "srcpkgs/python3" # # IT IS SPLIT TO AVOID A CYCLIC DEPENDENCY: # python3 -> tk -> libX11 -> libxcb -> xcb-proto -> python3 _desc="Python programming language" pkgname=python3-tkinter version=3.9.6 revision=1 wrksrc="Python-${version}" pycompile_dirs=" usr/lib/python${version%.*}/tkinter usr/lib/python${version%.*}/turtledemo usr/lib/python${version%.*}/turtle.py" hostmakedepends="pkg-config" makedepends="libffi-devel readline-devel gdbm-devel openssl-devel expat-devel sqlite-devel bzip2-devel zlib-devel liblzma-devel tk-devel" short_desc="${_desc} - GUI toolkit for Python3" maintainer="Andrew J. Hesford " homepage="https://www.python.org" license="Python-2.0" distfiles="https://www.python.org/ftp/python/${version}/Python-${version}.tar.xz" checksum=397920af33efc5b97f2e0b57e91923512ef89fc5b3c1d21dbfc8c4828ce0108a pre_configure() { # Ensure that internal copies of expat and libffi are not used. rm -r Modules/expat rm -r Modules/_ctypes/{darwin,libffi}* } do_configure() { local _args unset GCC CC CXX CPP LD AR AS RANLIB if [ "$CROSS_BUILD" ]; then mkdir -p host-build cd host-build env -i PATH=$PATH XBPS_ARCH=$XBPS_ARCH CFLAGS=-Os ../configure env -i PATH=$PATH XBPS_ARCH=$XBPS_ARCH make ${makejobs} python mkdir -p ../hostpython mv python ../hostpython cd .. patch -Np0 -i ${FILESDIR}/cross.patch _args="--build=${XBPS_MACHINE%%-musl}" fi ./configure ${configure_args} ${_args} \ --enable-shared --enable-ipv6 --enable-loadable-sqlite-extensions \ --with-computed-gotos --with-dbmliborder=gdbm:ndbm \ --with-system-expat --with-system-ffi --without-ensurepip } do_build() { export PATH="$PATH:$wrksrc/hostpython" make ${makejobs} } do_check() { # The test_tk suite requires DISPLAY, so just test idle and tcl make ${makejobs} EXTRATESTOPTS="test_tcl test_idle test_ttk_textonly" test } do_install() { export PATH="$PATH:$wrksrc/hostpython" mkdir -p ${wrksrc}/tmp-destdir/usr/lib ln -s lib ${wrksrc}/tmp-destdir/usr/lib${XBPS_TARGET_WORDSIZE} make DESTDIR=${wrksrc}/tmp-destdir altinstall vlicense LICENSE # We only care for the idle and tkinter modules. vmkdir usr/bin vmkdir usr/lib/python${version%.*}/lib-dynload mv ${wrksrc}/tmp-destdir/usr/bin/idle${version%.*} \ ${DESTDIR}/usr/bin/idle${version%.*} for lib in idlelib tkinter turtledemo turtle.py; do mv ${wrksrc}/tmp-destdir/usr/lib/python${version%.*}/${lib} \ ${DESTDIR}/usr/lib/python${version%.*}/ done mv ${wrksrc}/tmp-destdir/usr/lib/python${version%.*}/lib-dynload/_tkinter.cpython-*.so \ ${DESTDIR}/usr/lib/python${version%.*}/lib-dynload/ ln -sf idle${version%.*} ${DESTDIR}/usr/bin/idle3 } idle-python3_package() { short_desc="${_desc} - IDE for Python3 using Tkinter" pycompile_dirs="usr/lib/python${version%.*}/idlelib" depends="${sourcepkg}-${version}_${revision}" pkg_install() { vmove usr/bin/idle3* vmove usr/lib/python${version%.*}/idlelib vinstall ${FILESDIR}/idle3.xpm 644 usr/share/pixmaps vinstall ${FILESDIR}/idle3.desktop 644 usr/share/applications } }