Merge remote-tracking branch 'origin/trunk' into xry111/arm64

This commit is contained in:
Xi Ruoyao 2022-10-18 16:31:34 +08:00
commit cdc04a1c2a
No known key found for this signature in database
GPG Key ID: ACAAD20E19E710E3
21 changed files with 339 additions and 245 deletions

View File

@ -1863,7 +1863,9 @@
<segtitle>&external;</segtitle>
<seglistitem>
<seg>
<ulink url="&blfs-book;general/cpio.html">cpio</ulink>
<ulink url="&blfs-book;general/cpio.html">cpio</ulink> and
<ulink url="&blfs-book;general/llvm.html">LLVM</ulink>
(with Clang)
</seg>
</seglistitem>
</segmentedlist>

View File

@ -39,6 +39,74 @@
<listitem revision="sysv"> or <listitem revision="systemd"> as
appropriate for the entry or if needed the entire day's listitem.
-->
<listitem>
<para>2022-10-17</para>
<itemizedlist>
<listitem>
<para>[bdubbs] - Update to linux-6.0.2 (Security update). Fixes
<ulink url="&lfs-ticket-root;5138">#5138</ulink>.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>2022-10-15</para>
<itemizedlist>
<listitem>
<para>[bdubbs] - Update to iana-etc-20221007. Addresses
<ulink url="&lfs-ticket-root;5006">#5006</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to vim-9.0.0739. Addresses
<ulink url="&lfs-ticket-root;5006">#5006</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Add upstream patches to readline and bash. Fixes
<ulink url="&lfs-ticket-root;5135">#5131</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to zlib-1.2.13. Fixes
<ulink url="&lfs-ticket-root;5137">#5137</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to man-pages-6.00. Fixes
<ulink url="&lfs-ticket-root;5136">#5136</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to gettext-0.21.1. Fixes
<ulink url="&lfs-ticket-root;5130">#5130</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to iproute2-6.0.0. Fixes
<ulink url="&lfs-ticket-root;5127">#5127</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to meson-0.63.3. Fixes
<ulink url="&lfs-ticket-root;5129">#5129</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to Python-3.10.8. Fixes
<ulink url="&lfs-ticket-root;5133">#5133</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to xz-5.2.7. Fixes
<ulink url="&lfs-ticket-root;5133">#5133</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to tzdata-2022e. Fixes
<ulink url="&lfs-ticket-root;5119">#5134</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to linux-6.0.1. Fixes
<ulink url="&lfs-ticket-root;5135">#5135</ulink>.</para>
</listitem>
<listitem revision="systemd">
<para>[bdubbs] - Update to dbus-1.14.4. Fixes
<ulink url="&lfs-ticket-root;5128">#5128</ulink>.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>2022-10-04</para>
<itemizedlist>
@ -76,7 +144,7 @@
</listitem>
<listitem>
<para>[bdubbs] - Update to libcap-2.66. Fixes
<ulink url="&lfs-ticket-root;512">#5120</ulink>.</para>
<ulink url="&lfs-ticket-root;5120">#5120</ulink>.</para>
</listitem>
<listitem revision="systemd">
<para>[bdubbs] - Update to dbus-1.14.2. Fixes

View File

@ -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 <quote>development</quote> option
during the distribution installation to be able to access these
during the distribution installation to include these
tools.</para>
<para>As an alternative to installing a separate distribution onto your
<para>As an alternative to installing a separate distribution on your
machine, you may wish to use <!-- the Linux From Scratch LiveCD or --> a LiveCD from a
commercial distribution. <!-- The LFS LiveCD works well as a host system,
providing all the tools you need to successfully follow the instructions in
@ -36,47 +36,47 @@
</note> -->
<para><xref linkend="chapter-partitioning"/> 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. <xref
linkend="chapter-getting-materials"/> 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. <xref linkend="chapter-final-preps"/>
discusses the setup of an appropriate working environment. Please read
<xref linkend="chapter-final-preps"/> 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 <xref linkend="chapter-cross-tools"/> and beyond.</para>
<para><xref linkend="chapter-cross-tools"/> 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.</para>
<para><xref linkend="chapter-temporary-tools"/> shows you how to
cross-compile basic utilities using the just built cross-toolchain.</para>
<para><xref linkend="chapter-chroot-temporary-tools"/> then enters a
"chroot" environment and uses the previously built tools to build
the additional tools needed to build and test the final system.</para>
"chroot" environment, where we use the new tools to build all
the rest of the tools needed to create the LFS system.</para>
<para>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 <xref linkend="ch-tools-toolchaintechnotes"/>.</para>
<para>In <xref linkend="chapter-building-system"/> 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.</para>
complete, you can continue using your computer as usual.</para>
<para>To finish the installation, the basic system configuration is set up in
<xref linkend="chapter-config"/>, and the kernel and boot loader are set
up in <xref linkend="chapter-bootable"/>. <xref linkend="chapter-finalizing"/>
<xref linkend="chapter-config"/>, and the kernel and boot loader are created
in <xref linkend="chapter-bootable"/>. <xref linkend="chapter-finalizing"/>
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.</para>
After the steps in this chapter have been implemented, the computer is
ready to boot into the new LFS system.</para>
<para>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.</para>
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.</para>
</sect1>

View File

@ -15,17 +15,18 @@
<para>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 <ulink url="&faq-root;"/>.</para>
please start by consulting the list of Frequently Asked Questions (FAQ),
located at <ulink url="&faq-root;"/>.</para>
</sect2>
<sect2 id="ch-intro-maillists" xreflabel="Chapter&nbsp;1 - Mailing Lists">
<title>Mailing Lists</title>
<para>The <uri>linuxfromscratch.org</uri> server hosts a number of mailing
<para>The <systemitem class='domainname'>linuxfromscratch.org</systemitem>
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 <ulink url="&lfs-root;search.html"/>.</para>
@ -53,10 +54,11 @@
<sect2 id="ch-intro-irc">
<title>IRC</title>
<para>Several members of the LFS community offer assistance on Internet
Relay Chat (IRC). Before using this support, please make sure that your
<para>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 <uri>irc.libera.chat</uri>.
archives. You can find the IRC network at
<systemitem class='domainname'>irc.libera.chat</systemitem>.
The support channel is named #lfs-support.</para>
</sect2>

View File

