diff --git a/prologue/why.xml b/prologue/why.xml
index 2ce8141df..4a002484e 100644
--- a/prologue/why.xml
+++ b/prologue/why.xml
@@ -10,13 +10,13 @@
Rationale for Packages in the Book
- 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
+ The goal of LFS is to build a complete and usable
+ foundation-level system—including all the packages needed to replicate
+ itself—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.
+ are included that are not, strictly speaking, required. The list below documents the
+ reasons each package in the book has been included.
@@ -24,7 +24,7 @@
Acl
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.
@@ -32,26 +32,26 @@
Attr
- This package contains programs for administering
- extended attributes on filesystem objects.
+ This package contains programs for managing
+ extended attributes on file system objects.
Autoconf
- This package contains programs for producing shell scripts that
+ 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.
+ template. It is often needed to rebuild a package after
+ the build procedure has been updated.
Automake
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.
+ a template. It is often needed to rebuild a package after
+ the build procedure has been updated.
@@ -60,29 +60,29 @@
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.
+ capabilities.
Bc
This package provides an arbitrary precision numeric processing language.
- It satisfies a requirement needed when building the Linux kernel.
+ It satisfies a requirement for building the Linux kernel.
Binutils
- This package contains a linker, an assembler, and other
+ 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.
+ needed to compile most of the packages in an LFS system.
Bison
This package contains the GNU version of yacc (Yet Another
- Compiler Compiler) needed to build several other LFS programs.
+ Compiler Compiler) needed to build several of the LFS programs.
@@ -95,7 +95,7 @@
Check
- This package contains a test harness for other programs.
+ This package provides a test harness for other programs.
@@ -111,14 +111,14 @@
D-Bus
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.
DejaGNU
- This package contains a framework for testing other programs.
+ This package supplies a framework for testing other programs.
@@ -132,7 +132,7 @@
E2fsprogs
- This package contains the utilities for handling the ext2, ext3
+ 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.
@@ -141,15 +141,15 @@
Eudev
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 devices in the /dev directory when
+ devices are added to or removed from the system.
Expat
- This package contains a relatively small XML parsing library. It
+ This package yields a relatively small XML parsing library. It
is required by the XML::Parser Perl module.
@@ -171,7 +171,7 @@
Findutils
- This package contains programs to find files in a file system.
+ This package provides programs to find files in a file system.
It is used in many packages' build scripts.
@@ -187,7 +187,7 @@
Gawk
- This package contains programs for manipulating text files.
+ 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.
@@ -195,7 +195,7 @@
GCC
- This package is the Gnu Compiler Collection. It contains the
+ This is the Gnu Compiler Collection. It contains the
C and C++ compilers as well as several others not built by LFS.
@@ -210,8 +210,8 @@
Gettext
- This package contains utilities and libraries for
- internationalization and localization of numerous packages.
+ This package provides utilities and libraries for
+ the internationalization and localization of many packages.
@@ -224,15 +224,15 @@
GMP
- This package contains math libraries that provide useful functions
- for arbitrary precision arithmetic. It is required to build GCC.
+ This package supplies math libraries that provide useful functions
+ for arbitrary precision arithmetic. It is needed to build GCC.
Gperf
- This package contains a program that generates a perfect hash
- function from a key set. It is required for Eudev.
+ This package produces a program that generates a perfect hash
+ function from a set of keys. It is required by Eudev.
@@ -245,15 +245,15 @@
Groff
- This package contains programs for processing and formatting text.
+ This package contributes programs for processing and formatting text.
One important function of these programs is to format man pages.
GRUB
- This package is the Grand Unified Boot Loader. It is one
- of several boot loaders available, but is the most flexible.
+ This is the Grand Unified Boot Loader. It is
+ the most flexible of several boot loaders available.
@@ -261,8 +261,8 @@
Gzip
This package contains programs for compressing and
- decompressing files. It is needed to decompress many packages in LFS
- and beyond.
+ decompressing files. It is needed to decompress many packages
+ in LFS.
@@ -275,14 +275,14 @@
Inetutils
- This package contains programs for basic network
+ This package supplies programs for basic network
administration.
Intltool
- This package contains tools for extracting translatable
+ This package contributes tools for extracting translatable
strings from source files.
@@ -304,14 +304,14 @@
Kbd
- This package contains key-table files, keyboard utilities
+ This package produces key-table files, keyboard utilities
for non-US keyboards, and a number of console fonts.
Kmod
- This package contains programs needed to administer Linux
+ This package supplies programs needed to administer Linux
kernel modules.
@@ -319,8 +319,8 @@
Less
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.
+ allows scrolling up or down when viewing a file. It is also used
+ when viewing manpages.
@@ -357,7 +357,7 @@
Libpipeline
- The Libpipeline package contains a library for manipulating
+ 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.
@@ -366,7 +366,7 @@
Libtool
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.
@@ -381,7 +381,7 @@
M4
- This package contains a general text macro processor useful
+ This package provides a general text macro processor useful
as a build tool for other programs.
@@ -404,14 +404,14 @@
This package contains programs for finding and viewing man pages.
It was chosen instead of the man package
- due to superior internationalization capabilities. It supplies
+ because of its superior internationalization capabilities. It supplies
the man program.
Man-pages
- This package contains the actual contents of the basic
+ This package provides the actual contents of the basic
Linux man pages.
@@ -419,8 +419,8 @@
Meson
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.
@@ -429,7 +429,7 @@
MPC
- This package contains functions for the arithmetic of complex
+ This package supplies arithmetic functions for complex
numbers. It is required by GCC.
@@ -443,7 +443,7 @@
Ninja
- This package contains a small build system with a focus on speed.
+ 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.
@@ -456,14 +456,14 @@
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.
+ the packages in LFS.
Openssl
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.
@@ -502,7 +502,7 @@
Psmisc
- This package contains programs for displaying information
+ This package produces programs for displaying information
about running processes. These programs are useful for system
administration.
@@ -511,14 +511,14 @@
Python 3
This package provides an interpreted language that has a design
- philosophy that emphasizes code readability.
+ philosophy emphasizing code readability.
Readline
- This package is a set of libraries that offers command-line
+ This package is a set of libraries that offer command-line
editing and history capabilities. It is used by Bash.
@@ -526,7 +526,7 @@
Sed
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.
@@ -534,14 +534,14 @@
Shadow
This package contains programs for handling passwords
- in a secure way.
+ securely.
Sysklogd
- This package contains programs for logging system messages,
- such as those given by the kernel or daemon processes when unusual
+ This package supplies programs for logging system messages,
+ such as those emitted by the kernel or daemon processes when unusual
events occur.
@@ -550,7 +550,7 @@
This package provides an init 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.
@@ -558,7 +558,7 @@
Sysvinit
This package provides the init
- 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.
@@ -566,20 +566,20 @@
Tar
This package provides archiving and extraction capabilities
- of virtually all packages used in LFS.
+ of virtually all the packages used in LFS.
Tcl
This package contains the Tool Command Language used
- in many test suites in LFS packages.
+ in many test suites.
Texinfo
- This package contains programs for reading, writing, and
+ This package supplies programs for reading, writing, and
converting info pages. It is used in the installation
procedures of many LFS packages.
@@ -592,21 +592,21 @@
partitions, and messages.
-
- Wheel
-
- This package contains a Python module that is the
- reference implementation of the Python wheel packaging standard.
-
-
-
Vim
- This package contains an editor. It was chosen because of its
+ 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 and any other editor could be substituted if desired.
+ many users. Any other editor can be substituted, if you wish.
+
+
+
+ Wheel
+
+ This package supplies a Python module that is the
+ reference implementation of the Python wheel packaging standard.
+
@@ -633,7 +633,7 @@
Zstd
- This package contains compression and decompression routines
+ 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.