core/python3/Pkgfile

67 lines
2.4 KiB
Plaintext

# Description: Python interpreter, version 3.
# URL: https://www.python.org/
# Maintainer: CRUX System Team, core-ports at crux dot nu
# Depends on: bzip2 expat gdbm libffi libnsl libtirpc mpdecimal sqlite3 xz
name=python3
version=3.10.4
release=1
source=(https://www.python.org/ftp/python/${version%rc*}/Python-$version.tar.xz)
build() {
cd Python-$version
# PGO and LTO make python go brrrrr
sed -i -e "s|-flto |-flto=4 |g" configure configure.ac
CFLAGS="${CFLAGS/-O2/-O3}"
local _pgojobs=$(nproc)
export PROFILE_TASK="-m test -j${_pgojobs} --pgo-extended -x test_gdb -u-network"
PROFILE_TASK+=" -x test_socket -x test_asyncio -x test_httpservers -x test_logging -x test_multiprocessing_fork -x test_xmlrpc"
local -x LC_ALL=C.utf8
export SETUPTOOLS_USE_DISTUTILS=stdlib
local -x COLUMNS=80
local -x PYTHONDONTWRITEBYTECODE=
# Ensure that we are using the system copy of various libraries
rm -r Modules/expat
rm -r Modules/_ctypes/{darwin,libffi}*
rm -r Modules/_decimal/libmpdec
# Remove tests
rm -r Lib/{test,{ctypes,sqlite3,tkinter,unittest}/test}
rm -r Lib/{{distutils,lib2to3}/tests,idlelib/idle_test}
./configure \
--prefix=/usr \
--enable-shared \
--enable-optimizations \
--enable-ipv6 \
--enable-loadable-sqlite-extensions \
--with-computed-gotos \
--with-lto \
--with-system-expat \
--with-system-ffi \
--with-system-libmpdec \
--with-tzpath=/usr/share/zoneinfo \
--without-ensurepip
make EXTRA_CFLAGS="$CFLAGS"
make -j1 EXTRA_CFLAGS="$CFLAGS" DESTDIR=$PKG altinstall maninstall
ln -s 2to3-${version%.*} $PKG/usr/bin/2to3
ln -s python${version%.*} $PKG/usr/bin/python3
ln -s python${version%.*}-config $PKG/usr/bin/python3-config
ln -s idle${version%.*} $PKG/usr/bin/idle3
ln -s pydoc${version%.*} $PKG/usr/bin/pydoc3
ln -s python${version%.*} $PKG/usr/lib/$name
ln -s python-${version%.*}.pc $PKG/usr/lib/pkgconfig/python3.pc
ln -s python-${version%.*}-embed.pc $PKG/usr/lib/pkgconfig/python3-embed.pc
rm $PKG/usr/lib/python${version%.*}/ctypes/macholib/README.ctypes
rm $PKG/usr/lib/python${version%.*}/distutils/README
rm $PKG/usr/lib/python${version%.*}/idlelib/{ChangeLog,NEWS.txt,NEWS2x.txt}
rm $PKG/usr/lib/python${version%.*}/idlelib/{README,TODO,CREDITS,HISTORY}.txt
rm $PKG/usr/lib/python${version%.*}/idlelib/Icons/README.txt
rm $PKG/usr/lib/python${version%.*}/site-packages/README.txt
}