@ -11,16 +11,16 @@
<title>What's new since the last release</title>
<para>In 11.3 release, <parameter>--enable-default-pie</parameter>
<para>In the 11.3 release, <parameter>--enable-default-pie</parameter>
and <parameter>--enable-default-ssp</parameter> 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
<parameter>-fno-pie -no-pie -fno-stack-protection</parameter>
because some textbooks assume they were disabled by default.</para>
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
<parameter>-fno-pie -no-pie -fno-stack-protection</parameter>,
because some textbooks assume these options are disabled by default.</para>
<para>Below is a list of package updates made since the previous
release of the book.</para>
<para>Here is a list of the packages updated since the previous
release of LFS.</para>
<!--
Every package in the book is listed in the "Upgraded to:" section.
@ -106,9 +106,9 @@
<!--<listitem>
<para>GDBM-&gdbm-version;</para>
</listitem>-->
<!--<listitem>
<listitem>
<para>Gettext-&gettext-version;</para>
</listitem>-->
</listitem>
<!--<listitem>
<para>Glibc-&glibc-version;</para>
</listitem>-->
@ -139,9 +139,9 @@
<!--<listitem>
<para>Intltool-&intltool-version;</para>
</listitem>-->
<!--<listitem>
<listitem>
<para>IPRoute2-&iproute2-version;</para>
</listitem>-->
</listitem>
<!--<listitem revision="systemd">
<para>Jinja2-&jinja2-version;</para>
</listitem>-->
@ -184,9 +184,9 @@
<!--<listitem>
<para>Man-DB-&man-db-version;</para>
</listitem>-->
<!--<listitem>
<listitem>
<para>Man-pages-&man-pages-version;</para>
</listitem>-->
</listitem>
<!--<listitem revision="systemd">
<para>MarkupSafe-&markupsafe-version;</para>
</listitem>-->
@ -259,18 +259,18 @@
<!--<listitem>
<para>Util-Linux-&util-linux-version;</para>
</listitem>-->
<!--<listitem>
<listitem>
<para>Vim-&vim-version;</para>
</listitem>-->
</listitem>
<!--<listitem>
<para>XML-Parser-&xml-parser-version;</para>
</listitem>-->
<!--<listitem>
<listitem>
<para>XZ-Utils-&xz-version;</para>
</listitem>-->
<!--<listitem>
</listitem>
<listitem>
<para>Zlib-&zlib-version;</para>
</listitem>-->
</listitem>
<!--<listitem>
<para>Zstd-&zstd-version;</para>
</listitem>-->
@ -289,9 +289,12 @@
<title>Added:</title>
<listitem><para></para></listitem> <!-- satisfy build -->
<!--<listitem>
<para>&xz-upstream-fix-patch;</para>
</listitem>-->
<listitem>
<para>&bash-fixes-patch;</para>
</listitem>
<listitem>
<para>&readline-fixes-patch;</para>
</listitem>
</itemizedlist>
<itemizedlist>

View File

@ -83,7 +83,7 @@
udev.</para>
<para>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 @@
<!--<title> </title>-->
<para >To see whether your host system has all the appropriate versions, and
the ability to compile programs, run the following:</para>
the ability to compile programs, run the following commands:</para>
<screen role="nodump"><userinput>cat &gt; version-check.sh &lt;&lt; "EOF"
<literal>#!/bin/bash

View File

@ -12,22 +12,22 @@
<para>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.</para>
<sect2>
<title>Chapters&nbsp;1&ndash;4</title>
<para>These chapters are accomplished on the host system. When
restarting, be careful of the following:</para>
<para>These chapters run commands on the host system. When
restarting, be certain of one thing:</para>
<itemizedlist>
<listitem>
<para>Procedures done as the
<para>Procedures performed as the
<systemitem class="username">root</systemitem> user after Section
2.4 need to have the LFS environment variable set
2.4 must have the LFS environment variable set
<emphasis>FOR THE ROOT USER</emphasis>.</para>
</listitem>
</itemizedlist>
@ -44,7 +44,7 @@
<listitem>
<para>These two chapters <emphasis>must</emphasis> be done as user
<systemitem class="username">lfs</systemitem>.
A <command>su - lfs</command> command must be issued before any task in these
A <command>su - lfs</command> 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.</para>
</listitem>
@ -52,8 +52,8 @@
<listitem>
<para>The procedures in <xref linkend='ch-tools-generalinstructions'/>
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.</para>
</listitem>
</itemizedlist>
@ -77,7 +77,7 @@
<listitem>
<para> When entering chroot, the LFS environment variable must be set
for <systemitem class="username">root</systemitem>. The LFS
variable is not used after entering the chroot environment.</para>
variable is not used after the chroot environment has been entered.</para>
</listitem>
<listitem>

View File

@ -26,7 +26,7 @@
</listitem>
</varlistentry>
-->
<!--
<varlistentry>
<term>Bash Upstream Fixes Patch - <token>&bash-fixes-patch-size;</token>:</term>
<listitem>
@ -34,7 +34,7 @@
<para>MD5 sum: <literal>&bash-fixes-patch-md5;</literal></para>
</listitem>
</varlistentry>
-->
<!--
<varlistentry>
<term>Binutils LTO Fix Patch - <token>&binutils-lto-patch-size;</token>:</term>
@ -118,15 +118,15 @@
</listitem>
</varlistentry>
-->
<!--
<varlistentry>
<term>Shadow Segfault Fix Patch - <token>&shadow-segfault-patch-size;</token>:</term>
<term>Readline Upstream Fix Patch - <token>&readline-fixes-patch-size;</token>:</term>
<listitem>
<para>Download: <ulink url="&patches-root;&shadow-segfault-patch;"/></para>
<para>MD5 sum: <literal>&shadow-segfault-patch-md5;</literal></para>
<para>Download: <ulink url="&patches-root;&readline-fixes-patch;"/></para>
<para>MD5 sum: <literal>&readline-fixes-patch-md5;</literal></para>
</listitem>
</varlistentry>
-->
<varlistentry revision="sysv">
<term>Sysvinit Consolidated Patch - <token>&sysvinit-consolidated-patch-size;</token>:</term>
<listitem>

View File

