diff --git a/appendices/dependencies.xml b/appendices/dependencies.xml
index 69c676394..99b84c385 100644
--- a/appendices/dependencies.xml
+++ b/appendices/dependencies.xml
@@ -1863,7 +1863,9 @@
&external;
- cpio
+ cpio and
+ LLVM
+ (with Clang)
diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml
index 819f2f15a..6ff784e08 100644
--- a/chapter01/changelog.xml
+++ b/chapter01/changelog.xml
@@ -39,6 +39,74 @@
or as
appropriate for the entry or if needed the entire day's listitem.
-->
+
+ 2022-10-17
+
+
+ [bdubbs] - Update to linux-6.0.2 (Security update). Fixes
+ #5138.
+
+
+
+
+
+ 2022-10-15
+
+
+ [bdubbs] - Update to iana-etc-20221007. Addresses
+ #5006.
+
+
+ [bdubbs] - Update to vim-9.0.0739. Addresses
+ #5006.
+
+
+ [bdubbs] - Add upstream patches to readline and bash. Fixes
+ #5131.
+
+
+ [bdubbs] - Update to zlib-1.2.13. Fixes
+ #5137.
+
+
+ [bdubbs] - Update to man-pages-6.00. Fixes
+ #5136.
+
+
+ [bdubbs] - Update to gettext-0.21.1. Fixes
+ #5130.
+
+
+ [bdubbs] - Update to iproute2-6.0.0. Fixes
+ #5127.
+
+
+ [bdubbs] - Update to meson-0.63.3. Fixes
+ #5129.
+
+
+ [bdubbs] - Update to Python-3.10.8. Fixes
+ #5133.
+
+
+ [bdubbs] - Update to xz-5.2.7. Fixes
+ #5133.
+
+
+ [bdubbs] - Update to tzdata-2022e. Fixes
+ #5134.
+
+
+ [bdubbs] - Update to linux-6.0.1. Fixes
+ #5135.
+
+
+ [bdubbs] - Update to dbus-1.14.4. Fixes
+ #5128.
+
+
+
+
2022-10-04
@@ -76,7 +144,7 @@
[bdubbs] - Update to libcap-2.66. Fixes
- #5120.
+ #5120.
[bdubbs] - Update to dbus-1.14.2. Fixes
diff --git a/chapter01/how.xml b/chapter01/how.xml
index b7551b2e6..a8fdddddd 100644
--- a/chapter01/how.xml
+++ b/chapter01/how.xml
@@ -15,10 +15,10 @@
existing Linux system (the host) will be used as a starting point to
provide necessary programs, including a compiler, linker, and shell,
to build the new system. Select the development
option
- during the distribution installation to be able to access these
+ during the distribution installation to include these
tools.
- As an alternative to installing a separate distribution onto your
+ As an alternative to installing a separate distribution on your
machine, you may wish to use a LiveCD from a
commercial distribution.
of this book describes how
- to create a new Linux native partition and file system. This is the place
+ to create a new Linux native partition and file system,
where the new LFS system will be compiled and installed. explains which packages and
- patches need to be downloaded to build an LFS system and how to store
+ patches must be downloaded to build an LFS system, and how to store
them on the new file system.
discusses the setup of an appropriate working environment. Please read
carefully as it explains several
- important issues you need be aware of before beginning to
+ important issues you should be aware of before you begin to
work your way through and beyond.
explains the installation of
- the initial tool chain, (binutils, gcc, and glibc) using cross compilation
+ the initial tool chain, (binutils, gcc, and glibc) using cross-compilation
techniques to isolate the new tools from the host system.
shows you how to
cross-compile basic utilities using the just built cross-toolchain.
then enters a
- "chroot" environment and uses the previously built tools to build
- the additional tools needed to build and test the final system.
+ "chroot" environment, where we use the new tools to build all
+ the rest of the tools needed to create the LFS system.
This effort to isolate the new system from the host distribution may
seem excessive. A full technical explanation as to why this is done is
provided in .
In the
- full LFS system is built. Another advantage provided by the chroot
+ full-blown LFS system is built. Another advantage provided by the chroot
environment is that it allows you to continue using the host system
while LFS is being built. While waiting for package compilations to
- complete, you can continue using your computer as normal.
+ complete, you can continue using your computer as usual.
To finish the installation, the basic system configuration is set up in
- , and the kernel and boot loader are set
- up in .
+ , and the kernel and boot loader are created
+ in .
contains information on continuing the LFS experience beyond this book.
- After the steps in this book have been implemented, the computer will be
- ready to reboot into the new LFS system.
+ After the steps in this chapter have been implemented, the computer is
+ ready to boot into the new LFS system.
This is the process in a nutshell. Detailed information on each
- step is discussed in the following chapters and package descriptions.
- Items that may seem complicated will be clarified, and everything will
- fall into place as you embark on the LFS adventure.
+ step is presented in the following chapters.
+ Items that seem complicated now will be clarified, and everything will
+ fall into place as you commence your LFS adventure.
diff --git a/chapter01/resources.xml b/chapter01/resources.xml
index 52195bd91..ad20950b2 100644
--- a/chapter01/resources.xml
+++ b/chapter01/resources.xml
@@ -15,17 +15,18 @@
If during the building of the LFS system you encounter any
errors, have any questions, or think there is a typo in the book,
- please start by consulting the Frequently Asked Questions (FAQ)
- that is located at .
+ please start by consulting the list of Frequently Asked Questions (FAQ),
+ located at .
Mailing Lists
- The linuxfromscratch.org server hosts a number of mailing
+ The linuxfromscratch.org
+ server hosts a number of mailing
lists used for the development of the LFS project. These lists include the
- main development and support lists, among others. If the FAQ does not solve
+ main development and support lists, among others. If the FAQ do not solve
the problem you are having, the next step would be to search the mailing
lists at .
@@ -53,10 +54,11 @@
IRC
- Several members of the LFS community offer assistance on Internet
- Relay Chat (IRC). Before using this support, please make sure that your
+ Several members of the LFS community offer assistance via Internet
+ Relay Chat (IRC). Before using this support, please make sure your
question is not already answered in the LFS FAQ or the mailing list
- archives. You can find the IRC network at irc.libera.chat.
+ archives. You can find the IRC network at
+ irc.libera.chat.
The support channel is named #lfs-support.
diff --git a/chapter01/whatsnew.xml b/chapter01/whatsnew.xml
index ac7a4140c..b36765261 100644
--- a/chapter01/whatsnew.xml
+++ b/chapter01/whatsnew.xml
@@ -11,16 +11,16 @@
What's new since the last release
- In 11.3 release, --enable-default-pie
+ In the 11.3 release, --enable-default-pie
and --enable-default-ssp are enabled for GCC.
- They can mitigate some type of malicious attacks but they cannot provide
- a full protection. In case if you are reading a programming textbook,
- you may need to disable PIE and SSP with GCC options
- -fno-pie -no-pie -fno-stack-protection
- because some textbooks assume they were disabled by default.
+ These techniques can mitigate some malicious attacks, but they do not provide
+ perfect security. If you are reading LFS and a programming textbook,
+ you may need to disable PIE and SSP with the GCC options
+ -fno-pie -no-pie -fno-stack-protection,
+ because some textbooks assume these options are disabled by default.
- Below is a list of package updates made since the previous
- release of the book.
+ Here is a list of the packages updated since the previous
+ release of LFS.
-
+
@@ -139,9 +139,9 @@
-
+
@@ -184,9 +184,9 @@
-
+
@@ -259,18 +259,18 @@
-
+
-
-
+
@@ -289,9 +289,12 @@
Added:
-
+
+ &bash-fixes-patch;
+
+
+ &readline-fixes-patch;
+
diff --git a/chapter02/hostreqs.xml b/chapter02/hostreqs.xml
index 2f2d75499..c612f5963 100644
--- a/chapter02/hostreqs.xml
+++ b/chapter02/hostreqs.xml
@@ -83,7 +83,7 @@
udev.
If the host kernel is earlier than &min-kernel; you will need to replace
- the kernel with a more up to date version. There are two ways
+ the kernel with a more up-to-date version. There are two ways
you can go about this. First, see if your Linux vendor provides a &min-kernel;
or later kernel package. If so, you may wish to install it. If your
vendor doesn't offer an acceptable kernel package, or you would prefer not to
@@ -148,7 +148,7 @@
To see whether your host system has all the appropriate versions, and
- the ability to compile programs, run the following:
+ the ability to compile programs, run the following commands:
cat > version-check.sh << "EOF"
#!/bin/bash
diff --git a/chapter02/stages.xml b/chapter02/stages.xml
index 036cd34cc..04f6373c9 100644
--- a/chapter02/stages.xml
+++ b/chapter02/stages.xml
@@ -12,22 +12,22 @@
LFS is designed to be built in one session. That is, the
instructions assume that the system will not be shut down
- during the process. That does not mean that the system has to
- be done in one sitting. The issue is that certain procedures
- have to be re-accomplished after a reboot if resuming LFS at
+ during the process. This does not mean that the system has to
+ be built in one sitting. The issue is that certain procedures
+ must be repeated after a reboot when resuming LFS at
different points.
Chapters 1–4
- These chapters are accomplished on the host system. When
- restarting, be careful of the following:
+ These chapters run commands on the host system. When
+ restarting, be certain of one thing:
- Procedures done as the
+ Procedures performed as the
root user after Section
- 2.4 need to have the LFS environment variable set
+ 2.4 must have the LFS environment variable set
FOR THE ROOT USER.
@@ -44,7 +44,7 @@
These two chapters must be done as user
lfs.
- A su - lfs command must be issued before any task in these
+ A su - lfs command must be issued before performing any task in these
chapters. If you don't do that, you are at risk of installing packages to the
host, and potentially rendering it unusable.
@@ -52,8 +52,8 @@
The procedures in
are critical. If there is any
- doubt about installing a package, ensure any previously expanded
- tarballs are removed, then re-extract the package files, and complete all
+ doubt a package has been installed correctly, ensure the previously expanded
+ tarball has been removed, then re-extract the package, and complete all
the instructions in that section.
@@ -77,7 +77,7 @@
When entering chroot, the LFS environment variable must be set
for root. The LFS
- variable is not used after entering the chroot environment.
+ variable is not used after the chroot environment has been entered.
diff --git a/chapter03/patches.xml b/chapter03/patches.xml
index 2bba9c16d..630b21c2e 100644
--- a/chapter03/patches.xml
+++ b/chapter03/patches.xml
@@ -26,7 +26,7 @@
-->
-
+
-
+
Sysvinit Consolidated Patch - &sysvinit-consolidated-patch-size;:
diff --git a/chapter05/glibc.xml b/chapter05/glibc.xml
index 2575e0201..f9d2ff2dc 100644
--- a/chapter05/glibc.xml
+++ b/chapter05/glibc.xml
@@ -174,7 +174,7 @@ cd build
functions (compiling and linking) of the new toolchain are working as
expected. To perform a sanity check, run the following commands:
-echo 'int main(){}' | gcc -xc -
+echo 'int main(){}' | $LFS_TGT-gcc -xc -
readelf -l a.out | grep ld-linux
If everything is working correctly, there should be no errors,
diff --git a/chapter06/bash.xml b/chapter06/bash.xml
index d462d2631..d00e685ca 100644
--- a/chapter06/bash.xml
+++ b/chapter06/bash.xml
@@ -45,9 +45,9 @@
Prepare Bash for compilation:
-./configure --prefix=/usr \
- --build=$(support/config.guess) \
- --host=$LFS_TGT \
+./configure --prefix=/usr \
+ --build=$(sh support/config.guess) \
+ --host=$LFS_TGT \
--without-bash-malloc
diff --git a/chapter08/bash.xml b/chapter08/bash.xml
index 4ea981d5b..fa21ab346 100644
--- a/chapter08/bash.xml
+++ b/chapter08/bash.xml
@@ -40,6 +40,10 @@
Installation of Bash
+ First, fix some issues identified upstream:
+
+patch -Np1 -i ../&bash-fixes-patch;
+
Prepare Bash for compilation:
./configure --prefix=/usr \
diff --git a/chapter08/readline.xml b/chapter08/readline.xml
index 889314b14..51784d2f7 100644
--- a/chapter08/readline.xml
+++ b/chapter08/readline.xml
@@ -49,6 +49,10 @@
sed -i '/MV.*old/d' Makefile.in
sed -i '/{OLDSUFF}/c:' support/shlib-install
+ Now fix a problem identified upstream:
+
+patch -Np1 -i ../&readline-fixes-patch;
+
Prepare Readline for compilation:
./configure --prefix=/usr \
diff --git a/lfs-latest-git.php b/lfs-latest-git.php
index 32c8150ca..d4f331697 100644
--- a/lfs-latest-git.php
+++ b/lfs-latest-git.php
@@ -17,7 +17,7 @@ $regex[ 'intltool' ] = "/^.*Latest version is (\d[\d\.]+\d).*$/";
$regex[ 'less' ] = "/^.*current released version is less-(\d+).*$/";
$regex[ 'mpfr' ] = "/^mpfr-([\d\.]+)\.tar.*$/";
$regex[ 'Python' ] = "/^.*Latest Python 3.*Python (3[\d\.]+\d).*$/";
-$regex[ 'systemd' ] = "/^.*v([\d]+)$/";
+$regex[ 'systemd' ] = "/^.*systemd v([\d]+)$/";
//$regex[ 'sysvinit' ] = "/^.*sysvinit-([\d\.]+)dsf\.tar.*$/";
$regex[ 'tzdata' ] = "/^.*tzdata([\d]+[a-z]).*$/";
$regex[ 'xz' ] = "/^.*xz-([\d\.]*\d).*$/";
diff --git a/packages.ent b/packages.ent
index d7fb9fa2d..96d1e3ae9 100644
--- a/packages.ent
+++ b/packages.ent
@@ -114,10 +114,10 @@
-
-
+
+
-
+
@@ -245,10 +245,10 @@
-
-
+
+
-
+
@@ -317,10 +317,10 @@
-
+
-
+
@@ -342,10 +342,10 @@
-
-
+
+
-
+
@@ -422,14 +422,14 @@
-
-
-
+
+
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
@@ -694,10 +694,10 @@
-
+
-
+
@@ -717,13 +717,13 @@
-
+
-
+
-
+
@@ -745,20 +745,20 @@
-
-
+
+
-
+
-
-
+
+
-
+
diff --git a/part3intro/toolchaintechnotes.xml b/part3intro/toolchaintechnotes.xml
index c5b8dc577..53c1f4a23 100644
--- a/part3intro/toolchaintechnotes.xml
+++ b/part3intro/toolchaintechnotes.xml
@@ -267,7 +267,7 @@
package on a complete LFS system, the installed content of the package
should be same as the content of the same package installed in
&ch-final;. The temporary packages installed in &ch-tmp-cross; or
- &ch-tmp-chroot; cannot satisify this expectation because some of them
+ &ch-tmp-chroot; cannot satisfy this expectation because some of them
are built without optional dependencies installed, and autoconf cannot
perform some feature checks in &ch-tmp-cross; because of cross
compilation, causing the temporary packages to lack optional features
@@ -300,12 +300,11 @@
its library search order. Detailed information can be obtained from
ld by passing it the --verbose
flag. For example, $LFS_TGT-ld --verbose | grep SEARCH
- will illustrate the current search paths and their order. It shows which
- files are linked by ld by compiling a dummy program and
- passing the --verbose switch to the linker. For
- example,
- $LFS_TGT-gcc dummy.c -Wl,--verbose 2>&1 | grep succeeded
- will show all the files successfully opened during the linking.
+ will illustrate the current search paths and their order. Note that this
+ example can be run as shown only while being user
+ lfs. If you come back to this
+ page later, replace $LFS_TGT-ld with just
+ ld.
The next package installed is gcc. An example of what can be
seen during its run of configure is:
@@ -318,14 +317,18 @@ checking what linker to use... /mnt/lfs/tools/i686-lfs-linux-gnu/bin/ldgcc itself, the same search paths are not
necessarily used. To find out which standard linker gcc
- will use, run: $LFS_TGT-gcc -print-prog-name=ld.
+ will use, run: $LFS_TGT-gcc -print-prog-name=ld. Again,
+ remove the $LFS_TGT- part if coming back to this
+ later.
Detailed information can be obtained from gcc by
passing it the -v command line option while compiling
- a dummy program. For example, gcc -v dummy.c will show
+ a program. For example, $LFS_TGT-gcc -v
+ example.c (or without
+ $LFS_TGT- if coming back later to this) will show
detailed information about the preprocessor, compilation, and assembly
- stages, including gcc's included search paths and their
- order.
+ stages, including gcc's search paths for included
+ headers and their order.
Next installed are sanitized Linux API headers. These allow the
standard C library (glibc) to interface with features that the Linux
diff --git a/patches.ent b/patches.ent
index 54c0c11fa..3877eebbd 100644
--- a/patches.ent
+++ b/patches.ent
@@ -7,11 +7,11 @@
-->
-
+
+
+
+
+
+
+