Big script

This commit is contained in:
2026-03-20 15:09:30 +01:00
parent dc2ac2f768
commit a2ca02a856
92 changed files with 5842 additions and 0 deletions

View File

@@ -2,6 +2,32 @@
---
## V46 2026-03-21 03:30:00
**Generate all Phase 3 (LFS Chapter 8) build scripts and master runner**
### Changes:
- Created 79 build scripts (101-179) covering the full LFS Chapter 8 base system:
- 101-113: Foundation packages (man-pages, iana-etc, glibc, zlib, bzip2, xz, lz4, zstd, file, readline, m4, bc, flex)
- 114-127: Test frameworks & final toolchain (tcl, expect, dejagnu, pkgconf, binutils, gmp, mpfr, mpc, attr, acl, libcap, libxcrypt, shadow, gcc)
- 128-154: Core system libraries & tools (ncurses through meson, including perl, python, openssl, libelf, libffi)
- 155-179: System utilities & final packages (kmod through sysvinit, including eudev, e2fsprogs, strip-and-cleanup)
- Created `100-chroot-env.sh`: Environment file sourced by all Phase 3 scripts, sets -march=znver5 compiler flags
- Created `100-download-phase3.sh`: Downloads ~55 additional packages not in Phase 0 download list
- Created `100-phase3-build-all.sh`: Master runner script — enters chroot and runs all 101-179 scripts in sequence with timing, logging, and resume support
- Fixed `118-binutils.sh`: Version corrected from 2.43.1 → 2.46.0 to match Phase 0 toolchain
- All scripts verified: correct `set -euo pipefail`, source env file, proper tarball names, build directory cleanup
### Plan deviation/changes:
- None — this is the expected Phase 3 deliverable per CLAUDE.md
### What is missing/needs polish:
- Scripts have not yet been executed on the real machine — first real run will likely uncover version mismatches or build failures
- The download script uses ftp.klid.dk as GNU mirror; some non-GNU packages use sourceforge/github which may be slower
- `100-phase3-build-all.sh` supports resume via argument: `sudo -E bash ... 118` to restart from script 118
---
## V45 2026-03-21 02:00:00
**Phase 0 COMPLETE — toolchain bootstrap fully operational**
@@ -1292,3 +1318,64 @@
- dwl patch compatibility assessment (which patches work together on latest dwl)
---
## V5 2026-03-20 14:55:00
**Create LFS Chapter 8 build scripts, batch 3 (packages 128-154)**
### Changes:
- Created 27 chroot build scripts for Phase 3 (inside chroot environment):
- **128-ncurses.sh** — Terminal library with wide-character support (LFS §8.31)
- **129-sed.sh** — Stream editor (LFS §8.32)
- **130-psmisc.sh** — Process utilities (killall, pstree, fuser) (LFS §8.33)
- **131-gettext.sh** — Internationalization infrastructure with msgfmt (LFS §8.34)
- **132-bison.sh** — Parser generator (LFS §8.35)
- **133-grep.sh** — Text search utility (LFS §8.36)
- **134-bash.sh** — Final bash + /bin/sh symlink creation (LFS §8.37)
- **135-libtool.sh** — Generic library support script (LFS §8.38)
- **136-gdbm.sh** — GNU database manager library (LFS §8.39)
- **137-gperf.sh** — Perfect hash function generator (LFS §8.40)
- **138-expat.sh** — XML parsing library (LFS §8.41)
- **139-inetutils.sh** — Network utilities (ping, telnet, ftp) without systemd (LFS §8.42)
- **140-less.sh** — Text pager for documentation (LFS §8.43)
- **141-perl.sh** — Final Perl interpreter with full module support (LFS §8.44)
- **142-xml-parser.sh** — Perl's XML::Parser module (LFS §8.45)
- **143-intltool.sh** — Internationalization tool suite (LFS §8.46)
- **144-autoconf.sh** — Source configuration automation (LFS §8.47)
- **145-automake.sh** — Makefile generator (LFS §8.48)
- **146-openssl.sh** — Crypto library + TLS tools (shared libs + PIC, openssl 3.5.0) (LFS §8.49)
- **147-libelf.sh** — ELF binary library from elfutils (LFS §8.50)
- **148-libffi.sh** — Foreign function interface library (LFS §8.51)
- **149-python.sh** — Python 3.13.3 final + SQLite dependency (LFS §8.52-53)
- **150-flit-core.sh** — Python PEP 517 build backend (LFS §8.54)
- **151-wheel.sh** — Python wheel format support (LFS §8.55-56)
- **152-setuptools.sh** — Python package build system (LFS §8.57)
- **153-ninja.sh** — Fast build system for Meson (LFS §8.58)
- **154-meson.sh** — Modern build system (LFS §8.59)
- All scripts follow standard pattern:
- `set -euo pipefail` for strict error handling
- Source `/sources/toolchain-scripts/100-chroot-env.sh` for znver5 flags
- `pkg_extract()` and `pkg_cleanup()` helper functions
- Proper configuration with `/usr` prefix and library paths
- Comments explaining purpose, inputs, outputs, and LFS references
- All 27 scripts pass bash syntax validation
- Scripts are executable (chmod +x)
- Package versions pinned from download manifest:
- ncurses: auto-detected; sed: 4.9; psmisc: 23.7; gettext: 1.0; bison: 3.8.2; grep: 3.12
- bash: 5.3; libtool: 2.5.4; gdbm: 1.24; gperf: 3.1; expat: 2.7.1; inetutils: 2.6
- less: 668; perl: 5.40.2; XML-Parser: 2.47; intltool: 0.51.0; autoconf: 2.72
- automake: 1.17; openssl: 3.5.0; elfutils: 0.192; libffi: 3.4.7; Python: 3.13.3
- sqlite: 3490100; flit-core: 3.11.0; wheel: 0.45.1; setuptools: 78.1.0
- ninja: 1.12.1; meson: 1.7.0
### Plan deviation/changes:
- None. Scripts follow CLAUDE.md §2 rules precisely (latest stable versions, no guessing)
### What is missing/needs polish:
- Scripts have been created but not yet tested in chroot environment
- OpenSSL symlink creation uses `||true` fallback (may need adjustment for /lib vs /lib64 paths)
- Python's pip install commands assume pip is available (may need pip bootstrap if not present)
- Some packages may require additional build dependencies not yet documented (e.g., intltool fix for deprecated Perl)
- Error handling for failed downloads could be more robust in some scripts
---