@ -174,7 +174,7 @@ cd build</userinput></screen>
functions (compiling and linking) of the new toolchain are working as
expected. To perform a sanity check, run the following commands:</para>
<screen><userinput>echo 'int main(){}' | gcc -xc -
<screen><userinput>echo 'int main(){}' | $LFS_TGT-gcc -xc -
readelf -l a.out | grep ld-linux</userinput></screen>
<para>If everything is working correctly, there should be no errors,

View File

@ -46,7 +46,7 @@
<para>Prepare Bash for compilation:</para>
<screen><userinput remap="configure">./configure --prefix=/usr \
--build=$(support/config.guess) \
--build=$(sh support/config.guess) \
--host=$LFS_TGT \
--without-bash-malloc</userinput></screen>

View File

@ -40,6 +40,10 @@
<sect2 role="installation">
<title>Installation of Bash</title>
<para>First, fix some issues identified upstream:</para>
<screen><userinput remap="pre">patch -Np1 -i ../&bash-fixes-patch;</userinput></screen>
<para>Prepare Bash for compilation:</para>
<screen><userinput remap="configure">./configure --prefix=/usr \

View File

@ -49,6 +49,10 @@
<screen><userinput remap="pre">sed -i '/MV.*old/d' Makefile.in
sed -i '/{OLDSUFF}/c:' support/shlib-install</userinput></screen>
<para>Now fix a problem identified upstream:</para>
<screen><userinput remap="pre">patch -Np1 -i ../&readline-fixes-patch;</userinput></screen>
<para>Prepare Readline for compilation:</para>
<screen><userinput remap="configure">./configure --prefix=/usr \

View File

@ -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).*$/";

View File

