aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chapter01/changelog.xml38
-rw-r--r--chapter01/whatsnew.xml8
-rw-r--r--chapter02/creatingpartition.xml20
-rw-r--r--chapter02/mounting.xml6
-rw-r--r--chapter04/addinguser.xml2
-rw-r--r--chapter04/creatingminlayout.xml16
-rw-r--r--chapter05/glibc.xml22
-rw-r--r--chapter06/bash.xml4
-rw-r--r--chapter06/coreutils.xml6
-rw-r--r--chapter06/file.xml6
-rw-r--r--chapter06/findutils.xml5
-rw-r--r--chapter06/grep.xml3
-rw-r--r--chapter06/gzip.xml4
-rw-r--r--chapter06/ncurses.xml12
-rw-r--r--chapter06/sed.xml3
-rw-r--r--chapter06/tar.xml3
-rw-r--r--chapter06/xz.xml6
-rw-r--r--chapter07/chroot.xml2
-rw-r--r--chapter07/createfiles.xml2
-rw-r--r--chapter07/creatingdirs.xml3
-rw-r--r--chapter07/util-linux.xml11
-rw-r--r--chapter08/acl.xml17
-rw-r--r--chapter08/adjusting.xml4
-rw-r--r--chapter08/attr.xml16
-rw-r--r--chapter08/bash.xml6
-rw-r--r--chapter08/bzip2.xml16
-rw-r--r--chapter08/coreutils.xml14
-rw-r--r--chapter08/dbus.xml8
-rw-r--r--chapter08/e2fsprogs.xml17
-rw-r--r--chapter08/eudev.xml14
-rw-r--r--chapter08/file.xml10
-rw-r--r--chapter08/findutils.xml14
-rw-r--r--chapter08/gcc.xml7
-rw-r--r--chapter08/glibc.xml10
-rw-r--r--chapter08/grep.xml2
-rw-r--r--chapter08/gzip.xml4
-rw-r--r--chapter08/inetutils.xml6
-rw-r--r--chapter08/kmod.xml10
-rw-r--r--chapter08/libcap.xml16
-rw-r--r--chapter08/libelf.xml5
-rw-r--r--chapter08/man-db.xml13
-rw-r--r--chapter08/ncurses.xml11
-rw-r--r--chapter08/procps.xml10
-rw-r--r--chapter08/psmisc.xml6
-rw-r--r--chapter08/readline.xml7
-rw-r--r--chapter08/revisedchroot.xml2
-rw-r--r--chapter08/sed.xml2
-rw-r--r--chapter08/shadow.xml26
-rw-r--r--chapter08/strippingagain.xml19
-rw-r--r--chapter08/systemd.xml91
-rw-r--r--chapter08/tar.xml3
-rw-r--r--chapter08/util-linux.xml2
-rw-r--r--chapter08/xz.xml8
-rw-r--r--chapter08/zlib.xml8
-rw-r--r--chapter08/zstd.xml10
-rw-r--r--chapter09/symlinks.xml2
-rw-r--r--chapter09/udev.xml4
-rw-r--r--packages.ent48
-rw-r--r--patches.ent6
59 files changed, 250 insertions, 406 deletions
diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml
index 413b55d0d..7c2847310 100644
--- a/chapter01/changelog.xml
+++ b/chapter01/changelog.xml
@@ -42,6 +42,44 @@
<listitem revision="sysv"> or <listitem revision="systemd"> as
appropriate for the entry or if needed the entire day's listitem.
-->
+ <listitem>
+ <para>2021-05-12</para>
+ <itemizedlist>
+ <listitem>
+ <para>[renodr] - Moved LFS to a merged-/usr configuration. Thanks
+ goes to Xi Ruoyao for doing almost all of the work. Fixes
+ <ulink url="&lfs-ticket-root;4848">#4848</ulink>.</para>
+ </listitem>
+ <listitem>
+ <para>[renodr] - Update to gcc-11.1.0. Fixes
+ <ulink url="&lfs-ticket-root;4847">#4847</ulink>.</para>
+ </listitem>
+ <listitem>
+ <para>[renodr] - Fix a FTBFS when building glibc-2.30 with
+ gcc-11.1.0.</para>
+ </listitem>
+ <listitem revision="systemd">
+ <para>[renodr] - Update to systemd-248. Fixes
+ <ulink url="&lfs-ticket-root;4841">#4841</ulink>.</para>
+ </listitem>
+ <listitem>
+ <para>[renodr] - Update to iproute2-5.12.0. Fixes
+ <ulink url="&lfs-ticket-root;4852">#4852</ulink>.</para>
+ </listitem>
+ <listitem>
+ <para>[renodr] - Update to Python-3.9.5. Fixes
+ <ulink url="&lfs-ticket-root;4854">#4854</ulink>.</para>
+ </listitem>
+ <listitem>
+ <para>[renodr] - Update to meson-0.58.0. Fixes
+ <ulink url="&lfs-ticket-root;4853">#4853</ulink>.</para>
+ </listitem>
+ <listitem>
+ <para>[renodr] - Update to linux-5.12.2. Fixes
+ <ulink url="&lfs-ticket-root;4840">#4840</ulink>.</para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
<listitem>
<para>2021-04-28</para>
diff --git a/chapter01/whatsnew.xml b/chapter01/whatsnew.xml
index 0946a7978..2d54dee9e 100644
--- a/chapter01/whatsnew.xml
+++ b/chapter01/whatsnew.xml
@@ -96,9 +96,9 @@
<!--<listitem>
<para>Gawk-&gawk-version;</para>
</listitem>-->
- <!--<listitem>
+ <listitem>
<para>GCC-&gcc-version;</para>
- </listitem>-->
+ </listitem>
<!--<listitem>
<para>GDBM-&gdbm-version;</para>
</listitem>-->
@@ -228,9 +228,9 @@
<listitem revision="sysv">
<para>Sysklogd-&sysklogd-version;</para>
</listitem>
- <!--<listitem revision="systemd">
+ <listitem revision="systemd">
<para>Systemd-&systemd-version;</para>
- </listitem>-->
+ </listitem>
<listitem revision="sysv">
<para>SysVinit-&sysvinit-version;</para>
</listitem>
diff --git a/chapter02/creatingpartition.xml b/chapter02/creatingpartition.xml
index 672c2efb5..efca7ea1c 100644
--- a/chapter02/creatingpartition.xml
+++ b/chapter02/creatingpartition.xml
@@ -141,10 +141,22 @@
builds. The size is generally fairly large and depends on available disk
space.</para></listitem>
- <listitem><para>/usr &ndash; A separate /usr partition is generally used
- if providing a server for a thin client or diskless workstation. It is
- normally not needed for LFS. A size of ten gigabytes will handle most
- installations.</para></listitem>
+ <listitem><para>/usr &ndash; In LFS,
+ <filename class="directory">/bin</filename>,
+ <filename class="directory">/lib</filename>, and
+ <filename class="directory">/sbin</filename> are symlinks to their
+ counterpart in <filename class="directory">/usr</filename>.
+ So <filename class="directory">/usr</filename> contains all binaries
+ needed for the system to run. For LFS a separate partition for
+ <filename class="directory">/usr</filename> is normally not needed.
+ If you need it anyway, you should make a partition large enough to
+ fit all programs and libraries in the system. The root partition can be
+ very small (maybe just one gigabyte) in this configuration, so it's
+ suitable for a thin client or diskless workstation (where
+ <filename class="directory">/usr</filename> is mounted from a remote
+ server). However you should take care that an initramfs (not covered by
+ LFS) will be needed to boot a system with separate
+ <filename class="directory">/usr</filename> partition.</para></listitem>
<listitem><para>/opt &ndash; This directory is most useful for
BLFS where multiple installations of large packages like Gnome or KDE can
diff --git a/chapter02/mounting.xml b/chapter02/mounting.xml
index 98a99ed38..45f222485 100644
--- a/chapter02/mounting.xml
+++ b/chapter02/mounting.xml
@@ -27,12 +27,12 @@ mount -v -t ext4 /dev/<replaceable>&lt;xxx&gt;</replaceable> $LFS</userinput></s
<para>If using multiple partitions for LFS (e.g., one for <filename
class="directory">/</filename> and another for <filename
- class="directory">/usr</filename>), mount them using:</para>
+ class="directory">/home</filename>), mount them using:</para>
<screen role="nodump"><userinput>mkdir -pv $LFS
mount -v -t ext4 /dev/<replaceable>&lt;xxx&gt;</replaceable> $LFS
-mkdir -v $LFS/usr
-mount -v -t ext4 /dev/<replaceable>&lt;yyy&gt;</replaceable> $LFS/usr</userinput></screen>
+mkdir -v $LFS/home
+mount -v -t ext4 /dev/<replaceable>&lt;yyy&gt;</replaceable> $LFS/home</userinput></screen>
<para>Replace <replaceable>&lt;xxx&gt;</replaceable> and
<replaceable>&lt;yyy&gt;</replaceable> with the appropriate partition
diff --git a/chapter04/addinguser.xml b/chapter04/addinguser.xml
index 6a163f46b..59fca9468 100644
--- a/chapter04/addinguser.xml
+++ b/chapter04/addinguser.xml
@@ -80,7 +80,7 @@ useradd -s /bin/bash -g lfs -m -k /dev/null lfs</userinput></screen>
all directories under <filename class="directory">$LFS</filename> by making
<systemitem class="username">lfs</systemitem> the directory owner:</para>
-<screen><userinput>chown -v lfs $LFS/{usr,lib,var,etc,bin,sbin,tools}
+<screen><userinput>chown -v lfs $LFS/{usr{,/*},lib,var,etc,bin,sbin,tools}
case $(uname -m) in
x86_64) chown -v lfs $LFS/lib64 ;;
esac</userinput></screen>
diff --git a/chapter04/creatingminlayout.xml b/chapter04/creatingminlayout.xml
index 749ce84fa..50c431324 100644
--- a/chapter04/creatingminlayout.xml
+++ b/chapter04/creatingminlayout.xml
@@ -20,11 +20,25 @@
<para>Create the required directory layout by running the following as
<systemitem class="username">root</systemitem>:</para>
-<screen><userinput>mkdir -pv $LFS/{bin,etc,lib,sbin,usr,var}
+<screen><userinput>mkdir -pv $LFS/{etc,var} $LFS/usr/{bin,lib,sbin}
+
+for i in bin lib sbin; do
+ ln -sv usr/$i $LFS/$i
+done
+
case $(uname -m) in
x86_64) mkdir -pv $LFS/lib64 ;;
esac</userinput></screen>
+ <note>
+ <para>
+ The above command is correct. The <command>ln</command> command has
+ a few syntactic versions, so be sure to check
+ <command>info coreutils ln</command> and <filename>ln(1)</filename>
+ before reporting what you may think is an error.
+ </para>
+ </note>
+
<para>Programs in <xref linkend="chapter-temporary-tools"/> will be compiled
with a cross-compiler (more details in section <xref
linkend="ch-tools-toolchaintechnotes"/>). In order to separate this
diff --git a/chapter05/glibc.xml b/chapter05/glibc.xml
index 232a6868b..fdd7ef346 100644
--- a/chapter05/glibc.xml
+++ b/chapter05/glibc.xml
@@ -55,15 +55,6 @@
;;
esac</userinput></screen>
- <note>
- <para>
- The above command is correct. The <command>ln</command> command has
- a few syntactic versions, so be sure to check
- <command>info coreutils ln</command> and <filename>ln(1)</filename>
- before reporting what you may think is an error.
- </para>
- </note>
-
<para>Some of the Glibc programs use the non-FHS compliant
<filename class="directory">/var/db</filename> directory to store their
runtime data. Apply the following patch to make such programs store their
@@ -71,6 +62,10 @@ esac</userinput></screen>
<screen><userinput remap="pre">patch -Np1 -i ../glibc-&glibc-version;-fhs-1.patch</userinput></screen>
+ <para>Fix a build issue with gcc-11.1:</para>
+
+<screen><userinput remap="pre">sed 's/amx_/amx-/' -i sysdeps/x86/tst-cpu-features-supports.c</userinput></screen>
+
<para>The Glibc documentation recommends building Glibc
in a dedicated build directory:</para>
@@ -85,10 +80,7 @@ cd build</userinput></screen>
--build=$(../scripts/config.guess) \
--enable-kernel=&min-kernel; \
--with-headers=$LFS/usr/include \
- libc_cv_slibdir=/lib</userinput></screen>
-<!--
- libc_cv_forced_unwind=yes \
- libc_cv_c_cleanup=yes</userinput></screen> -->
+ libc_cv_slibdir=/usr/lib</userinput></screen>
<variablelist>
<title>The meaning of the configure options:</title>
@@ -122,9 +114,9 @@ cd build</userinput></screen>
</varlistentry>
<varlistentry>
- <term><parameter>libc_cv_slibdir=/lib</parameter></term>
+ <term><parameter>libc_cv_slibdir=/usr/lib</parameter></term>
<listitem>
- <para>This ensures that the library is installed in /lib instead
+ <para>This ensures that the library is installed in /usr/lib instead
of the default /lib64 on 64 bit machines.</para>
</listitem>
</varlistentry>
diff --git a/chapter06/bash.xml b/chapter06/bash.xml
index e07ee308a..d462d2631 100644
--- a/chapter06/bash.xml
+++ b/chapter06/bash.xml
@@ -74,10 +74,6 @@
<screen><userinput remap="install">make DESTDIR=$LFS install</userinput></screen>
- <para>Move the executable to where it is expected:</para>
-
-<screen><userinput remap="install">mv $LFS/usr/bin/bash $LFS/bin/bash</userinput></screen>
-
<para>Make a link for the programs that use <command>sh</command> for
a shell:</para>
diff --git a/chapter06/coreutils.xml b/chapter06/coreutils.xml
index fe036755e..af75e60cf 100644
--- a/chapter06/coreutils.xml
+++ b/chapter06/coreutils.xml
@@ -83,11 +83,7 @@
not necessary in this temporary environment, we must do so because some
programs harcode executable locations:</para>
-<screen><userinput remap="install">mv -v $LFS/usr/bin/{cat,chgrp,chmod,chown,cp,date,dd,df,echo} $LFS/bin
-mv -v $LFS/usr/bin/{false,ln,ls,mkdir,mknod,mv,pwd,rm} $LFS/bin
-mv -v $LFS/usr/bin/{rmdir,stty,sync,true,uname} $LFS/bin
-mv -v $LFS/usr/bin/{head,nice,sleep,touch} $LFS/bin
-mv -v $LFS/usr/bin/chroot $LFS/usr/sbin
+<screen><userinput remap="install">mv -v $LFS/usr/bin/chroot $LFS/usr/sbin
mkdir -pv $LFS/usr/share/man/man8
mv -v $LFS/usr/share/man/man1/chroot.1 $LFS/usr/share/man/man8/chroot.8
sed -i 's/"1"/"8"/' $LFS/usr/share/man/man8/chroot.8</userinput></screen>
diff --git a/chapter06/file.xml b/chapter06/file.xml
index b44a639be..dc6024177 100644
--- a/chapter06/file.xml
+++ b/chapter06/file.xml
@@ -90,12 +90,6 @@ popd</userinput></screen>
<screen><userinput remap="install">make DESTDIR=$LFS install</userinput></screen>
- <para>Move a shared library into its final location in the LFS system,
- and recreate the symlink for it:</para>
-
-<screen><userinput remap="install">mv -v $LFS/usr/lib/libmagic.so.* $LFS/lib
-ln -sfv ../../lib/$(readlink /usr/lib/libmagic.so) $LFS/usr/lib/libmagic.so</userinput></screen>
-
</sect2>
<sect2 role="content">
diff --git a/chapter06/findutils.xml b/chapter06/findutils.xml
index ce3bbe00f..ff08a51cd 100644
--- a/chapter06/findutils.xml
+++ b/chapter06/findutils.xml
@@ -57,11 +57,6 @@
<screen><userinput remap="install">make DESTDIR=$LFS install</userinput></screen>
- <para>Move the executable to its final expected location:</para>
-
-<screen><userinput remap="install">mv -v $LFS/usr/bin/find $LFS/bin
-sed -i 's|find:=${BINDIR}|find:=/bin|' $LFS/usr/bin/updatedb</userinput></screen>
-
</sect2>
<sect2 role="content">
diff --git a/chapter06/grep.xml b/chapter06/grep.xml
index 494b8616d..1bccd7486 100644
--- a/chapter06/grep.xml
+++ b/chapter06/grep.xml
@@ -46,8 +46,7 @@
<para>Prepare Grep for compilation:</para>
<screen><userinput remap="configure">./configure --prefix=/usr \
- --host=$LFS_TGT \
- --bindir=/bin</userinput></screen>
+ --host=$LFS_TGT</userinput></screen>
<para>Compile the package:</para>
diff --git a/chapter06/gzip.xml b/chapter06/gzip.xml
index 7ce2a6b1c..d75f26928 100644
--- a/chapter06/gzip.xml
+++ b/chapter06/gzip.xml
@@ -55,10 +55,6 @@
<screen><userinput remap="install">make DESTDIR=$LFS install</userinput></screen>
- <para>Move the executable to its final expected location:</para>
-
-<screen><userinput remap="install">mv -v $LFS/usr/bin/gzip $LFS/bin</userinput></screen>
-
</sect2>
<sect2 role="content">
diff --git a/chapter06/ncurses.xml b/chapter06/ncurses.xml
index 36513603c..79b38e2b4 100644
--- a/chapter06/ncurses.xml
+++ b/chapter06/ncurses.xml
@@ -148,18 +148,6 @@ echo "INPUT(-lncursesw)" > $LFS/usr/lib/libncurses.so</userinput></screen>
</variablelist>
- <para>Move the shared libraries to the
- <filename class="directory">/lib</filename> directory, where they are
- expected to reside:</para>
-
-<screen><userinput remap="install">mv -v $LFS/usr/lib/libncursesw.so.6* $LFS/lib</userinput></screen>
-
- <para>Because the libraries have been moved, one symlink points to
- a non-existent file. Recreate it:</para>
-
-<screen><userinput remap="install">ln -sfv ../../lib/$(readlink $LFS/usr/lib/libncursesw.so) $LFS/usr/lib/libncursesw.so</userinput></screen>
-
-
</sect2>
<sect2 role="content">
diff --git a/chapter06/sed.xml b/chapter06/sed.xml
index d079f836d..b3e39c215 100644
--- a/chapter06/sed.xml
+++ b/chapter06/sed.xml
@@ -46,8 +46,7 @@
<para>Prepare Sed for compilation:</para>
<screen><userinput remap="configure">./configure --prefix=/usr \
- --host=$LFS_TGT \
- --bindir=/bin</userinput></screen>
+ --host=$LFS_TGT</userinput></screen>
<para>Compile the package:</para>
diff --git a/chapter06/tar.xml b/chapter06/tar.xml
index 8a82cff5c..4e0ae5c44 100644
--- a/chapter06/tar.xml
+++ b/chapter06/tar.xml
@@ -47,8 +47,7 @@
<screen><userinput remap="configure">./configure --prefix=/usr \
--host=$LFS_TGT \
- --build=$(build-aux/config.guess) \
- --bindir=/bin</userinput></screen>
+ --build=$(build-aux/config.guess)</userinput></screen>
<para>Compile the package:</para>
diff --git a/chapter06/xz.xml b/chapter06/xz.xml
index f8d397d1b..e277f9517 100644
--- a/chapter06/xz.xml
+++ b/chapter06/xz.xml
@@ -59,12 +59,6 @@
<screen><userinput remap="install">make DESTDIR=$LFS install</userinput></screen>
- <para>Make sure that all essential files are in the correct directory:</para>
-
-<screen><userinput remap="install">mv -v $LFS/usr/bin/{lzma,unlzma,lzcat,xz,unxz,xzcat} $LFS/bin
-mv -v $LFS/usr/lib/liblzma.so.* $LFS/lib
-ln -svf ../../lib/$(readlink $LFS/usr/lib/liblzma.so) $LFS/usr/lib/liblzma.so</userinput></screen>
-
</sect2>
<sect2 role="content">
diff --git a/chapter07/chroot.xml b/chapter07/chroot.xml
index 7f85a73e8..d018cb218 100644
--- a/chapter07/chroot.xml
+++ b/chapter07/chroot.xml
@@ -22,7 +22,7 @@
HOME=/root \
TERM="$TERM" \
PS1='(lfs chroot) \u:\w\$ ' \
- PATH=/bin:/usr/bin:/sbin:/usr/sbin \
+ PATH=/usr/bin:/usr/sbin \
/bin/bash --login +h</userinput></screen>
<para>The <parameter>-i</parameter> option given to the <command>env</command>
diff --git a/chapter07/createfiles.xml b/chapter07/createfiles.xml
index 8aec64958..1e6b2df9f 100644
--- a/chapter07/createfiles.xml
+++ b/chapter07/createfiles.xml
@@ -83,6 +83,7 @@ systemd-resolve:x:77:77:systemd Resolver:/:/bin/false
systemd-timesync:x:78:78:systemd Time Synchronization:/:/bin/false
systemd-coredump:x:79:79:systemd Core Dumper:/:/bin/false
uuidd:x:80:80:UUID Generation Daemon User:/dev/null:/bin/false
+systemd-oomd:x:81:81:systemd Out Of Memory Daemon:/:/bin/false
nobody:x:99:99:Unprivileged User:/dev/null:/bin/false</literal>
EOF</userinput></screen>
@@ -152,6 +153,7 @@ systemd-resolve:x:77:
systemd-timesync:x:78:
systemd-coredump:x:79:
uuidd:x:80:
+systemd-oomd:x:81:81:
wheel:x:97:
nogroup:x:99:
users:x:999:</literal>
diff --git a/chapter07/creatingdirs.xml b/chapter07/creatingdirs.xml
index 28ef34a3f..a1dafc1ee 100644
--- a/chapter07/creatingdirs.xml
+++ b/chapter07/creatingdirs.xml
@@ -27,7 +27,8 @@
<screen><userinput>mkdir -pv /etc/{opt,sysconfig}
mkdir -pv /lib/firmware
mkdir -pv /media/{floppy,cdrom}
-mkdir -pv /usr/{,local/}{bin,include,lib,sbin,src}
+mkdir -pv /usr/{,local/}{include,src}
+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}
mkdir -pv /usr/{,local/}share/man/man{1..8}
diff --git a/chapter07/util-linux.xml b/chapter07/util-linux.xml
index 2c81aaece..8295d0d8e 100644
--- a/chapter07/util-linux.xml
+++ b/chapter07/util-linux.xml
@@ -52,6 +52,7 @@
<para>Prepare Util-linux for compilation:</para>
<screen><userinput remap="configure">./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \
+ --libdir=/usr/lib \
--docdir=/usr/share/doc/util-linux-&util-linux-version; \
--disable-chfn-chsh \
--disable-login \
@@ -79,6 +80,16 @@
</varlistentry>
<varlistentry>
+ <term><parameter>--libdir=/usr/lib</parameter></term>
+ <listitem>
+ <para>This switch ensures the
+ <filename class="extension">.so</filename> symlinks targeting
+ the shared library file in the same directory
+ (<filename class="directory">/usr/lib</filename>) directly.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
<term><parameter>--disable-*</parameter></term>
<listitem>
<para>These switches prevent warnings about building components
diff --git a/chapter08/acl.xml b/chapter08/acl.xml
index a71f964cb..48bf73a75 100644
--- a/chapter08/acl.xml
+++ b/chapter08/acl.xml
@@ -44,15 +44,8 @@
<para>Prepare Acl for compilation:</para>
-<screen revision="sysv"><userinput remap="configure">./configure --prefix=/usr \
- --bindir=/bin \
+<screen><userinput remap="configure">./configure --prefix=/usr \
--disable-static \
- --libexecdir=/usr/lib \
- --docdir=/usr/share/doc/acl-&acl-version;</userinput></screen>
-
-<screen revision="systemd"><userinput remap="configure">./configure --prefix=/usr \
- --disable-static \
- --libexecdir=/usr/lib \
--docdir=/usr/share/doc/acl-&acl-version;</userinput></screen>
<para>Compile the package:</para>
@@ -69,14 +62,6 @@
<screen><userinput remap="install">make install</userinput></screen>
- <para>The shared library needs to be moved to
- <filename class="directory">/lib</filename>, and as a result the
- <filename class="extension">.so</filename> file in
- <filename class="directory">/usr/lib</filename> will need to be recreated:</para>
-
-<screen><userinput remap="install">mv -v /usr/lib/libacl.so.* /lib
-ln -sfv ../../lib/$(readlink /usr/lib/libacl.so) /usr/lib/libacl.so</userinput></screen>
-
</sect2>
<sect2 id="contents-acl" role="content">
diff --git a/chapter08/adjusting.xml b/chapter08/adjusting.xml
index 4bd8a85cc..7d01dcfb6 100644
--- a/chapter08/adjusting.xml
+++ b/chapter08/adjusting.xml
@@ -102,7 +102,7 @@ SEARCH_DIR("/lib")</computeroutput></screen>
<para os="n">The output of the last command should be:</para>
-<screen os="o"><computeroutput>attempt to open /lib/libc.so.6 succeeded</computeroutput></screen>
+<screen os="o"><computeroutput>attempt to open /usr/lib/libc.so.6 succeeded</computeroutput></screen>
<para os="p">Make sure GCC is using the correct dynamic linker:</para>
@@ -111,7 +111,7 @@ SEARCH_DIR("/lib")</computeroutput></screen>
<para os="r">The output of the last command should be (allowing for
platform-specific differences in dynamic linker name):</para>
-<screen os="s"><computeroutput>found ld-linux-x86-64.so.2 at /lib/ld-linux-x86-64.so.2</computeroutput></screen>
+<screen os="s"><computeroutput>found ld-linux-x86-64.so.2 at /usr/lib/ld-linux-x86-64.so.2</computeroutput></screen>
<para os="t">If the output does not appear as shown above or is not received
at all, then something is seriously wrong. Investigate and retrace the
diff --git a/chapter08/attr.xml b/chapter08/attr.xml
index 526852b6d..122781f27 100644
--- a/chapter08/attr.xml
+++ b/chapter08/attr.xml
@@ -43,13 +43,7 @@
<para>Prepare Attr for compilation:</para>
-<screen revision="sysv"><userinput remap="configure">./configure --prefix=/usr \
- --bindir=/bin \
- --disable-static \
- --sysconfdir=/etc \
- --docdir=/usr/share/doc/attr-&attr-version;</userinput></screen>
-
-<screen revision="systemd"><userinput remap="configure">./configure --prefix=/usr \
+<screen><userinput remap="configure">./configure --prefix=/usr \
--disable-static \
--sysconfdir=/etc \
--docdir=/usr/share/doc/attr-&attr-version;</userinput></screen>
@@ -68,14 +62,6 @@
<screen><userinput remap="install">make install</userinput></screen>
- <para>The shared library needs to be moved to
- <filename class="directory">/lib</filename>, and as a result the
- <filename class="extension">.so</filename> file in
- <filename class="directory">/usr/lib</filename> will need to be recreated:</para>
-
-<screen><userinput remap="install">mv -v /usr/lib/libattr.so.* /lib
-ln -sfv ../../lib/$(readlink /usr/lib/libattr.so) /usr/lib/libattr.so</userinput></screen>
-
</sect2>
<sect2 id="contents-attr" role="content">
diff --git a/chapter08/bash.xml b/chapter08/bash.xml
index 4ab6f7d81..e4960efcc 100644
--- a/chapter08/bash.xml
+++ b/chapter08/bash.xml
@@ -84,11 +84,9 @@
PATH=$PATH make tests &lt; $(tty)
EOF</userinput></screen>
- <para>Install the package and move the main executable to
- <filename class='directory'>/bin</filename>:</para>
+ <para>Install the package:</para>
-<screen><userinput remap="install">make install
-mv -vf /usr/bin/bash /bin</userinput></screen>
+<screen><userinput remap="install">make install</userinput></screen>
<para>Run the newly compiled <command>bash</command> program (replacing the one that is
currently being executed):</para>
diff --git a/chapter08/bzip2.xml b/chapter08/bzip2.xml
index c842e5cd9..d3b7d42c4 100644
--- a/chapter08/bzip2.xml
+++ b/chapter08/bzip2.xml
@@ -84,16 +84,14 @@ make clean</userinput></screen>
<screen><userinput remap="install">make PREFIX=/usr install</userinput></screen>
+ <para>Install the shared library:</para>
+<screen><userinput remap="install">cp -av libbz2.so.* /usr/lib
+ln -sv libbz2.so.&bzip2-version; /usr/lib/libbz2.so</userinput></screen>
+
<para>Install the shared <command>bzip2</command> binary into the
- <filename class="directory">/bin</filename> directory, make
- some necessary symbolic links, and clean up:</para>
-
-<screen><userinput remap="install">cp -v bzip2-shared /bin/bzip2
-cp -av libbz2.so* /lib
-ln -sv ../../lib/libbz2.so.1.0 /usr/lib/libbz2.so
-rm -v /usr/bin/{bunzip2,bzcat,bzip2}
-ln -sv bzip2 /bin/bunzip2
-ln -sv bzip2 /bin/bzcat</userinput></screen>
+ <filename class="directory">/bin</filename> directory:</para>
+
+<screen><userinput remap="install">cp -v bzip2-shared /bin/bzip2</userinput></screen>
<para>Remove an useless static library:</para>
diff --git a/chapter08/coreutils.xml b/chapter08/coreutils.xml
index 48572eef0..c5d2a5032 100644
--- a/chapter08/coreutils.xml
+++ b/chapter08/coreutils.xml
@@ -142,22 +142,10 @@ FORCE_UNSAFE_CONFIGURE=1 ./configure \
<para>Move programs to the locations specified by the FHS:</para>
-<screen><userinput remap="install">mv -v /usr/bin/{cat,chgrp,chmod,chown,cp,date,dd,df,echo} /bin
-mv -v /usr/bin/{false,ln,ls,mkdir,mknod,mv,pwd,rm} /bin
-mv -v /usr/bin/{rmdir,stty,sync,true,uname} /bin
-mv -v /usr/bin/chroot /usr/sbin
+<screen><userinput remap="install">mv -v /usr/bin/chroot /usr/sbin
mv -v /usr/share/man/man1/chroot.1 /usr/share/man/man8/chroot.8
sed -i 's/"1"/"8"/' /usr/share/man/man8/chroot.8</userinput></screen>
- <para revision="sysv">Some of the scripts in the LFS-Bootscripts package
- depend on <command>head</command>, <command>nice</command>,
- <command>sleep</command>, and <command>touch</command>. As <filename
- class="directory">/usr</filename> may not be available during the early and
- late stages of booting, those binaries need to be on the root partition to
- maintain FHS compliance:</para>
-
-<screen><userinput remap="install">mv -v /usr/bin/{head,nice,sleep,touch} /bin</userinput></screen>
-
</sect2>
<sect2 id="contents-coreutils" role="content">
diff --git a/chapter08/dbus.xml b/chapter08/dbus.xml
index 5f51900cc..94d348d2d 100644
--- a/chapter08/dbus.xml
+++ b/chapter08/dbus.xml
@@ -97,14 +97,6 @@
<screen><userinput remap="install">make install</userinput></screen>
- <para>The shared library needs to be moved to
- <filename class="directory">/lib</filename>, and as a result the
- <filename class="extension">.so</filename> file in
- <filename class="directory">/usr/lib</filename> will need to be recreated:</para>
-
-<screen><userinput remap="install">mv -v /usr/lib/libdbus-1.so.* /lib
-ln -sfv ../../lib/$(readlink /usr/lib/libdbus-1.so) /usr/lib/libdbus-1.so</userinput></screen>
-
<para>Create a symlink so that D-Bus and systemd can use the same
<filename>machine-id</filename> file:</para>
diff --git a/chapter08/e2fsprogs.xml b/chapter08/e2fsprogs.xml
index 40544e782..d7ff53a82 100644
--- a/chapter08/e2fsprogs.xml
+++ b/chapter08/e2fsprogs.xml
@@ -53,8 +53,6 @@ cd build</userinput></screen>
<para>Prepare e2fsprogs for compilation:</para>
<screen><userinput remap="configure">../configure --prefix=/usr \
- --bindir=/bin \
- --with-root-prefix="" \
--enable-elf-shlibs \
--disable-libblkid \
--disable-libuuid \
@@ -65,21 +63,6 @@ cd build</userinput></screen>
<title>The meaning of the configure options:</title>
<varlistentry>
- <term><parameter>--with-root-prefix=""</parameter> and
- <parameter>--bindir=/bin</parameter></term>
- <listitem>
- <para>Certain programs (such as the <command>e2fsck</command>
- program) are considered essential programs. When, for example,
- <filename class="directory">/usr</filename> is not mounted, these
- programs still need to be available. They belong in directories
- like <filename class="directory">/lib</filename> and <filename
- class="directory">/sbin</filename>. If this option is not passed
- to configure, the programs are installed into the
- <filename class="directory">/usr</filename> directory.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
<term><parameter>--enable-elf-shlibs</parameter></term>
<listitem>
<para>This creates the shared libraries which some programs
diff --git a/chapter08/eudev.xml b/chapter08/eudev.xml
index 39c86ef1f..0dee78d68 100644
--- a/chapter08/eudev.xml
+++ b/chapter08/eudev.xml
@@ -53,13 +53,7 @@
<para>Prepare Eudev for compilation:</para>
<screen><userinput remap="configure">./configure --prefix=/usr \
- --bindir=/sbin \
- --sbindir=/sbin \
- --libdir=/usr/lib \
--sysconfdir=/etc \
- --libexecdir=/lib \
- --with-rootprefix= \
- --with-rootlibdir=/lib \
--enable-manpages \
--disable-static</userinput></screen>
@@ -70,7 +64,7 @@
<para>Create some directories now that are needed for tests, but
will also be used as a part of installation:</para>
-<screen><userinput remap="test">mkdir -pv /lib/udev/rules.d
+<screen><userinput remap="test">mkdir -pv /usr/lib/udev/rules.d
mkdir -pv /etc/udev/rules.d</userinput></screen>
<para>To test the results, issue:</para>
@@ -103,7 +97,7 @@ make -f &udev-lfs-version;/Makefile.lfs install</userinput></screen>
<para>Information about hardware devices is maintained in the
<filename class="directory">/etc/udev/hwdb.d</filename> and
- <filename class="directory">/lib/udev/hwdb.d</filename> directories.
+ <filename class="directory">/usr/lib/udev/hwdb.d</filename> directories.
<application>Eudev</application> needs that information to be compiled
into a binary database <filename>/etc/udev/hwdb.bin</filename>. Create the
initial database:</para>
@@ -124,13 +118,13 @@ make -f &udev-lfs-version;/Makefile.lfs install</userinput></screen>
<segtitle>Installed directories</segtitle>
<seglistitem>
- <seg><!-- These are in /lib/udev and not to be called by the user:
+ <seg><!-- These are in /usr/lib/udev and not to be called by the user:
accelerometer, ata_id, cdrom_id, collect, mtd_probe,
scsi_id, v4l_id,--> udevadm and udevd</seg>
<seg>libudev.so</seg>
- <seg>/etc/udev, /lib/udev, and /usr/share/doc/udev-&udev-lfs-version;</seg>
+ <seg>/etc/udev, /usr/lib/udev, and /usr/share/doc/udev-&udev-lfs-version;</seg>
</seglistitem>
</segmentedlist>
diff --git a/chapter08/file.xml b/chapter08/file.xml
index 326f99eeb..eb9f41a2b 100644
--- a/chapter08/file.xml
+++ b/chapter08/file.xml
@@ -57,16 +57,6 @@
<screen><userinput remap="install">make install</userinput></screen>
- <para><command>/bin/more</command> from util-linux will link to
- <filename class="libraryfile">libmagic.so</filename>, so the shared
- library should be moved to <filename class="directory">/lib</filename>,
- and as a result the
- <filename class="extension">.so</filename> file in
- <filename class="directory">/usr/lib</filename> will need to be recreated:</para>
-
-<screen><userinput remap="install">mv -v /usr/lib/libmagic.so.* /lib
-ln -sfv ../../lib/$(readlink /usr/lib/libmagic.so) /usr/lib/libmagic.so</userinput></screen>
-
</sect2>
diff --git a/chapter08/findutils.xml b/chapter08/findutils.xml
index f55e5cbb1..092be0c96 100644
--- a/chapter08/findutils.xml
+++ b/chapter08/findutils.xml
@@ -74,20 +74,6 @@ su tester -c "PATH=$PATH make check"</userinput></screen>
<screen><userinput remap="install">make install</userinput></screen>
- <para revision="sysv">Some of the scripts in the LFS-Bootscripts package
- depend on <command>find</command>. As <filename
- class="directory">/usr</filename> may not be available during the early
- stages of booting, this program needs to be on the root partition. The
- <command>updatedb</command> script also needs to be modified to correct an
- explicit path:</para>
-
- <para revision="systemd"> Some packages in BLFS and beyond expect the
- <command>find</command> program in <filename
- class="directory">/bin</filename>, so make sure it's placed there:</para>
-
-<screen><userinput remap="install">mv -v /usr/bin/find /bin
-sed -i 's|find:=${BINDIR}|find:=/bin|' /usr/bin/updatedb</userinput></screen>
-
</sect2>
<sect2 id="contents-findutils" role="content">
diff --git a/chapter08/gcc.xml b/chapter08/gcc.xml
index 5090029a5..6b5163fce 100644
--- a/chapter08/gcc.xml
+++ b/chapter08/gcc.xml
@@ -124,9 +124,12 @@ su tester -c "PATH=$PATH make -k check"</userinput></screen>
<para>Six tests related to get_time are known to fail. These are
apparently related to the en_HK locale.</para>
- <para>Additionally the following tests related to the following files
+ <para>Additionally, the test constexpr-52830 is known to fail.</para>
+
+<!--<para>Additionally the following tests related to the following files
are known to fail with glibc-2.33: asan_test.C, co-ret-17-void-ret-coro.C,
pr95519-05-gro.C, pr80166.c.</para>
+-->
<!-- don't fail anymore after the move of iana-etc and /etc/hosts
<para>Two tests named lookup.cc and reverse.cc in experimental/net
@@ -164,7 +167,7 @@ rm -rf /usr/lib/gcc/$(gcc -dumpmachine)/&gcc-version;/include-fixed/bits/</useri
url="https://refspecs.linuxfoundation.org/FHS_3.0/fhs/ch03s09.html">FHS</ulink>
for "historical" reasons.</para>
-<screen><userinput remap="install">ln -sv ../usr/bin/cpp /lib</userinput></screen>
+<screen><userinput remap="install">ln -svr /usr/bin/cpp /lib</userinput></screen>
<!-- already done earlier
<para>Many packages use the name <command>cc</command> to call the C
compiler. To satisfy those packages, create a symlink:</para>
diff --git a/chapter08/glibc.xml b/chapter08/glibc.xml
index 7fc661dc2..3b51906b5 100644
--- a/chapter08/glibc.xml
+++ b/chapter08/glibc.xml
@@ -55,6 +55,10 @@
<screen><userinput remap="pre">sed -e '402a\ *result = local->data.services[database_index];' \
-i nss/nss_database.c</userinput></screen>
+ <para>Fix a build issue with gcc-11.1:</para>
+
+<screen><userinput remap="pre">sed 's/amx_/amx-/' -i sysdeps/x86/tst-cpu-features-supports.c</userinput></screen>
+
<para>The Glibc documentation recommends building Glibc
in a dedicated build directory:</para>
@@ -68,7 +72,7 @@ cd build</userinput></screen>
--enable-kernel=&min-kernel; \
--enable-stack-protector=strong \
--with-headers=/usr/include \
- libc_cv_slibdir=/lib</userinput></screen>
+ libc_cv_slibdir=/usr/lib</userinput></screen>
<variablelist>
<title>The meaning of the configure options:</title>
@@ -109,7 +113,7 @@ cd build</userinput></screen>
</varlistentry>
<varlistentry>
- <term><parameter>libc_cv_slibdir=/lib</parameter></term>
+ <term><parameter>libc_cv_slibdir=/usr/lib</parameter></term>
<listitem>
<para>This variable sets the correct library for all
systems. We do not want lib64 to be used.</para>
@@ -221,7 +225,7 @@ mkdir -pv /var/cache/nscd</userinput></screen>
<command>nscd</command>:</para>
<screen revision="systemd"><userinput remap="install">install -v -Dm644 ../nscd/nscd.tmpfiles /usr/lib/tmpfiles.d/nscd.conf
-install -v -Dm644 ../nscd/nscd.service /lib/systemd/system/nscd.service</userinput></screen>
+install -v -Dm644 ../nscd/nscd.service /usr/lib/systemd/system/nscd.service</userinput></screen>
<para>Next, install the locales that can make the system respond in a
different language. None of the locales are required, but if some of them
diff --git a/chapter08/grep.xml b/chapter08/grep.xml
index ef6357281..d06a1ba85 100644
--- a/chapter08/grep.xml
+++ b/chapter08/grep.xml
@@ -42,7 +42,7 @@
<para>Prepare Grep for compilation:</para>
-<screen><userinput remap="configure">./configure --prefix=/usr --bindir=/bin</userinput></screen>
+<screen><userinput remap="configure">./configure --prefix=/usr</userinput></screen>
<para>Compile the package:</para>
diff --git a/chapter08/gzip.xml b/chapter08/gzip.xml
index 5040f2e0b..afbfa36a0 100644
--- a/chapter08/gzip.xml
+++ b/chapter08/gzip.xml
@@ -57,10 +57,6 @@
<screen><userinput remap="install">make install</userinput></screen>
- <para>Move a program that needs to be on the root filesystem:</para>
-
-<screen><userinput remap="install">mv -v /usr/bin/gzip /bin</userinput></screen>
-
</sect2>
<sect2 id="contents-gzip" role="content">
diff --git a/chapter08/inetutils.xml b/chapter08/inetutils.xml
index bbdc54955..b79a0b782 100644
--- a/chapter08/inetutils.xml
+++ b/chapter08/inetutils.xml
@@ -114,11 +114,9 @@
<screen><userinput remap="install">make install</userinput></screen>
- <para>Move some programs so they are available if <filename
- class='directory'>/usr</filename> is not accessible:</para>
+ <para>Move a program to the proper location:</para>
-<screen><userinput remap="install">mv -v /usr/bin/{hostname,ping,ping6,traceroute} /bin
-mv -v /usr/bin/ifconfig /sbin</userinput></screen>
+<screen><userinput remap="install">mv -v /{,s}bin/ifconfig</userinput></screen>
</sect2>
diff --git a/chapter08/kmod.xml b/chapter08/kmod.xml
index 58c9ba995..4f454ff69 100644
--- a/chapter08/kmod.xml
+++ b/chapter08/kmod.xml
@@ -44,9 +44,7 @@
<para>Prepare Kmod for compilation:</para>
<screen><userinput remap="configure">./configure --prefix=/usr \
- --bindir=/bin \
--sysconfdir=/etc \
- --with-rootlibdir=/lib \
--with-xz \
--with-zstd \
--with-zlib</userinput></screen>
@@ -61,14 +59,6 @@
</listitem>
</varlistentry>
- <varlistentry>
- <term><parameter>--with-rootlibdir=/lib</parameter></term>
- <listitem>
- <para>This option ensures different library related files are placed
- in the correct directories.</para>
- </listitem>
- </varlistentry>
-
</variablelist>
<para>Compile the package:</para>
diff --git a/chapter08/libcap.xml b/chapter08/libcap.xml
index f3b6c0074..d8fc15175 100644
--- a/chapter08/libcap.xml
+++ b/chapter08/libcap.xml
@@ -69,15 +69,13 @@
<screen><userinput remap="test">make test</userinput></screen>
- <para>Install the package and make sure the essential libraries are in
- the correct directory:</para>
-
-<screen><userinput remap="install">make prefix=/usr lib=lib install
-for libname in cap psx; do
- mv -v /usr/lib/lib${libname}.so.* /lib
- ln -sfv ../../lib/lib${libname}.so.2 /usr/lib/lib${libname}.so
- chmod -v 755 /lib/lib${libname}.so.&libcap-version;
-done</userinput></screen>
+ <para>Install the package:</para>
+
+<screen><userinput remap="install">make prefix=/usr lib=lib install</userinput></screen>
+
+ <para>Adjust the permission of the shared libraries:</para>
+
+<screen><userinput remap="install">chmod -v 755 /usr/lib/lib{cap,psx}.so.&libcap-version;</userinput></screen>
</sect2>
diff --git a/chapter08/libelf.xml b/chapter08/libelf.xml
index 41e1ae476..3465531a1 100644
--- a/chapter08/libelf.xml
+++ b/chapter08/libelf.xml
@@ -48,8 +48,7 @@
<screen><userinput remap="configure">./configure --prefix=/usr \
--disable-debuginfod \
- --enable-libdebuginfod=dummy \
- --libdir=/lib</userinput></screen>
+ --enable-libdebuginfod=dummy</userinput></screen>
<para>Compile the package:</para>
@@ -65,7 +64,7 @@
<screen><userinput remap="install">make -C libelf install
install -vm644 config/libelf.pc /usr/lib/pkgconfig
-rm /lib/libelf.a</userinput></screen>
+rm /usr/lib/libelf.a</userinput></screen>
</sect2>
diff --git a/chapter08/man-db.xml b/chapter08/man-db.xml
index 45b1f4fa2..8afadffaf 100644
--- a/chapter08/man-db.xml
+++ b/chapter08/man-db.xml
@@ -43,9 +43,7 @@
<para>Prepare Man-DB for compilation:</para>
-<screen revision="systemd"><userinput remap="configure">sed -i '/find/s@/usr@@' init/systemd/man-db.service.in
-
-./configure --prefix=/usr \
+<screen revision="systemd"><userinput remap="configure">./configure --prefix=/usr \
--docdir=/usr/share/doc/man-db-&man-db-version; \
--sysconfdir=/etc \
--disable-setuid \
@@ -68,15 +66,6 @@
<variablelist>
<title>The meaning of the configure options:</title>
- <varlistentry revision="systemd">
- <term><command>sed -i '/find/s@/usr@@' init/systemd/man-db.service.in</command></term>
- <listitem>
- <para>This changes a harcoded path to the <command>find</command>
- utility, which we install in
- <filename class="directory">/bin</filename>.</para>
- </listitem>
- </varlistentry>
-
<varlistentry>
<term><parameter>--disable-setuid</parameter></term>
<listitem>
diff --git a/chapter08/ncurses.xml b/chapter08/ncurses.xml
index 53527003d..3fbca0c3c 100644
--- a/chapter08/ncurses.xml
+++ b/chapter08/ncurses.xml
@@ -100,17 +100,6 @@
<screen><userinput remap="install">make install</userinput></screen>
- <para>Move the shared libraries to the
- <filename class="directory">/lib</filename> directory, where they are
- expected to reside:</para>
-
-<screen><userinput remap="install">mv -v /usr/lib/libncursesw.so.6* /lib</userinput></screen>
-
- <para>Because the libraries have been moved, one symlink points to
- a non-existent file. Recreate it:</para>
-
-<screen><userinput remap="install">ln -sfv ../../lib/$(readlink /usr/lib/libncursesw.so) /usr/lib/libncursesw.so</userinput></screen>
-
<para>Many applications still expect the linker to be able to find
non-wide-character Ncurses libraries. Trick such applications into linking with
wide-character libraries by means of symlinks and linker scripts:</para>
diff --git a/chapter08/procps.xml b/chapter08/procps.xml
index b026d0538..8d49b60b4 100644
--- a/chapter08/procps.xml
+++ b/chapter08/procps.xml
@@ -51,15 +51,11 @@
<para>Prepare procps-ng for compilation:</para>
<screen revision="sysv"><userinput remap="configure">./configure --prefix=/usr \
- --exec-prefix= \
- --libdir=/usr/lib \
--docdir=/usr/share/doc/procps-ng-&procps-ng-version; \
--disable-static \
--disable-kill</userinput></screen>
<screen revision="systemd"><userinput remap="configure">./configure --prefix=/usr \
- --exec-prefix= \
- --libdir=/usr/lib \
--docdir=/usr/share/doc/procps-ng-&procps-ng-version; \
--disable-static \
--disable-kill \
@@ -102,12 +98,6 @@ make check</userinput></screen>
<screen><userinput remap="install">make install</userinput></screen>
- <para>Finally, move essential libraries to a location that can be found
- if <filename class="directory">/usr</filename> is not mounted.</para>
-
-<screen><userinput remap="install">mv -v /usr/lib/libprocps.so.* /lib
-ln -sfv ../../lib/$(readlink /usr/lib/libprocps.so) /usr/lib/libprocps.so</userinput></screen>
-
</sect2>
<sect2 id="contents-procps" role="content">
diff --git a/chapter08/psmisc.xml b/chapter08/psmisc.xml
index febf90748..6a826202d 100644
--- a/chapter08/psmisc.xml
+++ b/chapter08/psmisc.xml
@@ -55,12 +55,6 @@
<screen><userinput remap="install">make install</userinput></screen>
- <para>Finally, move the <command>killall</command> and <command>fuser</command>
- programs to the location specified by the FHS:</para>
-
-<screen><userinput remap="install">mv -v /usr/bin/fuser /bin
-mv -v /usr/bin/killall /bin</userinput></screen>
-
</sect2>
<sect2 id="contents-psmisc" role="content">
diff --git a/chapter08/readline.xml b/chapter08/readline.xml
index cd105c164..72608ac94 100644
--- a/chapter08/readline.xml
+++ b/chapter08/readline.xml
@@ -94,13 +94,6 @@ sed -i '/{OLDSUFF}/c:' support/shlib-install</userinput></screen>
<screen><userinput remap="install">make SHLIB_LIBS="-lncursesw" install</userinput></screen>
- <para>Now move the dynamic libraries to a more appropriate location
- and fix up symbolic links:</para>
-
-<screen><userinput remap="install">mv -v /usr/lib/lib{readline,history}.so.* /lib
-ln -sfv ../../lib/$(readlink /usr/lib/libreadline.so) /usr/lib/libreadline.so
-ln -sfv ../../lib/$(readlink /usr/lib/libhistory.so ) /usr/lib/libhistory.so</userinput></screen>
-
<para>If desired, install the documentation:</para>
<screen><userinput remap="install">install -v -m644 doc/*.{ps,pdf,html,dvi} /usr/share/doc/readline-&readline-version;</userinput></screen>
diff --git a/chapter08/revisedchroot.xml b/chapter08/revisedchroot.xml
index 3a2defb07..3627cd603 100644
--- a/chapter08/revisedchroot.xml
+++ b/chapter08/revisedchroot.xml
@@ -23,7 +23,7 @@
chroot "$LFS" /usr/bin/env -i \
HOME=/root TERM="$TERM" \
PS1='(lfs chroot) \u:\w\$ ' \
- PATH=/bin:/usr/bin:/sbin:/usr/sbin \
+ PATH=/usr/bin:/usr/sbin \
/bin/bash --login</userinput></screen>
<para>Here the <parameter>+h</parameter> option is not used anymore, since
diff --git a/chapter08/sed.xml b/chapter08/sed.xml
index 77d30479b..629b83465 100644
--- a/chapter08/sed.xml
+++ b/chapter08/sed.xml
@@ -42,7 +42,7 @@
<para>Prepare Sed for compilation:</para>
-<screen><userinput remap="configure">./configure --prefix=/usr --bindir=/bin</userinput></screen>
+<screen><userinput remap="configure">./configure --prefix=/usr</userinput></screen>
<para>Compile the package and generate the HTML documentation:</para>
diff --git a/chapter08/shadow.xml b/chapter08/shadow.xml
index 3ccbfbb58..3471b347b 100644
--- a/chapter08/shadow.xml
+++ b/chapter08/shadow.xml
@@ -65,10 +65,23 @@ find man -name Makefile.in -exec sed -i 's/passwd\.5 / /' {} \;</userinput></s
allows passwords longer than 8 characters. It is also necessary to change
the obsolete <filename class="directory">/var/spool/mail</filename> location
for user mailboxes that Shadow uses by default to the <filename
- class="directory">/var/mail</filename> location used currently:</para>
+ class="directory">/var/mail</filename> location used currently. And,
+ get rid of <filename class="directory">/bin</filename> and
+ <filename class="directory">/sbin</filename> from <envar>PATH</envar>,
+ since they are simply symlinks to their counterpart in
+ <filename class="directory">/usr</filename>.</para>
+
+ <note>
+ <para>If <filename class="directory">/bin</filename> and/or
+ <filename class="directory">/sbin</filename> are prefereed to be
+ left over in <envar>PATH</envar> for some reason, modify
+ <envar>PATH</envar> in <filename>.bashrc</filename> after LFS is
+ built.</para>
+ </note>
<screen><userinput remap="pre">sed -e 's:#ENCRYPT_METHOD DES:ENCRYPT_METHOD SHA512:' \
-e 's:/var/spool/mail:/var/mail:' \
+ -e '/PATH=/{s@/sbin:@@;s@/bin:@@}' \
-i etc/login.defs</userinput></screen>
<note>
@@ -118,17 +131,6 @@ find man -name Makefile.in -exec sed -i 's/passwd\.5 / /' {} \;</userinput></s
<para>Install the package:</para>
<screen><userinput remap="install">make install</userinput></screen>
- <!--
- <para>Move a misplaced program to its proper location:</para>
-
-<screen><userinput remap="install">mv -v /usr/bin/passwd /bin</userinput></screen>
- -->
-
- <!-- <para>Move Shadow's libraries to more appropriate locations:</para>
-
-<screen><userinput remap="install">mv -v /lib/libshadow.*a /usr/lib
-rm -v /lib/libshadow.so
-ln -sfv ../../lib/libshadow.so.0 /usr/lib/libshadow.so</userinput></screen> -->
</sect2>
diff --git a/chapter08/strippingagain.xml b/chapter08/strippingagain.xml
index 891d2e000..8f5743b51 100644
--- a/chapter08/strippingagain.xml
+++ b/chapter08/strippingagain.xml
@@ -33,17 +33,8 @@
<!-- also of interest are libgfortan, libgo, libgomp, and libobjc from GCC -->
<!--<screen><userinput>save_lib="ld-2.25.so libc-2.25.so libpthread-2.25.so libthread_db-1.0.so"-->
-<screen><userinput>save_lib="ld-&glibc-version;.so libc-&glibc-version;.so libpthread-&glibc-version;.so libthread_db-&libthread_db-version;.so"
-
-cd /lib
-
-for LIB in $save_lib; do
- objcopy --only-keep-debug $LIB $LIB.dbg
- strip --strip-unneeded $LIB
- objcopy --add-gnu-debuglink=$LIB.dbg $LIB
-done
-
-save_usrlib="libquadmath.so.&libquadmath-version; libstdc++.so.&libstdcpp-version;
+<screen><userinput>save_usrlib="ld-&glibc-version;.so libc-&glibc-version;.so libpthread-&glibc-version;.so libthread_db-&libthread_db-version;.so
+ libquadmath.so.&libquadmath-version; libstdc++.so.&libstdcpp-version;
libitm.so.&libitm-version; libatomic.so.&libatomic-version;" <!-- libcilkrts.so.&libcilkrts-version;-->
cd /usr/lib
@@ -54,7 +45,7 @@ for LIB in $save_usrlib; do
objcopy --add-gnu-debuglink=$LIB.dbg $LIB
done
-unset LIB save_lib save_usrlib</userinput></screen>
+unset LIB save_usrlib</userinput></screen>
<!-- <para>Before performing the stripping, take special care to ensure that
none of the binaries that are about to be stripped are running:</para>
@@ -67,10 +58,10 @@ unset LIB save_lib save_usrlib</userinput></screen>
<screen><userinput>find /usr/lib -type f -name \*.a \
-exec strip --strip-debug {} ';'
-find /lib /usr/lib -type f -name \*.so* ! -name \*dbg \
+find /usr/lib -type f -name \*.so* ! -name \*dbg \
-exec strip --strip-unneeded {} ';'
-find /{bin,sbin} /usr/{bin,sbin,libexec} -type f \
+find /usr/{bin,sbin,libexec} -type f \
-exec strip --strip-all {} ';'</userinput></screen>
<para>A large number of files will be reported as having their file
diff --git a/chapter08/systemd.xml b/chapter08/systemd.xml
index d5a9f6bd1..c5df6bf78 100644
--- a/chapter08/systemd.xml
+++ b/chapter08/systemd.xml
@@ -47,14 +47,13 @@
-->
<!-- For linux-5.11's API headers changing the rfkill_event structure -->
- <para>First, apply a patch to fix some regressions and fix functionality
- with future versions of the kernel:</para>
+ <para>First, apply a patch to fix some build issues:</para>
-<screen><userinput remap="pre">patch -Np1 -i ../systemd-&systemd-version;-upstream_fixes-3.patch</userinput></screen>
+<screen><userinput remap="pre">patch -Np1 -i ../systemd-&systemd-version;-upstream_fixes-1.patch</userinput></screen>
<para>Remove tests that cannot be built in chroot:</para>
-<screen><userinput remap="pre">sed '181,$ d' -i src/resolve/meson.build</userinput></screen>
+<screen><userinput remap="pre">sed '177,$ d' -i src/resolve/meson.build</userinput></screen>
<para>Remove an unneeded group,
<systemitem class="groupname">render</systemitem>, from the default udev
@@ -76,15 +75,8 @@ meson --prefix=/usr \
-Ddefault-dnssec=no \
-Dfirstboot=false \
-Dinstall-tests=false \
- -Dkmod-path=/bin/kmod \
-Dldconfig=false \
- -Dmount-path=/bin/mount \
- -Drootprefix= \
- -Drootlibdir=/lib \
- -Dsplit-usr=true \
- -Dsulogin-path=/sbin/sulogin \
-Dsysusers=false \
- -Dumount-path=/bin/umount \
-Db_lto=false \
-Drpmmacrosdir=no \
-Dhomed=false \
@@ -98,14 +90,6 @@ meson --prefix=/usr \
<title>The meaning of the meson options:</title>
<varlistentry>
- <term><parameter>-D*-path=*</parameter></term>
- <listitem>
- <para>These switches provide the location of binaries needed by
- systemd at runtime that have not yet been installed.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
<term><parameter>-Ddefault-dnssec=no</parameter></term>
<listitem>
<para>This switch turns off the experimental DNSSEC support.</para>
@@ -140,24 +124,6 @@ meson --prefix=/usr \
</varlistentry>
<varlistentry>
- <term><parameter>-Droot*</parameter></term>
- <listitem>
- <para>These switches ensure that core programs and
- shared libraries are installed in subdirectories
- of the root partition.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><parameter>-Dsplit-usr=true</parameter></term>
- <listitem>
- <para>This switch ensures that systemd will work on
- systems where /bin, /lib and /sbin directories are not
- symlinks to their /usr counterparts.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
<term><parameter>-Dsysusers=false</parameter></term>
<listitem>
<para>This switch prevents installation of systemd
@@ -257,26 +223,27 @@ meson --prefix=/usr \
<seglistitem>
<seg>bootctl, busctl, coredumpctl, halt (symlink to systemctl),
hostnamectl, init, journalctl, kernel-install, localectl, loginctl,
- machinectl, networkctl, portablectl, poweroff (symlink to
+ machinectl, networkctl, oomctl, portablectl, poweroff (symlink to
systemctl), reboot (symlink to systemctl), resolvconf (symlink to
resolvectl), resolvectl, runlevel (symlink to systemctl), shutdown
(symlink to systemctl), systemctl, systemd-analyze,
systemd-ask-password, systemd-cat, systemd-cgls, systemd-cgtop,
- systemd-delta, systemd-detect-virt, systemd-dissect, systemd-escape,
- systemd-hwdb, systemd-id128, systemd-inhibit, systemd-machine-id-setup,
+ systemd-cryptenroll, systemd-delta, systemd-detect-virt,
+ systemd-dissect, systemd-escape, systemd-hwdb, systemd-id128,
+ systemd-inhibit, systemd-machine-id-setup,
systemd-mount, systemd-notify, systemd-nspawn, systemd-path,
systemd-repart, systemd-resolve (symlink to resolvectl), systemd-run,
- systemd-socket-activate, systemd-stdio-bridge, systemd-tmpfiles,
- systemd-tty-ask-password-agent, systemd-umount (symlink to
- systemd-mount), telinit (symlink to systemctl), timedatectl, and
- udevadm</seg>
+ systemd-socket-activate, systemd-stdio-bridge, systemd-sysext,
+ systemd-tmpfiles, systemd-tty-ask-password-agent,
+ systemd-umount (symlink to systemd-mount),
+ telinit (symlink to systemctl), timedatectl, and udevadm</seg>
<seg>libnss_myhostname.so.2, libnss_mymachines.so.2,
libnss_resolve.so.2, libnss_systemd.so.2,
- libsystemd.so, libsystemd-shared-&systemd-version;.so (in /lib/systemd),
+ libsystemd.so, libsystemd-shared-&systemd-version;.so (in /usr/lib/systemd),
and libudev.so</seg>
<seg>/etc/binfmt.d, /etc/init.d, /etc/kernel, /etc/modules-load.d,
/etc/sysctl.d, /etc/systemd, /etc/tmpfiles.d, /etc/udev,
- /etc/xdg/systemd, /lib/systemd, /lib/udev, /usr/include/systemd,
+ /etc/xdg/systemd, /usr/lib/systemd, /usr/lib/udev, /usr/include/systemd,
/usr/lib/binfmt.d, /usr/lib/environment.d, /usr/lib/kernel,
/usr/lib/modules-load.d, /usr/lib/sysctl.d, /usr/lib/systemd,
/usr/lib/tmpfiles.d,
@@ -423,6 +390,16 @@ meson --prefix=/usr \
</listitem>
</varlistentry>
+ <varlistentry id="oomctl">
+ <term><command>oomctl</command></term>
+ <listitem>
+ <para>Controls the systemd Out Of Memory daemon</para>
+ <indexterm zone="ch-system-systemd oomctl">
+ <primary sortas="b-oomctl">oomctl</primary>
+ </indexterm>
+ </listitem>
+ </varlistentry>
+
<varlistentry id="portablectl">
<term><command>portablectl</command></term>
<listitem>
@@ -568,6 +545,17 @@ meson --prefix=/usr \
</listitem>
</varlistentry>
+ <varlistentry id="systemd-cryptenroll">
+ <term><command>systemd-cryptenroll</command></term>
+ <listitem>
+ <para>Is used to enroll or remove a system from full disk encryption,
+ as well as set and query private keys and recovery keys</para>
+ <indexterm zone="ch-system-systemd systemd-cryptenroll">
+ <primary sortas="b-systemd-cryptenroll">systemd-cryptenroll</primary>
+ </indexterm>
+ </listitem>
+ </varlistentry>
+
<varlistentry id="systemd-delta">
<term><command>systemd-delta</command></term>
<listitem>
@@ -743,6 +731,17 @@ meson --prefix=/usr \
</listitem>
</varlistentry>
+ <varlistentry id="systemd-sysext">
+ <term><command>systemd-sysext</command></term>
+ <listitem>
+ <para>Creates, deletes, and manages system extensions through the
+ systemd-sysextd daemon</para>
+ <indexterm zone="ch-system-systemd systemd-sysext">
+ <primary sortas="b-systemd-sysext">systemd-sysext</primary>
+ </indexterm>
+ </listitem>
+ </varlistentry>
+
<varlistentry id="systemd-tmpfiles">
<term><command>systemd-tmpfiles</command></term>
<listitem>
diff --git a/chapter08/tar.xml b/chapter08/tar.xml
index 6f37ce888..e638221c6 100644
--- a/chapter08/tar.xml
+++ b/chapter08/tar.xml
@@ -46,8 +46,7 @@
<para>Prepare Tar for compilation:</para>
<screen><userinput remap="configure">FORCE_UNSAFE_CONFIGURE=1 \
-./configure --prefix=/usr \
- --bindir=/bin</userinput></screen>
+./configure --prefix=/usr</userinput></screen>
<variablelist>
<title>The meaning of the configure option:</title>
diff --git a/chapter08/util-linux.xml b/chapter08/util-linux.xml
index a7d3d61f4..310705c1a 100644
--- a/chapter08/util-linux.xml
+++ b/chapter08/util-linux.xml
@@ -45,6 +45,7 @@
<para>Prepare Util-linux for compilation:</para>
<screen revision="sysv"><userinput remap="configure">./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \
+ --libdir=/usr/lib \
--docdir=/usr/share/doc/util-linux-&util-linux-version; \
--disable-chfn-chsh \
--disable-login \
@@ -60,6 +61,7 @@
runstatedir=/run</userinput></screen>
<screen revision="systemd"><userinput remap="configure">./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \
+ --libdir=/usr/lib \
--docdir=/usr/share/doc/util-linux-&util-linux-version; \
--disable-chfn-chsh \
--disable-login \
diff --git a/chapter08/xz.xml b/chapter08/xz.xml
index b8a9f9206..7f723482a 100644
--- a/chapter08/xz.xml
+++ b/chapter08/xz.xml
@@ -58,13 +58,9 @@
<screen><userinput remap="test">make check</userinput></screen>
- <para>Install the package and make sure that all essential files are in the
- correct directory:</para>
+ <para>Install the package:</para>
-<screen><userinput remap="install">make install
-mv -v /usr/bin/{lzma,unlzma,lzcat,xz,unxz,xzcat} /bin
-mv -v /usr/lib/liblzma.so.* /lib
-ln -svf ../../lib/$(readlink /usr/lib/liblzma.so) /usr/lib/liblzma.so</userinput></screen>
+<screen><userinput remap="install">make install</userinput></screen>
</sect2>
diff --git a/chapter08/zlib.xml b/chapter08/zlib.xml
index f00988468..86b9ad16e 100644
--- a/chapter08/zlib.xml
+++ b/chapter08/zlib.xml
@@ -57,14 +57,6 @@
<screen><userinput remap="install">make install</userinput></screen>
- <para>The shared library needs to be moved to
- <filename class="directory">/lib</filename>, and as a result the
- <filename class="extension">.so</filename> file in
- <filename class="directory">/usr/lib</filename> will need to be recreated:</para>
-
-<screen><userinput remap="install">mv -v /usr/lib/libz.so.* /lib
-ln -sfv ../../lib/$(readlink /usr/lib/libz.so) /usr/lib/libz.so</userinput></screen>
-
<para>Remove an useless static library:</para>
<screen><userinput remap="install">rm -fv /usr/lib/libz.a</userinput></screen>
diff --git a/chapter08/zstd.xml b/chapter08/zstd.xml
index 0ec1a3c1b..8edf9ebad 100644
--- a/chapter08/zstd.xml
+++ b/chapter08/zstd.xml
@@ -54,14 +54,8 @@
<screen><userinput remap="install">make prefix=/usr install</userinput></screen>
- <para>Remove the static library and move the shared library to
- <filename class="directory">/lib</filename>. Also, the
- <filename class="extension">.so</filename> file in
- <filename class="directory">/usr/lib</filename> will need to be recreated:</para>
-
-<screen><userinput remap="install">rm -v /usr/lib/libzstd.a
-mv -v /usr/lib/libzstd.so.* /lib
-ln -sfv ../../lib/$(readlink /usr/lib/libzstd.so) /usr/lib/libzstd.so</userinput></screen>
+ <para>Remove the static library:</para>
+<screen><userinput remap="install">rm -v /usr/lib/libzstd.a</userinput></screen>
</sect2>
diff --git a/chapter09/symlinks.xml b/chapter09/symlinks.xml
index 3b46a67b0..c4ddd4eaf 100644
--- a/chapter09/symlinks.xml
+++ b/chapter09/symlinks.xml
@@ -48,7 +48,7 @@
rules. A script has been included that generates the initial rules.
Generate these rules by running:</para>
-<screen role="install"><userinput>bash /lib/udev/init-net-rules.sh</userinput></screen>
+<screen role="install"><userinput>bash /usr/lib/udev/init-net-rules.sh</userinput></screen>
<para> Now, inspect the
<filename>/etc/udev/rules.d/70-persistent-net.rules</filename> file, to
diff --git a/chapter09/udev.xml b/chapter09/udev.xml
index a3a7c0cf9..20b311284 100644
--- a/chapter09/udev.xml
+++ b/chapter09/udev.xml
@@ -108,7 +108,7 @@
<para>A short time later, the kernel will send a uevent to <command>
udevd</command>. Based on the rules specified in the files within the
<filename class="directory">/etc/udev/rules.d</filename>, <filename
- class="directory">/lib/udev/rules.d</filename>, and <filename
+ class="directory">/usr/lib/udev/rules.d</filename>, and <filename
class="directory">/run/udev/rules.d</filename> directories, <command>
udevd</command> will create additional symlinks to the device node, or
change its permissions, owner, or group, or modify the internal
@@ -285,7 +285,7 @@
driver does not export its data to
<systemitem class="filesystem">sysfs</systemitem>. This is most common
with third party drivers from outside the kernel tree. Create a static
- device node in <filename>/lib/udev/devices</filename> with the
+ device node in <filename>/usr/lib/udev/devices</filename> with the
appropriate major/minor numbers (see the file
<filename>devices.txt</filename> inside the kernel documentation or the
documentation provided by the third party driver vendor). The static
diff --git a/packages.ent b/packages.ent
index 10275e794..82044207b 100644
--- a/packages.ent
+++ b/packages.ent
@@ -217,10 +217,10 @@
<!ENTITY gawk-fin-du "45 MB">
<!ENTITY gawk-fin-sbu "0.4 SBU">
-<!ENTITY gcc-version "10.2.0">
-<!ENTITY gcc-size "73,247 KB">
+<!ENTITY gcc-version "11.1.0">
+<!ENTITY gcc-size "77,032 KB">
<!ENTITY gcc-url "&gnu;gcc/gcc-&gcc-version;/gcc-&gcc-version;.tar.xz">
-<!ENTITY gcc-md5 "e9fd9b1789155ad09bcf3ae747596b50">
+<!ENTITY gcc-md5 "77f6252be0861ab918042acf42bc10ff">
<!ENTITY gcc-home "https://gcc.gnu.org/">
<!ENTITY gcc-tmpp1-du "3.7 GB">
<!ENTITY gcc-tmpp1-sbu "11 SBU">
@@ -344,10 +344,10 @@
<!ENTITY intltool-fin-du "1.5 MB">
<!ENTITY intltool-fin-sbu "less than 0.1 SBU">
-<!ENTITY iproute2-version "5.11.0">
-<!ENTITY iproute2-size "803 KB">
+<!ENTITY iproute2-version "5.12.0">
+<!ENTITY iproute2-size "820 KB">
<!ENTITY iproute2-url "&kernel;linux/utils/net/iproute2/iproute2-&iproute2-version;.tar.xz">
-<!ENTITY iproute2-md5 "a3c6b09590c0bd120f0ab0b6e36187a8">
+<!ENTITY iproute2-md5 "bbebacdabd4628ff86453ef4771a242a">
<!ENTITY iproute2-home "&kernel;linux/utils/net/iproute2/">
<!ENTITY iproute2-fin-du "15 MB">
<!ENTITY iproute2-fin-sbu "0.2 SBU">
@@ -417,13 +417,13 @@
<!ENTITY libtool-fin-sbu "1.6 SBU">
<!ENTITY linux-major-version "5">
-<!ENTITY linux-minor-version "11">
-<!ENTITY linux-patch-version "16">
+<!ENTITY linux-minor-version "12">
+<!ENTITY linux-patch-version "2">
<!--<!ENTITY linux-version "&linux-major-version;.&linux-minor-version;">-->
<!ENTITY linux-version "&linux-major-version;.&linux-minor-version;.&linux-patch-version;">
-<!ENTITY linux-size "114,893 KB">
+<!ENTITY linux-size "115,344 KB">
<!ENTITY linux-url "&kernel;linux/kernel/v&linux-major-version;.x/linux-&linux-version;.tar.xz">
-<!ENTITY linux-md5 "c7536df1e1e3d03621092d732c8a5b6e">
+<!ENTITY linux-md5 "1119082b017840a4d57e1a51c4bfc07b">
<!ENTITY linux-home "https://www.kernel.org/">
<!-- measured for 5.8.3 / gcc-10.2.0 on x86_64 : minimum is
allnoconfig extended for a hopefully-bootable build on desktop machine,
@@ -473,10 +473,10 @@
<!ENTITY man-pages-fin-du "4.7 MB">
<!ENTITY man-pages-fin-sbu "less than 0.1 SBU">
-<!ENTITY meson-version "0.57.2">
-<!ENTITY meson-size "1,811 KB">
+<!ENTITY meson-version "0.58.0">
+<!ENTITY meson-size "1,844 KB">
<!ENTITY meson-url "&github;/mesonbuild/meson/releases/download/&meson-version;/meson-&meson-version;.tar.gz">
-<!ENTITY meson-md5 "4a07b6d42d7a46a6b6e9604fae7da9aa">
+<!ENTITY meson-md5 "18ac55e3d6a5acb17b5737eb2a15bb5b">
<!ENTITY meson-home "https://mesonbuild.com">
<!ENTITY meson-fin-du "37 MB">
<!ENTITY meson-fin-sbu "less than 0.1 SBU">
@@ -574,19 +574,19 @@
<!-- If python minor version changes, updates in python and
meson pages will be needed: python3.6 and python3.6m -->
-<!ENTITY python-version "3.9.4">
+<!ENTITY python-version "3.9.5">
<!ENTITY python-minor "3.9">
-<!ENTITY python-size "18,458 KB">
+<!ENTITY python-size "18,612 KB">
<!ENTITY python-url "https://www.python.org/ftp/python/&python-version;/Python-&python-version;.tar.xz">
-<!ENTITY python-md5 "2a3dba5fc75b695c45cf1806156e1a97">
+<!ENTITY python-md5 "71f7ada6bec9cdbf4538adc326120cfd">
<!ENTITY python-home "https://www.python.org/">
<!ENTITY python-tmp-du "374 MB">
<!ENTITY python-tmp-sbu "0.9 SBU">
<!ENTITY python-fin-du "294 MB">
<!ENTITY python-fin-sbu "2.8 SBU">
<!ENTITY python-docs-url "https://www.python.org/ftp/python/doc/&python-version;/python-&python-version;-docs-html.tar.bz2">
-<!ENTITY python-docs-md5 "a225c583da4533c5bf98ba3555f50c7b">
-<!ENTITY python-docs-size "6,672 KB">
+<!ENTITY python-docs-md5 "c594916b00cbb9796fa001dd2764ab0f">
+<!ENTITY python-docs-size "6,680 KB">
<!ENTITY readline-version "8.1">
<!ENTITY readline-size "2,924 KB">
@@ -622,20 +622,20 @@
<!ENTITY sysklogd-fin-du "0.6 MB">
<!ENTITY sysklogd-fin-sbu "less than 0.1 SBU">
-<!ENTITY systemd-version "247">
+<!ENTITY systemd-version "248">
<!--<!ENTITY systemd-stable "6b4878d">-->
<!-- The above entity is used whenever we move to a stable backport branch. In the event of a critical problem or kernel
change that is incompatible, we will switch to the backport branch until the next stable release. -->
-<!ENTITY systemd-size "9,656 KB">
+<!ENTITY systemd-size "10,068 KB">
<!ENTITY systemd-url "&github;/systemd/systemd/archive/v&systemd-version;/systemd-&systemd-version;.tar.gz">
<!--<!ENTITY systemd-url "&anduin-sources;/systemd-&systemd-version;-&systemd-stable;.tar.xz">-->
-<!ENTITY systemd-md5 "b0d6e603b814908acc69db29bbfb023c">
+<!ENTITY systemd-md5 "00131adf0e98c1fd8a7fde4eb47f10c8">
<!ENTITY systemd-home "https://www.freedesktop.org/wiki/Software/systemd/">
-<!ENTITY systemd-man-version "247-2">
-<!ENTITY systemd-man-size "612 KB">
+<!ENTITY systemd-man-version "248">
+<!ENTITY systemd-man-size "584 KB">
<!--<!ENTITY systemd-man-url "&anduin-sources;/systemd-man-pages-&systemd-version;-&systemd-stable;.tar.xz">-->
<!ENTITY systemd-man-url "&anduin-sources;/systemd-man-pages-&systemd-man-version;.tar.xz">
-<!ENTITY systemd-man-md5 "7d8a53105b7a205f2863e360d9a23f95">
+<!ENTITY systemd-man-md5 "82cc641742df67128df8b6a55fbcbabc">
<!ENTITY systemd-fin-du "264 MB">
<!ENTITY systemd-fin-sbu "1.8 SBU">
diff --git a/patches.ent b/patches.ent
index 62a45216d..48c6184eb 100644
--- a/patches.ent
+++ b/patches.ent
@@ -67,6 +67,6 @@
<!ENTITY sysvinit-consolidated-patch-md5 "4900322141d493e74020c9cf437b2cdc">
<!ENTITY sysvinit-consolidated-patch-size "2.4 KB">
-<!ENTITY systemd-upstream-fixes-patch "systemd-&systemd-version;-upstream_fixes-3.patch">
-<!ENTITY systemd-upstream-fixes-patch-md5 "949768da539ddfa2bf6e936b81ed96df">
-<!ENTITY systemd-upstream-fixes-patch-size "16 KB">
+<!ENTITY systemd-upstream-fixes-patch "systemd-&systemd-version;-upstream_fixes-1.patch">
+<!ENTITY systemd-upstream-fixes-patch-md5 "6819d49562ac48b551d15d2dd0123055">
+<!ENTITY systemd-upstream-fixes-patch-size "8 KB">