SUMMARY="An interpreted, interactive, object-oriented programming language" DESCRIPTION="Python is a programming language that lets you work more quickly \ and integrate your systems more effectively. You can learn to use Python and \ see almost immediate gains in productivity and lower maintenance costs. Python runs on Windows, Linux/Unix, Mac OS X, and has been ported to the Java \ and .NET virtual machines. Python is free to use, even for commercial products, because of its \ OSI-approved open source license." HOMEPAGE="https://www.python.org" LICENSE="Python" COPYRIGHT="1990-2020 Python Software Foundation" REVISION="4" SOURCE_URI="https://www.python.org/ftp/python/$portVersion/Python-$portVersion.tar.xz" CHECKSUM_SHA256="0c5a140665436ec3dbfbb79e2dfb6d192655f26ef4a29aeffcb6d1820d716d83" SOURCE_DIR="Python-$portVersion" PATCHES="python39-$portVersion.patchset" if [ "$secondaryArchSuffix" = _x86 ] ; then PATCHES+=" python39_x86-$portVersion.patchset " fi ARCHITECTURES="all !x86_gcc2 ?x86" SECONDARY_ARCHITECTURES="x86" # On x86_gcc2 we don't want to install the commands in bin//, but in bin/. commandSuffix=$secondaryArchSuffix commandBinDir=$binDir if [ "$targetArchitecture" = x86_gcc2 ]; then commandSuffix= commandBinDir=$prefix/bin fi PROVIDES=" python39$secondaryArchSuffix = $portVersion compat >= 3.9 cmd:2to3_3.9 = $portVersion compat >= 3.9 cmd:idle3.9 = $portVersion compat >= 3.9 cmd:pydoc3.9 = $portVersion compat >= 3.9 cmd:python3.9 = $portVersion compat >= 3.9 cmd:python3.9_config = $portVersion compat >= 3.9 cmd:pyvenv_3.9 = $portVersion compat >= 3.9 devel:libpython3.9$secondaryArchSuffix = 1.0 lib:libpython3.9$secondaryArchSuffix = 1.0 " REQUIRES=" haiku$secondaryArchSuffix cmd:file lib:libbz2$secondaryArchSuffix lib:libexpat$secondaryArchSuffix lib:libffi$secondaryArchSuffix lib:libintl$secondaryArchSuffix lib:liblzma$secondaryArchSuffix lib:libncurses$secondaryArchSuffix lib:libssl$secondaryArchSuffix lib:libedit$secondaryArchSuffix lib:libsqlite3$secondaryArchSuffix lib:libz$secondaryArchSuffix " BUILD_REQUIRES=" haiku${secondaryArchSuffix}_devel devel:libbz2$secondaryArchSuffix devel:libexpat$secondaryArchSuffix devel:libffi$secondaryArchSuffix devel:liblzma$secondaryArchSuffix devel:libncurses$secondaryArchSuffix devel:libssl$secondaryArchSuffix devel:libedit$secondaryArchSuffix devel:libsqlite3$secondaryArchSuffix devel:libz$secondaryArchSuffix " BUILD_PREREQUIRES=" autoconf_archive cmd:aclocal cmd:autoconf cmd:find cmd:gcc$secondaryArchSuffix cmd:ld$secondaryArchSuffix cmd:libtoolize$secondaryArchSuffix cmd:pkg_config$secondaryArchSuffix cmd:make " GLOBAL_WRITABLE_FILES=" non-packaged/lib/python3.9/site-packages directory keep-old " BUILD() { export CFLAGS="-D_BSD_SOURCE" rm -Rf Modules/expat autoreconf -fi export OPT="" runConfigure --omit-dirs binDir,includeDir ./configure \ --enable-shared --without-ensurepip --with-system-ffi \ --with-system-expat --bindir=$commandBinDir --includedir=$developDir/headers # prevent make from rebuilding stuff that requires python touch Parser/asdl* Python/Python-ast.c Include/Python-ast.h rm -f python make $jobArgs } INSTALL() { make install rm $libDir/libpython3.so if [ "$targetArchitecture" = x86_gcc2 ]; then # On x86_gcc2, move lib-dynload to lib/python3.x/ mv $libDir/python3.9/lib-dynload $prefix/lib/python3.9/ fi prepareInstalledDevelLibs libpython3.9 fixPkgconfig if [ "$targetArchitecture" = x86_gcc2 ]; then # fix pkgconfig to match configure flags sed -i -e 's,headers/x86,headers,' $developLibDir/pkgconfig/python*.pc fi mkdir -p $prefix/lib/python3.9/vendor-packages echo 'This directory contains packaged python modules.' \ >$prefix/lib/python3.9/vendor-packages/README mkdir -p $prefix/non-packaged/lib/python3.9 mv $prefix/lib/python3.9/site-packages $prefix/non-packaged/lib/python3.9/ # drop testsuite altogether; move to a separate package if needed cd $prefix/lib/python3.9 rm -rf ctypes/test distutils/tests idlelib/idle_test lib2to3/tests \ sqlite3/test test tkinter/test unittest/test rm -f $prefix/bin/{2to3,idle3,pydoc3,python3,python3-config} } TEST() { cd Lib/test rm -f test_asynchat.py # this one stalls, so skip it for now rm -f test_multiprocessing.py # this one stalls, so skip it for now cd ../.. make $jobArgs test }