diff --git a/appendices/dependencies.xml b/appendices/dependencies.xml
index 03eed010f..697d0d1d7 100644
--- a/appendices/dependencies.xml
+++ b/appendices/dependencies.xml
@@ -312,7 +312,8 @@
&external;
- Elfutils
+ Elfutils and
+ Jansson
@@ -463,7 +464,9 @@
&before;
- Bash, Diffutils, Eudev, Findutils, and Man-DB
+ Bash, Diffutils, Eudev,
+ Findutils, and Man-DB, and Systemd
@@ -479,42 +482,45 @@
-
+
DejaGNU
@@ -633,9 +639,9 @@
- Eudev
+ Eudev
-
+ &dependencies;Bash, Binutils, Coreutils, Gawk, GCC, Glibc, Grep, Gperf, Make,
@@ -643,28 +649,28 @@
-
+ &runtime;Glibc, Kmod, Xz, Util-linux, and Zlib.
-
+ &testsuites;None
-
+ &before;None
-
+ &external;None
@@ -1578,7 +1584,8 @@
&before;
- Eudev
+ Eudev
+ Systemd
@@ -1625,6 +1632,7 @@
&external;
+ PCRE2 or
PCRE
@@ -2027,7 +2035,8 @@
&external;
- libseccomp
+ libseccomp and
+ po4a
@@ -2435,7 +2444,7 @@
&dependencies;
- Bash, Binutils, Coreutils, Gawk, GCC, Glibc, Grep, Make, Popt,
+ Bash, Binutils, Coreutils, Gawk, GCC, Glibc, Grep, Make,
and Sed
@@ -2714,37 +2723,37 @@
- Sysklogd
+ Sysklogd
-
+ &dependencies;Binutils, Coreutils, GCC, Glibc, Make, and Patch
-
+ &runtime;Glibc
-
+ &testsuites;No test suite available
-
+ &before;None
-
+ &external;None
@@ -2828,7 +2837,8 @@
quota-tools,
rsync,
- Sphinx,
+
+ Sphinx,
tpm2-tss,
Valgrind,
@@ -3000,8 +3010,10 @@
&dependencies;
- Bash, Binutils, Coreutils, Diffutils, Eudev, Findutils, Gawk,
- GCC, Gettext, Glibc, Grep, Make, Ncurses, Sed, and Zlib
+ Bash, Binutils, Coreutils, Diffutils,
+ Eudev, Findutils, Gawk,
+ GCC, Gettext, Glibc, Grep, Make, Ncurses, Sed,
+ Systemd, and Zlib
@@ -3078,7 +3090,7 @@
Xorg,
GTK+2,
- LessTif,
+ LessTif,
Ruby, and
GPM
@@ -3192,7 +3204,9 @@
&before;
- Eudev, File, GRUB, Kmod, and Man-DB
+ Eudev, File, GRUB, Kmod,
+ and Man-DB, and Systemd
diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml
index 196c32fe5..72de0fc74 100644
--- a/chapter01/changelog.xml
+++ b/chapter01/changelog.xml
@@ -39,6 +39,185 @@
or as
appropriate for the entry or if needed the entire day's listitem.
-->
+
+ 2023-02-19
+
+
+ [xry111] - Apply a patch for GRUB for an issue triggered
+ with e2fsprogs-1.47.0. Fixes
+ #5219.
+
+
+
+
+
+ 2023-02-13
+
+
+ [bdubbs] - Update to man-pages-6.03. Fixes
+ #5216.
+
+
+
+
+
+ 2023-02-11
+
+
+ [bdubbs] - Update to iana-etc-20230202. Addresses
+ #5006.
+
+
+ [bdubbs] - Update to zstd-1.5.4. Fixes
+ #5215.
+
+
+ [bdubbs] - Update to Python3-3.11.2. Fixes
+ #5214.
+
+
+ [bdubbs] - Update to e2fsprogs-1.47.0. Fixes
+ #5213.
+
+
+ [bdubbs] - Update to dbus-1.14.6. Fixes
+ #5212.
+
+
+ [bdubbs] - Update to linux-6.1.11. Fixes
+ #5210.
+
+
+ [bdubbs] - Update to libcap-2.67. Fixes
+ #5209.
+
+
+ [bdubbs] - Update to bc-6.2.4. Fixes
+ #5207.
+
+
+
+
+
+ 2023-02-07
+
+
+ [renodr] - Update to OpenSSL-3.0.8 (Security Update). Fixes
+ #5211.
+
+
+ [renodr] - Update to e2fsprogs-1.46.6 (Security Update). Fixes
+ #5208.
+
+
+
+
+
+ 2023-02-06
+
+
+ [renodr] - Repackage the systemd man pages to prevent stray
+ man pages from ending up in /usr/share/man.
+
+
+
+
+
+ 2023-02-02
+
+
+ [xry111] - Update to glibc-2.37. Fixes
+ #5203.
+
+
+ [xry111] - Update to bc-6.2.3. Fixes
+ #5204.
+
+
+ [xry111] - Update to linux-6.1.9. Fixes
+ #5205.
+
+
+ [xry111] - Update to vim-9.0.1273. Addresses
+ #4500.
+
+
+ [xry111] - Remove
+ for libffi.
+
+
+
+
+
+ 2023-02-01
+
+
+ [bdubbs] - Update to texinfo-7.0.2. Fixes
+ #5202.
+
+
+ [bdubbs] - Update to linux-6.1.8. Fixes
+ #5201.
+
+
+ [bdubbs] - Update to diffutils-3.9. Fixes
+ #5199.
+
+
+
+
+
+ 2023-01-22
+
+
+ [bdubbs] - Update to MarkupSafe-2.1.2. Fixes
+ #5200.
+
+
+
+
+
+ 2023-01-15
+
+
+ [thomas] - Add libsframe to online_usrlib in stripping.
+ libsframe.so.0.0.0 is in use by strip.
+
+
+ [bdubbs] - Update to iana-etc-20230109. Addresses
+ #5006.
+
+
+ [bdubbs] - Update to binutils-2.40. Fixes
+ #5198.
+
+
+ [bdubbs] - Update to bc-6.2.2. Fixes
+ #5192.
+
+
+ [bdubbs] - Update to linux-6.1.6. Fixes
+ #5193.
+
+
+ [bdubbs] - Update to man-db-2.11.2. Fixes
+ #5196.
+
+
+ [bdubbs] - Update to mpfr-4.2.0. Fixes
+ #5195.
+
+
+ [bdubbs] - Update to ncurses-6.4. Fixes
+ #5194.
+
+
+ [bdubbs] - Update to xz-5.4.1. Fixes
+ #5197.
+
+
+
+
2023-01-01
diff --git a/chapter01/whatsnew.xml b/chapter01/whatsnew.xml
index 86992592b..bf69cb08f 100644
--- a/chapter01/whatsnew.xml
+++ b/chapter01/whatsnew.xml
@@ -52,9 +52,9 @@
Bc &bc-version;
-
+
@@ -73,12 +73,12 @@
D-Bus-&dbus-version;
-
-
+
@@ -109,9 +109,9 @@
Gettext-&gettext-version;
-
+
@@ -187,21 +187,21 @@
Man-pages-&man-pages-version;
-
+
Meson-&meson-version;MPC-&mpc-version;
-
-
+
Ninja-&ninja-version;
@@ -274,9 +274,9 @@
Zlib-&zlib-version;
-
+
-
+
&readline-fixes-patch;
@@ -309,9 +309,9 @@
Removed:
-
+
+ zstd-1.5.2-upstream_fixes-1.patch
+
diff --git a/chapter02/hostreqs.xml b/chapter02/hostreqs.xml
index c612f5963..05cf80d2b 100644
--- a/chapter02/hostreqs.xml
+++ b/chapter02/hostreqs.xml
@@ -10,6 +10,21 @@
Host System Requirements
+
+ Hardware
+
+ The LFS editors recommend that the system CPU have at least
+ four cores and that the system have at least 8 GB of memory.
+ Older systems that do not meet these requirements will still work,
+ but the time to build packages will be significantly longer
+ than documented.
+
+
+
+
+
+ Software
+
Your host system should have the following software with the
minimum versions indicated. This should not be an issue for most
modern Linux distributions. Also note that many distributions will
@@ -224,5 +239,5 @@ bash library-check.sh
The files identified by this script should be all present
or all absent, but not only one or two present.
-->
-
+
diff --git a/chapter03/packages.xml b/chapter03/packages.xml
index d82e0b4c4..92d44afaf 100644
--- a/chapter03/packages.xml
+++ b/chapter03/packages.xml
@@ -270,6 +270,20 @@
Home page: Download: MD5 sum: &glibc-md5;
+
+
+
+ The Glibc developers maintain a
+ Git
+ branch containing patches considered worthy for
+ Glibc-&glibc-version; but unfortunately developed after
+ Glibc-&glibc-version; release. The LFS editors will issue a
+ security advisory if any security fix is added into the branch,
+ but no actions will be taken for other newly added patches. You
+ may review the patches yourself and incorporate some patches if
+ you consider them important.
+
+
diff --git a/chapter03/patches.xml b/chapter03/patches.xml
index 05b49d319..44367898f 100644
--- a/chapter03/patches.xml
+++ b/chapter03/patches.xml
@@ -85,6 +85,14 @@
+
+ GRUB Upstream Fixes Patch - &grub-upstream-fixes-patch-size;:
+
+ Download:
+ MD5 sum: &grub-upstream-fixes-patch-md5;
+
+
+
Kbd Backspace/Delete Fix Patch - &kbd-backspace-patch-size;:
@@ -153,6 +161,7 @@
-->
+
Total size of these patches: about
diff --git a/chapter04/aboutsbus.xml b/chapter04/aboutsbus.xml
index 82934d851..f88db24f6 100644
--- a/chapter04/aboutsbus.xml
+++ b/chapter04/aboutsbus.xml
@@ -13,17 +13,17 @@
Many people would like to know beforehand approximately how long
it takes to compile and install each package. Because Linux From
Scratch can be built on many different systems, it is impossible to
- provide absolute time estimates. The biggest package (Glibc) will
- take approximately 20 minutes on the fastest systems, but could take
- up to three days on slower systems! Instead of providing actual times,
+ provide absolute time estimates. The biggest package (gcc) will
+ take approximately 5 minutes on the fastest systems, but could take
+ days on slower systems! Instead of providing actual times,
the Standard Build Unit (SBU) measure will be
used instead.
- The SBU measure works as follows. The first package to be compiled
- is binutils in . The
- time it takes to compile this package is what we will refer to as the
- Standard Build Unit or SBU. All other compile times will be expressed in
- terms of this unit of time.
+ The SBU measure works as follows. The first package to be compiled is
+ binutils in . The time it takes to
+ compile using one core is what we will refer to as the Standard
+ Build Unit or SBU. All other compile times will be expressed in terms of this
+ unit of time.For example, consider a package whose compilation time is 4.5
SBUs. This means that if your system took 10 minutes to compile and
@@ -55,6 +55,11 @@
be more difficult because the lines from different processes will be
interleaved. If you run into a problem with a build step, revert to a
single processor build to properly analyze the error messages.
+
+ The times presented here are based upon using four cores (-j4). The
+ times in Chapter 8 also include the time to run the regression tests for
+ the package unless specified otherwise.
+
diff --git a/chapter05/gcc-pass1.xml b/chapter05/gcc-pass1.xml
index 2b2133a43..239888969 100644
--- a/chapter05/gcc-pass1.xml
+++ b/chapter05/gcc-pass1.xml
@@ -203,6 +203,14 @@ cd build
header using a command that is identical to what the GCC build system does
in normal circumstances:
+
+ The command below shows an example of nested command substitution
+ using two methods: backquotes and a $() construct.
+ It could be rewritten using the same method for both substitutions,
+ but is shown this way to demonstrate how they can be mixed. Generally
+ the $() method is preferred.
+
+
cd ..
cat gcc/limitx.h gcc/glimits.h gcc/limity.h > \
`dirname $($LFS_TGT-gcc -print-libgcc-file-name)`/install-tools/include/limits.h
diff --git a/chapter05/glibc.xml b/chapter05/glibc.xml
index 2be7c2b0e..d3e5600e8 100644
--- a/chapter05/glibc.xml
+++ b/chapter05/glibc.xml
@@ -43,11 +43,6 @@
Installation of Glibc
- Fix an issue building Glibc with parallel jobs and make-4.4
- or later:
-
-sed '/MAKEFLAGS :=/s/)r/) -r/' -i Makerules
-
Some of the Glibc programs use the non-FHS-compliant
/var/db directory to store their
runtime data. Apply the following patch to make such programs store their
diff --git a/chapter08/bash.xml b/chapter08/bash.xml
index 5eb49505a..a8bf2b871 100644
--- a/chapter08/bash.xml
+++ b/chapter08/bash.xml
@@ -87,6 +87,19 @@ lassign [wait] _ _ _ value
exit $value
EOF
+ The test suite uses diff to detect the
+ difference between test script output and the expected output. Any
+ output from diff (prefixed with
+ < and
+ >) indicates a test failure, unless
+ there is a message saying the difference can be ignored.
+
+ One test named run-builtins is known to fail on
+ some host distros with a difference on the first line of the
+ output.
+
Install the package:make install
diff --git a/chapter08/binutils.xml b/chapter08/binutils.xml
index f4307ea48..5722780fe 100644
--- a/chapter08/binutils.xml
+++ b/chapter08/binutils.xml
@@ -164,31 +164,14 @@ cd build
grep '^FAIL:' $(find -name '*.log')
-
-
- The test named ar with versioned solib is
- known to fail.
-
- Because of a race between the gas test suite and the gprofng test suite,
- some gas tests may fail if parallel jobs are used. If you are not
- assured of the correctness of gas, invoke
- make check-gas to run the gas test suite separately and
- all tests should pass. Three gprofng tests yield the
- ERROR result, and they are counted as
- UNRESOLVED in the summary.
-
Install the package:make tooldir=/usr installRemove useless static libraries and an empty man page:
-rm -fv /usr/lib/lib{bfd,ctf,ctf-nobfd,opcodes}.a
-rm -fv /usr/share/man/man1/gprofng.1
+rm -fv /usr/lib/lib{bfd,ctf,ctf-nobfd,sframe,opcodes}.a
+rm -fv /usr/share/man/man1/{gprofng,gp-*}.1
@@ -203,7 +186,7 @@ rm -fv /usr/share/man/man1/gprofng.1
addr2line, ar, as, c++filt, dwp, elfedit, gprof, gprofng, ld, ld.bfd, ld.gold, nm,
objcopy, objdump, ranlib, readelf, size, strings, and strip
- libbfd.so, libctf.so, libctf-nobfd.so, and libopcodes.so
+ libbfd.so, libctf.so, libctf-nobfd.so, libopcodes.so, and libsframe.so/usr/lib/ldscripts
@@ -464,6 +447,17 @@ rm -fv /usr/share/man/man1/gprofng.1
+
+ libsframe
+
+ A library to support online backtracing using a
+ simple unwinder
+
+ libsframe
+
+
+
+
diff --git a/chapter08/dbus.xml b/chapter08/dbus.xml
index 71a93e5cb..8f3c80f7a 100644
--- a/chapter08/dbus.xml
+++ b/chapter08/dbus.xml
@@ -67,9 +67,9 @@
--with-system-socket=/run/dbus/system_bus_socket
- These set the location of the PID file and the system bus socket
+ These cause the PID file and the system bus socket
to be in /run, instead of
- deprecated /var/run.
+ the deprecated /var/run.
diff --git a/chapter08/e2fsprogs.xml b/chapter08/e2fsprogs.xml
index bccf33227..68cfffd69 100644
--- a/chapter08/e2fsprogs.xml
+++ b/chapter08/e2fsprogs.xml
@@ -134,6 +134,33 @@ install -v -m644 doc/com_err.info /usr/share/info
install-info --dir-file=/usr/share/info/dir /usr/share/info/com_err.info
+
+ Configuring E2fsprogs
+
+
+ /etc/mke2fs.conf
+
+
+
+ /etc/mke2fs.conf contains the default value of
+ various command line options of mke2fs. You may
+ edit the file to make the default values suitable for your need.
+ For example, some utilities (not in LFS or BLFS) cannot recognize a
+ ext4 file system with
+ metadata_csum_seed feature enabled.
+ If you need such an utility, you may
+ remove the feature from the default
+ ext4 feature list with the
+ command:
+
+
+ sed 's/metadata_csum_seed,//' -i /etc/mke2fs.conf
+
+
+ Read the man page mke2fs.conf(5) for details.
+
+
+
Contents of E2fsprogs
diff --git a/chapter08/glibc.xml b/chapter08/glibc.xml
index 86704bc47..43a58b366 100644
--- a/chapter08/glibc.xml
+++ b/chapter08/glibc.xml
@@ -43,11 +43,6 @@
Installation of Glibc
- First, fix an issue building Glibc with parallel jobs and Make-4.4
- or later:
-
-sed '/MAKEFLAGS :=/s/)r/) -r/' -i Makerules
-
Some of the Glibc programs use the non-FHS compliant
/var/db directory to store
their runtime data. Apply the following patch to make such programs
@@ -55,6 +50,16 @@
patch -Np1 -i ../&glibc-fhs-patch;
+
+ Fix a security issue identified upstream:
+
+sed '/width -=/s/workend - string/number_length/' \
+ -i stdio-common/vfprintf-process-arg.c
+
The Glibc documentation recommends building Glibc
in a dedicated build directory:
@@ -165,12 +170,6 @@ esac
is known to fail in the LFS chroot environment.
-
- The nss/tst-nss-files-hosts-long
- test is known to fail if the system has no non-loopback IP
- addresses.
-
-
The stdlib/tst-arc4random-thread
diff --git a/chapter08/grub.xml b/chapter08/grub.xml
index 4979f21e1..f0e24c132 100644
--- a/chapter08/grub.xml
+++ b/chapter08/grub.xml
@@ -72,6 +72,15 @@
aggressive optimization.
+
+ Fix an issue causing grub-install to fail when the
+ /boot partition (or the root
+ partition if /boot is not a
+ separate partition) is created by e2fsprogs-1.47.0 or later:
+
+
+patch -Np1 -i ../grub-&grub-version;-upstream_fixes-1.patch
+
Prepare GRUB for compilation:./configure --prefix=/usr \
diff --git a/chapter08/introduction.xml b/chapter08/introduction.xml
index f80ccc0c1..93d4bd68d 100644
--- a/chapter08/introduction.xml
+++ b/chapter08/introduction.xml
@@ -52,8 +52,8 @@
The SBU values and required disk space include test suite data
for all applicable packages in . SBU
- values have been calculated using a single CPU core (-j1) for all
- operations.
+ values have been calculated using four CPU cores (-j4) for all
+ operations unless specified otherwise.
About Libraries
diff --git a/chapter08/libelf.xml b/chapter08/libelf.xml
index 07006341f..739dffb46 100644
--- a/chapter08/libelf.xml
+++ b/chapter08/libelf.xml
@@ -58,8 +58,9 @@
make check
- One test named run-low_high_pc.sh is known to
- fail on ARM64 systems.
+
+ The test named run-native-test.sh is known to
+ fail.Install only Libelf:
diff --git a/chapter08/libffi.xml b/chapter08/libffi.xml
index 4a9ad7e36..9096e2fd8 100644
--- a/chapter08/libffi.xml
+++ b/chapter08/libffi.xml
@@ -62,8 +62,7 @@
./configure --prefix=/usr \
--disable-static \
- --with-gcc-arch=native \
- --disable-exec-static-tramp
+ --with-gcc-arch=nativeThe meaning of the configure option:
@@ -81,17 +80,6 @@
the AArch64 options in the GCC manual.
-
-
-
- --disable-exec-static-tramp
-
- Disable static trampoline support, a new security
- feature in Libffi. Some BLFS packages (notably
- GJS) have not been adapted for it.
-
-
-
Compile the package:
diff --git a/chapter08/markupsafe.xml b/chapter08/markupsafe.xml
index 9481a194a..27fdb1627 100644
--- a/chapter08/markupsafe.xml
+++ b/chapter08/markupsafe.xml
@@ -23,7 +23,7 @@
- MarkupSafe is a Python module that implements a XML/HTML/XHTML Markup
+ MarkupSafe is a Python module that implements an XML/HTML/XHTML Markup
safe string.
diff --git a/chapter08/mpfr.xml b/chapter08/mpfr.xml
index 7237b1ecb..2d16053de 100644
--- a/chapter08/mpfr.xml
+++ b/chapter08/mpfr.xml
@@ -41,6 +41,20 @@
Installation of MPFR
+
+ Fix a test case based on a bug of old Glibc releases:
+
+sed -e 's/+01,234,567/+1,234,567 /' \
+ -e 's/13.10Pd/13Pd/' \
+ -i tests/tsprintf.c
+
Prepare MPFR for compilation:./configure --prefix=/usr \
@@ -58,7 +72,7 @@ make html
Do not skip it under any circumstances.
- Test the results and ensure that all 183 tests passed:
+ Test the results and ensure that all 197 tests passed:make check
diff --git a/chapter08/openssl.xml b/chapter08/openssl.xml
index bd436d868..6a97bcc2a 100644
--- a/chapter08/openssl.xml
+++ b/chapter08/openssl.xml
@@ -192,7 +192,7 @@ make MANSUFFIX=ssl install
implements the Transport Layer Security (TLS v1) protocol.
It provides a rich API, documentation
- on which can be found by running man 3 ssl
+ on which can be found by running man 7 ssllibssl.so
diff --git a/chapter08/stripping.xml b/chapter08/stripping.xml
index 9f383b1e6..472285cbd 100644
--- a/chapter08/stripping.xml
+++ b/chapter08/stripping.xml
@@ -53,6 +53,18 @@
with g, in case the commands below have already been
run.
+
+
+ If any package of which the version is different from the version
+ specified by the book (either following a security advisory or
+ satisfying personal preference), it may be necessary to update the
+ the library file name in save_usrlib or
+ online_usrlib.
+ Failing to do so may render the system
+ completely unusable.
+
+
+
@@ -77,6 +89,7 @@ done
online_usrbin="bash find strip"
online_usrlib="libbfd-&binutils-version;.so
+ libsframe.so.0.0.0
libhistory.so.&readline-soversion;
libncursesw.so.&ncurses-version;
libm.so.6
diff --git a/chapter08/systemd.xml b/chapter08/systemd.xml
index 2c5c0e11b..5b1fc1fe5 100644
--- a/chapter08/systemd.xml
+++ b/chapter08/systemd.xml
@@ -82,7 +82,7 @@ meson --prefix=/usr \
--buildtype=releaseThis switch overrides the default buildtype
- (debug), which would produce unoptimized
+ (debug), which produces unoptimized
binaries.
@@ -99,7 +99,7 @@ meson --prefix=/usr \
This switch prevents installation of systemd
services responsible for setting up the system for
- the first time. They are not useful for LFS because
+ the first time. These are not useful in LFS, because
everything is done manually.
@@ -115,9 +115,9 @@ meson --prefix=/usr \
-Dldconfig=falseThis switch prevents installation of a systemd unit that runs
- ldconfig at boot, which is not useful for source
- distributions such as LFS and makes the boot time longer. Remove it
- if the described feature is desired.
+ ldconfig at boot; this is not useful for source
+ distributions such as LFS, and makes the boot time longer. Remove
+ this option to enable running ldconfig at boot.
@@ -137,15 +137,15 @@ meson --prefix=/usr \
-Drpmmacrosdir=noThis switch disables installation of RPM Macros
- for use with systemd because LFS does not support RPM.
+ for use with systemd, because LFS does not support RPM.
-D{userdb,homed}=false
- Remove two daemons that have dependencies that do not fit
- the scope of LFS.
+ Remove two daemons with dependencies that do not fit
+ within the scope of LFS.
@@ -154,7 +154,7 @@ meson --prefix=/usr \
Prevent the generation of man pages to avoid extra
dependencies. We will install pre-generated man pages for systemd
- from a tarball later.
+ from a tarball.
@@ -194,12 +194,12 @@ meson --prefix=/usr \
systemd-machine-id-setup
- Setup the basic target structure:
+ Set up the basic target structure:systemctl preset-allDisable two services for upgrading binary distros. They are useless for
- a basic Linux system built from source, and both will report an error if
+ a basic Linux system built from source, and each one will report an error if
it's enabled but not configured:systemctl disable systemd-sysupdate{,-reboot}
@@ -285,7 +285,7 @@ meson --prefix=/usr \
Normally invokes shutdown with the
-h option, except when already in run-level 0,
- then it tells the kernel to halt the system; it notes in the
+ when it tells the kernel to halt the system; it notes in the
file /var/log/wtmp that the system is being
brought down
@@ -308,9 +308,9 @@ meson --prefix=/usr \
init
- Is the first process to be started when the kernel has initialized
- the hardware which takes over the boot process and starts all
- processes according to its configuration files. In this case, it starts
+ Is the first process to be started after the kernel has initialized
+ the hardware; init takes over the boot process and starts the
+ processes specified by its configuration files; in this case, it starts
systemdinit
@@ -332,7 +332,7 @@ meson --prefix=/usr \
kernel-installIs used to add and remove kernel and initramfs images to and
- from /boot. In LFS, this is done manually
+ from /boot; in LFS, this is done manuallykernel-install
@@ -485,8 +485,8 @@ meson --prefix=/usr \
systemd-analyze
- Is used to determine system startup performance of the current
- boot, as well as identify troublesome systemd units
+ Is used to analyze system startup performance,
+ as well as identify troublesome systemd unitssystemd-analyze
@@ -497,7 +497,7 @@ meson --prefix=/usr \
systemd-ask-passwordIs used to query a system password or passphrase from the user,
- using a question message specified on the command line
+ using a message specified on the Linux command line
systemd-ask-password
@@ -531,7 +531,7 @@ meson --prefix=/usr \
systemd-cgtopShows the top control groups of the local Linux control group
- hierarchy, ordered by their CPU, memory and disk I/O load
+ hierarchy, ordered by their CPU, memory and disk I/O loads
systemd-cgtop
@@ -552,8 +552,8 @@ meson --prefix=/usr \
systemd-deltaIs used to identify and compare configuration files in
- /etc that override default
- counterparts in /usr
+ /etc that override the defaults
+ in /usrsystemd-delta
@@ -605,7 +605,7 @@ meson --prefix=/usr \
systemd-id128
- Generates and prints id128 strings
+ Generates and prints id128 (UUID) stringssystemd-id128
@@ -649,7 +649,7 @@ meson --prefix=/usr \
systemd-notify
- Is used by daemon scripts to notify the init system about status
+ Is used by daemon scripts to notify the init system of status
changessystemd-notify
@@ -660,7 +660,7 @@ meson --prefix=/usr \
systemd-nspawn
- Is used to run a command or OS in a light-weight namespace
+ Is used to run a command, or an entire OS, in a light-weight namespace
containersystemd-nspawn
@@ -682,7 +682,7 @@ meson --prefix=/usr \
systemd-repartIs used to grow and add partitions to a partition table when
- systemd is used in an OS image (e.g. a container)
+ systemd is used with an OS image (e.g. a container)systemd-repart
@@ -704,7 +704,7 @@ meson --prefix=/usr \
systemd-runIs used to create and start a transient .service or a .scope
- unit and run the specified command in it. This is useful for
+ unit and run the specified command in it; this is useful for
validating systemd unitssystemd-run
@@ -736,7 +736,7 @@ meson --prefix=/usr \
systemd-tmpfiles
- Creates, deletes and cleans up volatile and temporary files and
+ Creates, deletes, and cleans up volatile and temporary files and
directories, based on the configuration file format and location
specified in
tmpfiles.d directories
@@ -793,7 +793,7 @@ meson --prefix=/usr \
udevadmIs a generic udev administration tool which controls the udevd
- daemon, provides info from the Udev hardware database, monitors
+ daemon, provides info from the udev hardware database, monitors
uevents, waits for uevents to finish, tests udev configuration, and
triggers uevents for a given device
diff --git a/chapter08/tcl.xml b/chapter08/tcl.xml
index d1aec7f7f..5cf4e0d13 100644
--- a/chapter08/tcl.xml
+++ b/chapter08/tcl.xml
@@ -50,14 +50,6 @@
excessive, but it is very reassuring, if not essential, to know that the
most important tools are working properly.
-
-
- First, unpack the documentation by issuing the following command:
-
-tar -xf ../tcl&tcl-version;-html.tar.gz --strip-components=1
-
Prepare Tcl for compilation:SRCDIR=$(pwd)
@@ -117,11 +109,13 @@ unset SRCDIRmv /usr/share/man/man3/{Thread,Tcl_Thread}.3
- If you downloaded the optional documentation, install it by issuing
+ Optionally, install the documentation by issuing
the following commands:
- mkdir -v -p /usr/share/doc/tcl-&tcl-version;
-cp -v -r ../html/* /usr/share/doc/tcl-&tcl-version;
+cd ..
+tar -xf ../tcl&tcl-version;-html.tar.gz --strip-components=1
+mkdir -v -p /usr/share/doc/tcl-&tcl-version;
+cp -v -r ./html/* /usr/share/doc/tcl-&tcl-version;
diff --git a/chapter08/util-linux.xml b/chapter08/util-linux.xml
index 46d04b764..e8d064151 100644
--- a/chapter08/util-linux.xml
+++ b/chapter08/util-linux.xml
@@ -101,7 +101,9 @@
su tester -c "make -k check"
The hardlink tests will fail if the host's kernel
- does not have the option CONFIG_CRYPTO_USER_API_HASH set.
+ does not have the option CONFIG_CRYPTO_USER_API_HASH set. In addition,
+ two sub-tests from misc: mbsencode and one sub-test from script: replay are
+ known to fail.
Install the package:
diff --git a/chapter08/zstd.xml b/chapter08/zstd.xml
index 902f982e4..ae793a34b 100644
--- a/chapter08/zstd.xml
+++ b/chapter08/zstd.xml
@@ -42,10 +42,6 @@
Installation of Zstd
- Apply a patch to fix some issues identified by upstream:
-
-patch -Np1 -i ../&zstd-upstream-fixes-patch;
-
Compile the package:make prefix=/usr
diff --git a/chapter09/networkd.xml b/chapter09/networkd.xml
index 56d41a983..43b7e7172 100644
--- a/chapter09/networkd.xml
+++ b/chapter09/networkd.xml
@@ -164,7 +164,7 @@ Name=<network-device-name>
[Network]
DHCP=ipv4
-[DHCP]
+[DHCPv4]
UseDomains=true
EOF
diff --git a/packages.ent b/packages.ent
index eade4c846..6889f1432 100644
--- a/packages.ent
+++ b/packages.ent
@@ -19,7 +19,7 @@
-
+
@@ -35,7 +35,7 @@
-
+
@@ -45,38 +45,38 @@
-
-
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
-
+
-
-
-
-
+
+
+
+
@@ -84,9 +84,9 @@
-
-
-
+
+
+
@@ -102,25 +102,25 @@
-
+
-
-
-
-
+
+
+
+
-
-
+
+
-
+
-
+
@@ -128,40 +128,40 @@
-
+
-
-
+
+
-
+
-
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
+
@@ -184,8 +184,8 @@
-
-
+
+
@@ -196,8 +196,8 @@
-
-
+
+
@@ -205,17 +205,17 @@
-
+
-
-
-
-
+
+
+
+
@@ -224,18 +224,18 @@
-
-
-
+
+
+
-
+
-
+
@@ -243,42 +243,42 @@
-
+
-
-
-
-
+
+
+
+
-
-
+
+
-
+
-
-
-
-
+
+
+
+
-
-
+
+
-
+
@@ -289,23 +289,23 @@
-
+
-
-
+
+
-
-
+
+
@@ -317,10 +317,10 @@
-
+
-
+
@@ -332,7 +332,7 @@
-
+
@@ -347,15 +347,15 @@
-
-
+
+
-
+
@@ -372,14 +372,14 @@
-
+
-
+
@@ -390,12 +390,12 @@
-
-
+
+
-
+
-
+
@@ -403,7 +403,7 @@
-
+
@@ -419,17 +419,17 @@
-
-
+
+
-
+
-
+
-
+
+
+
-
-
+
+
-
+
@@ -459,32 +456,32 @@
-
-
+
+
-
-
+
+
-
+
-
+
-
-
+
+
-
+
-
+
-
-
+
+
-
+
-
+
@@ -492,7 +489,7 @@
-
+
@@ -500,42 +497,42 @@
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
@@ -545,7 +542,7 @@
-
+
@@ -556,10 +553,10 @@
-
-
-
-
+
+
+
+
@@ -567,14 +564,14 @@
-
+
-
+
@@ -582,25 +579,25 @@
-
+
-
+
-
+
-
+
-
-
-
-
+
+
+
+
-
-
+
+
@@ -608,18 +605,18 @@
-
-
+
+
-
-
+
+
-
+
@@ -627,14 +624,14 @@
-
+
-
+
@@ -646,20 +643,20 @@
-
+
-
+
-
+
-
+
@@ -668,9 +665,9 @@
-
+
-
+
@@ -681,18 +678,18 @@
-
-
+
+
-
-
+
+
-
+
-
+
-
-
+
+
@@ -712,28 +709,28 @@
-
-
+
+
-
+
-
+
-
+
-
-
+
+
-
-
+
+
-
+
@@ -744,29 +741,29 @@
-
-
+
+
-
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
diff --git a/patches.ent b/patches.ent
index ba133d90b..c381cd0a8 100644
--- a/patches.ent
+++ b/patches.ent
@@ -50,11 +50,9 @@
-
+
+
+
@@ -101,7 +99,8 @@
-->
+