logo

live-bootstrap

Mirror of <https://github.com/fosslinux/live-bootstrap>

pass1.sh (3436B)


  1. # SPDX-FileCopyrightText: 2022 fosslinux <fosslinux@aussies.space>
  2. #
  3. # SPDX-License-Identifier: GPL-3.0-or-later
  4. src_prepare() {
  5. default
  6. # Delete generated files that won't be regenerated
  7. rm Lib/pydoc_data/topics.py \
  8. Misc/stable_abi.toml
  9. # Regenerate ssl_data for ssl module
  10. rm Modules/_ssl_data_111.h Modules/_ssl_data.h
  11. python -B Tools/ssl/make_ssl_data.py ../openssl-3.0.13 Modules/_ssl_data_300.h
  12. sed -i 's#$(srcdir)/Modules/_ssl_data.h ##' Makefile.pre.in
  13. sed -i 's#$(srcdir)/Modules/_ssl_data_111.h ##' Makefile.pre.in
  14. # Regenerate encodings
  15. grep generated -r . -l | grep encodings | xargs rm
  16. mkdir Tools/unicode/in Tools/unicode/out
  17. mv ../CP437.TXT Tools/unicode/in/
  18. pushd Tools/unicode
  19. python -B gencodec.py in/ ../../Lib/encodings/
  20. popd
  21. # Regenerate stringprep
  22. rm Lib/stringprep.py
  23. mv ../rfc3454.txt .
  24. python -B Tools/unicode/mkstringprep.py > Lib/stringprep.py
  25. # Regenerate unicode
  26. rm Modules/unicodedata_db.h Modules/unicodename_db.h Objects/unicodetype_db.h
  27. mkdir -p Tools/unicode/data
  28. mv ../*.txt ../*.zip Tools/unicode/data/
  29. python -B Tools/unicode/makeunicodedata.py
  30. # Regenerate Lib/re/_casefix.py
  31. rm Lib/re/_casefix.py
  32. python -B Tools/scripts/generate_re_casefix.py Lib/re/_casefix.py
  33. # Regenerate Programs/test_frozenmain.h
  34. rm Programs/test_frozenmain.h
  35. python -B Programs/freeze_test_frozenmain.py Programs/test_frozenmain.h
  36. # Create dummy Python/stdlib_module_names.h
  37. echo 'static const char* _Py_stdlib_module_names[] = {};' > Python/stdlib_module_names.h
  38. # Regenerate autoconf
  39. autoreconf-2.71 -fi
  40. }
  41. src_configure() {
  42. mv Setup.local Modules
  43. MACHDEP=linux ac_sys_system=Linux \
  44. CPPFLAGS="-U__DATE__ -U__TIME__" \
  45. PKG_CONFIG_PATH="${LIBDIR}/pkgconfig/" \
  46. ./configure \
  47. --build=i386-unknown-linux-musl \
  48. --host=i386-unknown-linux-musl \
  49. --prefix="${PREFIX}" \
  50. --libdir="${LIBDIR}" \
  51. --with-system-ffi
  52. }
  53. src_compile() {
  54. # Regenerations
  55. # We have to choose the order ourselves because the Makefile is extremely lax about the order
  56. # First of all, do everything that doesn't use any C
  57. rm Modules/_blake2/blake2s_impl.c
  58. PYTHONDONTWRITEBYTECODE=1 \
  59. make "${MAKEJOBS}" \
  60. regen-opcode \
  61. regen-opcode-targets \
  62. regen-typeslots \
  63. regen-token \
  64. regen-ast \
  65. regen-keyword \
  66. regen-sre \
  67. clinic \
  68. regen-pegen-metaparser \
  69. regen-pegen \
  70. regen-global-objects
  71. # Do the freeze regen process
  72. PYTHONDONTWRITEBYTECODE=1 make "${MAKEJOBS}" regen-frozen
  73. PYTHONDONTWRITEBYTECODE=1 make "${MAKEJOBS}" regen-deepfreeze
  74. PYTHONDONTWRITEBYTECODE=1 make "${MAKEJOBS}" regen-global-objects
  75. make "${MAKEJOBS}" CPPFLAGS="-U__DATE__ -U__TIME__"
  76. # Regen Python/stdlib_module_names.h (you must have an existing build first)
  77. PYTHONDONTWRITEBYTECODE=1 make "${MAKEJOBS}" regen-stdlib-module-names
  78. # Now rebuild with proper stdlib_module_names.h
  79. PYTHONDONTWRITEBYTECODE=1 make "${MAKEJOBS}" CPPFLAGS="-U__DATE__ -U__TIME__"
  80. }
  81. src_install() {
  82. default
  83. ln --symbolic --relative "${DESTDIR}${LIBDIR}/python3.11/lib-dynload" "${DESTDIR}${PREFIX}/lib/python3.11/lib-dynload"
  84. ln --symbolic --relative "${DESTDIR}${PREFIX}/bin/python3.11" "${DESTDIR}${PREFIX}/bin/python"
  85. }