live-bootstrap/steps/python-3.11.1/pass1.sh

105 lines
3.4 KiB
Bash
Raw Normal View History

2022-12-25 05:50:49 +00:00
# SPDX-FileCopyrightText: 2022 fosslinux <fosslinux@aussies.space>
#
# SPDX-License-Identifier: GPL-3.0-or-later
src_prepare() {
default
# Delete generated files that won't be regenerated
rm Lib/pydoc_data/topics.py \
Misc/stable_abi.toml
# Regenerate ssl_data for ssl module
rm Modules/_ssl_data_300.h Modules/_ssl_data.h
2024-01-24 03:42:29 +00:00
python -B Tools/ssl/make_ssl_data.py ../openssl-1.1.1l Modules/_ssl_data_111.h
2023-01-26 01:10:13 +00:00
sed -i 's#$(srcdir)/Modules/_ssl_data.h ##' Makefile.pre.in
sed -i 's#$(srcdir)/Modules/_ssl_data_300.h ##' Makefile.pre.in
2022-12-25 05:50:49 +00:00
# Regenerate encodings
grep generated -r . -l | grep encodings | xargs rm
mkdir Tools/unicode/in Tools/unicode/out
mv ../CP437.TXT Tools/unicode/in/
pushd Tools/unicode
2024-01-24 03:42:29 +00:00
python -B gencodec.py in/ ../../Lib/encodings/
2022-12-25 05:50:49 +00:00
popd
# Regenerate stringprep
rm Lib/stringprep.py
mv ../rfc3454.txt .
2024-01-24 03:42:29 +00:00
python -B Tools/unicode/mkstringprep.py > Lib/stringprep.py
2022-12-25 05:50:49 +00:00
# Regenerate unicode
rm Modules/unicodedata_db.h Modules/unicodename_db.h Objects/unicodetype_db.h
mkdir -p Tools/unicode/data
mv ../*.txt ../*.zip Tools/unicode/data/
2024-01-24 03:42:29 +00:00
python -B Tools/unicode/makeunicodedata.py
2022-12-25 05:50:49 +00:00
# Regenerate Lib/re/_casefix.py
rm Lib/re/_casefix.py
2024-01-24 03:42:29 +00:00
python -B Tools/scripts/generate_re_casefix.py Lib/re/_casefix.py
2022-12-25 05:50:49 +00:00
# Regenerate Programs/test_frozenmain.h
rm Programs/test_frozenmain.h
2024-01-24 03:42:29 +00:00
python -B Programs/freeze_test_frozenmain.py Programs/test_frozenmain.h
2022-12-25 05:50:49 +00:00
# Create dummy Python/stdlib_module_names.h
echo 'static const char* _Py_stdlib_module_names[] = {};' > Python/stdlib_module_names.h
# Regenerate autoconf
autoreconf-2.71 -fi
}
src_configure() {
2023-01-26 01:10:13 +00:00
mv Setup.local Modules
MACHDEP=linux ac_sys_system=Linux \
2022-12-25 05:50:49 +00:00
CPPFLAGS="-U__DATE__ -U__TIME__" \
PKG_CONFIG_PATH="${LIBDIR}/pkgconfig/" \
2023-01-26 01:10:13 +00:00
LDFLAGS="-static" \
2022-12-25 05:50:49 +00:00
./configure \
--build=i386-unknown-linux-musl \
--host=i386-unknown-linux-musl \
2022-12-25 05:50:49 +00:00
--prefix="${PREFIX}" \
--libdir="${LIBDIR}" \
2023-01-26 01:10:13 +00:00
--with-system-ffi \
--disable-shared
2022-12-25 05:50:49 +00:00
}
src_compile() {
# Regenerations
# We have to choose the order ourselves because the Makefile is extremely lax about the order
# First of all, do everything that doesn't use any C
rm Modules/_blake2/blake2s_impl.c
2024-01-24 03:42:29 +00:00
PYTHONDONTWRITEBYTECODE=1 \
make "${MAKEJOBS}" \
regen-opcode \
2022-12-25 05:50:49 +00:00
regen-opcode-targets \
regen-typeslots \
regen-token \
regen-ast \
regen-keyword \
regen-sre \
clinic \
regen-pegen-metaparser \
regen-pegen \
regen-global-objects
# Do the freeze regen process
2024-01-24 03:42:29 +00:00
PYTHONDONTWRITEBYTECODE=1 make "${MAKEJOBS}" regen-frozen
PYTHONDONTWRITEBYTECODE=1 make "${MAKEJOBS}" regen-deepfreeze
PYTHONDONTWRITEBYTECODE=1 make "${MAKEJOBS}" regen-global-objects
2022-12-25 05:50:49 +00:00
make "${MAKEJOBS}" CPPFLAGS="-U__DATE__ -U__TIME__"
2022-12-25 05:50:49 +00:00
# Regen Python/stdlib_module_names.h (you must have an existing build first)
2024-01-24 03:42:29 +00:00
PYTHONDONTWRITEBYTECODE=1 make "${MAKEJOBS}" regen-stdlib-module-names
2022-12-25 05:50:49 +00:00
# Now rebuild with proper stdlib_module_names.h
2024-01-24 03:42:29 +00:00
PYTHONDONTWRITEBYTECODE=1 make "${MAKEJOBS}" CPPFLAGS="-U__DATE__ -U__TIME__"
2022-12-25 05:50:49 +00:00
}
src_install() {
default
ln --symbolic --relative "${DESTDIR}${LIBDIR}/python3.11/lib-dynload" "${DESTDIR}${PREFIX}/lib/python3.11/lib-dynload"
ln --symbolic --relative "${DESTDIR}${PREFIX}/bin/python3.11" "${DESTDIR}${PREFIX}/bin/python"
2022-12-25 05:50:49 +00:00
}