diff --git a/Makefile b/Makefile
index 597ae1faa..bd6884a66 100644
--- a/Makefile
+++ b/Makefile
@@ -151,39 +151,45 @@ profile-html:
stylesheets/lfs-xsl/profile.xsl \
$(RENDERTMP)/lfs-full.xml
-wget-list: $(BASEDIR)/wget-list
+wget-list: $(BASEDIR)/wget-list $(BASEDIR)/wget-list-$(REV)
$(BASEDIR)/wget-list: stylesheets/wget-list.xsl chapter03/chapter03.xml \
packages.ent patches.ent general.ent
@echo "Generating consolidated wget list at $(BASEDIR)/wget-list ..."
$(Q)mkdir -p $(BASEDIR)
-
-# $(Q)xsltproc --nonet --xinclude \
-# --stringparam profile.revision $(REV) \
-# --output $(RENDERTMP)/sysd-wget.xml \
-# stylesheets/lfs-xsl/profile.xsl \
-# chapter03/chapter03.xml
-
$(Q)xsltproc --xinclude --nonet \
--output $(BASEDIR)/wget-list \
stylesheets/wget-list.xsl \
chapter03/chapter03.xml
+$(BASEDIR)/wget-list-$(REV): stylesheets/wget-list.xsl \
+ chapter03/chapter03.xml \
+ packages.ent patches.ent general.ent
+ $(Q)xsltproc --nonet --xinclude \
+ --stringparam profile.revision $(REV) \
+ --output $(RENDERTMP)/wget-list.xml \
+ stylesheets/lfs-xsl/profile.xsl \
+ chapter03/chapter03.xml
+ $(Q)xsltproc --xinclude --nonet \
+ --output $(BASEDIR)/wget-list-$(REV) \
+ stylesheets/wget-list.xsl \
+ $(RENDERTMP)/wget-list.xml
+
md5sums: $(BASEDIR)/md5sums
$(BASEDIR)/md5sums: stylesheets/wget-list.xsl chapter03/chapter03.xml \
packages.ent patches.ent
@echo "Generating consolidated md5sum file at $(BASEDIR)/md5sums ..."
$(Q)mkdir -p $(BASEDIR)
- $(Q)xsltproc --nonet --xinclude \
+ $(Q)xsltproc --nonet --xinclude \
--stringparam profile.revision $(REV) \
- --output $(RENDERTMP)/sysv-md5sum.xml \
+ --output $(RENDERTMP)/md5sum.xml \
stylesheets/lfs-xsl/profile.xsl \
chapter03/chapter03.xml
- $(Q)xsltproc --xinclude --nonet \
+ $(Q)xsltproc --xinclude --nonet \
--output $(BASEDIR)/md5sums \
stylesheets/md5sum.xsl \
- $(RENDERTMP)/sysv-md5sum.xml
+ $(RENDERTMP)/md5sum.xml
$(Q)sed -i -e \
"s/BOOTSCRIPTS-MD5SUM/$(shell md5sum lfs-bootscripts*.tar.xz | cut -d' ' -f1)/" \
$(BASEDIR)/md5sums
diff --git a/appendices/dependencies.xml b/appendices/dependencies.xml
index 6493aa1f9..3ad5c0097 100644
--- a/appendices/dependencies.xml
+++ b/appendices/dependencies.xml
@@ -244,7 +244,7 @@
&dependencies;
- Bash, Binutils, Coreutils, GCC, Glibc, Grep, and Make
+ Bash, Binutils, Coreutils, GCC, Glibc, Grep, Make, and Readline
@@ -2615,7 +2615,7 @@
&before;
- Bash and Gawk
+ Bash, Bc, and Gawk
diff --git a/bootscripts/lfs/init.d/cleanfs b/bootscripts/lfs/init.d/cleanfs
index c75923c34..9ab994fcc 100644
--- a/bootscripts/lfs/init.d/cleanfs
+++ b/bootscripts/lfs/init.d/cleanfs
@@ -105,7 +105,7 @@ case "${1}" in
(exit ${failed})
evaluate_retval
- if egrep -qv '^(#|$)' /etc/sysconfig/createfiles 2>/dev/null; then
+ if grep -E -qv '^(#|$)' /etc/sysconfig/createfiles 2>/dev/null; then
log_info_msg "Creating files and directories... "
create_files # Always returns 0
evaluate_retval
diff --git a/bootscripts/lfs/init.d/modules b/bootscripts/lfs/init.d/modules
index 3ef4cec0d..19d7b1388 100644
--- a/bootscripts/lfs/init.d/modules
+++ b/bootscripts/lfs/init.d/modules
@@ -35,7 +35,7 @@ case "${1}" in
# Exit if there's no modules file or there are no
# valid entries
[ -r /etc/sysconfig/modules ] || exit 0
- egrep -qv '^($|#)' /etc/sysconfig/modules || exit 0
+ grep -E -qv '^($|#)' /etc/sysconfig/modules || exit 0
log_info_msg "Loading modules:"
diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml
index 85dfc2f36..c1ac5a88c 100644
--- a/chapter01/changelog.xml
+++ b/chapter01/changelog.xml
@@ -40,6 +40,90 @@
appropriate for the entry or if needed the entire day's listitem.
-->
+
+ 2022-06-14
+
+
+ [bdubbs] - Update to python3-3.10.5. Fixes
+ #5070.
+
+
+ [bdubbs] - Update to meson-0.62.2. Fixes
+ #5068.
+
+
+ [bdubbs] - Update to kbd-2.5.0. Fixes
+ #5067.
+
+
+ [bdubbs] - Update to file-5.42. Fixes
+ #5072.
+
+
+ [bdubbs] - Update to linux-5.18.3. Fixes
+ #5069.
+
+
+ [bdubbs] - Update to bc-5.3.1. Fixes
+ #5071.
+
+
+
+
+
+ 2022-05-29
+
+
+ [bdubbs] - Update to iana-etc-20220524.
+ Addresses #5006.
+
+
+ [bdubbs] - Update to iproute2-5.18.0. Fixes
+ #5065.
+
+
+ [bdubbs] - Update to linux-5.18.1. Fixes
+ #5061.
+
+
+ [bdubbs] - Update to perl-5.36.0. Fixes
+ #5066.
+
+
+
+
+
+ 2022-05-29
+
+
+ [xry111] - Update to vim-8.2.5014 (security fixes).
+ Addresses #4500.
+
+
+ [xry111] - Update to ninja-1.11.0. Fixes
+ #5062.
+
+
+ [xry111] - Update to systemd-251. Fixes
+ #5064.
+
+
+
+
+
+ 2022-05-16
+
+
+ [bdubbs] - Update to linux-5.17.7. Fixes
+ #5059.
+
+
+ [bdubbs] - Update to psmisc-23.5. Fixes
+ #5060.
+
+
+
+
2022-05-01
diff --git a/chapter01/whatsnew.xml b/chapter01/whatsnew.xml
index 6ae480aa0..6d73b9759 100644
--- a/chapter01/whatsnew.xml
+++ b/chapter01/whatsnew.xml
@@ -80,9 +80,9 @@
-
+
@@ -122,9 +122,9 @@
Gzip-&gzip-version;
-
+
@@ -137,9 +137,9 @@
Jinja2-&jinja2-version;
-
+
@@ -194,9 +194,9 @@
-
+
Openssl-&openssl-version;
@@ -212,9 +212,9 @@
Procps-ng-&procps-ng-version;
-
+
Python-&python-version;
@@ -230,9 +230,9 @@
-
+
SysVinit-&sysvinit-version;
@@ -298,6 +298,12 @@
perl-5.34.0-upstream_fixes-1.patch
+
+ systemd-250-kernel_5.17_fixes-1.patch
+
+
+ systemd-250-upstream_fixes-1.patch
+
diff --git a/chapter03/introduction.xml b/chapter03/introduction.xml
index bc95ed071..76fd5ee12 100644
--- a/chapter03/introduction.xml
+++ b/chapter03/introduction.xml
@@ -79,11 +79,11 @@
To download all of the packages and patches by using
- wget-list as an input to the
- wget command, use:
-
-wget --input-file=wget-list --continue --directory-prefix=$LFS/sources
+ &wget-list;
+ as an input to the wget command, use:
+wget --input-file=&wget-list; --continue --directory-prefix=$LFS/sources
+
Additionally, starting with LFS-7.0, there is a separate file,
md5sums, which can be used to verify that all
the correct packages are available before proceeding. Place that file in
diff --git a/chapter03/patches.xml b/chapter03/patches.xml
index bed7d4735..1df01b443 100644
--- a/chapter03/patches.xml
+++ b/chapter03/patches.xml
@@ -135,22 +135,6 @@
-
- Systemd Upstream Fixes Patch - &systemd-upstream-fixes-patch-size;:
-
- Download:
- MD5 sum: &systemd-upstream-fixes-patch-md5;
-
-
-
-
- Systemd Kernel Fixes Patch - &systemd-kernel-fixes-patch-size;:
-
- Download:
- MD5 sum: &systemd-kernel-fixes-patch-md5;
-
-
-
Xz Upstream Fix Patch - &xz-upstream-fix-patch-size;:
diff --git a/chapter06/ncurses.xml b/chapter06/ncurses.xml
index e9316ef98..34426d4b7 100644
--- a/chapter06/ncurses.xml
+++ b/chapter06/ncurses.xml
@@ -134,6 +134,11 @@ popd
make DESTDIR=$LFS TIC_PATH=$(pwd)/build/progs/tic install
echo "INPUT(-lncursesw)" > $LFS/usr/lib/libncurses.so
+ Remove an unneeded static library not handled by
+ configure:
+
+rm -v $LFS/usr/lib/libncurses++w.a
+
The meaning of the install options:
diff --git a/chapter07/creatingdirs.xml b/chapter07/creatingdirs.xml
index a1dafc1ee..bc6162e61 100644
--- a/chapter07/creatingdirs.xml
+++ b/chapter07/creatingdirs.xml
@@ -12,13 +12,13 @@
It is time to create the full structure in the LFS file system.
+ Some of the directories mentioned in this section may be
+ already created earlier with explicit instructions or when installing some
+ packages. They are repeated below for completeness.
+
Create some root-level directories that are not in the limited set
required in the previous chapters by issuing the following command:
- Some of the directories below have already been created earlier
- with explicit instructions or when installing some packages. They are
- repeated below for completeness.
-
mkdir -pv /{boot,home,mnt,opt,srv}
Create the required set of subdirectories below the root-level by
diff --git a/chapter08/bc.xml b/chapter08/bc.xml
index 9678ddd54..4493f8219 100644
--- a/chapter08/bc.xml
+++ b/chapter08/bc.xml
@@ -43,7 +43,7 @@
Prepare Bc for compilation:
-CC=gcc ./configure --prefix=/usr -G -O3
+CC=gcc ./configure --prefix=/usr -G -O3 -r
The meaning of the configure options:
@@ -55,6 +55,14 @@
+
+ -G
+
+ Omit parts of the test suite that won't work
+ without a GNU bc present.
+
+
+
-O3
@@ -63,10 +71,10 @@
- -G
+ -r
- Omit parts of the test suite that won't work
- without a GNU bc present.
+ Enable the use of Readline to
+ improve the line editing feature of bc.
diff --git a/chapter08/binutils.xml b/chapter08/binutils.xml
index 0aa4e8456..5fb87ba58 100644
--- a/chapter08/binutils.xml
+++ b/chapter08/binutils.xml
@@ -173,15 +173,13 @@ cd build
Test the results:
make -k check
-
-
+
+ One gold test, pr17704a_test, is known to
+ fail if CONFIG_IA32_EMULATION is disabled in the
+ kernel configuration of the host system.
+
Install the package:
make tooldir=/usr install
diff --git a/chapter08/check.xml b/chapter08/check.xml
index 1e7e4ec17..cb6b3590d 100644
--- a/chapter08/check.xml
+++ b/chapter08/check.xml
@@ -92,7 +92,7 @@
- libcheck.{a,so}
+ libcheck.so
Contains functions that allow Check to be called from a test
program
diff --git a/chapter08/coreutils.xml b/chapter08/coreutils.xml
index 1a181b385..9c143bb2f 100644
--- a/chapter08/coreutils.xml
+++ b/chapter08/coreutils.xml
@@ -136,6 +136,9 @@ FORCE_UNSAFE_CONFIGURE=1 ./configure \
+
+ The sort-NaN-infloop test is known to fail with GCC-12.
+
Remove the temporary group:
sed -i '/dummy/d' /etc/group
diff --git a/chapter08/dbus.xml b/chapter08/dbus.xml
index 044c04aeb..9845c7431 100644
--- a/chapter08/dbus.xml
+++ b/chapter08/dbus.xml
@@ -56,20 +56,11 @@
--disable-doxygen-docs \
--disable-xml-docs \
--docdir=/usr/share/doc/dbus-&dbus-version; \
- --with-console-auth-dir=/run/console \
--with-system-socket=/run/dbus/system_bus_socket
The meaning of the configure options:
-
- --with-console-auth-dir=/run/console
-
- This specifies the location of the ConsoleKit authorization
- directory.
-
-
-
--runstatedir=/run and
diff --git a/chapter08/glibc.xml b/chapter08/glibc.xml
index ce8e761bb..1e342b12f 100644
--- a/chapter08/glibc.xml
+++ b/chapter08/glibc.xml
@@ -174,10 +174,22 @@ esac
- The nss/tst-nss-files-hosts-multi
- test is known to fail on relatively slow systems due to an internal
+ Some tests, for example
+ nss/tst-nss-files-hosts-multi,
+ are known to fail on relatively slow systems due to an internal
timeout.
+
+
+
+ About 27 tests, for example elf/tst-pldd,
+ are known to fail if the kernel supports namespaces (see
+ namespaces(7) for details) but the host distro
+ has disabled them via sysctl.
+
-save_usrlib="$(cd /usr/lib; ls ld-linux*)
+save_usrlib="$(cd /usr/lib; ls ld-linux*[^g])
libc.so.6
libthread_db.so.1
libquadmath.so.&libquadmath-version;
diff --git a/chapter08/systemd.xml b/chapter08/systemd.xml
index 43e1cea6c..0f11da410 100644
--- a/chapter08/systemd.xml
+++ b/chapter08/systemd.xml
@@ -40,16 +40,6 @@
Installation of systemd
- First, apply a patch to fix a security vulnerability and regressions
- with hostnames and idle units:
-
-patch -Np1 -i ../systemd-&systemd-version;-upstream_fixes-1.patch
-
- Now, apply a patch to fix a problem with the linux kernel's headers in
- version 5.17 and later:
-
-patch -Np1 -i ../systemd-&systemd-version;-kernel_5.17_fixes-1.patch
-
Remove two unneeded groups,
render and
sgx, from the default udev
@@ -64,21 +54,18 @@
cd build
meson --prefix=/usr \
- --sysconfdir=/etc \
- --localstatedir=/var \
--buildtype=release \
- -Dblkid=true \
-Ddefault-dnssec=no \
-Dfirstboot=false \
-Dinstall-tests=false \
-Dldconfig=false \
-Dsysusers=false \
- -Db_lto=false \
-Drpmmacrosdir=no \
-Dhomed=false \
-Duserdb=false \
-Dman=false \
-Dmode=release \
+ -Dpamconfdir=no \
-Ddocdir=/usr/share/doc/systemd-&systemd-version; \
..
@@ -173,6 +160,13 @@ meson --prefix=/usr \
+
+ -Dpamconfdir=no
+
+ Prevent the installation of a PAM configuration file not
+ functional on LFS.
+
+
Compile the package:
@@ -185,11 +179,9 @@ meson --prefix=/usr \
Install the man pages:
-tar -xf ../../systemd-man-pages-&systemd-man-version;.tar.xz -C /usr/share/man
-
- Remove a useless directory:
-
-rm -rf /usr/lib/pam.d
+
+tar -xf ../../systemd-man-pages-&systemd-man-version;.tar.xz --strip-components=1 -C /usr/share/man
Create the /etc/machine-id file needed by
systemd-journald:
@@ -200,6 +192,12 @@ meson --prefix=/usr \
systemctl preset-all
+ Disable a service for upgrading binary distros. It's useless for
+ a basic Linux system built from source, and it will report an error if
+ it's enabled but not configured:
+
+systemctl disable systemd-sysupdate
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
@@ -646,20 +646,20 @@
-
+
-
+
-
+
-
+
-
+
@@ -728,13 +728,13 @@
-
+
-
+
-
+
diff --git a/patches.ent b/patches.ent
index 2bd68296b..6c5acb77c 100644
--- a/patches.ent
+++ b/patches.ent
@@ -85,14 +85,6 @@
-
-
-
-
-
-
-
-