diff --git a/appendices/dependencies.xml b/appendices/dependencies.xml
index 58406d1bb..df37a27d1 100644
--- a/appendices/dependencies.xml
+++ b/appendices/dependencies.xml
@@ -1557,7 +1557,7 @@
&dependencies;
Bash, Binutils, Bison, Coreutils, Flex, GCC, Gettext, Glibc,
- Gzip, Make, Pkg-config, Sed, Xz, and Zlib
+ Gzip, Make, OpenSSL, Pkg-config, Sed, Xz, and Zlib
@@ -2332,7 +2332,7 @@
&before;
- Coreutils and Linux
+ Coreutils, Kmod, and Linux
@@ -3225,7 +3225,9 @@
&external;
- None
+
+ LZ4
+
diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml
index f4e041624..bf9a0c717 100644
--- a/chapter01/changelog.xml
+++ b/chapter01/changelog.xml
@@ -42,6 +42,27 @@
2022-02-04
+
+ [xry111] - Remove bash
+ +h directives in chroot. Fixes
+ #4998.
+
+
+ [xry111] - Update to man-db-2.10.0. Fixes
+ #5002.
+
+
+ [xry111] - Move OpenSSL before Kmod and enable OpenSSL
+ for Kmod build.
+
+
+ [xry111] - Update to gdbm-1.23. Fixes
+ #5000.
+
+
+ [xry111] - Update to tcl-8.6.12. Fixes
+ #5001.
+
[thomas] - Remove sed from glibc instructions in chapter 8.
It has been applied upstream.
diff --git a/chapter01/whatsnew.xml b/chapter01/whatsnew.xml
index d0d17f734..5beb5ccea 100644
--- a/chapter01/whatsnew.xml
+++ b/chapter01/whatsnew.xml
@@ -243,9 +243,9 @@
-
+
diff --git a/chapter04/settingenviron.xml b/chapter04/settingenviron.xml
index 05b342a53..01f46cefe 100644
--- a/chapter04/settingenviron.xml
+++ b/chapter04/settingenviron.xml
@@ -78,9 +78,11 @@ EOF
be used as soon as they are installed. By switching off the hash function,
the shell will always search the PATH when a program is to
be run. As such, the shell will find the newly compiled tools in
- $LFS/tools as soon as they are
- available without remembering a previous version of the same program in a
- different location.
+ $LFS/tools/bin as soon as they are
+ available without remembering a previous version of the same program
+ provided by the host distro, in
+ /usr/bin or
+ /bin.
diff --git a/chapter07/chroot.xml b/chapter07/chroot.xml
index d018cb218..6404c0625 100644
--- a/chapter07/chroot.xml
+++ b/chapter07/chroot.xml
@@ -23,7 +23,7 @@
TERM="$TERM" \
PS1='(lfs chroot) \u:\w\$ ' \
PATH=/usr/bin:/usr/sbin \
- /bin/bash --login +h
+ /bin/bash --login
The -i option given to the env
command will clear all variables of the chroot environment. After that, only
@@ -44,10 +44,7 @@
Notice that /tools/bin is not
in the PATH. This means that the cross toolchain will no longer be
- used in the chroot environment. This occurs when the shell does not
- remember
the locations of executed binaries—for this
- reason, hashing is switched off by passing the +h option
- to bash.
+ used in the chroot environment.
Note that the bash prompt will say
I have no name! This is normal because the
diff --git a/chapter07/createfiles.xml b/chapter07/createfiles.xml
index 9c4f6ac54..c85d8dd83 100644
--- a/chapter07/createfiles.xml
+++ b/chapter07/createfiles.xml
@@ -143,7 +143,6 @@ systemd-journal:x:23:
input:x:24:
mail:x:34:
kvm:x:61:
-systemd-bus-proxy:x:72:
systemd-journal-gateway:x:73:
systemd-journal-remote:x:74:
systemd-journal-upload:x:75:
@@ -184,14 +183,7 @@ install -o tester -d /home/tester
files have been created, user name and group name resolution will now
work:
-exec /usr/bin/bash --login +h
-
- Note the use of the +h directive. This tells
- bash not to use its internal path hashing. Without this
- directive, bash would remember the paths to binaries it has
- executed. To ensure the use of the newly compiled binaries as soon as they are
- installed, the +h directive will be used for the duration
- of this and the next chapter.
+exec /usr/bin/bash --login
The login, agetty, and
init programs (and others) use a number of log
diff --git a/chapter08/bash.xml b/chapter08/bash.xml
index 36bbcf0d9..787882b59 100644
--- a/chapter08/bash.xml
+++ b/chapter08/bash.xml
@@ -94,13 +94,7 @@ EOF
Run the newly compiled bash program (replacing the one that is
currently being executed):
- exec /usr/bin/bash --login +h
-
-
- The parameters used make the bash
- process an interactive login shell and continues to disable hashing so
- that new programs are found as they become available.
-
+ exec /usr/bin/bash --login
diff --git a/chapter08/chapter08.xml b/chapter08/chapter08.xml
index a67bb9c7c..0799f8829 100644
--- a/chapter08/chapter08.xml
+++ b/chapter08/chapter08.xml
@@ -59,10 +59,10 @@
+
-
@@ -106,6 +106,6 @@
-
+
diff --git a/chapter08/revisedchroot.xml b/chapter08/cleanup.xml
similarity index 63%
rename from chapter08/revisedchroot.xml
rename to chapter08/cleanup.xml
index e5f707da7..20c4c9e23 100644
--- a/chapter08/revisedchroot.xml
+++ b/chapter08/cleanup.xml
@@ -5,8 +5,8 @@
%general-entities;
]>
-
-
+
+
Cleaning Up
@@ -14,28 +14,6 @@
rm -rf /tmp/*
- Now log out and reenter the chroot environment with an updated
- chroot command. From now on, use this updated chroot command any time
- you need to reenter the chroot environment after exiting:
-
-logout
-
-chroot "$LFS" /usr/bin/env -i \
- HOME=/root TERM="$TERM" \
- PS1='(lfs chroot) \u:\w\$ ' \
- PATH=/usr/bin:/usr/sbin \
- /usr/bin/bash --login
-
- Here the +h option is not used anymore, since
- all the previous programs have been replaced: hashing is therefore
- possible.
-
- If the virtual kernel file systems have been unmounted, either manually
- or through a reboot, ensure that the virtual kernel file systems are mounted
- when reentering the chroot. This process was explained in and .
-
There are also several files installed in the /usr/lib and /usr/libexec
directories with a file name extension of .la. These are "libtool archive"
files. As already said, they are only useful when linking with static
diff --git a/chapter08/gcc.xml b/chapter08/gcc.xml
index 225927e3a..669ef56c1 100644
--- a/chapter08/gcc.xml
+++ b/chapter08/gcc.xml
@@ -43,7 +43,7 @@
At first, fix an issue breaking
libasan.a building this package
- with Glibc-2.34:
+ with Glibc-2.34 or later:
sed -e '/static.*SIGSTKSZ/d' \
-e 's/return kAltStackSize/return SIGSTKSZ * 4/' \
diff --git a/chapter08/gdbm.xml b/chapter08/gdbm.xml
index 93e1f6a11..431987f52 100644
--- a/chapter08/gdbm.xml
+++ b/chapter08/gdbm.xml
@@ -73,14 +73,12 @@
To test the results, issue:
-make -k check
-
+make check
+
Install the package:
make install
diff --git a/chapter08/glibc.xml b/chapter08/glibc.xml
index f539e8477..94e4d16bf 100644
--- a/chapter08/glibc.xml
+++ b/chapter08/glibc.xml
@@ -200,7 +200,7 @@ esac
touch /etc/ld.so.conf
- Fix the generated Makefile to skip an unneeded sanity check
+ Fix the Makefile to skip an unneeded sanity check
that fails in the LFS partial environment:
diff --git a/chapter08/kmod.xml b/chapter08/kmod.xml
index 6d65bc586..97539bb0f 100644
--- a/chapter08/kmod.xml
+++ b/chapter08/kmod.xml
@@ -45,6 +45,7 @@
./configure --prefix=/usr \
--sysconfdir=/etc \
+ --with-openssl \
--with-xz \
--with-zstd \
--with-zlib
@@ -53,7 +54,21 @@
The meaning of the configure options:
- --with-xz, --with-zlib, --with-zstd
+
+ --with-openssl
+
+
+ This option enables Kmod to handle PKCS7 signatures for
+ kernel modules.
+
+
+
+
+
+ --with-xz,
+ --with-zlib, and
+ --with-zstd
+
These options enable Kmod to handle compressed kernel modules.
@@ -65,9 +80,9 @@
make
- This package does not come with a test suite that can be run in the
- LFS chroot environment. At a minimum the git program is required and
- several tests will not run outside of a git repository.
+ The test suite of this package requires raw kernel headers
+ (not the sanitized
kernel headers installed earlier),
+ which are beyond the scope of LFS.
Install the package and create symlinks for
compatibility with Module-Init-Tools (the package that previously handled
diff --git a/chapter08/man-db.xml b/chapter08/man-db.xml
index b60e417e8..642a4e1df 100644
--- a/chapter08/man-db.xml
+++ b/chapter08/man-db.xml
@@ -43,24 +43,24 @@
Prepare Man-DB for compilation:
-./configure --prefix=/usr \
+./configure --prefix=/usr \
--docdir=/usr/share/doc/man-db-&man-db-version; \
- --sysconfdir=/etc \
- --disable-setuid \
- --enable-cache-owner=bin \
- --with-browser=/usr/bin/lynx \
- --with-vgrind=/usr/bin/vgrind \
+ --sysconfdir=/etc \
+ --disable-setuid \
+ --enable-cache-owner=bin \
+ --with-browser=/usr/bin/lynx \
+ --with-vgrind=/usr/bin/vgrind \
--with-grap=/usr/bin/grap
-./configure --prefix=/usr \
+./configure --prefix=/usr \
--docdir=/usr/share/doc/man-db-&man-db-version; \
- --sysconfdir=/etc \
- --disable-setuid \
- --enable-cache-owner=bin \
- --with-browser=/usr/bin/lynx \
- --with-vgrind=/usr/bin/vgrind \
- --with-grap=/usr/bin/grap \
- --with-systemdtmpfilesdir= \
+ --sysconfdir=/etc \
+ --disable-setuid \
+ --enable-cache-owner=bin \
+ --with-browser=/usr/bin/lynx \
+ --with-vgrind=/usr/bin/vgrind \
+ --with-grap=/usr/bin/grap \
+ --with-systemdtmpfilesdir= \
--with-systemdsystemunitdir=
@@ -306,8 +306,8 @@
Installed directories
- accessdb, apropos (link to whatis), catman, lexgrog, man, mandb,
- manpath, and whatis
+ accessdb, apropos (link to whatis), catman, lexgrog, man,
+ man-recode, mandb, manpath, and whatis
libman.so and libmandb.so (both in /usr/lib/man-db)
/usr/lib/man-db, /usr/libexec/man-db,
and /usr/share/doc/man-db-&man-db-version;
@@ -373,6 +373,16 @@
+
+ man-recode
+
+ Converts manual pages to another encoding
+
+ man-recode
+
+
+
+
mandb
diff --git a/chapter08/systemd.xml b/chapter08/systemd.xml
index 9b3196b0f..6a51e4e9d 100644
--- a/chapter08/systemd.xml
+++ b/chapter08/systemd.xml
@@ -58,7 +58,6 @@
mkdir -p build
cd build
-LANG=en_US.UTF-8 \
meson --prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var \
@@ -131,7 +130,7 @@ meson --prefix=/usr \
services responsible for setting up the
/etc/group and
/etc/passwd files. Both files
- were created earlier in this chapter. This daemon is not useful
+ were created in the previous chapter. This daemon is not useful
on an LFS system since user accounts are manually created.
@@ -173,11 +172,11 @@ meson --prefix=/usr \
Compile the package:
-LANG=en_US.UTF-8 ninja
+ninja
Install the package:
-LANG=en_US.UTF-8 ninja install
+ninja install
Install the man pages:
diff --git a/chapter08/tcl.xml b/chapter08/tcl.xml
index 7e5d4357f..4e03f8625 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;
-
-
+
+
]>
diff --git a/chapter08/util-linux.xml b/chapter08/util-linux.xml
index f5b544bae..adc4d8358 100644
--- a/chapter08/util-linux.xml
+++ b/chapter08/util-linux.xml
@@ -45,7 +45,9 @@
Prepare Util-linux for compilation:
./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \
+ --bindir=/usr/bin \
--libdir=/usr/lib \
+ --sbindir=/usr/sbin \
--docdir=/usr/share/doc/util-linux-&util-linux-version; \
--disable-chfn-chsh \
--disable-login \
@@ -61,7 +63,9 @@
runstatedir=/run
./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \
+ --bindir=/usr/bin \
--libdir=/usr/lib \
+ --sbindir=/usr/sbin \
--docdir=/usr/share/doc/util-linux-&util-linux-version; \
--disable-chfn-chsh \
--disable-login \
@@ -259,15 +263,15 @@ rm -rf DESTDIR
addpart, agetty, blkdiscard, blkid, blkzone, blockdev, cal, cfdisk, chcpu,
chmem, choom, chrt, col, colcrt, colrm, column, ctrlaltdel, delpart, dmesg,
- eject, fallocate, fdformat, fdisk, fincore, findfs, findmnt, flock, fsck,
+ eject, fallocate, fdisk, fincore, findfs, findmnt, flock, fsck,
fsck.cramfs, fsck.minix, fsfreeze, fstrim, getopt, hexdump, hwclock,
- i386, ionice, ipcmk, ipcrm, ipcs, isosize, kill, last, lastb (link to
+ i386, ionice, ipcmk, ipcrm, ipcs, irqtop, isosize, kill, last, lastb (link to
last), ldattach, linux32, linux64, logger, look, losetup, lsblk, lscpu,
- lsipc, lslocks, lslogins, lsmem, lsns, mcookie, mesg, mkfs, mkfs.bfs, mkfs.cramfs, mkfs.minix, mkswap,
+ lsipc, lsirq, lslocks, lslogins, lsmem, lsns, mcookie, mesg, mkfs, mkfs.bfs, mkfs.cramfs, mkfs.minix, mkswap,
more, mount, mountpoint, namei, nsenter, partx, pivot_root, prlimit,
readprofile, rename, renice, resizepart, rev, rfkill, rtcwake, script,
- scriptreplay, setarch, setsid, setterm, sfdisk, sulogin, swaplabel,
- swapoff (link to swapon), swapon, switch_root, taskset, ul,
+ scriptlive, scriptreplay, setarch, setsid, setterm, sfdisk, sulogin, swaplabel,
+ swapoff (link to swapon), swapon, switch_root, taskset, uclampset, ul,
umount, uname26, unshare, utmpdump, uuidd, uuidgen, uuidparse, wall, wdctl, whereis,
wipefs, x86_64, and zramctl
libblkid.so, libfdisk.so, libmount.so,
@@ -502,16 +506,6 @@ rm -rf DESTDIR
-
- fdformat
-
- Low-level formats a floppy disk
-
- fdformat
-
-
-
-
fdisk
@@ -701,6 +695,17 @@ rm -rf DESTDIR
+
+ irqtop
+
+ Displays kernel interrupt counter information in
+ top(1) style view
+
+ irqtop
+
+
+
+
isosize
@@ -836,6 +841,16 @@ rm -rf DESTDIR
+
+ lsirq
+
+ Displays kernel interrupt counter information
+
+ lsirq
+
+
+
+
lslocks
@@ -1116,6 +1131,16 @@ rm -rf DESTDIR
+
+ scriptlive
+
+ Re-run session typescripts using timing information
+
+ scriptlive
+
+
+
+
scriptreplay
@@ -1220,18 +1245,6 @@ rm -rf DESTDIR
-
- tailf
-
- Tracks the growth of a log file; displays the last 10 lines
- of a log file, then continues displaying any new entries in the
- log file as they are created
-
- tailf
-
-
-
-
taskset
@@ -1242,6 +1255,17 @@ rm -rf DESTDIR
+
+ uclampset
+
+ Manipulate the utilization clamping attributes of the
+ system or a process
+
+ uclampset
+
+
+
+
ul
diff --git a/chapter09/networkd.xml b/chapter09/networkd.xml
index 42c7dc730..63e67d000 100644
--- a/chapter09/networkd.xml
+++ b/chapter09/networkd.xml
@@ -192,7 +192,12 @@ EOF
When using systemd-resolved for DNS
configuration, it creates the file
- /run/systemd/resolve/resolv.conf.
+ /run/systemd/resolve/stub-resolv.conf.
+ And, if /etc/resolv.conf does not exist, it
+ will be created by systemd-resolved as a symlink to
+ /run/systemd/resolve/stub-resolv.conf. So it's
+ unnecessary to create a /etc/resolv.conf
+ manually.