mirror of
https://github.com/yann64/haikuports.git
synced 2026-04-09 13:20:08 +02:00
It's probable we should have a "_default" package for Python3 the same way we do OpenJDK. But this should be OK for the time being at least.
153 lines
4.5 KiB
Bash
153 lines
4.5 KiB
Bash
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="1"
|
|
SOURCE_URI="https://www.python.org/ftp/python/$portVersion/Python-$portVersion.tar.xz"
|
|
CHECKSUM_SHA256="651304d216c8203fe0adf1a80af472d8e92c3b0e0a7892222ae4d9f3ae4debcf"
|
|
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/<arch>/, but in bin/.
|
|
commandSuffix=$secondaryArchSuffix
|
|
commandBinDir=$binDir
|
|
if [ "$targetArchitecture" = x86_gcc2 ]; then
|
|
commandSuffix=
|
|
commandBinDir=$prefix/bin
|
|
fi
|
|
|
|
PROVIDES="
|
|
python3.9$secondaryArchSuffix = $portVersion compat >= 3.9
|
|
python39$secondaryArchSuffix = $portVersion compat >= 3.9
|
|
cmd:2to3_3.9 = $portVersion compat >= 3.9
|
|
cmd:2to3 = $portVersion compat >= 3.9
|
|
cmd:idle3.9 = $portVersion compat >= 3.9
|
|
cmd:idle3 = $portVersion compat >= 3.9
|
|
cmd:pydoc3.9 = $portVersion compat >= 3.9
|
|
cmd:pydoc3 = $portVersion compat >= 3.9
|
|
cmd:python3.9 = $portVersion compat >= 3.9
|
|
cmd:python3 = $portVersion compat >= 3.9
|
|
cmd:python3.9_config = $portVersion compat >= 3.9
|
|
cmd:python3_config = $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: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="
|
|
autoconf_archive
|
|
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.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
|
|
}
|
|
|
|
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
|
|
}
|