@ -114,10 +114,10 @@
<!ENTITY coreutils-fin-du "159 MB">
<!ENTITY coreutils-fin-sbu "2.8 SBU">
<!ENTITY dbus-version "1.14.2">
<!ENTITY dbus-size "1,332 KB">
<!ENTITY dbus-version "1.14.4">
<!ENTITY dbus-size "1,337 KB">
<!ENTITY dbus-url "https://dbus.freedesktop.org/releases/dbus/dbus-&dbus-version;.tar.xz">
<!ENTITY dbus-md5 "2d9a6b441e6f844d41c35a004f0ef50b">
<!ENTITY dbus-md5 "e36f0f160751fa7ce103782166852c6b">
<!ENTITY dbus-home "https://www.freedesktop.org/wiki/Software/dbus">
<!ENTITY dbus-fin-du "19 MB">
<!ENTITY dbus-fin-sbu "0.2 SBU">
@ -245,10 +245,10 @@
<!ENTITY gdbm-fin-du "13 MB">
<!ENTITY gdbm-fin-sbu "0.1 SBU">
<!ENTITY gettext-version "0.21">
<!ENTITY gettext-size "9,487 KB">
<!ENTITY gettext-version "0.21.1">
<!ENTITY gettext-size "9,819 KB">
<!ENTITY gettext-url "&gnu;gettext/gettext-&gettext-version;.tar.xz">
<!ENTITY gettext-md5 "40996bbaf7d1356d3c22e33a8b255b31">
<!ENTITY gettext-md5 "27fcc8a42dbc8f334f23a08f1f2fe00a">
<!ENTITY gettext-home "&gnu-software;gettext/">
<!ENTITY gettext-tmp-du "282 MB">
<!ENTITY gettext-tmp-sbu "1.6 SBU">
@ -317,10 +317,10 @@
<!ENTITY gzip-fin-du "21 MB">
<!ENTITY gzip-fin-sbu "0.3 SBU">
<!ENTITY iana-etc-version "20220922">
<!ENTITY iana-etc-version "20221007">
<!ENTITY iana-etc-size "584 KB">
<!ENTITY iana-etc-url "https://github.com/Mic92/iana-etc/releases/download/&iana-etc-version;/iana-etc-&iana-etc-version;.tar.gz">
<!ENTITY iana-etc-md5 "2fdc746cfc1bc10f841760fd6a92618c">
<!ENTITY iana-etc-md5 "4ba9c780b4cf3b0629a82fbe840cc14a">
<!ENTITY iana-etc-home "https://www.iana.org/protocols">
<!ENTITY iana-etc-fin-du "4.8 MB">
<!ENTITY iana-etc-fin-sbu "less than 0.1 SBU">
@ -342,10 +342,10 @@
<!ENTITY intltool-fin-du "1.5 MB">
<!ENTITY intltool-fin-sbu "less than 0.1 SBU">
<!ENTITY iproute2-version "5.19.0">
<!ENTITY iproute2-size "872 KB">
<!ENTITY iproute2-version "6.0.0">
<!ENTITY iproute2-size "880 KB">
<!ENTITY iproute2-url "&kernel;linux/utils/net/iproute2/iproute2-&iproute2-version;.tar.xz">
<!ENTITY iproute2-md5 "415bd9eeb8515a585e245809d2fe45a6">
<!ENTITY iproute2-md5 "5da6cb3154ee09b9a8b4004d1c2df4cd">
<!ENTITY iproute2-home "&kernel;linux/utils/net/iproute2/">
<!ENTITY iproute2-fin-du "16 MB">
<!ENTITY iproute2-fin-sbu "0.2 SBU">
@ -422,14 +422,14 @@
<!ENTITY libtool-fin-du "43 MB">
<!ENTITY libtool-fin-sbu "1.5 SBU">
<!ENTITY linux-major-version "5">
<!ENTITY linux-minor-version "19">
<!ENTITY linux-patch-version "13">
<!ENTITY linux-major-version "6">
<!ENTITY linux-minor-version "0">
<!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 "128,568 KB">
<!ENTITY linux-size "130,712 KB">
<!ENTITY linux-url "&kernel;linux/kernel/v&linux-major-version;.x/linux-&linux-version;.tar.xz">
<!ENTITY linux-md5 "fd9538870c56a39ec8a7c1d6abf0b43a">
<!ENTITY linux-md5 "5a7ea40f0ec23b0800e8b52cb44ed04c">
<!ENTITY linux-home "https://www.kernel.org/">
<!-- measured for 5.13.4 / gcc-11.1.0 on x86_64 : minimum is
allnoconfig rounded down to allow for ongoing cleanups,
@ -471,10 +471,10 @@
<!ENTITY man-db-fin-du "40 MB">
<!ENTITY man-db-fin-sbu "0.4 SBU">
<!ENTITY man-pages-version "5.13">
<!ENTITY man-pages-size "1,752 KB">
<!ENTITY man-pages-version "6.00">
<!ENTITY man-pages-size "1,746 KB">
<!ENTITY man-pages-url "&kernel;linux/docs/man-pages/man-pages-&man-pages-version;.tar.xz">
<!ENTITY man-pages-md5 "3ac24e8c6fae26b801cb87ceb63c0a30">
<!ENTITY man-pages-md5 "1a30556c061af0616bd8af882e040edb">
<!ENTITY man-pages-home "https://www.kernel.org/doc/man-pages/">
<!ENTITY man-pages-fin-du "33 MB">
<!ENTITY man-pages-fin-sbu "less than 0.1 SBU">
@ -487,10 +487,10 @@
<!ENTITY markupsafe-fin-du "168 KB">
<!ENTITY markupsafe-fin-sbu "less than 0.1 SBU">
<!ENTITY meson-version "0.63.2">
<!ENTITY meson-size "2,016 KB">
<!ENTITY meson-version "0.63.3">
<!ENTITY meson-size "2,020 KB">
<!ENTITY meson-url "&github;/mesonbuild/meson/releases/download/&meson-version;/meson-&meson-version;.tar.gz">
<!ENTITY meson-md5 "12ae3150982645790a4f8a8e8795173c">
<!ENTITY meson-md5 "b2f2757b5dd84cc754b9df53ce37a175">
<!ENTITY meson-home "https://mesonbuild.com">
<!ENTITY meson-fin-du "38 MB">
<!ENTITY meson-fin-sbu "less than 0.1 SBU">
@ -588,19 +588,19 @@
<!-- If python minor version changes, updates in python and
meson pages will be needed: python3.6 and python3.6m -->
<!ENTITY python-version "3.10.7">
<!ENTITY python-version "3.10.8">
<!ENTITY python-minor "3.10">
<!ENTITY python-size "19,159 KB">
<!ENTITY python-size "19,160 KB">
<!ENTITY python-url "https://www.python.org/ftp/python/&python-version;/Python-&python-version;.tar.xz">
<!ENTITY python-md5 "b8094f007b3a835ca3be6bdf8116cccc">
<!ENTITY python-md5 "e92356b012ed4d0e09675131d39b1bde">
<!ENTITY python-home "https://www.python.org/">
<!ENTITY python-tmp-du "364 MB">
<!ENTITY python-tmp-sbu "0.9 SBU">
<!ENTITY python-fin-du "283 MB">
<!ENTITY python-fin-sbu "3.4 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 "d5923c417995334e72c2561812905d23">
<!ENTITY python-docs-size "7,176 KB">
<!ENTITY python-docs-md5 "e19fa51f7055c0e869d609f2dfbcc5d9">
<!ENTITY python-docs-size "7,190 KB">
<!ENTITY readline-version "8.2">
<!ENTITY readline-soversion "8.2"><!-- used for stripping -->
@ -694,10 +694,10 @@
<!ENTITY texinfo-fin-du "114 MB">
<!ENTITY texinfo-fin-sbu "0.6 SBU">
<!ENTITY tzdata-version "2022d">
<!ENTITY tzdata-version "2022e">
<!ENTITY tzdata-size "424 KB">
<!ENTITY tzdata-url "https://www.iana.org/time-zones/repository/releases/tzdata&tzdata-version;.tar.gz">
<!ENTITY tzdata-md5 "e55dbeb2121230a0ae7c58dbb47ae8c8">
<!ENTITY tzdata-md5 "97bf180d57c3e51a49742d1d87ceed40">
<!ENTITY tzdata-home "https://www.iana.org/time-zones">
<!ENTITY udev-lfs-version "udev-lfs-20171102">
@ -717,13 +717,13 @@
<!ENTITY util-linux-fin-du "283 MB">
<!ENTITY util-linux-fin-sbu "1.0 SBU">
<!ENTITY vim-version "9.0.0228">
<!ENTITY vim-version "9.0.0739">
<!-- <!ENTITY vim-majmin "90"> -->
<!ENTITY vim-docdir "vim/vim90">
<!ENTITY vim-size "16,372 KB">
<!ENTITY vim-size "16,370 KB">
<!--<!ENTITY vim-url "https://github.com/vim/vim/archive/v&vim-version;/vim-&vim-version;.tar.gz">-->
<!ENTITY vim-url "&anduin-sources;/vim-&vim-version;.tar.gz">
<!ENTITY vim-md5 "bc7e0a4829d94bb4c03a7a6b4ad6a8cf">
<!ENTITY vim-md5 "d28503800dcd471edf8c308f5a74f177">
<!ENTITY vim-home "https://www.vim.org">
<!ENTITY vim-fin-du "217 MB">
<!ENTITY vim-fin-sbu "2.5 SBU">
@ -745,20 +745,20 @@
<!ENTITY xml-parser-fin-du "2.3 MB">
<!ENTITY xml-parser-fin-sbu "less than 0.1 SBU">
<!ENTITY xz-version "5.2.6">
<!ENTITY xz-size "1,234 KB">
<!ENTITY xz-version "5.2.7">
<!ENTITY xz-size "1,253 KB">
<!ENTITY xz-url "https://tukaani.org/xz/xz-&xz-version;.tar.xz">
<!ENTITY xz-md5 "d9cd5698e1ec06cf638c0d2d645e8175">
<!ENTITY xz-md5 "6c130d21e260d4476e971985e7394e83">
<!ENTITY xz-home "https://tukaani.org/xz">
<!ENTITY xz-tmp-du "16 MB">
<!ENTITY xz-tmp-sbu "0.1 SBU">
<!ENTITY xz-fin-du "16 MB">
<!ENTITY xz-fin-sbu "0.2 SBU">
<!ENTITY zlib-version "1.2.12">
<!ENTITY zlib-size "1259 KB">
<!ENTITY zlib-version "1.2.13">
<!ENTITY zlib-size "1267 KB">
<!ENTITY zlib-url "https://zlib.net/zlib-&zlib-version;.tar.xz">
<!ENTITY zlib-md5 "28687d676c04e7103bb6ff2b9694c471">
<!ENTITY zlib-md5 "7d9fc1d78ae2fa3e84fe98b77d006c63">
<!ENTITY zlib-home "https://www.zlib.net/">
<!ENTITY zlib-fin-du "6.1 MB">
<!ENTITY zlib-fin-sbu "less than 0.1 SBU">

