aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile31
-rw-r--r--appendices/acknowledgments.xml4
-rw-r--r--appendices/dependencies.xml10
-rw-r--r--bootscripts/ChangeLog3
-rw-r--r--bootscripts/lfs/init.d/mountvirtfs8
-rw-r--r--bootscripts/lfs/sysconfig/createfiles28
-rw-r--r--bootscripts/lfs/sysconfig/modules2
-rw-r--r--chapter01/changelog.xml101
-rw-r--r--chapter01/how.xml4
-rw-r--r--chapter01/whatsnew.xml156
-rw-r--r--chapter02/creatingfilesystem.xml35
-rw-r--r--chapter02/creatingpartition.xml61
-rw-r--r--chapter02/hostreqs.xml2
-rw-r--r--chapter02/mounting.xml30
-rw-r--r--chapter02/stages.xml14
-rw-r--r--chapter03/introduction.xml14
-rw-r--r--chapter03/packages.xml6
-rw-r--r--chapter04/settingenviron.xml2
-rw-r--r--chapter05/gcc-pass1.xml16
-rw-r--r--chapter06/gcc-pass2.xml2
-rw-r--r--chapter07/cleanup.xml11
-rw-r--r--chapter07/createfiles.xml6
-rw-r--r--chapter07/kernfs.xml7
-rw-r--r--chapter08/binutils.xml15
-rw-r--r--chapter08/cleanup.xml8
-rw-r--r--chapter08/eudev.xml12
-rw-r--r--chapter08/gawk.xml4
-rw-r--r--chapter08/gcc.xml36
-rw-r--r--chapter08/gettext.xml2
-rw-r--r--chapter08/grep.xml7
-rw-r--r--chapter08/groff.xml2
-rw-r--r--chapter08/libtool.xml7
-rw-r--r--chapter08/meson.xml4
-rw-r--r--chapter08/ncurses.xml16
-rw-r--r--chapter08/openssl.xml2
-rw-r--r--chapter08/pkgmgt.xml4
-rw-r--r--chapter08/python.xml6
-rw-r--r--chapter08/readline.xml6
-rw-r--r--chapter08/util-linux.xml2
-rw-r--r--chapter08/vim.xml16
-rw-r--r--chapter09/consoled.xml2
-rw-r--r--chapter09/systemd-custom.xml2
-rw-r--r--chapter09/udev.xml2
-rw-r--r--chapter09/usage.xml8
-rw-r--r--chapter10/fstab.xml1
-rw-r--r--chapter10/kernel.xml59
-rw-r--r--chapter11/afterlfs.xml266
-rw-r--r--chapter11/chapter11.xml1
-rw-r--r--chapter11/reboot.xml53
-rw-r--r--chapter11/theend.xml5
-rw-r--r--chapter11/whatnow.xml26
-rwxr-xr-xgit-version.sh46
-rw-r--r--lfs-latest-git.php14
-rw-r--r--packages.ent74
-rw-r--r--part3intro/generalinstructions.xml4
-rw-r--r--prologue/prerequisites.xml4
-rw-r--r--prologue/standards.xml6
-rw-r--r--prologue/why.xml2
-rw-r--r--stylesheets/lfs-xsl/lfs.css.new280
-rw-r--r--udev-lfs/ChangeLog348
-rw-r--r--udev-lfs/contrib/debian/write_cd_aliases2
61 files changed, 1208 insertions, 699 deletions
diff --git a/Makefile b/Makefile
index bd6884a66..13d0f52a8 100644
--- a/Makefile
+++ b/Makefile
@@ -26,7 +26,7 @@ ifeq ($(REV), sysv)
BASEDIR ?= ~/lfs-book
PDF_OUTPUT ?= LFS-BOOK.pdf
NOCHUNKS_OUTPUT ?= LFS-BOOK.html
- DUMPDIR ?= ~/cross-lfs-commands
+ DUMPDIR ?= ~/lfs-commands
else
BASEDIR ?= ~/lfs-systemd
PDF_OUTPUT ?= LFS-SYSD-BOOK.pdf
@@ -136,7 +136,7 @@ validate: tmpdir version
$(Q)xmllint --nonet \
--noent \
--postvalid \
- -o $(RENDERTMP)/lfs-full.xml \
+ -o $(RENDERTMP)/lfs-full.xml \
$(RENDERTMP)/lfs-html2.xml
$(Q)rm -f appendices/*.script
@@ -147,9 +147,9 @@ profile-html:
@echo "Generating profiled XML for XHTML..."
$(Q)xsltproc --nonet \
--stringparam profile.condition html \
- --output $(RENDERTMP)/lfs-html.xml \
+ --output $(RENDERTMP)/lfs-html.xml \
stylesheets/lfs-xsl/profile.xsl \
- $(RENDERTMP)/lfs-full.xml
+ $(RENDERTMP)/lfs-full.xml
wget-list: $(BASEDIR)/wget-list $(BASEDIR)/wget-list-$(REV)
$(BASEDIR)/wget-list: stylesheets/wget-list.xsl chapter03/chapter03.xml \
@@ -158,7 +158,7 @@ $(BASEDIR)/wget-list: stylesheets/wget-list.xsl chapter03/chapter03.xml \
$(Q)mkdir -p $(BASEDIR)
$(Q)xsltproc --xinclude --nonet \
--output $(BASEDIR)/wget-list \
- stylesheets/wget-list.xsl \
+ stylesheets/wget-list.xsl \
chapter03/chapter03.xml
$(BASEDIR)/wget-list-$(REV): stylesheets/wget-list.xsl \
@@ -197,22 +197,17 @@ $(BASEDIR)/md5sums: stylesheets/wget-list.xsl chapter03/chapter03.xml \
version:
$(Q)./git-version.sh $(REV)
-#dump-commands: validate
-# @echo "Dumping book commands..."
-# $(Q)xsltproc --nonet \
-# --output $(RENDERTMP)/lfs-html.xml \
-# --stringparam profile.revision $(REV) \
-# stylesheets/lfs-xsl/profile.xsl \
-# $(RENDERTMP)/lfs-full.xml
+dump-commands: validate
+ @echo "Dumping book commands..."
-# $(Q)rm -rf $(DUMPDIR)
+ $(Q)rm -rf $(DUMPDIR)
-# $(Q)xsltproc --output $(DUMPDIR)/ \
-# stylesheets/dump-commands.xsl \
-# $(RENDERTMP)/lfs-html.xml
-# @echo "Dumping book commands complete in $(DUMPDIR)"
+ $(Q)xsltproc --output $(DUMPDIR)/ \
+ stylesheets/dump-commands.xsl \
+ $(RENDERTMP)/lfs-full.xml
+ @echo "Dumping book commands complete in $(DUMPDIR)"
-all: book nochunks pdf # dump-commands
+all: book nochunks pdf dump-commands
.PHONY : all book dump-commands nochunks pdf profile-html tmpdir validate md5sums wget-list version
diff --git a/appendices/acknowledgments.xml b/appendices/acknowledgments.xml
index 53c384dd7..3db526641 100644
--- a/appendices/acknowledgments.xml
+++ b/appendices/acknowledgments.xml
@@ -247,12 +247,12 @@
<para><ulink url="mailto:info@shizu-net.jp">Shizunet Co.,Ltd.</ulink>
&lt;info@shizu-net.jp&gt; &ndash; lfs.mirror.shizu-net.jp mirror</para>
</listitem>
-
+<!-- domain name can't be resolved on Sept 5, 2022
<listitem>
<para><ulink url="http://www.initworld.com/">Init World</ulink>
&lt;http://www.initworld.com/&gt; &ndash; lfs.initworld.com mirror</para>
</listitem>
-
+-->
</itemizedlist>
<bridgehead renderas="sect3">Australian Mirrors</bridgehead>
diff --git a/appendices/dependencies.xml b/appendices/dependencies.xml
index 3ad5c0097..69c676394 100644
--- a/appendices/dependencies.xml
+++ b/appendices/dependencies.xml
@@ -948,7 +948,7 @@
<segtitle>&external;</segtitle>
<seglistitem>
<seg>
- <ulink url="http://gcc.gnu.org/wiki/GNAT">GNAT</ulink>
+ <ulink url="https://gcc.gnu.org/wiki/GNAT">GNAT</ulink>
and
<ulink url="https://repo.or.cz/isl.git">ISL</ulink>
</seg>
@@ -1186,7 +1186,7 @@
<segtitle>&external;</segtitle>
<seglistitem>
<seg>
- <ulink url="&blfs-book;general/pcre.html">PCRE</ulink>
+ <ulink url="&blfs-book;general/pcre2.html">PCRE2</ulink>
and
<ulink url="&blfs-book;general/libsigsegv.html">libsigsegv</ulink>
</seg>
@@ -2356,7 +2356,7 @@
<segmentedlist id="patch-rundeps">
<segtitle>&runtime;</segtitle>
<seglistitem>
- <seg>Glibc and Patch</seg>
+ <seg>Glibc</seg>
</seglistitem>
</segmentedlist>
@@ -2813,7 +2813,7 @@
<ulink url="&blfs-book;postlfs/linux-pam.html">Linux-PAM</ulink>,
<ulink
url="&blfs-book;general/python-modules.html#lxml">lxml</ulink>,
- <ulink url="http://lz4.github.io/lz4/">LZ4</ulink>,
+ <ulink url="https://lz4.github.io/lz4/">LZ4</ulink>,
<ulink url="&blfs-book;postlfs/make-ca.html">make-ca</ulink>,
<ulink url="&blfs-book;postlfs/p11-kit.html">p11-kit</ulink>,
<ulink url="&blfs-book;general/pcre2.html">PCRE2</ulink>,
@@ -3266,7 +3266,7 @@
<segtitle>&external;</segtitle>
<seglistitem>
<seg>
- <ulink url="http://lz4.github.io/lz4/">LZ4</ulink>
+ <ulink url="https://lz4.github.io/lz4/">LZ4</ulink>
</seg>
</seglistitem>
</segmentedlist>
diff --git a/bootscripts/ChangeLog b/bootscripts/ChangeLog
index c1b590568..1fca16a65 100644
--- a/bootscripts/ChangeLog
+++ b/bootscripts/ChangeLog
@@ -1,3 +1,6 @@
+2022-09-30 Bruce Dubbs <bdubbs@linuxfromscratch.org>
+ * Mount /dev/shm as a tmpfs.
+
2022-07-23 Thomas Trepl <thomas@linuxfromscratch.org>
* Mark an raid array clean when root (/) has been remounted
r/o when system goes down. Otherwise, array does remain
diff --git a/bootscripts/lfs/init.d/mountvirtfs b/bootscripts/lfs/init.d/mountvirtfs
index 639634377..21d98a05d 100644
--- a/bootscripts/lfs/init.d/mountvirtfs
+++ b/bootscripts/lfs/init.d/mountvirtfs
@@ -38,8 +38,8 @@ case "${1}" in
mount /run || failed=1
fi
- mkdir -p /run/lock /run/shm
- chmod 1777 /run/shm /run/lock
+ mkdir -p /run/lock
+ chmod 1777 /run/lock
log_info_msg "Mounting virtual file systems: ${INFO}/run"
@@ -58,7 +58,9 @@ case "${1}" in
mount -o mode=0755,nosuid /dev || failed=1
fi
- ln -sfn /run/shm /dev/shm
+ mkdir -p /dev/shm
+ log_info_msg2 " ${INFO}/dev/shm"
+ mount -o nosuid,nodev /dev/shm || failed=1
(exit ${failed})
evaluate_retval
diff --git a/bootscripts/lfs/sysconfig/createfiles b/bootscripts/lfs/sysconfig/createfiles
index 3d8587439..378fa3ee7 100644
--- a/bootscripts/lfs/sysconfig/createfiles
+++ b/bootscripts/lfs/sysconfig/createfiles
@@ -8,23 +8,23 @@
# Version : 00.00
#
# Notes : The syntax of this file is as follows:
-# if type is equal to "file" or "dir"
-# <filename> <type> <permissions> <user> <group>
-# if type is equal to "dev"
-# <filename> <type> <permissions> <user> <group> <devtype>
+# if type is equal to "file" or "dir"
+# <filename> <type> <permissions> <user> <group>
+# if type is equal to "dev"
+# <filename> <type> <permissions> <user> <group> <devtype>
# <major> <minor>
#
-# <filename> is the name of the file which is to be created
-# <type> is either file, dir, or dev.
-# file creates a new file
-# dir creates a new directory
-# dev creates a new device
-# <devtype> is either block, char or pipe
-# block creates a block device
-# char creates a character deivce
-# pipe creates a pipe, this will ignore the <major> and
+# <filename> is the name of the file which is to be created
+# <type> is either file, dir, or dev.
+# file creates a new file
+# dir creates a new directory
+# dev creates a new device
+# <devtype> is either block, char or pipe
+# block creates a block device
+# char creates a character deivce
+# pipe creates a pipe, this will ignore the <major> and
# <minor> fields
-# <major> and <minor> are the major and minor numbers used for
+# <major> and <minor> are the major and minor numbers used for
# the device.
########################################################################
diff --git a/bootscripts/lfs/sysconfig/modules b/bootscripts/lfs/sysconfig/modules
index 0fce3f31f..c594e24a2 100644
--- a/bootscripts/lfs/sysconfig/modules
+++ b/bootscripts/lfs/sysconfig/modules
@@ -8,7 +8,7 @@
# Version : 00.00
#
# Notes : The syntax of this file is as follows:
-# <module> [<arg1> <arg2> ...]
+# <module> [<arg1> <arg2> ...]
#
# Each module should be on its own line, and any options that you want
# passed to the module should follow it. The line deliminator is either
diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml
index 238b5bee7..7c4a15381 100644
--- a/chapter01/changelog.xml
+++ b/chapter01/changelog.xml
@@ -41,6 +41,107 @@
-->
<listitem>
+ <para>2022-09-22</para>
+ <itemizedlist>
+ <listitem>
+ <para>[bdubbs] - Update to expat-2.4.9 (Security Update). Fixes
+ <ulink url="&lfs-ticket-root;5117">#5117</ulink>.</para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+
+ <listitem>
+ <para>2022-09-20</para>
+ <itemizedlist>
+ <listitem>
+ <para>[bdubbs] - Adapt instructions depending on
+ host setup of /dev/shm when creating virtual filesystems
+ for chroot.</para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+
+ <listitem>
+ <para>2022-09-15</para>
+ <itemizedlist>
+ <listitem>
+ <para>[bdubbs] - Update to file-5.43. Fixes
+ <ulink url="&lfs-ticket-root;5113">#5113</ulink>.</para>
+ </listitem>
+ <listitem>
+ <para>[bdubbs] - Update to linux-5.19.8. Fixes
+ <ulink url="&lfs-ticket-root;5111">#5111</ulink>.</para>
+ </listitem>
+ <listitem>
+ <para>[bdubbs] - Update to gawk-5.2.0. Fixes
+ <ulink url="&lfs-ticket-root;5108">#5108</ulink>.</para>
+ </listitem>
+ <listitem>
+ <para>[bdubbs] - Update to meson-0.63.2. Fixes
+ <ulink url="&lfs-ticket-root;5106">#5106</ulink>.</para>
+ </listitem>
+ <listitem>
+ <para>[bdubbs] - Update to ninja-1.11.1. Fixes
+ <ulink url="&lfs-ticket-root;5103">#5103</ulink>.</para>
+ </listitem>
+ <listitem>
+ <para>[bdubbs] - Update to bc-6.0.2. Fixes
+ <ulink url="&lfs-ticket-root;5102">#5102</ulink>.</para>
+ </listitem>
+ <listitem revision="sysv">
+ <para>[bdubbs] - Fix the location of udev rules in eudev. Fixes
+ <ulink url="&lfs-ticket-root;5112">#5112</ulink>.</para>
+ </listitem>
+ <listitem>
+ <para>[bdubbs] - Remove a warning for egrep and fgrep that
+ makes tests for some packages fail.</para>
+ </listitem>
+ <listitem>
+ <para>[bdubbs] - Delete an empty binutils man page. Fixes
+ <ulink url="&lfs-ticket-root;5100">#5100</ulink>.</para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+
+ <listitem>
+ <para>2022-09-10</para>
+ <itemizedlist>
+ <listitem>
+ <para>[pierre] - Add <option>--enable-default-pie</option> and
+ <option>--enable-default-ssp</option> to GCC build. Rationale
+ and some reports at
+ <ulink url="&lfs-ticket-root;5107">#5107</ulink>.</para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+
+ <listitem>
+ <para>2022-09-07</para>
+ <itemizedlist>
+ <listitem>
+ <para>[bdubbs] - Update to shadow-4.12.3. Fixes
+ <ulink url="&lfs-ticket-root;5101">#5101</ulink>.</para>
+ </listitem>
+ <listitem>
+ <para>[bdubbs] - Update to Python3-3.10.7. Fixes
+ <ulink url="&lfs-ticket-root;5109">#5109</ulink>.</para>
+ </listitem>
+ <listitem>
+ <para>[bdubbs] - Update to linux-5.19.7. Fixes
+ <ulink url="&lfs-ticket-root;5099">#5099</ulink>.</para>
+ </listitem>
+ <listitem>
+ <para>[bdubbs] - Update to less-608. Fixes
+ <ulink url="&lfs-ticket-root;5104">#5104</ulink>.</para>
+ </listitem>
+ <listitem>
+ <para>[bdubbs] - Update to grep-3.8. Fixes
+ <ulink url="&lfs-ticket-root;5105">#5105</ulink>.</para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+
+ <listitem>
<para>2022-09-01</para>
<itemizedlist>
<listitem>
diff --git a/chapter01/how.xml b/chapter01/how.xml
index a690fb595..b7551b2e6 100644
--- a/chapter01/how.xml
+++ b/chapter01/how.xml
@@ -46,7 +46,7 @@
important issues you need be aware of before beginning to
work your way through <xref linkend="chapter-cross-tools"/> and beyond.</para>
- <para><xref linkend="chapter-cross-tools"/>, explains the installation of
+ <para><xref linkend="chapter-cross-tools"/> explains the installation of
the initial tool chain, (binutils, gcc, and glibc) using cross compilation
techniques to isolate the new tools from the host system.</para>
@@ -61,7 +61,7 @@
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
+ <para>In <xref linkend="chapter-building-system"/> the
full 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
diff --git a/chapter01/whatsnew.xml b/chapter01/whatsnew.xml
index 1ee469b77..3c6df1428 100644
--- a/chapter01/whatsnew.xml
+++ b/chapter01/whatsnew.xml
@@ -44,9 +44,9 @@
<listitem>
<para>Bc &bc-version;</para>
</listitem>
- <listitem>
+ <!--<listitem>
<para>Binutils-&binutils-version;</para>
- </listitem>
+ </listitem>-->
<!--<listitem>
<para>Bison-&bison-version;</para>
</listitem>-->
@@ -56,21 +56,21 @@
<!--<listitem>
<para>Check-&check-version;</para>
</listitem>-->
- <listitem>
+ <!--<listitem>
<para>Coreutils-&coreutils-version;</para>
- </listitem>
+ </listitem>-->
<!--<listitem>
<para>DejaGNU-&dejagnu-version;</para>
</listitem>-->
- <listitem revision="systemd">
+ <!--<listitem revision="systemd">
<para>D-Bus-&dbus-version;</para>
- </listitem>
+ </listitem>-->
<!--<listitem>
<para>Diffutils-&diffutils-version;</para>
</listitem>-->
- <listitem>
+ <!--<listitem>
<para>E2fsprogs-&e2fsprogs-version;</para>
- </listitem>
+ </listitem>-->
<!--<listitem revision="sysv">
<para>Eudev-&eudev-version;</para>
</listitem>-->
@@ -89,81 +89,81 @@
<!--<listitem>
<para>Flex-&flex-version;</para>
</listitem>-->
- <!--<listitem>
- <para>Gawk-&gawk-version;</para>
- </listitem>-->
<listitem>
- <para>GCC-&gcc-version;</para>
+ <para>Gawk-&gawk-version;</para>
</listitem>
<!--<listitem>
+ <para>GCC-&gcc-version;</para>
+ </listitem>-->
+ <!--<listitem>
<para>GDBM-&gdbm-version;</para>
</listitem>-->
<!--<listitem>
<para>Gettext-&gettext-version;</para>
</listitem>-->
- <listitem>
+ <!--<listitem>
<para>Glibc-&glibc-version;</para>
- </listitem>
+ </listitem>-->
<!--<listitem>
<para>GMP-&gmp-version;</para>
</listitem>-->
<!--<listitem>
<para>Gperf-&gperf-version;</para>
</listitem>-->
- <!--<listitem>
+ <listitem>
<para>Grep-&grep-version;</para>
- </listitem>-->
+ </listitem>
<!--<listitem>
<para>Groff-&groff-version;</para>
</listitem>-->
<!--<listitem>
<para>GRUB-&grub-version;</para>
</listitem>-->
- <listitem>
+ <!--<listitem>
<para>Gzip-&gzip-version;</para>
- </listitem>
- <listitem>
+ </listitem>-->
+ <!--<listitem>
<para>IANA-Etc-&iana-etc-version;</para>
- </listitem>
- <listitem>
+ </listitem>-->
+ <!--<listitem>
<para>Inetutils-&inetutils-version;</para>
- </listitem>
+ </listitem>-->
<!--<listitem>
<para>Intltool-&intltool-version;</para>
</listitem>-->
- <listitem>
+ <!--<listitem>
<para>IPRoute2-&iproute2-version;</para>
- </listitem>
- <listitem revision="systemd">
+ </listitem>-->
+ <!--<listitem revision="systemd">
<para>Jinja2-&jinja2-version;</para>
- </listitem>
- <listitem>
+ </listitem>-->
+ <!--<listitem>
<para>Kbd-&kbd-version;</para>
- </listitem>
- <listitem>
- <para>Kmod-&kmod-version;</para>
- </listitem>
+ </listitem>-->
<!--<listitem>
- <para>Less-&less-version;</para>
+ <para>Kmod-&kmod-version;</para>
</listitem>-->
+ <listitem>
+ <para>Less-&less-version;</para>
+ </listitem>
<!--<listitem>
<para>LFS-Bootscripts-&lfs-bootscripts-version;</para>
</listitem>-->
- <listitem>
+ <!--<listitem>
<para>Libcap-&libcap-version;</para>
- </listitem>
- <listitem>
+ </listitem>-->
+ <!--<listitem>
<para>Libelf-&elfutils-version; (from elfutils)</para>
- </listitem>
+ </listitem>-->
<!--<listitem>
<para>Libffi-&libffi-version;</para>
</listitem>-->
- <listitem>
+ <!--<listitem>
<para>Libpipeline-&libpipeline-version;</para>
- </listitem>
- <listitem>
+ </listitem>-->
+ <!--<listitem>
<para>Libtool-&libtool-version;</para>
- </listitem>
+ </listitem>-->
<listitem>
<para>Linux-&linux-version;</para>
</listitem>
@@ -173,15 +173,15 @@
<!--<listitem>
<para>Make-&make-version;</para>
</listitem>-->
- <listitem>
+ <!--<listitem>
<para>Man-DB-&man-db-version;</para>
- </listitem>
+ </listitem>-->
<!--<listitem>
<para>Man-pages-&man-pages-version;</para>
</listitem>-->
- <listitem revision="systemd">
+ <!--<listitem revision="systemd">
<para>MarkupSafe-&markupsafe-version;</para>
- </listitem>
+ </listitem>-->
<listitem>
<para>Meson-&meson-version;</para>
</listitem>
@@ -197,24 +197,24 @@
<listitem>
<para>Ninja-&ninja-version;</para>
</listitem>
- <listitem>
+ <!--<listitem>
<para>Openssl-&openssl-version;</para>
- </listitem>
+ </listitem>-->
<!--<listitem>
<para>Patch-&patch-version;</para>
</listitem>-->
- <listitem>
+ <!--<listitem>
<para>Perl-&perl-version;</para>
- </listitem>
+ </listitem>-->
<!--<listitem>
<para>Pkg-config-&pkgconfig-version;</para>
</listitem>-->
- <listitem>
+ <!--<listitem>
<para>Procps-ng-&procps-ng-version;</para>
- </listitem>
- <listitem>
+ </listitem>-->
+ <!--<listitem>
<para>Psmisc-&psmisc-version;</para>
- </listitem>
+ </listitem>-->
<listitem>
<para>Python-&python-version;</para>
</listitem>
@@ -230,12 +230,12 @@
<!--<listitem revision="sysv">
<para>Sysklogd-&sysklogd-version;</para>
</listitem>-->
- <listitem revision="systemd">
+ <!--<listitem revision="systemd">
<para>Systemd-&systemd-version;</para>
- </listitem>
- <listitem revision="sysv">
+ </listitem>-->
+ <!--<listitem revision="sysv">
<para>SysVinit-&sysvinit-version;</para>
- </listitem>
+ </listitem>-->
<!--<listitem>
<para>Tar-&tar-version;</para>
</listitem>-->
@@ -245,24 +245,24 @@
<!--<listitem>
<para>Texinfo-&texinfo-version;</para>
</listitem>-->
- <listitem>
+ <!--<listitem>
<para>Tzdata-&tzdata-version;</para>
- </listitem>
- <listitem>
+ </listitem>-->
+ <!--<listitem>
<para>Util-Linux-&util-linux-version;</para>
- </listitem>
- <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>-->
@@ -280,33 +280,19 @@
<itemizedlist>
<title>Added:</title>
<listitem><para></para></listitem> <!-- satisfy build -->
- <listitem>
- <para>Wheel-&wheel-version;</para>
- </listitem>
-<!--
- <listitem>
+
+ <!--<listitem>
<para>&xz-upstream-fix-patch;</para>
- </listitem>
--->
- <listitem>
- <para>&zstd-upstream-fixes-patch;</para>
- </listitem>
+ </listitem>-->
</itemizedlist>
<itemizedlist>
<title>Removed:</title>
<listitem><para></para></listitem> <!-- satisfy build -->
- <listitem>
+ <!--<listitem>
<para>perl-5.34.0-upstream_fixes-1.patch</para>
- </listitem>
- <listitem>
- <para>systemd-250-kernel_5.17_fixes-1.patch</para>
- </listitem>
- <listitem>
- <para>systemd-250-upstream_fixes-1.patch</para>
- </listitem>
-
+ </listitem>-->
</itemizedlist>
</sect1>
diff --git a/chapter02/creatingfilesystem.xml b/chapter02/creatingfilesystem.xml
index 12529ce8c..bd442d5e2 100644
--- a/chapter02/creatingfilesystem.xml
+++ b/chapter02/creatingfilesystem.xml
@@ -10,10 +10,19 @@
<title>Creating a File System on the Partition</title>
- <para>Now that a blank partition has been set up, the file system can be
- created. LFS can use any file system recognized by the Linux kernel, but the
- most common types are ext3 and ext4. The choice of file system can be
- complex and depends on the characteristics of the files and the size of
+ <para>A partition is just a range of sectors on a disk drive, delimited by
+ boundaries set in a partition table. Before the operating system can use
+ a blank partition, the partition must be formatted to contain a file
+ system, typically consisting of a label, directory blocks, data blocks, and
+ an indexing scheme to locate a particular file on demand. The file system
+ also helps the OS keep track of free space on the partition, reserve the
+ needed sectors when a new file is created or an existing file is extended,
+ and recycle the free data segments created when files are deleted. It may
+ also provide support for data redundancy, and for error recovery.</para>
+
+ <para>LFS can use any file system recognized by the Linux kernel, but the
+ most common types are ext3 and ext4. The choice of the right file system can be
+ complex; it depends on the characteristics of the files and the size of
the partition. For example:</para>
<variablelist>
@@ -33,22 +42,22 @@
</varlistentry>
<varlistentry>
<term>ext4</term>
- <listitem><para>is the latest version of the ext file system family of
- partition types. It provides several new capabilities including
- nano-second timestamps, creation and use of very large files (16 TB), and
- speed improvements.</para>
+ <listitem><para>is the latest version of the ext family of
+ file systems. It provides several new capabilities including
+ nano-second timestamps, creation and use of very large files
+ (up to 16 TB), and speed improvements.</para>
</listitem>
</varlistentry>
</variablelist>
<para>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 <ulink
- url="http://en.wikipedia.org/wiki/Comparison_of_file_systems"/>.</para>
+ useful for specialized purposes. More information about these file systems,
+ and many others, can be found at <ulink
+ url="https://en.wikipedia.org/wiki/Comparison_of_file_systems"/>.</para>
- <para>LFS assumes that the root file system (/) is of type ext4. To create
+ <para>LFS assumes that the root file system (/) is of type ext4. To create
an <systemitem class="filesystem">ext4</systemitem> file system on the LFS
- partition, run the following:</para>
+ partition, issue the following command:</para>
<screen role="nodump"><userinput>mkfs -v -t ext4 /dev/<replaceable>&lt;xxx&gt;</replaceable></userinput></screen>
diff --git a/chapter02/creatingpartition.xml b/chapter02/creatingpartition.xml
index c532bdb15..d5429ad7c 100644
--- a/chapter02/creatingpartition.xml
+++ b/chapter02/creatingpartition.xml
@@ -94,10 +94,10 @@
<para>Swapping is never good. For mechanical hard drives you can generally
tell if a system is swapping by just listening to disk activity and
- observing how the system reacts to commands. For an SSD drive you will not
- be able to hear swapping but you can tell how much swap space is being used
- by the <command>top</command> or <command>free</command> programs. Use of
- an SSD drive for a swap partition should be avoided if possible. The first
+ observing how the system reacts to commands. With an SSD you will not
+ be able to hear swapping, but you can tell how much swap space is being used
+ by running the <command>top</command> or <command>free</command> programs. Use of
+ an SSD for a swap partition should be avoided if possible. The first
reaction to swapping should be to check for an unreasonable command such as
trying to edit a five gigabyte file. If swapping becomes a normal
occurrence, the best solution is to purchase more RAM for your
@@ -112,12 +112,12 @@
must be available for GRUB to use during installation of the boot
loader. This partition will normally be labeled 'BIOS Boot' if using
<command>fdisk</command> or have a code of <emphasis>EF02</emphasis> if
- using <command>gdisk</command>.</para>
+ using the <command>gdisk</command> command.</para>
<note><para>The Grub Bios partition must be on the drive that the BIOS
- uses to boot the system. This is not necessarily the same drive where the
- LFS root partition is located. Disks on a system may use different
- partition table types. The requirement for this partition depends
+ uses to boot the system. This is not necessarily the drive that holds
+ the LFS root partition. The disks on a system may use different
+ partition table types. The necessity of the Grub Bios partition depends
only on the partition table type of the boot disk.</para></note>
</sect3>
@@ -133,7 +133,7 @@
<listitem><para>/boot &ndash; Highly recommended. Use this partition to
store kernels and other booting information. To minimize potential boot
problems with larger disks, make this the first physical partition on
- your first disk drive. A partition size of 200 megabytes is quite
+ your first disk drive. A partition size of 200 megabytes is
adequate.</para></listitem>
<listitem><para>/boot/efi &ndash; The EFI System Partition, which is
@@ -150,41 +150,50 @@
<filename class="directory">/bin</filename>,
<filename class="directory">/lib</filename>, and
<filename class="directory">/sbin</filename> are symlinks to their
- counterpart in <filename class="directory">/usr</filename>.
- So <filename class="directory">/usr</filename> contains all binaries
+ counterparts in <filename class="directory">/usr</filename>.
+ So <filename class="directory">/usr</filename> contains all the binaries
needed for the system to run. For LFS a separate partition for
<filename class="directory">/usr</filename> is normally not needed.
- If you need it anyway, you should make a partition large enough to
- fit all programs and libraries in the system. The root partition can be
+ If you create it anyway, you should make a partition large enough to
+ fit all the programs and libraries in the system. The root partition can be
very small (maybe just one gigabyte) in this configuration, so it's
suitable for a thin client or diskless workstation (where
<filename class="directory">/usr</filename> is mounted from a remote
- server). However you should take care that an initramfs (not covered by
- LFS) will be needed to boot a system with separate
+ server). However, you should be aware that an initramfs (not covered by
+ LFS) will be needed to boot a system with a separate
<filename class="directory">/usr</filename> partition.</para></listitem>
<listitem><para>/opt &ndash; This directory is most useful for
- BLFS where multiple installations of large packages like Gnome or KDE can
+ BLFS, where multiple large packages like KDE or Texlive can
be installed without embedding the files in the /usr hierarchy. If
used, 5 to 10 gigabytes is generally adequate.</para>
</listitem>
- <listitem><para>/tmp &ndash; A separate /tmp directory is rare, but
- useful if configuring a thin client. This partition, if used, will
- usually not need to exceed a couple of gigabytes.</para></listitem>
+ <listitem revision='sysv'><para>/tmp &ndash; A separate /tmp directory
+ is rare, but useful if configuring a thin client. This partition, if
+ used, will usually not need to exceed a couple of
+ gigabytes. If you have enough RAM, you can mount a
+ <systemitem class='filesystem'>tmpfs</systemitem> on /tmp to make
+ access to temporary files faster.</para></listitem>
+
+ <listitem revision='systemd'><para>/tmp &ndash; By default, systemd
+ mounts a <systemitem class='filesystem'>tmpfs</systemitem> here.
+ If you want to override that behavior, follow
+ <xref linkend='systemd-no-tmpfs'/> when configuring the LFS
+ system.</para></listitem>
<listitem><para>/usr/src &ndash; This partition is very
useful for providing a location to store BLFS source files and
- share them across LFS builds. It can also be used as a location
- for building BLFS packages. A reasonably large partition of 30-50
- gigabytes allows plenty of room.</para></listitem>
+ share them across LFS builds. It can also be used as a location
+ for building BLFS packages. A reasonably large partition of 30-50
+ gigabytes provides plenty of room.</para></listitem>
</itemizedlist>
- <para>Any separate partition that you want automatically mounted upon boot
- needs to be specified in the <filename>/etc/fstab</filename>. Details
- about how to specify partitions will be discussed in <xref
- linkend="ch-bootable-fstab"/>. </para>
+ <para>Any separate partition that you want automatically mounted when the
+ system starts must be specified in the <filename>/etc/fstab</filename> file.
+ Details about how to specify partitions will be discussed in <xref
+ linkend="ch-bootable-fstab"/>.</para>
</sect3>
</sect2>
diff --git a/chapter02/hostreqs.xml b/chapter02/hostreqs.xml
index 1fb05af24..2f2d75499 100644
--- a/chapter02/hostreqs.xml
+++ b/chapter02/hostreqs.xml
@@ -36,7 +36,7 @@
<listitem>
<para><emphasis role="strong">Bison-2.7</emphasis> (/usr/bin/yacc
- should be a link to bison or small script that executes bison)</para>
+ should be a link to bison or a small script that executes bison)</para>
</listitem>
<listitem>
diff --git a/chapter02/mounting.xml b/chapter02/mounting.xml
index a4408c94f..69a52c04d 100644
--- a/chapter02/mounting.xml
+++ b/chapter02/mounting.xml
@@ -10,24 +10,23 @@
<title>Mounting the New Partition</title>
- <para>Now that a file system has been created, the partition needs to
- 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
- <envar>LFS</envar> environment variable as described in the previous section.
+ <para>Now that a file system has been created, the partition must
+ be mounted so the host system can access it. This book assumes that
+ the file system is mounted at the directory specified by the
+ <envar>LFS</envar> environment variable described in the previous section.
</para>
- <para>Create the mount point and mount the LFS file system by running:</para>
+ <para>Create the mount point and mount the LFS file system with these commands:</para>
<screen role="nodump"><userinput>mkdir -pv $LFS
mount -v -t ext4 /dev/<replaceable>&lt;xxx&gt;</replaceable> $LFS</userinput></screen>
- <para>Replace <replaceable>&lt;xxx&gt;</replaceable> with the designation of the LFS
+ <para>Replace <replaceable>&lt;xxx&gt;</replaceable> with the name of the LFS
partition.</para>
- <para>If using multiple partitions for LFS (e.g., one for <filename
- class="directory">/</filename> and another for <filename
- class="directory">/home</filename>), mount them using:</para>
+ <para>If you are using multiple partitions for LFS (e.g., one for
+ <filename class="directory">/</filename> and another for <filename
+ class="directory">/home</filename>), mount them like this:</para>
<screen role="nodump"><userinput>mkdir -pv $LFS
mount -v -t ext4 /dev/<replaceable>&lt;xxx&gt;</replaceable> $LFS
@@ -43,13 +42,14 @@ mount -v -t ext4 /dev/<replaceable>&lt;yyy&gt;</replaceable> $LFS/home</userinpu
<option>nodev</option> options). Run the <command>mount</command> command
without any parameters to see what options are set for the mounted LFS
partition. If <option>nosuid</option> and/or <option>nodev</option> are set,
- the partition will need to be remounted.</para>
+ the partition must be remounted.</para>
- <warning><para>The above instructions assume that you will not be restarting
+ <warning><para>The above instructions assume that you will not restart
your computer throughout the LFS process. If you shut down your system,
you will either need to remount the LFS partition each time you restart
- the build process or modify your host system's /etc/fstab file to automatically
- remount it upon boot. For example:
+ the build process, or modify the host system's /etc/fstab file to automatically
+ remount it when you reboot. For example, you might add this line to your
+ /etc/fstab file:
<screen role="nodump">/dev/<replaceable>&lt;xxx&gt;</replaceable> /mnt/lfs ext4 defaults 1 1</screen>
@@ -67,7 +67,7 @@ mount -v -t ext4 /dev/<replaceable>&lt;yyy&gt;</replaceable> $LFS/home</userinpu
<para>Replace <replaceable>&lt;zzz&gt;</replaceable> with the name of the
<systemitem class="filesystem">swap</systemitem> partition.</para>
- <para>Now that there is an established place to work, it is time to
+ <para>Now that the new LFS partition is open for business, it's time to
download the packages.</para>
</sect1>
diff --git a/chapter02/stages.xml b/chapter02/stages.xml
index 7c151975f..036cd34cc 100644
--- a/chapter02/stages.xml
+++ b/chapter02/stages.xml
@@ -34,7 +34,7 @@
</sect2>
<sect2>
- <title>Chapter&nbsp;5&ndash;6</title>
+ <title>Chapters&nbsp;5&ndash;6</title>
<itemizedlist>
<listitem>
@@ -44,8 +44,8 @@
<listitem>
<para>These two chapters <emphasis>must</emphasis> be done as user
<systemitem class="username">lfs</systemitem>.
- A <command>su - lfs</command> needs to be done before any task in these
- chapters. Failing to do that, you are at risk of installing packages to the
+ A <command>su - lfs</command> command must be issued before 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>
@@ -54,13 +54,13 @@
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
- instructions in that section.</para>
+ the instructions in that section.</para>
</listitem>
</itemizedlist>
</sect2>
<sect2>
- <title>Chapter&nbsp;7&ndash;10</title>
+ <title>Chapters&nbsp;7&ndash;10</title>
<itemizedlist>
<listitem>
@@ -69,7 +69,7 @@
<listitem>
<para>A few operations, from <quote>Changing Ownership</quote> to
- <quote>Entering the Chroot Environment</quote> must be done as the
+ <quote>Entering the Chroot Environment</quote>, must be done as the
<systemitem class="username">root</systemitem> user, with the LFS
environment variable set for the &root; user.</para>
</listitem>
@@ -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 afterwards.</para>
+ variable is not used after entering the chroot environment.</para>
</listitem>
<listitem>
diff --git a/chapter03/introduction.xml b/chapter03/introduction.xml
index 76fd5ee12..1a69187a2 100644
--- a/chapter03/introduction.xml
+++ b/chapter03/introduction.xml
@@ -13,17 +13,17 @@
<para>This chapter includes a list of packages that need to be downloaded in
order to build a basic Linux system. The listed version numbers correspond to
versions of the software that are known to work, and this book is based on
- their use. We highly recommend against using different versions because the build
+ their use. We highly recommend against using different versions, because the build
commands for one version may not work with a different version, unless the
- different version is specified by a LFS errata or security advisory.
+ different version is specified by an LFS erratum or security advisory.
The newest package versions may also have problems that require
work-arounds. These work-arounds will be developed and stabilized in the
development version of the book.</para>
<para>For some packages, the release tarball and the (Git or SVN)
- repository snapshot tarball for this release may be published with
- similar file name. A release tarball contains generated files (for
- example, <command>configure</command> script generated by
+ repository snapshot tarball for that release may be published with
+ similar file names. A release tarball contains generated files (for
+ example, a <command>configure</command> script generated by
<command>autoconf</command>), in addition to the contents of the
corresponding repository snapshot. The book uses release tarballs
whenever possible. Using a repository snapshot instead of a release
@@ -31,7 +31,7 @@
<para>Download locations may not always be accessible. If a download
location has changed since this book was published, Google (<ulink
- url="http://www.google.com/"/>) provides a useful search engine for
+ url="https://www.google.com/"/>) provides a useful search engine for
most packages. If this search is unsuccessful, try one of the
alternative means of downloading at <ulink
url="&lfs-root;lfs/mirrors.html#files"/>. </para>
@@ -69,7 +69,7 @@
</listitem>
<listitem>
<para>For stable versions of the book, a tarball of all the needed files
- can be downloaded from one of the LFS files mirrors listed at
+ can be downloaded from one of the mirror sites listed at
<ulink url="https://www.linuxfromscratch.org/mirrors.html#files"/>.</para>
</listitem>
<listitem>
diff --git a/chapter03/packages.xml b/chapter03/packages.xml
index aa927e60a..244c1ed2c 100644
--- a/chapter03/packages.xml
+++ b/chapter03/packages.xml
@@ -20,9 +20,9 @@
reachable, you should read the security advisories first to figure out
if a newer version (with the vulnerability fixed) should be used. If
not, try to download the removed package from a mirror. Although it's
- possible to download an old release from a mirror even if this release
- has been removed because of a vulnerability, it's not recommended to
- use a release known to be vulnerable for building your system.</para>
+ possible to download an old release from a mirror even if this release
+ has been removed because of a vulnerability, it's not recommended to
+ use a release known to be vulnerable for building your system.</para>
</note>
<para>Download or otherwise obtain the following packages:</para>
diff --git a/chapter04/settingenviron.xml b/chapter04/settingenviron.xml
index b0c3441e5..bac551e19 100644
--- a/chapter04/settingenviron.xml
+++ b/chapter04/settingenviron.xml
@@ -186,7 +186,7 @@ EOF</userinput></screen>
<para>After use of the <systemitem class="username">lfs</systemitem>
user is finished at the beginning of <xref
linkend="chapter-chroot-temporary-tools"/>, you can restore
- <filename>/etc/bash.bashrc</filename> (if desired).</para>
+ <filename>/etc/bash.bashrc</filename> (if desired).</para>
<para>Note that the LFS Bash package we will build in
<xref linkend="ch-system-bash"/> is not configured to load or execute
diff --git a/chapter05/gcc-pass1.xml b/chapter05/gcc-pass1.xml
index cc4ca3913..bc875215b 100644
--- a/chapter05/gcc-pass1.xml
+++ b/chapter05/gcc-pass1.xml
@@ -83,6 +83,8 @@ cd build</userinput></screen>
--with-sysroot=$LFS \
--with-newlib \
--without-headers \
+ --enable-default-pie \
+ --enable-default-ssp \
--disable-nls \
--disable-shared \
--disable-multilib \
@@ -129,6 +131,20 @@ cd build</userinput></screen>
</varlistentry>
<varlistentry>
+ <term><parameter>--enable-default-pie and
+ --enable-default-ssp</parameter></term>
+ <listitem>
+ <para>Those switches allow GCC to compile programs with
+ some hardening security features (more information on those in
+ the <xref linkend="pie-ssp-info"/> in chapter 8) by default. The
+ are not strictly needed at this stage, since the compiler will
+ only produce temporary executables. But it is cleaner to have the
+ temporary packages be as close as possible to the final ones.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
<term><parameter>--disable-shared</parameter></term>
<listitem>
<para>This switch forces GCC to link its internal libraries
diff --git a/chapter06/gcc-pass2.xml b/chapter06/gcc-pass2.xml
index 8d3a9449c..73f0b82c9 100644
--- a/chapter06/gcc-pass2.xml
+++ b/chapter06/gcc-pass2.xml
@@ -87,6 +87,8 @@ cd build</userinput></screen>
LDFLAGS_FOR_TARGET=-L$PWD/$LFS_TGT/libgcc \
--prefix=/usr \
--with-build-sysroot=$LFS \
+ --enable-default-pie \
+ --enable-default-ssp \
--disable-nls \
--disable-multilib \
--disable-decimal-float \
diff --git a/chapter07/cleanup.xml b/chapter07/cleanup.xml
index 6ed78fb93..2a83e2d62 100644
--- a/chapter07/cleanup.xml
+++ b/chapter07/cleanup.xml
@@ -18,10 +18,10 @@
<screen><userinput>rm -rf /usr/share/{info,man,doc}/*</userinput></screen>
- <para>Second, the libtool .la files are only useful when linking with static
- libraries. They are unneeded and potentially harmful when using dynamic
- shared libraries, especially when using non-autotools build systems.
- While still in chroot, remove those files now:</para>
+ <para>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:</para>
<screen><userinput>find /usr/{lib,libexec} -name \*.la -delete</userinput></screen>
@@ -95,7 +95,8 @@
<para>Before making a backup, unmount the virtual file systems:</para>
-<screen role="nodump"><userinput>umount $LFS/dev/pts
+<screen role="nodump"><userinput>mountpoint -q $LFS/dev/shm &amp;&amp; umount $LFS/dev/shm
+umount $LFS/dev/pts
umount $LFS/{sys,proc,run,dev}</userinput></screen>
<para>
diff --git a/chapter07/createfiles.xml b/chapter07/createfiles.xml
index eda30ed2e..ca7de3802 100644
--- a/chapter07/createfiles.xml
+++ b/chapter07/createfiles.xml
@@ -48,8 +48,8 @@
as well:</para>
<screen><userinput>cat &gt; /etc/hosts &lt;&lt; EOF
-127.0.0.1 localhost $(hostname)
-::1 localhost
+<literal>127.0.0.1 localhost $(hostname)
+::1 localhost</literal>
EOF</userinput></screen>
<para>In order for user <systemitem class="username">root</systemitem> to be
@@ -162,7 +162,7 @@ EOF</userinput></screen>
9, and in part by common convention 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 <ulink
- url="http://refspecs.linuxfoundation.org/lsb.shtml"/>) only recommends that,
+ url="https://refspecs.linuxfoundation.org/lsb.shtml"/>) only recommends that,
besides the group <systemitem class="groupname">root</systemitem> with a
Group ID (GID) of 0, a group <systemitem class="groupname">bin</systemitem>
with a GID of 1 be present. The GID of 5 is widely used for
diff --git a/chapter07/kernfs.xml b/chapter07/kernfs.xml
index 64db54c24..c9721113d 100644
--- a/chapter07/kernfs.xml
+++ b/chapter07/kernfs.xml
@@ -89,8 +89,15 @@ mount -vt tmpfs tmpfs $LFS/run</userinput></screen>
The /run tmpfs was mounted above so in this case only a
directory needs to be created.</para>
+ <para>In other cases <filename>/dev/shm</filename> is a mountpoint
+ for a tmpfs. In that case the mount of /dev above will only create
+ /dev/shm in the chroot environment as a directory. In this situation
+ we explicitly mount a tmpfs,</para>
+
<screen><userinput>if [ -h $LFS/dev/shm ]; then
mkdir -pv $LFS/$(readlink $LFS/dev/shm)
+else
+ mount -t tmpfs -o nosuid,nodev tmpfs $LFS/dev/shm
fi</userinput></screen>
</sect2>
diff --git a/chapter08/binutils.xml b/chapter08/binutils.xml
index bb0953f53..7b4706fa0 100644
--- a/chapter08/binutils.xml
+++ b/chapter08/binutils.xml
@@ -167,13 +167,24 @@ cd build</userinput></screen>
condition.
</para>
+ <para>Twelve tests fail in the <command>gold</command> testsuite when the
+ <option>--enable-default-pie</option> and
+ <option>--enable-default-ssp</option> options are passed to GCC.
+ <!-- Caused by egrep deprecation. Note that we don't "patch" temp grep.
+ And it seems unworthy to add a sed into temp grep just for one test
+ failure. (I don't really agree to "patch" grep in the first place,
+ anyway.) -->
+ The test named <filename>ar with versioned solib</filename> is also
+ known to fail.</para>
+
<para>Install the package:</para>
<screen><userinput remap="install">make tooldir=/usr install</userinput></screen>
- <para>Remove useless static libraries:</para>
+ <para>Remove useless static libraries and an empty man page:</para>
-<screen><userinput remap="install">rm -fv /usr/lib/lib{bfd,ctf,ctf-nobfd,opcodes}.a</userinput></screen>
+<screen><userinput remap="install">rm -fv /usr/lib/lib{bfd,ctf,ctf-nobfd,opcodes}.a
+rm -fv /usr/share/man/man1/gprofng.1</userinput></screen>
</sect2>
diff --git a/chapter08/cleanup.xml b/chapter08/cleanup.xml
index 4820e6bdb..c55b7af2f 100644
--- a/chapter08/cleanup.xml
+++ b/chapter08/cleanup.xml
@@ -16,10 +16,10 @@
<para>There are also several files installed in the /usr/lib and /usr/libexec
directories with a file name extension of .la. These are "libtool archive"
- files. As already said, they are only useful when linking with static
- libraries. They are unneeded, and potentially harmful, when using dynamic
- shared libraries, specially when using also non-autotools build systems.
- To remove them, run:</para>
+ files. As already said, 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:</para>
<screen><userinput>find /usr/lib /usr/libexec -name \*.la -delete</userinput></screen>
diff --git a/chapter08/eudev.xml b/chapter08/eudev.xml
index efaba9d30..0cce469e1 100644
--- a/chapter08/eudev.xml
+++ b/chapter08/eudev.xml
@@ -39,16 +39,12 @@
<sect2 role="installation">
<title>Installation of Eudev</title>
-<!--
- <para>First, fix a test script:</para>
-<screen><userinput remap="pre">sed -r -i 's|/usr(/bin/test)|\1|' test/udev-test.pl</userinput></screen>
--->
-<!--
- <para>Next, remove an unneeded line that causes a build failure:</para>
+
-<screen><userinput remap="pre">sed -i '/keyboard_lookup_key/d' src/udev/udev-builtin-keyboard.c</userinput></screen>
--->
+ <para>First fix the location of udev rules in the .pc file:</para>
+
+<screen><userinput remap="pre">sed -i '/udevdir/a udev_dir=${udevdir}' src/udev/udev.pc.in</userinput></screen>
<para>Prepare Eudev for compilation:</para>
diff --git a/chapter08/gawk.xml b/chapter08/gawk.xml
index 4c8ecc265..9979e32de 100644
--- a/chapter08/gawk.xml
+++ b/chapter08/gawk.xml
@@ -44,6 +44,10 @@
<screen><userinput remap="pre">sed -i 's/extras//' Makefile.in</userinput></screen>
+ <para>Now fix a programming error identified upstream:</para>
+
+<screen><userinput remap="pre">sed -i '241i UPREF(m);' interpret.h</userinput></screen>
+
<para>Prepare Gawk for compilation:</para>
<screen><userinput remap="configure">./configure --prefix=/usr</userinput></screen>
diff --git a/chapter08/gcc.xml b/chapter08/gcc.xml
index e6df2fa79..52640ce39 100644
--- a/chapter08/gcc.xml
+++ b/chapter08/gcc.xml
@@ -70,6 +70,8 @@ cd build</userinput></screen>
<screen><userinput remap="configure">../configure --prefix=/usr \
LD=ld \
--enable-languages=c,c++ \
+ --enable-default-pie \
+ --enable-default-ssp \
--disable-multilib \
--disable-bootstrap \
--with-system-zlib</userinput></screen>
@@ -100,13 +102,34 @@ cd build</userinput></screen>
</varlistentry>
</variablelist>
+ <note>
+ <anchor id="pie-ssp-info" xreflabel="note on PIE and SSP"/>
+ <para>
+ PIE (position-independent executable) is a technique to produce
+ binary programs that can be loaded anywhere in memory. Without PIE,
+ the security feature named ASLR (Address Space Layout Randomization)
+ can be applied for the shared libraries, but not the executable
+ itself. Enabling PIE allows ASLR for the executables in addition to
+ the shared libraries, and mitigates some attacks based on fixed
+ addresses of sensitive code or data in the executables.
+ </para>
+ <para>
+ SSP (Stack Smashing Protection) is a technique to ensure
+ that the parameter stack is not corrupted. Stack corruption can
+ for example alter the return address of a subroutine,
+ which would allow transferring control to some dangerous code
+ (existing in the program or shared libraries, or injected by the
+ attacker somehow) instead of the original one.
+ </para>
+ </note>
+
<para>Compile the package:</para>
<screen><userinput remap="make">make</userinput></screen>
<important>
<para>In this section, the test suite for GCC is considered
- important, but it takes a long time. First time builders are
+ important, but it takes a long time. First time builders are
encouraged to not skip it. The time to run the tests can be
reduced significantly by adding -jx to the make command below
where x is the number of cores on your system.</para>
@@ -133,6 +156,10 @@ su tester -c "PATH=$PATH make -k check"</userinput></screen>
url="&test-results;"/> and
<ulink url="https://gcc.gnu.org/ml/gcc-testresults/"/>.</para>
+ <para>In gcc, eleven tests, in the i386 test suite are known to FAIL.
+ It's because the test files do not account for the
+ <parameter>--enable-default-pie</parameter> option.</para>
+
<para>In g++, four tests related to PR100400 are known to be reported
as both XPASS and FAIL. It's because the test file for this known issue
is not well written.</para>
@@ -210,11 +237,11 @@ readelf -l a.out | grep ': /lib'</userinput></screen>
<para>Now make sure that we're setup to use the correct start files:</para>
-<screen><userinput>grep -o '/usr/lib.*/crt[1in].*succeeded' dummy.log</userinput></screen>
+<screen><userinput>grep -E -o '/usr/lib.*/S?crt[1in].*succeeded' dummy.log</userinput></screen>
<para>The output of the last command should be:</para>
-<screen><computeroutput>/usr/lib/gcc/aarch64-unknown-linux-gnu/&gcc-version;/../../../../lib/crt1.o succeeded
+<screen><computeroutput>/usr/lib/gcc/aarch64-unknown-linux-gnu/&gcc-version;/../../../../lib/Scrt1.o succeeded
/usr/lib/gcc/aarch64-unknown-linux-gnu/&gcc-version;/../../../../lib/crti.o succeeded
/usr/lib/gcc/aarch64-unknown-linux-gnu/&gcc-version;/../../../../lib/crtn.o succeeded</computeroutput></screen>
@@ -572,7 +599,8 @@ mv -v /usr/lib/*gdb.py /usr/share/gdb/auto-load/usr/lib</userinput></screen>
<term><filename class="libraryfile">libssp</filename></term>
<listitem>
<para>Contains routines supporting GCC's stack-smashing protection
- functionality</para>
+ functionality. Normally it's unused because glibc also provides
+ those routines</para>
<indexterm zone="ch-system-gcc libssp">
<primary sortas="c-libssp">libssp</primary>
</indexterm>
diff --git a/chapter08/gettext.xml b/chapter08/gettext.xml
index cafe26182..08b960d44 100644
--- a/chapter08/gettext.xml
+++ b/chapter08/gettext.xml
@@ -62,7 +62,7 @@
<listitem>
<para>Since bison is not yet installed in /usr, configure hardcodes
the directory containing translations for the bison program (the
- "locale" directory) as /tools/share/locale. Passing this variable
+ "locale" directory) as /tools/share/locale. Passing this variable
to make allows overriding the choice made by configure.</para>
</listitem>
</varlistentry>
diff --git a/chapter08/grep.xml b/chapter08/grep.xml
index 33b0896c2..25d598dfe 100644
--- a/chapter08/grep.xml
+++ b/chapter08/grep.xml
@@ -40,6 +40,13 @@
<sect2 role="installation">
<title>Installation of Grep</title>
+ <para>
+ First, remove a warning about using egrep and fgrep that makes
+ tests on some packages fail:
+ </para>
+
+<screen><userinput remap="pre">sed -i "s/echo/#echo/" src/egrep.sh</userinput></screen>
+
<para>Prepare Grep for compilation:</para>
<screen><userinput remap="configure">./configure --prefix=/usr</userinput></screen>
diff --git a/chapter08/groff.xml b/chapter08/groff.xml
index 4929ff71e..64739ac67 100644
--- a/chapter08/groff.xml
+++ b/chapter08/groff.xml
@@ -53,6 +53,8 @@
<screen><userinput remap="configure">PAGE=<replaceable>&lt;paper_size&gt;</replaceable> ./configure --prefix=/usr</userinput></screen>
+ <para>Build the package:</para>
+
<screen><userinput remap="make">make</userinput></screen>
<para>This package does not come with a test suite.</para>
diff --git a/chapter08/libtool.xml b/chapter08/libtool.xml
index 2082c6cf9..e7eeb3ad9 100644
--- a/chapter08/libtool.xml
+++ b/chapter08/libtool.xml
@@ -52,7 +52,7 @@
<para>To test the results<!--(about 11.0 SBU)-->, issue:</para>
-<screen><userinput remap="test">make check</userinput></screen>
+<screen><userinput remap="test">make -k check</userinput></screen>
<note><para>The test time for libtool can be reduced significantly on a
system with multiple cores. To do this, append
@@ -61,8 +61,9 @@
percent.</para></note>
<para>Five tests are known to fail in the LFS build environment due
- to a circular dependency, but all tests pass if rechecked after
- automake is installed.</para>
+ to a circular dependency, but these tests pass if rechecked after
+ automake is installed. Additionally, with grep-3.8, two tests will
+ trigger a warning for non-POSIX regular expressions and fail.</para>
<para>Install the package:</para>
diff --git a/chapter08/meson.xml b/chapter08/meson.xml
index d2132b5a1..0bde43856 100644
--- a/chapter08/meson.xml
+++ b/chapter08/meson.xml
@@ -96,7 +96,7 @@ install -vDm644 data/shell-completions/zsh/_meson /usr/share/zsh/site-functions/
<seglistitem>
<seg>meson</seg>
<seg>
- /usr/lib/python&python-minor;/site-packages/meson-&meson-version;.dist-info and
+ /usr/lib/python&python-minor;/site-packages/meson-&meson-version;.dist-info and
/usr/lib/python&python-minor;/site-packages/mesonbuild
</seg>
</seglistitem>
@@ -108,7 +108,7 @@ install -vDm644 data/shell-completions/zsh/_meson /usr/share/zsh/site-functions/
<?dbhtml list-presentation="table"?>
<varlistentry id="meson">
- <term><command>meson</command></term>
+ <term><command>meson</command></term>
<listitem>
<para>A high productivity build system</para>
<indexterm zone="ch-system-meson meson">
diff --git a/chapter08/ncurses.xml b/chapter08/ncurses.xml
index 31cd65a6c..58221d144 100644
--- a/chapter08/ncurses.xml
+++ b/chapter08/ncurses.xml
@@ -122,7 +122,7 @@
</para>
<!-- To editors: crash of shell process was very rare but really
- observed. We can't simply remove /usr/lib/libncursesw.so.6.x like
+ observed. We can't simply remove /usr/lib/libncursesw.so.6.x like
how we handle libmozjs-xx.so in BLFS because bash needs it, and
make will spawn new shell processes during "make install". -->
@@ -131,8 +131,7 @@
in-place. It may crash the shell process which is using code and data
from the library file. Install the package with
<literal>DESTDIR</literal>, and replace the library file correctly using
- <command>install</command> command. A useless static archive which is
- not handled by <command>configure</command> is also removed:</para>
+ <command>install</command> command:</para>
<screen><userinput remap="install">make DESTDIR=$PWD/dest install
install -vm755 dest/usr/lib/libncursesw.so.&ncurses-version; /usr/lib
@@ -212,6 +211,7 @@ cp -av lib/lib*.so.5* /usr/lib</userinput></screen>
libformw.so,
libmenuw.so,
libncursesw.so,
+ libncurses++w.so,
libpanelw.so, and their non-wide-character counterparts without "w"
in the library names.</seg>
<seg>
@@ -366,6 +366,16 @@ cp -av lib/lib*.so.5* /usr/lib</userinput></screen>
</listitem>
</varlistentry>
+ <varlistentry id="libncurses__w">
+ <term><filename class="libraryfile">libncurses++w</filename></term>
+ <listitem>
+ <para>Contains C++ binding for other libraries in this package</para>
+ <indexterm zone="ch-system-ncurses libncurses__w">
+ <primary sortas="c-libncurses++w">libncurses++w</primary>
+ </indexterm>
+ </listitem>
+ </varlistentry>
+
<varlistentry id="libformw">
<term><filename class="libraryfile">libformw</filename></term>
<listitem>
diff --git a/chapter08/openssl.xml b/chapter08/openssl.xml
index 91e412bae..901bf985c 100644
--- a/chapter08/openssl.xml
+++ b/chapter08/openssl.xml
@@ -43,7 +43,7 @@
<sect2 role="installation">
<title>Installation of OpenSSL</title>
<!--
- <para>First fix a problem with some advanced arcitectures with avx512
+ <para>First fix a problem with some advanced architectures with avx512
capability:</para>
<screen><userinput remap="pre">sed -e '/bn_reduce.*m1/i\ factor_size /= sizeof(BN_ULONG) * 8;' \
diff --git a/chapter08/pkgmgt.xml b/chapter08/pkgmgt.xml
index 27e9c9cda..b925a976f 100644
--- a/chapter08/pkgmgt.xml
+++ b/chapter08/pkgmgt.xml
@@ -283,7 +283,7 @@ make DESTDIR=/usr/pkg/libfoo/1.1 install</userinput></screen>
<para>This approach is used by most of the package managers found in the
commercial distributions. Examples of package managers that follow this
approach are RPM (which, incidentally, is required by the <ulink
- url="http://refspecs.linuxfoundation.org/lsb.shtml">Linux
+ url="https://refspecs.linuxfoundation.org/lsb.shtml">Linux
Standard Base Specification</ulink>), pkg-utils, Debian's apt, and
Gentoo's Portage system. A hint describing how to adopt this style of
package management for LFS systems is located at <ulink
@@ -296,7 +296,7 @@ make DESTDIR=/usr/pkg/libfoo/1.1 install</userinput></screen>
archives. This system purposely does not handle package dependencies
as more complex package managers do. For details of Slackware package
management, see <ulink
- url="http://www.slackbook.org/html/package-management.html"/>.</para>
+ url="https://www.slackbook.org/html/package-management.html"/>.</para>
</sect3>
<sect3>
diff --git a/chapter08/python.xml b/chapter08/python.xml
index 0f50bf6ef..b03817629 100644
--- a/chapter08/python.xml
+++ b/chapter08/python.xml
@@ -116,10 +116,10 @@
well. If desired, suppress these warnings by running the following
commands:</para>
- <screen><userinput remap="install">cat &gt; /etc/pip.conf &lt;&lt; EOF
-[global]
+<screen><userinput remap="install">cat &gt; /etc/pip.conf &lt;&lt; EOF
+<literal>[global]
root-user-action = ignore
-disable-pip-version-check = true
+disable-pip-version-check = true</literal>
EOF
</userinput></screen>
<!--
diff --git a/chapter08/readline.xml b/chapter08/readline.xml
index 72608ac94..889314b14 100644
--- a/chapter08/readline.xml
+++ b/chapter08/readline.xml
@@ -63,9 +63,9 @@ sed -i '/{OLDSUFF}/c:' support/shlib-install</userinput></screen>
<term><parameter>--with-curses</parameter></term>
<listitem>
<para>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
- <filename>readline.pc</filename> file.</para>
+ library functions in the curses library, rather than a separate
+ termcap library. It allows generating a correct
+ <filename>readline.pc</filename> file.</para>
</listitem>
</varlistentry>
diff --git a/chapter08/util-linux.xml b/chapter08/util-linux.xml
index c7c35d1d5..77d09b184 100644
--- a/chapter08/util-linux.xml
+++ b/chapter08/util-linux.xml
@@ -100,7 +100,7 @@
<screen><userinput remap="test">chown -Rv tester .
su tester -c "make -k check"</userinput></screen>
- <para>The <emphasis>hardlink</emphasis> tests will fail if the host's kernel
+ <para>The <emphasis>hardlink</emphasis> tests will fail if the host's kernel
does not have the option CONFIG_CRYPTO_USER_API_HASH set.</para>
<para>Install the package:</para>
diff --git a/chapter08/vim.xml b/chapter08/vim.xml
index 11b5c2565..948650e34 100644
--- a/chapter08/vim.xml
+++ b/chapter08/vim.xml
@@ -167,11 +167,13 @@ EOF</userinput></screen>
<note>
<para>By default, vim only installs spell files for the English language.
- To install spell files for your preferred language, download the
- <filename>*.spl</filename> and optionally, the <filename>*.sug</filename>
- files for your language and character encoding from <ulink
- url="ftp://ftp.vim.org/pub/vim/runtime/spell/"/> and save them to
- <filename class='directory'>/usr/share/&vim-docdir;/spell/</filename>.</para>
+ To install spell files for your preferred language, copy the
+ <filename class='extension'>.spl</filename> and optionally, the
+ <filename class='extension'>.sug</filename> files for your language
+ and character encoding from
+ <filename class='directory'>runtime/spell</filename> into
+ <filename class='directory'>
+ /usr/share/&vim-docdir;/spell/</filename>.</para>
<para>To use these spell files, some configuration in
<filename>/etc/vimrc</filename> is needed, e.g.:</para>
@@ -179,8 +181,8 @@ EOF</userinput></screen>
<screen><literal>set spelllang=en,ru
set spell</literal></screen>
- <para>For more information, see the appropriate README file located
- at the URL above.</para>
+ <para>For more information, see
+ <filename>runtime/spell/README.txt</filename>.</para>
</note>
</sect2>
diff --git a/chapter09/consoled.xml b/chapter09/consoled.xml
index 3abf16e3c..c7e4ab9ad 100644
--- a/chapter09/consoled.xml
+++ b/chapter09/consoled.xml
@@ -23,7 +23,7 @@
<filename>/etc/vconsole.conf</filename> file for configuration
information. Decide which keymap and screen font will be used. Various
language-specific HOWTOs can also help with this, see <ulink
- url="http://www.tldp.org/HOWTO/HOWTO-INDEX/other-lang.html"/>.
+ url="https://tldp.org/HOWTO/HOWTO-INDEX/other-lang.html"/>.
Examine the output of <command>localectl list-keymaps</command> for a list of
valid console keymaps. Look in the
<filename class="directory">/usr/share/consolefonts</filename>
diff --git a/chapter09/systemd-custom.xml b/chapter09/systemd-custom.xml
index 22fb32525..0218b0f23 100644
--- a/chapter09/systemd-custom.xml
+++ b/chapter09/systemd-custom.xml
@@ -46,7 +46,7 @@ EOF</userinput></screen>
</sect2>
- <sect2>
+ <sect2 id='systemd-no-tmpfs'>
<title>Disabling tmpfs for /tmp</title>
<para>By default, <filename class="directory">/tmp</filename> is created as
diff --git a/chapter09/udev.xml b/chapter09/udev.xml
index a2ff35511..435255a19 100644
--- a/chapter09/udev.xml
+++ b/chapter09/udev.xml
@@ -325,7 +325,7 @@
<listitem>
<para>The <systemitem class="filesystem">sysfs</systemitem> Filesystem
- <ulink url="http://www.kernel.org/pub/linux/kernel/people/mochel/doc/papers/ols-2005/mochel.pdf"/></para>
+ <ulink url="https://www.kernel.org/pub/linux/kernel/people/mochel/doc/papers/ols-2005/mochel.pdf"/></para>
</listitem>
<!-- No longer available
diff --git a/chapter09/usage.xml b/chapter09/usage.xml
index 2c6529e14..88c0296d6 100644
--- a/chapter09/usage.xml
+++ b/chapter09/usage.xml
@@ -43,8 +43,8 @@
<note>
<para>
- Classically, run level 2 above was defined as
- "multi-user mode without networking", but this was only the case
+ Classically, run level 2 above was defined as
+ "multi-user mode without networking", but this was only the case
many years ago when multiple users could log into a system connected via
serial ports. In today's environment it makes no sense and
we designate it now as "reserved".
@@ -166,7 +166,7 @@ EOF</userinput></screen>
<parameter>stop</parameter> to stop something. The logic behind this
is that when a user is going to reboot or halt the system, nothing
needs to be started, but the order of shutdown needs to be controlled.
- For these run levels, all <emphasis>K</emphasis> prefixed scripts will be
+ For these run levels, all <emphasis>K</emphasis> prefixed scripts will be
run before any <emphasis>S</emphasis> prefixed scripts are run with the
<parameter>stop</parameter> parameter.
</para>
@@ -334,7 +334,7 @@ EOF</userinput></screen>
<filename>/etc/sysconfig/console</filename> file for configuration
information. Decide which keymap and screen font will be used. Various
language-specific HOWTOs can also help with this, see <ulink
- url="http://www.tldp.org/HOWTO/HOWTO-INDEX/other-lang.html"/>. If still in
+ url="https://tldp.org/HOWTO/HOWTO-INDEX/other-lang.html"/>. If still in
doubt, look in the <filename class="directory">/usr/share/keymaps</filename>
and <filename class="directory">/usr/share/consolefonts</filename> directories
for valid keymaps and screen fonts. Read <filename>loadkeys(1)</filename> and
diff --git a/chapter10/fstab.xml b/chapter10/fstab.xml
index ebfae3aaf..f78b234db 100644
--- a/chapter10/fstab.xml
+++ b/chapter10/fstab.xml
@@ -32,6 +32,7 @@ sysfs /sys sysfs nosuid,noexec,nodev 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
tmpfs /run tmpfs defaults 0 0
devtmpfs /dev devtmpfs mode=0755,nosuid 0 0
+tmpfs /dev/shm tmpfs nosuid,nodev 0 0
# End /etc/fstab</literal>
EOF</userinput></screen>
diff --git a/chapter10/kernel.xml b/chapter10/kernel.xml
index 1c078a63a..2a2d29fc9 100644
--- a/chapter10/kernel.xml
+++ b/chapter10/kernel.xml
@@ -105,19 +105,30 @@
<para>Be sure to enable/disable/set the following features or the system might
not work correctly or boot at all:</para>
- <screen role="nodump" revision="sysv">General setup -->
+ <screen role="nodump" revision="sysv">Processor type and features ---&gt;
+ [*] Build a relocatable kernel [CONFIG_RELOCATABLE]
+ [*] Randomize the address of the kernel image (KASLR) [CONFIG_RANDOMIZE_BASE]
+General setup ---&gt;
[ ] Compile the kernel with warnings as errors [CONFIG_WERROR]
&lt; &gt; Enable kernel headers through /sys/kernel/kheaders.tar.xz [CONFIG_IKHEADERS]
+General architecture-dependent options ---&gt;
+ [*] Stack Protector buffer overflow detection [CONFIG_STACKPROTECTOR]
+ [*] Strong Stack Protector [CONFIG_STACKPROTECTOR_STRONG]
Device Drivers ---&gt;
Graphics support ---&gt;
Frame buffer Devices ---&gt;
- [*] Support for frame buffer devices ----
+ &lt;*&gt; Support for frame buffer devices ---&gt;
+ Console display driver support ---&gt;
+ [*] Framebuffer Console support [CONFIG_FRAMEBUFFER_CONSOLE]
Generic Driver Options ---&gt;
[ ] Support for uevent helper [CONFIG_UEVENT_HELPER]
[*] Maintain a devtmpfs filesystem to mount at /dev [CONFIG_DEVTMPFS]
[*] Automount devtmpfs at /dev, after the kernel mounted the rootfs [CONFIG_DEVTMPFS_MOUNT]</screen>
- <screen role="nodump" revision="systemd">General setup -->
+ <screen role="nodump" revision="systemd">Processor type and features ---&gt;
+ [*] Build a relocatable kernel [CONFIG_RELOCATABLE]
+ [*] Randomize the address of the kernel image (KASLR) [CONFIG_RANDOMIZE_BASE]
+General setup ---&gt;
[ ] Compile the kernel with warnings as errors [CONFIG_WERROR]
[ ] Auditing Support [CONFIG_AUDIT]
CPU/Task time and stats accounting ---&gt;
@@ -130,6 +141,8 @@ Device Drivers ---&gt;
[*] open by fhandle syscalls [CONFIG_FHANDLE]
General architecture-dependent options ---&gt;
[*] Enable seccomp to safely compute untrusted bytecode [CONFIG_SECCOMP]
+ [*] Stack Protector buffer overflow detection [CONFIG_STACKPROTECTOR]
+ [*] Strong Stack Protector [CONFIG_STACKPROTECTOR_STRONG]
Networking support ---&gt;
Networking options ---&gt;
&lt;*&gt; The IPv6 protocol [CONFIG_IPV6]
@@ -145,16 +158,12 @@ Device Drivers ---&gt;
Graphics support ---&gt;
Frame buffer Devices ---&gt;
&lt;*&gt; Support for frame buffer devices ---&gt;
+ Console display driver support ---&gt;
+ [*] Framebuffer Console support [CONFIG_FRAMEBUFFER_CONSOLE]
File systems ---&gt;
[*] Inotify support for userspace [CONFIG_INOTIFY_USER]
Pseudo filesystems ---&gt;
[*] Tmpfs POSIX Access Control Lists [CONFIG_TMPFS_POSIX_ACL]</screen>
-
- <para>Disable a feature which is security compromised in this kernel
- release:</para>
-
- <screen role="nodump">Memory Management options ---&gt;
- [ ] Enable userfaultfd() system call [CONFIG_USERFAULTFD]</screen>
</note>
<note revision="systemd">
@@ -180,6 +189,14 @@ File systems ---&gt;
<title>The rationale for the above configuration items:</title>
<varlistentry>
+ <term><parameter>Randomize the address of the kernel image (KASLR)</parameter></term>
+ <listitem>
+ <para>Enable ASLR for kernel image, to mitigate some attacks based
+ on fixed addresses of sensitive data or code in the kernel.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
<term>
<parameter>
Compile the kernel with warnings as errors
@@ -205,6 +222,16 @@ File systems ---&gt;
</varlistentry>
<varlistentry>
+ <term><parameter>Strong Stack Protector</parameter></term>
+ <listitem>
+ <para>Enable SSP for the kernel. We've enabled it for the entire
+ userspace with <parameter>--enable-default-ssp</parameter>
+ configuring GCC, but the kernel does not use GCC default setting
+ for SSP. We enable it explicitly here.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
<term><parameter>Support for uevent helper</parameter></term>
<listitem>
<para>Having this option set may interfere with device
@@ -232,12 +259,16 @@ File systems ---&gt;
</varlistentry>
<varlistentry>
- <term><parameter>Enable userfaultfd() system call</parameter></term>
+ <term><parameter>Framebuffer Console support</parameter></term>
<listitem>
- <para>If this option is enabled, a security vulnerability not
- resolved in Linux-&linux-version; yet will be exploitable.
- Disable this option to avoid the vulnerability. This system call
- is not used by any part of LFS or BLFS.</para>
+ <para>This is needed to display the Linux console on a frame
+ buffer device. To allow the kernel to print debug messages at an
+ early boot stage, it shouldn't be built as a kernel module
+ unless an initramfs will be used. And, if
+ <option>CONFIG_DRM</option> (Direct Rendering Manager) is enabled,
+ it's likely <option>CONFIG_DRM_FBDEV_EMULATION</option> (Enable
+ legacy fbdev support for your modesetting driver) should be
+ enabled as well.</para>
</listitem>
</varlistentry>
diff --git a/chapter11/afterlfs.xml b/chapter11/afterlfs.xml
new file mode 100644
index 000000000..279cc1108
--- /dev/null
+++ b/chapter11/afterlfs.xml
@@ -0,0 +1,266 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+ "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+ <!ENTITY % general-entities SYSTEM "../general.ent">
+ %general-entities;
+]>
+
+<sect1 id="afterlfs">
+ <?dbhtml filename="afterlfs.html"?>
+
+ <title>Getting Started After LFS</title>
+
+ <sect2>
+ <title>Deciding what to do next</title>
+
+ <para>
+ Now that LFS is complete and you have a bootable system, what do you do?
+ The next step is to decide how to use it. Generally, there are two broad
+ categories to consider: workstation or server. Indeed, these categories
+ are not mutually exclusive. The applications needed for each category
+ can be combined onto a single system, but let's look at them separately
+ for now.
+ </para>
+
+ <para>
+ A server is the simpler category. Generally this consists of a web
+ server such as the
+ <ulink url="&blfs-book;server/apache.html">Apache HTTP Server</ulink>
+ and a database server such as
+ <ulink url="&blfs-book;server/mariadb.html">MariaDB</ulink>.
+ However other services are possible. The operating system
+ embedded in a single use device falls into this category.
+ </para>
+
+ <para>
+ On the other hand, a workstation is much more complex. It generally
+ requires a graphical user environment such as
+ <ulink url="&blfs-book;lxde/lxde.html">LXDE</ulink>,
+ <ulink url="&blfs-book;xfce/xfce.html">XFCE</ulink>,
+ <ulink url="&blfs-book;kde/kde.html">KDE</ulink>, or
+ <ulink url="&blfs-book;gnome/gnome.html">Gnome</ulink>
+ based on a basic
+ <ulink url="&blfs-book;x/installing.html">graphical environment</ulink>
+ and several graphical based applications such as the
+ <ulink url="&blfs-book;xsoft/firefox.html">Firefox web browser</ulink>,
+ <ulink url="&blfs-book;xsoft/thunderbird.html">Thunderbird email client</ulink>,
+ or
+ <ulink url="&blfs-book;xsoft/libreoffice.html">LibreOffice office suite</ulink>.
+ These applications require many (several hundred depending on
+ desired capabilities) more packages of support applications and
+ libraries.
+ </para>
+
+ <para>
+ In addition to the above, there is a set of applications for system
+ management for all kinds of systems. These applications are all in the
+ BLFS book. Not all packages are needed in every environments. For
+ example <ulink url="&blfs-book;basicnet/dhcpcd.html">dhcpcd</ulink>, is
+ not normally appropriate for a server and <ulink
+ url="&blfs-book;basicnet/wireless_tools.html">wireless_tools</ulink>,
+ are normally only useful for a laptop system.
+ </para>
+
+ </sect2>
+
+ <sect2>
+ <title>Working in a basic LFS environment</title>
+
+ <para>
+ When you initially boot into LFS, you have all the internal tools to build
+ additional packages. Unfortunately, the user environment is quite sparse.
+ There are a couple of ways to improve this:
+ </para>
+
+ <sect3>
+ <title>Work from the LFS host in chroot</title>
+
+ <para>
+ This method provides a complete graphical environment where a full
+ featured browser and copy/paste capabilities are available. This method
+ allows using applications like the host's version of wget to download
+ package sources to a location available when working in the chroot
+ envirnment.
+ </para>
+
+ <para>
+ In order to properly build packages in chroot, you will also need to
+ remember to mount the virtual file systems if they are not already
+ mounted. One way to do this is to create a script on the
+ <emphasis role="bold">HOST</emphasis> system:
+ </para>
+
+<screen><command>cat &gt; ~/mount-virt.sh &lt;&lt; "EOF"
+#!/bin/bash
+
+function mountbind
+{
+ if ! mountpoint $LFS/$1 >/dev/null; then
+ $SUDO mount --bind /$1 $LFS/$1
+ echo $LFS/$1 mounted
+ else
+ echo $LFS/$1 already mounted
+ fi
+}
+
+function mounttype
+{
+ if ! mountpoint $LFS/$1 >/dev/null; then
+ $SUDO mount -t $2 $3 $4 $5 $LFS/$1
+ echo $LFS/$1 mounted
+ else
+ echo $LFS/$1 already mounted
+ fi
+}
+
+if [ $EUID -ne 0 ]; then
+ SUDO=sudo
+else
+ SUDO=""
+fi
+
+if [ x$LFS == x ]; then
+ echo "LFS not set"
+ exit 1
+fi
+
+mountbind dev
+mounttype dev/pts devpts devpts -o gid=5,mode=620
+mounttype proc proc proc
+mounttype sys sysfs sysfs
+mounttype run tmpfs run
+if [ -h $LFS/dev/shm ]; then
+ mkdir -pv $LFS/$(readlink $LFS/dev/shm)
+else
+ mounttype dev/shm tmpfs tmpfs -o nosuid,nodev
+fi
+
+#mountbind usr/src
+#mountbind boot
+#mountbind home
+EOF</command></screen>
+
+ <para>
+ Note that the last three commands in the script are commented out. These
+ are useful if those directories are mounted as separate partitions on the
+ host system and will be mounted when booting the completed LFS/BLFS system.
+ </para>
+
+ <para>
+ The script can be run with <command>bash ~/mount-virt.sh</command> as
+ either a regular user (recommended) or as &root;. If run as a regular
+ user, sudo is required on the host system.
+ </para>
+
+ <para>
+ Another issue pointed out by the script is where to store downloaded
+ package files. This location is arbitrary. It can be in a regular
+ user's home directory such as ~/sources or in a global location like
+ /usr/src. Our recommendation is not to mix BLFS sources and LFS sources
+ in (from the chroot environment) /sources. In any case, the packages
+ must be accessible inside the chroot environment.
+ </para>
+
+ <para>
+ A last convenience feature presented here is to streamline the process
+ of entering the chroot environment. This can be done with an alias
+ placed in a user's ~/.bashrc file on the host system:
+ </para>
+
+<screen><command>alias lfs='sudo /usr/sbin/chroot /mnt/lfs /usr/bin/env -i HOME=/root TERM="$TERM" PS1="\u:\w\\\\$ "
+PATH=/bin:/usr/bin:/sbin:/usr/sbin /bin/bash --login'</command></screen>
+
+ <para>
+ This alias is a little tricky because of the quoting and levels of
+ backslash characters. It must be all on a single line. The above command
+ has been split in two for presentation purposes.
+ </para>
+
+ </sect3>
+
+ <sect3>
+ <title>Work remotely via ssh</title>
+
+ <para>
+ This method also provides a full graphical environment, but first
+ requires installing
+ <ulink url="&blfs-book;postlfs/openssh.html">sshd</ulink> and
+ <ulink url="&blfs-book;basicnet/wget.html">wget</ulink>
+ on the LFS system, usually in chroot. It also requires a second
+ computer. This method has the advantage of being simple by not requiring
+ the complexity of the chroot environment. It also uses your LFS built
+ kernel for all additional packages and still provides a complete system
+ for installing packages.
+ </para>
+
+ </sect3>
+
+ <sect3>
+ <title>Work from the LFS command line</title>
+
+ <para>
+ This method requires installing
+ <ulink url="&blfs-book;general/libtasn1.html">libtasn1</ulink>,
+ <ulink url="&blfs-book;postlfs/p11-kit.html">p11-kit</ulink>,
+ <ulink url="&blfs-book;postlfs/make-ca.html">make-ca</ulink>,
+ <ulink url="&blfs-book;basicnet/wget.html">wget</ulink>,
+ <ulink url="&blfs-book;general/gpm.html">gpm</ulink>, and
+ <ulink url="&blfs-book;basicnet/links.html">links</ulink>
+ (or <ulink url="&blfs-book;basicnet/lynx.html">lynx</ulink>)
+ in chroot and then rebooting into the new LFS system. At this
+ point the default system has six virtual consoles. Switching
+ consoles is as easy as using the
+ <keycombo>
+ <keycap>Alt</keycap>
+ <keycap>Fx</keycap>
+ </keycombo>
+ key combinations where <keycap>Fx</keycap> is
+ between <keycap>F1</keycap> and <keycap>F6</keycap>.
+ The
+ <keycombo>
+ <keycap>Alt</keycap>
+ <keycap function='left'/>
+ </keycombo>
+ and
+ <keycombo>
+ <keycap>Alt</keycap>
+ <keycap function='right'/>
+ </keycombo>
+ combinations also will change the console.
+ </para>
+
+ <para>
+ At this point you can log into two different virtual consoles and run
+ the links or lynx browser in one console and bash in the other. GPM
+ then allows copying commands from the browser with the left mouse
+ button, switching consoles, and pasting into the other console.
+ </para>
+
+ <note>
+ <para>
+ As a side note, switching of virtual consoles can also be done from
+ an X Window instance with the
+ <keycombo>
+ <keycap>Ctrl</keycap>
+ <keycap>Alt</keycap>
+ <keycap>Fx</keycap>
+ </keycombo>
+ key combination, but the mouse copy operation does not work
+ between the graphical interface and a virtual console. You can
+ return to the X Window display with the
+ <keycombo>
+ <keycap>Ctrl</keycap>
+ <keycap>Alt</keycap>
+ <keycap>Fx</keycap>
+ </keycombo>
+ combination, where <keycap>Fx</keycap> is usually
+ <keycap>F1</keycap> but may be <keycap>F7</keycap>.
+ </para>
+ </note>
+
+ </sect3>
+
+ </sect2>
+
+
+</sect1>
diff --git a/chapter11/chapter11.xml b/chapter11/chapter11.xml
index 8b4c53a1d..9adb49473 100644
--- a/chapter11/chapter11.xml
+++ b/chapter11/chapter11.xml
@@ -15,5 +15,6 @@
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="getcounted.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="reboot.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="whatnow.xml"/>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="afterlfs.xml"/>
</chapter>
diff --git a/chapter11/reboot.xml b/chapter11/reboot.xml
index b4413f1ce..ebfb0a2b1 100644
--- a/chapter11/reboot.xml
+++ b/chapter11/reboot.xml
@@ -9,17 +9,22 @@
<?dbhtml filename="reboot.html"?>
<title>Rebooting the System</title>
+ <para>
+ Now that all of the software has been installed, it is time to reboot
+ your computer. However, there are still a few things to check.
+ Here are some suggestions:</para>
- <para>Now that all of the software has been installed, it is time to reboot
- your computer. However, you should be aware of a few things. The system you
+
+<!--
+ The system you
have created in this book is quite minimal, and most likely will not have
the functionality you would need to be able to continue forward. By installing
a few extra packages from the BLFS book while still in our current chroot
environment, you can leave yourself in a much better position to continue on
once you reboot into your new LFS installation. Here are some suggestions:</para>
-
+-->
<itemizedlist>
-
+<!--
<listitem><para>A text mode browser such as <ulink
url='&blfs-book;basicnet/lynx.html'>Lynx</ulink>
will allow you to easily view the BLFS book in one virtual terminal, while
@@ -60,14 +65,21 @@
install <ulink
url='&blfs-book;basicnet/wpa_supplicant.html'>wpa_supplicant</ulink>.
</para></listitem>
+-->
+ <listitem>
+ <para>
+ Install any <ulink
+ url='&blfs-book;postlfs/firmware.html'>firmware</ulink> needed if the
+ kernel driver for your hardware requires some firmware files to function
+ properly.
+ </para>
+ </listitem>
- <listitem><para>Install <ulink
- url='&blfs-book;postlfs/firmware.html'>firmwares</ulink> if the kernel
- driver for your hardware require some firmware to function properly.
- </para></listitem>
-
- <listitem><para>Finally, a review of the following configuration files
- is also appropriate at this point.</para>
+ <listitem>
+ <para>
+ A review of the following configuration files
+ is also appropriate at this point.
+ </para>
<itemizedlist>
<listitem><para>/etc/bashrc </para></listitem>
@@ -86,14 +98,11 @@
</itemizedlist>
<para>Now that we have said that, let's move on to booting our shiny new LFS
- installation for the first time! First exit from the chroot environment:</para>
+ installation for the first time! <emphasis>First exit from the chroot
+ environment</emphasis>:</para>
<screen><userinput>logout</userinput></screen>
-<!-- We need to show the user the details...
- <para>Unmount the LFS file system hierarchy:</para>
-
-<screen><userinput>umount -Rv $LFS</userinput></screen>
--->
+<!-- We need to show the user the details...-->
<para>Then unmount the virtual file systems:</para>
@@ -106,17 +115,19 @@ umount -v $LFS/sys</userinput></screen>
<para>If multiple partitions were created, unmount the other
partitions before unmounting the main one, like this:</para>
-<screen role="nodump"><userinput>umount -v $LFS/usr
-umount -v $LFS/home
+<screen role="nodump"><userinput>umount -v $LFS/home
umount -v $LFS</userinput></screen>
<para>Unmount the LFS file system itself:</para>
<screen role="nodump"><userinput>umount -v $LFS</userinput></screen>
- <para>Now, reboot the system with:</para>
+ <para>Now, reboot the system.</para>
-<screen role="nodump"><userinput>shutdown -r now</userinput></screen>
+<!-- Commented out because we don't have a host system requirement on
+ its init, and different init system may recommend different commands
+ for reboot. -->
+<!--<screen role="nodump"><userinput>shutdown -r now</userinput></screen>-->
<para>Assuming the GRUB boot loader was set up as outlined earlier, the menu
is set to boot <emphasis>LFS &version;</emphasis> automatically.</para>
diff --git a/chapter11/theend.xml b/chapter11/theend.xml
index 8470948a3..6f5e7e401 100644
--- a/chapter11/theend.xml
+++ b/chapter11/theend.xml
@@ -60,8 +60,7 @@ PRETTY_NAME="Linux From Scratch &version;"
VERSION_CODENAME="&lt;your name here&gt;"
EOF</userinput></screen>
- <para>Be sure to put some sort of customization for the fields
- 'DISTRIB_CODENAME' and 'VERSION_CODENAME' to make the system uniquely
- yours.</para>
+ <para>Be sure to customize the fields 'DISTRIB_CODENAME' and
+ 'VERSION_CODENAME' to make the system uniquely yours.</para>
</sect1>
diff --git a/chapter11/whatnow.xml b/chapter11/whatnow.xml
index f8672ec69..e477e21c8 100644
--- a/chapter11/whatnow.xml
+++ b/chapter11/whatnow.xml
@@ -8,7 +8,7 @@
<sect1 id="ch-finish-whatnow">
<?dbhtml filename="whatnow.html"?>
- <title>What Now?</title>
+ <title>Additional Resources</title>
<para>Thank you for reading this LFS book. We hope that you have
found this book helpful and have learned more about the system
@@ -31,27 +31,23 @@
<itemizedlist>
<listitem>
- <para><ulink url="http://www.cert.org/">CERT</ulink> (Computer
- Emergency Response Team)</para>
+ <para><ulink url="&lfs-root;lfs/advisories/">LFS Security Advisories</ulink></para>
- <para>CERT has a mailing list that publishes security alerts concerning
- various operating systems and applications. Subscription information is
- available at <ulink
- url="http://www.us-cert.gov/cas/signup.html"/>.</para>
+ <para>This is a list of security vulnerabilities discovered in the
+ LFS book after it's published.</para>
</listitem>
<listitem>
- <para>Bugtraq</para>
+ <para><ulink url="https://seclists.org/oss-sec/">Open Source Security
+ Mailing List</ulink></para>
- <para>Bugtraq is a full-disclosure computer security mailing list. It
- publishes newly discovered security issues, and occasionally potential
- fixes for them. Subscription information is available at <ulink
- url="http://www.securityfocus.com/archive"/>.</para>
+ <para>This is a mailing list for discussion of security flaws,
+ concepts, and practices in the Open Source community.</para>
</listitem>
</itemizedlist>
</listitem>
-
+<!--
<listitem>
<para>Beyond Linux From Scratch</para>
@@ -60,7 +56,7 @@
Book. The BLFS project is located at <ulink url="&blfs-book;"/>.
</para>
</listitem>
-
+-->
<listitem>
<para>LFS Hints</para>
@@ -85,7 +81,7 @@
<para>The goal of The Linux Documentation Project (TLDP) is to
collaborate on all of the issues of Linux documentation. The TLDP features
a large collection of HOWTOs, guides, and man pages. It is located at
- <ulink url="http://www.tldp.org/"/>.</para>
+ <ulink url="https://tldp.org/"/>.</para>
</listitem>
</itemizedlist>
diff --git a/git-version.sh b/git-version.sh
index 505f98a60..d7aa20bb7 100755
--- a/git-version.sh
+++ b/git-version.sh
@@ -1,31 +1,31 @@
#!/bin/sh
if [ "$1" = sysv ]; then
- SYSV="INCLUDE"
- SYSTEMD="IGNORE "
+ SYSV="INCLUDE"
+ SYSTEMD="IGNORE "
elif [ "$1" = systemd ]; then
- SYSV="IGNORE "
- SYSTEMD="INCLUDE"
+ SYSV="IGNORE "
+ SYSTEMD="INCLUDE"
else
- echo You must provide either \"sysv\" or \"systemd\" as argument
- exit 1
+ echo You must provide either \"sysv\" or \"systemd\" as argument
+ exit 1
fi
echo "<!ENTITY % sysv \"$SYSV\">" > conditional.ent
echo "<!ENTITY % systemd \"$SYSTEMD\">" >> conditional.ent
if ! git status > /dev/null; then
- # Either it's not a git repository, or git is unavaliable.
- # Just workaround.
- echo "<![ %sysv; [" > version.ent
- echo "<!ENTITY version \"unknown\">" >> version.ent
- echo "]]>" >> version.ent
- echo "<![ %systemd; [" >> version.ent
- echo "<!ENTITY version \"unknown-systemd\">" >> version.ent
- echo "]]>" >> version.ent
- echo "<!ENTITY releasedate \"unknown\">" >> version.ent
- echo "<!ENTITY copyrightdate \"1999-2022\">" >> version.ent
- exit 0
+ # Either it's not a git repository, or git is unavaliable.
+ # Just workaround.
+ echo "<![ %sysv; [" > version.ent
+ echo "<!ENTITY version \"unknown\">" >> version.ent
+ echo "]]>" >> version.ent
+ echo "<![ %systemd; [" >> version.ent
+ echo "<!ENTITY version \"unknown-systemd\">" >> version.ent
+ echo "]]>" >> version.ent
+ echo "<!ENTITY releasedate \"unknown\">" >> version.ent
+ echo "<!ENTITY copyrightdate \"1999-2022\">" >> version.ent
+ exit 0
fi
export LC_ALL=en_US.utf8
@@ -39,10 +39,10 @@ month_digit=$(date --date "$commit_date" "+%m")
day=$(date --date "$commit_date" "+%d" | sed 's/^0//')
case $day in
- "1" | "21" | "31" ) suffix="st";;
- "2" | "22" ) suffix="nd";;
- "3" | "23" ) suffix="rd";;
- * ) suffix="th";;
+ "1" | "21" | "31" ) suffix="st";;
+ "2" | "22" ) suffix="nd";;
+ "3" | "23" ) suffix="rd";;
+ * ) suffix="th";;
esac
full_date="$month $day$suffix, $year"
@@ -53,8 +53,8 @@ version="$rev"
versiond="$rev-systemd"
if [ "$(git diff HEAD | wc -l)" != "0" ]; then
- version="$version+"
- versiond="$versiond+"
+ version="$version+"
+ versiond="$versiond+"
fi
echo "<![ %sysv; [" > version.ent
diff --git a/lfs-latest-git.php b/lfs-latest-git.php
index 645f8e70d..32c8150ca 100644
--- a/lfs-latest-git.php
+++ b/lfs-latest-git.php
@@ -34,7 +34,7 @@ function find_max( $lines, $regex_match, $regex_replace )
// Isolate the version and put in an array
$slice = preg_replace( $regex_replace, "$1", $line );
- if ( $slice == $line ) continue;
+ if ( strcmp( $slice, $line ) == 0 ) continue;
array_push( $a, $slice );
}
@@ -266,6 +266,15 @@ if ( $package == "zstd" ) $dirpath = "https://github.com/facebook/zstd/rel
if ( $package == "elfutils" )
return find_max( $lines, "/^\d/", "/^(\d[\d\.]+\d)\/.*$/" );
+ if ( $package == "iana-etc" )
+ return find_max( $lines, "/^\s*20\d\d/", "/^\s+(\d+).*$/" );
+
+ if ( $package == "meson" )
+ return find_max( $lines, "/^\s+\d\./", "/^\s+([\d\.]+)$/" );
+
+ if ( $package == "shadow" )
+ return find_max( $lines, "/^\s+\d\./", "/^\s+([\d\.]+)$/" );
+
if ( $package == "XML-Parser" )
{
$max = find_max( $lines, "/$package/", "/^.*$package-([\d\._]*\d).tar.*$/" );
@@ -292,6 +301,9 @@ if ( $package == "zstd" ) $dirpath = "https://github.com/facebook/zstd/rel
return str_replace( "_", ".", $max );
}
+ if ( $package == "libffi" )
+ return find_max( $lines, "/v\d/", "/^.*v([\d\.]+)$/" );
+
if ( $package == "procps-ng" )
return find_max( $lines, "/v\d/", "/^.*v([\d\.]+)$/" );
diff --git a/packages.ent b/packages.ent
index 5d8adcf7d..e4fe92680 100644
--- a/packages.ent
+++ b/packages.ent
@@ -58,10 +58,10 @@
<!ENTITY bash-fin-du "50 MB">
<!ENTITY bash-fin-sbu "1.4 SBU">
-<!ENTITY bc-version "6.0.1">
-<!ENTITY bc-size "441 KB">
+<!ENTITY bc-version "6.0.2">
+<!ENTITY bc-size "442 KB">
<!ENTITY bc-url "https://github.com/gavinhoward/bc/releases/download/&bc-version;/bc-&bc-version;.tar.xz">
-<!ENTITY bc-md5 "4c8b8d51eb52ee66f5bcf6a6a1ca576e">
+<!ENTITY bc-md5 "101e62dd9c2b90bf18c38d858aa36f0d">
<!ENTITY bc-home "https://git.yzena.com/gavin/bc">
<!ENTITY bc-fin-du "7.4 MB">
<!ENTITY bc-fin-sbu "less than 0.1 SBU">
@@ -163,10 +163,10 @@
<!ENTITY eudev-fin-du "83 MB">
<!ENTITY eudev-fin-sbu "0.2 SBU">
-<!ENTITY expat-version "2.4.8">
-<!ENTITY expat-size "444 KB">
+<!ENTITY expat-version "2.4.9">
+<!ENTITY expat-size "449 KB">
<!ENTITY expat-url "&sourceforge;expat/expat-&expat-version;.tar.xz">
-<!ENTITY expat-md5 "0584a7318a4c007f7ec94778799d72fe">
+<!ENTITY expat-md5 "8d7fcf7d02d08bf79d9ae5c21cc72c03">
<!ENTITY expat-home "https://libexpat.github.io/">
<!ENTITY expat-fin-du "12 MB">
<!ENTITY expat-fin-sbu "0.1 SBU">
@@ -179,10 +179,10 @@
<!ENTITY expect-tmp-du "3.9 MB">
<!ENTITY expect-tmp-sbu "0.2 SBU">
-<!ENTITY file-version "5.42">
-<!ENTITY file-size "1,080 KB">
+<!ENTITY file-version "5.43">
+<!ENTITY file-size "1,136 KB">
<!ENTITY file-url "https://astron.com/pub/file/file-&file-version;.tar.gz">
-<!ENTITY file-md5 "4d4f70c3b08a8a70d8baf67f085d7e92">
+<!ENTITY file-md5 "8effd70da368210a6c6eece037f978eb">
<!ENTITY file-home "https://www.darwinsys.com/file/">
<!ENTITY file-tmp-du "34 MB">
<!ENTITY file-tmp-sbu "0.2 SBU">
@@ -207,10 +207,10 @@
<!ENTITY flex-fin-du "33 MB">
<!ENTITY flex-fin-sbu "0.4 SBU">
-<!ENTITY gawk-version "5.1.1">
-<!ENTITY gawk-size "3,075 KB">
+<!ENTITY gawk-version "5.2.0">
+<!ENTITY gawk-size "3,307 KB">
<!ENTITY gawk-url "&gnu;gawk/gawk-&gawk-version;.tar.xz">
-<!ENTITY gawk-md5 "83650aa943ff2fd519b2abedf8506ace">
+<!ENTITY gawk-md5 "2f724d925873fc82f5e7b1d605ba9a42">
<!ENTITY gawk-home "&gnu-software;gawk/">
<!ENTITY gawk-tmp-du "45 MB">
<!ENTITY gawk-tmp-sbu "0.2 SBU">
@@ -281,10 +281,10 @@
<!ENTITY gperf-fin-du "6.0 MB">
<!ENTITY gperf-fin-sbu "less than 0.1 SBU">
-<!ENTITY grep-version "3.7">
-<!ENTITY grep-size "1,603 KB">
+<!ENTITY grep-version "3.8">
+<!ENTITY grep-size "1,670 KB">
<!ENTITY grep-url "&gnu;grep/grep-&grep-version;.tar.xz">
-<!ENTITY grep-md5 "7c9cca97fa18670a21e72638c3e1dabf">
+<!ENTITY grep-md5 "dc6e4d18d4659e6e7552fc4a183c8ac9">
<!ENTITY grep-home "&gnu-software;grep/">
<!ENTITY grep-tmp-du "25 MB">
<!ENTITY grep-tmp-sbu "0.2 SBU">
@@ -374,15 +374,15 @@
<!ENTITY kmod-fin-du "12 MB">
<!ENTITY kmod-fin-sbu "0.1 SBU">
-<!ENTITY less-version "590">
-<!ENTITY less-size "348 KB">
+<!ENTITY less-version "608">
+<!ENTITY less-size "354 KB">
<!ENTITY less-url "https://www.greenwoodsoftware.com/less/less-&less-version;.tar.gz">
-<!ENTITY less-md5 "f029087448357812fba450091a1172ab">
+<!ENTITY less-md5 "1cdec714569d830a68f4cff11203cdba">
<!ENTITY less-home "https://www.greenwoodsoftware.com/less/">
<!ENTITY less-fin-du "4.2 MB">
<!ENTITY less-fin-sbu "less than 0.1 SBU">
-<!ENTITY lfs-bootscripts-version "20220723"> <!-- Scripts depend on this format -->
+<!ENTITY lfs-bootscripts-version "20220920"> <!-- Scripts depend on this format -->
<!ENTITY lfs-bootscripts-size "BOOTSCRIPTS-SIZE KB">
<!ENTITY lfs-bootscripts-url "&downloads-root;lfs-bootscripts-&lfs-bootscripts-version;.tar.xz">
<!ENTITY lfs-bootscripts-md5 "BOOTSCRIPTS-MD5SUM">
@@ -410,7 +410,7 @@
<!ENTITY libpipeline-size "954 KB">
<!ENTITY libpipeline-url "&savannah;/releases/libpipeline/libpipeline-&libpipeline-version;.tar.gz">
<!ENTITY libpipeline-md5 "829c9ba46382b0b3e12dd11fcbc1bb27">
-<!ENTITY libpipeline-home "http://libpipeline.nongnu.org/">
+<!ENTITY libpipeline-home "https://libpipeline.nongnu.org/">
<!ENTITY libpipeline-fin-du "10 MB">
<!ENTITY libpipeline-fin-sbu "0.1 SBU">
@@ -424,12 +424,12 @@
<!ENTITY linux-major-version "5">
<!ENTITY linux-minor-version "19">
-<!ENTITY linux-patch-version "2">
+<!ENTITY linux-patch-version "8">
<!--<!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,553 KB">
+<!ENTITY linux-size "128,547 KB">
<!ENTITY linux-url "&kernel;linux/kernel/v&linux-major-version;.x/linux-&linux-version;.tar.xz">
-<!ENTITY linux-md5 "391274e2e49a881403b0ff2e0712bf82">
+<!ENTITY linux-md5 "ae08d14f9b7ed3d47c0d22b6d235507a">
<!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,
@@ -487,10 +487,10 @@
<!ENTITY markupsafe-fin-du "168 KB">
<!ENTITY markupsafe-fin-sbu "less than 0.1 SBU">
-<!ENTITY meson-version "0.63.1">
+<!ENTITY meson-version "0.63.2">
<!ENTITY meson-size "2,016 KB">
<!ENTITY meson-url "&github;/mesonbuild/meson/releases/download/&meson-version;/meson-&meson-version;.tar.gz">
-<!ENTITY meson-md5 "078e59d11a72b74c3bd78cb8205e9ed7">
+<!ENTITY meson-md5 "12ae3150982645790a4f8a8e8795173c">
<!ENTITY meson-home "https://mesonbuild.com">
<!ENTITY meson-fin-du "38 MB">
<!ENTITY meson-fin-sbu "less than 0.1 SBU">
@@ -499,7 +499,7 @@
<!ENTITY mpc-size "820 KB">
<!ENTITY mpc-url "https://ftp.gnu.org/gnu/mpc/mpc-&mpc-version;.tar.gz">
<!ENTITY mpc-md5 "9f16c976c25bb0f76b50be749cd7a3a8">
-<!ENTITY mpc-home "http://www.multiprecision.org/">
+<!ENTITY mpc-home "https://www.multiprecision.org/">
<!ENTITY mpc-fin-du "21 MB">
<!ENTITY mpc-fin-sbu "0.3 SBU">
@@ -521,10 +521,10 @@
<!ENTITY ncurses-fin-du "45 MB">
<!ENTITY ncurses-fin-sbu "0.4 SBU">
-<!ENTITY ninja-version "1.11.0">
-<!ENTITY ninja-size "228 KB">
+<!ENTITY ninja-version "1.11.1">
+<!ENTITY ninja-size "225 KB">
<!ENTITY ninja-url "&github;/ninja-build/ninja/archive/v&ninja-version;/ninja-&ninja-version;.tar.gz">
-<!ENTITY ninja-md5 "7d1a1a2f5cdc06795b3054df5c17d5ef">
+<!ENTITY ninja-md5 "32151c08211d7ca3c1d832064f6939b0">
<!ENTITY ninja-home "https://ninja-build.org/">
<!ENTITY ninja-fin-du "79 MB">
<!ENTITY ninja-fin-sbu "0.6 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.6">
+<!ENTITY python-version "3.10.7">
<!ENTITY python-minor "3.10">
-<!ENTITY python-size "19,142 KB">
+<!ENTITY python-size "19,159 KB">
<!ENTITY python-url "https://www.python.org/ftp/python/&python-version;/Python-&python-version;.tar.xz">
-<!ENTITY python-md5 "afc7e14f7118d10d1ba95ae8e2134bf0">
+<!ENTITY python-md5 "b8094f007b3a835ca3be6bdf8116cccc">
<!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 "8f32c4f4f0b18ec56e8b3822bbaeb017">
-<!ENTITY python-docs-size "7,321 KB">
+<!ENTITY python-docs-md5 "d5923c417995334e72c2561812905d23">
+<!ENTITY python-docs-size "7,176 KB">
<!ENTITY readline-version "8.1.2">
<!ENTITY readline-soversion "8.1"><!-- used for stripping -->
@@ -621,10 +621,10 @@
<!ENTITY sed-fin-du "31 MB">
<!ENTITY sed-fin-sbu "0.4 SBU">
-<!ENTITY shadow-version "4.12.2">
-<!ENTITY shadow-size "1,706 KB">
+<!ENTITY shadow-version "4.12.3">
+<!ENTITY shadow-size "1,707 KB">
<!ENTITY shadow-url "&github;/shadow-maint/shadow/releases/download/&shadow-version;/shadow-&shadow-version;.tar.xz">
-<!ENTITY shadow-md5 "52637cb34c357acf85c617cf95da34a6">
+<!ENTITY shadow-md5 "710bcc89c39683609aacfef9f08bd854">
<!ENTITY shadow-home "https://shadow-maint.github.io/shadow/">
<!ENTITY shadow-fin-du "46 MB">
<!ENTITY shadow-fin-sbu "0.2 SBU">
diff --git a/part3intro/generalinstructions.xml b/part3intro/generalinstructions.xml
index d8e280e0d..ac2bcc675 100644
--- a/part3intro/generalinstructions.xml
+++ b/part3intro/generalinstructions.xml
@@ -82,9 +82,9 @@
<listitem>
<para>Place all the sources and patches in a directory that will be
accessible from the chroot environment such as
- <filename class="directory">/mnt/lfs/sources/</filename>.<!-- Do
+ <filename class="directory">/mnt/lfs/sources/</filename>.<!-- Do
<emphasis>not</emphasis> put sources in
- <filename class="directory">/mnt/lfs/tools/</filename>. --></para>
+ <filename class="directory">/mnt/lfs/tools/</filename>. --></para>
</listitem>
<listitem>
<para>Change to the sources directory.</para>
diff --git a/prologue/prerequisites.xml b/prologue/prerequisites.xml
index 05701ffb2..65042e2a5 100644
--- a/prologue/prerequisites.xml
+++ b/prologue/prerequisites.xml
@@ -30,7 +30,7 @@
<itemizedlist>
<listitem>
<para>Software-Building-HOWTO
- <ulink url="http://www.tldp.org/HOWTO/Software-Building-HOWTO.html"/></para>
+ <ulink url="https://tldp.org/HOWTO/Software-Building-HOWTO.html"/></para>
<para>This is a comprehensive guide to building and installing
<quote>generic</quote> Unix software packages under Linux. Although it
@@ -40,7 +40,7 @@
<listitem>
<para>Beginner's Guide to Installing from Source
- <ulink url="http://moi.vonos.net/linux/beginners-installing-from-source/"/></para>
+ <ulink url="https://moi.vonos.net/linux/beginners-installing-from-source/"/></para>
<para>This guide provides a good summary of basic skills and
techniques needed to build software from source code.</para>
diff --git a/prologue/standards.xml b/prologue/standards.xml
index 6000cb72b..7e40ab887 100644
--- a/prologue/standards.xml
+++ b/prologue/standards.xml
@@ -18,17 +18,17 @@
<itemizedlist>
<listitem>
- <para><ulink url="http://pubs.opengroup.org/onlinepubs/9699919799/">
+ <para><ulink url="https://pubs.opengroup.org/onlinepubs/9699919799/">
POSIX.1-2008</ulink>.</para>
</listitem>
<listitem>
<para><ulink
- url="http://refspecs.linuxfoundation.org/FHS_3.0/fhs/index.html">
+ url="https://refspecs.linuxfoundation.org/FHS_3.0/fhs/index.html">
Filesystem Hierarchy Standard (FHS) Version 3.0</ulink></para>
</listitem>
<listitem>
- <para><ulink url="http://refspecs.linuxfoundation.org/lsb.shtml">Linux
+ <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,
diff --git a/prologue/why.xml b/prologue/why.xml
index dd6a27c96..2ce8141df 100644
--- a/prologue/why.xml
+++ b/prologue/why.xml
@@ -595,7 +595,7 @@
<listitem>
<para>Wheel</para>
- <para>This package contains a Python module that is the
+ <para>This package contains a Python module that is the
reference implementation of the Python wheel packaging standard.
</para>
</listitem>
diff --git a/stylesheets/lfs-xsl/lfs.css.new b/stylesheets/lfs-xsl/lfs.css.new
index 1fa3757b8..702f7c3ea 100644
--- a/stylesheets/lfs-xsl/lfs.css.new
+++ b/stylesheets/lfs-xsl/lfs.css.new
@@ -14,12 +14,12 @@ body {
/* Links */
a:link {
color: #22b;
- font-weight: bold;
+ font-weight: bold;
text-decoration: none;
}
a.ulink:link {
- font-weight: bold;
+ font-weight: bold;
color: #55f;
text-decoration: none;
}
@@ -29,7 +29,7 @@ a:visited {
text-decoration: none;
}
-a:hover,
+a:hover,
a:focus {
color: #d30e08 ! important;
text-decoration: underline;
@@ -81,10 +81,10 @@ div.navfooter a:active {
}
/* Sections */
-div.sect1,
-div.appendix,
-div.wrap,
-div.chapter,
+div.sect1,
+div.appendix,
+div.wrap,
+div.chapter,
div.part,
div.preface,
div.toc,
@@ -100,10 +100,10 @@ div.index,
}
@media(max-width:1220px) and (min-height:550px){
- div.sect1,
- div.appendix,
- div.wrap,
- div.chapter,
+ div.sect1,
+ div.appendix,
+ div.wrap,
+ div.chapter,
div.part,
div.preface,
div.legalnotice,
@@ -120,10 +120,10 @@ div.index,
@media(max-width:1050px),
(max-width:1050px) and (min-width:800px) and (max-height:550px){
- div.sect1,
- div.appendix,
- div.wrap,
- div.chapter,
+ div.sect1,
+ div.appendix,
+ div.wrap,
+ div.chapter,
div.part,
div.preface,
div.legalnotice,
@@ -138,10 +138,10 @@ div.index,
@media(max-width:550px),
(max-width:800px) and (max-height:550px){
- div.sect1,
- div.appendix,
- div.wrap,
- div.chapter,
+ div.sect1,
+ div.appendix,
+ div.wrap,
+ div.chapter,
div.part,
div.preface,
div.legalnotice,
@@ -169,12 +169,12 @@ div.important ul li p {
padding: 0em 0.6em;
}
-.package,
-.kernel,
-.installation,
-.commands,
-.testing,
-.configuration,
+.package,
+.kernel,
+.installation,
+.commands,
+.testing,
+.configuration,
.content {
padding: 0em 0.5em 0.2em 0em;
margin: 0em;
@@ -222,12 +222,12 @@ h1 {
padding: 0.7em;
}
-.preface h1,
-.part h1,
-.chapter h1,
-.appendix h1,
-.index h1,
-.sect1 h1,
+.preface h1,
+.part h1,
+.chapter h1,
+.appendix h1,
+.index h1,
+.sect1 h1,
.wrap h1 {
background: none; /*#f5f6f7;*/
border-bottom: 1px solid #EEE; /*1em solid #dbddec;*/
@@ -246,7 +246,7 @@ h2 {
padding:.3em;
}
-.titlepage h2,
+.titlepage h2,
div.navheader h2 {
font-size: 120%;
border-bottom: none;
@@ -276,14 +276,14 @@ h4 {
padding: 0.2em;
}
-.titlepage h3,
+.titlepage h3,
div.navheader h3 {
font-size: 120%;
border-bottom: none;
padding: 0.25em;
}
-.titlepage h4,
+.titlepage h4,
div.navheader h4 {
font-size: 110%;
border-bottom: none;
@@ -291,21 +291,21 @@ div.navheader h4 {
}
@media(max-width:550px){
- .titlepage h2,
+ .titlepage h2,
div.navheader h2 {
font-size: 4.7vmin;
border-bottom: none;
padding: 0.25em;
}
- .titlepage h3,
+ .titlepage h3,
div.navheader h3 {
font-size: 4.5vmin;
border-bottom: none;
padding: 0.25em;
}
- .titlepage h4,
+ .titlepage h4,
div.navheader h4 {
font-size: 4.3vmin;
border-bottom: none;
@@ -337,7 +337,7 @@ div.navheader ul {
display:none;
}
-@media(min-width:550px) and (min-height:550px),
+@media(min-width:550px) and (min-height:550px),
(min-width:1220px) and (min-height:550px){
div.navfooter{
top: 0px;
@@ -406,7 +406,7 @@ div.navfooter ul{
width: 0px;
}
-div.navheader ul li.prev,
+div.navheader ul li.prev,
div.navfooter ul li.prev {
position: fixed;
display: block;
@@ -421,7 +421,7 @@ div.navfooter ul li.prev {
/*padding-bottom: 3em;*/
}
/*
-div.navheader ul li.next,
+div.navheader ul li.next,
div.navfooter ul li.next {
position: fixed;
display: block;
@@ -433,7 +433,7 @@ div.navfooter ul li.next {
max-width: 170px;
}
*/
-div.navheader ul li.next,
+div.navheader ul li.next,
div.navfooter ul li.next {
position: fixed;
display: block;
@@ -445,9 +445,9 @@ div.navfooter ul li.next {
max-width: 170px;
}
-div.navheader ul li.prev p,
+div.navheader ul li.prev p,
div.navfooter ul li.prev p,
-div.navheader ul li.next p,
+div.navheader ul li.next p,
div.navfooter ul li.next p {
padding: 0em;
padding-bottom: 3em;
@@ -458,7 +458,7 @@ div.navfooter ul li.next p {
font-weight: bold;
}
-div.navheader ul li.home,
+div.navheader ul li.home,
div.navfooter ul li.home {
position: fixed;
text-align: left;
@@ -472,7 +472,7 @@ div.navfooter ul li.home {
max-width: 200px;
}
-div.navheader ul li.up,
+div.navheader ul li.up,
div.navfooter ul li.up {
position: fixed;
text-align: left;
@@ -487,7 +487,7 @@ div.navfooter ul li.up {
/*border: 1px solid black;*/
}
-div.navheader ul li.up a,
+div.navheader ul li.up a,
div.navfooter ul li.up a {
display: block;
padding: 10px 5px 10px 28px;
@@ -495,7 +495,7 @@ div.navfooter ul li.up a {
background-size: 20px 20px;
}
-div.navheader ul li.home a,
+div.navheader ul li.home a,
div.navfooter ul li.home a {
display: block;
padding: 10px 5px 10px 28px;
@@ -503,7 +503,7 @@ div.navfooter ul li.home a {
background-size: 20px 20px;
}
-div.navheader ul li.prev a,
+div.navheader ul li.prev a,
div.navfooter ul li.prev a {
display: block;
padding: 10px 5px 10px 35px;
@@ -522,7 +522,7 @@ div.navheader ul li.prev p {
border: 1px solid blue;
}
*/
-div.navheader ul li.next a,
+div.navheader ul li.next a,
div.navfooter ul li.next a{
display: block;
padding: 10px 35px 10px 5px;
@@ -531,25 +531,25 @@ div.navfooter ul li.next a{
}
@media(max-width:1220px) and (min-height:550px){
- div.navheader ul li,
+ div.navheader ul li,
div.navfooter ul li{
width: 120px;
}
-
- div.navheader ul li.prev p,
+
+ div.navheader ul li.prev p,
div.navheader ul li.next p,
- div.navfooter ul li.prev p,
+ div.navfooter ul li.prev p,
div.navfooter ul li.next p{
text-align: center;
/*border: 1px solid blue;
margin: 2px;*/
height: 7.5vh; /* 7.5% ov viewport height */
- overflow: hidden;
+ overflow: hidden;
}
/*
- div.navheader ul li.prev p:after,
- div.navheader ul li.next p:after,
- div.navfooter ul li.prev p:after,
+ div.navheader ul li.prev p:after,
+ div.navheader ul li.next p:after,
+ div.navfooter ul li.prev p:after,
div.navfooter ul li.next p:after{
content: "";
text-align: right;
@@ -558,12 +558,12 @@ div.navfooter ul li.next a{
right: 0px;
width: 100%;
height: 2.8em;
-
+
background: linear-gradient(to bottom, rgba(0, 0, 0, 1), rgba(255, 255, 255, 1) 100%);
-
+
}
*/
- div.navheader ul li.prev,
+ div.navheader ul li.prev,
div.navfooter ul li.prev {
position: fixed;
display: block;
@@ -573,7 +573,7 @@ div.navfooter ul li.next a{
margin: 0px;
}
- div.navheader ul li.prev a,
+ div.navheader ul li.prev a,
div.navfooter ul li.prev a{
display: block;
text-align: center;
@@ -582,8 +582,8 @@ div.navfooter ul li.next a{
background: url(../images/chevron-left.png) no-repeat center 5vh;
background-size: 25px 25px;
}
-
- div.navheader ul li.next,
+
+ div.navheader ul li.next,
div.navfooter ul li.next {
position: fixed;
display: block;
@@ -592,8 +592,8 @@ div.navfooter ul li.next a{
padding: 0px;
margin: 0px;
}
-
- div.navheader ul li.next a,
+
+ div.navheader ul li.next a,
div.navfooter ul li.next a {
display: block;
text-align: center;
@@ -602,10 +602,10 @@ div.navfooter ul li.next a{
background: url(../images/chevron-right.png) no-repeat center 5vh;
background-size: 25px 25px;
}
-
- div.navheader ul li.home,
+
+ div.navheader ul li.home,
div.navheader ul li.up,
- div.navfooter ul li.home,
+ div.navfooter ul li.home,
div.navfooter ul li.up {
position: fixed;
padding: 0px;
@@ -615,17 +615,17 @@ div.navfooter ul li.next a{
margin: 0px;
}
- div.navheader ul li.home,
+ div.navheader ul li.home,
div.navfooter ul li.home{
top:25vh;
}
- div.navheader ul li.up,
+ div.navheader ul li.up,
div.navfooter ul li.up{
top:10vh;
}
-
- div.navheader ul li.home a,
+
+ div.navheader ul li.home a,
div.navfooter ul li.home a{
display: block;
text-align: center;
@@ -635,7 +635,7 @@ div.navfooter ul li.next a{
background-size: 25px 25px;
}
- div.navheader ul li.up a,
+ div.navheader ul li.up a,
div.navfooter ul li.up a{
display: block;
text-align: center;
@@ -647,28 +647,28 @@ div.navfooter ul li.next a{
}
/* End media */
-@media(max-width:1220px) and (max-height:550px) and (min-width:800px),
+@media(max-width:1220px) and (max-height:550px) and (min-width:800px),
(min-width:1220px) and (max-height:350px){
- div.navheader ul li.prev p,
+ div.navheader ul li.prev p,
div.navfooter ul li.prev p,
- div.navheader ul li.next p,
+ div.navheader ul li.next p,
div.navfooter ul li.next p
{
display: none;
}
-
- div.navheader ul li.prev,
+
+ div.navheader ul li.prev,
div.navfooter ul li.prev {
max-width: 120px;
position: fixed;
display: block;
- top: 45vmin; /* smaller of 60% viewport height, width */
+ top: 45vmin; /* smaller of 60% viewport height, width */
padding: 0px;
margin-left: 10px;
font-size: 90%;
}
-
- div.navheader ul li.next,
+
+ div.navheader ul li.next,
div.navfooter ul li.next {
max-width: 120px;
position: fixed;
@@ -679,13 +679,13 @@ div.navfooter ul li.next a{
margin-left: 10px;
font-size: 90%;
}
-
- div.navheader ul li.prev a,
+
+ div.navheader ul li.prev a,
div.navfooter ul li.prev a {
background-size: 20px 20px;
}
-
- div.navheader ul li.next a,
+
+ div.navheader ul li.next a,
div.navfooter ul li.next a{
display: block;
padding: 10px 5px 10px 35px;
@@ -693,10 +693,10 @@ div.navfooter ul li.next a{
background-size: 20px 20px;
text-align: left;
}
-
- div.navheader ul li.home,
+
+ div.navheader ul li.home,
div.navheader ul li.up,
- div.navfooter ul li.home,
+ div.navfooter ul li.home,
div.navfooter ul li.up {
max-width: 120px;
position: fixed;
@@ -706,20 +706,20 @@ div.navfooter ul li.next a{
color: #dbddec;
font-size: 90%;
}
-
- div.navheader ul li.home,
+
+ div.navheader ul li.home,
div.navfooter ul li.home{
top: 35vmin;
}
-
- div.navheader ul li.up,
+
+ div.navheader ul li.up,
div.navfooter ul li.up{
top: 10vmin;
}
-
- div.navheader ul li.home a,
+
+ div.navheader ul li.home a,
div.navfooter ul li.home a,
- div.navheader ul li.up a,
+ div.navheader ul li.up a,
div.navfooter ul li.up a{
padding: 10px 5px 10px 35px;
}
@@ -728,14 +728,14 @@ div.navfooter ul li.next a{
@media(max-width:550px),
(max-width:800px) and (max-height:550px){
- div.navheader ul li.prev p,
+ div.navheader ul li.prev p,
div.navfooter ul li.prev p,
- div.navheader ul li.next p,
+ div.navheader ul li.next p,
div.navfooter ul li.next p {
display: none;
}
-
- div.navheader ul li.prev,
+
+ div.navheader ul li.prev,
div.navfooter ul li.prev {
position: fixed;
display: block;
@@ -744,8 +744,8 @@ div.navfooter ul li.next a{
padding: 0px;
margin: 0px;
}
-
- div.navheader ul li.prev a,
+
+ div.navheader ul li.prev a,
div.navfooter ul li.prev a{
display: block;
width: 0px;
@@ -757,8 +757,8 @@ div.navfooter ul li.next a{
background-size: 6vmin 6vmin;
overflow: hidden;
}
-
- div.navheader ul li.next,
+
+ div.navheader ul li.next,
div.navfooter ul li.next {
position: fixed;
display: block;
@@ -767,8 +767,8 @@ div.navfooter ul li.next a{
padding: 0px;
margin: 0px;
}
-
- div.navheader ul li.next a,
+
+ div.navheader ul li.next a,
div.navfooter ul li.next a{
display: block;
width: 0px;
@@ -780,10 +780,10 @@ div.navfooter ul li.next a{
background-size: 6vmin 6vmin;
overflow: hidden;
}
-
- div.navheader ul li.home,
+
+ div.navheader ul li.home,
div.navheader ul li.up,
- div.navfooter ul li.home,
+ div.navfooter ul li.home,
div.navfooter ul li.up {
position: fixed;
padding: 0px;
@@ -792,18 +792,18 @@ div.navfooter ul li.next a{
color: #dbddec;
left: 0px;
}
-
- div.navheader ul li.home,
+
+ div.navheader ul li.home,
div.navfooter ul li.home{
top: 40vmin;
}
-
- div.navheader ul li.up,
+
+ div.navheader ul li.up,
div.navfooter ul li.up{
top: 20vmin;
}
-
- div.navheader ul li.home a,
+
+ div.navheader ul li.home a,
div.navfooter ul li.home a{
display: block;
width: 0px;
@@ -814,8 +814,8 @@ div.navfooter ul li.next a{
background-size: 6vmin 6vmin;
overflow: hidden;
}
-
- div.navheader ul li.up a,
+
+ div.navheader ul li.up a,
div.navfooter ul li.up a{
display: block;
width: 0px;
@@ -830,14 +830,14 @@ div.navfooter ul li.next a{
/* End media */
/* TOC */
-div.toc ul,
-div.index ul,
-div.navheader ul,
+div.toc ul,
+div.index ul,
+div.navheader ul,
div.navfooter ul {
list-style: none;
}
-li.preface,
+li.preface,
.part li.appendix {
margin-left: 1em;
}
@@ -846,8 +846,8 @@ div.toc h3 {
margin: 1em 0em 0.3em 0em;
}
-li.appendix h3,
-li.glossary h3,
+li.appendix h3,
+li.glossary h3,
li.index h3 {
margin: 0.5em
}
@@ -911,13 +911,13 @@ li.chapter h4 a {
width: 100%;
margin-left: 1em;
}
-
+
.item + .indexref {
display: inline-block;
padding-left: 0px;
margin-left: 1em;
}
-
+
.secitem + .indexref {
display: inline-block;
padding-left: 0px;
@@ -947,7 +947,7 @@ div.admon pre {
margin: 0.5em 3em;
}
-div.note,
+div.note,
div.tip {
margin: 1em;
padding: 0.2em 0.5em 0.75em 0.75em;
@@ -958,8 +958,8 @@ div.tip {
line-height: 1.4em;
}
-div.important,
-div.warning,
+div.important,
+div.warning,
div.caution {
margin: 1em;
padding: 0.2em 0.5em 0.75em 0.75em;
@@ -970,14 +970,14 @@ div.caution {
line-height: 1.4em;
}
-div.important h3,
-div.warning h3,
+div.important h3,
+div.warning h3,
div.caution h3 {
color: #900;
}
-div.important em,
-div.warning em,
+div.important em,
+div.warning em,
div.caution em {
color: #000;
font-weight: bold;
@@ -995,7 +995,7 @@ div.caution em {
margin-right: auto;
}
-.table table th,
+.table table th,
.table table td {
padding: 0.2em 2em 0.2em 2em;
text-align: left;
@@ -1038,7 +1038,7 @@ div.caution em {
}
/* End media */
-.variablelist td span,
+.variablelist td span,
td p {
margin: 0.25em;
padding: 0px;
@@ -1112,7 +1112,7 @@ div.materials dd {
display: block;
width: 100%;
}
-
+
.package .segbody, .content .segbody {
display: inline-block;
padding-left: 0px;
@@ -1194,17 +1194,17 @@ ol.compact li p {
}
/* Indented blocks */
-p,
+p,
blockquote {
padding-left: 1em;
padding-right: 1em;
}
/* Monospaced elements */
-tt,
-code,
-kbd,
-pre,
+tt,
+code,
+kbd,
+pre,
.command {
font-family: monospace;
}
@@ -1229,7 +1229,7 @@ pre.screen {
font-weight: normal;
}
-.literal,
+.literal,
.prompt {
font-weight: normal;
}
diff --git a/udev-lfs/ChangeLog b/udev-lfs/ChangeLog
index 897acee15..560346143 100644
--- a/udev-lfs/ChangeLog
+++ b/udev-lfs/ChangeLog
@@ -8,257 +8,257 @@
* Makefile.lfs: Adjust warning flags. Adjust linking rules to
allow build with util-linux in LFS's /tools directory.
-2010-01-26 Matt Burgess <matthew@linuxfromscratch.org>
- * 55-lfs.rules: Remove lots of rules that have been merged upstream.
- * 61-cdrom.rules: Remove as upstream has a replacement.
- * doc/*: Cleanup and rewrite now that the rules are much simpler.
-
-2009-09-25 Bryan Kadzban <bryan@linuxfromscratch.org>
- * 55-lfs.rules: Make the RTC rule (which runs setclock) work for people
- that don't use the RTC-class driver -- add another copy of the rule,
- using KERNEL=="rtc" instead of SUBSYSTEM=="rtc". Also move the ACTION
- match before the assignment to MODE.
-
-2009-05-23 Bruce Dubbs <bdubbs@linuxfromscratch.org>
- * 55-lfs.rules: Set the rtc by udev upon boot. Removed aio device from
- udev configuration so defaults are used.
-
-2009-05-16 Bryan Kadzban <bryan@linuxfromscratch.org>
- * 55-lfs.rules: Adopt udev permissions for random, urandom, kmsg, and
- input devices (including psaux, which probably doesn't exist anymore
- anyway).
-
-2009-05-16 Matt Burgess <matthew@linuxfromscratch.org>
- * 55-lfs.rules: Remove the block rule as it was only setting
- permissions that Udev will set by default
- * 55-lfs.rules: Remove the rfcomm rule as the group it sets is already
- included in upstream's rule
- * 55-lfs-rules: Remove the tape rules as the group they sets is already
- included in upstream's rules
-
-2009-03-15 Bryan Kadzban <bryan@linuxfromscratch.org>
- * 55-lfs.rules: Remove the ISDN-handling rules (replaced with upstream's
- version, which has a better match via SUBSYSTEM).
- * 55-lfs.rules: Replace "uucp" with "dialout" now that udev has decided
- to standardize on a Debian-like setup (uucp is for UUCP daemons to use
- for privilege separation; dialout is for users and devices).
+2010-01-26 Matt Burgess <matthew@linuxfromscratch.org>
+ * 55-lfs.rules: Remove lots of rules that have been merged upstream.
+ * 61-cdrom.rules: Remove as upstream has a replacement.
+ * doc/*: Cleanup and rewrite now that the rules are much simpler.
+
+2009-09-25 Bryan Kadzban <bryan@linuxfromscratch.org>
+ * 55-lfs.rules: Make the RTC rule (which runs setclock) work for people
+ that don't use the RTC-class driver -- add another copy of the rule,
+ using KERNEL=="rtc" instead of SUBSYSTEM=="rtc". Also move the ACTION
+ match before the assignment to MODE.
+
+2009-05-23 Bruce Dubbs <bdubbs@linuxfromscratch.org>
+ * 55-lfs.rules: Set the rtc by udev upon boot. Removed aio device from
+ udev configuration so defaults are used.
+
+2009-05-16 Bryan Kadzban <bryan@linuxfromscratch.org>
+ * 55-lfs.rules: Adopt udev permissions for random, urandom, kmsg, and
+ input devices (including psaux, which probably doesn't exist anymore
+ anyway).
+
+2009-05-16 Matt Burgess <matthew@linuxfromscratch.org>
+ * 55-lfs.rules: Remove the block rule as it was only setting
+ permissions that Udev will set by default
+ * 55-lfs.rules: Remove the rfcomm rule as the group it sets is already
+ included in upstream's rule
+ * 55-lfs-rules: Remove the tape rules as the group they sets is already
+ included in upstream's rules
+
+2009-03-15 Bryan Kadzban <bryan@linuxfromscratch.org>
+ * 55-lfs.rules: Remove the ISDN-handling rules (replaced with upstream's
+ version, which has a better match via SUBSYSTEM).
+ * 55-lfs.rules: Replace "uucp" with "dialout" now that udev has decided
+ to standardize on a Debian-like setup (uucp is for UUCP daemons to use
+ for privilege separation; dialout is for users and devices).
2008-12-07 Bruce Dubbs <bdubbs@linuxfromscratch.org>
- * 55-lfs.rules: Change one line to use continuation so it does
- not overflow the book's width.
+ * 55-lfs.rules: Change one line to use continuation so it does
+ not overflow the book's width.
2008-12-07 Bryan Kadzban <bryan@linuxfromscratch.org>
- * 55-lfs.rules: Remove several rules that are either provided by upstream,
- or that don't have any effect (there is no /dev/js or /dev/djs according
- to devices.txt).
- * 55-lfs.rules, 61-cdrom.rules: Replace ACTION=="add" with "add|change"
- everywhere, per upstream's general request.
+ * 55-lfs.rules: Remove several rules that are either provided by upstream,
+ or that don't have any effect (there is no /dev/js or /dev/djs according
+ to devices.txt).
+ * 55-lfs.rules, 61-cdrom.rules: Replace ACTION=="add" with "add|change"
+ everywhere, per upstream's general request.
2008-11-11 Bryan Kadzban <bryan@linuxfromscratch.org>
- * 55-lfs.rules, 61-cdrom.rules: Fix comments to use the right rule
- numbers. Thanks to Trent Shea for the fix. Closes #2278.
+ * 55-lfs.rules, 61-cdrom.rules: Fix comments to use the right rule
+ numbers. Thanks to Trent Shea for the fix. Closes #2278.
2008-10-15 DJ Lucas <dj@linuxfromscratch.org>
- * 55-lfs.rules: Override default perms on floppy disk devices provided
- by 50-udev-default.rules. Thanks to Bruce Dubbs for the fix. Closes
- LFS ticket #2076.
+ * 55-lfs.rules: Override default perms on floppy disk devices provided
+ by 50-udev-default.rules. Thanks to Bruce Dubbs for the fix. Closes
+ LFS ticket #2076.
2008-05-21 Bryan Kadzban <bryan@linuxfromscratch.org>
- * 81-firmware.rules, doc/81-firmware.txt: Remove. This rule is
- already handled by udev's 50-udev-default.rules file. The docs
- can be added back later if needed.
- * Makefile: Don't install the above deleted files.
- * 55-lfs.rules: Remove the device-mapper rule, since the upstream
- 50-udev-default.rules file handles it properly.
+ * 81-firmware.rules, doc/81-firmware.txt: Remove. This rule is
+ already handled by udev's 50-udev-default.rules file. The docs
+ can be added back later if needed.
+ * Makefile: Don't install the above deleted files.
+ * 55-lfs.rules: Remove the device-mapper rule, since the upstream
+ 50-udev-default.rules file handles it properly.
2008-04-02 Bryan Kadzban <bryan@linuxfromscratch.org>
- * Makefile: Make the package DESTDIR-friendly by installing the docs
- into a fixed $(PREFIX)/share/doc/udev-config directory, instead of
- trying to figure out what version of udev was just installed.
+ * Makefile: Make the package DESTDIR-friendly by installing the docs
+ into a fixed $(PREFIX)/share/doc/udev-config directory, instead of
+ trying to figure out what version of udev was just installed.
2007-10-30 Bryan Kadzban <bryan@linuxfromscratch.org>
- * 55-lfs.rules: Since the dialout group was renamed to uucp, delete
- the rules that override upstream's assignment of the dialout group.
- Replace "dialout" with "uucp" on the remaining rules.
+ * 55-lfs.rules: Since the dialout group was renamed to uucp, delete
+ the rules that override upstream's assignment of the dialout group.
+ Replace "dialout" with "uucp" on the remaining rules.
2007-10-29 Bryan Kadzban <bryan@linuxfromscratch.org>
- * 51-lfs.rules: Move to 55-lfs.rules.
- * doc/51-lfs.rules: Move to doc/55-lfs.rules.
+ * 51-lfs.rules: Move to 55-lfs.rules.
+ * doc/51-lfs.rules: Move to doc/55-lfs.rules.
2007-10-27 Bryan Kadzban <bryan@linuxfromscratch.org>
- * 25-lfs.rules: Some rules in here are duplicates of rules from udev's
- new 50-udev-defaults.rules file; remove them. Override permissions
- where needed elsewhere (and document overrides in comments).
- * 26-modprobe.rules: Provided by udev's 80-drivers.rules and built-in
- modaliases for SCSI device-type modules in 2.6.22+ kernels; remove.
+ * 25-lfs.rules: Some rules in here are duplicates of rules from udev's
+ new 50-udev-defaults.rules file; remove them. Override permissions
+ where needed elsewhere (and document overrides in comments).
+ * 26-modprobe.rules: Provided by udev's 80-drivers.rules and built-in
+ modaliases for SCSI device-type modules in 2.6.22+ kernels; remove.
- * 25-lfs.rules: Move to 51-lfs.rules.
- * 27-firmware.rules: Move to 81-firmware.rules.
- * 81-cdrom.rules: Move to 61-cdrom.rules.
+ * 25-lfs.rules: Move to 51-lfs.rules.
+ * 27-firmware.rules: Move to 81-firmware.rules.
+ * 81-cdrom.rules: Move to 61-cdrom.rules.
- * doc/25-lfs.txt: Rename to 51-lfs.txt.
- * doc/26-modprobe.txt: Rename to 80-drivers.txt, and modify to reflect
- the upstream rules.
- * doc/27-firmware.txt: Rename to 81-firmware.txt.
- * doc/81-cdrom.txt: Rename to 61-cdrom.txt.
+ * doc/25-lfs.txt: Rename to 51-lfs.txt.
+ * doc/26-modprobe.txt: Rename to 80-drivers.txt, and modify to reflect
+ the upstream rules.
+ * doc/27-firmware.txt: Rename to 81-firmware.txt.
+ * doc/81-cdrom.txt: Rename to 61-cdrom.txt.
- * Makefile: Use new filenames.
+ * Makefile: Use new filenames.
2007-07-31 Dan Nicholson <dnicholson@linuxfromscratch.org>
- * 25-lfs.rules: Changed the usb_device rule tto create /dev/bus/usb
- nodes if the usb_device in 2.6.22+ kernels. The rule was also changed
- to only trigger on "add" events. This change is not backwards
- compatible with older kernels.
+ * 25-lfs.rules: Changed the usb_device rule tto create /dev/bus/usb
+ nodes if the usb_device in 2.6.22+ kernels. The rule was also changed
+ to only trigger on "add" events. This change is not backwards
+ compatible with older kernels.
2007-06-12 Dan Nicholson <dnicholson@linuxfromscratch.org>
- * 25-lfs.rules: Fix the CPUID nodes from cpu/%n/cpu to cpu/%n/cpuid,
- which is what's expected in userspace apps such as x86info.
+ * 25-lfs.rules: Fix the CPUID nodes from cpu/%n/cpu to cpu/%n/cpuid,
+ which is what's expected in userspace apps such as x86info.
2007-06-08 Bryan Kadzban <bryan@linuxfromscratch.org>
- * 25-lfs.rules: Add rules for DVB devices (create nodes in /dev/dvb/)
- and floppies (create extra nodes based on CMOS type), copied from
- the SuSE rules file. Thanks to Alexander Patrakov for the bugreport.
+ * 25-lfs.rules: Add rules for DVB devices (create nodes in /dev/dvb/)
+ and floppies (create extra nodes based on CMOS type), copied from
+ the SuSE rules file. Thanks to Alexander Patrakov for the bugreport.
-2007-03-04 Matthew Burgess <matthew@linuxfromscratch.org>
- * Makefile: Use `udevd --version' to work out what version of Udev is
- installed (requires Udev >= 106)
+2007-03-04 Matthew Burgess <matthew@linuxfromscratch.org>
+ * Makefile: Use `udevd --version' to work out what version of Udev is
+ installed (requires Udev >= 106)
2007-01-02 Bryan Kadzban <bryan@linuxfromscratch.org>
- * 25-lfs.rules: Change CPU devices (cpu, msr, microcode) to be in
- /dev/cpu/ and /dev/cpu/N/, to match Documentation/devices.txt.
+ * 25-lfs.rules: Change CPU devices (cpu, msr, microcode) to be in
+ /dev/cpu/ and /dev/cpu/N/, to match Documentation/devices.txt.
2006-10-21 Bryan Kadzban <bryan@linuxfromscratch.org>
- * Makefile: Add a missing backslash in install-extra-doc.
+ * Makefile: Add a missing backslash in install-extra-doc.
- * 05-udev-early.rules, 60-persistent-input.rules,
- 60-persistent-storage.rules, 95-udev-late.rules: Remove. The book
- will install these files from udev's etc/udev/rules.d directory
- instead.
- * Makefile: Don't install these rules files after all. Also, only
- install corresponding docs if requested.
+ * 05-udev-early.rules, 60-persistent-input.rules,
+ 60-persistent-storage.rules, 95-udev-late.rules: Remove. The book
+ will install these files from udev's etc/udev/rules.d directory
+ instead.
+ * Makefile: Don't install these rules files after all. Also, only
+ install corresponding docs if requested.
2006-10-20 Bryan Kadzban <bryan@linuxfromscratch.org>
- * Makefile: Added; contains targets to install rules and doc files.
- From Dan Nicholson.
+ * Makefile: Added; contains targets to install rules and doc files.
+ From Dan Nicholson.
2006-10-14 Bryan Kadzban <bryan@linuxfromscratch.org>
- * 05-udev-early.rules, 60-persistent-storage.rules: Sync up with
- upstream sample rules files (from udev-102), except for one rule
- which is more specific in our tarball and should probably be changed
- upstream.
- * doc/60-persistent-storage.txt: Modify to match the changes. Also
- fix a couple typos.
+ * 05-udev-early.rules, 60-persistent-storage.rules: Sync up with
+ upstream sample rules files (from udev-102), except for one rule
+ which is more specific in our tarball and should probably be changed
+ upstream.
+ * doc/60-persistent-storage.txt: Modify to match the changes. Also
+ fix a couple typos.
- * 25-lfs.rules: Remove duplicate rules (ttyS[0-9]* is also matched by
- tty[BC...S...][0-9]*, and ttyUSB[0-9]* is in there twice).
+ * 25-lfs.rules: Remove duplicate rules (ttyS[0-9]* is also matched by
+ tty[BC...S...][0-9]*, and ttyUSB[0-9]* is in there twice).
- * 25-lfs.rules: Fix Alsa device KERNEL rules. Udev uses shell-style
- glob matching, not regular expressions, so the old rules would match
- nonsense device names like hw0asdf and pcmDzxcv. As long as the first
- character after the "fixed" portion was in the list, the rule would
- match; it wouldn't apply the same character range to later characters.
+ * 25-lfs.rules: Fix Alsa device KERNEL rules. Udev uses shell-style
+ glob matching, not regular expressions, so the old rules would match
+ nonsense device names like hw0asdf and pcmDzxcv. As long as the first
+ character after the "fixed" portion was in the list, the rule would
+ match; it wouldn't apply the same character range to later characters.
- * doc/25-lfs.txt: Add a note on interaction between permissions and
- symlinks.
+ * doc/25-lfs.txt: Add a note on interaction between permissions and
+ symlinks.
2006-10-09 Bryan Kadzban <bryan@linuxfromscrtach.org>
- * 25-lfs.rules: Fix fb[0-9]* device permissions (should use the default
- 0660).
+ * 25-lfs.rules: Fix fb[0-9]* device permissions (should use the default
+ 0660).
- * doc/25-lfs.txt: Fix typo: /dev/ptmx is given mode 0666, not 0660.
- Also tweak the comment about other TTY devices.
+ * doc/25-lfs.txt: Fix typo: /dev/ptmx is given mode 0666, not 0660.
+ Also tweak the comment about other TTY devices.
2006-10-04 Bryan Kadzban <bryan@linuxfromscratch.org>
- * 05-udev-early.rules: Remove WAIT_FOR_SYSFS="bus" rule. With kernel
- 2.6.18, this rule is no longer required.
+ * 05-udev-early.rules: Remove WAIT_FOR_SYSFS="bus" rule. With kernel
+ 2.6.18, this rule is no longer required.
- * doc/05-udev-early.txt: Update to match.
+ * doc/05-udev-early.txt: Update to match.
2006-09-28 Bryan Kadzban <bryan@linuxfromscratch.org>
- * doc/60-persistent-storage.txt: Explain persistent storage rules, or
- at least the parts I understand. (I don't use DASD or netblock or
- several other supported configurations.)
+ * doc/60-persistent-storage.txt: Explain persistent storage rules, or
+ at least the parts I understand. (I don't use DASD or netblock or
+ several other supported configurations.)
- * doc/81-cdrom.txt: Explain 81-cdrom.rules.
+ * doc/81-cdrom.txt: Explain 81-cdrom.rules.
- * doc/95-udev-late.txt: Explain 95-udev-late.rules. Documentation is
- now finished.
+ * doc/95-udev-late.txt: Explain 95-udev-late.rules. Documentation is
+ now finished.
2006-09-26 Bryan Kadzban <bryan@linuxfromscratch.org>
- * doc/60-persistent-input.txt: Explain (in probably too much detail)
- 60-persistent-input.rules.
+ * doc/60-persistent-input.txt: Explain (in probably too much detail)
+ 60-persistent-input.rules.
2006-09-24 Bryan Kadzban <bryan@linuxfromscratch.org>
- * doc/05-udev-early.txt: Rewrap to fit 80 columns.
+ * doc/05-udev-early.txt: Rewrap to fit 80 columns.
- * doc/26-modprobe.txt: Explain 26-modprobe.rules, and modaliases.
+ * doc/26-modprobe.txt: Explain 26-modprobe.rules, and modaliases.
- * doc/27-firmware.txt: Explain 27-firmware.rules.
+ * doc/27-firmware.txt: Explain 27-firmware.rules.
2006-09-24 Bryan Kadzban <bryan@linuxfromscratch.org>
- * doc/25-lfs.txt: Explain 25-lfs.rules.
+ * doc/25-lfs.txt: Explain 25-lfs.rules.
- * 25-lfs.rules: Use SYMLINK+= for isdn/capi20 also.
+ * 25-lfs.rules: Use SYMLINK+= for isdn/capi20 also.
2006-09-23 Bryan Kadzban <bryan@linuxfromscratch.org>
- * doc: New subdirectory to contain documentation of rules
- * doc/README: New file, top-level documentation
- * doc/*.txt: New documentation files, one for each rules file. Only
- 05-udev-early.txt has anything in it.
+ * doc: New subdirectory to contain documentation of rules
+ * doc/README: New file, top-level documentation
+ * doc/*.txt: New documentation files, one for each rules file. Only
+ 05-udev-early.txt has anything in it.
2006-09-23 Bryan Kadzban <bryan@linuxfromscratch.org>
- * 25-lfs.rules: Add "ignore_device" to OPTIONS for DRI devices, instead
- of setting NAME to an empty string. This matches the way we ignore
- devmapper / LVM devices.
+ * 25-lfs.rules: Add "ignore_device" to OPTIONS for DRI devices, instead
+ of setting NAME to an empty string. This matches the way we ignore
+ devmapper / LVM devices.
2006-09-22 Bryan Kadzban <bryan@linuxfromscratch.org>
- * 60-persistent-input.rules, 95-udev-late.rules: Import from udev-100.
- 60-persistent-input.rules creates persistent symlinks for input
- devices, and 95-udev-late.rules enables udevmonitor.
+ * 60-persistent-input.rules, 95-udev-late.rules: Import from udev-100.
+ 60-persistent-input.rules creates persistent symlinks for input
+ devices, and 95-udev-late.rules enables udevmonitor.
- * 60-persistent-storage.rules: Replace ATTRS{../removable} with just
- ATTRS{removable} on partition devices. Replace ATTRS{removable}
- with ATTR{removable} on whole-disk devices.
+ * 60-persistent-storage.rules: Replace ATTRS{../removable} with just
+ ATTRS{removable} on partition devices. Replace ATTRS{removable}
+ with ATTR{removable} on whole-disk devices.
2006-09-20 Bryan Kadzban <bryan@linuxfromscratch.org>
- * 05-early.rules: Missed a rule in the last change. ENV{PHYSDEVBUS}
- in the rule that waits for the "bus" symlink should be replaced by
- SUBSYSTEMS.
+ * 05-early.rules: Missed a rule in the last change. ENV{PHYSDEVBUS}
+ in the rule that waits for the "bus" symlink should be replaced by
+ SUBSYSTEMS.
2006-09-20 Bryan Kadzban <bryan@linuxfromscratch.org>
- * Adapted rules to the new matches used in udev-098 and above (e.g.,
- SYSFS becomes ATTRS). Prevents warnings, and support for the old
- matches will be removed eventually. These rules will not work with
- udev-097 and before!
- * Fixed several bugs in the rules left over from previous udev
- versions (missing commas, overwriting user symlinks using ="..."
- instead of +="...", and matching against "*" instead of "?*").
-
- * Renamed CHANGELOG to ChangeLog, started using pseudo-GNU-format
- entries. (See standards.info; search it for "changelog" to get
- the general gist.)
+ * Adapted rules to the new matches used in udev-098 and above (e.g.,
+ SYSFS becomes ATTRS). Prevents warnings, and support for the old
+ matches will be removed eventually. These rules will not work with
+ udev-097 and before!
+ * Fixed several bugs in the rules left over from previous udev
+ versions (missing commas, overwriting user symlinks using ="..."
+ instead of +="...", and matching against "*" instead of "?*").
+
+ * Renamed CHANGELOG to ChangeLog, started using pseudo-GNU-format
+ entries. (See standards.info; search it for "changelog" to get
+ the general gist.)
dnicholson - Jul 14, 2006
- * Fixed usbdev PROGRAM so that it works with the BusyBox sh. Thanks
- to Anthony Wright.
+ * Fixed usbdev PROGRAM so that it works with the BusyBox sh. Thanks
+ to Anthony Wright.
n/a - Jul 12, 2006
- * Added options so temporary nodes are not created with device-mapper
- * Adapted cdrom rules to identify CD-ROM drives correctly by adding
- SUBSYSTEM=="block" test.
- * Added simple 81-cdrom.rules file to set cdrom group ownership
+ * Added options so temporary nodes are not created with device-mapper
+ * Adapted cdrom rules to identify CD-ROM drives correctly by adding
+ SUBSYSTEM=="block" test.
+ * Added simple 81-cdrom.rules file to set cdrom group ownership
n/a - Jun 07, 2006
- * Removed nvidia rules
- * Removed bug reporting rule
- * Moved Debian-based persistent CD-ROM rules to contrib
- * Adapted firmware rule to udev-093
+ * Removed nvidia rules
+ * Removed bug reporting rule
+ * Moved Debian-based persistent CD-ROM rules to contrib
+ * Adapted firmware rule to udev-093
n/a - May 15, 2006
- * Part one of 25-lfs.rules rewrite
- * Some minor tweaking of the layout
+ * Part one of 25-lfs.rules rewrite
+ * Some minor tweaking of the layout
n/a - May 12, 2006
- * Initial import of the udev-config directory.
- * Reorganized and modularized the rules files.
- * Added explanatory comments
+ * Initial import of the udev-config directory.
+ * Reorganized and modularized the rules files.
+ * Added explanatory comments
diff --git a/udev-lfs/contrib/debian/write_cd_aliases b/udev-lfs/contrib/debian/write_cd_aliases
index ea8eeb7d8..d22ed9ed3 100644
--- a/udev-lfs/contrib/debian/write_cd_aliases
+++ b/udev-lfs/contrib/debian/write_cd_aliases
@@ -107,7 +107,7 @@ match="BUS==\"$PHYSDEVBUS\", ID==\"$id\""
comment="$ID_MODEL ($ID_PATH)"
- write_rule "$match" "cdrom$link_num" "$comment"
+ write_rule "$match" "cdrom$link_num" "$comment"
[ "$ID_CDROM_CD_RW" ] && write_rule "$match" "cdrw$link_num"
[ "$ID_CDROM_DVD" ] && write_rule "$match" "dvd$link_num"
[ "$ID_CDROM_DVD_RW" ] && write_rule "$match" "dvdrw$link_num"