Udev configuration rulesThe rules in this appendix are listed for convenience. Installation is
- normally done via instructions in .
+ normally done via instructions in 55-lfs.rules
diff --git a/bootscripts/ChangeLog b/bootscripts/ChangeLog
index 3853ff83a..37680aff5 100644
--- a/bootscripts/ChangeLog
+++ b/bootscripts/ChangeLog
@@ -1,3 +1,7 @@
+2024-04-16 Bruce Dubbs
+ * Remove blank output line generated in ifup script when bringing
+ up wireless interface.
+
2023-10-04 Pierre Labastie
* After the changes done on 2022-03-24, several "halt stop" should
have been changed to "halt start". Done now. Fortunately, those
diff --git a/bootscripts/lfs/sbin/ifup b/bootscripts/lfs/sbin/ifup
index 4c70810cd..070d25cdc 100755
--- a/bootscripts/lfs/sbin/ifup
+++ b/bootscripts/lfs/sbin/ifup
@@ -110,7 +110,7 @@ for S in ${SERVICE}; do
fi
done
-if [ "${SERVICE}" = "wpa" ]; then log_success_msg; fi
+#if [ "${SERVICE}" = "wpa" ]; then log_success_msg; fi
# Create/configure the interface
for S in ${SERVICE}; do
diff --git a/chapter01/askforhelp.xml b/chapter01/askforhelp.xml
index dd36b30fa..7c6032389 100644
--- a/chapter01/askforhelp.xml
+++ b/chapter01/askforhelp.xml
@@ -15,7 +15,7 @@
In case you've hit an issue building one package with the LFS
instruction, we strongly discourage posting the issue directly onto
the upstream support channel before discussing via a LFS support
- channel listed in .
+ channel listed in
Doing so is often quite inefficient because the upstream
maintainers are rarely familiar with LFS building procedure. Even if
you've really hit an upstream issue, the LFS community can still help
diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml
index 43423619c..f42fdf445 100644
--- a/chapter01/changelog.xml
+++ b/chapter01/changelog.xml
@@ -41,701 +41,375 @@
-->
- 2024-02-14
+ 2024-06-15
- [bdubbs] - Update to meson-1.3.2. Fixes
- #5442.
-
-
-
-
-
- 2024-02-12
-
-
- [bdubbs] - Update to shadow-4.14.5. Fixes
- #5437.
-
-
- [bdubbs] - Update to setuptools-69.1.0 (Python module). Fixes
- #5439.
-
-
- [bdubbs] - Update to python-3.12.2. Fixes
- #5434.
-
-
- [bdubbs] - Update to pkgconf-2.1.1. Fixes
- #5432.
-
-
- [bdubbs] - Update to MarkupSafe-2.1.5 (Python module). Fixes
- #5431.
-
-
- [bdubbs] - Update to man-pages-6.06. Fixes
- #5438.
-
-
- [bdubbs] - Update to expat-2.6.0. Fixes
- #5435.
-
-
- [bdubbs] - Update to linux-6.7.4. Fixes
- #5433.
-
-
-
-
-
- 2024-02-10
-
-
- [xry111] - Fix a bug in systemd breaking running
- systemd-analyze on an instantiated systemd unit.
-
-
-
-
-
- 2024-02-02
-
-
- [xry111] - Update to tzdata-2024a. Fixes
- #5428.
-
-
- [xry111] - Update to glibc-2.39 (security fix). Fixes
- #5426.
-
-
- [xry111] - Update to linux-6.7.3. Fixes
- #5427.
-
-
-
-
-
- 2024-02-01
-
-
- [bdubbs] - Update to openssl-3.2.1 (security fix). Fixes
- #5425.
-
-
- [bdubbs] - Update to zlib-1.3.1. Fixes
- #5419.
-
-
- [bdubbs] - Update to xz-5.4.6. Fixes
- #5423.
-
-
- [bdubbs] - Update to linux-6.7.2. Fixes
- #5422.
-
-
- [bdubbs] - Update to iana-etc-20240125. Addresses
- #5006.
-
-
- [bdubbs] - Update to binutils-2.42. Fixes
- #5424.
-
-
- [bdubbs] - Update to acl-2.3.2. Fixes
- #5421.
-
-
- [bdubbs] - Update upstream fixes for readline-8.2. Fixes
- #5420.
-
-
- [bdubbs] - Apply upstream fix for bash-5.2.21. Fixes
- #5420.
-
-
-
-
-
- 2024-01-21
-
-
- [xry111] - Apply upstream fix for pkgconf-2.1.0 regression.
- Fixes #5414.
-
-
- [xry111] - Update to jinja2-3.1.3 (security fix). Fixes
- #5411.
-
-
- [xry111] - Update to bc-6.7.5. Fixes
- #5408.
-
-
- [xry111] - Update to attr-2.5.2. Fixes
- #5412.
-
-
- [xry111] - Update to ncurses-6.4-20230520 (security fix).
- Fixes #5416.
-
-
- [xry111] - Update to markupsafe-2.1.4. Fixes
- #5418.
-
-
- [xry111] - Update to linux-6.7.1. Fixes
- #5406.
-
-
- [xry111] - Update to iproute2-6.7.0. Fixes
- #5410.
-
-
- [xry111] - Update to vim-9.1.0041. Addresses
+ [bdubbs] - Update to vim-9.1.0478. Addresses
#4500.
- [xry111] - Update to iana-etc-20240117. Addresses
+ [bdubbs] - Update to iana-etc-20240607. Addresses
#5006.
- [xry111] - Update to shadow-4.14.3. Fixes
- #5413.
+ [bdubbs] - Update to systemd-256. Fixes
+ #5504.
- [xry111] - Fix CVE-2024-0684 for coreutils-9.4. Fixes
- #5417.
+ [bdubbs] - Update to python3-3.12.4. Fixes
+ #5502.
+
+
+ [bdubbs] - Update to perl-5.40.0. Fixes
+ #5503.
+
+
+ [bdubbs] - Update to openssl-3.3.1 (Security fix). Fixes
+ #5500.
+
+
+ [bdubbs] - Update to linux-6.9.4. Fixes
+ #5505.
+
+
+ [bdubbs] - Update to findutils-4.10.0. Fixes
+ #5499.
- 2024-01-18
+ 2024-05-31
- [xry111] - Edit a ncurses header to always use the
- wide-character ABI compatible with libncursesw.so because we
- are faking the 8-bit libncurses.so with it. Fixes
- #5415.
+ [bdubbs] - Update to meson-1.4.1. Fixes
+ #5498.
+
+
+ [bdubbs] - Update to xz-5.6.2. Fixes
+ #5471.
+
+
+ [bdubbs] - Add linux-6.9.x compatibility instructions to
+ systemd
+ udev.
+ Fixes #5496.
+
+
+ [bdubbs] - Update to setuptools-70.0.0 (python module). Fixes
+ #5491.
+
+
+ [bdubbs] - Update to ninja-1.12.1. Fixes
+ #5489.
+
+
+ [bdubbs] - Update to man-pages-6.8. Fixes
+ #5494.
+
+
+ [bdubbs] - Update to linux-6.9.3. Fixes
+ #5491.
+
+
+ [bdubbs] - Update to libcap-2.70. Fixes
+ #5493.
+
+
+ [bdubbs] - Update to iproute2-6.9.0. Fixes
+ #5492.
+
+
+ [bdubbs] - Update to e2fsprogs-1.47.1. Fixes
+ #5495.
- 2024-01-09
+ 2024-05-13
- [renodr] - Fix the definition of the C.UTF-8 locale. Fixes
- #5409.
+ [xry111] - Synchronize coreutils i18n patch from Fedora
+ to fix a build failure on 32-bit x86 and an alarming compiler
+ warning on both 32-bit x86 and x86_64 with GCC 14.1 or
+ later.
- 2023-12-31
+ 2024-05-11
- [xry111] - Add --enable-default-hash-style=gnu configuring
- binutils. Fixes
- #5401.
-
-
- [xry111] - Fix CVE-2023-7008 for systemd-255. Fixes
- #5405.
-
-
- [xry111] - Update to iana-etc-20231205. Addresses
- #5006.
-
-
- [xry111] - Update to tzdata-2023d. Fixes
- #5399.
-
-
- [xry111] - Update to linux-6.6.8. Fixes
- #5397.
-
-
- [xry111] - Update to meson-1.3.1. Fixes
- #5402.
-
-
- [xry111] - Update to grub-2.12. Fixes
- #5396.
-
-
- [xry111] - Update to inetutils-2.5. Fixes
- #5404.
-
-
- [xry111] - Update to setuptools-69.0.3. Fixes
- #5400.
-
-
- [xry111] - Update to xml-parser-2.47. Fixes
- #5403.
-
-
- [xry111] - Update to vim-9.0.2189. Addresses
+ [bdubbs] - Update to vim-9.1.0405. Addresses
#4500.
- [xry111] - Update to autoconf-2.72. Fixes
- #5398.
+ [bdubbs] - Update to util-linux-2.40.1. Fixes
+ #5482.
+
+
+ [bdubbs] - Update to linux-6.8.9. Fixes
+ #5484.
+
+
+ [bdubbs] - Update to jinja2-3.1.4 (Python module). Fixes
+ #5485.
+
+
+ [bdubbs] - Update to iana-etc-20240502. Addresses
+ #5006.
+
+
+ [bdubbs] - Update to gcc-14.1.0. Fixes
+ #5486.
- 2023-12-16
+ 2024-05-01
- [xry111] - Update to udev
- from systemd-255. Fixes
- #5390.
+ [bdubbs] - Add security fix to glibc. Fixes
+ #5481.
+
+
+ [bdubbs] - Update to linux-6.8.8. Fixes
+ #5480.
+
+
+ [bdubbs] - Update to ncurses-6.5. Fixes
+ #5483.
- 2023-12-14
+ 2024-04-16
- [bdubbs] - Update to util-linux v2.39.3. Fixes
- #5388.
-
-
- [bdubbs] - Update to python3-3.12.1. Fixes
- #5392.
-
-
- [bdubbs] - Update to linux-6.6.7. Fixes
- #5387.
-
-
- [bdubbs] - Update to kbd-2.6.4. Fixes
- #5393.
-
-
- [bdubbs] - Update to bc-6.7.4. Fixes
- #5389.
-
-
- [bdubbs] - Reformat util-linux configure parameters. Fixes
- #5395.
+ [bdubbs] - Make minor change to ifup script output text.
- 2023-12-04
+ 2024-04-15
- [thomas] - Modify commands for install Python docs to avoid
- too restrictive permissions on the files and dirs.
+ [bdubbs] - Update to setuptools-69.5.1. Fixes
+ #5478.
+
+
+ [bdubbs] - Update to python3-3.12.3. Fixes
+ #5476.
+
+
+ [bdubbs] - Update to openssl-3.3.0. Fixes
+ #5475.
+
+
+ [bdubbs] - Update to ninja-1.12.0. Fixes
+ #5477.
+
+
+ [bdubbs] - Update to man-db-2.12.1. Fixes
+ #5474.
+
+
+ [bdubbs] - Update to linux-6.8.6. Fixes
+ #5472.
+
+
+ [bdubbs] - Update to iana-etc-20240412. Addresses
+ #5006.
+
+
+ [bdubbs] - Update to vim-9.1.0330. Addresses
+ #4500.
+
+
+
+
+
+ 2024-03-31
+
+
+ [bdubbs] - Update to iana-etc-20240318. Addresses
+ #5006.
+
+
+ [bdubbs] - Update to zstd-1.5.6. Fixes
+ #5468.
+
+
+ [bdubbs] - Update to util-linux-2.40. Fixes
+ #5430.
+
+
+ [bdubbs] - Update to shadow-4.15.1. Fixes
+ #5465.
+
+
+ [bdubbs] - Update to pkgconf-2.2.0. Fixes
+ #5469.
+
+
+ [bdubbs] - Update to linux-6.8.2. Fixes
+ #5467.
+
+
+ [bdubbs] - Update to coreutils-9.5. Fixes
+ #5470.
+
+
+
+
+
+ 2024-03-29
+
+
+ [bdubbs] - Revert to xz-5.4.6 due to upstream
+ compromise.
- 2023-12-01
+ 2024-03-25
- [xry111] - Restore NIC naming based on physical system
- characteristics. Fixes
- #5386.
+ [timtas] - Update to sysvinit-3.09. Fixes
+ #5466.
- 2023-11-30
+ 2024-03-19
- [bdubbs] - Update to vim-9.0.2136. Addresses
- #4500.
+ [renodr] - Update to iproute2-6.8.0. Fixes
+ #5458.
- [bdubbs] - Update to iana-etc-20231117. Addresses
+ [renodr] - Update to man-pages-6.7. Fixes
+ #5464.
+
+
+ [renodr] - Update to Linux-6.8.1. Fixes
+ #5453.
+
+
+ [renodr] - Added LZ4 to the book. Fixes
+ #5463.
+
+
+
+
+
+ 2024-03-15
+
+
+ [bdubbs] - Update to wheel-0.43.0. Fixes
+ #5459.
+
+
+ [bdubbs] - Update to setuptools-69.2.0 (Python module). Fixes
+ #5462.
+
+
+ [bdubbs] - Update to meson-1.4.0. Fixes
+ #5460.
+
+
+ [bdubbs] - Update to expat-2.6.2 (Security fix). Fixes
+ #5461.
+
+
+ [bdubbs] - Update to iana-etc-20240305. Addresses
#5006.
- [bdubbs] - Update to bc-6.7.3. Fixes
- #5385.
+ [bdubbs] - Update to vim-9.1.0161. Addresses
+ #4500.
- [bdubbs] - Update to wheel-0.42.0 (Python Module). Fixes
- #5384.
+ [bdubbs] - Update to xz-5.6.1. Fixes
+ #5457.
- [bdubbs] - Update to perl-5.38.2. Fixes
- #5383.
+ [bdubbs] - Update to shadow-4.15.0. Fixes
+ #5456.
- [bdubbs] - Update to pkgconf-2.1.0. Fixes
- #5382.
+ [bdubbs] - Update to psmisc-23.7. Fixes
+ #5454.
- [bdubbs] - Update to readline patches 002 through 007. Fixes
- #5381.
+ [bdubbs] - Update to kmod-32. Fixes
+ #5455.
- [bdubbs] - Update to openssl-3.2.0. Fixes
- #5380.
-
-
- [bdubbs] - Update to setuptools-69.0.2. Fixes
- #5379.
-
-
- [bdubbs] - Update to linux-6.6.3. Fixes
- #5378.
-
-
- [bdubbs] - Update to meson-1.3.0. Fixes
- #5377.
-
-
- [bdubbs] - Update to gettext-0.22.4. Fixes
- #5376.
+ [bdubbs] - Update to elfutils-0.191. Fixes
+ #5451.
- 2023-11-13
+ 2024-03-02
- [xry111] - Update to elfutils-0.190. Fixes
- #5373.
-
-
- [xry111] - Update to vim-9.0.2103. Addresses
- #4500.
-
-
- [xry111] - Update to linux-6.6.1. Fixes
- #5369.
-
-
- [xry111] - Update to xz-5.4.5. Fixes
- #5371.
-
-
- [xry111] - Update to iana-etc-20231107. Addresses
+ [bdubbs] - Update to iana-etc-20240222. Addresses
#5006.
- [xry111] - Update to gawk-5.3.0. Fixes
- #5372.
+ [bdubbs] - Update to vim-9.1.0145. Addresses
+ #4500.
- [xry111] - Update to bash-5.2.21. Fixes
- #5375.
+ [bdubbs] - Update to xz-5.6.0. Fixes
+ #5447.
- [xry111] - Update to iproute2-6.6.0. Fixes
- #5374.
+ [bdubbs] - Update to tcl-8.6.14. Fixes
+ #5448.
+
+
+ [bdubbs] - Update to shadow-4.14.6. Fixes
+ #5450.
+
+
+ [bdubbs] - Update to setuptools-69.1.1. Fixes
+ #5446.
+
+
+ [bdubbs] - Update to linux-6.7.7. Fixes
+ #5444.
+
+
+ [bdubbs] - Update to libffi-3.4.6. Fixes
+ #5443.
+
+
+ [bdubbs] - Update to gettext-0.22.5. Fixes
+ #5445.
+
+
+ [bdubbs] - Update to expat-2.6.1. Fixes
+ #5449.
- 2023-11-01
+ 2024-03-01
- [bdubbs] - Update to iana-etc-20231019. Addresses
- #5006.
-
-
- [bdubbs] - Update to wheel-0.41.3. Fixes
- #5370.
-
-
- [bdubbs] - Update to shadow-4.14.2. Fixes
- #5368.
-
-
- [bdubbs] - Update to openssl-3.1.4. Fixes
- #5367.
-
-
- [bdubbs] - Update to texinfo-7.1. Fixes
- #5364.
-
-
- [bdubbs] - Update to meson-1.2.3. Fixes
- #5366.
-
-
- [bdubbs] - Update to bc-6.7.2. Fixes
- #5363.
-
-
- [bdubbs] - Update to linux-6.5.9. Fixes
- #5365.
-
-
- [bdubbs] - Update to Python-3.12.0. Fixes
- #5357.
-
-
- [bdubbs] - Add setuptools-68.2.2. Fixes
- #5358.
-
-
-
-
-
- 2023-10-15
-
-
- [bdubbs] - Update to linux-6.5.7. Fixes
- #5362.
-
-
- [bdubbs] - Update to shadow-4.14.1. Fixes
- #5361.
-
-
- [bdubbs] - Update to gettext-0.22.3. Fixes
- #5359.
-
-
-
-
-
- 2023-10-03
-
-
- [xry111] - Update Glibc upstream fixes patch to fix
- CVE-2023-4911.
-
-
-
-
-
- 2023-10-01
-
-
- [bdubbs] - Disable building nscd in glibc. Fixes
- #5349.
-
-
- [bdubbs] - Update to iana-etc-20230929. Addresses
- #5006.
-
-
- [bdubbs] - Update to vim-9.0.1968. Addresses
- #4500.
-
-
- [bdubbs] - Update to openssl-3.1.3. Fixes
- #5350.
-
-
- [bdubbs] - Update to meson-1.2.2. Fixes
- #5356.
-
-
- [bdubbs] - Update to man-db-2.12.0. Fixes
- #5354.
-
-
- [bdubbs] - Update to linux-6.5.5. Fixes
- #5352.
-
-
- [bdubbs] - Update to kmod-31. Fixes
- #5355.
-
-
- [bdubbs] - Update to kbd-2.6.3. Fixes
- #5361.
-
-
- [bdubbs] - Update to gettext-0.22.2. Fixes
- #5348.
-
-
- [bdubbs] - Update to bc-6.7.0. Fixes
- #5353.
-
-
-
-
-
- 2023-09-24
-
-
- [xry111] - Update Glibc upstream fixes patch to plug a
- memory leak introduced by the security fix.
-
-
-
-
-
- 2023-09-17
-
-
- [xry111] - Update to linux-6.5.3. Fixes
- #5343.
-
-
- [xry111] - Update to iana-etc-20230912. Addresses
- #5006.
-
-
- [xry111] - Update to iproute2-6.5.0. Fixes
- #5342.
-
-
-
-
-
- 2023-09-13
-
-
- [xry111] - Fix CVE-2023-4806 for Glibc-2.38. Fixes
- #5347.
-
-
-
-
-
- 2023-09-12
-
-
- [xry111] - Fix CVE-2023-4527 for Glibc-2.38. Fixes
- #5346.
-
-
-
-
-
- 2023-09-07
-
-
- [xry111] - Fix an issue in pkgconf-2.0.3 causing
- BLFS packages fail to build. Fixes
- #5341.
-
-
-
-
-
- 2023-09-05
-
-
- [xry111] - Move pkgconf before binutils for binutils
- building system to detect zstd properly. Fixes
- #5340.
-
-
- [xry111] - Update to linux-6.5.1. Fixes
- #5332.
-
-
- [xry111] - Update to pkgconf-2.0.3. Fixes
- #5339.
-
-
- [xry111] - Update to dbus-1.14.10. Fixes
- #5337.
-
-
-
-
-
- 2023-09-04
-
-
- [bdubbs] - Move caution regarding building by mixing
- different version of LFS to General Compilation Instructions. Fixes
- #5338.
-
-
-
-
-
- 2023-09-02
-
-
- [xry111] - Add --no-cache-dir option for pip3 wheel
- commands. Addresses
- BLFS #18466.
-
-
- [bdubbs] - Update to vim-9.0.1837. Addresses
- #4500.
-
-
- [bdubbs] - Update to zlib-1.3. Fixes
- #5324.
-
-
- [bdubbs] - Update to wheel-0.41.2 (Python Module). Fixes
- #5328.
-
-
- [bdubbs] - Update to util-linux-2.39.2. Fixes
- #5322.
-
-
- [bdubbs] - Update to sysvinit-3.08. Fixes
- #5321.
-
-
- [bdubbs] - Update to shadow-4.14.0. Fixes
- #5319.
-
-
- [bdubbs] - Update to Python-3.11.5. Fixes
- #5330.
-
-
- [bdubbs] - Update to procps-ng-4.0.4. Fixes
- #5335.
-
-
- [bdubbs] - Update to pkgconf-2.0.2. Fixes
- #5323.
-
-
- [bdubbs] - Update to mpfr-4.2.1. Fixes
- #5326.
-
-
- [bdubbs] - Update to kbd-2.6.2. Fixes
- #5318.
-
-
- [bdubbs] - Update to gzip-1.13. Fixes
- #5325.
-
-
- [bdubbs] - Update to coreutils-9.4. Fixes
- #5334.
-
-
- [bdubbs] - Specify the 'nobody-group' for systemd. Fixes
- #5333.
-
-
- [bdubbs] - Remove unused usb group. Fixes
- #5331.
-
-
-
-
-
- 2023-09-01
-
-
- [bdubbs] - LFS-12.0 released.
+ [bdubbs] - LFS-12.1 released.
diff --git a/chapter01/whatsnew.xml b/chapter01/whatsnew.xml
index d1cc11706..315a03bea 100644
--- a/chapter01/whatsnew.xml
+++ b/chapter01/whatsnew.xml
@@ -26,27 +26,27 @@
-
+
+
+
-
+
+
+
@@ -62,15 +62,15 @@
-
+
-
+ Expat-&expat-version;
@@ -80,30 +80,30 @@
-
+
-
- Gawk-&gawk-version;
-
+
+ GCC-&gcc-version;
+ Gettext-&gettext-version;
-
+
@@ -116,18 +116,18 @@
-
+
+
Iana-Etc-&iana-etc-version;
-
+
@@ -137,27 +137,27 @@
Jinja2-&jinja2-version;
-
+
Kmod-&kmod-version;
-
+
-
+ Libelf from Elfutils-&elfutils-version;
-
+
@@ -167,6 +167,9 @@
Linux-&linux-version;
+
@@ -179,24 +182,24 @@
Man-pages-&man-pages-version;
-
+
Meson-&meson-version;
-
+
Ncurses-&ncurses-version;
-
+ OpenSSL-&openssl-version;
@@ -209,12 +212,12 @@
Pkgconf-&pkgconf-version;
-
- Procps-ng-&procps-ng-version;
-
+
+ Psmisc-&psmisc-version;
+ Python-&python-version;
@@ -224,7 +227,7 @@
-
+ Setuptools-&setuptools-version;
@@ -233,24 +236,24 @@
-
-
- SysVinit-&sysvinit-version;
+
-
-
+
+
+
@@ -263,18 +266,18 @@
Wheel-&wheel-version;
-
+
Xz-&xz-version;
-
- Zlib-&zlib-version;
-
+
+ Zstd-&zstd-version;
+
-
- &bash-upstream-fixes-patch;
+ Lz4-&lz4-version;
-
- &readline-fixes-patch;
+ glibc-2.39-upstream_fix-1.patch
-
-
- setuptools-&setuptools-version;
-
-
-
- &systemd-upstream-patch;
-
-
Removed:
-
- glibc-2.38-memalign_fix-1.patch
-
-
-
- grub-2.06-upstream_fixes-1.patch
-
-
-
- readline-8.2-upstream_fix-1.patch
-
-
diff --git a/chapter02/creatingfilesystem.xml b/chapter02/creatingfilesystem.xml
index 9b1a08b2a..74970e226 100644
--- a/chapter02/creatingfilesystem.xml
+++ b/chapter02/creatingfilesystem.xml
@@ -50,7 +50,7 @@
- Other file systems, including FAT32, NTFS, ReiserFS, JFS, and XFS are
+ Other file systems, including FAT32, NTFS, JFS, and XFS are
useful for specialized purposes. More information about these file systems,
and many others, can be found at .
diff --git a/chapter02/stages.xml b/chapter02/stages.xml
index d6d8ec1a4..afb679f48 100644
--- a/chapter02/stages.xml
+++ b/chapter02/stages.xml
@@ -76,9 +76,8 @@
The operations in must be done
before starting or continuing from
- .
+
-
diff --git a/chapter03/packages.xml b/chapter03/packages.xml
index 1f5b55427..dbbb43eae 100644
--- a/chapter03/packages.xml
+++ b/chapter03/packages.xml
@@ -489,6 +489,15 @@
+
+ Lz4 (&lz4-version;) - &lz4-size;:
+
+ Home page:
+ Download:
+ MD5 sum: &lz4-md5;
+
+
+
M4 (&m4-version;) - &m4-size;:
@@ -813,8 +822,7 @@
The version of vim changes daily. To get the latest version, go to
-
- https://github.com/vim/vim/tags.
+ .
diff --git a/chapter03/patches.xml b/chapter03/patches.xml
index 067dc9aea..95d81b1de 100644
--- a/chapter03/patches.xml
+++ b/chapter03/patches.xml
@@ -59,15 +59,15 @@
MD5 sum: &coreutils-i18n-patch-md5;
-
+
- Glibc Upstream Fixes Patch - &glibc-upstream-fixes-patch-size;:
+ Glibc Upstream Fix Patch - &glibc-upstream-patch-size;:
- Download:
- MD5 sum: &glibc-upstream-fixes-patch-md5;
+ Download:
+ MD5 sum: &glibc-upstream-patch-md5;
--->
+
Glibc FHS Patch - &glibc-fhs-patch-size;:
@@ -141,7 +141,7 @@
MD5 sum: &sysvinit-consolidated-patch-md5;
-
+
Compile the package:
diff --git a/chapter07/changingowner.xml b/chapter07/changingowner.xml
index 8f7b5519c..16c052b39 100644
--- a/chapter07/changingowner.xml
+++ b/chapter07/changingowner.xml
@@ -33,9 +33,9 @@
user root by running the following
command:
-chown -R root:root $LFS/{usr,lib,var,etc,bin,sbin,tools}
+chown --from lfs -R root:root $LFS/{usr,lib,var,etc,bin,sbin,tools}
case $(uname -m) in
- x86_64) chown -R root:root $LFS/lib64 ;;
+ x86_64) chown --from lfs -R root:root $LFS/lib64 ;;
esac
diff --git a/chapter07/createfiles.xml b/chapter07/createfiles.xml
index cf68cde64..856ef0dbe 100644
--- a/chapter07/createfiles.xml
+++ b/chapter07/createfiles.xml
@@ -181,6 +181,10 @@ EOF
unnamed ID. But other distros may treat this ID differently, so any
portable program should not depend on this assignment.
+ Some packages need a locale.
+
+localedef -i C -f UTF-8 C.UTF-8
+
Some tests in need a regular
user. We add this user here and delete this account at the end of that
chapter.
diff --git a/chapter07/creatingdirs.xml b/chapter07/creatingdirs.xml
index eab9f5fce..91391ecb5 100644
--- a/chapter07/creatingdirs.xml
+++ b/chapter07/creatingdirs.xml
@@ -28,6 +28,7 @@
mkdir -pv /lib/firmware
mkdir -pv /media/{floppy,cdrom}
mkdir -pv /usr/{,local/}{include,src}
+mkdir -pv /usr/lib/locale
mkdir -pv /usr/local/{bin,lib,sbin}
mkdir -pv /usr/{,local/}share/{color,dict,doc,info,locale,man}
mkdir -pv /usr/{,local/}share/{misc,terminfo,zoneinfo}
diff --git a/chapter07/util-linux.xml b/chapter07/util-linux.xml
index 488635b7a..1ac069b8c 100644
--- a/chapter07/util-linux.xml
+++ b/chapter07/util-linux.xml
@@ -51,17 +51,18 @@
Prepare Util-linux for compilation:
-./configure --libdir=/usr/lib \
- --runstatedir=/run \
- --disable-chfn-chsh \
- --disable-login \
- --disable-nologin \
- --disable-su \
- --disable-setpriv \
- --disable-runuser \
- --disable-pylibmount \
- --disable-static \
- --without-python \
+ ./configure --libdir=/usr/lib \
+ --runstatedir=/run \
+ --disable-chfn-chsh \
+ --disable-login \
+ --disable-nologin \
+ --disable-su \
+ --disable-setpriv \
+ --disable-runuser \
+ --disable-pylibmount \
+ --disable-static \
+ --disable-liblastlog2 \
+ --without-python \
ADJTIME_PATH=/var/lib/hwclock/adjtime \
--docdir=/usr/share/doc/util-linux-&util-linux-version;
diff --git a/chapter08/automake.xml b/chapter08/automake.xml
index ed1907c55..6c7aa2582 100644
--- a/chapter08/automake.xml
+++ b/chapter08/automake.xml
@@ -62,7 +62,8 @@
Replace $((...)) with the number of
logical cores you want to use if you don't want to use all.
- The test t/subobj.sh is known to fail.
+ Out of 2926 tests, 52 are known to fail due to incompatibilities in the
+ test scripts with gcc-14.1 or later.Install the package:
diff --git a/chapter08/bash.xml b/chapter08/bash.xml
index b2edcf797..836367b07 100644
--- a/chapter08/bash.xml
+++ b/chapter08/bash.xml
@@ -49,6 +49,7 @@
./configure --prefix=/usr \
--without-bash-malloc \
--with-installed-readline \
+ bash_cv_strtold_broken=no \
--docdir=/usr/share/doc/bash-&bash-version;
diff --git a/chapter08/chapter08.xml b/chapter08/chapter08.xml
index c3ded2719..43bb6404a 100644
--- a/chapter08/chapter08.xml
+++ b/chapter08/chapter08.xml
@@ -19,6 +19,7 @@
+
diff --git a/chapter08/coreutils.xml b/chapter08/coreutils.xml
index 1ade57e93..0b744081f 100644
--- a/chapter08/coreutils.xml
+++ b/chapter08/coreutils.xml
@@ -53,13 +53,6 @@
those bugs are reproducible without this patch.
-
- Fix a security vulnerability in the split
- utility:
-
-sed -e '/n_out += n_hold/,+4 s|.*bufsize.*|//&|' \
- -i src/split.c
-
Now prepare Coreutils for compilation:autoreconf -fiv
@@ -128,19 +121,30 @@ FORCE_UNSAFE_CONFIGURE=1 ./configure \
chown -R tester .
- Now run the tests:
+
+ Now run the tests (using /dev/null for the
+ standard input, or two tests may be broken if building LFS in a
+ graphical terminal or a session in SSH or GNU Screen etc. because the
+ standard input is connected to a PTY from host distro, and the device
+ node for such a PTY cannot be accessed from the LFS chroot
+ environment):
-su tester -c "PATH=$PATH make RUN_EXPENSIVE_TESTS=yes check"
-
-
- The test-getlogin test may fail in the LFS chroot environment.
+su tester -c "PATH=$PATH make -k RUN_EXPENSIVE_TESTS=yes check" \
+ < /dev/nullRemove the temporary group:groupdel dummy
+
+ Two tests, tests/cp/preserve-mode.sh and
+ tests/mv/acl.sh, are known to
+ fail in the chroot environment, but pass in a complete system.
+
+
Install the package:make install
diff --git a/chapter08/expect.xml b/chapter08/expect.xml
index 7b23e678d..42a11fb9d 100644
--- a/chapter08/expect.xml
+++ b/chapter08/expect.xml
@@ -66,11 +66,16 @@
GDBM, and of course Expect itself) will fail catastrophically, and other
subtle breakages may also happen.
+ Now, make some changes to allow the package with gcc-14.1 or later:
+
+patch -Np1 -i ../expect-&expect-version;-gcc14-1.patch
+
Prepare Expect for compilation:./configure --prefix=/usr \
--with-tcl=/usr/lib \
--enable-shared \
+ --disable-rpath \
--mandir=/usr/share/man \
--with-tclinclude=/usr/include
diff --git a/chapter08/gcc.xml b/chapter08/gcc.xml
index c755dd5da..f8b069db0 100644
--- a/chapter08/gcc.xml
+++ b/chapter08/gcc.xml
@@ -40,20 +40,6 @@
Installation of GCC
-
-
For x86_64 target, set the default directory name for
64-bit libraries to lib. The command is unnecessary,
@@ -75,6 +61,7 @@ cd build
--enable-languages=c,c++ \
--enable-default-pie \
--enable-default-ssp \
+ --enable-host-pie \
--disable-multilib \
--disable-bootstrap \
--disable-fixincludes \
@@ -146,8 +133,8 @@ cd buildIn this section, the test suite for GCC is considered
important, but it takes a long time. First-time builders are
encouraged to run the test suite. The time to run the tests can be
- reduced significantly by adding -jx to the make -k check command below,
- where x is the number of CPU cores on your system.
+ reduced significantly by adding -jx to the make -k check
+ command below, where x is the number of CPU cores on your system.
One set of tests in the GCC test suite is known to exhaust the default
@@ -155,6 +142,14 @@ cd build
ulimit -s 32768
+ Now remove/fix several known test failures:
+
+sed -e '/cpython/d' -i ../gcc/testsuite/gcc.dg/plugin/plugin.exp
+sed -e 's/no-pic /&-no-pie /' -i ../gcc/testsuite/gcc.target/i386/pr113689-1.c
+sed -e 's/300000/(1|300000)/' -i ../libgomp/testsuite/libgomp.c-c++-common/pr109062.c
+sed -e 's/{ target nonpic } //' \
+ -e '/GOTPCREL/d' -i ../gcc/testsuite/gcc.target/i386/fentryname3.c
+
Test the results as a non-privileged user, but do not stop at errors:chown -R tester .
@@ -170,14 +165,14 @@ su tester -c "PATH=$PATH make -k check"Results can be compared with those located at and
.
-
+pr56837.c
+ pr56837.c
and seven tests in the analyzer
directory are known to fail.
-
+
One libstdc++ test (out of over 15000), copy.cc, is
known to fail.
@@ -189,9 +184,10 @@ su tester -c "PATH=$PATH make -k check"
Additionally, several tests in the
vect directory are known to fail
if the hardware does not support AVX.
-
- A few unexpected failures cannot always be avoided. The GCC developers
- are usually aware of these issues, but have not resolved them yet.
+-->
+ A few unexpected failures cannot always be avoided. In some cases
+ test failures depend on the specific hardware of the system.
Unless the test results are vastly different from those at the above URL,
it is safe to continue.
diff --git a/chapter08/glibc.xml b/chapter08/glibc.xml
index 22c70116e..ea89d95bc 100644
--- a/chapter08/glibc.xml
+++ b/chapter08/glibc.xml
@@ -49,12 +49,11 @@
store their runtime data in the FHS-compliant locations:patch -Np1 -i ../&glibc-fhs-patch;
-
+ Now fix a security vulnerability:
+
+patch -Np1 -i ../&glibc-upstream-patch;
+
The Glibc documentation recommends building Glibc
in a dedicated build directory:
@@ -167,9 +166,7 @@ esac
relatively slow and/or running the test suite with multiple
parallel make jobs). These tests can be identified with:
-
- grep "Timed out" -l $(find -name \*.out)
+ grep "Timed out" $(find -name \*.out)It's possible to re-run a single test with enlarged timeout
with
@@ -236,7 +233,7 @@ esac
you MUST follow the note in Libxcrypt
section to install
libcrypt.so.1*
- (overwritting
+ (replacing
libcrypt.so.1 from the
prior Glibc installation).
@@ -254,7 +251,7 @@ esac
rm -f /usr/sbin/nscd
-
+
If this system (prior to LFS 12.1, exclusive) is based on
Systemd, it's also needed to disable and stop the
nscd service now:
@@ -355,8 +352,7 @@ install -v -Dm644 ../nscd/nscd.service /usr/lib/systemd/system/nscd.service
-mkdir -pv /usr/lib/locale
-localedef -i C -f UTF-8 C.UTF-8
+localedef -i C -f UTF-8 C.UTF-8
localedef -i cs_CZ -f UTF-8 cs_CZ.UTF-8
localedef -i de_DE -f ISO-8859-1 de_DE
localedef -i de_DE@euro -f ISO-8859-15 de_DE@euro
@@ -531,7 +527,7 @@ unset ZONEINFOzic ... -p ...This creates the posixrules file. We use
- New York because POSIX requires the daylight savings time rules
+ New York because POSIX requires the daylight saving time rules
to be in accordance with US rules.
diff --git a/chapter08/grub.xml b/chapter08/grub.xml
index aa13ce3b0..a2dbbaf41 100644
--- a/chapter08/grub.xml
+++ b/chapter08/grub.xml
@@ -43,10 +43,12 @@
If your system has UEFI support and you wish to boot LFS with UEFI,
- you can skip this package in LFS,
- and install GRUB with UEFI support (and its dependencies) by following
- the instructions on
+ you need to install GRUB with UEFI support (and its dependencies) by
+ following the instructions on
the BLFS page.
+ You may skip this package, or install this package and the BLFS
+ GRUB for UEFI package without conflict (the BLFS page provides
+ instructions for both cases).
@@ -109,7 +111,7 @@
mv -v /etc/bash_completion.d/grub /usr/share/bash-completion/completionsMaking your LFS system bootable with GRUB will be discussed in
- .
+
diff --git a/chapter08/inetutils.xml b/chapter08/inetutils.xml
index 468ccb25e..693c08405 100644
--- a/chapter08/inetutils.xml
+++ b/chapter08/inetutils.xml
@@ -40,6 +40,10 @@
Installation of Inetutils
+ First, make the package build with gcc-14.1 or later::
+
+sed -i 's/def HAVE_TERMCAP_TGETENT/ 1/' telnet/telnet.c
+
Prepare Inetutils for compilation:./configure --prefix=/usr \
diff --git a/chapter08/kmod.xml b/chapter08/kmod.xml
index 9a16da3f0..6c875caed 100644
--- a/chapter08/kmod.xml
+++ b/chapter08/kmod.xml
@@ -84,17 +84,19 @@
(not the sanitized kernel headers installed earlier),
which are beyond the scope of LFS.
- Install the package and create symlinks for
+ Install the package and recreate some symlinks for
compatibility with Module-Init-Tools (the package that previously handled
- Linux kernel modules):
+ Linux kernel modules). The building system will create all these
+ symlinks in /usr/bin, but we
+ only want lsmod there and all other symlinks in
+ /usr/sbin instead:make install
for target in depmod insmod modinfo modprobe rmmod; do
ln -sfv ../bin/kmod /usr/sbin/$target
-done
-
-ln -sfv kmod /usr/bin/lsmod
+ rm -fv /usr/bin/$target
+done
diff --git a/chapter08/libxcrypt.xml b/chapter08/libxcrypt.xml
index 7c6cc15ba..fb4c4adaa 100644
--- a/chapter08/libxcrypt.xml
+++ b/chapter08/libxcrypt.xml
@@ -110,7 +110,7 @@
--disable-static \
--disable-failure-tokens
make
-cp -av .libs/libcrypt.so.1* /usr/lib
+cp -av --remove-destination .libs/libcrypt.so.1* /usr/lib
diff --git a/chapter08/lz4.xml b/chapter08/lz4.xml
new file mode 100644
index 000000000..993d213e2
--- /dev/null
+++ b/chapter08/lz4.xml
@@ -0,0 +1,141 @@
+
+
+ %general-entities;
+]>
+
+
+
+
+
+ Lz4
+ &lz4-version;
+ &lz4-url;
+
+
+ Lz4-&lz4-version;
+
+
+ Lz4
+
+
+
+
+
+ Lz4 is a lossless compression algorithm, providing compression speed
+ greater than 500 MB/s per core. It features an extremely fast decoder, with
+ speed in multiple GB/s per core. Lz4 can work with Zstandard to allow both
+ algorithms to compress data faster.
+
+
+ &buildtime;
+ &diskspace;
+
+
+ &lz4-fin-sbu;
+ &lz4-fin-du;
+
+
+
+
+
+
+ Installation of Lz4
+
+ Compile the package:
+
+make BUILD_STATIC=no
+
+ To test the results, issue:
+
+
+
+make -j1 check
+
+ Install the package:
+
+make BUILD_STATIC=no PREFIX=/usr install
+
+
+
+
+ Contents of Lz4
+
+
+ Installed programs
+ Installed library
+
+
+ lz4,
+ lz4c (link to lz4),
+ lz4cat (link to lz4), and
+ unlz4 (link to lz4)
+
+
+ liblz4.so
+
+
+
+
+ Short Descriptions
+
+
+
+
+ lz4
+
+ Compresses or decompresses files using the LZ4 format
+
+ lz4
+
+
+
+
+
+ lz4c
+
+ Compresses files using the LZ4 format
+
+ lz4c
+
+
+
+
+
+ lz4cat
+
+ Lists the contents of a file compressed using the LZ4 format
+
+ lz4cat
+
+
+
+
+
+ unlz4
+
+ Decompresses files using the LZ4 format
+
+ unlz4
+
+
+
+
+
+ liblz4
+
+ The library implementing lossless data
+ compression, using the LZ4 algorithm
+
+ liblz4
+
+
+
+
+
+
+
+
+
diff --git a/chapter08/ncurses.xml b/chapter08/ncurses.xml
index 40589c58a..a825f63c9 100644
--- a/chapter08/ncurses.xml
+++ b/chapter08/ncurses.xml
@@ -50,9 +50,9 @@
--without-normal \
--with-cxx-shared \
--enable-pc-files \
- --enable-widec \
--with-pkg-config-libdir=/usr/lib/pkgconfig
+
The meaning of the new configure options:
@@ -94,9 +94,9 @@
-
+
Compile the package:
@@ -127,7 +127,7 @@
make will spawn new shell processes during "make install". -->
The installation of this package will overwrite
- libncursesw.so.&ncurses-release;
+ libncursesw.so.&ncurses-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
@@ -137,8 +137,8 @@
):make DESTDIR=$PWD/dest install
-install -vm755 dest/usr/lib/libncursesw.so.&ncurses-release; /usr/lib
-rm -v dest/usr/lib/libncursesw.so.&ncurses-release;
+install -vm755 dest/usr/lib/libncursesw.so.&ncurses-version; /usr/lib
+rm -v dest/usr/lib/libncursesw.so.&ncurses-version;
sed -e 's/^#if.*XOPEN.*$/#if 1/' \
-i dest/usr/include/curses.h
cp -av dest/* /
diff --git a/chapter08/ninja.xml b/chapter08/ninja.xml
index 106e63970..5bccea1ea 100644
--- a/chapter08/ninja.xml
+++ b/chapter08/ninja.xml
@@ -82,10 +82,14 @@
+ The package tests cannot run in the chroot environment. They require
+ cmake.
+
Install the package:
diff --git a/chapter08/procps.xml b/chapter08/procps.xml
index 5f3e5c6e6..8a4716ade 100644
--- a/chapter08/procps.xml
+++ b/chapter08/procps.xml
@@ -70,11 +70,18 @@
makemake src_w_LDADD='$(LDADD) -lsystemd'
- To run the test suite, run:
+
+ To run the test suite, run:
-make check
+chown -R tester .
+su tester -c "PATH=$PATH make check"
- One test in the "ps" tests is known to fail.
+ One test named
+ ps with output flag bsdtime,cputime,etime,etimes
+ is known to fail if the host kernel is not built with
+ CONFIG_BSD_PROCESS_ACCT enabled.Install the package:
diff --git a/chapter08/python.xml b/chapter08/python.xml
index 7ac618c09..0f22ab2a9 100644
--- a/chapter08/python.xml
+++ b/chapter08/python.xml
@@ -78,11 +78,17 @@
make
- Running the tests at this point is not recommended. The
- tests are known to hang indefinitely in the partial LFS environment.
- If desired, the tests can be rerun at the end of this chapter, or
- when Python 3 is reinstalled in BLFS. To run the tests anyway,
- issue make test.
+ Some tests are known to occasionally hang indefinitely. So to test the
+ results, run the test suite but set a 2-minute time limit for each
+ test case:
+
+make test TESTOPTS="--timeout 120"
+
+ For a relatively slow system you may need to increase the time
+ 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.Install the package:
diff --git a/chapter08/readline.xml b/chapter08/readline.xml
index 1fb7474c1..d1c385bbc 100644
--- a/chapter08/readline.xml
+++ b/chapter08/readline.xml
@@ -49,6 +49,13 @@
sed -i '/MV.*old/d' Makefile.in
sed -i '/{OLDSUFF}/c:' support/shlib-install
+ Prevent hard coding library search paths (rpath) into
+ the shared libraries. This package does not need rpath for an
+ installation into the standard location, and rpath may sometimes cause
+ unwanted effects or even security issues:
+
+sed -i 's/-Wl,-rpath,[^ ]*//' support/shobj-conf
+
Now fix a problem identified upstream:patch -Np1 -i ../&readline-fixes-patch;
diff --git a/chapter08/shadow.xml b/chapter08/shadow.xml
index 89678b3f4..de6b05f75 100644
--- a/chapter08/shadow.xml
+++ b/chapter08/shadow.xml
@@ -41,6 +41,15 @@
Installation of Shadow
+
+
+ If you've installed Linux-PAM, you should follow
+ the BLFS shadow
+ page instead of this page to build (or, rebuild or upgrade)
+ shadow.
+
+
+
If you would like to enforce the use of strong passwords, refer to
for installing
@@ -233,7 +242,8 @@ useradd -D --gid 999
unknown GID 999,
even though the account has been created correctly. That is why we
created the group users
- with this group ID in .
+ with this group ID in
+
diff --git a/chapter08/sysklogd.xml b/chapter08/sysklogd.xml
index 131b7e7fc..26382f8c1 100644
--- a/chapter08/sysklogd.xml
+++ b/chapter08/sysklogd.xml
@@ -55,7 +55,7 @@ sed -i 's/union wait/int/' syslogd.c
Install the package:
-make BINDIR=/sbin install
+make install
diff --git a/chapter08/systemd.xml b/chapter08/systemd.xml
index 2d325d5cd..afc274f4f 100644
--- a/chapter08/systemd.xml
+++ b/chapter08/systemd.xml
@@ -48,14 +48,6 @@
sed -i -e 's/GROUP="render"/GROUP="video"/' \
-e 's/GROUP="sgx", //' rules.d/50-udev-default.rules.in
-
- Now fix a security vulnerability in the DNSSEC verification of
- systemd-resolved and a bug breaking running
- systemd-analyze verify on an instantiated systemd
- unit:
-
-patch -Np1 -i ../&systemd-upstream-patch;
-
Prepare systemd for compilation:mkdir -p build
@@ -226,6 +218,19 @@ meson setup \
ninja
+ Some tests need a basic /etc/os-release file.
+ To test the results, issue:
+
+echo 'NAME="Linux From Scratch"' > /etc/os-release
+ninja test
+
+
+ Three tests: systemd:core / test-namespace,
+ test-chase, and test-systemd-tmpfiles,
+ are known to fail in the LFS chroot environment. Some other tests may
+ fail because they depend on various kernel configuration options.
+
Install the package:ninja install
diff --git a/chapter08/tcl.xml b/chapter08/tcl.xml
index 8a7884804..bfb23c3a8 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;
-
-
+
+
]>
@@ -55,7 +55,23 @@
SRCDIR=$(pwd)
cd unix
./configure --prefix=/usr \
- --mandir=/usr/share/man
+ --mandir=/usr/share/man \
+ --disable-rpath
+
+
+ The meaning of the new configure parameters:
+
+
+ --disable-rpath
+
+ This parameter prevents hard coding library search paths
+ (rpath) into the binary executable files and shared libraries.
+ This package does not need rpath for an installation into the
+ standard location, and rpath may sometimes cause unwanted effects
+ or even security issues.
+
+
+ Build the package:
diff --git a/chapter08/util-linux.xml b/chapter08/util-linux.xml
index 4c53b4eb5..648b204b5 100644
--- a/chapter08/util-linux.xml
+++ b/chapter08/util-linux.xml
@@ -42,43 +42,46 @@
Installation of Util-linux
+
Prepare Util-linux for compilation:
-./configure --bindir=/usr/bin \
- --libdir=/usr/lib \
- --runstatedir=/run \
- --sbindir=/usr/sbin \
- --disable-chfn-chsh \
- --disable-login \
- --disable-nologin \
- --disable-su \
- --disable-setpriv \
- --disable-runuser \
- --disable-pylibmount \
- --disable-static \
- --without-python \
- --without-systemd \
+ ./configure --bindir=/usr/bin \
+ --libdir=/usr/lib \
+ --runstatedir=/run \
+ --sbindir=/usr/sbin \
+ --disable-chfn-chsh \
+ --disable-login \
+ --disable-nologin \
+ --disable-su \
+ --disable-setpriv \
+ --disable-runuser \
+ --disable-pylibmount \
+ --disable-liblastlog2 \
+ --disable-static \
+ --without-python \
+ --without-systemd \
--without-systemdsystemunitdir \
ADJTIME_PATH=/var/lib/hwclock/adjtime \
--docdir=/usr/share/doc/util-linux-&util-linux-version;
-./configure --bindir=/usr/bin \
- --libdir=/usr/lib \
- --runstatedir=/run \
- --sbindir=/usr/sbin \
- --disable-chfn-chsh \
- --disable-login \
- --disable-nologin \
- --disable-su \
- --disable-setpriv \
- --disable-runuser \
- --disable-pylibmount \
- --disable-static \
- --without-python \
+ ./configure --bindir=/usr/bin \
+ --libdir=/usr/lib \
+ --runstatedir=/run \
+ --sbindir=/usr/sbin \
+ --disable-chfn-chsh \
+ --disable-login \
+ --disable-nologin \
+ --disable-su \
+ --disable-setpriv \
+ --disable-runuser \
+ --disable-pylibmount \
+ --disable-liblastlog2 \
+ --disable-static \
+ --without-python \
ADJTIME_PATH=/var/lib/hwclock/adjtime \
--docdir=/usr/share/doc/util-linux-&util-linux-version;
@@ -90,7 +93,14 @@
make
- If desired, run the test suite as a non-&root; user:
+
+ If desired, create a dummy /etc/fstab file
+ to satisfy two tests and run the test suite as a non-&root;
+ user:Running the test suite as the
root user can be harmful to
@@ -103,17 +113,20 @@
bash tests/run.sh --srcdir=$PWD --builddir=$PWD
-chown -R tester .
+touch /etc/fstab
+chown -R tester .
su tester -c "make -k check"
- The hardlink tests will fail if the host's kernel
- does not have the option
- enabled or does not have any options providing a SHA256 implementation
- (for example, , or
- if the CPU supports
- Supplemental SSE3) enabled. In addition,
- two sub-tests from misc: mbsencode and one sub-test from script: replay are
- known to fail.
+
+ The hardlink tests will fail if the host's kernel
+ does not have the option
+ enabled or does not have any options providing a SHA256 implementation
+ (for example, , or
+ if the CPU supports
+ Supplemental SSE3) enabled. In addition, the lsfd: inotify test will
+ fail if the kernel option is not
+ enabled.
+ Install the package:
diff --git a/chapter08/vim.xml b/chapter08/vim.xml
index 030c50442..2ed5cf238 100644
--- a/chapter08/vim.xml
+++ b/chapter08/vim.xml
@@ -71,13 +71,16 @@
Now run the tests as user tester:
-su tester -c "LANG=en_US.UTF-8 make -j1 test" &> vim-test.log
+su tester -c "TERM=xterm-256color LANG=en_US.UTF-8 make -j1 test" \
+ &> vim-test.logThe test suite outputs a lot of binary data to the screen. This can
- cause issues with the settings of the current terminal. The problem can be
+ cause issues with the settings of the current terminal (especially while
+ we are overriding the TERM variable to satisfy some
+ assumptions of the test suite). The problem can be
avoided by redirecting the output to a log file as shown above. A
- successful test will result in the words "ALL DONE" in the log file
- at completion.
+ successful test will result in the words ALL
+ DONE in the log file at completion.
Install the package:
diff --git a/chapter09/clock.xml b/chapter09/clock.xml
index be60684fb..c5aaa9a7a 100644
--- a/chapter09/clock.xml
+++ b/chapter09/clock.xml
@@ -8,7 +8,7 @@
- Configuring the system clock
+ Configuring the System Clockclock
diff --git a/chapter09/networkd.xml b/chapter09/networkd.xml
index 6c2935de1..eb348ec1e 100644
--- a/chapter09/networkd.xml
+++ b/chapter09/networkd.xml
@@ -50,11 +50,11 @@
.netdev and
.network files. For detailed
descriptions and example contents of these configuration files, consult
- the systemd-link(5),
- systemd-netdev(5),
- and systemd-network(5) manual
- pages.
+ the
+ systemd.link(5),
+ systemd.netdev(5), and
+ systemd.network(5)
+ manual pages.
Network Device Naming
diff --git a/chapter09/symlinks.xml b/chapter09/symlinks.xml
index 71e35f231..cd2d58077 100644
--- a/chapter09/symlinks.xml
+++ b/chapter09/symlinks.xml
@@ -39,7 +39,7 @@
often have two ethernet connections named eth0 and
wlan0; such laptops can also use this method. The command line
is in the GRUB configuration file.
- See .
+ See
@@ -123,7 +123,7 @@
/usr/lib/udev/network/99-default.link:
sed -e '/^AlternativeNamesPolicy/s/=.*$/=/' \
- -i /usr/lib/udev/network/99-default.link \
+ /usr/lib/udev/network/99-default.link \
> /etc/udev/network/99-default.link
@@ -219,8 +219,8 @@
Dealing with Duplicate Devices
- As explained in , the order in
- which devices with the same function appear in
+ As explained in the
+ order in which devices with the same function appear in
/dev is essentially random.
E.g., if you have a USB web camera and a TV tuner, sometimes
/dev/video0 refers to the camera and
@@ -229,8 +229,9 @@
For all classes of hardware except sound cards and network cards, this is
fixable by creating udev rules to create persistent symlinks.
The case of network cards is covered separately in
- , and sound card configuration can
- be found in BLFS.
+ and sound card
+ configuration can be found in
+ BLFS.For each of your devices that is likely to have this problem
(even if the problem doesn't exist in your current Linux distribution),
diff --git a/chapter09/usage.xml b/chapter09/usage.xml
index 6b5441bba..554affc71 100644
--- a/chapter09/usage.xml
+++ b/chapter09/usage.xml
@@ -254,7 +254,7 @@ EOF
/sys/class/rtc.
For information on kernel module loading and udev, see
- .
+
diff --git a/chapter10/kernel.xml b/chapter10/kernel.xml
index f85a66e0b..71dc04a2a 100644
--- a/chapter10/kernel.xml
+++ b/chapter10/kernel.xml
@@ -55,8 +55,8 @@
LFS editors recommend that users not familiar with this process follow
the procedures below fairly closely. The objective is to get an
initial system to a point where you can log in at the command line when
- you reboot later in . At this point
- optimization and customization is not a goal.
+ you reboot later in
+ At this point optimization and customization is not a goal.
@@ -87,7 +87,7 @@
un-tarring.
There are several ways to configure the kernel options. Usually,
- This is done through a menu-driven interface, for example:
+ this is done through a menu-driven interface, for example:
make menuconfig
diff --git a/chapter10/kernel/kernel.version b/chapter10/kernel/kernel.version
index 06a765991..dd0026fc1 100644
--- a/chapter10/kernel/kernel.version
+++ b/chapter10/kernel/kernel.version
@@ -1 +1 @@
-6.7.1
+6.8.9
diff --git a/chapter10/kernel/systemd.toml b/chapter10/kernel/systemd.toml
index dae4a4049..cfb8bf8f1 100644
--- a/chapter10/kernel/systemd.toml
+++ b/chapter10/kernel/systemd.toml
@@ -14,7 +14,6 @@ UEVENT_HELPER=' '
DEVTMPFS='*'
DEVTMPFS_MOUNT='*'
DRM=' *M'
-AUDIT=' '
NET='*'
INET='*'
IPV6='*'
@@ -24,6 +23,11 @@ DMIID='*'
INOTIFY_USER='*'
TMPFS='*'
TMPFS_POSIX_ACL='*'
+CGROUP_SCHED='* '
+
+[RT_GROUP_SCHED]
+value = ' '
+comment = 'This may cause some systemd features malfunction'
revision='systemd'
diff --git a/chapter10/kernel/systemd.xml b/chapter10/kernel/systemd.xml
index 5ed373790..4960796ef 100644
--- a/chapter10/kernel/systemd.xml
+++ b/chapter10/kernel/systemd.xml
@@ -3,16 +3,18 @@
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-General setup --->
+General setup --->
[ ] Compile the kernel with warnings as errors [WERROR]
- [ ] Auditing support [AUDIT]
CPU/Task time and stats accounting --->
[*] Pressure stall information tracking [PSI]
[ ] Require boot parameter to enable pressure stall information tracking
... [PSI_DEFAULT_DISABLED]
< > Enable kernel headers through /sys/kernel/kheaders.tar.xz [IKHEADERS]
[*] Control Group support ---> [CGROUPS]
- [*] Memory controller [MEMCG]
+ [*] Memory controller [MEMCG]
+ [ /*] CPU controller ---> [CGROUP_SCHED]
+ # This may cause some systemd features malfunction:
+ [ ] Group scheduling for SCHED_RR/FIFO [RT_GROUP_SCHED]
[ ] Configure standard kernel features (expert users) ---> [EXPERT]
Processor type and features --->
diff --git a/lfs-latest-git.php b/lfs-latest-git.php
index c2414789a..52eb501b4 100644
--- a/lfs-latest-git.php
+++ b/lfs-latest-git.php
@@ -15,7 +15,7 @@ $regex = array();
$regex[ 'intltool' ] = "/^.*Latest version is (\d[\d\.]+\d).*$/";
$regex[ 'less' ] = "/^.*current released version is less-(\d+).*$/";
$regex[ 'mpfr' ] = "/^mpfr-([\d\.]+)\.tar.*$/";
-$regex[ 'Python' ] = "/^.*Latest Python 3.*Python (3[\d\.]+\d).*$/";
+//$regex[ 'Python' ] = "/^.*Latest Python 3.*Python (3[\d\.]+\d).*$/";
//$regex[ 'sysvinit' ] = "/^.*sysvinit-([\d\.]+)dsf\.tar.*$/";
$regex[ 'tzdata' ] = "/^.*tzdata([\d]+[a-z]).*$/";
$regex[ 'xz' ] = "/^.*xz-([\d\.]*\d).*$/";
@@ -77,6 +77,7 @@ function http_get_file( $url )
}
if ( preg_match( "/sourceforge/", $url ) ||
+ preg_match( "/python/", $url ) ||
preg_match( "/psmisc/", $url ) )
{
exec( "lynx -dump $url 2>/dev/null", $lines );
@@ -134,6 +135,7 @@ if ( $package == "iana-etc" ) $dirpath = github("Mic92/iana-etc");
if ( $package == "intltool" ) $dirpath = "https://launchpad.net/intltool/trunk";
if ( $package == "libffi" ) $dirpath = github("libffi/libffi");
if ( $package == "libxcrypt" ) $dirpath = github("besser82/libxcrypt");
+if ( $package == "lz" ) $dirpath = github("lz4/lz4");
if ( $package == "meson" ) $dirpath = github("mesonbuild/meson");
if ( $package == "mpc" ) $dirpath = "https://ftp.gnu.org/gnu/mpc";
if ( $package == "mpfr" ) $dirpath = "https://mpfr.loria.fr/mpfr-current";
@@ -145,7 +147,7 @@ if ( $package == "Python" ) $dirpath = "https://www.python.org/downloads/sou
if ( $package == "shadow" ) $dirpath = github("shadow-maint/shadow");
if ( $package == "sysvinit" ) $dirpath = github("slicer69/sysvinit");
if ( $package == "MarkupSafe" ) $dirpath = "https://pypi.python.org/pypi/MarkupSafe/";
-if ( $package == "Jinja" ) $dirpath = "https://pypi.python.org/pypi/Jinja2/";
+if ( $package == "jinja" ) $dirpath = "https://pypi.python.org/pypi/Jinja2/";
if ( $package == "systemd" ) $dirpath = github("systemd/systemd");
//if ( $package == "tcl" ) $dirpath = "https://sourceforge.net/projects/tcl/files";
if ( $package == "tcl" ) $dirpath = "https://www.tcl.tk/software/tcltk/download.html";
@@ -160,53 +162,6 @@ if ( $package == "zstd" ) $dirpath = github("facebook/zstd");
if ( preg_match( "/^ftp/", $dirpath ) )
{
echo "ftp should not occur\n";
- /*
- $dirpath = substr( $dirpath, 6 ); // Remove ftp://
- $dirpath = rtrim ( $dirpath, "/" ); // Trim any trailing slash
- $position = strpos( $dirpath, "/" ); // Divide at first slash
- $server = substr( $dirpath, 0, $position );
- $path = substr( $dirpath, $position );
-
- $conn = ftp_connect( $server );
- ftp_login( $conn, "anonymous", "" );
-
- // See if we need special handling
- if ( isset( $exceptions[ $package ] ) )
- {
- $specials = explode( ":", $exceptions[ $package ] );
-
- foreach ( $specials as $i )
- {
- list( $op, $regexp ) = explode( "=", $i );
-
- switch ($op)
- {
- case "UPDIR":
- // Remove last dir from $path
- $position = strrpos( $path, "/" );
- $path = substr( $path, 0, $position );
-
- // Get dir listing
- $lines = ftp_rawlist ($conn, $path);
- $max = find_max( $lines, $regexp, $regexp );
- break;
-
- case "DOWNDIR":
- // Append found directory
- $path .= "/$max";
- break;
-
- default:
- echo "Error in specials array for $package\n";
- return -5;
- break;
- }
- }
- }
-
- $lines = ftp_rawlist ($conn, $path);
- ftp_close( $conn );
-*/
}
else // http(s)
{
@@ -303,17 +258,23 @@ if ( $package == "zstd" ) $dirpath = github("facebook/zstd");
return find_max( $lines, "/v\d/", "/^.*v([\d\.]+)$/" );
if ( $package == "psmisc" )
- return find_max( $lines, "/v\d/", "/^.*v([\d\.]+).tar.*$/" );
+ return find_max( $lines, "/v\d/", "/^.*v([\d\.]+)$/" );
if ( $package == "grub" )
return find_max( $lines, "/grub/", "/^.*grub-([\d\.]+).tar.xz.*$/" );
- if ( $package == "Jinja" )
+ if ( $package == "jinja" )
return find_max( $lines, "/Jinja/", "/^.*Jinja2 ([\d\.]+).*$/" );
+ if ( $package == "lz" )
+ return find_max( $lines, "/name.:/", '/^.*LZ4 v([\d\.]+)".*$/' );
+
if ( $package == "openssl" )
return find_max( $lines, "/openssl/", "/^.*openssl-([\d\.p]*\d.?).tar.*$/" );
+ if ( $package == "Python" )
+ return find_max( $lines, "/Python 3/", "/^.*Python (3[\d\.]*\d) .*$/" );
+
if ( $package == "vim" )
return find_max( $lines, "/v\d\./", "/^.*v([\d\.]+).*$/" );
@@ -332,7 +293,6 @@ function get_current()
// Fetech from git and get wget-list
$current = array();
- #$lfssvn = "svn://svn.linuxfromscratch.org/LFS/trunk";
$lfsgit = "https://git.linuxfromscratch.org/lfs.git";
$tmpdir = exec( "mktemp -d /tmp/lfscheck.XXXXXX" );
@@ -364,7 +324,6 @@ function get_current()
$file = rtrim( $file );
$pkg_pattern = "/(\D*).*/";
- //$pattern = "/\D*(\d.*\d)\D*/";
$pattern = "/\D*(\d.*\d)\D*/";
if ( preg_match( "/e2fsprogs/", $file ) )
diff --git a/packages.ent b/packages.ent
index 2625343cf..d73f29027 100644
--- a/packages.ent
+++ b/packages.ent
@@ -104,15 +104,15 @@
-
-
+
+
-
+
-
+
@@ -140,26 +140,26 @@
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
+
@@ -182,10 +182,10 @@
-
-
+
+
-
+
@@ -218,10 +218,10 @@
-
-
+
+
-
+
@@ -230,7 +230,7 @@
-
+
@@ -245,10 +245,10 @@
-
-
+
+
-
+
@@ -319,10 +319,10 @@
-
-
+
+
-
+
@@ -343,20 +343,20 @@
-
-
+
+
-
+
-
-
-
-
+
+
+
+
@@ -369,10 +369,10 @@
-
-
+
+
-
+
@@ -385,7 +385,7 @@
-
+
@@ -393,18 +393,18 @@
-
-
+
+
-
+
-
-
+
+
-
+
@@ -434,13 +434,13 @@
-
+
-
+
-
+
-
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
@@ -566,23 +571,23 @@
-
-
+
+
-
+
-
+
-
+
-
+
@@ -591,14 +596,14 @@
-
+
-
-
+
+
-
+
@@ -606,19 +611,19 @@
-
+
-
+
-
+
-
-
+
+
@@ -639,18 +644,18 @@
-
-
+
+
-
+
-
-
+
+
-
+
@@ -663,29 +668,29 @@
-
+
-
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
+
@@ -698,15 +703,15 @@
-
+
-
+
-
-
+
+
-
-
+
+
@@ -735,11 +740,11 @@
-
-
-
+
+
+
-
+
@@ -749,21 +754,32 @@
-
+
-
+
+
-
+
-
+
-
+
@@ -776,10 +792,10 @@
-
-
-
-
+
+
+
+
@@ -798,10 +814,10 @@
-
-
+
+
-
+
diff --git a/part3intro/generalinstructions.xml b/part3intro/generalinstructions.xml
index 624771c2d..37e07f862 100644
--- a/part3intro/generalinstructions.xml
+++ b/part3intro/generalinstructions.xml
@@ -114,7 +114,7 @@
Do not use any method except the tar command
to extract the source code. Notably, using the cp -R
command to copy the
- source code tree somewhere else can destroy links and
+ source code tree somewhere else can destroy
timestamps in the source tree, and cause the build to fail.
diff --git a/patches.ent b/patches.ent
index 17966e30c..8b29af8a5 100644
--- a/patches.ent
+++ b/patches.ent
@@ -10,18 +10,22 @@
-
-
-
+
+
+
+
+
+
+
-
+
+
+
+
+
@@ -33,7 +37,8 @@
-
+
diff --git a/stylesheets/lfs-xsl/nochunks.xsl b/stylesheets/lfs-xsl/nochunks.xsl
index 896449d7c..d5afb4473 100644
--- a/stylesheets/lfs-xsl/nochunks.xsl
+++ b/stylesheets/lfs-xsl/nochunks.xsl
@@ -123,7 +123,7 @@ a:active { color: #6b77b1 ! important;}
padding: 0 1em;
}
-.book h1, .book .authorgroup, .book .copyright, .book .legalnotice .revhistory {
+/*.book h1,*/ .book .authorgroup, .book .copyright, .book .legalnotice .revhistory {
background: #f5f6f7;
margin: 0px auto;
padding: .1em 1em;
@@ -188,6 +188,10 @@ h1 {
.book h1 {
margin: 0;
padding: 0.4em;
+ background: #f5f6f7;
+ border-top: .2em solid #dbddec;
+ border-bottom: .2em solid #dbddec;
+ text-align: center;
}
h1.title sup {
@@ -198,7 +202,7 @@ h2 {
font-size: 144%;
}
-.preface h2, .part h1, .chapter h2, .appendix h2, .index h1, .sect1 h2 {
+.preface h2, .part h1, .chapter h2, .appendix h2, .index h1, .sect1 h2, .part h2 {
background: #f5f6f7;
border-top: .2em solid #dbddec;
border-bottom: .2em solid #dbddec;