diff --git a/appendices/acknowledgments.xml b/appendices/acknowledgments.xml index 5944fca53..340951148 100644 --- a/appendices/acknowledgments.xml +++ b/appendices/acknowledgments.xml @@ -7,7 +7,7 @@ - + Acknowledgments diff --git a/appendices/dependencies.xml b/appendices/dependencies.xml index 79ff7c0d1..37a249770 100644 --- a/appendices/dependencies.xml +++ b/appendices/dependencies.xml @@ -25,7 +25,7 @@ available in order to run the test suites. The third list of dependencies are packages that require this package to be built and installed in its final location before they are built and installed. In most cases, this is because - these packages will hardcode paths to binaries within their scripts. If not + these packages will hard code paths to binaries within their scripts. If not built in a certain order, this could result in paths of /tools/bin/[binary] being placed inside scripts installed to the final system. This is obviously not desirable. @@ -33,9 +33,9 @@ The last list of dependencies are optional packages that are not addressed in LFS, but could be useful to the user. These packages may have additional mandatory or optional dependencies of their own. For these - dependencies, the recommeded practice is to install them after completion of - the LFS book and then go back an rebuild the LFS package. In several cases, - reinstallation is addressed in BLFS. + dependencies, the recommended practice is to install them after completion of + the LFS book and then go back and rebuild the LFS package. In several cases, + re-installation is addressed in BLFS. acl @@ -735,7 +735,7 @@ &testsuites; - Bison (suppressed) and Gawk + Bison and Gawk @@ -1533,7 +1533,7 @@ &before; - None + OpenSSL diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml index d1ea0c7dc..8d2be271d 100644 --- a/chapter01/changelog.xml +++ b/chapter01/changelog.xml @@ -36,6 +36,143 @@ --> + + 2015-12-31 + + + [dj] - Use 'ipv4" instead of "yes" for DCHP configuration in + systemd-networkd configuration. + + + [dj] - Modify text in network configuration page to more + accurately reflect current version of systemd. + + + [dj] - Change build order for gperf before expat. + + + [dj] - Change build order for systemd before procps-ng. + + + [dj] - Add --with-systemd to procps-ng configuration. + + + [dj] - Update to systemd-228. + + + [dj] - Update to DBus-1.10.6. + + + [dj] - Sync to LFS r10981. + + + [dj] - Add OpenSSL as optional kernel dependency - Merged + from trunk. + + + [dj] - Update to findutils-4.6.0 - Merged from trunk. + + + [dj] - Update to gettext-0.19.7 - Merged from trunk. + + + [dj] - Update to linux-4.3.3 - Merged from trunk. + + + [dj] - Reword FHS Compliance Note - Merged from trunk. + + + [dj] - Update to perl-5.22.1 - Merged from trunk. + + + [dj] - Update to perl-5.22.1 - Merged from trunk. + + + [dj] - Update to man-pages-4.03 - Merged from trunk. + + + [dj] - Fix xz problem identified upstream - Merged from + trunk. + + + [dj] - Update to gcc-5.3.0 - Merged from trunk. + + + [dj] - Update to gmp-6.1.0 - Merged from trunk. + + + [dj] - Update host requirements to require GCC-4.7 or + later - Merged from trunk. + + + [dj] - Clarify that setting and using the LFS variable + assumes the bash shell - Merged from trunk. + + + [dj] - Update to flex-2.6.0 - Merged from trunk. + + + [dj] - Update to man-db-2.7.5 - Merged from trunk. + + + [dj] - Update to kmod-22 - Merged from trunk. + + + [dj] - Add glibc-2.22-largefile-1.patch. + + + [dj] - Update to linux-4.3 - Merged from trunk. + + + [dj] - Update to iproute2-4.3.0 - Merged from trunk. + + + [dj] - Update to grep-2.22 - Merged from trunk. + + + [dj] - Update to util-linux-2.27.1 - Merged from trunk. + + + [dj] - Revise version-check.sh to flag bad /bin/sh + symlinks - Merged from trunk. + + + [dj] - Update to less-481 - Merged from trunk. + + + [dj] - Update to man-db-2.7.4 - Merged from trunk. + + + [dj] - Update to tzdata2015g - Merged from trunk. + + + [dj] - Many updates to installed files and directories. Huge + thanks to Fernando - Merged from trunk. + + + [dj] - Reset location of anduin hosted files - Merged from + trunk. + + + [dj] - Change references to ncursesw5 to + ncursesw6. Thanks to Pierre Labastie for the patch - Merged from + trunk. + + + [dj] - Update to gettext-0.19.6 - Merged from trunk. + + + [dj] - Update to file-5.25 - Merged from trunk. + + + [dj] - Update to pkg-config-0.29 - Merged from trunk. + + + [dj] - Update to xz-5.2.2 - Merged from trunk. + + + + 2015-09-28 diff --git a/chapter01/whatsnew.xml b/chapter01/whatsnew.xml index 0906688ea..384c94813 100644 --- a/chapter01/whatsnew.xml +++ b/chapter01/whatsnew.xml @@ -40,27 +40,27 @@ - + - + + D-Bus-&dbus-version; - + @@ -76,15 +76,15 @@ File &file-version; - - - Gawk &gawk-version; + Findutils &findutils-version; + + Flex &flex-version; + + GCC &gcc-version; @@ -94,18 +94,18 @@ Gettext &gettext-version; - - Glibc &glibc-version; - + + GMP &gmp-version; + - + @@ -118,30 +118,30 @@ - + + IPRoute2 &iproute2-version; - + Kmod &kmod-version; - + - + @@ -160,27 +160,27 @@ Man-pages &man-pages-version; - + + + + Perl &perl-version; - - Procps-ng &procps-ng-version; + Pkg-config &pkgconfig-version; + @@ -202,9 +202,9 @@ - + Tzdata &tzdata-version; @@ -239,28 +239,20 @@ - &bash-fixes-patch; + &glibc-largefile-patch; - - + + - + - - &systemd-compat-patch; - - - + @@ -268,22 +260,17 @@ Removed: - + - + - - systemd-219-compat-1.patch - - - + diff --git a/chapter02/aboutlfs.xml b/chapter02/aboutlfs.xml index fe8a97902..3965ab889 100644 --- a/chapter02/aboutlfs.xml +++ b/chapter02/aboutlfs.xml @@ -28,11 +28,13 @@ /mnt/lfs (or whatever the variable was set to) when it processes the command line. + Do not forget to check that LFS is set whenever you leave and reenter the current working environment (such as when doing a su to root or another user). Check that the LFS variable is set up properly with: + echo $LFS @@ -45,6 +47,10 @@ One way to ensure that the LFS variable is always set is to edit the .bash_profile file in both your personal home directory and in /root/.bash_profile and - enter the export command above. + enter the export command above. In addition, the shell specified in the + /etc/passwd file for all users that need the + LFS variable needs to be bash to ensure that the + /root/.bash_profile file is incorporated as a part of + the login process. diff --git a/chapter02/creatingfilesystem.xml b/chapter02/creatingfilesystem.xml index 75c81b227..22a094728 100644 --- a/chapter02/creatingfilesystem.xml +++ b/chapter02/creatingfilesystem.xml @@ -41,7 +41,7 @@ - Other file sytems, including FAT32, NTFS, ReiserFS, JFS, and XFS are + Other file systems, including FAT32, NTFS, ReiserFS, JFS, and XFS are useful for specialized purposes. More information about these file systems can be found at . diff --git a/chapter02/mounting.xml b/chapter02/mounting.xml index 873896384..4993f6ab8 100644 --- a/chapter02/mounting.xml +++ b/chapter02/mounting.xml @@ -14,7 +14,7 @@ be made accessible. In order to do this, the partition needs to be mounted at a chosen mount point. For the purposes of this book, it is assumed that the file system is mounted under the directory specified by the - LFS envronment varibale as described in the previous section. + LFS envronment variable as described in the previous section. Create the mount point and mount the LFS file system by running: diff --git a/chapter03/patches.xml b/chapter03/patches.xml index 885570743..c05a7970e 100644 --- a/chapter03/patches.xml +++ b/chapter03/patches.xml @@ -65,6 +65,14 @@ + + Glibc Largefile Patch - &glibc-largefile-patch-size;: + + Download: + MD5 sum: &glibc-largefile-patch-md5; + + + Kbd Backspace/Delete Fix Patch - &kbd-backspace-patch-size;: diff --git a/chapter05/glibc.xml b/chapter05/glibc.xml index 111ba63ec..9e2e06073 100644 --- a/chapter05/glibc.xml +++ b/chapter05/glibc.xml @@ -129,7 +129,7 @@ cd ../glibc-build libc_cv_c_cleanup=yes - Simlarly, we pass libc_cv_c_cleanup=yes through to the + Similarly, we pass libc_cv_c_cleanup=yes through to the configure script so that the test is skipped and C cleanup handling support is configured. @@ -137,7 +137,7 @@ cd ../glibc-build libc_cv_ctors_header=yes - Simlarly, we pass libc_cv_ctors_header=yes through to the + Similarly, we pass libc_cv_ctors_header=yes through to the configure script so that the test is skipped and gcc constructor support is configured. diff --git a/chapter05/libstdc++.xml b/chapter05/libstdc++.xml index 29d7f2739..365babb3a 100644 --- a/chapter05/libstdc++.xml +++ b/chapter05/libstdc++.xml @@ -97,7 +97,7 @@ cd ../gcc-build This is the location where the standard include files are searched by the C++ compiler. In a normal build, this information is automatically passed to the Libstdc++ configure - options from the toplevel directory. In our case, this information + options from the top level directory. In our case, this information must be explicitly given. diff --git a/chapter06/acl.xml b/chapter06/acl.xml index 0bc379b6a..213535fd0 100644 --- a/chapter06/acl.xml +++ b/chapter06/acl.xml @@ -98,7 +98,7 @@ ln -sfv ../../lib/$(readlink /usr/lib/libacl.so) /usr/lib/libacl.so< chacl, getfacl, and setacl - libacl.{a,so} + libacl.so /usr/include/acl and /usr/share/doc/acl-&acl-version; diff --git a/chapter06/adjusting.xml b/chapter06/adjusting.xml index bc9e236a6..07c155cc2 100644 --- a/chapter06/adjusting.xml +++ b/chapter06/adjusting.xml @@ -55,7 +55,7 @@ readelf -l a.out | grep ': /lib' Note that /lib is now the prefix of our dynamic linker. - Now make sure that we're setup to use the correct startfiles: + Now make sure that we're setup to use the correct start files: grep -o '/usr/lib.*/crt[1in].*succeeded' dummy.log diff --git a/chapter06/attr.xml b/chapter06/attr.xml index d6de46b88..ebcf536e5 100644 --- a/chapter06/attr.xml +++ b/chapter06/attr.xml @@ -91,7 +91,7 @@ ln -sfv ../../lib/$(readlink /usr/lib/libattr.so) /usr/lib/libattr.so attr, getfattr, and setattr - libattr.{a,so} + libattr.so /usr/include/attr and /usr/share/doc/attr-&attr-version; diff --git a/chapter06/automake.xml b/chapter06/automake.xml index 761755018..115f311bf 100644 --- a/chapter06/automake.xml +++ b/chapter06/automake.xml @@ -77,10 +77,8 @@ make -j4 check Installed directories - aclocal, aclocal-&am-minor-version;, automake, - automake-&am-minor-version;, compile, config.guess, config.sub, - depcomp, install-sh, mdate-sh, missing, mkinstalldirs, - py-compile, and ylwrap + aclocal, aclocal-&am-minor-version; (hard linked with aclocal), automake, and + automake-&am-minor-version; (hard linked with automake) /usr/share/aclocal-&am-minor-version;, /usr/share/automake-&am-minor-version;, and /usr/share/doc/automake-&automake-version; @@ -139,111 +137,6 @@ make -j4 check - - compile - - A wrapper for compilers - - compile - - - - - - config.guess - - A script that attempts to guess the canonical triplet for - the given build, host, or target architecture - - config.guess - - - - - - config.sub - - A configuration validation subroutine script - - config.sub - - - - - - depcomp - - A script for compiling a program so that dependency information - is generated in addition to the desired output - - depcomp - - - - - - install-sh - - A script that installs a program, script, or data file - - install-sh - - - - - - mdate-sh - - A script that prints the modification time of a file or - directory - - mdate-sh - - - - - - missing - - A script acting as a common stub for missing GNU programs during - an installation - - missing - - - - - - mkinstalldirs - - A script that creates a directory tree - - mkinstalldirs - - - - - - py-compile - - Compiles a Python program - - py-compile - - - - - - ylwrap - - A wrapper for lex and - yacc - - ylwrap - - - - diff --git a/chapter06/bc.xml b/chapter06/bc.xml index 17be4bfcf..7f9373e52 100644 --- a/chapter06/bc.xml +++ b/chapter06/bc.xml @@ -73,7 +73,7 @@ To test bc, run the commands below. There is quite a bit of output, so you may want to redirect it to a file. There are a very small percentage - of tests (10 of 12,144) that will indicate a roundoff error at the last + of tests (10 of 12,144) that will indicate a round off error at the last digit. echo "quit" | ./bc/bc -l Test/checklib.b diff --git a/chapter06/bison.xml b/chapter06/bison.xml index bafb23451..af88b364d 100644 --- a/chapter06/bison.xml +++ b/chapter06/bison.xml @@ -52,9 +52,14 @@ make - To test the results (about 0.5 SBU), issue: + + There is a circular dependency between bison and flex with regard to + the checks. If desired, after installing flex in the next section, the + bison checks can be run with make check. Install the package: diff --git a/chapter06/chapter06.xml b/chapter06/chapter06.xml index 5607d86a2..3d98c683e 100644 --- a/chapter06/chapter06.xml +++ b/chapter06/chapter06.xml @@ -37,31 +37,32 @@ - - - - + + + + + + + - - @@ -73,7 +74,6 @@ - diff --git a/chapter06/creatingdirs.xml b/chapter06/creatingdirs.xml index 09ad4fd65..c49e0c5d4 100644 --- a/chapter06/creatingdirs.xml +++ b/chapter06/creatingdirs.xml @@ -52,16 +52,14 @@ mkdir -pv /var/{opt,cache,lib/{color,misc,locate},local} FHS Compliance Note - The directory tree is based on the Filesystem Hierarchy Standard (FHS) - (available at ). - The FHS also stipulates the existence of The directory tree is based on the Filesystem Hierarchy Standard + (FHS) (available at ). The FHS also stipulates + the optional existence some directories such as /usr/local/games and /usr/share/games. The FHS is not precise as to - the structure of the /usr/local/share - subdirectory, so we create only the directories that are needed. However, - feel free to create these directories if you prefer to conform more strictly - to the FHS. - + class="directory">/usr/share/games. We create only the + directories that are needed. However, feel free to create these + directories. diff --git a/chapter06/dbus.xml b/chapter06/dbus.xml index a8c970a52..ee5390137 100644 --- a/chapter06/dbus.xml +++ b/chapter06/dbus.xml @@ -48,12 +48,14 @@ Prepare D-Bus for compilation: -./configure --prefix=/usr \ - --sysconfdir=/etc \ - --localstatedir=/var \ - --docdir=/usr/share/doc/dbus-&dbus-version; \ - --disable-static \ - --with-console-auth-dir=/run/console + ./configure --prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --disable-static \ + --disable-doxygen-docs \ + --disable-xml-docs \ + --docdir=/usr/share/doc/dbus-&dbus-version; \ + --with-console-auth-dir=/run/console The meaning of the configure options: @@ -72,9 +74,9 @@ make - This package does come with a testsuite, but it requires several + This package does come with a test suite, but it requires several packages that are not included in LFS. Instructions for running the - testsuite can be found in the BLFS book at + test suite can be found in the BLFS book at . Install the package: diff --git a/chapter06/e2fsprogs.xml b/chapter06/e2fsprogs.xml index 2ea667a3b..50637f689 100644 --- a/chapter06/e2fsprogs.xml +++ b/chapter06/e2fsprogs.xml @@ -44,12 +44,6 @@ Installation of E2fsprogs - - The E2fsprogs documentation recommends that the package be built in a subdirectory of the source tree: @@ -177,12 +171,11 @@ install-info --dir-file=/usr/share/info/dir /usr/share/info/com_err.infobadblocks, chattr, compile_et, debugfs, dumpe2fs,e2freefrag, e2fsck, e2image, e2label, e2undo, e4defrag, filefrag, fsck.ext2, fsck.ext3, fsck.ext4, fsck.ext4dev, logsave, lsattr, mk_cmds, mke2fs, - mkfs.ext2, mkfs.ext3, mkfs.ext4, mkfs.ext4dev, + mkfs.ext2, mkfs.ext3, mkfs.ext4, mkfs.ext4dev, mklost+found, resize2fs, and tune2fs - libcom_err.{a,so}, libe2p.{a,so}, libext2fs.{a,so}, - libquota.a, and libss.{a,so} + libcom_err.so, libe2p.so, libext2fs.so, and libss.so /usr/include/e2p, /usr/include/et, /usr/include/ext2fs, - /usr/include/quota, /usr/include/ss, /usr/share/et, and /usr/share/ss + /usr/include/ss, /usr/share/et, and /usr/share/ss @@ -529,7 +522,7 @@ install-info --dir-file=/usr/share/info/dir /usr/share/info/com_err.info - + libss diff --git a/chapter06/expat.xml b/chapter06/expat.xml index b813a840e..9f59025b5 100644 --- a/chapter06/expat.xml +++ b/chapter06/expat.xml @@ -74,7 +74,7 @@ install -v -m644 doc/*.{html,png,css} /usr/share/doc/expat-&expat-version; xmlwf - libexpat.{a,so} + libexpat.so /usr/share/doc/expat-&expat-version; diff --git a/chapter06/findutils.xml b/chapter06/findutils.xml index 6dcff4dc5..4304a264e 100644 --- a/chapter06/findutils.xml +++ b/chapter06/findutils.xml @@ -90,7 +90,7 @@ sed -i 's|find:=${BINDIR}|find:=/bin|' /usr/bin/updatedb Installed programs - bigram, code, find, frcode, locate, oldfind, updatedb, and xargs + code, find, locate, oldfind, updatedb, and xargs @@ -99,17 +99,6 @@ sed -i 's|find:=${BINDIR}|find:=/bin|' /usr/bin/updatedb - - bigram - - Was formerly used to produce locate - databases - - bigram - - - - code @@ -132,18 +121,6 @@ sed -i 's|find:=${BINDIR}|find:=/bin|' /usr/bin/updatedb - - frcode - - Is called by updatedb to compress the list - of file names; it uses front-compression, reducing the database size - by a factor of four to five - - frcode - - - - locate diff --git a/chapter06/flex.xml b/chapter06/flex.xml index 7ed596a94..c0adcfb58 100644 --- a/chapter06/flex.xml +++ b/chapter06/flex.xml @@ -41,13 +41,11 @@ Installation of Flex - First, skip running three regression tests that require Bison: - -sed -i -e '/test-bison/d' tests/Makefile.in - Prepare Flex for compilation: -./configure --prefix=/usr --docdir=/usr/share/doc/flex-&flex-version; +./configure --prefix=/usr \ + --disable-static \ + --docdir=/usr/share/doc/flex-&flex-version; Compile the package: @@ -60,14 +58,7 @@ Install the package: make install - A few programs do not know about flex yet and try to run its predecessor, lex. To support those programs, create a symbolic link named lex that @@ -88,7 +79,7 @@ flex, flex++ (link to flex), and lex (link to flex) - libfl.{a,so} and libfl_pic.{a,so} + libfl.so and libfl_pic.so /usr/share/doc/flex-&flex-version; diff --git a/chapter06/gcc.xml b/chapter06/gcc.xml index bf381204d..e1061987e 100644 --- a/chapter06/gcc.xml +++ b/chapter06/gcc.xml @@ -116,7 +116,8 @@ cd ../gcc-build A few unexpected failures cannot always be avoided. The GCC developers are usually aware of these issues, but have not resolved them yet. - In particular, one test in the libgomp test suite is known to fail. + In particular, two tests in the libstdc++ test suite are known to fail + when running as the root user as we do here. Unless the test results are vastly different from those at the above URL, it is safe to continue. @@ -139,7 +140,8 @@ cd ../gcc-build Link Time Optimization (LTO): install -v -dm755 /usr/lib/bfd-plugins -ln -sfv ../../libexec/gcc/$(gcc -dumpmachine)/&gcc-version;/liblto_plugin.so /usr/lib/bfd-plugins/ +ln -sfv ../../libexec/gcc/$(gcc -dumpmachine)/&gcc-version;/liblto_plugin.so \ + /usr/lib/bfd-plugins/ Now that our final toolchain is in place, it is important to again ensure that compiling and linking will work as expected. We do this by performing @@ -374,7 +376,7 @@ mv -v /usr/lib/*gdb.py /usr/share/gdb/auto-load/usr/lib A wrapper around ar that adds a plugin to the command line. This program is only used - to add "link time optization" and is not useful with the + to add "link time optimization" and is not useful with the default build options gc-ar @@ -387,7 +389,7 @@ mv -v /usr/lib/*gdb.py /usr/share/gdb/auto-load/usr/lib A wrapper around nm that adds a plugin to the command line. This program is only used - to add "link time optization" and is not useful with the + to add "link time optimization" and is not useful with the default build options gc-nm @@ -400,7 +402,7 @@ mv -v /usr/lib/*gdb.py /usr/share/gdb/auto-load/usr/lib A wrapper around ranlib that adds a plugin to the command line. This program is only used - to add "link time optization" and is not useful with the + to add "link time optimization" and is not useful with the default build options gc-ranlib diff --git a/chapter06/gdbm.xml b/chapter06/gdbm.xml index 662dc4324..544cb4365 100644 --- a/chapter06/gdbm.xml +++ b/chapter06/gdbm.xml @@ -86,7 +86,7 @@ gdbm_dump, gdbm_load, and gdbmtool - libgdbm.{a,so} and libgdbm_compat.{a,so} + libgdbm.so and libgdbm_compat.so diff --git a/chapter06/gettext.xml b/chapter06/gettext.xml index 7ad8aeb69..4792334e3 100644 --- a/chapter06/gettext.xml +++ b/chapter06/gettext.xml @@ -60,7 +60,8 @@ Install the package: -make install +make install +chmod -v 0755 /usr/lib/preloadable_libintl.so @@ -73,11 +74,11 @@ Installed directories - autopoint, config.charset, config.rpath, envsubst, gettext, gettext.sh, + autopoint, envsubst, gettext, gettext.sh, gettextize, hostname, msgattrib, msgcat, msgcmp, msgcomm, msgconv, msgen, msgexec, msgfilter, msgfmt, msggrep, msginit, msgmerge, msgunfmt, msguniq, ngettext, recode-sr-latin, and xgettext - libasprintf.{a,so}, libgettextlib.so, libgettextpo.{a,so}, + libasprintf.so, libgettextlib.so, libgettextpo.so, libgettextsrc.so, and preloadable_libintl.so /usr/lib/gettext, /usr/share/doc/gettext-&gettext-version;, and /usr/share/gettext @@ -100,29 +101,6 @@ - - config.charset - - Outputs a system-dependent table of character encoding - aliases - - config.charset - - - - - - config.rpath - - Outputs a system-dependent set of variables, describing how - to set the runtime search path of shared libraries in an - executable - - config.rpath - - - - envsubst diff --git a/chapter06/glibc.xml b/chapter06/glibc.xml index a55ef9722..b4973ec8d 100644 --- a/chapter06/glibc.xml +++ b/chapter06/glibc.xml @@ -70,6 +70,11 @@ patch -Np1 -i ../&glibc-upstream-patch; + The most recent stable version of Glibc does not handle large files + correctly. Fix the problem with this patch: + +patch -Np1 -i ../&glibc-largefile-patch; + The Glibc documentation recommends building Glibc outside of the source directory in a dedicated build directory: @@ -138,7 +143,7 @@ cd ../glibc-build --> - The elf/tst-protected1a and + The elf/tst-protected1b and elf/tst-protected1b tests are known to fail with the current stable version of binutils. @@ -271,7 +276,7 @@ EOF Adding time zone data - Install and set up the timezone data with the following: + Install and set up the time zone data with the following: tar -xf ../tzdata&tzdata-version;.tar.gz ZONEINFO=/usr/share/zoneinfo @@ -294,14 +299,14 @@ unset ZONEINFO zic -L /dev/null ... - This creates posix timezones, without any leap seconds. It is + This creates posix time zones, without any leap seconds. It is conventional to put these in both zoneinfo and zoneinfo/posix. It is - necessary to put the POSIX timezones in + necessary to put the POSIX time zones in zoneinfo, otherwise various test-suites will report errors. On an embedded system, where space is - tight and you do not intend to ever update the timezones, you could save + tight and you do not intend to ever update the time zones, you could save 1.9MB by not using the posix directory, but some applications or test-suites might produce some failures. @@ -310,9 +315,9 @@ unset ZONEINFO zic -L leapseconds ... - This creates right timezones, including leap seconds. On an + This creates right time zones, including leap seconds. On an embedded system, where space is tight and you do not intend to - ever update the timezones, or care about the correct time, you could + ever update the time zones, or care about the correct time, you could save 1.9MB by omitting the right directory. @@ -336,7 +341,7 @@ unset ZONEINFO After answering a few questions about the location, the script will output the name of the time zone (e.g., America/Edmonton). There are also some other possible - timezones listed in /usr/share/zoneinfo such as Canada/Eastern or EST5EDT that are not identified by the script but can be used. diff --git a/chapter06/gmp.xml b/chapter06/gmp.xml index c342d5f59..7d353d90c 100644 --- a/chapter06/gmp.xml +++ b/chapter06/gmp.xml @@ -91,10 +91,10 @@ make html make check 2>&1 | tee gmp-check-log - Ensure that all 188 tests in the test suite passed. + Ensure that all 190 tests in the test suite passed. Check the results by issuing the following command: -awk '/tests passed/{total+=$2} ; END{print total}' gmp-check-log +awk '/# PASS:/{total+=$3} ; END{print total}' gmp-check-log Install the package and its documentation: @@ -111,7 +111,7 @@ make install-html Installed directory - libgmp.{a,so} and libgmpxx.{a,so} + libgmp.so and libgmpxx.so /usr/share/doc/gmp-&gmp-version; diff --git a/chapter06/gperf.xml b/chapter06/gperf.xml index ce417439b..d8c5b6594 100644 --- a/chapter06/gperf.xml +++ b/chapter06/gperf.xml @@ -65,9 +65,11 @@ Installed program + Installed directory gperf + /usr/share/doc/gperf-&gperf-version; diff --git a/chapter06/grep.xml b/chapter06/grep.xml index deeb99791..94d8204db 100644 --- a/chapter06/grep.xml +++ b/chapter06/grep.xml @@ -40,10 +40,6 @@ Installation of Grep - First fix a potential security issue identified upstream: - -sed -i -e '/tp++/a if (ep <= tp) break;' src/kwset.c - Prepare Grep for compilation: ./configure --prefix=/usr --bindir=/bin diff --git a/chapter06/groff.xml b/chapter06/groff.xml index b35c563f4..821a3e54e 100644 --- a/chapter06/groff.xml +++ b/chapter06/groff.xml @@ -73,13 +73,13 @@ Installed directories - addftinfo, afmtodit, chem, eqn, eqn2graph, gdiffmk, - geqn (link to eqn), grap2graph, grn, grodvi, groff, groffer, grog, - grolbp, grolj4, grops, grotty, gtbl (link to tbl), hpftodit, - indxbib, lkbib, lookbib, mmroff, neqn, nroff, pdfroff, pfbtops, pic, - pic2graph, post-grohtml, preconv, pre-grohtml, refer, roff2dvi, - roff2html, roff2pdf, roff2ps, roff2text, roff2x, soelim, tbl, tfmtodit, - and troff + addftinfo, afmtodit, chem, eqn, eqn2graph, gdiffmk, glilypond, + gperl, gpinyin, grap2graph, grn, grodvi, groff, groffer, grog, grolbp, + grolj4, gropdf, grops, grotty, hpftodit, indxbib, lkbib, lookbib, + mmroff, neqn, nroff, pdfmom, pdfroff, pfbtops, pic, pic2graph, + post-grohtml, preconv, pre-grohtml, refer, roff2dvi, roff2html, + roff2pdf, roff2ps, roff2text, roff2x, soelim, tbl, tfmtodit, and + troff /usr/lib/groff and /usr/share/doc/groff-&groff-version;, /usr/share/groff @@ -154,12 +154,35 @@ - - geqn + + glilypond - A link to eqn - - geqn + Transforms sheet music written in the lilypond language into + the groff language + + glilypond + + + + + + gperl + + Preprocesor for groff, allowing addition of perl code + into groff files + + gperl + + + + + + gpinyin + + Preprocesor for groff, allowing addition of Chinese + European-like language Pinyin into groff files. + + gpinyin @@ -254,6 +277,17 @@ + + gropdf + + Translates the output of GNU troff to + PDF + + gropdf + + + + grops @@ -276,16 +310,6 @@ - - gtbl - - A link to tbl - - gtbl - - - - hpftodit @@ -367,6 +391,17 @@ + + pdfmom + + Is a wrapper around groff that facilitates the production of PDF + documents from files formatted with the mom macros. + + pdfmom + + + + pdfroff diff --git a/chapter06/grub.xml b/chapter06/grub.xml index cd730a3d5..1c3903e8a 100644 --- a/chapter06/grub.xml +++ b/chapter06/grub.xml @@ -94,14 +94,17 @@ - grub-bios-setup, grub-editenv, grub-fstest, - grub-install, grub-kbdcomp, grub-menulst2cfg, grub-mkconfig, + grub-bios-setup, grub-editenv, grub-file, grub-fstest, + grub-glue-efi, grub-install, grub-kbdcomp, grub-macbless, + grub-menulst2cfg, grub-mkconfig, grub-mkimage, grub-mklayout, grub-mknetdir, grub-mkpasswd-pbkdf2, grub-mkrelpath, grub-mkrescue, grub-mkstandalone, - grub-ofpathname, grub-probe, grub-reboot, grub-script-check, - grub-set-default, grub-sparc64-setup + grub-ofpathname, grub-probe, grub-reboot, grub-render-label, + grub-script-check, + grub-set-default, grub-sparc64-setup, and grub-syslinux2cfg - /usr/lib/grub, /etc/grub.d, /usr/share/grub, /boot/grub + /usr/lib/grub, /etc/grub.d, /usr/share/grub, and boot/grub (when grub-install + is first run) @@ -130,6 +133,16 @@ + + grub-file + + Checks if FILE is of the specified type. + + grub-file + + + + grub-fstest @@ -140,6 +153,17 @@ + + grub-glue-efi + + Processes ia32 and amd64 EFI images and glues them + according to Apple format. + + grub-glue-efi + + + + grub-install @@ -161,6 +185,16 @@ + + grub-macbless + + Mac-style bless on HFS or HFS+ files + + grub-macbless + + + + grub-menulst2cfg @@ -283,6 +317,16 @@ + + grub-render-label + + Render Apple .disk_label for Apple Macs + + grub-render-label + + + + grub-script-check @@ -313,6 +357,16 @@ + + grub-syslinux2cfg + + Transform a syslinux config file into grub.cfg format + + grub-syslinux2cfg + + + + diff --git a/chapter06/gzip.xml b/chapter06/gzip.xml index 7b5a5e20a..2245666b7 100644 --- a/chapter06/gzip.xml +++ b/chapter06/gzip.xml @@ -71,8 +71,8 @@ mv -v /bin/{zfgrep,zforce,zgrep,zless,zmore,znew} /usr/bin Installed programs - gunzip, gzexe, gzip, uncompress, zcat, zcmp, zdiff, zegrep, zfgrep, - zforce, zgrep, zless, zmore, and znew + gunzip, gzexe, gzip, uncompress (hard link with gunzip), zcat, zcmp, + zdiff, zegrep, zfgrep, zforce, zgrep, zless, zmore, and znew diff --git a/chapter06/inetutils.xml b/chapter06/inetutils.xml index 95a846326..1eb629a8c 100644 --- a/chapter06/inetutils.xml +++ b/chapter06/inetutils.xml @@ -109,10 +109,11 @@ To test the results, issue: make check + Install the package: make install @@ -132,8 +133,8 @@ mv -v /usr/bin/ifconfig /sbin Installed programs - ftp, ifconfig, hostname, ping, ping6, rcp, rexec, rlogin, - rsh, talk, telnet, tftp, and traceroute + dnsdomainname, ftp, ifconfig, hostname, ping, ping6, + talk, telnet, tftp, and traceroute @@ -142,6 +143,16 @@ mv -v /usr/bin/ifconfig /sbin + + dnsdomainname + + Show the system's DNS domain name + + dnsdomainname + + + + ftp @@ -152,16 +163,6 @@ mv -v /usr/bin/ifconfig /sbin - - ifconfig - - Manages network interfaces - - ifconfig - - - - hostname @@ -172,6 +173,16 @@ mv -v /usr/bin/ifconfig /sbin + + ifconfig + + Manages network interfaces + + ifconfig + + + + ping diff --git a/chapter06/kbd.xml b/chapter06/kbd.xml index 412ec6f29..cfcc544ec 100644 --- a/chapter06/kbd.xml +++ b/chapter06/kbd.xml @@ -133,10 +133,10 @@ cp -R -v docs/doc/* /usr/share/doc/kbd-&kbd-version; kbd_mode, kbdrate, loadkeys, loadunimap, mapscrn, openvt, psfaddtable (link to psfxtable), psfgettable (link to psfxtable), psfstriptable (link to psfxtable), psfxtable, - setfont, setkeycodes, setleds, setmetamode, + setfont, setkeycodes, setleds, setmetamode, setvtrgb, showconsolefont, showkey, unicode_start, and unicode_stop /usr/share/consolefonts, /usr/share/consoletrans, /usr/share/keymaps, - and /usr/share/unimaps + /usr/share/doc/kbd-&kbd-version;, and /usr/share/unimaps @@ -309,16 +309,6 @@ cp -R -v docs/doc/* /usr/share/doc/kbd-&kbd-version; - - setfont @@ -361,6 +351,16 @@ cp -R -v docs/doc/* /usr/share/doc/kbd-&kbd-version; + + setvtrgb + + Sets the console color map in all virtual terminals + + setvtrgb + + + + showconsolefont diff --git a/chapter06/libcap.xml b/chapter06/libcap.xml index 202a4b3a4..62acae35d 100644 --- a/chapter06/libcap.xml +++ b/chapter06/libcap.xml @@ -91,7 +91,7 @@ ln -sfv ../../lib/$(readlink /usr/lib/libcap.so) /usr/lib/libcap.so< capsh, getcap, getpcaps, and setcap - libcap.{a,so} + libcap.so diff --git a/chapter06/libtool.xml b/chapter06/libtool.xml index 5ad81b563..385df3752 100644 --- a/chapter06/libtool.xml +++ b/chapter06/libtool.xml @@ -75,7 +75,7 @@ libtool and libtoolize - libltdl.{a,so} + libltdl.so /usr/include/libltdl and /usr/share/libtool diff --git a/chapter06/man-db.xml b/chapter06/man-db.xml index d876a8f3d..4e81cc998 100644 --- a/chapter06/man-db.xml +++ b/chapter06/man-db.xml @@ -283,9 +283,9 @@ accessdb, apropos (link to whatis), catman, lexgrog, man, mandb, - manpath, whatis, and zsoelim + manpath, and whatis libman.so and libmandb.so - /usr/lib/man-db, /usr/libexec/man-db, + /usr/lib/man-db, /usr/lib/tmpfiles.d, /usr/libexec/man-db, and /usr/share/doc/man-db-&man-db-version; @@ -383,18 +383,6 @@ - - zsoelim - - Reads files and replaces lines of the form .so - file by the contents of the mentioned - file - - zsoelim - - - - libman diff --git a/chapter06/mpc.xml b/chapter06/mpc.xml index cac9cc7fa..2d518c8c1 100644 --- a/chapter06/mpc.xml +++ b/chapter06/mpc.xml @@ -73,7 +73,7 @@ make install-html Installed Directory - libmpc.{a,so} + libmpc.so /usr/share/doc/mpc-&mpc-version; diff --git a/chapter06/mpfr.xml b/chapter06/mpfr.xml index 8da91cb47..582e76bbe 100644 --- a/chapter06/mpfr.xml +++ b/chapter06/mpfr.xml @@ -83,7 +83,7 @@ make install-html Installed directory - libmpfr.{a,so} + libmpfr.so /usr/share/doc/mpfr-&mpfr-version; diff --git a/chapter06/ncurses.xml b/chapter06/ncurses.xml index e037f6a04..9e4e1dc4b 100644 --- a/chapter06/ncurses.xml +++ b/chapter06/ncurses.xml @@ -174,7 +174,7 @@ cp -av lib/lib*.so.5* /usr/lib clear, infocmp, infotocap (link to tic), - ncursesw5-config, + ncursesw6-config, reset (link to tset), tabs, tic, @@ -187,6 +187,7 @@ cp -av lib/lib*.so.5* /usr/lib libformw.so, libmenuw.so, libncursesw.so, + libncurses++w.a, libpanelw.so, and their non-wide-character counterparts without "w" in the library names. @@ -242,12 +243,12 @@ cp -av lib/lib*.so.5* /usr/lib - - ncursesw5-config + + ncursesw6-config Provides configuration information for ncurses - - ncursesw5-config + + ncursesw6-config diff --git a/chapter06/perl.xml b/chapter06/perl.xml index 1085712b5..5922e44fc 100644 --- a/chapter06/perl.xml +++ b/chapter06/perl.xml @@ -135,14 +135,13 @@ unset BUILD_ZLIB BUILD_BZIP2 Installed directory - a2p, c2ph, corelist, cpan, cpan2dist, cpanp, - cpanp-run-perl, enc2xs, find2perl, h2ph, h2xs, - instmodsh, json_pp, libnetcfg, perl, perl&perl-version; (link to perl), - perlbug, perldoc, perlivp, perlthanks (link to perlbug), piconv, pl2pm, - pod2html, pod2latex, pod2man, pod2text, pod2usage, podchecker, - podselect, prove, psed (link to s2p), pstruct (link to c2ph), ptar, - ptardiff, ptargrep, s2p, shasum, splain, xsubpp, and zipdetails - Several hundred which cannot all be listed here + c2ph, corelist, cpan, enc2xs, encguess, h2ph, h2xs, instmodsh, + json_pp, libnetcfg, perl, perl&perl-version; (hard link to perl), + perlbug, perldoc, perlivp, perlthanks (hard link to perlbug), piconv, + pl2pm, pod2html, pod2man, pod2text, pod2usage, podchecker, podselect, + prove, pstruct (hard link to c2ph), ptar, ptardiff, ptargrep, shasum, + splain, xsubpp, and zipdetails + Many which cannot all be listed here /usr/lib/perl5 @@ -236,6 +235,16 @@ unset BUILD_ZLIB BUILD_BZIP2 + + encguess + + Guess the encoding type of one or several files + + encguess + + + + find2perl @@ -472,16 +481,6 @@ unset BUILD_ZLIB BUILD_BZIP2 - - psed - - A Perl version of the stream editor sed - - psed - - - - pstruct diff --git a/chapter06/procps.xml b/chapter06/procps.xml index 71c0e0b04..1fe0bba16 100644 --- a/chapter06/procps.xml +++ b/chapter06/procps.xml @@ -47,7 +47,8 @@ --libdir=/usr/lib \ --docdir=/usr/share/doc/procps-ng-&procps-ng-version; \ --disable-static \ - --disable-kill + --disable-kill \ + --with-systemd The meaning of the configure options: diff --git a/chapter06/readline.xml b/chapter06/readline.xml index 5ddbdf9df..3b162d5ea 100644 --- a/chapter06/readline.xml +++ b/chapter06/readline.xml @@ -105,7 +105,7 @@ ln -sfv ../../lib/$(readlink /usr/lib/libhistory.so ) /usr/lib/libhistory.soInstalled directories - libhistory.{a,so} and libreadline.{a,so} + libhistory.so and libreadline.so /usr/include/readline, /usr/share/readline, and /usr/share/doc/readline-&readline-version; diff --git a/chapter06/revisedchroot.xml b/chapter06/revisedchroot.xml index 25332ba0e..40c69c6be 100644 --- a/chapter06/revisedchroot.xml +++ b/chapter06/revisedchroot.xml @@ -46,12 +46,11 @@ libraries are from binutils, bzip2, e2fsprogs, libtool, and zlib. If desired, remove them now: -rm /usr/lib/lib{bfd,opcodes}.a -rm /usr/lib/libbz2.a -rm /usr/lib/lib{com_err,e2p,ext2fs,ss}.a -rm /usr/lib/libltdl.a -rm /usr/lib/libz.a +rm -f /usr/lib/lib{bfd,opcodes}.a +rm -f /usr/lib/libbz2.a +rm -f /usr/lib/lib{com_err,e2p,ext2fs,ss}.a +rm -f /usr/lib/libltdl.a +rm -f /usr/lib/libz.a diff --git a/chapter06/shadow.xml b/chapter06/shadow.xml index 625b313e4..38d2dc345 100644 --- a/chapter06/shadow.xml +++ b/chapter06/shadow.xml @@ -147,7 +147,7 @@ ln -sfv ../../lib/libshadow.so.0 /usr/lib/libshadow.so --> a group of the same name as the user. By default the user ID (UID) and group ID (GID) numbers will begin with 1000. This means if you don't pass parameters to useradd, each user will be a member of a - unique group on the system. If this behaviour is undesirable, you'll need + unique group on the system. If this behavior is undesirable, you'll need to pass the -g parameter to useradd. The default parameters are stored in the /etc/default/useradd file. You may need to modify two @@ -211,9 +211,9 @@ ln -sfv ../../lib/libshadow.so.0 /usr/lib/libshadow.so --> chage, chfn, chgpasswd, chpasswd, chsh, expiry, faillog, gpasswd, groupadd, groupdel, groupmems, groupmod, grpck, grpconv, grpunconv, - lastlog, login, logoutd, newgrp, newusers, nologin, passwd, pwck, - pwconv, pwunconv, sg (link to newgrp), su, useradd, userdel, usermod, - vigr (link to vipw), and vipw + lastlog, login, logoutd, newgidmap, newgrp,newuidmap, newusers, + nologin, passwd, pwck, pwconv, pwunconv, sg (link to newgrp), su, + useradd, userdel, usermod, vigr (link to vipw), and vipw /etc/default @@ -414,6 +414,16 @@ ln -sfv ../../lib/libshadow.so.0 /usr/lib/libshadow.so --> + + newgidmap + + Is used to set the gid mapping of a user namespace + + newgidmap + + + + newgrp @@ -424,6 +434,16 @@ ln -sfv ../../lib/libshadow.so.0 /usr/lib/libshadow.so --> + + newuidmap + + Is used to set the uid mapping of a user namespace + + newuidmap + + + + newusers diff --git a/chapter06/systemd.xml b/chapter06/systemd.xml index 8a86cb385..7a2f821ea 100644 --- a/chapter06/systemd.xml +++ b/chapter06/systemd.xml @@ -41,7 +41,8 @@ Installation of systemd First, create a file to allow systemd to build when using Util-Linux - built in Chapter 5 and disable LTO by default: + built in Chapter 5, to disable LTO by default, and to build without + xlstproc: cat > config.cache << "EOF" KILL=/bin/kill @@ -53,7 +54,8 @@ BLKID_CFLAGS="-I/tools/include/blkid" HAVE_LIBMOUNT=1 MOUNT_LIBS="-lmount" MOUNT_CFLAGS="-I/tools/include/libmount" -cc_cv_CFLAGS__flto=no +cc_cv_CFLAGS__flto=no +XSLTPROC="/usr/bin/xsltproc" EOF LTO is disabled by default because it causes systemd diff --git a/chapter06/tar.xml b/chapter06/tar.xml index ee69bad86..eb9d3d980 100644 --- a/chapter06/tar.xml +++ b/chapter06/tar.xml @@ -76,11 +76,6 @@ make install make -C doc install-html docdir=/usr/share/doc/tar-&tar-version; - @@ -92,7 +87,7 @@ make -C doc install-html docdir=/usr/share/doc/tar-&tar-version;Installed directory - rmt and tar + tar /usr/share/doc/tar-&tar-version; @@ -102,17 +97,6 @@ make -C doc install-html docdir=/usr/share/doc/tar-&tar-version; - - rmt - - Remotely manipulates a magnetic - tape drive through an interprocess communication connection - - rmt - - - - tar diff --git a/chapter06/texinfo.xml b/chapter06/texinfo.xml index d94c049eb..c4308f337 100644 --- a/chapter06/texinfo.xml +++ b/chapter06/texinfo.xml @@ -101,7 +101,7 @@ popd Installed directory - info, infokey, install-info, makeinfo (link to texi2any), + info, install-info, makeinfo (link to texi2any), pdftexi2dvi, pod2texi, texi2any, texi2dvi, texi2pdf, and texindex /usr/share/texinfo @@ -125,17 +125,6 @@ popd - - infokey - - Compiles a source file containing Info customizations into a - binary format - - infokey - - - - install-info diff --git a/chapter06/util-linux.xml b/chapter06/util-linux.xml index 00706794e..f1a27e8ee 100644 --- a/chapter06/util-linux.xml +++ b/chapter06/util-linux.xml @@ -121,18 +121,22 @@ su nobody -s /bin/bash -c "PATH=$PATH make -k check" fsck.cramfs, fsck.minix, fsfreeze, fstrim, getopt, hexdump, hwclock, i386, ionice, ipcmk, ipcrm, ipcs, isosize, kill, last, lastb (link to last), ldattach, linux32, linux64, logger, look, losetup, lsblk, lscpu, - lslocks, lslogins, mcookie, mkfs, mkfs.bfs, mkfs.cramfs, mkfs.minix, mkswap, - more, mount, mountpoint, namei, partx, pg, pivot_root, prlimit, raw, + lsipc, lslocks, lslogins, mcookie, mesg, mkfs, mkfs.bfs, mkfs.cramfs, mkfs.minix, mkswap, + more, mount, mountpoint, namei, nsenter, partx, pg, pivot_root, prlimit, raw, readprofile, rename, renice, resizepart, rev, rtcwake, script, scriptreplay, setarch, setsid, setterm, sfdisk, sulogin, swaplabel, swapoff (link to swapon), swapon, switch_root, tailf, taskset, ul, - umount, unshare, utmpdump, uuidd, uuidgen, wall, wdctl, whereis, + umount, uname26, unshare, utmpdump, uuidd, uuidgen, wall, wdctl, whereis, wipefs, x86_64, and zramctl - libblkid.{a,so}, libfdisk.{a,so}, libmount.{a,so}, - libsmartcols.{a,so}, and libuuid.{a,so} - /etc/terminal-colors.d, /usr/include/blkid, /usr/include/libmount, - /usr/include/uuid, /usr/share/doc/util-linux-&util-linux-version;/getopt, - and /var/lib/hwclock + libblkid.so, libfdisk.so, libmount.so, + libsmartcols.so, and libuuid.so + /usr/include/blkid, + /usr/include/libfdisk, + /usr/include/libmount, + /usr/include/libsmartcols, + /usr/include/uuid, + /usr/share/doc/util-linux-&util-linux-version;, + and /var/lib/hwclock @@ -339,7 +343,7 @@ su nobody -s /bin/bash -c "PATH=$PATH make -k check" fdisk - Manipulates the paritition table of the given device + Manipulates the partition table of the given device fdisk @@ -639,6 +643,17 @@ su nobody -s /bin/bash -c "PATH=$PATH make -k check" + + lsipc + + Prints information on IPC facilities currently employed + in the system + + lsipc + + + + lslocks @@ -1055,6 +1070,16 @@ su nobody -s /bin/bash -c "PATH=$PATH make -k check" + + uname26 + + A symbolic link to setarch + + uname26 + + + + unshare diff --git a/chapter06/xz.xml b/chapter06/xz.xml index 8d29b578a..e566273e6 100644 --- a/chapter06/xz.xml +++ b/chapter06/xz.xml @@ -44,6 +44,13 @@ Installation of Xz + First, fix an internal problem: + +sed -e '/mf\.buffer = NULL/a next->coder->mf.size = 0;' \ + -i src/liblzma/lz/lz_encoder.c + + + Prepare Xz for compilation with: ./configure --prefix=/usr \ diff --git a/chapter07/console.xml b/chapter07/console.xml index 175ff7c5a..ea1062c23 100644 --- a/chapter07/console.xml +++ b/chapter07/console.xml @@ -68,7 +68,7 @@ FONT_UNIMAP - This variable specifies the unicode font map. + This variable specifies the Unicode font map. diff --git a/chapter07/network.xml b/chapter07/network.xml index 141715e8b..7dc86cbf5 100644 --- a/chapter07/network.xml +++ b/chapter07/network.xml @@ -22,21 +22,24 @@ Starting with version 209, systemd ships a network configuration daemon called systemd-networkd which can be used for - basic network configuration. + basic network configuration. Additionally, since version 213, DNS name + resolution can be handled by systemd-resolved in place + of a static /etc/resolv.conf file. Both services are + enabled by defualt, and absolutely should not be disabled. - Configuration files for systemd-networkd can be - placed in /usr/lib/systemd/network - or /etc/systemd/network. Note that - files in /etc/systemd/network have + Configuration files for systemd-networkd (and + systemd-resolved) can be placed in + /usr/lib/systemd/network + or /etc/systemd/network. Files in + /etc/systemd/network have a higher priority than the ones in - /usr/lib/systemd/network. - - There are three types of configuration files: + /usr/lib/systemd/network. + There are three types of configuration files: .link, .netdev and .network files. For detailed - explanation about contents of the mentioned - configuration files, consult systemd-link(5), + descriptions and example contents of these configuration files, consult + the systemd-link(5), systemd-netdev(5) and systemd-network(5) manual pages. @@ -49,10 +52,11 @@ Static IP Configuration - The command below creates a basic configuration file for - Static IP setup: + The command below creates a basic configuration file for a + Static IP setup (using both systemd-networkd and + systemd-resolved): -cat > /etc/systemd/network/10-static-eth0.network << "EOF" +cat > /etc/systemd/network/10-eth0-static.network << "EOF" [Match] Name=eth0 @@ -62,27 +66,25 @@ Gateway=192.168.0.1 DNS=192.168.0.1 EOF - More than one DNS entry can be specified in the configuration file. + Multiple DNS entries can be added if you have more than one DNS + server. DHCP Configuration - The command below creates a basic configuration file for + The command below creates a basic configuration file for an IPv4 DHCP setup: -cat > /etc/systemd/network/10-dhcp-eth0.network << "EOF" +cat > /etc/systemd/network/10-eth0-dhcp.network << "EOF" [Match] Name=eth0 [Network] -DHCP=yes +DHCP=ipv4 EOF - Note that systemd-networkd can only handle - DHCPv4. DHCPv6 support is a work in progress. - @@ -101,8 +103,36 @@ EOF from the ISP or network administrator, into /etc/resolv.conf. - If static /etc/resolv.conf is desired, create - it by running the following command: + + systemd-resolved Configuration + + If using another means to configure your network + interfaces (ex: ppp, network-manager, etc.), or if using any type of + local resolver (ex: bind, dnsmasq, etc.), or any other software that + generates an /etc/resolv.conf (ex: resolvconf), the + systemd-resolved service should not be + used. + + When using systemd-resolved for DNS + configuration, it is responsible for creating the + /etc/resolv.conf file, which is placed in a + non-standard location that is writable during early boot. In order to be + used by other components of the system, it is necessary to create a + symlink with the following command: + +ln -sfv /run/systemd/resolve/resolv.conf /etc/resolv.conf + + This is required if you are specifying DNS entries in .network files or using the built in + DHCP client to obtain DNS addresses. + + + + + Static resolv.conf Configuration + + If a static /etc/resolv.conf is desired, + create it by running the following command: cat > /etc/resolv.conf << "EOF" # Begin /etc/resolv.conf @@ -114,31 +144,24 @@ nameserver <IP address of your secondary nameserver> EOF - The domain statement can be omitted - or replaced with a search statement. See the man page for - resolv.conf for more details. + The domain statement can be omitted + or replaced with a search statement. See the man page + for resolv.conf for more details. - Replace <IP address of the nameserver> - with the IP address of the DNS most appropriate for the setup. There will - often be more than one entry (requirements demand secondary servers for - fallback capability). If you only need or want one DNS server, remove the - second nameserver line from the file. The IP address - may also be a router on the local network. + Replace + <IP address of the nameserver> + with the IP address of the DNS most appropriate for the setup. There will + often be more than one entry (requirements demand secondary servers for + fallback capability). If you only need or want one DNS server, remove the + second nameserver line from the file. The IP address + may also be a router on the local network. - The Google Public IPv4 DNS addresses are 8.8.8.8 and 8.8.4.4. + The Google Public IPv4 DNS addresses are + 8.8.8.8 and 8.8.4.4 + for IPv4, and 2001:4860:4860::8888 and + 2001:4860:4860::8844 for IPv6. - When using systemd-networkd for network - configuration, another daemon, systemd-resolved, - is responsible for creating the /etc/resolv.conf - file. It is, however, placed in a non-standard location which is - writable since early boot, so it is necessary to create a symlink - to it by running the following command: - -ln -sfv /run/systemd/resolve/resolv.conf /etc/resolv.conf - - This is required if you are specifying DNS entries in .network files or using the built in - DHCP client to obtain DNS addresses. + diff --git a/chapter07/udev.xml b/chapter07/udev.xml index 8234c4cb7..548a2d2ee 100644 --- a/chapter07/udev.xml +++ b/chapter07/udev.xml @@ -254,7 +254,7 @@ Udev creates a device incorrectly, or makes a wrong symlink This usually happens if a rule unexpectedly matches a device. For - example, a poorly-writen rule can match both a SCSI disk (as desired) + example, a poorly-written rule can match both a SCSI disk (as desired) and the corresponding SCSI generic device (incorrectly) by vendor. Find the offending rule and make it more specific, with the help of the udevadm info command. diff --git a/chapter08/kernel.xml b/chapter08/kernel.xml index 39626d001..8bc1423c8 100644 --- a/chapter08/kernel.xml +++ b/chapter08/kernel.xml @@ -105,7 +105,7 @@ File systems ---> Support for uevent helper - Having this opion set may interfere with device + Having this option set may interfere with device management when using Udev/Eudev. diff --git a/chapter09/reboot.xml b/chapter09/reboot.xml index 094a64ee5..8f2508ec8 100644 --- a/chapter09/reboot.xml +++ b/chapter09/reboot.xml @@ -45,7 +45,7 @@ If you want to access your new system from a remote system within a comfortable GUI environment, install openssh and its - prerequsite, openssl. diff --git a/general.ent b/general.ent index e0fe1f380..035abd429 100644 --- a/general.ent +++ b/general.ent @@ -1,6 +1,6 @@ - + - + @@ -20,9 +20,7 @@ - - - + diff --git a/packages.ent b/packages.ent index dd2a76169..e8b938699 100644 --- a/packages.ent +++ b/packages.ent @@ -28,7 +28,7 @@ - + @@ -105,12 +105,12 @@ - - + + - + - + @@ -159,30 +159,30 @@ - - + + - + - - + + - + - - + + - + @@ -197,10 +197,10 @@ - - + + - + @@ -220,10 +220,10 @@ - - + + - + @@ -240,11 +240,11 @@ - - - - - + + + + + @@ -257,10 +257,10 @@ - - + + - + @@ -295,7 +295,7 @@ - + @@ -317,10 +317,10 @@ - - + + - + @@ -333,18 +333,18 @@ - - + + - + - - + + - + @@ -374,13 +374,13 @@ - - - - - + + + + + - + diff --git a/prologue/hostreqs.xml b/prologue/hostreqs.xml index 39ecac34c..e2358ecf6 100644 --- a/prologue/hostreqs.xml +++ b/prologue/hostreqs.xml @@ -61,7 +61,7 @@ - GCC-4.1.2 including the C++ + GCC-4.7 including the C++ compiler, g++ (Versions greater than &gcc-version; are not recommended as they have not been tested) @@ -163,7 +163,11 @@ # Simple script to list version numbers of critical development tools export LC_ALL=C bash --version | head -n1 | cut -d" " -f2-4 -echo "/bin/sh -> `readlink -f /bin/sh`" +MYSH=$(readlink -f /bin/sh) +echo "/bin/sh -> $MYSH" +echo $MYSH | grep -q bash || echo "ERROR: /bin/sh does not point to bash" +unset MYSH + echo -n "Binutils: "; ld --version | head -n1 | cut -d" " -f3- bison --version | head -n1 @@ -203,7 +207,7 @@ sed --version | head -n1 tar --version | head -n1 makeinfo --version | head -n1 xz --version | head -n1 - + echo 'int main(){}' > dummy.c && g++ -o dummy dummy.c if [ -x dummy ] then echo "g++ compilation OK"; diff --git a/prologue/why.xml b/prologue/why.xml index b86f2b151..757f07b32 100644 --- a/prologue/why.xml +++ b/prologue/why.xml @@ -462,7 +462,7 @@ Systemd This package provides an init program - and several additional boot and system control capabilites as an + and several additional boot and system control capabilities as an alternative to Sysvinit. It is used by many Linux distributions.