View File

@ -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
<command>ld</command> by passing it the <parameter>--verbose</parameter>
flag. For example, <command>$LFS_TGT-ld --verbose | grep SEARCH</command>
will illustrate the current search paths and their order. It shows which
files are linked by <command>ld</command> by compiling a dummy program and
passing the <parameter>--verbose</parameter> switch to the linker. For
example,
<command>$LFS_TGT-gcc dummy.c -Wl,--verbose 2&gt;&amp;1 | grep succeeded</command>
will show all the files successfully opened during the linking.</para>
will illustrate the current search paths and their order. Note that this
example can be run as shown only while being user
<systemitem class="username">lfs</systemitem>. If you come back to this
page later, replace <command>$LFS_TGT-ld</command> with just
<command>ld</command>.</para>
<para>The next package installed is gcc. An example of what can be
seen during its run of <command>configure</command> is:</para>
@ -318,14 +317,18 @@ checking what linker to use... /mnt/lfs/tools/i686-lfs-linux-gnu/bin/ld</compute
directories to find which tools to use. However, during the actual
operation of <command>gcc</command> itself, the same search paths are not
necessarily used. To find out which standard linker <command>gcc</command>
will use, run: <command>$LFS_TGT-gcc -print-prog-name=ld</command>.</para>
will use, run: <command>$LFS_TGT-gcc -print-prog-name=ld</command>. Again,
remove the <command>$LFS_TGT-</command> part if coming back to this
later.</para>
<para>Detailed information can be obtained from <command>gcc</command> by
passing it the <parameter>-v</parameter> command line option while compiling
a dummy program. For example, <command>gcc -v dummy.c</command> will show
a program. For example, <command>$LFS_TGT-gcc -v
<replaceable>example.c</replaceable></command> (or without <command>
$LFS_TGT-</command> if coming back later to this) will show
detailed information about the preprocessor, compilation, and assembly
stages, including <command>gcc</command>'s included search paths and their
order.</para>
stages, including <command>gcc</command>'s search paths for included
headers and their order.</para>
<para>Next installed are sanitized Linux API headers. These allow the
standard C library (glibc) to interface with features that the Linux

View File

@ -7,11 +7,11 @@
<!ENTITY autoconf-fixes-patch-md5 "3c515415ecdd777990c91e8900279cb9">
<!ENTITY autoconf-fixes-patch-size "3.8 KB">
-->
<!--
<!ENTITY bash-fixes-patch "bash-&bash-version;-upstream_fixes-1.patch">
<!ENTITY bash-fixes-patch-md5 "c1545da2ad7d78574b52c465ec077ed9">
<!ENTITY bash-fixes-patch-size "22 KB">
-->
<!ENTITY bash-fixes-patch-md5 "5f20760139d6a97e55124988fcddae44">
<!ENTITY bash-fixes-patch-size "2.0 KB">
<!--
<!ENTITY binutils-lto-patch "binutils-&binutils-version;-lto_fix-1.patch">
<!ENTITY binutils-lto-patch-md5 "3df11b6123d5bbdb0fc83862a003827a">
@ -78,6 +78,10 @@
<!ENTITY perl-fix-patch-md5 "fb42558b59ed95ee00eb9f1c1c9b8056">
<!ENTITY perl-fix-patch-size "1.6 KB">
-->
<!ENTITY readline-fixes-patch "readline-&readline-version;-upstream_fix-1.patch">
<!ENTITY readline-fixes-patch-md5 "dd1764b84cfca6b677f44978218a75da">
<!ENTITY readline-fixes-patch-size "1.3 KB">
<!--
<!ENTITY shadow-segfault-patch "shadow-&shadow-version;-useradd_segfault-1.patch">
<!ENTITY shadow-segfault-patch-md5 "66b299c0c9ac66fdb7c91b40df5984c0">

View File

@ -13,7 +13,8 @@
<para>The target architectures of this LFS edition are ARM64 (sometimes
called AArch64) CPUs. On the other hand, the instructions in this book may
work on 32-bit ARM CPUs with some modifications. To build a system that
utilizes one of these CPUs, the main prerequisite, in addition to those on
utilizes one of these alternative CPUs, the main prerequisite, in
addition to those on
the next page, is an existing Linux system such as an earlier LFS
installation, Ubuntu, Red Hat/Fedora, SuSE, or other distribution that
targets the architecture that you have.</para>
@ -23,9 +24,9 @@ targets the architecture that you have.</para>
only. Building a <quote>multi-lib</quote> system requires compiling many
applications twice, once for a 32-bit system and once for a 64-bit system.
This is not directly supported in LFS because it would interfere with the
educational objective of providing the instructions needed for a
straightforward base Linux system. Some LFS/BLFS editors maintain a fork
of LFS for multilib, which is accessible at <ulink
educational objective of providing the minimal instructions needed for a
base Linux system. Some LFS/BLFS editors maintain a multilib fork
of LFS, accessible at <ulink
url="https://www.linuxfromscratch.org/~thomas/multilib/index.html"/>. But
the multilib edition is for x86_64, and multilib is an advanced topic
anyway.</para>

View File

