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-2022 Python Software Foundation" REVISION="2" SOURCE_URI="https://www.python.org/ftp/python/$portVersion/Python-$portVersion.tar.xz" CHECKSUM_SHA256="4157ae31eb81af19e81c36882610491b0fb8f50e00fa8a17b095c88908b9c45c" SOURCE_DIR="Python-$portVersion" PATCHES="python3-$portVersion.patchset" if [ "$secondaryArchSuffix" = _x86 ] ; then PATCHES+=" python3_x86-$portVersion.patchset " fi ARCHITECTURES="all !x86_gcc2" 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=" python3.7$secondaryArchSuffix = $portVersion compat >= 3.7 cmd:2to3_3.7 = $portVersion compat >= 3.7 cmd:idle3 = $portVersion compat >= 3.7 cmd:idle3.7 = $portVersion compat >= 3.7 cmd:pydoc3.7 = $portVersion compat >= 3.7 cmd:python3_config = $portVersion compat >= 3.7 cmd:python3.7 = $portVersion compat >= 3.7 cmd:python3.7_config = $portVersion compat >= 3.7 cmd:python3.7m = $portVersion compat >= 3.7 cmd:python3.7m_config = $portVersion compat >= 3.7 cmd:pyvenv_3.7 = $portVersion compat >= 3.7 devel:libpython3.7m$secondaryArchSuffix = 1.0 lib:libpython3.7m$secondaryArchSuffix = 1.0 " REQUIRES=" haiku$secondaryArchSuffix cmd:file lib:libbz2$secondaryArchSuffix lib:libedit$secondaryArchSuffix lib:libexpat$secondaryArchSuffix lib:libffi$secondaryArchSuffix lib:libintl$secondaryArchSuffix lib:liblzma$secondaryArchSuffix lib:libncurses$secondaryArchSuffix lib:libsqlite3$secondaryArchSuffix lib:libssl$secondaryArchSuffix lib:libz$secondaryArchSuffix " BUILD_REQUIRES=" haiku${secondaryArchSuffix}_devel devel:libbz2$secondaryArchSuffix devel:libedit$secondaryArchSuffix devel:libexpat$secondaryArchSuffix devel:libffi$secondaryArchSuffix devel:liblzma$secondaryArchSuffix devel:libncurses$secondaryArchSuffix devel:libsqlite3$secondaryArchSuffix devel:libssl$secondaryArchSuffix devel:libtclstub8.6$secondaryArchSuffix devel:libtk8.6$secondaryArchSuffix devel:libz$secondaryArchSuffix " BUILD_PREREQUIRES=" cmd:aclocal cmd:autoconf cmd:find cmd:gcc$secondaryArchSuffix cmd:ld$secondaryArchSuffix cmd:libtoolize$secondaryArchSuffix cmd:make cmd:pkg_config$secondaryArchSuffix " GLOBAL_WRITABLE_FILES=" non-packaged/lib/python3.7/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.7/lib-dynload $prefix/lib/python3.7/ fi prepareInstalledDevelLibs libpython3.7m 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.7/vendor-packages echo 'This directory contains packaged python modules.' \ >$prefix/lib/python3.7/vendor-packages/README mkdir -p $prefix/non-packaged/lib/python3.7 mv $prefix/lib/python3.7/site-packages $prefix/non-packaged/lib/python3.7/ # drop testsuite altogether; move to a separate package if needed cd $prefix/lib/python3.7 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,pyvenv} } 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 }