From 53b45db0173ec36d4916089d088673aab2028384 Mon Sep 17 00:00:00 2001 From: Bruce Dubbs Date: Fri, 5 Sep 2025 02:06:35 -0500 Subject: [PATCH 01/23] Fix puncuation error. --- 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 ebd10bf2a..431b7f1dd 100644 --- a/lfs-latest-git.php +++ b/lfs-latest-git.php @@ -140,7 +140,7 @@ if ( $package == "ncurses" ) $dirpath = "https://invisible-mirror.net/archive 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 == "pcre" ) $dirpath = github("PCRE2Project/pcre2") ); +if ( $package == "pcre" ) $dirpath = github("PCRE2Project/pcre2"); 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/"; From cb1e260f048cd015210b1034236f53faa061263b Mon Sep 17 00:00:00 2001 From: Bruce Dubbs Date: Fri, 5 Sep 2025 02:09:56 -0500 Subject: [PATCH 02/23] Another currency fix. --- 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 431b7f1dd..67ce2948b 100644 --- a/lfs-latest-git.php +++ b/lfs-latest-git.php @@ -267,7 +267,7 @@ if ( $package == "zstd" ) $dirpath = github("facebook/zstd"); if ( $package == "packaging" ) return find_max( $lines, "/packaging/", "/^.*^.*packaging.([\d\.]+\d)\/.*$/" ); - if ( $book_index == "pcre2" ) + if ( $package == "pcre2" ) return find_max( $lines, '/name.:/', '/^.*pcre2-([\d\.]+\d).*$/' ); if ( $package == "procps-ng" ) From 09d0e04dab12412b04d9f8de8911b8d34174a24d Mon Sep 17 00:00:00 2001 From: Bruce Dubbs Date: Fri, 5 Sep 2025 02:32:18 -0500 Subject: [PATCH 03/23] Add currency for sqlite; correction for pcre2. --- lfs-latest-git.php | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/lfs-latest-git.php b/lfs-latest-git.php index 67ce2948b..ad6d27a30 100644 --- a/lfs-latest-git.php +++ b/lfs-latest-git.php @@ -140,12 +140,13 @@ if ( $package == "ncurses" ) $dirpath = "https://invisible-mirror.net/archive 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 == "pcre" ) $dirpath = github("PCRE2Project/pcre2"); +if ( $package == "pcre2" ) $dirpath = github("PCRE2Project/pcre2"); 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/"; if ( $package == "setuptools" ) $dirpath = "https://pypi.org/rss/project/setuptools/releases.xml"; if ( $package == "shadow" ) $dirpath = github("shadow-maint/shadow"); +if ( $package == "sqlite-autoconf" ) $dirpath = "https://sqlite.org/download.html"; if ( $package == "sysvinit" ) $dirpath = github("slicer69/sysvinit"); if ( $package == "sysklogd" ) $dirpath = github("troglobit/sysklogd"); if ( $package == "systemd" ) $dirpath = github("systemd/systemd"); @@ -270,6 +271,9 @@ if ( $package == "zstd" ) $dirpath = github("facebook/zstd"); if ( $package == "pcre2" ) return find_max( $lines, '/name.:/', '/^.*pcre2-([\d\.]+\d).*$/' ); + if ( $package == "sqlite-autoconf" ) + return find_max( $lines, '/autoconf/', '/^.*autoconf-(\d+).tar.*$/' ); + if ( $package == "procps-ng" ) return find_max( $lines, "/v\d/", "/^.*v([\d\.]+)$/" ); @@ -365,6 +369,11 @@ function get_current() $pkg_pattern= "/(\D*4).*/"; } + else if ( preg_match( "/pcre2/", $file ) ) + { + $pkg_pattern= "/(\D*2).*/"; + } + else if ( preg_match( "/systemd-man-pages/", $file ) ) continue; else if ( preg_match( "/python/" , $file ) ) continue; From 298367a8c551a12db508bfe53fd4d97905778b85 Mon Sep 17 00:00:00 2001 From: Bruce Dubbs Date: Mon, 8 Sep 2025 17:09:32 -0500 Subject: [PATCH 04/23] In currency, redirect from tp.gnu.org to ftpmirror.gnu.org. --- lfs-latest-git.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lfs-latest-git.php b/lfs-latest-git.php index ad6d27a30..5bcdb1652 100644 --- a/lfs-latest-git.php +++ b/lfs-latest-git.php @@ -64,6 +64,8 @@ function find_even_max( $lines, $regex_match, $regex_replace ) function http_get_file( $url ) { + $url = preg_replace( "/ftp.gnu.org/", "ftpmirror.gnu.org", $url ); + if ( preg_match( "/mpfr/", $url ) ) { # There seems to be a problem with the mpfs certificate From f712c7be3464f1dcb2c77c244458ec25db12d907 Mon Sep 17 00:00:00 2001 From: Bruce Dubbs Date: Sat, 13 Sep 2025 12:18:24 -0500 Subject: [PATCH 05/23] Use a better mirror for gnu packages. --- 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 5bcdb1652..eb19d3a1b 100644 --- a/lfs-latest-git.php +++ b/lfs-latest-git.php @@ -64,7 +64,7 @@ function find_even_max( $lines, $regex_match, $regex_replace ) function http_get_file( $url ) { - $url = preg_replace( "/ftp.gnu.org/", "ftpmirror.gnu.org", $url ); + $url = preg_replace( "/ftp.gnu.org/", "mirrors.ibiblio.org", $url ); if ( preg_match( "/mpfr/", $url ) ) { From df4169523dcdab1df9ffb9bdde9d9b4b0401e31b Mon Sep 17 00:00:00 2001 From: Bruce Dubbs Date: Sun, 14 Sep 2025 13:24:16 -0500 Subject: [PATCH 06/23] Package updates. Update to vim-9.1.1754. Update to iana-etc-20250826. Update to tcl8.6.17. Update to pcre2-10.46. Update to meson-1.9.0. Update to linux-6.16.7. Update to kbd-2.9.0. --- chapter01/changelog.xml | 34 +++++++++++++++++++++++++++++ chapter01/whatsnew.xml | 34 +++++++++++++++++------------ chapter08/tcl.xml | 7 ++++-- packages.ent | 48 ++++++++++++++++++++--------------------- 4 files changed, 83 insertions(+), 40 deletions(-) diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml index 703788ee1..4e7e0f31e 100644 --- a/chapter01/changelog.xml +++ b/chapter01/changelog.xml @@ -40,6 +40,40 @@ appropriate for the entry or if needed the entire day's listitem. --> + + 2025-09-15 + + + [bdubbs] - Update to vim-9.1.1754. Addresses + #4500. + + + [bdubbs] - Update to iana-etc-20250826. Addresses + #5006. + + + [bdubbs] - Update to tcl8.6.17. Fixes + #5781. + + + [bdubbs] - Update to pcre2-10.46. Fixes + #5790. + + + [bdubbs] - Update to meson-1.9.0. Fixes + #5788. + + + [bdubbs] - Update to linux-6.16.7. Fixes + #5787. + + + [bdubbs] - Update to kbd-2.9.0. Fixes + #5789. + + + + 2025-09-03 diff --git a/chapter01/whatsnew.xml b/chapter01/whatsnew.xml index c92a5755b..0ad46324c 100644 --- a/chapter01/whatsnew.xml +++ b/chapter01/whatsnew.xml @@ -119,9 +119,9 @@ - + @@ -134,9 +134,9 @@ - + @@ -164,9 +164,9 @@ - + @@ -185,9 +185,9 @@ - + @@ -206,6 +206,9 @@ + + Pcre2-&pcre2-version; + @@ -233,6 +236,9 @@ + @@ -245,9 +251,9 @@ - + @@ -260,9 +266,9 @@ - + @@ -292,8 +298,8 @@ Added: - pcre2 - sqlite + Pcre2-&pcre2-version; + Sqlite-&sqlite-version; diff --git a/chapter08/tcl.xml b/chapter08/tcl.xml index b530a35ed..34264e252 100644 --- a/chapter08/tcl.xml +++ b/chapter08/tcl.xml @@ -3,8 +3,8 @@ "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [ %general-entities; - - + + ]> @@ -104,6 +104,9 @@ unset SRCDIR make test + Three tests (out of over 43000 total tests) from the cmdAH.test file + are known to fail. + Install the package: make install diff --git a/packages.ent b/packages.ent index 6b3394954..2a3de7560 100644 --- a/packages.ent +++ b/packages.ent @@ -309,10 +309,10 @@ - - + + - + @@ -349,10 +349,10 @@ - - + + - + @@ -424,12 +424,12 @@ - + - + - + - + @@ -721,15 +721,15 @@ - + - + - + - - + + @@ -768,10 +768,10 @@ - + - + - + From 158d47f83d68e159f05f48b07d7be584f07ec559 Mon Sep 17 00:00:00 2001 From: Bruce Dubbs Date: Sun, 14 Sep 2025 13:47:07 -0500 Subject: [PATCH 07/23] Add a correction about tcl tests. --- chapter08/tcl.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/chapter08/tcl.xml b/chapter08/tcl.xml index 34264e252..84d65ab52 100644 --- a/chapter08/tcl.xml +++ b/chapter08/tcl.xml @@ -105,7 +105,8 @@ unset SRCDIR make test Three tests (out of over 43000 total tests) from the cmdAH.test file - are known to fail. + are known to fail in the chroot environment. All tests pass in a full + system. Install the package: From 3373b9dcd6132786e38c2601b09cd8f9f635397e Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Sat, 20 Sep 2025 18:58:18 +0800 Subject: [PATCH 08/23] pcre2: Fix hardcoded version number in instruction --- chapter08/pcre.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chapter08/pcre.xml b/chapter08/pcre.xml index d937d8f6c..700a6a12b 100644 --- a/chapter08/pcre.xml +++ b/chapter08/pcre.xml @@ -44,7 +44,7 @@ Prepare pcre2 for compilation: ./configure --prefix=/usr \ - --docdir=/usr/share/doc/pcre2-10.45 \ + --docdir=/usr/share/doc/pcre2-&pcre2-version; \ --enable-unicode \ --enable-jit \ --enable-pcre2-16 \ From 215e914e5483d4e893c23ef80f1d116097c063ae Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Sat, 20 Sep 2025 18:57:22 +0800 Subject: [PATCH 09/23] tcl: Set LC_ALL=C.UTF-8 for test Get rid of the cmdAH failures. --- chapter08/tcl.xml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/chapter08/tcl.xml b/chapter08/tcl.xml index 84d65ab52..7dfb006b7 100644 --- a/chapter08/tcl.xml +++ b/chapter08/tcl.xml @@ -102,11 +102,7 @@ unset SRCDIR To test the results, issue: -make test - - Three tests (out of over 43000 total tests) from the cmdAH.test file - are known to fail in the chroot environment. All tests pass in a full - system. +LC_ALL=C.UTF-8 make test Install the package: From 693cf29d31d17c458b2f5de7b4beda91e0da2d0d Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Thu, 4 Sep 2025 00:39:53 +0800 Subject: [PATCH 10/23] systemd: Flip -D userdb to true GDM 49 will use it. There seems no additional dependencies here so we need to edit LFS anyway (at least we'll need to remove the incorrect "with dependencies that do not fit in LFS"). And the increased SBU is negligiable, and enabling it in LFS (instead of BLFS) has an advantage that "systemctl preset-all" will automatically enable it. Thus adding it in LFS instead of only BLFS. --- chapter08/systemd.xml | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/chapter08/systemd.xml b/chapter08/systemd.xml index 01730e235..3841d6e47 100644 --- a/chapter08/systemd.xml +++ b/chapter08/systemd.xml @@ -64,7 +64,7 @@ meson setup .. \ -D sysusers=false \ -D rpmmacrosdir=no \ -D homed=disabled \ - -D userdb=false \ + -D userdb=true \ -D man=disabled \ -D mode=release \ -D pamconfdir=no \ @@ -141,14 +141,21 @@ meson setup .. \ - -D homed=disabled and - -D userdb=false + -D homed=disabled - Remove two daemons with dependencies that do not fit + Remove a daemon with dependencies that do not fit within the scope of LFS. + + -D userdb=true + + Enable the systemd-userdbd daemon that + GDM in BLFS will use. + + + -D man=disabled @@ -292,7 +299,8 @@ ninja test systemd-socket-activate, systemd-stdio-bridge, systemd-sysext, systemd-tmpfiles, systemd-tty-ask-password-agent, systemd-umount (symlink to systemd-mount), - telinit (symlink to systemctl), timedatectl, and udevadm + telinit (symlink to systemctl), timedatectl, udevadm, and + userdbctl libnss_myhostname.so.2, libnss_mymachines.so.2, libnss_resolve.so.2, libnss_systemd.so.2, libsystemd.so, libsystemd-shared-&systemd-version;.so (in /usr/lib/systemd), @@ -866,6 +874,16 @@ ninja test + + userdbctl + + Inspects users, groups and group memberships + + userdbctl + + + + libsystemd From 6d5f106c11ac7e31f6cfe6800dd0ad94ddeebfcf Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Sat, 27 Sep 2025 00:52:50 +0800 Subject: [PATCH 11/23] pkgmgt: Note that rebuilding GMP and libffi is not enough to convert a complete LFS system to be used for a less capable CPU --- chapter08/pkgmgt.xml | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/chapter08/pkgmgt.xml b/chapter08/pkgmgt.xml index 3640b519d..daa1040b5 100644 --- a/chapter08/pkgmgt.xml +++ b/chapter08/pkgmgt.xml @@ -391,7 +391,16 @@ make DESTDIR=/usr/pkg/libfoo/1.1 install 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. + Instruction errors running LFS. + + The GMP build system stores the architecture-specific optimization + option used to build GMP into gmp.h, and the build + system of some package using GMP can read it from the header and use it + when building the package itself. At least the MPFR build system is + known to do so. Thus simply rebuilding GMP on a complete LFS system + is not enough: you'll need to recompile MPFR and maybe other packages + using GMP if you want to convert a complete LFS system + to be used for a different CPU. Finally, the new system has to be made bootable via . From b3724969d28b15957e3b303a45965657d6ffd449 Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Sat, 27 Sep 2025 00:53:39 +0800 Subject: [PATCH 12/23] Revert "systemd: Flip -D userdb to true" This reverts commit 693cf29d31d17c458b2f5de7b4beda91e0da2d0d. Wrongly pushed :(. --- chapter08/systemd.xml | 28 +++++----------------------- 1 file changed, 5 insertions(+), 23 deletions(-) diff --git a/chapter08/systemd.xml b/chapter08/systemd.xml index 3841d6e47..01730e235 100644 --- a/chapter08/systemd.xml +++ b/chapter08/systemd.xml @@ -64,7 +64,7 @@ meson setup .. \ -D sysusers=false \ -D rpmmacrosdir=no \ -D homed=disabled \ - -D userdb=true \ + -D userdb=false \ -D man=disabled \ -D mode=release \ -D pamconfdir=no \ @@ -141,21 +141,14 @@ meson setup .. \ - -D homed=disabled + -D homed=disabled and + -D userdb=false - Remove a daemon with dependencies that do not fit + Remove two daemons with dependencies that do not fit within the scope of LFS. - - -D userdb=true - - Enable the systemd-userdbd daemon that - GDM in BLFS will use. - - - -D man=disabled @@ -299,8 +292,7 @@ ninja test systemd-socket-activate, systemd-stdio-bridge, systemd-sysext, systemd-tmpfiles, systemd-tty-ask-password-agent, systemd-umount (symlink to systemd-mount), - telinit (symlink to systemctl), timedatectl, udevadm, and - userdbctl + telinit (symlink to systemctl), timedatectl, and udevadm libnss_myhostname.so.2, libnss_mymachines.so.2, libnss_resolve.so.2, libnss_systemd.so.2, libsystemd.so, libsystemd-shared-&systemd-version;.so (in /usr/lib/systemd), @@ -874,16 +866,6 @@ ninja test - - userdbctl - - Inspects users, groups and group memberships - - userdbctl - - - - libsystemd From eec39ba6db08c66d94e620107d5f8e2c3de0057f Mon Sep 17 00:00:00 2001 From: Bruce Dubbs Date: Mon, 29 Sep 2025 12:27:25 -0500 Subject: [PATCH 13/23] Add info about ftp.gnu.org DDOS. --- chapter03/introduction.xml | 22 ++++++++++++++++++++++ chapter08/libelf.xml | 2 +- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/chapter03/introduction.xml b/chapter03/introduction.xml index 645686311..439e2806a 100644 --- a/chapter03/introduction.xml +++ b/chapter03/introduction.xml @@ -37,6 +37,28 @@ alternative means of downloading at . + + + Listed on the next page are several important packages located at + ftp.gnu.org. That site is the canonical locaton of the + subject packages but has been affected by a long term + distributed denial of services (DDOS) attack. See + slashdot news for details. + + + + An alternative for ftp.gnu.org is to use one of the mirrors for that + site. A list of mirrors is located at + + + + + If you choose to use the wget list described below, that file will + also need to be modified to use your desired mirror. + + + + Downloaded packages and patches will need to be stored somewhere that is conveniently available throughout the entire build. A working directory is also required to unpack the sources and build them. diff --git a/chapter08/libelf.xml b/chapter08/libelf.xml index c2d44c837..bde918890 100644 --- a/chapter08/libelf.xml +++ b/chapter08/libelf.xml @@ -56,7 +56,7 @@ To test the results, issue: -make check +make -k check Two tests are known to fail, dwarf_srclang_check and run-backtrace-native-core.sh. From 9e2fa9a05d36cd655b3729eb293bc4bfee8d69ad Mon Sep 17 00:00:00 2001 From: Bruce Dubbs Date: Mon, 29 Sep 2025 16:05:56 -0500 Subject: [PATCH 14/23] Package updates. Update to vim-9.1.1806. Update to iana-etc-20250926. Update to coreutils-9.8. Update to expat-2.7.3 (Security release). Update to linux-6.16.9. Update to markupsafe-3.0.3. Update to meson-1.9.1. Update to openssl-3.5.3. Update to util-linux-2.41.2. --- chapter01/changelog.xml | 42 ++++++++++++++++++++++++++++++++ chapter01/whatsnew.xml | 25 +++++++++---------- chapter03/patches.xml | 8 ------- chapter08/coreutils.xml | 4 ---- chapter08/util-linux.xml | 15 +++--------- chapter08/vim.xml | 2 ++ packages.ent | 52 ++++++++++++++++++++-------------------- patches.ent | 10 +++----- 8 files changed, 89 insertions(+), 69 deletions(-) diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml index 4e7e0f31e..d03520994 100644 --- a/chapter01/changelog.xml +++ b/chapter01/changelog.xml @@ -40,6 +40,48 @@ appropriate for the entry or if needed the entire day's listitem. --> + + 2025-10-01 + + + [bdubbs] - Update to vim-9.1.1806. Addresses + #4500. + + + [bdubbs] - Update to iana-etc-20250926. Addresses + #5006. + + + [bdubbs] - Update to coreutils-9.8. Fixes + #5795. + + + [bdubbs] - Update to expat-2.7.3 (Security release). Fixes + #5792. + + + [bdubbs] - Update to linux-6.16.9. Fixes + #5796. + + + [bdubbs] - Update to markupsafe-3.0.3. Fixes + #5801. + + + [bdubbs] - Update to meson-1.9.1. Fixes + #5797. + + + [bdubbs] - Update to openssl-3.5.3. Fixes + #5793. + + + [bdubbs] - Update to util-linux-2.41.2. Fixes + #5798. + + + + 2025-09-15 diff --git a/chapter01/whatsnew.xml b/chapter01/whatsnew.xml index 0ad46324c..b2e37886b 100644 --- a/chapter01/whatsnew.xml +++ b/chapter01/whatsnew.xml @@ -53,9 +53,9 @@ - + @@ -68,9 +68,9 @@ - + @@ -182,9 +182,9 @@ - + Meson-&meson-version; @@ -200,9 +200,9 @@ - + @@ -263,9 +263,9 @@ - + Vim-&vim-version; @@ -298,13 +298,14 @@ Added: - Pcre2-&pcre2-version; - Sqlite-&sqlite-version; + Coreutils-9.8-i18n-2.patch Removed: + Coreutils-9.7-i18n-1.patch + Coreutils-9.7-upstream_fix-1.patch diff --git a/chapter03/patches.xml b/chapter03/patches.xml index a1181e7f0..10420a73a 100644 --- a/chapter03/patches.xml +++ b/chapter03/patches.xml @@ -51,14 +51,6 @@ - - Coreutils Upstream Fix Patch - &coreutils-upstream-patch-size;: - - Download: - MD5 sum: &coreutils-upstream-patch-md5; - - - Coreutils Internationalization Fixes Patch - &coreutils-i18n-patch-size;: diff --git a/chapter08/coreutils.xml b/chapter08/coreutils.xml index 1f6f14ecd..36d428981 100644 --- a/chapter08/coreutils.xml +++ b/chapter08/coreutils.xml @@ -41,10 +41,6 @@ Installation of Coreutils - First, apply a patch for a security problem 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/util-linux.xml b/chapter08/util-linux.xml index 3c5feb221..5f5ec69b9 100644 --- a/chapter08/util-linux.xml +++ b/chapter08/util-linux.xml @@ -42,11 +42,6 @@ Installation of Util-linux - Prepare Util-linux for compilation: ./configure --bindir=/usr/bin \ @@ -127,20 +122,16 @@ su tester -c "make -k check" fail if the kernel option is not enabled. - + Install the package: make install - + diff --git a/chapter08/vim.xml b/chapter08/vim.xml index 90d07972a..a62dd8fef 100644 --- a/chapter08/vim.xml +++ b/chapter08/vim.xml @@ -84,6 +84,8 @@ sed '/test_plugin_glvs/d' -i src/testdir/Make_all.mak successful test will result in the words ALL DONE in the log file at completion. + One test, test_matchfuzzy.vim, is known to fail on some systems. + Install the package: make install diff --git a/packages.ent b/packages.ent index 2a3de7560..74ac470bd 100644 --- a/packages.ent +++ b/packages.ent @@ -96,10 +96,10 @@ - - + + - + @@ -148,10 +148,10 @@ - - + + - + @@ -309,10 +309,10 @@ - + - + @@ -424,12 +424,12 @@ - + - + - + - + + - + - + - + - + diff --git a/patches.ent b/patches.ent index 9560fefaa..dcf5cb3fa 100644 --- a/patches.ent +++ b/patches.ent @@ -15,13 +15,9 @@ - - - - - - - + + + From 454448912a68487714f5b5d17026454c3c36c8d4 Mon Sep 17 00:00:00 2001 From: "Douglas R. Reno" Date: Tue, 30 Sep 2025 14:35:18 -0500 Subject: [PATCH 15/23] packages.ent: fix the URL for expat --- packages.ent | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages.ent b/packages.ent index 74ac470bd..0066bdaac 100644 --- a/packages.ent +++ b/packages.ent @@ -150,7 +150,7 @@ - + From 5abea1ab6da05a25f5c62a64c7c9c69b6e2b540f Mon Sep 17 00:00:00 2001 From: "Douglas R. Reno" Date: Wed, 1 Oct 2025 19:18:45 -0500 Subject: [PATCH 16/23] Package updates: Update to OpenSSL-3.5.4 (Security Update) Update to systemd-258 (as well as udev for SysV) --- chapter01/changelog.xml | 12 +++-- chapter01/whatsnew.xml | 4 +- chapter07/createfiles.xml | 2 + chapter08/systemd.xml | 93 ++++++++++++++++++++++++++++++++------- chapter08/udev.xml | 4 ++ packages.ent | 20 ++++----- 6 files changed, 104 insertions(+), 31 deletions(-) diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml index d03520994..8d345129e 100644 --- a/chapter01/changelog.xml +++ b/chapter01/changelog.xml @@ -43,6 +43,10 @@ 2025-10-01 + + [renodr] - Update to systemd-258 (including udev for SysV). + Fixes #5791. + [bdubbs] - Update to vim-9.1.1806. Addresses #4500. @@ -69,15 +73,15 @@ [bdubbs] - Update to meson-1.9.1. Fixes - #5797. + #5797. - [bdubbs] - Update to openssl-3.5.3. Fixes - #5793. + [renodr] - Update to openssl-3.5.4 (Security Update). Fixes + #5793. [bdubbs] - Update to util-linux-2.41.2. Fixes - #5798. + #5798. diff --git a/chapter01/whatsnew.xml b/chapter01/whatsnew.xml index b2e37886b..18763ce7d 100644 --- a/chapter01/whatsnew.xml +++ b/chapter01/whatsnew.xml @@ -242,9 +242,9 @@ - + diff --git a/chapter07/createfiles.xml b/chapter07/createfiles.xml index 8f97c2d3e..319c89138 100644 --- a/chapter07/createfiles.xml +++ b/chapter07/createfiles.xml @@ -107,6 +107,7 @@ dialout:x:10: audio:x:11: video:x:12: utmp:x:13: +clock:x:14: cdrom:x:15: adm:x:16: messagebus:x:18: @@ -134,6 +135,7 @@ dialout:x:10: audio:x:11: video:x:12: utmp:x:13: +clock:x:14: cdrom:x:15: adm:x:16: messagebus:x:18: diff --git a/chapter08/systemd.xml b/chapter08/systemd.xml index 01730e235..0212f6c10 100644 --- a/chapter08/systemd.xml +++ b/chapter08/systemd.xml @@ -64,7 +64,6 @@ meson setup .. \ -D sysusers=false \ -D rpmmacrosdir=no \ -D homed=disabled \ - -D userdb=false \ -D man=disabled \ -D mode=release \ -D pamconfdir=no \ @@ -141,11 +140,10 @@ meson setup .. \ - -D homed=disabled and - -D userdb=false + -D homed=disabled - Remove two daemons with dependencies that do not fit - within the scope of LFS. + Remove a daemon which has dependencies that do not fit within + the scope of LFS. @@ -275,12 +273,12 @@ ninja test Installed directories - busctl, coredumpctl, halt (symlink to systemctl), + bootctl, busctl, coredumpctl, halt (symlink to systemctl), hostnamectl, init, journalctl, kernel-install, localectl, loginctl, machinectl, mount.ddi (symlink to systemd-dissect), networkctl, oomctl, portablectl, poweroff (symlink to systemctl), reboot (symlink to systemctl), resolvconf (symlink to - resolvectl), resolvectl, runlevel (symlink to systemctl), shutdown + resolvectl), resolvectl, run0, runlevel (symlink to systemctl), shutdown (symlink to systemctl), systemctl, systemd-ac-power, systemd-analyze, systemd-ask-password, systemd-cat, systemd-cgls, systemd-cgtop, systemd-confext (symlink to systemd-sysext), systemd-creds, @@ -288,21 +286,22 @@ ninja test systemd-dissect, systemd-escape, systemd-hwdb, systemd-id128, systemd-inhibit, systemd-machine-id-setup, systemd-mount, systemd-notify, systemd-nspawn, systemd-path, - systemd-repart, systemd-resolve (symlink to resolvectl), systemd-run, - systemd-socket-activate, systemd-stdio-bridge, systemd-sysext, - systemd-tmpfiles, systemd-tty-ask-password-agent, + systemd-pty-forward, systemd-repart, systemd-resolve + (symlink to resolvectl), systemd-run, systemd-socket-activate, + systemd-stdio-bridge, systemd-sysext, systemd-tmpfiles, + systemd-tty-ask-password-agent, systemd-vpick, systemd-umount (symlink to systemd-mount), - telinit (symlink to systemctl), timedatectl, and udevadm + timedatectl, udevadm, userdbctl, and varlinkctl libnss_myhostname.so.2, libnss_mymachines.so.2, libnss_resolve.so.2, libnss_systemd.so.2, libsystemd.so, libsystemd-shared-&systemd-version;.so (in /usr/lib/systemd), and libudev.so /etc/binfmt.d, /etc/init.d, /etc/kernel, /etc/modules-load.d, /etc/sysctl.d, /etc/systemd, /etc/tmpfiles.d, /etc/udev, - /etc/xdg/systemd, /usr/lib/systemd, /usr/lib/udev, /usr/include/systemd, - /usr/lib/binfmt.d, /usr/lib/environment.d, /usr/lib/kernel, - /usr/lib/modules-load.d, /usr/lib/sysctl.d, /usr/lib/systemd, - /usr/lib/tmpfiles.d, + /etc/xdg/systemd, /usr/include/systemd, /usr/lib/binfmt.d, + /usr/lib/credstore, /usr/lib/environment.d, /usr/lib/kernel, + /usr/lib/modprobe.d, /usr/lib/modules-load.d, /usr/lib/systemd, + /usr/lib/udev, /usr/lib/sysctl.d, /usr/lib/systemd, /usr/lib/tmpfiles.d, /usr/share/doc/systemd-&systemd-version;, /usr/share/factory, /usr/share/systemd, /var/lib/systemd, and /var/log/journal @@ -313,6 +312,16 @@ ninja test + + bootctl + + Is used to control EFI firmware boot settings on a system + + bootctl + + + + busctl @@ -502,6 +511,17 @@ ninja test + + run0 + + Temporary elevates or acquires different privileges, similar + to sudo + + run0 + + + + runlevel @@ -742,6 +762,17 @@ ninja test + + systemd-pty-forward + + Is used to run a command with a custom terminal background + color or title + + systemd-pty-forward + + + + systemd-repart @@ -831,6 +862,17 @@ ninja test + + systemd-vpick + + Is used to resolve paths to a ".v/ versioned directory + + systemd-vpick + + + + + timedatectl @@ -866,6 +909,26 @@ ninja test + + userdbctl + + Is used to inspect users, groups, and group memberships + + userdbctl + + + + + + varlinkctl + + Is used to interact with and invoke Varlink services + + varlinkctl + + + + libsystemd diff --git a/chapter08/udev.xml b/chapter08/udev.xml index 1be726094..8f4472e7c 100644 --- a/chapter08/udev.xml +++ b/chapter08/udev.xml @@ -56,6 +56,10 @@ sed -i '/systemd-sysctl/s/^/#/' rules.d/99-systemd.rules.in + Fix a bug that prevents udev from running correctly: + +sed -i "/udev_dependencies,/a \ 'link_with': udev_link_with," src/udev/meson.build + Adjust the hardcoded paths to network configuration files for the standalone udev installation: diff --git a/packages.ent b/packages.ent index 0066bdaac..93e12c4f0 100644 --- a/packages.ent +++ b/packages.ent @@ -539,10 +539,10 @@ - - + + - + @@ -685,22 +685,22 @@ - + - + - + - - + + - - + + From e04a5377d2c846b4a0ea41a875cf836cf2a52348 Mon Sep 17 00:00:00 2001 From: Bruce Dubbs Date: Thu, 2 Oct 2025 20:52:26 -0500 Subject: [PATCH 17/23] Typos --- chapter03/introduction.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/chapter03/introduction.xml b/chapter03/introduction.xml index 439e2806a..76394a3dc 100644 --- a/chapter03/introduction.xml +++ b/chapter03/introduction.xml @@ -40,10 +40,10 @@ Listed on the next page are several important packages located at - ftp.gnu.org. That site is the canonical locaton of the + ftp.gnu.org. That site is the canonical location of the subject packages but has been affected by a long term distributed denial of services (DDOS) attack. See - slashdot news for details. + Slashdot News for details. From e4ae6fe11c7de063b483b7c95e00ca27f069ddfe Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Fri, 3 Oct 2025 14:38:53 +0800 Subject: [PATCH 18/23] systemd: Note run0 is a symlink and fix a typo in systemd-vpick description --- chapter08/systemd.xml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/chapter08/systemd.xml b/chapter08/systemd.xml index 0212f6c10..7fee06900 100644 --- a/chapter08/systemd.xml +++ b/chapter08/systemd.xml @@ -278,7 +278,8 @@ ninja test machinectl, mount.ddi (symlink to systemd-dissect), networkctl, oomctl, portablectl, poweroff (symlink to systemctl), reboot (symlink to systemctl), resolvconf (symlink to - resolvectl), resolvectl, run0, runlevel (symlink to systemctl), shutdown + resolvectl), resolvectl, run0 (symlink to systemd-run), runlevel + (symlink to systemctl), shutdown (symlink to systemctl), systemctl, systemd-ac-power, systemd-analyze, systemd-ask-password, systemd-cat, systemd-cgls, systemd-cgtop, systemd-confext (symlink to systemd-sysext), systemd-creds, @@ -865,7 +866,7 @@ ninja test systemd-vpick - Is used to resolve paths to a ".v/ versioned directory + Is used to resolve paths to a ".v/" versioned directory systemd-vpick From 0e4e25914016610898e9955a8a4645473bd281e0 Mon Sep 17 00:00:00 2001 From: Zeckmathederg Date: Fri, 3 Oct 2025 18:28:07 -0600 Subject: [PATCH 19/23] Flex: \ alignment. --- chapter08/flex.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/chapter08/flex.xml b/chapter08/flex.xml index 7e44e38e9..a7e7296fe 100644 --- a/chapter08/flex.xml +++ b/chapter08/flex.xml @@ -53,9 +53,9 @@ Prepare Flex for compilation: -./configure --prefix=/usr \ - --docdir=/usr/share/doc/flex-&flex-version; \ - --disable-static +./configure --prefix=/usr \ + --disable-static \ + --docdir=/usr/share/doc/flex-&flex-version; Compile the package: From edfcaff9bf79a8aa9b70e6678a5c9958823ba93f Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Sat, 4 Oct 2025 23:26:07 +0800 Subject: [PATCH 20/23] sqlite: Get rid of rpath --- chapter08/sqlite.xml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/chapter08/sqlite.xml b/chapter08/sqlite.xml index e01eded51..dde49fa29 100644 --- a/chapter08/sqlite.xml +++ b/chapter08/sqlite.xml @@ -56,7 +56,7 @@ -D SQLITE_ENABLE_DBSTAT_VTAB=1 \ -D SQLITE_SECURE_DELETE=1" - The meaning of the make option: + The meaning of the configure options: --enable-fts{4,5} @@ -81,7 +81,13 @@ Compile the package: -make +make LDFLAGS.rpath="" + + The LDFLAGS.rpath="" option prevents + hard coding library search paths (rpath) into the shared library. + This package does not need rpath for an installation into the standard + location, and rpath may sometimes cause unwanted effects or even + security issues. This package does not come with a test suite. From 4353efc02421ca8785b9ffb8b8a0af1495fadc54 Mon Sep 17 00:00:00 2001 From: Bruce Dubbs Date: Sat, 11 Oct 2025 12:32:03 -0500 Subject: [PATCH 21/23] Makefile: set validate as a profile-html dependency, --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 52034319c..966229235 100644 --- a/Makefile +++ b/Makefile @@ -139,7 +139,7 @@ validate: tmpdir version $(Q)./aux-file-data.sh $(RENDERTMP)/lfs-full.xml @echo "Validation complete." -profile-html: +profile-html: validate @echo "Generating profiled XML for XHTML..." $(Q)xsltproc --nonet \ --stringparam profile.condition html \ From 8501f893d2303d00ab46ff15329b6970241ced8e Mon Sep 17 00:00:00 2001 From: Bruce Dubbs Date: Mon, 13 Oct 2025 11:57:15 -0500 Subject: [PATCH 22/23] Spacing --- chapter08/systemd.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chapter08/systemd.xml b/chapter08/systemd.xml index 7fee06900..837dfe577 100644 --- a/chapter08/systemd.xml +++ b/chapter08/systemd.xml @@ -241,7 +241,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 From aea637af4a7883899030c559a06235b612e77051 Mon Sep 17 00:00:00 2001 From: Bruce Dubbs Date: Wed, 15 Oct 2025 10:28:04 -0500 Subject: [PATCH 23/23] Package updates. Update to less-685. Update to systemd-258.1. Update to Python-3.14.0. Update to openssl-3.6.0. Update to linux-6.17.2. Update to iproute2-6.17.0. --- chapter01/changelog.xml | 30 +++++++++++++++++++++++++ chapter01/whatsnew.xml | 12 +++++----- chapter08/python.xml | 3 +-- chapter08/udev.xml | 4 ++-- packages.ent | 50 ++++++++++++++++++++--------------------- 5 files changed, 64 insertions(+), 35 deletions(-) diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml index 8d345129e..a98d10aac 100644 --- a/chapter01/changelog.xml +++ b/chapter01/changelog.xml @@ -40,6 +40,36 @@ appropriate for the entry or if needed the entire day's listitem. --> + + 2025-10-15 + + + [bdubbs] - Update to less-685. Fixes + #5810. + + + [bdubbs] - Update to systemd-258.1. Fixes + #5809. + + + [bdubbs] - Update to Python-3.14.0. Fixes + #5806. + + + [bdubbs] - Update to openssl-3.6.0. Fixes + #5804. + + + [bdubbs] - Update to linux-6.17.2. Fixes + #5802. + + + [bdubbs] - Update to iproute2-6.17.0. Fixes + #5803. + + + + 2025-10-01 diff --git a/chapter01/whatsnew.xml b/chapter01/whatsnew.xml index 18763ce7d..cb54a7470 100644 --- a/chapter01/whatsnew.xml +++ b/chapter01/whatsnew.xml @@ -128,9 +128,9 @@ - + @@ -140,9 +140,9 @@ - + @@ -221,9 +221,9 @@ - + diff --git a/chapter08/python.xml b/chapter08/python.xml index e40f96e4c..566f47862 100644 --- a/chapter08/python.xml +++ b/chapter08/python.xml @@ -89,8 +89,7 @@ limit and 1 SBU (measured when building Binutils pass 1 with one CPU core) should be enough. Some tests are flaky, so the test suite will automatically re-run failed tests. If a test failed but then passed - when re-run, it should be considered as passed. One test, test_ssl, - is known to fail in the chroot environment. + when re-run, it should be considered as passed. Install the package: diff --git a/chapter08/udev.xml b/chapter08/udev.xml index 8f4472e7c..2b70c6767 100644 --- a/chapter08/udev.xml +++ b/chapter08/udev.xml @@ -55,11 +55,11 @@ Remove one udev rule requiring a full Systemd installation: sed -i '/systemd-sysctl/s/^/#/' rules.d/99-systemd.rules.in - + Adjust the hardcoded paths to network configuration files for the standalone udev installation: diff --git a/packages.ent b/packages.ent index 93e12c4f0..0a806a5dc 100644 --- a/packages.ent +++ b/packages.ent @@ -333,10 +333,10 @@ - - + + - + @@ -365,10 +365,10 @@ - - + + - + @@ -422,14 +422,14 @@ - + - + - + - + - - - + + + - + - - + + @@ -685,21 +685,21 @@ - + - + - + - - + + - +