@ -18,26 +18,26 @@ an existing one?</quote></para>
<para>One important reason for this project's existence is to help you learn
how a Linux system works from the inside out. Building an LFS system helps
demonstrate what makes Linux tick, and how things work together and depend on
each other. One of the best things that this learning experience can provide is
each other. One of the best things this learning experience can provide is
the ability to customize a Linux system to suit your own unique needs.</para>
<para>Another key benefit of LFS is that it allows you to have more control
over the system without relying on someone else's Linux implementation. With
LFS, you are in the driver's seat and dictate every aspect of the
<para>Another key benefit of LFS is that it gives you control
of the system without relying on someone else's Linux implementation. With
LFS, you are in the driver's seat. <emphasis>You</emphasis> dictate every aspect of your
system.</para>
<para>LFS allows you to create very compact Linux systems. When installing
regular distributions, you are often forced to install a great many
programs which are probably never used or understood. These programs waste
resources. You may argue that with today's hard drive and CPUs, such
<para>LFS allows you to create very compact Linux systems. With
other distributions you are often forced to install a great many
programs you neither use nor understand. These programs waste
resources. You may argue that with today's hard drives and CPUs, wasted
resources are no longer a consideration. Sometimes, however, you are still
constrained by size considerations if nothing else. Think about bootable
constrained by the system's size, if nothing else. Think about bootable
CDs, USB sticks, and embedded systems. Those are areas where LFS can be
beneficial.</para>
<para>Another advantage of a custom built Linux system is security. By compiling
the entire system from source code, you are empowered to audit everything
and apply all the security patches desired. It is no longer necessary to
and apply all the security patches you want. You don't have to
wait for somebody else to compile binary packages that fix a security hole.
Unless you examine the patch and implement it yourself, you have no
guarantee that the new binary package was built correctly and adequately
@ -48,10 +48,10 @@ foundation-level system. If you do not wish to build your own Linux system
from scratch, you may nevertheless benefit from the information in this
book.</para>
<para>There are too many other good reasons to build your own LFS system to
list them all here. In the end, education is by far the most powerful of
reasons. As you continue in your LFS experience, you will discover the power
that information and knowledge truly bring.</para>
<para>There are too many good reasons to build your own LFS system to
list them all here. In the end, education is by far the most important
reason. As you continue your LFS experience, you will discover the power
that information and knowledge can bring.</para>
</sect1>

View File

@ -13,19 +13,19 @@
<para>Building an LFS system is not a simple task. It requires a certain
level of existing knowledge of Unix system administration in order to resolve
problems and correctly execute the commands listed. In particular, as an
absolute minimum, you should already have the ability to use the
absolute minimum, you should already know how to use the
command line (shell) to copy or move files and directories, list directory
and file contents, and change the current directory. It is also expected that
you have a reasonable knowledge of using and installing Linux
you know how to use and install Linux
software.</para>
<para>Because the LFS book assumes <emphasis>at least</emphasis> this basic
level of skill, the various LFS support forums are unlikely to be able to
level of skill, the various LFS support forums are unlikely to
provide you with much assistance in these areas. You will find that your
questions regarding such basic knowledge will likely go unanswered or you
will simply be referred to the LFS essential pre-reading list.</para>
questions regarding such basic knowledge will likely go unanswered (or you
will simply be referred to the LFS essential pre-reading list).</para>
<para>Before building an LFS system, we recommend reading the following:</para>
<para>Before building an LFS system, we urge you to read these articles:</para>
<itemizedlist>
<listitem>
@ -35,14 +35,14 @@
<para>This is a comprehensive guide to building and installing
<quote>generic</quote> Unix software packages under Linux. Although it
was written some time ago, it still provides a good summary of the
basic techniques needed to build and install software.</para>
basic techniques used to build and install software.</para>
</listitem>
<listitem>
<para>Beginner's Guide to Installing from Source
<ulink url="https://moi.vonos.net/linux/beginners-installing-from-source/"/></para>
<para>This guide provides a good summary of basic skills and
<para>This guide provides a good summary of the basic skills and
techniques needed to build software from source code.</para>
</listitem>
<!--

View File

@ -31,26 +31,27 @@
<para><ulink url="https://refspecs.linuxfoundation.org/lsb.shtml">Linux
Standard Base (LSB) Version 5.0 (2015)</ulink></para>
<para>The LSB has four separate standards: Core, Desktop,
Runtime Languages, and Imaging. In addition to generic requirements
there are also architecture specific requirements. There are also two
areas for trial use: Gtk3 and Graphics. LFS attempts to conform to the
<para>The LSB has four separate specifications: Core, Desktop,
Runtime Languages, and Imaging. Some parts of Core and Desktop
specifications are architecture specific. There are also two trial
specifications: Gtk3 and Graphics. LFS attempts to conform to the LSB
specifications for the IA32 (32-bit x86) or AMD64 (x86_64)
architectures discussed in the previous section.</para>
<note><para>Many people do not agree with the requirements of the LSB.
The main purpose of defining it is to ensure that proprietary software
will be able to be installed and run properly on a compliant system.
<note><para>Many people do not agree with these requirements.
The main purpose of the LSB is to ensure that proprietary software
can be installed and run on a compliant system.
Since LFS is source based, the user has complete control over what
packages are desired and many choose not to install some packages that
packages are desired; you may choose not to install some packages that
are specified by the LSB.</para></note>
</listitem>
</itemizedlist>
<para>Creating a complete LFS system capable of passing the LSB
certifications tests is possible, but not without many additional packages
that are beyond the scope of LFS. These additional packages have
installation instructions in BLFS. </para>
<para>While it is possible to create a complete system that will pass the LSB
certification tests "from scratch", this can't be done without many additional packages
that are beyond the scope of the LFS book. Installation instructions for these
additional packages can be found in BLFS. </para>
<variablelist>
<bridgehead renderas="sect3">Packages supplied by LFS needed to

View File

