From 4200e096172fe974a742aab971c9f2d9e784af6a Mon Sep 17 00:00:00 2001 From: Bruce Dubbs Date: Tue, 4 Mar 2025 13:55:09 -0600 Subject: [PATCH 01/60] Remove old change entries and update whatsnew. --- chapter01/changelog.xml | 590 ---------------------------------------- chapter01/whatsnew.xml | 200 +++++++------- 2 files changed, 100 insertions(+), 690 deletions(-) diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml index 7780b3dc9..abcf7c7cf 100644 --- a/chapter01/changelog.xml +++ b/chapter01/changelog.xml @@ -50,595 +50,5 @@ - - 2025-02-27 - - - [bdubbs] - Update to zstd-1.5.7. Fixes - #5652. - - - [bdubbs] - Update to systemd-257.3. Fixes - #5612. - - - [bdubbs] - Update to shadow-4.17.3. Fixes - #5660. - - - [bdubbs] - Update to setuptools-75.8.1. Fixes - #5662. - - - [bdubbs] - Update to linux-6.13.4. Fixes - #5647. - - - [bdubbs] - Update to kmod-34. Fixes - #5657. - - - [bdubbs] - Update to inetutils-2.6. Fixes - #5656. - - - [bdubbs] - Update to gettext-0.24. Fixes - #5661. - - - [bdubbs] - Update to flit_core-3.11.0. Fixes - #5654. - - - - - - 2025-02-24 - - - [bdubbs] - Update to man-pages-6.12. Fixes - #5658. - - - - - - 2025-02-19 - - - [xry111] - Update to vim-9.1.1122 (Security Update). - Addresses #4500. - - - [xry111] - Update to man-pages-6.11. Fixes - #5646. - - - - - - 2025-02-13 - - - [bdubbs] - Update to vim-9.1.1106. Addresses - #4500. - - - [bdubbs] - Update to diffutils-3.11. Fixes - #5639. - - - [bdubbs] - Update to libffi-3.4.7. Fixes - #5642. - - - [bdubbs] - Update to linux-6.13.2. Fixes - #5643. - - - [bdubbs] - Update to Python3-3.13.2. Fixes - #5640. - - - [bdubbs] - Update to sysvinit-3.14. Fixes - #5641. - - - - - - 2025-02-02 - - - [bdubbs] - Update to vim-9.1.1071. Addresses - #4500. - - - [bdubbs] - Update to iana-etc-20250123. Addresses - #5006. - - - [bdubbs] - Update to binutils-2.44.0. Fixes - #5634. - - - [bdubbs] - Update to coreutils-9.6. Fixes - #5628. - - - [bdubbs] - Update to e2fsprogs-1.47.2. Fixes - #5637. - - - [bdubbs] - Update to glibc-2.41. Fixes - #5638. - - - [bdubbs] - Update to iproute2-6.13.0. Fixes - #5631. - - - [bdubbs] - Update to libxcrypt-4.4.38. Fixes - #5626. - - - [bdubbs] - Update to linux-6.13.1. Fixes - #5629. - - - [bdubbs] - Update to man-pages-6.10. Fixes - #5632. - - - [bdubbs] - Update to meson-1.7.0. Fixes - #5636. - - - [bdubbs] - Update to perl-5.40.1. Fixes - #5630. - - - [bdubbs] - Update to tcl8.6.16. Fixes - #5635. - - - [bdubbs] - Update to tzdata2025a. Fixes - #5627. - - - [bdubbs] - Update to xz-5.6.4. Fixes - #5633. - - - - - - 2025-01-15 - - - [bdubbs] - Update to vim-9.1.1016. Addresses - #4500. - - - [bdubbs] - Update to iana-etc-20250108. Addresses - #5006. - - - [bdubbs] - Update to util-linux-2.40.4. Fixes - #5624. - - - [bdubbs] - Update to sysvinit-3.13. Fixes - #5621. - - - [bdubbs] - Update to sysklogd-2.7.0. Fixes - #5623. - - - [bdubbs] - Update to shadow-4.17.2. Fixes - #5625. - - - [bdubbs] - Update to setuptools-75.8.0. Fixes - #5622. - - - [bdubbs] - Update to linux-6.12.9. Fixes - #5620. - - - [bdubbs] - Update to gettext-0.23.1. Fixes - #5619. - - - - - - 2025-01-01 - - - [renodr] - Update to libxcrypt-4.4.37. Fixes - #5618. - - - [renodr] - Update to dbus-1.16.0. Fixes - #5609. - - - [bdubbs] - Update to iana-etc-20241220. Addresses - #5006. - - - [bdubbs] - Update to texinfo-7.2. Fixes - #5616. - - - [bdubbs] - Update to sysvinit-3.12. Fixes - #5615. - - - [bdubbs] - Update to shadow-4.17.1. Fixes - #5617. - - - [bdubbs] - Update to procps-ng-4.0.5. Fixes - #5611. - - - [bdubbs] - Update to meson-1.6.1. Fixes - #5610. - - - [bdubbs] - Update to linux-6.12.7. Fixes - #5613. - - - [bdubbs] - Update to kbd-2.7.1. Fixes - #5608. - - - [bdubbs] - Update to jinja2-3.1.5 (Security Update). Fixes - #5614. - - - - - - 2024-12-15 - - - [bdubbs] - Update to vim-9.1.0927. Addresses - #4500. - - - [bdubbs] - Update to iana-etc-20241206. Addresses - #5006. - - - [bdubbs] - Update to systemd-257. Fixes - #5559. - - - [bdubbs] - Update to Python-3.13.1 (Security Update). Fixes - #5605. - - - [bdubbs] - Update to libcap-2.73. Fixes - #5604. - - - [bdubbs] - Update to linux-6.12.5. Fixes - #5607. - - - [bdubbs] - Update to kbd-2.7. Fixes - #5608. - - - [bdubbs] - Update to gettext-0.23. Fixes - #5603. - - - - - - 2024-12-01 - - - [bdubbs] - Update to iana-etc-20241122. Addresses - #5006. - - - [bdubbs] - Update to file-5.46. Fixes - #5601. - - - [bdubbs] - Update to iproute2-6.12.0. Fixes - #5597. - - - [bdubbs] - Update to libtool-2.5.4. Fixes - #5598. - - - [bdubbs] - Update to linux-6.12.1. Fixes - #5586. - - - [bdubbs] - Update to setuptools-75.6.0 (Python Module). Fixes - #5599. - - - [bdubbs] - Update to wheel-0.45.1 (Python Module). Fixes - #5600. - - - - - - 2024-11-15 - - - [bdubbs] - Update to vim-9.1.0866. Addresses - #4500. - - - [bdubbs] - Update to iana-etc-20241024. Addresses - #5006. - - - [bdubbs] - Update to wheel-0.45.0 (Python Module). Fixes - #5593. - - - [bdubbs] - Update to setuptools-75.5.0 (Python Module). Fixes - #5595. - - - [bdubbs] - Update to linux-6.11.8. Fixes - #5582. - - - [bdubbs] - Update to libcap-2.72. Fixes - #5594. - - - - - - 2024-11-08 - - - [bdubbs] - Added binutils-2.43.1-upstream_fix-1.patch. Fixes - #5591. - - - [bdubbs] - Update to flit_core-3.10.1. Fixes - #5589. - - - [bdubbs] - Update to expat-2.6.4. Fixes - #5590. - - - - - - 2024-10-25 - - - [bdubbs] - Update to linux-6.11.6. Fixes - #5588. - - - [bdubbs] - Update to libcap-2.71. Fixes - #5584. - - - [bdubbs] - Update to setuptools-75.3.0. Fixes - #5585. - - - [bdubbs] - Update to flit_core-3.10.0. Fixes - #5587. - - - - - - 2024-10-25 - - - [bdubbs] - Update to iana-etc-20241015. Addresses - #5006. - - - [bdubbs] - Update to vim-9.1.0813. Addresses - #4500. - - - [bdubbs] - Update to xz-5.6.3. Fixes - #5572. - - - [bdubbs] - Update to sysvinit-3.11. Fixes - #5581. - - - [bdubbs] - Update to setuptools-75.2.0. Fixes - #5577. - - - [bdubbs] - Update to Python3-3.13.0. Fixes - #5575. - - - [bdubbs] - Update to openssl-3.4.0. Fixes - #5582. - - - [bdubbs] - Update to meson-1.6.0. Fixes - #5580. - - - [bdubbs] - Update to markupsafe-3.0.2. Fixes - #5576. - - - [bdubbs] - Update to linux-6.11.5. Fixes - #5574. - - - [bdubbs] - Update to less-668. Fixes - #5578. - - - [bdubbs] - Update to elfutils-0.192. Fixes - #5579. - - - - - - 2024-10-03 - - - [bdubbs] - Revert back to tcl8.6.15. - - - - - - 2024-10-01 - - - [bdubbs] - Update to Python3-3.12.7. Fixes - #5571. - - - [bdubbs] - Update to tcl9.0.0. Fixes - #5570. - - - [bdubbs] - Update to linux-6.11.1. Fixes - #5556. - - - [bdubbs] - Update to libtool-2.5.3. Fixes - #5569. - - - [bdubbs] - Update to iproute2-6.11.0. Fixes - #5561. - - - [bdubbs] - Update to bash-5.2.37. Fixes - #5567. - - - [bdubbs] - Update to bc-7.0.3. Fixes - #5568. - - - - - - 2024-09-20 - - - [bdubbs] - Update to vim-9.1.0738. Addresses - #4500. - - - [bdubbs] - Update to texinfo-7.1.1. Fixes - #5558. - - - [bdubbs] - Update to tcl8.6.15. Fixes - #5562. - - - [bdubbs] - Update to sysklogd-2.6.2. Fixes - #5557. - - - [bdubbs] - Update to setuptools-75.1.0. Fixes - #5560. - - - [bdubbs] - Update to meson-1.5.2. Fixes - #5566. - - - [bdubbs] - Update to iana-etc-20240912. Addresses - #5006. - - - [bdubbs] - Update to gawk-5.3.1. Fixes - #5564. - - - [bdubbs] - Update to bc-7.0.2. Fixes - #5563. - - - - - - 2024-09-07 - - - [bdubbs] - Update to tzdata-2024b. Fixes - #5554. - - - [bdubbs] - Update to systemd-256.5. Fixes - #5551. - - - [bdubbs] - Update to setuptools-74.1.2. Fixes - #5546. - - - [bdubbs] - Update to python3-3.12.6. Fixes - #5555. - - - [bdubbs] - Update to openssl-3.3.2. Fixes - #5552. - - - [bdubbs] - Update to man-db-2.13.0. Fixes - #5550. - - - [bdubbs] - Update to linux-6.10.8. Fixes - #5545. - - - [bdubbs] - Update to libpipeline-1.5.8. Fixes - #5548. - - - [bdubbs] - Update to expat-2.6.3. Fixes - #5553. - - - [bdubbs] - Update to bc-7.0.1. Fixes - #5547. - - - - - - 2024-09-01 - - - [bdubbs] - LFS-12.2 released. - - - - diff --git a/chapter01/whatsnew.xml b/chapter01/whatsnew.xml index 16f23520d..5e2092d84 100644 --- a/chapter01/whatsnew.xml +++ b/chapter01/whatsnew.xml @@ -23,9 +23,9 @@ Upgraded to: - + @@ -38,15 +38,15 @@ - + + + @@ -56,54 +56,54 @@ - + - + + + + - + - + + - + + @@ -122,54 +122,54 @@ - + + - + + + + + - + + + + + + + @@ -179,18 +179,18 @@ - + + + + @@ -203,84 +203,84 @@ - + - + - + - + - + + + + + - + + + + + + + - + - + - 2025-03-02 + 2025-03-05 - [bdubbs] - Update to vim-9.1.1166 (Security Update). Fixes - #5666. + [bdubbs] - LFS-12.3 released. diff --git a/chapter10/fstab.xml b/chapter10/fstab.xml index ad835be30..8eb314b87 100644 --- a/chapter10/fstab.xml +++ b/chapter10/fstab.xml @@ -108,6 +108,8 @@ EOF Default iocharset for FAT (). There is no way to specify these settings for the ntfs filesystem at kernel compilation time. + diff --git a/general.ent b/general.ent index b3bce5ae8..09c98f613 100644 --- a/general.ent +++ b/general.ent @@ -7,9 +7,9 @@ - - - + + + From ed2611fa6fec142b9c4a87dd7b21b8a3b28a877b Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Thu, 6 Mar 2025 12:55:07 +0800 Subject: [PATCH 03/60] glibc: Remove ja_JP.SJIS (#5669) --- chapter08/glibc.xml | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/chapter08/glibc.xml b/chapter08/glibc.xml index c803d0c07..a04bc8ac3 100644 --- a/chapter08/glibc.xml +++ b/chapter08/glibc.xml @@ -393,7 +393,6 @@ localedef -i it_IT -f ISO-8859-1 it_IT localedef -i it_IT -f ISO-8859-15 it_IT@euro localedef -i it_IT -f UTF-8 it_IT.UTF-8 localedef -i ja_JP -f EUC-JP ja_JP -localedef -i ja_JP -f SHIFT_JIS ja_JP.SJIS 2> /dev/null || true localedef -i ja_JP -f UTF-8 ja_JP.UTF-8 localedef -i nl_NL@euro -f ISO-8859-15 nl_NL@euro localedef -i ru_RU -f KOI8-R ru_RU.KOI8-R @@ -415,15 +414,6 @@ localedef -i zh_TW -f UTF-8 zh_TW.UTF-8 make localedata/install-locales - Then use the localedef command to create and - install locales not listed in the - glibc-&glibc-version;/localedata/SUPPORTED file - when you need them. For instance, the following two locales are - needed for some tests later in this chapter: - -localedef -i C -f UTF-8 C.UTF-8 -localedef -i ja_JP -f SHIFT_JIS ja_JP.SJIS 2> /dev/null || true - Glibc now uses libidn2 when resolving internationalized domain names. This is a run time dependency. If this capability is needed, the instructions for installing libidn2 are in the From a2bf74a9b5ec941a61974490ae40e247f2db2e58 Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Sun, 9 Mar 2025 13:08:32 +0800 Subject: [PATCH 04/60] More info about "deploying LFS" --- chapter08/libffi.xml | 7 +++++-- chapter08/pkgmgt.xml | 12 +++++++----- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/chapter08/libffi.xml b/chapter08/libffi.xml index 40af81288..f15d08b07 100644 --- a/chapter08/libffi.xml +++ b/chapter08/libffi.xml @@ -51,11 +51,14 @@ Like GMP, Libffi builds with optimizations specific to the processor in use. If building for another system, change the value of the --with-gcc-arch= parameter in the - following command to an architecture name fully implemented by the + following command to an architecture name fully implemented by + both the host CPU and the CPU on that system. If this is not done, all applications that link to libffi will trigger - Illegal Operation Errors. + Illegal Operation Errors. If you cannot figure out a value + safe for both the CPUs, replace the parameter with + to produce a generic library. Prepare Libffi for compilation: diff --git a/chapter08/pkgmgt.xml b/chapter08/pkgmgt.xml index 10ec5d199..7cda95755 100644 --- a/chapter08/pkgmgt.xml +++ b/chapter08/pkgmgt.xml @@ -370,11 +370,13 @@ make DESTDIR=/usr/pkg/libfoo/1.1 install differences in system hardware and the original kernel configuration. - There have been some reports of issues when copying between - similar but not identical architectures. For instance, the instruction set - for an Intel system is not identical with the AMD processor's instructions, and later - versions of some processors may provide instructions that are unavailable with - earlier versions. + If you want to deploy the LFS system onto a system + with a different CPU, when you build and + you must follow the notes about + overriding the architecture-specific optimization to produce libraries + suitable for both the host system and the system(s) where you'll deploy + the LFS system. Otherwise you'll get Illegal + Instruction errors running LFS. Finally, the new system has to be made bootable via . From e2789b4c66f9e762fb826e6abc24d68e6c2086bb Mon Sep 17 00:00:00 2001 From: Pierre Labastie Date: Tue, 11 Mar 2025 15:45:14 +0100 Subject: [PATCH 05/60] stylesheets: fix generation of footnotes There was two problems: - the sect1 template did not process the footnote - footnote processing needed to use a template matching footnote/para[1], but we had a template matching para at a higher precendence level. So: - call process.footnotes at the end of the sect1 template - Add a templates matching footnote/para[1] at the same import level as the template matching para (this just call the original template) We also add a priority 1 to the sect1 template in chunk-code.xsl, although it is not strictly necessary. This is what upstream recommends... --- stylesheets/lfs-xsl/chunk-master.xsl | 8 ++++++-- stylesheets/lfs-xsl/xhtml/lfs-mixed.xsl | 10 ++++++++++ stylesheets/lfs-xsl/xhtml/lfs-sections.xsl | 2 +- 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/stylesheets/lfs-xsl/chunk-master.xsl b/stylesheets/lfs-xsl/chunk-master.xsl index 029332162..b353e75ca 100644 --- a/stylesheets/lfs-xsl/chunk-master.xsl +++ b/stylesheets/lfs-xsl/chunk-master.xsl @@ -27,8 +27,12 @@ Prevent creation of dummy sect1 files used to emulate sub-chapters. The original template is in {docbook-xsl}/xhtml/chunk-code.xsl It also matches other sect* tags. The code for those tags are - unchanged. --> - + unchanged. Note that the priority attribute is not strictly + required, because the original template is less restrictive in + matching, so has less precedence. But in case the docbook dev + add a match="sect1" template in their chunk-code.xsl, then it will + be necessary!--> + diff --git a/stylesheets/lfs-xsl/xhtml/lfs-mixed.xsl b/stylesheets/lfs-xsl/xhtml/lfs-mixed.xsl index 59859c12e..d33cd4f12 100644 --- a/stylesheets/lfs-xsl/xhtml/lfs-mixed.xsl +++ b/stylesheets/lfs-xsl/xhtml/lfs-mixed.xsl @@ -43,6 +43,16 @@ + + + + + + diff --git a/stylesheets/lfs-xsl/xhtml/lfs-sections.xsl b/stylesheets/lfs-xsl/xhtml/lfs-sections.xsl index b13e5e11b..0ecfaa4f6 100644 --- a/stylesheets/lfs-xsl/xhtml/lfs-sections.xsl +++ b/stylesheets/lfs-xsl/xhtml/lfs-sections.xsl @@ -166,7 +166,7 @@ - + From 42eaacedbc6ab598b0e4b1a86650f630e64195a7 Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Wed, 12 Mar 2025 20:55:50 +0800 Subject: [PATCH 06/60] pkgmgmt: Add the definition of "library name" as a footnote --- chapter08/pkgmgt.xml | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/chapter08/pkgmgt.xml b/chapter08/pkgmgt.xml index 7cda95755..3640b519d 100644 --- a/chapter08/pkgmgt.xml +++ b/chapter08/pkgmgt.xml @@ -69,10 +69,25 @@ If a package containing a shared library is updated, and - if the name of the library changes, then any packages dynamically + if the name of the libraryThe name of a shared library is + the string coded in the DT_SONAME entry of its + ELF dynamic section. You can get it with the + readelf -d <library file> + | grep SONAME command. In most cases it's suffixed with + .so.<a version + number>, but there are some cases where + it contains multiple numbers for versioning (like + libbz2.so.1.0), contains the version number + before the .so suffix (like + libbfd-&binutils-version;), or does not contain + any version number at all (for example + libmemusage.so). + Generally there is no correlation between the package version and the + version number(s) in the library name. + changes, then any packages dynamically linked to the library must be recompiled, to link against the - newer library. (Note that there is no correlation between the package - version and the name of the library.) For example, consider a package + newer library. + For example, consider a package foo-1.2.3 that installs a shared library with the name libfoo.so.1. Suppose you upgrade the package to a newer version foo-1.2.4 that installs a shared library with the name From 461741b243906ffc0140fe07971cc9345c87337b Mon Sep 17 00:00:00 2001 From: Bruce Dubbs Date: Fri, 14 Mar 2025 15:53:55 -0500 Subject: [PATCH 07/60] Update packages for mid-March 2025. Update to vim-9.1.1202. Update to iana-etc-20250304. Update to sysklogd-2.7.1. Update to setuptools-76.0.0. Update to pkgconf-2.4.3. Update to man-pages-6.13. Update to linux-6.13.7. Update to libcap-2.75. Update to kmod-34.1. Update to jinja2-3.1.6. Update to expat-2.7.0. Update to dbus-1.16.2. --- chapter01/changelog.xml | 54 ++++++++++++++++++++++++++++++++ chapter01/whatsnew.xml | 48 ++++++++++++++--------------- packages.ent | 68 ++++++++++++++++++++--------------------- 3 files changed, 112 insertions(+), 58 deletions(-) diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml index a9b74d0dc..ebd5fb27e 100644 --- a/chapter01/changelog.xml +++ b/chapter01/changelog.xml @@ -40,6 +40,60 @@ appropriate for the entry or if needed the entire day's listitem. --> + + 2025-03-15 + + + [bdubbs] - Update to vim-9.1.1202. Addresses + #4500. + + + [bdubbs] - Update to iana-etc-20250304. Addresses + #5006. + + + [bdubbs] - Update to sysklogd-2.7.1. Fixes + #5668. + + + [bdubbs] - Update to setuptools-76.0.0. Fixes + #5665. + + + [bdubbs] - Update to pkgconf-2.4.3. Fixes + #5672. + + + [bdubbs] - Update to man-pages-6.13. Fixes + #5673. + + + [bdubbs] - Update to linux-6.13.7. Fixes + #5664. + + + [bdubbs] - Update to libcap-2.75. Fixes + #5667. + + + [bdubbs] - Update to kmod-34.1. Fixes + #5671. + + + [bdubbs] - Update to jinja2-3.1.6. Fixes + #5670. + + + [bdubbs] - Update to expat-2.7.0. Fixes + #5675. + + + [bdubbs] - Update to dbus-1.16.2. Fixes + #5663. + + + + 2025-03-05 diff --git a/chapter01/whatsnew.xml b/chapter01/whatsnew.xml index 5e2092d84..ef204b334 100644 --- a/chapter01/whatsnew.xml +++ b/chapter01/whatsnew.xml @@ -62,18 +62,18 @@ - + - + @@ -122,9 +122,9 @@ - + @@ -134,24 +134,24 @@ - + - + - + @@ -167,9 +167,9 @@ - + @@ -182,9 +182,9 @@ - + @@ -212,9 +212,9 @@ - + @@ -230,15 +230,15 @@ - + - + @@ -263,9 +263,9 @@ - + diff --git a/packages.ent b/packages.ent index 48fff096f..97867ab5d 100644 --- a/packages.ent +++ b/packages.ent @@ -114,10 +114,10 @@ - - + + - + @@ -156,10 +156,10 @@ - - + + - + @@ -317,10 +317,10 @@ - + - + @@ -349,10 +349,10 @@ - - + + - + @@ -365,10 +365,10 @@ - + - + @@ -389,10 +389,10 @@ - - + + - + @@ -431,12 +431,12 @@ - + - + - + - + - + From a4b4001f03dfa961ac882d399ed44bd603e40ea6 Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Sat, 15 Mar 2025 21:50:05 +0800 Subject: [PATCH 08/60] changelog: Add revision attributes for sysklogd and dbus --- chapter01/changelog.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml index ebd5fb27e..8e1f81ddf 100644 --- a/chapter01/changelog.xml +++ b/chapter01/changelog.xml @@ -51,7 +51,7 @@ [bdubbs] - Update to iana-etc-20250304. Addresses #5006. - + [bdubbs] - Update to sysklogd-2.7.1. Fixes #5668. @@ -87,7 +87,7 @@ [bdubbs] - Update to expat-2.7.0. Fixes #5675. - + [bdubbs] - Update to dbus-1.16.2. Fixes #5663. From 7cd3a3fec1d45a46bd92f3485d23d1b777f0887a Mon Sep 17 00:00:00 2001 From: Pierre Labastie Date: Sat, 15 Mar 2025 08:19:35 +0100 Subject: [PATCH 09/60] Fix displaying note numbers also in pdf --- stylesheets/lfs-xsl/pdf/lfs-mixed.xsl | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/stylesheets/lfs-xsl/pdf/lfs-mixed.xsl b/stylesheets/lfs-xsl/pdf/lfs-mixed.xsl index 834b7057c..8f5576d9f 100644 --- a/stylesheets/lfs-xsl/pdf/lfs-mixed.xsl +++ b/stylesheets/lfs-xsl/pdf/lfs-mixed.xsl @@ -80,6 +80,16 @@ + + + + + + + 2025-04-01 + + + [bdubbs] - Update to vim-9.1.1263. Addresses + #4500. + + + [bdubbs] - Update to iana-etc-20250328. Addresses + #5006. + + + [bdubbs] - Update to xz-5.8.0. Fixes + #5684. + + + [bdubbs] - Update to util-linux-2.41. Fixes + #5648. + + + [bdubbs] - Update to tzdata-2025b. Fixes + #5681. + + + [bdubbs] - Update to shadow-4.17.4. Fixes + #5678. + + + [bdubbs] - Update to setuptools-78.1.0. Fixes + #5676. + + + [bdubbs] - Update to patch-2.8. Fixes + #5689. + + + [bdubbs] - Update to mpfr-4.2.2. Fixes + #5677. + + + [bdubbs] - Update to kmod-34.2. Fixes + #5688. + + + [bdubbs] - Update to gdbm-1.25. Fixes + #5679. + + + [bdubbs] - Update to flit_core-3.12.0. Fixes + #5683. + + + [bdubbs] - Update to expat-2.7.1. Fixes + #5685. + + + 2025-03-15 diff --git a/chapter01/whatsnew.xml b/chapter01/whatsnew.xml index ef204b334..3e3591edb 100644 --- a/chapter01/whatsnew.xml +++ b/chapter01/whatsnew.xml @@ -86,18 +86,18 @@ - + - + @@ -194,9 +194,9 @@ - + @@ -206,9 +206,9 @@ - + @@ -233,9 +233,9 @@ Setuptools-&setuptools-version; - + Sysklogd-&sysklogd-version; @@ -254,15 +254,15 @@ - + - + Vim-&vim-version; @@ -272,9 +272,9 @@ - + diff --git a/chapter08/gcc.xml b/chapter08/gcc.xml index 763f55ced..1cc918234 100644 --- a/chapter08/gcc.xml +++ b/chapter08/gcc.xml @@ -223,7 +223,7 @@ su tester -c "PATH=$PATH make -k check" that compiling and linking will work as expected. We do this by performing some sanity checks: -echo 'int main(){}' | cc dummy.c -x c - -v -Wl,--verbose &> dummy.log +echo 'int main(){}' | cc -x c - -v -Wl,--verbose &> dummy.log readelf -l a.out | grep ': /lib' There should be no errors, diff --git a/packages.ent b/packages.ent index 97867ab5d..cd692a8c8 100644 --- a/packages.ent +++ b/packages.ent @@ -61,7 +61,7 @@ - + @@ -156,10 +156,10 @@ - - + + - + @@ -200,10 +200,10 @@ - - + + - + @@ -237,10 +237,10 @@ - - + + - + @@ -317,10 +317,10 @@ - - + + - + @@ -365,10 +365,10 @@ - - + + - + @@ -519,10 +519,10 @@ - - + + - + @@ -553,10 +553,10 @@ - - + + - + @@ -637,18 +637,18 @@ - - + + - + - - + + - + @@ -719,10 +719,10 @@ - - + + - + @@ -733,21 +733,21 @@ - - - + + + - + - + - + - + @@ -782,10 +782,10 @@ - - + + - + From d116c1bdb0c8e2fa18245dbe1adc8df2e0d1b27a Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Wed, 2 Apr 2025 17:55:34 +0800 Subject: [PATCH 18/60] whatsnew: Align flit-core entry with the package page title --- chapter01/whatsnew.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chapter01/whatsnew.xml b/chapter01/whatsnew.xml index 3e3591edb..7610363a6 100644 --- a/chapter01/whatsnew.xml +++ b/chapter01/whatsnew.xml @@ -87,7 +87,7 @@ Flex-&flex-version; --> - Flit-core-&flit-core-version; + Flit-Core-&flit-core-version; - + From 7ea7a3b3d32750e8beb52d6fa7cc36d6cd7457f6 Mon Sep 17 00:00:00 2001 From: Bruce Dubbs Date: Tue, 8 Apr 2025 12:50:25 -0500 Subject: [PATCH 21/60] Change expat url and fix a grammar issue. --- packages.ent | 2 +- part3intro/toolchaintechnotes.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages.ent b/packages.ent index cd692a8c8..5dbbfed1a 100644 --- a/packages.ent +++ b/packages.ent @@ -158,7 +158,7 @@ - + diff --git a/part3intro/toolchaintechnotes.xml b/part3intro/toolchaintechnotes.xml index 0d3c66b55..2239b2c7a 100644 --- a/part3intro/toolchaintechnotes.xml +++ b/part3intro/toolchaintechnotes.xml @@ -242,7 +242,7 @@ The build system should not attempt to run any generated machine code supposed to be executed on the host. For - example, when building an utility natively, its man page can be + example, when building a utility natively, its man page can be generated by running the utility with the --help switch and processing the output, but generally it's not possible to do so for a cross-compilation From 32a9d4b35bc4486cfc970301a24af64f2476cdc4 Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Thu, 3 Apr 2025 11:33:20 +0800 Subject: [PATCH 22/60] Remove check (#5650) --- appendices/dependencies.xml | 43 -------------- chapter01/whatsnew.xml | 9 +-- chapter03/packages.xml | 9 --- chapter08/chapter08.xml | 1 - chapter08/check.xml | 109 ------------------------------------ lfs-latest-git.php | 1 - packages.ent | 8 --- 7 files changed, 3 insertions(+), 177 deletions(-) delete mode 100644 chapter08/check.xml diff --git a/appendices/dependencies.xml b/appendices/dependencies.xml index 84dc75acd..4ba8d13c4 100644 --- a/appendices/dependencies.xml +++ b/appendices/dependencies.xml @@ -399,49 +399,6 @@ - - Check - - - &dependencies; - - Gawk, GCC, Grep, Make, Sed, and Texinfo - - - - - &runtime; - - Bash and Gawk - - - - - &testsuites; - - None - - - - - &before; - - None - - - - - &external; - - - libsubunit - and - - patchutils - - - - Coreutils diff --git a/chapter01/whatsnew.xml b/chapter01/whatsnew.xml index b8ff551d3..8e1bec99c 100644 --- a/chapter01/whatsnew.xml +++ b/chapter01/whatsnew.xml @@ -305,12 +305,9 @@ Removed: - - + + Check-0.15.2 + diff --git a/chapter03/packages.xml b/chapter03/packages.xml index d58002ad2..2b3dbd9e7 100644 --- a/chapter03/packages.xml +++ b/chapter03/packages.xml @@ -110,15 +110,6 @@ - - Check (&check-version;) - &check-size;: - - Home page: - Download: - MD5 sum: &check-md5; - - - Coreutils (&coreutils-version;) - &coreutils-size;: diff --git a/chapter08/chapter08.xml b/chapter08/chapter08.xml index 85589c3be..cb13689e7 100644 --- a/chapter08/chapter08.xml +++ b/chapter08/chapter08.xml @@ -70,7 +70,6 @@ - diff --git a/chapter08/check.xml b/chapter08/check.xml deleted file mode 100644 index 1000aaa68..000000000 --- a/chapter08/check.xml +++ /dev/null @@ -1,109 +0,0 @@ - - - %general-entities; -]> - - - - - - check - &check-version; -
&check-url;
-
- - Check-&check-version; - - - Check - - - - - - <para>Check is a unit testing framework for C.</para> - - <segmentedlist> - <segtitle>&buildtime;</segtitle> - <segtitle>&diskspace;</segtitle> - - <seglistitem> - <seg>&check-fin-sbu;</seg> - <seg>&check-fin-du;</seg> - </seglistitem> - </segmentedlist> - - </sect2> - - <sect2 role="installation"> - <title>Installation of Check - - Prepare Check for compilation: - -./configure --prefix=/usr --disable-static - - Build the package: - -make - - Compilation is now complete. To run the Check test suite, issue the - following command: - -make check - - - Install the package: - - make docdir=/usr/share/doc/check-&check-version; install - - - - - Contents of Check - - - Installed program - Installed library - - - checkmk - libcheck.so - - - - - Short Descriptions - - - - - checkmk - - Awk script for generating C unit tests for use with the Check - unit testing framework - - checkmk - - - - - - libcheck.so - - Contains functions that allow Check to be called from a test - program - - libcheck - - - - - - - - -
diff --git a/lfs-latest-git.php b/lfs-latest-git.php index f189871eb..d8da03ef5 100644 --- a/lfs-latest-git.php +++ b/lfs-latest-git.php @@ -118,7 +118,6 @@ function get_packages( $package, $dirpath ) //if ( $package != "wheel" ) return 0; // debug if ( $package == "bc" ) $dirpath = github("gavinhoward/bc"); -if ( $package == "check" ) $dirpath = github("libcheck/check"); if ( $package == "e2fsprogs" ) $dirpath = "https://sourceforge.net/projects/e2fsprogs/files/e2fsprogs"; if ( $package == "expat" ) $dirpath = "https://sourceforge.net/projects/expat/files"; if ( $package == "elfutils" ) $dirpath = "https://sourceware.org/ftp/elfutils"; diff --git a/packages.ent b/packages.ent index 5dbbfed1a..c5d645e4c 100644 --- a/packages.ent +++ b/packages.ent @@ -96,14 +96,6 @@ - - - - - - - - From f3e6b8964f8b83146b57083a7d70a1e274f9f10d Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Fri, 4 Apr 2025 15:44:07 +0800 Subject: [PATCH 23/60] make: Remove --without-guile from chapter 6 This seems just a remnant from the pre-cross-chap5 era. Now with the cross- toolchain the build system cannot find guile headers and libraries, thus guile should be disabled by default. I've also tried this on a host distro with guile installed. --- chapter06/make.xml | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/chapter06/make.xml b/chapter06/make.xml index eaf0db48f..3d3ca9b38 100644 --- a/chapter06/make.xml +++ b/chapter06/make.xml @@ -45,23 +45,9 @@ Prepare Make for compilation: ./configure --prefix=/usr \ - --without-guile \ --host=$LFS_TGT \ --build=$(build-aux/config.guess) - - The meaning of the new configure option: - - - --without-guile - - Although we are cross-compiling, configure tries to use - guile from the build host if it finds it. This makes compilation - fail, so this switch prevents using it. - - - - Compile the package: make From d470cdb21ca21afb19ec38fa587ef9da90daa99b Mon Sep 17 00:00:00 2001 From: Bruce Dubbs Date: Mon, 14 Apr 2025 13:10:11 -0500 Subject: [PATCH 24/60] Package updates. Update to libcap-2.76. Update to perl-5.40.2 (Security update). Add packaging-24.2 (Python module). Needed for wheel. Update to xz-5.8.1. Update to wheel-0.46.1 (Python Module). Update to sysklogd-2.7.2. Update to Python3-3.13.3. Update to openssl-3.5.0. Update to meson-1.7.2. Update to linux-6.14.2. Update to libffi-3.4.8. Update to iproute2-6.14.0. Update to gzip-1.14. Update to grep-3.12. Update to gperf-3.2.1. Update to gawk-5.3.2. Update to diffutils-3.12. Update to coreutils-9.7. --- appendices/dependencies.xml | 42 ++++++++++++- chapter01/changelog.xml | 78 ++++++++++++++++++++++++ chapter01/whatsnew.xml | 61 +++++++++---------- chapter03/packages.xml | 9 +++ chapter06/diffutils.xml | 6 ++ chapter08/chapter08.xml | 1 + chapter08/packaging.xml | 76 +++++++++++++++++++++++ packages.ent | 116 +++++++++++++++++++----------------- patches.ent | 4 +- 9 files changed, 304 insertions(+), 89 deletions(-) create mode 100644 chapter08/packaging.xml diff --git a/appendices/dependencies.xml b/appendices/dependencies.xml index 4ba8d13c4..a8675a805 100644 --- a/appendices/dependencies.xml +++ b/appendices/dependencies.xml @@ -2416,6 +2416,46 @@ + + Packaging + + + &dependencies; + + Python + + + + + &runtime; + + Python + + + + + &testsuites; + + No test suite available + + + + + &before; + + Wheel + + + + + &external; + + + pytest + + + + Patch @@ -3269,7 +3309,7 @@ &dependencies; - Python and Flit-core + Python, Flit-core, and packaging diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml index 91d4de3e3..1ac0d51b7 100644 --- a/chapter01/changelog.xml +++ b/chapter01/changelog.xml @@ -39,6 +39,84 @@ or as appropriate for the entry or if needed the entire day's listitem. --> + + 2025-04-15 + + + [bdubbs] - Update to libcap-2.76. Fixes + #5704. + + + [bdubbs] - Update to perl-5.40.2 (Security update). Fixes + #5703. + + + [bdubbs] - Add packaging-24.2 (Python module). Needed for wheel. + + + + [bdubbs] - Update to xz-5.8.1. Fixes + #5694. + + + [bdubbs] - Update to wheel-0.46.1 (Python Module). Fixes + #5693. + + + [bdubbs] - Update to sysklogd-2.7.2. Fixes + #5690. + + + [bdubbs] - Update to Python3-3.13.3. Fixes + #5697. + + + [bdubbs] - Update to openssl-3.5.0. Fixes + #5701. + + + [bdubbs] - Update to meson-1.7.2. Fixes + #5691. + + + [bdubbs] - Update to linux-6.14.2. Fixes + #5680. + + + [bdubbs] - Update to libffi-3.4.8. Fixes + #5700. + + + [bdubbs] - Update to iproute2-6.14.0. Fixes + #5682. + + + [bdubbs] - Update to gzip-1.14. Fixes + #5699. + + + [bdubbs] - Update to grep-3.12. Fixes + #5702. + + + [bdubbs] - Update to gperf-3.2.1. Fixes + #5695. + + + [bdubbs] - Update to gawk-5.3.2. Fixes + #5692. + + + [bdubbs] - Update to diffutils-3.12. Fixes + #5696. + + + [bdubbs] - Update to coreutils-9.7. Fixes + #5698. + + + + 2025-04-01 diff --git a/chapter01/whatsnew.xml b/chapter01/whatsnew.xml index 8e1bec99c..4ab0abff3 100644 --- a/chapter01/whatsnew.xml +++ b/chapter01/whatsnew.xml @@ -53,21 +53,18 @@ - - + D-Bus-&dbus-version; - + @@ -89,9 +86,9 @@ Flit-Core-&flit-core-version; - + @@ -107,21 +104,21 @@ - - +
- + Iana-Etc-&iana-etc-version; @@ -131,9 +128,9 @@ - + Jinja2-&jinja2-version; @@ -155,9 +152,9 @@ - + @@ -188,9 +185,9 @@ - + @@ -203,15 +200,15 @@ - + Patch-&patch-version; - + Pkgconf-&pkgconf-version; @@ -221,9 +218,9 @@ - + @@ -266,9 +263,9 @@ Vim-&vim-version; - + @@ -295,11 +292,11 @@ Added: - + diff --git a/chapter03/packages.xml b/chapter03/packages.xml index 2b3dbd9e7..6cdb5e224 100644 --- a/chapter03/packages.xml +++ b/chapter03/packages.xml @@ -588,6 +588,15 @@
+ + Packaging (&packaging-version;) - &packaging-size;: + + Home page: + Download: + MD5 sum: &packaging-md5; + + + Patch (&patch-version;) - &patch-size;: diff --git a/chapter06/diffutils.xml b/chapter06/diffutils.xml index 92951604d..c56b01c5a 100644 --- a/chapter06/diffutils.xml +++ b/chapter06/diffutils.xml @@ -43,6 +43,12 @@ Installation of Diffutils + First, fix a problem in the current version of diffutils: + + sed -e '46252,+3 s/^/#/' \ + -e '46596,+3 s/^/#/' \ + -i configure + Prepare Diffutils for compilation: ./configure --prefix=/usr \ diff --git a/chapter08/chapter08.xml b/chapter08/chapter08.xml index cb13689e7..bd8571903 100644 --- a/chapter08/chapter08.xml +++ b/chapter08/chapter08.xml @@ -64,6 +64,7 @@ + diff --git a/chapter08/packaging.xml b/chapter08/packaging.xml new file mode 100644 index 000000000..b3e9e439d --- /dev/null +++ b/chapter08/packaging.xml @@ -0,0 +1,76 @@ + + + %general-entities; +]> + + + + + + packaging + &packaging-version; +
&packaging-url;
+
+ + Packaging-&packaging-version; + + + packaging + + + + + + <para> + The packaging module is a Python library that provides utilities that + implement the interoperability specifications which have clearly one + correct behaviour (PEP440) or benefit greatly from having a single shared + implementation (PEP425). This includes utilities for version handling, + specifiers, markers, tags, and requirements. + </para> + + <segmentedlist> + <segtitle>&buildtime;</segtitle> + <segtitle>&diskspace;</segtitle> + <seglistitem> + <seg>&packaging-fin-sbu;</seg> + <seg>&packaging-fin-du;</seg> + </seglistitem> + </segmentedlist> + + </sect2> + + <sect2 role="installation"> + <title>Installation of packaging + + Compile packaging with the following command: + +pip3 wheel -w dist --no-cache-dir --no-build-isolation --no-deps $PWD + + Install packaging with the following command: + +pip3 install --no-index --find-links dist packaging + + + + + Contents of Packaging + + + Installed directories + + + packaging + + /usr/lib/python&python-minor;/site-packages/packaging and + /usr/lib/python&python-minor;/site-packages/packaging-&packaging-version;.dist-info + + + + + + +
+ diff --git a/packages.ent b/packages.ent index c5d645e4c..38982675a 100644 --- a/packages.ent +++ b/packages.ent @@ -96,10 +96,10 @@ - - + + - + @@ -122,10 +122,10 @@ - - + + - + @@ -200,10 +200,10 @@ - - + + - + @@ -265,18 +265,18 @@ - - + + - + - - + + - + @@ -299,10 +299,10 @@ - - + + - + @@ -333,10 +333,10 @@ - - + + - + @@ -381,18 +381,18 @@ - - + + - + - - + + - + @@ -422,13 +422,13 @@ - - + + - + - + - + - + - + - - + + @@ -645,10 +653,10 @@ - - + + - + @@ -758,10 +766,10 @@ - - + + - + @@ -774,10 +782,10 @@ - - + + - + diff --git a/patches.ent b/patches.ent index c90d38120..c7b2ab19b 100644 --- a/patches.ent +++ b/patches.ent @@ -17,8 +17,8 @@ - - + + From 9103be90053dff74a1bd88571a54093db9f3a65a Mon Sep 17 00:00:00 2001 From: Zeckmathederg Date: Mon, 14 Apr 2025 18:02:27 -0600 Subject: [PATCH 25/60] chapter06/Diffutils: Elaborate what the sed does. --- chapter06/diffutils.xml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/chapter06/diffutils.xml b/chapter06/diffutils.xml index c56b01c5a..8738e32b0 100644 --- a/chapter06/diffutils.xml +++ b/chapter06/diffutils.xml @@ -43,7 +43,10 @@ Installation of Diffutils - First, fix a problem in the current version of diffutils: + When Diffutils is being configured, it checks to see if it is + being cross compiled. If it is, configuration fails. Since we are + cross compiling, comment out the specific lines that perform that + test now: sed -e '46252,+3 s/^/#/' \ -e '46596,+3 s/^/#/' \ From cb6741b0fa2fc32d6e6683166f786d8a8e0cffc1 Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Mon, 14 Apr 2025 22:10:25 +0800 Subject: [PATCH 26/60] general: Use "x.y-systemd" instead of "stable-systemd" in BLFS URL for release "stable-systemd" is the latest release, but we want to use the same version as the LFS book here. --- general.ent | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/general.ent b/general.ent index 09c98f613..27b62c37f 100644 --- a/general.ent +++ b/general.ent @@ -44,7 +44,7 @@ ]]> - + ]]> + gl_cv_func_strcasecmp_works=y + + This option specify the result of a check for the + strcasecmp. The check requires running a + compiled C program, and this is impossible during + cross-compilation because in general a cross-compiled program + cannot run on the host distro. Normally for such a check the + configure script would use a fall-back value + for cross-compilation, but the fall-back value for this check is + absent and the configure script would have no + value to use and error out. The upstream has already fixed the + issue, but to apply the fix we'd need to run + autoconf that the host distro may lack. So + we just specify the check result (y as we know + the strcasecmp function in + Glibc-&glibc-version; works fine) instead, then + configure will just use the specified value and + skip the check. + +
+ + Compile the package: make From fb602744bbcddcb8dbe579960cf86a7bcdf667dd Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Tue, 15 Apr 2025 19:47:48 +0800 Subject: [PATCH 28/60] Revert "Note that gperf tests only work with -j1." This reverts commit eb43115dec1f6057a4aaf1f161b0869ec8c4f7fa. Per https://savannah.gnu.org/bugs/?53208 the issue is fixed. I tried -j18 multiple times and observed no issues. --- chapter08/gperf.xml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/chapter08/gperf.xml b/chapter08/gperf.xml index bbfbbe735..25939135a 100644 --- a/chapter08/gperf.xml +++ b/chapter08/gperf.xml @@ -48,11 +48,9 @@ make - The tests are known to fail if running multiple - simultaneous tests (-j option greater than 1). To test - the results, issue: + To test the results, issue: -make -j1 check +make check Install the package: From 1a2d3f558830712ef22731798b6bb265684ed847 Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Tue, 15 Apr 2025 20:42:11 +0800 Subject: [PATCH 29/60] whatsnew: Don't hard code version of packaging --- chapter01/whatsnew.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chapter01/whatsnew.xml b/chapter01/whatsnew.xml index 4ab0abff3..d6d646f7b 100644 --- a/chapter01/whatsnew.xml +++ b/chapter01/whatsnew.xml @@ -294,7 +294,7 @@ - Packaging-24.2 + Packaging-&packaging-version; From c63e26b2968806cdfb74328eef4327e654b9248e Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Tue, 15 Apr 2025 20:44:14 +0800 Subject: [PATCH 30/60] packaging: Captialize the title --- chapter08/packaging.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chapter08/packaging.xml b/chapter08/packaging.xml index b3e9e439d..f1a6def9c 100644 --- a/chapter08/packaging.xml +++ b/chapter08/packaging.xml @@ -43,7 +43,7 @@ - Installation of packaging + Installation of Packaging Compile packaging with the following command: From 97aaa219af80ba0f9b8646c2366fed34b59248fd Mon Sep 17 00:00:00 2001 From: Bruce Dubbs Date: Tue, 15 Apr 2025 10:11:29 -0500 Subject: [PATCH 31/60] Update currency adding 'packaging.' --- lfs-latest-git.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lfs-latest-git.php b/lfs-latest-git.php index d8da03ef5..a6723e909 100644 --- a/lfs-latest-git.php +++ b/lfs-latest-git.php @@ -139,6 +139,7 @@ if ( $package == "mpfr" ) $dirpath = "https://mpfr.loria.fr/mpfr-current"; if ( $package == "ncurses" ) $dirpath = "https://invisible-mirror.net/archives/ncurses"; if ( $package == "ninja" ) $dirpath = github("ninja-build/ninja"); if ( $package == "openssl" ) $dirpath = github("openssl/openssl"); +if ( $package == "packaging" ) $dirpath = "https://pypi.org/rss/project/packaging/releases.xml"; if ( $package == "procps-ng" ) $dirpath = "https://gitlab.com/procps-ng/procps/-/tags"; if ( $package == "psmisc" ) $dirpath = "https://gitlab.com/psmisc/psmisc/-/tags"; if ( $package == "Python" ) $dirpath = "https://www.python.org/downloads/source/"; @@ -262,6 +263,9 @@ if ( $package == "zstd" ) $dirpath = github("facebook/zstd"); return find_max( $lines, "/wheel\/\d/", "/^.*wheel\/([\d\.]+).*$/" ); # End Python modules + if ( $package == "packaging" ) + return find_max( $lines, "/packaging/", "/^.*^.*packaging.([\d\.]+\d)\/.*$/" ); + if ( $package == "procps-ng" ) return find_max( $lines, "/v\d/", "/^.*v([\d\.]+)$/" ); From 3d1e81b5a8397464f2ef0f54fb22b810c03c24c2 Mon Sep 17 00:00:00 2001 From: Bruce Dubbs Date: Tue, 15 Apr 2025 22:53:28 -0500 Subject: [PATCH 32/60] Change stripping to use --strip-debug When we use -strip-unneeded it removes some symbols that are needed in static libraries that may be needed in addition to debugging symbols. Changing the stripping to the more conservative --strip-debug retains thise symbols. In the case of libc.a the unstripped file size is 22.4 MB. Using --strip-debug reduces the file size by 74 percent to 5.9 MB. Using --strip-unneeded only reduces the file further by 89 KB, so any gain is relatively trivial. --- chapter08/stripping.xml | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/chapter08/stripping.xml b/chapter08/stripping.xml index 5ce0235d3..2839cfda7 100644 --- a/chapter08/stripping.xml +++ b/chapter08/stripping.xml @@ -24,10 +24,15 @@ backup of the LFS system in its current state.
A strip command with the - --strip-unneeded option removes all debug symbols - from a binary or library. It also removes all symbol table entries not + --strip-unneeded option removes all debug symbols from + a binary or library. It also removes all symbol table entries not normally needed by the linker (for static libraries) or dynamic linker (for - dynamically linked binaries and shared libraries). + dynamically linked binaries and shared libraries). Using + --strip-debug does not remove symbol table entries + that may be needed by some applications. The difference between "unneeded" + and "debug" is very small. For example, an unstripped libc.a is 22.4 MB. + After stripping with --strip-debug it is 5.9 MB. Using --strip-unneeded only + reduces the size further to only 5.8 MB. + + 2025-05-01 + + + [bdubbs] - Update to vim-9.1.1353. Addresses + #4500. + + + [bdubbs] - Update to setuptools-80.0.1. Fixes + #5710. + + + [bdubbs] - Update to packaging-25.0. Fixes + #5706. + + + [bdubbs] - Update to meson-1.8.0. Fixes + #5713. + + + [bdubbs] - Update to linux-6.14.4. Fixes + #5709. + + + [bdubbs] - Update to iana-etc-20250407. Addresses + #5006. + + + [bdubbs] - Update to gperf-3.3. Fixes + #5708. + + + [bdubbs] - Update to elfutils-0.193. Fixes + #5711. + + + + 2025-04-15 diff --git a/chapter01/whatsnew.xml b/chapter01/whatsnew.xml index d6d646f7b..61168b9dd 100644 --- a/chapter01/whatsnew.xml +++ b/chapter01/whatsnew.xml @@ -149,9 +149,9 @@ Libcap-&libcap-version; - + Libffi-&libffi-version; diff --git a/chapter08/libelf.xml b/chapter08/libelf.xml index 117d0bd66..c2d44c837 100644 --- a/chapter08/libelf.xml +++ b/chapter08/libelf.xml @@ -58,6 +58,9 @@ make check + Two tests are known to fail, dwarf_srclang_check and + run-backtrace-native-core.sh. + Install only Libelf: make -C libelf install diff --git a/packages.ent b/packages.ent index 38982675a..adde037fb 100644 --- a/packages.ent +++ b/packages.ent @@ -140,10 +140,10 @@ - - + + - + @@ -265,10 +265,10 @@ - - + + - + @@ -309,10 +309,10 @@ - + - + @@ -423,12 +423,12 @@ - + - + - + - + - + From 7a6cafbe952b35a4d2de1f3c33ee90851fe74653 Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Thu, 1 May 2025 21:34:32 +0800 Subject: [PATCH 38/60] stripping: Switch to zstd to compress debug info Now BLFS has valgrind-3.25.0 which supports zstd-compressed debug section. --- chapter08/stripping.xml | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/chapter08/stripping.xml b/chapter08/stripping.xml index 2839cfda7..b1f88f33a 100644 --- a/chapter08/stripping.xml +++ b/chapter08/stripping.xml @@ -34,11 +34,8 @@ After stripping with --strip-debug it is 5.9 MB. Using --strip-unneeded only reduces the size further to only 5.8 MB. - The debugging symbols from selected libraries are compressed with - Zlib and preserved in separate files. That + Zstd and preserved in separate files. That debugging information is needed to run regression tests with valgrind or gdb later, in BLFS. @@ -86,7 +83,7 @@ cd /usr/lib for LIB in $save_usrlib; do - objcopy --only-keep-debug --compress-debug-sections=zlib $LIB $LIB.dbg + objcopy --only-keep-debug --compress-debug-sections=zstd $LIB $LIB.dbg cp $LIB /tmp/$LIB strip --strip-debug /tmp/$LIB objcopy --add-gnu-debuglink=$LIB.dbg /tmp/$LIB From cbdfdd32fdd7ead208c2bb0fb98b514746689fc0 Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Fri, 2 May 2025 12:41:33 +0800 Subject: [PATCH 39/60] stripping: Decorate with XML labels --- chapter08/stripping.xml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/chapter08/stripping.xml b/chapter08/stripping.xml index b1f88f33a..45da34cda 100644 --- a/chapter08/stripping.xml +++ b/chapter08/stripping.xml @@ -29,10 +29,12 @@ needed by the linker (for static libraries) or dynamic linker (for dynamically linked binaries and shared libraries). Using --strip-debug does not remove symbol table entries - that may be needed by some applications. The difference between "unneeded" - and "debug" is very small. For example, an unstripped libc.a is 22.4 MB. - After stripping with --strip-debug it is 5.9 MB. Using --strip-unneeded only - reduces the size further to only 5.8 MB. + that may be needed by some applications. The difference between + unneeded and debug is very small. + For example, an unstripped libc.a + is 22.4 MB. After stripping with --strip-debug it + is 5.9 MB. Using --strip-unneeded only reduces the + size further to 5.8 MB. The debugging symbols from selected libraries are compressed with Zstd and preserved in separate files. That From 3dc11a77cfbf92555f971837fb3c54b07352eb3b Mon Sep 17 00:00:00 2001 From: Bruce Dubbs Date: Sun, 11 May 2025 23:38:57 -0500 Subject: [PATCH 40/60] Fix currency fo ropenssl. --- lfs-latest-git.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lfs-latest-git.php b/lfs-latest-git.php index a6723e909..d43431d29 100644 --- a/lfs-latest-git.php +++ b/lfs-latest-git.php @@ -279,7 +279,7 @@ if ( $package == "zstd" ) $dirpath = github("facebook/zstd"); return find_max( $lines, "/tag_name/", '/^.*v([\d\.]+).*$/' ); if ( $package == "openssl" ) - return find_max( $lines, "/name.:/", "/^.*OpenSSL ([\d\.]+\d).*$/" ); + return find_max( $lines, "/name:/", "/^.*OpenSSL ([\d\.]+\d).*$/" ); if ( $package == "Python" ) return find_max( $lines, "/Python 3/", "/^.*Python (3[\d\.]*\d) .*$/" ); From ac5a955c849d020c68935673de0b9d0ea05a56bd Mon Sep 17 00:00:00 2001 From: Bruce Dubbs Date: Mon, 12 May 2025 10:50:04 -0500 Subject: [PATCH 41/60] Restore openssl currency. --- lfs-latest-git.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lfs-latest-git.php b/lfs-latest-git.php index d43431d29..a6723e909 100644 --- a/lfs-latest-git.php +++ b/lfs-latest-git.php @@ -279,7 +279,7 @@ if ( $package == "zstd" ) $dirpath = github("facebook/zstd"); return find_max( $lines, "/tag_name/", '/^.*v([\d\.]+).*$/' ); if ( $package == "openssl" ) - return find_max( $lines, "/name:/", "/^.*OpenSSL ([\d\.]+\d).*$/" ); + return find_max( $lines, "/name.:/", "/^.*OpenSSL ([\d\.]+\d).*$/" ); if ( $package == "Python" ) return find_max( $lines, "/Python 3/", "/^.*Python (3[\d\.]*\d) .*$/" ); From de932d6de530a6ff8fd28446aee769fc34be7e0a Mon Sep 17 00:00:00 2001 From: Bruce Dubbs Date: Thu, 15 May 2025 08:20:18 -0500 Subject: [PATCH 42/60] Fix alignment. --- chapter08/systemd.xml | 2 +- chapter08/tcl.xml | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/chapter08/systemd.xml b/chapter08/systemd.xml index 989082419..01730e235 100644 --- a/chapter08/systemd.xml +++ b/chapter08/systemd.xml @@ -243,7 +243,7 @@ ninja test tar -xf ../../systemd-man-pages-&systemd-man-version;.tar.xz \ - --no-same-owner --strip-components=1 \ + --no-same-owner --strip-components=1 \ -C /usr/share/man Create the /etc/machine-id file needed by diff --git a/chapter08/tcl.xml b/chapter08/tcl.xml index 0905af0d4..2cb10d72c 100644 --- a/chapter08/tcl.xml +++ b/chapter08/tcl.xml @@ -82,9 +82,9 @@ sed -e "s|$SRCDIR/unix|/usr/lib|" \ -i tclConfig.sh sed -e "s|$SRCDIR/unix/pkgs/tdbc&tdbc-ver;|/usr/lib/tdbc&tdbc-ver;|" \ - -e "s|$SRCDIR/pkgs/tdbc&tdbc-ver;/generic|/usr/include|" \ - -e "s|$SRCDIR/pkgs/tdbc&tdbc-ver;/library|/usr/lib/tcl8.6|" \ - -e "s|$SRCDIR/pkgs/tdbc&tdbc-ver;|/usr/include|" \ + -e "s|$SRCDIR/pkgs/tdbc&tdbc-ver;/generic|/usr/include|" \ + -e "s|$SRCDIR/pkgs/tdbc&tdbc-ver;/library|/usr/lib/tcl8.6|" \ + -e "s|$SRCDIR/pkgs/tdbc&tdbc-ver;|/usr/include|" \ -i pkgs/tdbc&tdbc-ver;/tdbcConfig.sh sed -e "s|$SRCDIR/unix/pkgs/itcl&itcl-ver;|/usr/lib/itcl&itcl-ver;|" \ From fd694409776e1bf4ac5ac0d61f0adb9034179fcd Mon Sep 17 00:00:00 2001 From: Bruce Dubbs Date: Thu, 15 May 2025 09:42:51 -0500 Subject: [PATCH 43/60] Package updates. Update to setuptools-80.7.1. Update to man-pages-6.14. Update to man-db-2.13.1. Update to m4-1.4.20. Update to linux-6.14.6. Update to gettext-0.25. --- chapter01/changelog.xml | 30 ++++++++++++++++++++++++++++++ chapter01/whatsnew.xml | 12 ++++++------ packages.ent | 36 ++++++++++++++++++------------------ 3 files changed, 54 insertions(+), 24 deletions(-) diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml index f15b55335..14f3cb970 100644 --- a/chapter01/changelog.xml +++ b/chapter01/changelog.xml @@ -39,6 +39,36 @@ or as appropriate for the entry or if needed the entire day's listitem. --> + + 2025-05-15 + + + [bdubbs] - Update to setuptools-80.7.1. Fixes + #5715. + + + [bdubbs] - Update to man-pages-6.14. Fixes + #5720. + + + [bdubbs] - Update to man-db-2.13.1. Fixes + #5719. + + + [bdubbs] - Update to m4-1.4.20. Fixes + #5722. + + + [bdubbs] - Update to linux-6.14.6. Fixes + #5717. + + + [bdubbs] - Update to gettext-0.25. Fixes + #5718. + + + + 2025-05-01 diff --git a/chapter01/whatsnew.xml b/chapter01/whatsnew.xml index 61168b9dd..819b1f243 100644 --- a/chapter01/whatsnew.xml +++ b/chapter01/whatsnew.xml @@ -95,9 +95,9 @@ GDBM-&gdbm-version; - + @@ -170,15 +170,15 @@ - + - + Man-pages-&man-pages-version; diff --git a/packages.ent b/packages.ent index adde037fb..6e7985744 100644 --- a/packages.ent +++ b/packages.ent @@ -237,10 +237,10 @@ - - + + - + @@ -423,12 +423,12 @@ - + - + - + + + 2025-06-01 + + + [bdubbs] - Update build instructions to accomodate + gcc-15 for bc, expect, ncurses, and gmp. + + + [bdubbs] - Update to gcc-15.1.0. Fixes + #5707. + + + [bdubbs] - Update to less-678. Fixes + #5724. + + + [bdubbs] - Update to readline-8.3-rc1. Fixes + #5726. + + + [bdubbs] - Update to bash-5.3-rc1. Fixes + #5714. + + + + 2025-05-15 diff --git a/chapter01/whatsnew.xml b/chapter01/whatsnew.xml index 819b1f243..f21ea40d4 100644 --- a/chapter01/whatsnew.xml +++ b/chapter01/whatsnew.xml @@ -38,9 +38,9 @@ - + @@ -89,9 +89,9 @@ Gawk-&gawk-version; - + GDBM-&gdbm-version; @@ -140,9 +140,9 @@ Kmod-&kmod-version; - + @@ -221,9 +221,9 @@ Python-&python-version; - + diff --git a/chapter03/patches.xml b/chapter03/patches.xml index dd592f663..907f6ed3e 100644 --- a/chapter03/patches.xml +++ b/chapter03/patches.xml @@ -26,15 +26,15 @@ --> - + + First, make an adjustment for compatibilty with gcc-15 and later: + +sed -i '/long long t1;/,+1s/()/(...)/' configure + Prepare GMP for compilation: ./configure --prefix=/usr \ diff --git a/chapter08/ncurses.xml b/chapter08/ncurses.xml index a825f63c9..84970f306 100644 --- a/chapter08/ncurses.xml +++ b/chapter08/ncurses.xml @@ -137,8 +137,8 @@ ): make DESTDIR=$PWD/dest install -install -vm755 dest/usr/lib/libncursesw.so.&ncurses-version; /usr/lib -rm -v dest/usr/lib/libncursesw.so.&ncurses-version; +install -vm755 dest/usr/lib/libncursesw.so.&ncurses-base-version; /usr/lib +rm -v dest/usr/lib/libncursesw.so.&ncurses-base-version; sed -e 's/^#if.*XOPEN.*$/#if 1/' \ -i dest/usr/include/curses.h cp -av dest/* / diff --git a/packages.ent b/packages.ent index 6e7985744..159bbc313 100644 --- a/packages.ent +++ b/packages.ent @@ -47,10 +47,10 @@ - - + + - + @@ -210,10 +210,10 @@ - - + + - + @@ -365,10 +365,10 @@ - - + + - + @@ -519,10 +519,11 @@ - - - - + + + + + @@ -618,11 +619,11 @@ - - - + + + - + diff --git a/patches.ent b/patches.ent index c7b2ab19b..d800a74d6 100644 --- a/patches.ent +++ b/patches.ent @@ -2,11 +2,10 @@ - + + + + From a45bbbc3916a8f2f0edc29697ae28be407c53929 Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Fri, 23 May 2025 12:23:43 +0800 Subject: [PATCH 46/60] Drop the min-kernel alignment hack Someone is really insistant on "you cannot have any extra whitespace" so the hack will just not work. Let's drop it and simply move the --enable-kernel= switches to the last line. --- chapter05/glibc.xml | 4 ++-- chapter08/glibc.xml | 12 ++++++------ general.ent | 6 ++---- 3 files changed, 10 insertions(+), 12 deletions(-) diff --git a/chapter05/glibc.xml b/chapter05/glibc.xml index 11d4cfce4..def63edf0 100644 --- a/chapter05/glibc.xml +++ b/chapter05/glibc.xml @@ -90,9 +90,9 @@ cd build
--prefix=/usr \ --host=$LFS_TGT \ --build=$(../scripts/config.guess) \ - --enable-kernel=&min-kernel; \ --disable-nscd \ - libc_cv_slibdir=/usr/lib + libc_cv_slibdir=/usr/lib \ + --enable-kernel=&min-kernel; The meaning of the configure options: diff --git a/chapter08/glibc.xml b/chapter08/glibc.xml index fb6b346a0..a7ce1190a 100644 --- a/chapter08/glibc.xml +++ b/chapter08/glibc.xml @@ -68,12 +68,12 @@ cd build Prepare Glibc for compilation: -../configure --prefix=/usr \ - --disable-werror \ - --disable-nscd \ - --enable-kernel=&min-kernel;\ - libc_cv_slibdir=/usr/lib \ - --enable-stack-protector=strong +../configure --prefix=/usr \ + --disable-werror \ + --disable-nscd \ + libc_cv_slibdir=/usr/lib \ + --enable-stack-protector=strong \ + --enable-kernel=&min-kernel; The meaning of the configure options: diff --git a/general.ent b/general.ent index 27b62c37f..1d2d0ee97 100644 --- a/general.ent +++ b/general.ent @@ -96,10 +96,8 @@ - + so for LFS 12.5 we may consider moving to 5.10. --> + - + Bash-&bash-version; @@ -236,9 +236,9 @@ Sysklogd-&sysklogd-version; - + @@ -296,6 +296,18 @@ Packaging-&packaging-version; + + bash-5.3-rc1-cross_compile_fix-1.patch + + + coreutils-9.7-upstream_fix-1.patch + + + perl-5.40.2-upstream_fix-1.patch + + + Python-3.13.3-security_fixes-1.patch + diff --git a/chapter03/patches.xml b/chapter03/patches.xml index 907f6ed3e..435fa6acd 100644 --- a/chapter03/patches.xml +++ b/chapter03/patches.xml @@ -52,6 +52,14 @@ + + Coreutils Upstream Fixe Patch - &coreutils-upstream-patch-size;: + + Download: + MD5 sum: &coreutils-upstream-patch-md5; + + + Coreutils Internationalization Fixes Patch - &coreutils-i18n-patch-size;: @@ -61,7 +69,7 @@ - Expect GCC14 Patch - &expect-gcc15-patch-size;: + Expect GCC15 Patch - &expect-gcc15-patch-size;: Download: MD5 sum: &expect-gcc15-patch-md5; @@ -118,24 +126,23 @@ --> - - + SysVinit Consolidated Patch - &sysvinit-consolidated-patch-size;: diff --git a/chapter08/coreutils.xml b/chapter08/coreutils.xml index 36d428981..abf5f7819 100644 --- a/chapter08/coreutils.xml +++ b/chapter08/coreutils.xml @@ -41,6 +41,10 @@ Installation of Coreutils + First apply a security patch identified upstream: + +patch -Np1 -i ../&coreutils-upstream-patch; + POSIX requires that programs from Coreutils recognize character boundaries correctly even in multibyte locales. The following patch fixes this non-compliance and other internationalization-related bugs. diff --git a/chapter08/perl.xml b/chapter08/perl.xml index b678f7f9d..0416aa85e 100644 --- a/chapter08/perl.xml +++ b/chapter08/perl.xml @@ -41,6 +41,10 @@ Installation of Perl + First, apply a security patch identified upstream: + +patch -Np1 -i ../&perl-upstream-fix-patch; + This version of Perl builds the Compress::Raw::Zlib and Compress::Raw::BZip2 modules. By default Perl will use an internal copy of the sources for the build. diff --git a/chapter08/python.xml b/chapter08/python.xml index ebda61181..0cbce0b0c 100644 --- a/chapter08/python.xml +++ b/chapter08/python.xml @@ -43,12 +43,17 @@ Installation of Python 3 + First, apply a security patch to the current package: + + patch -Np1 -i ../&python-security-fixes-patch; + Prepare Python for compilation: -./configure --prefix=/usr \ - --enable-shared \ - --with-system-expat \ - --enable-optimizations +./configure --prefix=/usr \ + --enable-shared \ + --with-system-expat \ + --enable-optimizations \ + --without-static-libpython The meaning of the configure options: @@ -72,6 +77,14 @@ + + --without-static-libpython + + This switch prevents building a large, but unneeded, static + library. + + + Compile the package: diff --git a/packages.ent b/packages.ent index 159bbc313..405b0c373 100644 --- a/packages.ent +++ b/packages.ent @@ -38,11 +38,11 @@ - - + + - + @@ -495,10 +495,10 @@ - - + + - + @@ -638,10 +638,10 @@ - - + + - + @@ -662,15 +662,15 @@ - + - + - + diff --git a/patches.ent b/patches.ent index d800a74d6..dc666134a 100644 --- a/patches.ent +++ b/patches.ent @@ -11,6 +11,7 @@ --> + @@ -19,6 +20,10 @@ + + + + @@ -26,22 +31,29 @@ - + + + + + + + + + + + + + Kmod-&kmod-version; diff --git a/chapter08/kbd.xml b/chapter08/kbd.xml index 3239d6a21..06537f271 100644 --- a/chapter08/kbd.xml +++ b/chapter08/kbd.xml @@ -80,9 +80,14 @@ sed -i 's/resizecons.8 //' docs/man/man8/Makefile.in make - To test the results, issue: - + The tests for this package will all fail in the chroot environment + because they require valgrind. In addition + on a full system with valgrind, several + tests still fail in a graphical environment. The tests pass in + a non-graphical environment. + Install the package: diff --git a/packages.ent b/packages.ent index 405b0c373..dffe24262 100644 --- a/packages.ent +++ b/packages.ent @@ -309,10 +309,10 @@ - + - + @@ -349,10 +349,10 @@ - - + + - + @@ -672,11 +672,11 @@ - - + + - + @@ -745,10 +745,10 @@ - + - + - + From 3975ea8c7e68479f88170a3b5b461da9983e0ec1 Mon Sep 17 00:00:00 2001 From: Bruce Dubbs Date: Sat, 31 May 2025 04:28:18 -0500 Subject: [PATCH 51/60] Current thanges to trunk: Update to iana-etc-20250519. Update to vim-9.1.1418. Update to kbd-2.8.0. Update to systemd-257.6. Update to setuptools-80.9.0. Update to meson-1.8.1. Update to automake-1.18. Update to gcc-15.1.0. Update build instructions to accomodate gcc-15. Update to less-678. Update to readline-8.3-rc1. Update to bash-5.3-rc1. --- chapter01/changelog.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml index 00caf0e3a..7e38d65d4 100644 --- a/chapter01/changelog.xml +++ b/chapter01/changelog.xml @@ -93,7 +93,7 @@ - + 2025-05-15 From 6c311ec76ff60f275a336354a6661193390753c2 Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Tue, 27 May 2025 11:41:13 +0800 Subject: [PATCH 52/60] changingowner: Exclude symlinks from chown Make this consistent with addinguser. Applying chown to a symlink actually affects its target, and here the targets are in $LFS/usr and already covered. --- chapter07/changingowner.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chapter07/changingowner.xml b/chapter07/changingowner.xml index 178c7836e..f29932694 100644 --- a/chapter07/changingowner.xml +++ b/chapter07/changingowner.xml @@ -33,7 +33,7 @@ user root by running the following command: -chown --from &lfs-username; -R root:root $LFS/{usr,lib,var,etc,bin,sbin,tools} +chown --from &lfs-username; -R root:root $LFS/{usr,var,etc,tools} case $(uname -m) in x86_64) chown --from &lfs-username; -R root:root $LFS/lib64 ;; esac From 30ec5ae0ea81e671f0bbe7c65c840957f422ac02 Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Sat, 31 May 2025 19:27:05 +0800 Subject: [PATCH 53/60] gcc-pass2: Remove empty line --- chapter06/gcc-pass2.xml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/chapter06/gcc-pass2.xml b/chapter06/gcc-pass2.xml index 13baefa48..9bb8332c7 100644 --- a/chapter06/gcc-pass2.xml +++ b/chapter06/gcc-pass2.xml @@ -100,8 +100,7 @@ cd build --disable-libssp \ --disable-libvtv \ --enable-languages=c,c++ \ - LDFLAGS_FOR_TARGET=-L$PWD/$LFS_TGT/libgcc - + LDFLAGS_FOR_TARGET=-L$PWD/$LFS_TGT/libgcc The meaning of the new configure options: From 208415b81b2909fbec563340e303cd4b6d5a0c5f Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Sun, 1 Jun 2025 12:26:06 +0800 Subject: [PATCH 54/60] reboot: Remove references to files we no longer create And note /etc/resolv.conf is optional for the systemd revision. --- chapter11/reboot.xml | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/chapter11/reboot.xml b/chapter11/reboot.xml index 5a8cfd51e..497445346 100644 --- a/chapter11/reboot.xml +++ b/chapter11/reboot.xml @@ -88,17 +88,14 @@ - /etc/bashrc - /etc/dircolors /etc/fstab /etc/hosts /etc/inputrc /etc/profile - /etc/resolv.conf + /etc/resolv.conf + (optional) /etc/vimrc - /root/.bash_profile - /root/.bashrc - /etc/sysconfig/ifconfig.eth0 + /etc/sysconfig/ifconfig.eth0 From 455724dc3478ad19a1e735a132a865d54edc942c Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Sun, 1 Jun 2025 12:54:01 +0800 Subject: [PATCH 55/60] patches: Fix a typo --- chapter03/patches.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chapter03/patches.xml b/chapter03/patches.xml index 435fa6acd..94b36acb5 100644 --- a/chapter03/patches.xml +++ b/chapter03/patches.xml @@ -53,7 +53,7 @@ - Coreutils Upstream Fixe Patch - &coreutils-upstream-patch-size;: + Coreutils Upstream Fix Patch - &coreutils-upstream-patch-size;: Download: MD5 sum: &coreutils-upstream-patch-md5; From 1b223fbe4352235dcc42489fa64fbfddf528b5ca Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Sun, 1 Jun 2025 21:49:48 +0800 Subject: [PATCH 56/60] python: Also add --without-static-libpython to the temporary installation Without it, in the final system /usr/lib/python3.13/config-3.13-$triple/libpython3.13.a is a remnant from chapter 7 instead of being absent, defeating our will to save space. --- chapter07/python.xml | 14 +++++++++++--- chapter08/python.xml | 8 -------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/chapter07/python.xml b/chapter07/python.xml index 872cf4a36..a75d5ad6f 100644 --- a/chapter07/python.xml +++ b/chapter07/python.xml @@ -52,9 +52,10 @@ Prepare Python for compilation: -./configure --prefix=/usr \ - --enable-shared \ - --without-ensurepip +./configure --prefix=/usr \ + --enable-shared \ + --without-ensurepip \ + --without-static-libpython The meaning of the configure option: @@ -74,6 +75,13 @@ + + --without-static-libpython + + This switch prevents building a large, but unneeded, static + library. + + Compile the package: diff --git a/chapter08/python.xml b/chapter08/python.xml index 0cbce0b0c..63a7e24cd 100644 --- a/chapter08/python.xml +++ b/chapter08/python.xml @@ -77,14 +77,6 @@ - - --without-static-libpython - - This switch prevents building a large, but unneeded, static - library. - - - Compile the package: From c24d5641af09d926b73e62e1384d4ba78cca137a Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Tue, 3 Jun 2025 17:03:08 +0800 Subject: [PATCH 57/60] ncurses: Fix the shared lib file name referenced in text --- chapter08/ncurses.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chapter08/ncurses.xml b/chapter08/ncurses.xml index 84970f306..e2f7415eb 100644 --- a/chapter08/ncurses.xml +++ b/chapter08/ncurses.xml @@ -127,7 +127,7 @@ make will spawn new shell processes during "make install". --> The installation of this package will overwrite - libncursesw.so.&ncurses-version; + libncursesw.so.&ncurses-base-version; in-place. It may crash the shell process which is using code and data from the library file. Install the package with DESTDIR, and replace the library file correctly using From e481799cdf54f02b27631b968408d41efd9cc0a5 Mon Sep 17 00:00:00 2001 From: Bruce Dubbs Date: Wed, 4 Jun 2025 13:56:37 -0500 Subject: [PATCH 58/60] Package updates. Update to ncurses-6.5-20250531. Update to readline-8.3-rc2. Update to bash-5.3-rc2. Update to Python-3.13.4. --- chapter01/changelog.xml | 22 ++++++++++++++++++++++ chapter01/whatsnew.xml | 6 ------ chapter03/patches.xml | 5 +++-- chapter06/bash.xml | 4 ++-- chapter08/coreutils.xml | 2 +- chapter08/python.xml | 4 ++-- packages.ent | 26 +++++++++++++------------- patches.ent | 5 +++-- 8 files changed, 46 insertions(+), 28 deletions(-) diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml index 7e38d65d4..dd2a99418 100644 --- a/chapter01/changelog.xml +++ b/chapter01/changelog.xml @@ -39,6 +39,28 @@ or as appropriate for the entry or if needed the entire day's listitem. --> + + 2025-06-04 + + + [bdubbs] - Update to ncurses-6.5-20250531. Fixes + #5737. + + + [bdubbs] - Update to readline-8.3-rc2. Fixes + #5738. + + + [bdubbs] - Update to bash-5.3-rc2. Fixes + #5738. + + + [bdubbs] - Update to Python-3.13.4. Fixes + #6739. + + + + 2025-06-01 diff --git a/chapter01/whatsnew.xml b/chapter01/whatsnew.xml index a1f05eea8..7b03c7f02 100644 --- a/chapter01/whatsnew.xml +++ b/chapter01/whatsnew.xml @@ -296,18 +296,12 @@ Packaging-&packaging-version; - - bash-5.3-rc1-cross_compile_fix-1.patch - coreutils-9.7-upstream_fix-1.patch perl-5.40.2-upstream_fix-1.patch - - Python-3.13.3-security_fixes-1.patch - diff --git a/chapter03/patches.xml b/chapter03/patches.xml index 435fa6acd..1b5a38121 100644 --- a/chapter03/patches.xml +++ b/chapter03/patches.xml @@ -25,7 +25,6 @@ MD5 sum: &autoconf-fixes-patch-md5; ---> Bash Cross Compile Fix Patch - &bash-crosscompile-fix-patch-size;: @@ -34,7 +33,7 @@ MD5 sum: &bash-crosscompile-fix-patch-md5; - +--> SysVinit Consolidated Patch - &sysvinit-consolidated-patch-size;: diff --git a/chapter06/bash.xml b/chapter06/bash.xml index ae33f9466..8e6a2396e 100644 --- a/chapter06/bash.xml +++ b/chapter06/bash.xml @@ -42,11 +42,11 @@ Installation of Bash - + Prepare Bash for compilation: ./configure --prefix=/usr \ diff --git a/chapter08/coreutils.xml b/chapter08/coreutils.xml index abf5f7819..1f6f14ecd 100644 --- a/chapter08/coreutils.xml +++ b/chapter08/coreutils.xml @@ -41,7 +41,7 @@ Installation of Coreutils - First apply a security patch identified upstream: + First, apply a patch for a security problem identified upstream: patch -Np1 -i ../&coreutils-upstream-patch; diff --git a/chapter08/python.xml b/chapter08/python.xml index 0cbce0b0c..7c5e710ed 100644 --- a/chapter08/python.xml +++ b/chapter08/python.xml @@ -42,11 +42,11 @@ Installation of Python 3 - + Prepare Python for compilation: ./configure --prefix=/usr \ diff --git a/packages.ent b/packages.ent index dffe24262..e5f65b299 100644 --- a/packages.ent +++ b/packages.ent @@ -47,10 +47,10 @@ - - + + - + @@ -519,11 +519,11 @@ - + - + @@ -605,25 +605,25 @@ - + - + - + - - + + - + - + - + diff --git a/patches.ent b/patches.ent index dc666134a..7c0a42133 100644 --- a/patches.ent +++ b/patches.ent @@ -1,12 +1,11 @@ - +