diff --git a/chapter07/chroot.xml b/chapter07/chroot.xml index b7d188e1f..6fe1da971 100644 --- a/chapter07/chroot.xml +++ b/chapter07/chroot.xml @@ -52,19 +52,19 @@ bash: no job control in this shell process, with controlling terminal set up. The -i option given to the env - command will clear all variables of the environment. After that, only + command will clear all the variables in the environment. After that, only the HOME, TERM, PS1, and PATH variables are set again. The TERM=$TERM construct will set the TERM variable to the default value specified by agetty. This variable is - needed for programs like vim and less - to operate properly. If other variables are desired, such as + needed so programs like vim and less + can operate properly. If other variables are desired, such as CFLAGS or CXXFLAGS, this is a good place to set - them again. + them. Notice that /tools/bin is not in the PATH. This means that the cross toolchain will no longer be - used on the target machine. + used. Note that the bash prompt will say I have no name! This is normal because the diff --git a/chapter07/cleanup.xml b/chapter07/cleanup.xml index 28c3f4aa2..79b0bad3c 100644 --- a/chapter07/cleanup.xml +++ b/chapter07/cleanup.xml @@ -13,15 +13,15 @@ Cleaning - First, remove the currently installed documentation to prevent them + First, remove the currently installed documentation files to prevent them from ending up in the final system, and to save about 35 MB: rm -rf /usr/share/{info,man,doc}/* Second, on a modern Linux system, the libtool .la files are only - useful for libltdl. No libraries in LFS are expected to be loaded by - libltdl, and it's known that some .la files can cause BLFS packages - fail to build. Remove those files now: + useful for libltdl. No libraries in LFS are loaded by + libltdl, and it's known that some .la files can cause BLFS package + failures. Remove those files now: find /usr/{lib,libexec} -name \*.la -delete @@ -42,9 +42,9 @@ and your current LFS system is in a good state. Your system can now be backed up for later reuse. In case of fatal failures in the subsequent chapters, it often turns out that removing everything and starting over - (more carefully) is the best option to recover. Unfortunately, all the + (more carefully) is the best way to recover. Unfortunately, all the temporary files will be removed, too. To avoid spending extra time to - redo something which has been built successfully, creating a backup of + redo something which has been done successfully, creating a backup of the current LFS system may prove useful. @@ -71,10 +71,7 @@ Note that the instructions below specify the home directory of the host system's root user, which is - typically found on the root filesystem. - - - + typically found on the root file system. Replace $HOME by a directory of your choice if you do not want to have the backup stored in root's home directory. diff --git a/chapter07/createfiles.xml b/chapter07/createfiles.xml index ca7de3802..2434a6b17 100644 --- a/chapter07/createfiles.xml +++ b/chapter07/createfiles.xml @@ -34,11 +34,11 @@ /var/log/wtmp - Historically, Linux maintains a list of the mounted file systems in the + Historically, Linux maintained a list of the mounted file systems in the file /etc/mtab. Modern kernels maintain this list internally and expose it to the user via the /proc filesystem. To satisfy utilities that - expect the presence of /etc/mtab, create the following + expect to find /etc/mtab, create the following symbolic link: ln -sv /proc/self/mounts /etc/mtab @@ -159,13 +159,13 @@ EOF The created groups are not part of any standard—they are groups decided on in part by the requirements of the Udev configuration in Chapter - 9, and in part by common convention employed by a number of existing Linux + 9, and in part by common conventions employed by a number of existing Linux distributions. In addition, some test suites rely on specific users or groups. The Linux Standard Base (LSB, available at ) only recommends that, besides the group root with a Group ID (GID) of 0, a group bin - with a GID of 1 be present. The GID of 5 is widely used for + with a GID of 1 be present. The GID of 5 is widely used for the tty group, and the number 5 is also used in systemd /etc/fstab for the @@ -179,7 +179,7 @@ EOF or the parent user namespace, but do not exist on the local machine or in the separate namespace). We assign nobody and - nogroup for it to avoid an + nogroup to avoid an unnamed ID. But other distros may treat this ID differently, so any portable program should not depend on this assignment. diff --git a/chapter07/kernfs.xml b/chapter07/kernfs.xml index ba96a9967..6ef04783d 100644 --- a/chapter07/kernfs.xml +++ b/chapter07/kernfs.xml @@ -15,12 +15,12 @@ Applications running in user space utilize various file - systems exported by the kernel to communicate + systems created by the kernel to communicate with the kernel itself. These file systems are virtual: no disk - space is used for them. The content of the file systems resides in + space is used for them. The content of these file systems resides in memory. - Begin by creating directories on which the file systems will be + Begin by creating the directories on which these virtual file systems will be mounted: mkdir -pv /{proc,sys,run} @@ -30,7 +30,7 @@ The kernel has already mounted devtmpfs. - Mount the remaining virtual kernel filesystems: + Mount the remaining virtual kernel file systems: mkdir -pv /dev/{pts,shm} mount -vt devpts /dev/pts /dev/pts -o gid=5,mode=620 diff --git a/chapter08/bc.xml b/chapter08/bc.xml index 4493f8219..4677f06fd 100644 --- a/chapter08/bc.xml +++ b/chapter08/bc.xml @@ -59,7 +59,7 @@ -G Omit parts of the test suite that won't work - without a GNU bc present. + until the bc program has been installed. diff --git a/chapter08/binutils.xml b/chapter08/binutils.xml index c969eab00..28d44a9a0 100644 --- a/chapter08/binutils.xml +++ b/chapter08/binutils.xml @@ -87,7 +87,7 @@ cd build --enable-gold - Build the gold linker and install it as ld.gold (along side the + Build the gold linker and install it as ld.gold (alongside the default linker). @@ -118,7 +118,7 @@ cd build --with-system-zlib - Use the installed zlib library rather than building the + Use the installed zlib library instead of building the included version. @@ -143,7 +143,7 @@ cd build a custom system, this target-specific directory in /usr is not required. $(exec_prefix)/$(target_alias) would be - used if the system was used to cross-compile (for example, compiling a + used if the system were used to cross-compile (for example, compiling a package on an Intel machine that generates code that can be executed on PowerPC machines). @@ -164,7 +164,7 @@ cd build grep '^FAIL:' $(find -name '*.log') - Twelve tests fail in the gold testsuite when the + Twelve tests fail in the gold test suite when the and options are passed to GCC. that file via network transfer or CD-ROM / USB stick to the new system, and expanding it. After that, a few configuration files will have to be changed. Configuration files that may need to be updated include: diff --git a/chapter08/procps.xml b/chapter08/procps.xml index a78f7fa90..dbc78213c 100644 --- a/chapter08/procps.xml +++ b/chapter08/procps.xml @@ -42,15 +42,15 @@ Prepare procps-ng for compilation: -./configure --prefix=/usr \ +./configure --prefix=/usr \ --docdir=/usr/share/doc/procps-ng-&procps-ng-version; \ - --disable-static \ + --disable-static \ --disable-kill -./configure --prefix=/usr \ +./configure --prefix=/usr \ --docdir=/usr/share/doc/procps-ng-&procps-ng-version; \ - --disable-static \ - --disable-kill \ + --disable-static \ + --disable-kill \ --with-systemd diff --git a/chapter08/readline.xml b/chapter08/readline.xml index 51784d2f7..ea073308d 100644 --- a/chapter08/readline.xml +++ b/chapter08/readline.xml @@ -23,7 +23,7 @@ - <para>The Readline package is a set of libraries that offers command-line + <para>The Readline package is a set of libraries that offer command-line editing and history capabilities.</para> <segmentedlist> @@ -61,14 +61,14 @@ sed -i '/{OLDSUFF}/c:' support/shlib-install</userinput></screen> --docdir=/usr/share/doc/readline-&readline-version;</userinput></screen> <variablelist> - <title>The meaning of the configure option: + The meaning of the new configure option: --with-curses This option tells Readline that it can find the termcap - library functions in the curses library, rather than a separate - termcap library. It allows generating a correct + library functions in the curses library, not a separate + termcap library. This will generate the correct readline.pc file. diff --git a/chapter08/shadow.xml b/chapter08/shadow.xml index d8c79a9c1..cbd6ac913 100644 --- a/chapter08/shadow.xml +++ b/chapter08/shadow.xml @@ -244,7 +244,7 @@ useradd -D --gid 999 Installed programs - Installed directory + Installed directories Installed libraries @@ -254,7 +254,7 @@ useradd -D --gid 999 newuidmap, newusers, nologin, passwd, pwck, pwconv, pwunconv, sg (link to newgrp), su, useradd, userdel, usermod, vigr (link to vipw), and vipw - /etc/default + /etc/default and /usr/include/shadow libsubid.so diff --git a/chapter08/tcl.xml b/chapter08/tcl.xml index cb13e3224..d1315603f 100644 --- a/chapter08/tcl.xml +++ b/chapter08/tcl.xml @@ -27,7 +27,7 @@ The Tcl package contains the Tool Command Language, a robust general-purpose scripting language. The Expect package - is written in the Tcl language. + is written in Tcl (pronounced "tickle"). &buildtime; @@ -45,7 +45,7 @@ Installation of Tcl This package and the next two (Expect and DejaGNU) are - installed to support running the test suites for binutils and GCC and other + installed to support running the test suites for Binutils, GCC and other packages. Installing three packages for testing purposes may seem excessive, but it is very reassuring, if not essential, to know that the most important tools are working properly. @@ -87,9 +87,9 @@ sed -e "s|$SRCDIR/unix/pkgs/itcl&itcl-ver;|/usr/lib/itcl&itcl-ver;|" \ unset SRCDIR The various sed instructions after the - make command removes references to the build directory from - the configuration files and replaces them with the install directory. - This is not mandatory for the remainder of LFS, but may be needed in case a + make command remove references to the build directory from + the configuration files and replace them with the install directory. + This is not mandatory for the remainder of LFS, but may be needed if a package built later uses Tcl. To test the results, issue: diff --git a/chapter08/util-linux.xml b/chapter08/util-linux.xml index 269f564e2..7648d2a7f 100644 --- a/chapter08/util-linux.xml +++ b/chapter08/util-linux.xml @@ -44,11 +44,10 @@ Prepare Util-linux for compilation: -./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \ +./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \ --bindir=/usr/bin \ --libdir=/usr/lib \ --sbindir=/usr/sbin \ - --docdir=/usr/share/doc/util-linux-&util-linux-version; \ --disable-chfn-chsh \ --disable-login \ --disable-nologin \ @@ -59,13 +58,13 @@ --disable-static \ --without-python \ --without-systemd \ - --without-systemdsystemunitdir + --without-systemdsystemunitdir \ + --docdir=/usr/share/doc/util-linux-&util-linux-version; -./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \ +./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \ --bindir=/usr/bin \ --libdir=/usr/lib \ --sbindir=/usr/sbin \ - --docdir=/usr/share/doc/util-linux-&util-linux-version; \ --disable-chfn-chsh \ --disable-login \ --disable-nologin \ @@ -74,7 +73,8 @@ --disable-runuser \ --disable-pylibmount \ --disable-static \ - --without-python + --without-python \ + --docdir=/usr/share/doc/util-linux-&util-linux-version; The --disable and --without options prevent warnings about building components that require packages not in LFS or are diff --git a/lfs-latest-git.php b/lfs-latest-git.php index d4f331697..2b3c9ab47 100644 --- a/lfs-latest-git.php +++ b/lfs-latest-git.php @@ -139,6 +139,7 @@ if ( $package == "procps-ng" ) $dirpath = "https://gitlab.com/procps-ng/procps/ if ( $package == "psmisc" ) $dirpath = "https://gitlab.com/psmisc/psmisc/-/tags"; if ( $package == "Python" ) $dirpath = "https://www.python.org/downloads/source/"; if ( $package == "shadow" ) $dirpath = "https://github.com/shadow-maint/shadow/releases"; +if ( $package == "sysvinit" ) $dirpath = "https://github.com/slicer69/sysvinit/releases"; if ( $package == "MarkupSafe" ) $dirpath = "https://pypi.python.org/pypi/MarkupSafe/"; if ( $package == "Jinja" ) $dirpath = "https://pypi.python.org/pypi/Jinja2/"; if ( $package == "systemd" ) $dirpath = "https://github.com/systemd/systemd/releases"; @@ -275,6 +276,9 @@ if ( $package == "zstd" ) $dirpath = "https://github.com/facebook/zstd/rel if ( $package == "shadow" ) return find_max( $lines, "/^\s+\d\./", "/^\s+([\d\.]+)$/" ); + if ( $package == "sysvinit" ) + return find_max( $lines, "/^\s+\d\./", "/^\s+([\d\.]+)$/" ); + if ( $package == "XML-Parser" ) { $max = find_max( $lines, "/$package/", "/^.*$package-([\d\._]*\d).tar.*$/" ); diff --git a/packages.ent b/packages.ent index 7ef9e49d1..a14101ea0 100644 --- a/packages.ent +++ b/packages.ent @@ -356,7 +356,7 @@ - + @@ -487,7 +487,7 @@ - +