@ -10,13 +10,13 @@
<title>Rationale for Packages in the Book</title>
<para>As stated earlier, the goal of LFS is to build a complete and usable
foundation-level system. This includes all packages needed to replicate
itself while providing a relatively minimal base from which to customize
a more complete system based on the choices of the user. This does not
<para>The goal of LFS is to build a complete and usable
foundation-level system&mdash;including all the packages needed to replicate
itself&mdash;and providing a relatively minimal base from which to customize
a more complete system based on the user's choices. This does not
mean that LFS is the smallest system possible. Several important packages
are included that are not strictly required. The lists below document the
rationale for each package in the book.</para>
are included that are not, strictly speaking, required. The list below documents the
reasons each package in the book has been included.</para>
<itemizedlist>
@ -24,7 +24,7 @@
<para>Acl</para>
<para>This package contains utilities to administer Access
Control Lists, which are used to define more fine-grained
Control Lists, which are used to define fine-grained
discretionary access rights for files and directories.
</para>
</listitem>
@ -32,26 +32,26 @@
<listitem>
<para>Attr</para>
<para>This package contains programs for administering
extended attributes on filesystem objects.
<para>This package contains programs for managing
extended attributes on file system objects.
</para>
</listitem>
<listitem>
<para>Autoconf</para>
<para>This package contains programs for producing shell scripts that
<para>This package supplies programs for producing shell scripts that
can automatically configure source code from a developer's
template. It is often needed to rebuild a package after updates
to the build procedures.</para>
template. It is often needed to rebuild a package after
the build procedure has been updated.</para>
</listitem>
<listitem>
<para>Automake</para>
<para>This package contains programs for generating Make files from
a template. It is often needed to rebuild a package after updates
to the build procedures.</para>
a template. It is often needed to rebuild a package after
the build procedure has been updated.</para>
</listitem>
<listitem>
@ -60,29 +60,29 @@
<para>This package satisfies an LSB core requirement to provide
a Bourne Shell interface to the system. It was chosen over
other shell packages because of its common usage and extensive
capabilities beyond basic shell functions.</para>
capabilities.</para>
</listitem>
<listitem>
<para>Bc</para>
<para>This package provides an arbitrary precision numeric processing language.
It satisfies a requirement needed when building the Linux kernel.</para>
It satisfies a requirement for building the Linux kernel.</para>
</listitem>
<listitem>
<para>Binutils</para>
<para>This package contains a linker, an assembler, and other
<para>This package supplies a linker, an assembler, and other
tools for handling object files. The programs in this package are
needed to compile most of the packages in an LFS system and beyond.</para>
needed to compile most of the packages in an LFS system.</para>
</listitem>
<listitem>
<para>Bison</para>
<para>This package contains the GNU version of yacc (Yet Another
Compiler Compiler) needed to build several other LFS programs.</para>
Compiler Compiler) needed to build several of the LFS programs.</para>
</listitem>
<listitem>
@ -95,7 +95,7 @@
<listitem>
<para>Check</para>
<para>This package contains a test harness for other programs.</para>
<para>This package provides a test harness for other programs.</para>
</listitem>
<listitem>
@ -111,14 +111,14 @@
<para>D-Bus</para>
<para>This package contains programs to implement a message bus system,
which a simple way for applications to talk to one another.
a simple way for applications to talk to one another.
</para>
</listitem>
<listitem>
<para>DejaGNU</para>
<para>This package contains a framework for testing other programs.</para>
<para>This package supplies a framework for testing other programs.</para>
</listitem>
<listitem>
@ -132,7 +132,7 @@
<listitem>
<para>E2fsprogs</para>
<para>This package contains the utilities for handling the ext2, ext3
<para>This package supplies utilities for handling the ext2, ext3
and ext4 file systems. These are the most common and thoroughly
tested file systems that Linux supports.</para>
</listitem>
@ -141,15 +141,15 @@
<para>Eudev</para>
<para>This package is a device manager. It dynamically controls the ownership,
permissions, names, and symbolic links of devices in the /dev directory as
devices are added or removed from the system.
permissions, names, and symbolic links of device nodes in the /dev directory when
devices are added to or removed from the system.
</para>
</listitem>
<listitem>
<para>Expat</para>
<para>This package contains a relatively small XML parsing library. It
<para>This package yields a relatively small XML parsing library. It
is required by the XML::Parser Perl module.</para>
</listitem>
@ -171,7 +171,7 @@
<listitem>
<para>Findutils</para>
<para>This package contains programs to find files in a file system.
<para>This package provides programs to find files in a file system.
It is used in many packages' build scripts.</para>
</listitem>
@ -187,7 +187,7 @@
<listitem>
<para>Gawk</para>
<para>This package contains programs for manipulating text files.
<para>This package supplies programs for manipulating text files.
It is the GNU version of awk (Aho-Weinberg-Kernighan). It is used in
many other packages' build scripts.</para>
</listitem>
@ -195,7 +195,7 @@
<listitem>
<para>GCC</para>
<para>This package is the Gnu Compiler Collection. It contains the
<para>This is the Gnu Compiler Collection. It contains the
C and C++ compilers as well as several others not built by LFS.
</para>
</listitem>
@ -210,8 +210,8 @@
<listitem>
<para>Gettext</para>
<para>This package contains utilities and libraries for
internationalization and localization of numerous packages.</para>
<para>This package provides utilities and libraries for
the internationalization and localization of many packages.</para>
</listitem>
<listitem>
@ -224,15 +224,17 @@
<listitem>
<para>GMP</para>
<para>This package contains math libraries that provide useful functions
for arbitrary precision arithmetic. It is required to build GCC.</para>
<para>This package supplies math libraries that provide useful functions
for arbitrary precision arithmetic. It is needed to build GCC.</para>
</listitem>
<listitem>
<para>Gperf</para>
<para>This package contains a program that generates a perfect hash
function from a key set. It is required for Eudev.</para>
<para>This package produces a program that generates a perfect hash
function from a set of keys. It is required by
<phrase revision='sysv'>Eudev</phrase>
<phrase revision='systemd'>Systemd</phrase>.</para>
</listitem>
<listitem>
@ -245,15 +247,15 @@
<listitem>
<para>Groff</para>
<para>This package contains programs for processing and formatting text.
<para>This package contributes programs for processing and formatting text.
One important function of these programs is to format man pages.</para>
</listitem>
<listitem>
<para>GRUB</para>
<para>This package is the Grand Unified Boot Loader. It is one
of several boot loaders available, but is the most flexible.
<para>This is the Grand Unified Boot Loader. It is
the most flexible of several boot loaders available.
</para>
</listitem>
@ -261,8 +263,8 @@
<para>Gzip</para>
<para>This package contains programs for compressing and
decompressing files. It is needed to decompress many packages in LFS
and beyond.</para>
decompressing files. It is needed to decompress many packages
in LFS.</para>
</listitem>
<listitem>
@ -275,14 +277,14 @@
<listitem>
<para>Inetutils</para>
<para>This package contains programs for basic network
<para>This package supplies programs for basic network
administration.</para>
</listitem>
<listitem>
<para>Intltool</para>
<para>This package contains tools for extracting translatable
<para>This package contributes tools for extracting translatable
strings from source files.</para>
</listitem>
@ -304,14 +306,14 @@
<listitem>
<para>Kbd</para>
<para>This package contains key-table files, keyboard utilities
<para>This package produces key-table files, keyboard utilities
for non-US keyboards, and a number of console fonts.</para>
</listitem>
<listitem>
<para>Kmod</para>
<para>This package contains programs needed to administer Linux
<para>This package supplies programs needed to administer Linux
kernel modules.</para>
</listitem>
@ -319,8 +321,8 @@
<para>Less</para>
<para>This package contains a very nice text file viewer that
allows scrolling up or down when viewing a file. It is also used by
Man-DB for viewing manpages.</para>
allows scrolling up or down when viewing a file.
Many packages use it for paging the output.</para>
</listitem>
<listitem>
@ -357,7 +359,7 @@
<listitem>
<para>Libpipeline</para>
<para>The Libpipeline package contains a library for manipulating
<para>The Libpipeline package supplies a library for manipulating
pipelines of subprocesses in a flexible and convenient way. It is
required by the Man-DB package.</para>
</listitem>
@ -366,7 +368,7 @@
<para>Libtool</para>
<para>This package contains the GNU generic library support
script. It wraps the complexity of using shared libraries in a
script. It wraps the complexity of using shared libraries into a
consistent, portable interface. It is needed by the test
suites in other LFS packages.</para>
</listitem>
@ -381,7 +383,7 @@
<listitem>
<para>M4</para>
<para>This package contains a general text macro processor useful
<para>This package provides a general text macro processor useful
as a build tool for other programs.</para>
</listitem>
@ -404,14 +406,14 @@
<para>This package contains programs for finding and viewing man pages.
It was chosen instead of the <application>man</application> package
due to superior internationalization capabilities. It supplies
because of its superior internationalization capabilities. It supplies
the man program.</para>
</listitem>
<listitem>
<para>Man-pages</para>
<para>This package contains the actual contents of the basic
<para>This package provides the actual contents of the basic
Linux man pages.</para>
</listitem>
@ -419,8 +421,8 @@
<para>Meson</para>
<para>This package provides a software tool for automating the building
of software. The main goal for Meson is to minimize the amount of time
that software developers need to spend configuring their build
of software. The main goal of Meson is to minimize the amount of time
that software developers need to spend configuring a build
system. It's required to build Systemd, as well as many BLFS
packages.</para>
@ -429,7 +431,7 @@
<listitem>
<para>MPC</para>
<para>This package contains functions for the arithmetic of complex
<para>This package supplies arithmetic functions for complex
numbers. It is required by GCC.</para>
</listitem>
@ -443,7 +445,7 @@
<listitem>
<para>Ninja</para>
<para>This package contains a small build system with a focus on speed.
<para>This package furnishes a small build system with a focus on speed.
It is designed to have its input files generated by a higher-level build
system, and to run builds as fast as possible.
This package is required by Meson.</para>
@ -456,14 +458,14 @@
<para>This package contains libraries for terminal-independent
handling of character screens. It is often used to provide
cursor control for a menuing system. It is needed by a number of
packages in LFS.</para>
the packages in LFS.</para>
</listitem>
<listitem>
<para>Openssl</para>
<para>This package provides management tools and libraries relating to
cryptography. These are useful for providing cryptographic functions to
cryptography. These supply cryptographic functions to
other packages, including the Linux kernel.</para>
</listitem>
@ -502,7 +504,7 @@
<listitem>
<para>Psmisc</para>
<para>This package contains programs for displaying information
<para>This package produces programs for displaying information
about running processes. These programs are useful for system
administration.</para>
</listitem>
@ -511,14 +513,14 @@
<para>Python 3</para>
<para>This package provides an interpreted language that has a design
philosophy that emphasizes code readability.</para>
philosophy emphasizing code readability.</para>
</listitem>
<listitem>
<para>Readline</para>
<para>This package is a set of libraries that offers command-line
<para>This package is a set of libraries that offer command-line
editing and history capabilities. It is used by Bash.</para>
</listitem>
@ -526,7 +528,7 @@
<para>Sed</para>
<para>This package allows editing of text without opening it in a
text editor. It is also needed by most LFS packages' configure
text editor. It is also needed by many LFS packages' configure
scripts.</para>
</listitem>
@ -534,14 +536,14 @@
<para>Shadow</para>
<para>This package contains programs for handling passwords
in a secure way.</para>
securely.</para>
</listitem>
<listitem revision="sysv">
<para>Sysklogd</para>
<para>This package contains programs for logging system messages,
such as those given by the kernel or daemon processes when unusual
<para>This package supplies programs for logging system messages,
such as those emitted by the kernel or daemon processes when unusual
events occur.</para>
</listitem>
@ -550,7 +552,7 @@
<para>This package provides an <application>init</application> program
and several additional boot and system control capabilities as an
alternative to Sysvinit. It is used by many commercial distributions.
alternative to Sysvinit. It is used by many Linux distributions.
</para>
</listitem>
@ -558,7 +560,7 @@
<para>Sysvinit</para>
<para>This package provides the <application>init</application>
program, which is the parent of all other processes on the Linux
program, the parent of all the other processes on a running Linux
system. </para>
</listitem>
@ -566,20 +568,20 @@
<para>Tar</para>
<para>This package provides archiving and extraction capabilities
of virtually all packages used in LFS.</para>
of virtually all the packages used in LFS.</para>
</listitem>
<listitem>
<para>Tcl</para>
<para>This package contains the Tool Command Language used
in many test suites in LFS packages.</para>
in many test suites.</para>
</listitem>
<listitem>
<para>Texinfo</para>
<para>This package contains programs for reading, writing, and
<para>This package supplies programs for reading, writing, and
converting info pages. It is used in the installation
procedures of many LFS packages.</para>
</listitem>
@ -593,20 +595,20 @@
</listitem>
<listitem>
<para>Wheel</para>
<para>Vim</para>
<para>This package contains a Python module that is the
reference implementation of the Python wheel packaging standard.
</para>
<para>This package provides an editor. It was chosen because of its
compatibility with the classic vi editor and its huge number of powerful
capabilities. An editor is a very personal choice for
many users. Any other editor can be substituted, if you wish.</para>
</listitem>
<listitem>
<para>Vim</para>
<para>Wheel</para>
<para>This package contains an editor. It was chosen because of its
compatibility with the classic vi editor and its huge number of powerful
capabilities. An editor is a very personal choice for
many users and any other editor could be substituted if desired.</para>
<para>This package supplies a Python module that is the
reference implementation of the Python wheel packaging standard.
</para>
</listitem>
<listitem>
@ -633,7 +635,7 @@
<listitem>
<para>Zstd</para>
<para>This package contains compression and decompression routines
<para>This package supplies compression and decompression routines
used by some programs. It provides high compression ratios and a very
wide range of compression / speed trade-offs.</para>
</listitem>