Move some things around for the sake of gettext

Gettext needs

- gperf
- python 2.3+

to regenerate files
This commit is contained in:
Samuel Tyler 2025-12-31 17:13:23 +11:00
parent 83dae02dbf
commit cf61139126
No known key found for this signature in database
GPG key ID: EB5091A5C77E8DC4
6 changed files with 81 additions and 71 deletions

117
parts.rst
View file

@ -1074,18 +1074,6 @@ patch 2.7.6
Our old patch was built with manual makefile and used mes libc.
This is a newer version which we need in order to import gnulib into gettext.
gettext 0.21
============
GNU Gettext is an internationalization and localization system used for writing
multilingual programs.
texinfo 6.7
===========
Texinfo is a typesetting syntax used for generating documentation. We can now use
``makeinfo`` script to convert ``.texi`` files into ``.info`` documentation format.
gcc 4.7.4
=========
@ -1104,6 +1092,65 @@ This version of binutils provides a more comprehensive set of programming tools
creating and managing binary programs. It also includes modern versions of the ``ld``
linker, the ``as`` assembler and the ``ar`` program.
musl 1.2.5
==========
With GCC and binutils supporting a musl-based toolchain natively, musl itself is rebuilt
with support for dynamic linking.
python 2.0.1
============
Everything is in place to bootstrap the useful programming language/utility
Python. While Python is largely written in C, many parts of the codebase are
generated from Python scripts, which only increases as Python matured over time.
We begin with Python 2.0.1, which has minimal generated code, most of which can
be removed. Lib/{keyword,token,symbol} scripts are rewritten in C and used to
regenerate parts of the standard library. Unicode support and sre (regex)
support is stripped out.
Using the stripped-down first version of Python 2.0.1, Python 2.0.1 is rebuilt,
including Unicode and regex support (required for future Python builds). The
first version is insufficient to run the Lib/{keyword,token,symbol} scripts, so
those continue to use the C versions.
Precompiled Python code at this point is highly unreproducible, so it is
deleted (JIT compiled instead). This makes Python itself slower, but this is of
little consequence.
python 2.3.7
============
Python 2.0.1 is sufficient to build Python 2.3.7.
Differences to 2.0.1:
* The new "ast" module, performing parsing of Python, is generated from a
parsing specification using Python code.
* 2.0.1 is insufficient to run 2.3.7's unicode regeneration, so Unicode
support is again stripped out.
Python 2.3.7 is then rebuilt to include Unicode support.
gperf 3.1
=========
``gperf`` is a perfect hash function generator (hash function is injective).
gettext 0.21
============
GNU Gettext is an internationalization and localization system used for writing
multilingual programs. Now that we have Python 2.3 and gperf, we can regenerate
all the pregenerated files in Gettext and so build it.
texinfo 6.7
===========
Texinfo is a typesetting syntax used for generating documentation. We can now use
``makeinfo`` script to convert ``.texi`` files into ``.info`` documentation format.
perl 5.15.7
===========
@ -1209,11 +1256,6 @@ perl 5.42.0
5.42 is the latest version of Perl! The Perl bootstrap is complete.
gperf 3.1
=========
``gperf`` is a perfect hash function generator (hash function is injective).
libunistring 0.9.10
===================
@ -1279,47 +1321,6 @@ We use the `gnu-autogen-bootstrapping <https://github.com/schierlm/gnu-autogen-b
project to rebuild those and create (slightly crippled) ``autogen`` that
is then able to build a full-featured version.
musl 1.2.5
==========
With GCC and binutils supporting a musl-based toolchain natively, musl itself is rebuilt
with support for dynamic linking.
python 2.0.1
============
Everything is in place to bootstrap the useful programming language/utility
Python. While Python is largely written in C, many parts of the codebase are
generated from Python scripts, which only increases as Python matured over time.
We begin with Python 2.0.1, which has minimal generated code, most of which can
be removed. Lib/{keyword,token,symbol} scripts are rewritten in C and used to
regenerate parts of the standard library. Unicode support and sre (regex)
support is stripped out.
Using the stripped-down first version of Python 2.0.1, Python 2.0.1 is rebuilt,
including Unicode and regex support (required for future Python builds). The
first version is insufficient to run the Lib/{keyword,token,symbol} scripts, so
those continue to use the C versions.
Precompiled Python code at this point is highly unreproducible, so it is
deleted (JIT compiled instead). This makes Python itself slower, but this is of
little consequence.
python 2.3.7
============
Python 2.0.1 is sufficient to build Python 2.3.7.
Differences to 2.0.1:
* The new "ast" module, performing parsing of Python, is generated from a
parsing specification using Python code.
* 2.0.1 is insufficient to run 2.3.7's unicode regeneration, so Unicode
support is again stripped out.
Python 2.3.7 is then rebuilt to include Unicode support.
python 2.5.6
============

View file

@ -23,7 +23,7 @@ c5807850a377e4bb9aa4121d9781d145bdd80327626a9419630a75ce2c8d9c71 automake-1.9.6
86c58a6f3c68414ae4aa694831bd8326106c7d2dac6183470c875b0ac982be65 bash-5.2.15_0.tar.bz2
e5a0c306550ccfbea0b0e0a8ac121dfb1439759441916050778c448b02b8b301 bc-1.08.1_0.tar.bz2
6591838fbfcd64b88435cd948ebe6fcfd6c22b0993935bd0a19310e767da9e94 binutils-2.30_0.tar.bz2
e551655372836e16687ee02b14bb92ce37028c04a89b2bafaf1a90a2c692ff10 binutils-2.41_0.tar.bz2
3281578f74e40919d5c9378a766bf3ca5340840aec75b7a6441222166617017a binutils-2.41_0.tar.bz2
d5bec340bf90562db749f4dc7fead5c622eb27e439658628636bc601bfc237fa binutils-2.41_1.tar.bz2
5182bedc1c68f9908ed782dbb0a79c0a5b262fe8b1f9c6eea6d7e7186696827e bison-2.3_0.tar.bz2
b3b99ebf348f4a3ff1af29e958cab745232d3400d6604ab6ef8450538f6a0738 bison-3.4.1_0.tar.bz2
@ -58,9 +58,9 @@ cb31f4298edf591b8c27ea76f35c5c97794629187f3e08169a8ef54cc738f2fb gcc-15.2.0_0.t
d34de902de6de9204abedb834c4c39fbb95b993e545fbb090de2b028fa1d4a61 gcc-4.0.4_0.tar.bz2
2f13b3306832d882536c97d0302f2ec1801193086dbbe62388f930858e5728a3 gcc-4.0.4_1.tar.bz2
931f105104b446dff5be30927e6e98d798844e6cd446b246f30def11984a9587 gcc-4.7.4_0.tar.bz2
b1df809b03347ae8360162c512bd7589611e735638c795cc54f0f032a8439727 gettext-0.21_0.tar.bz2
21f97b2346b80ed82bf8cfb3d4f996763a9deb716797939ec4ce0b1439523776 gettext-0.26_0.tar.bz2
96f33b53c24f5f46a23c2b9eef8147e684c796889a83bdd39254a73393594a49 gmp-6.2.1_0.tar.bz2
8138c02c4fef718c97827f1d6476e2fc83433ff06eff4820b53589b5419b7e15 gperf-3.1_0.tar.bz2
8fb02e7145c2befab10bace272ef3004700b6ef0ef58d3573bd69de25e0c9e1b gperf-3.1_0.tar.bz2
c1989fc2855dbb0350c4e5b677028306614a9f4b5cb6c01fd459c5e1abf592b9 grep-2.4_0.tar.bz2
69a57d4a696f3559f821b50b9d5d4174e81801767ed8d0d00f1f3234e92ec251 grep-3.7_0.tar.bz2
d7a28778c1199604ba7af0e706c56c65fa345cae7e80646956f1be71ae30b448 grub-2.06_0.tar.bz2
@ -146,7 +146,7 @@ b3675b0d72677f30559386e1756e85a0a5065d738bb6206457a5a8d51b8bd0ce tcc-0.9.27_0.t
03454c87049198998bc2c8c2c04b7c3312551a7c233097eabc5e67a4a07bd056 tcc-0.9.27_1.tar.bz2
ab49972345d0c05f79b9370530829792e8c5c3b7fe283fc90e1dff26c2d0f6db tcc-0.9.27_2.tar.bz2
8576a7c99802bb462dd044ef7df7263192f1acfabde47462afd6145ffec1e4f1 tcc-0.9.27_3.tar.bz2
626d9b78a87a42fd68a59e0e9c67e008d9be29575628165e49e526c767f71c07 texinfo-6.7_0.tar.bz2
ac74bde2c277d6eb25125e0abfd353ad268a61b8f4a5308adfd6638046b409ac texinfo-6.7_0.tar.bz2
b54b1aa40dc08eec51982fd581a64a900e2598ba29acc6ca9c2b1b2321603b49 util-linux-2.19.1_0.tar.bz2
29572bca4d4d404cb9fa542462e3d167367448dba263970282cae11df2aa3879 which-2.21_0.tar.bz2
d7357c5a73e4a0adb07220392316185716c42003fe7e63b63ba8493f12f3621b xz-5.6.4_0.tar.bz2

View file

@ -135,13 +135,13 @@ src_configure() {
src_compile() {
make -C bfd headers
for dir in libiberty libsframe bfd opcodes libctf binutils gas gprof ld; do
make "${MAKEJOBS}" -C $dir tooldir=${PREFIX} CFLAGS="-std=c99"
make "${MAKEJOBS}" -C $dir tooldir=${PREFIX} CFLAGS="-std=c99" MAKEINFO=true
done
}
src_install() {
for dir in libiberty bfd opcodes libctf libsframe binutils gas gprof ld; do
make -C $dir tooldir=${PREFIX} DESTDIR="${DESTDIR}" install
make -C $dir tooldir=${PREFIX} DESTDIR="${DESTDIR}" MAKEINFO=true install
done
# Create triplet symlinks

View file

@ -197,7 +197,6 @@ src_configure() {
src_compile() {
ln -s . "build/build-${TARGET}"
for dir in libiberty libcpp libdecnumber gcc; do
# We have makeinfo now but it is not happy with gcc .info files, so skip it
make "${MAKEJOBS}" -C build/$dir LIBGCC2_INCLUDES=-I"${PREFIX}/include" \
STMP_FIXINC= GMPLIBS="-lmpc -lmpfr -lgmp" MAKEINFO=true
done

View file

@ -3,7 +3,7 @@
# SPDX-License-Identifier: GPL-3.0-or-later
src_prepare() {
find . -name '*.info*' -delete
find . -name '*.info*' -delete -exec touch {} +
for d in doc tests lib src; do
cd $d
@ -17,3 +17,11 @@ src_prepare() {
src_configure() {
./configure --prefix="${PREFIX}"
}
src_compile() {
make "${MAKEJOBS}" MAKEINFO=true PREFIX="${PREFIX}"
}
src_install() {
make MAKEINFO=true PREFIX="${PREFIX}" DESTDIR="${DESTDIR}" install
}

View file

@ -194,7 +194,14 @@ build: gettext-0.21
build: texinfo-6.7
build: gcc-4.7.4
build: binutils-2.41
build: musl-1.2.5
build: python-2.0.1
build: python-2.0.1
build: python-2.3.7
build: python-2.3.7
build: gperf-3.1
build: gettext-0.21
build: texinfo-6.7
build: libunistring-0.9.10
build: libffi-3.3
build: libatomic_ops-7.6.10
@ -204,11 +211,6 @@ build: which-2.21
build: grep-3.7
build: sed-4.8
build: autogen-5.18.16
build: musl-1.2.5
build: python-2.0.1
build: python-2.0.1
build: python-2.3.7
build: python-2.3.7
build: python-2.5.6
build: python-3.1.5
build: python-3.1.5