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 @@
Shizunet Co.,Ltd.
<info@shizu-net.jp> – lfs.mirror.shizu-net.jp mirror
-
+
Australian Mirrors
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 @@
&external;
- GNAT
+ GNAT
and
ISL
@@ -1186,7 +1186,7 @@
&external;
- PCRE
+ PCRE2
and
libsigsegv
@@ -2356,7 +2356,7 @@
&runtime;
- Glibc and Patch
+ Glibc
@@ -2813,7 +2813,7 @@
Linux-PAM,
lxml,
- LZ4,
+ LZ4,
make-ca,
p11-kit,
PCRE2,
@@ -3266,7 +3266,7 @@
&external;
- LZ4
+ LZ4
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"
-#
-# if type is equal to "dev"
-#
+# if type is equal to "file" or "dir"
+#
+# if type is equal to "dev"
+#
#
#
-# is the name of the file which is to be created
-# is either file, dir, or dev.
-# file creates a new file
-# dir creates a new directory
-# dev creates a new device
-# is either block, char or pipe
-# block creates a block device
-# char creates a character deivce
-# pipe creates a pipe, this will ignore the and
+# is the name of the file which is to be created
+# is either file, dir, or dev.
+# file creates a new file
+# dir creates a new directory
+# dev creates a new device
+# is either block, char or pipe
+# block creates a block device
+# char creates a character deivce
+# pipe creates a pipe, this will ignore the and
# fields
-# and are the major and minor numbers used for
+# and 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:
-# [ ...]
+# [ ...]
#
# 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..3b0651f16 100644
--- a/chapter01/changelog.xml
+++ b/chapter01/changelog.xml
@@ -40,6 +40,86 @@
appropriate for the entry or if needed the entire day's listitem.
-->
+
+ 2022-09-15
+
+
+ [bdubbs] - Update to file-5.43. Fixes
+ #5113.
+
+
+ [bdubbs] - Update to linux-5.19.8. Fixes
+ #5111.
+
+
+ [bdubbs] - Update to gawk-5.2.0. Fixes
+ #5108.
+
+
+ [bdubbs] - Update to meson-0.63.2. Fixes
+ #5106.
+
+
+ [bdubbs] - Update to ninja-1.11.1. Fixes
+ #5103.
+
+
+ [bdubbs] - Update to bc-6.0.2. Fixes
+ #5102.
+
+
+ [bdubbs] - Fix the location of udev rules in eudev. Fixes
+ #5112.
+
+
+ [bdubbs] - Remove a warning for egrep and fgrep that
+ makes tests for some packages fail.
+
+
+ [bdubbs] - Delete an empty binutils man page. Fixes
+ #5100.
+
+
+
+
+
+ 2022-09-10
+
+
+ [pierre] - Add and
+ to GCC build. Rationale
+ and some reports at
+ #5107.
+
+
+
+
+
+ 2022-09-07
+
+
+ [bdubbs] - Update to shadow-4.12.3. Fixes
+ #5101.
+
+
+ [bdubbs] - Update to Python3-3.10.7. Fixes
+ #5109.
+
+
+ [bdubbs] - Update to linux-5.19.7. Fixes
+ #5099.
+
+
+ [bdubbs] - Update to less-608. Fixes
+ #5104.
+
+
+ [bdubbs] - Update to grep-3.8. Fixes
+ #5105.
+
+
+
+
2022-09-01
diff --git a/chapter01/whatsnew.xml b/chapter01/whatsnew.xml
index 1ee469b77..d0bb33f14 100644
--- a/chapter01/whatsnew.xml
+++ b/chapter01/whatsnew.xml
@@ -44,9 +44,9 @@
Bc &bc-version;
-
+
@@ -56,27 +56,27 @@
-
+
-
+
-
+
-
+
@@ -89,81 +89,81 @@
-
- GCC-&gcc-version;
+ Gawk-&gawk-version;
+
-
+
-
+
-
+
+
+
-
- IPRoute2-&iproute2-version;
-
-
- Jinja2-&jinja2-version;
-
-
- Kbd-&kbd-version;
-
-
- Kmod-&kmod-version;
-
+
+
+
+
+ Less-&less-version;
+
-
+
+
-
+
+
Linux-&linux-version;
@@ -173,15 +173,15 @@
-
+
-
+
Meson-&meson-version;
@@ -197,24 +197,24 @@
Ninja-&ninja-version;
-
+
-
+
-
+
+
Python-&python-version;
@@ -230,12 +230,12 @@
-
+
+
@@ -245,24 +245,24 @@
-
+
+
+
-
+
+
@@ -280,33 +280,19 @@
Added:
-
- Wheel-&wheel-version;
-
-
-
- &zstd-upstream-fixes-patch;
-
+ -->
Removed:
-
+
diff --git a/chapter02/creatingfilesystem.xml b/chapter02/creatingfilesystem.xml
index 12529ce8c..1996f1cee 100644
--- a/chapter02/creatingfilesystem.xml
+++ b/chapter02/creatingfilesystem.xml
@@ -44,7 +44,7 @@
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 .
+ url="https://en.wikipedia.org/wiki/Comparison_of_file_systems"/>.
LFS assumes that the root file system (/) is of type ext4. To create
an ext4 file system on the LFS
diff --git a/chapter03/introduction.xml b/chapter03/introduction.xml
index 76fd5ee12..1b658e89d 100644
--- a/chapter03/introduction.xml
+++ b/chapter03/introduction.xml
@@ -31,7 +31,7 @@
Download locations may not always be accessible. If a download
location has changed since this book was published, Google () 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 .
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.
+ 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.
Download or otherwise obtain the following packages:
diff --git a/chapter04/settingenviron.xml b/chapter04/settingenviron.xml
index 599d4befb..64f9a5a24 100644
--- a/chapter04/settingenviron.xml
+++ b/chapter04/settingenviron.xml
@@ -189,7 +189,7 @@ EOF
After use of the lfs
user is finished at the beginning of , you can restore
- /etc/bash.bashrc (if desired).
+ /etc/bash.bashrc (if desired).
Note that the LFS Bash package we will build in
is not configured to load or execute
diff --git a/chapter05/gcc-pass1.xml b/chapter05/gcc-pass1.xml
index b7919c715..6d5bb8ad7 100644
--- a/chapter05/gcc-pass1.xml
+++ b/chapter05/gcc-pass1.xml
@@ -85,6 +85,8 @@ cd build
--with-sysroot=$LFS \
--with-newlib \
--without-headers \
+ --enable-default-pie \
+ --enable-default-ssp \
--disable-nls \
--disable-shared \
--disable-multilib \
@@ -130,6 +132,20 @@ cd build
+
+ --enable-default-pie and
+ --enable-default-ssp
+
+ Those switches allow GCC to compile programs with
+ some hardening security features (more information on those in
+ the 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.
+
+
+
+
--disable-shared
diff --git a/chapter06/gcc-pass2.xml b/chapter06/gcc-pass2.xml
index fcf768f40..0429bc299 100644
--- a/chapter06/gcc-pass2.xml
+++ b/chapter06/gcc-pass2.xml
@@ -89,6 +89,8 @@ cd build
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 db2ee1081..28c3f4aa2 100644
--- a/chapter07/cleanup.xml
+++ b/chapter07/cleanup.xml
@@ -18,10 +18,10 @@
rm -rf /usr/share/{info,man,doc}/*
- Second, the libtool .la files are only useful when linking with static
- libraries. They are unneeded and potentially harmful when using dynamic
- shared libraries, specially when using non-autotools build systems.
- While still on the target machine, remove those files now:
+ 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:find /usr/{lib,libexec} -name \*.la -delete
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:
cat > /etc/hosts << EOF
-127.0.0.1 localhost $(hostname)
-::1 localhost
+127.0.0.1 localhost $(hostname)
+::1 localhost
EOFIn order for user root to be
@@ -162,7 +162,7 @@ EOF
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 ) only recommends that,
+ url="https://refspecs.linuxfoundation.org/lsb.shtml"/>) only recommends that,
besides the group root with a
Group ID (GID) of 0, a group bin
with a GID of 1 be present. The GID of 5 is widely used for
diff --git a/chapter08/binutils.xml b/chapter08/binutils.xml
index d9855e735..26011b570 100644
--- a/chapter08/binutils.xml
+++ b/chapter08/binutils.xml
@@ -160,6 +160,10 @@ cd build
make -k check
+Twelve tests fail in the gold testsuite when the
+ and
+ options are passed to GCC. There
+ is also a known failure in the as tests.
-
+ First fix the location of udev rules in the .pc file:
+
+sed -i '/udevdir/a udev_dir=${udevdir}' src/udev/udev.pc.inPrepare Eudev for compilation:
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 @@
sed -i 's/extras//' Makefile.in
+ Now fix a programming error identified upstream:
+
+sed -i '241i UPREF(m);' interpret.h
+
Prepare Gawk for compilation:./configure --prefix=/usr
diff --git a/chapter08/gcc.xml b/chapter08/gcc.xml
index b5fcd1117..fd79683fd 100644
--- a/chapter08/gcc.xml
+++ b/chapter08/gcc.xml
@@ -73,6 +73,8 @@ cd build
../configure --prefix=/usr \
LD=ld \
--enable-languages=c,c++ \
+ --enable-default-pie \
+ --enable-default-ssp \
--disable-multilib \
--disable-bootstrap \
--with-system-zlib
@@ -103,13 +105,34 @@ cd build
+
+
+
+ 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 exectutable
+ 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.
+
+
+ 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.
+
+
+
Compile the package:makeIn 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.
@@ -136,6 +159,10 @@ su tester -c "PATH=$PATH make -k check"
url="&test-results;"/> and
.
+ In gcc, eleven tests, in the i386 test suite are known to FAIL.
+ It's because the test files do not account for the
+ --enable-default-pie option.
+
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.
@@ -199,11 +226,11 @@ readelf -l a.out | grep ': /lib'
Now make sure that we're setup to use the correct start files:
-grep -o '/usr/lib.*/crt[1in].*succeeded' dummy.log
+grep -E -o '/usr/lib.*/S?crt[1in].*succeeded' dummy.logThe output of the last command should be:
-/usr/lib/gcc/x86_64-pc-linux-gnu/&gcc-version;/../../../../lib/crt1.o succeeded
+/usr/lib/gcc/x86_64-pc-linux-gnu/&gcc-version;/../../../../lib/Scrt1.o succeeded
/usr/lib/gcc/x86_64-pc-linux-gnu/&gcc-version;/../../../../lib/crti.o succeeded
/usr/lib/gcc/x86_64-pc-linux-gnu/&gcc-version;/../../../../lib/crtn.o succeeded
@@ -561,7 +588,8 @@ mv -v /usr/lib/*gdb.py /usr/share/gdb/auto-load/usr/liblibsspContains routines supporting GCC's stack-smashing protection
- functionality
+ functionality. Normally it's unused because glibc also provides
+ those routines
libssp
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 @@
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.
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 @@
Installation of Grep
+
+ First, remove a warning about using egrep and fgrep that makes
+ tests on some packages fail:
+
+
+sed -i "s/echo/#echo/" src/egrep.sh
+
Prepare Grep for compilation:./configure --prefix=/usr
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 @@
PAGE=<paper_size> ./configure --prefix=/usr
+ Build the package:
+
makeThis package does not come with a test suite.
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 @@
To test the results, issue:
-make check
+make -k checkThe test time for libtool can be reduced significantly on a
system with multiple cores. To do this, append
@@ -61,8 +61,9 @@
percent.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.
+ 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.
Install the package:
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/
meson
- /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
@@ -108,7 +108,7 @@ install -vDm644 data/shell-completions/zsh/_meson /usr/share/zsh/site-functions/
- meson
+ mesonA high productivity build system
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 @@
@@ -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
DESTDIR, and replace the library file correctly using
- install command. A useless static archive which is
- not handled by configure is also removed:
+ install command:
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
libformw.so,
libmenuw.so,
libncursesw.so,
+ libncurses++w.so,
libpanelw.so, and their non-wide-character counterparts without "w"
in the library names.
@@ -366,6 +366,16 @@ cp -av lib/lib*.so.5* /usr/lib
+
+ libncurses++w
+
+ Contains C++ binding for other libraries in this package
+
+ libncurses++w
+
+
+
+
libformw
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 @@
Installation of OpenSSL
+ Processor type and features --->
+ [*] Build a relocatable kernel [CONFIG_RELOCATABLE]
+ [*] Randomize the address of the kernel image (KASLR) [CONFIG_RANDOMIZE_BASE]
+General setup --->
[ ] Compile the kernel with warnings as errors [CONFIG_WERROR]
< > Enable kernel headers through /sys/kernel/kheaders.tar.xz [CONFIG_IKHEADERS]
+General architecture-dependent options --->
+ [*] Stack Protector buffer overflow detection [CONFIG_STACKPROTECTOR]
+ [*] Strong Stack Protector [CONFIG_STACKPROTECTOR_STRONG]
Device Drivers --->
Graphics support --->
Frame buffer Devices --->
@@ -117,7 +123,10 @@ Device Drivers --->
[*] Maintain a devtmpfs filesystem to mount at /dev [CONFIG_DEVTMPFS]
[*] Automount devtmpfs at /dev, after the kernel mounted the rootfs [CONFIG_DEVTMPFS_MOUNT]
- General setup -->
+ Processor type and features --->
+ [*] Build a relocatable kernel [CONFIG_RELOCATABLE]
+ [*] Randomize the address of the kernel image (KASLR) [CONFIG_RANDOMIZE_BASE]
+General setup --->
[ ] Compile the kernel with warnings as errors [CONFIG_WERROR]
[ ] Auditing Support [CONFIG_AUDIT]
CPU/Task time and stats accounting --->
@@ -130,6 +139,8 @@ Device Drivers --->
[*] open by fhandle syscalls [CONFIG_FHANDLE]
General architecture-dependent options --->
[*] Enable seccomp to safely compute untrusted bytecode [CONFIG_SECCOMP]
+ [*] Stack Protector buffer overflow detection [CONFIG_STACKPROTECTOR]
+ [*] Strong Stack Protector [CONFIG_STACKPROTECTOR_STRONG]
Networking support --->
Networking options --->
<*> The IPv6 protocol [CONFIG_IPV6]
@@ -159,8 +170,6 @@ File systems --->
Processor type and features --->
[*] Support x2apic [CONFIG_X86_X2APIC]
-Memory Management options --->
- [ ] Enable userfaultfd() system call [CONFIG_USERFAULTFD]
Device Drivers --->
[*] PCI Support ---> [CONFIG_PCI]
[*] Message Signaled Interrupts (MSI and MSI-X) [CONFIG_PCI_MSI]
@@ -190,6 +199,14 @@ Device Drivers --->
The rationale for the above configuration items:
+
+ Randomize the address of the kernel image (KASLR)
+
+ Enable ASLR for kernel image, to mitigate some attacks based
+ on fixed addresses of sensitive data or code in the kernel.
+
+
+
@@ -215,6 +232,16 @@ Device Drivers --->
+
+ Strong Stack Protector
+
+ Enable SSP for the kernel. We've enabled it for the entire
+ userspace with --enable-default-ssp
+ configuring GCC, but the kernel does not use GCC default setting
+ for SSP. We enable it explicitly here.
+
+
+
Support for uevent helper
@@ -254,16 +281,6 @@ Device Drivers --->
-
- Enable userfaultfd() system call
-
- 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.
-
-
-
Alternatively, make oldconfig may be more
diff --git a/chapter11/afterlfs.xml b/chapter11/afterlfs.xml
new file mode 100644
index 000000000..6921f1785
--- /dev/null
+++ b/chapter11/afterlfs.xml
@@ -0,0 +1,261 @@
+
+
+ %general-entities;
+]>
+
+
+
+
+ Getting Started After LFS
+
+
+ Deciding what to do next
+
+
+ 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.
+
+
+
+ A server is the simpler category. Generally this consists of a web
+ server such as the
+ Apache HTTP Server
+ and a database server such as
+ MariaDB.
+ However other services are possible. The operating system
+ embedded in a single use device falls into this category.
+
+
+
+ On the other hand, a workstation is much more complex. It generally
+ requires a graphical user environment such as
+ LXDE,
+ XFCE,
+ KDE, or
+ Gnome
+ based on a basic
+ graphical environment
+ and several graphical based applications such as the
+ Firefox web browser,
+ Thunderbird email client,
+ or
+ LibreOffice office suite.
+ These applications require many (several hundred depending on
+ desired capabilities) more packages of support applications and
+ libraries.
+
+
+
+ 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 dhcpcd, is
+ not normally appropriate for a server and wireless_tools,
+ are normally only useful for a laptop system.
+
+
+
+
+
+ Working in a basic LFS environment
+
+
+ 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:
+
+
+
+ Work from the LFS host in chroot
+
+
+ This method provides a complete graphical environment where a full
+ featured browser and copy/paste capabilites 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.
+
+
+
+ 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
+ HOST system:
+
+
+cat > ~/mount-virt.sh << "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
+mkdir $LFS/run/shm
+#mountbind usr/src
+#mountbind boot
+#mountbind home
+EOF
+
+
+ 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.
+
+
+
+ The script can be run with bash ~/mount-virt.sh as
+ either a regular user (recommended) or as &root;. If run as a regular
+ user, sudo is required on the host system.
+
+
+
+ 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.
+
+
+
+ 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:
+
+
+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'
+
+
+ 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.
+
+
+
+
+
+ Work remotely via ssh
+
+
+ This method also provides a full graphical environment, but first
+ requires installing
+ sshd and
+ wget
+ 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.
+
+
+
+
+
+ Work from the LFS command line
+
+
+ This method requires installing
+ libtasn1,
+ p11-kit,
+ make-ca,
+ wget,
+ gpm, and
+ links
+ (or lynx)
+ 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
+
+ Alt
+ Fx
+
+ key combinations where Fx is
+ between F1 and F6.
+ The
+
+ Alt
+
+
+ and
+
+ Alt
+
+
+ combinations also will change the console.
+
+
+
+ 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.
+
+
+
+
+ As a side note, switching of virtual consoles can also be done from
+ an X Window instance with the
+
+ Ctrl
+ Alt
+ Fx
+
+ 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
+
+ Ctrl
+ Alt
+ Fx
+
+ combination, where Fx is usually
+ F1 but may be F7.
+
+
+
+
+
+
+
+
+
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 @@
+
diff --git a/chapter11/reboot.xml b/chapter11/reboot.xml
index f6bf79acc..3d87aa13a 100644
--- a/chapter11/reboot.xml
+++ b/chapter11/reboot.xml
@@ -9,17 +9,22 @@
Rebooting the System
+
+ 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:
- 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
+
+
-
+
+
+
+ Install any firmware needed if the
+ kernel driver for your hardware requires some firmware files to function
+ properly.
+
+
- Install firmwares if the kernel
- driver for your hardware require some firmware to function properly.
-
-
- Finally, a review of the following configuration files
- is also appropriate at this point.
+
+
+ A review of the following configuration files
+ is also appropriate at this point.
+ /etc/bashrc
@@ -97,7 +109,7 @@
sync
- Now, reboot the system with:
+ Now, reboot the system:reboot -ff
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="<your name here>"
EOF
- Be sure to put some sort of customization for the fields
- 'DISTRIB_CODENAME' and 'VERSION_CODENAME' to make the system uniquely
- yours.
+ Be sure to customize the fields 'DISTRIB_CODENAME' and
+ 'VERSION_CODENAME' to make the system uniquely yours.
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 @@
- What Now?
+ Additional ResourcesThank 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 @@
- CERT (Computer
- Emergency Response Team)
+ LFS Security Advisories
- CERT has a mailing list that publishes security alerts concerning
- various operating systems and applications. Subscription information is
- available at .
+ This is a list of security vulnerabilities discovered in the
+ LFS book after it's published.
- Bugtraq
+ Open Source Security
+ Mailing List
- 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 .
+ This is a mailing list for discussion of security flaws,
+ concepts, and practices in the Open Source community.
-
+
LFS Hints
@@ -85,7 +81,7 @@
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
- .
+ .
diff --git a/git-version.sh b/git-version.sh
index d5b131644..4e2b4442e 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 "" > conditional.ent
echo "" >> conditional.ent
if ! git status > /dev/null; then
- # Either it's not a git repository, or git is unavaliable.
- # Just workaround.
- echo " version.ent
- echo "" >> version.ent
- echo "]]>" >> version.ent
- echo "> version.ent
- echo "" >> version.ent
- echo "]]>" >> version.ent
- echo "" >> version.ent
- echo "" >> version.ent
- exit 0
+ # Either it's not a git repository, or git is unavaliable.
+ # Just workaround.
+ echo " version.ent
+ echo "" >> version.ent
+ echo "]]>" >> version.ent
+ echo "> version.ent
+ echo "" >> version.ent
+ echo "]]>" >> version.ent
+ echo "" >> version.ent
+ echo "" >> 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="cross-$rev"
versiond="cross-$rev-systemd"
if [ "$(git diff HEAD | wc -l)" != "0" ]; then
- version="$version+"
- versiond="$versiond+"
+ version="$version+"
+ versiond="$versiond+"
fi
echo " version.ent
diff --git a/lfs-latest-git.php b/lfs-latest-git.php
index 645f8e70d..5dda8476c 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.*$/" );
diff --git a/packages.ent b/packages.ent
index d6484ee6d..7def93312 100644
--- a/packages.ent
+++ b/packages.ent
@@ -58,10 +58,10 @@
-
-
+
+
-
+
@@ -179,10 +179,10 @@
-
-
+
+
-
+
@@ -207,10 +207,10 @@
-
-
+
+
-
+
@@ -281,10 +281,10 @@
-
-
+
+
-
+
@@ -378,10 +378,10 @@
-
-
+
+
-
+
@@ -414,7 +414,7 @@
-
+
@@ -428,12 +428,12 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
@@ -627,10 +627,10 @@
-
-
+
+
-
+
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 @@
Place all the sources and patches in a directory that will be
accessible from the chroot environment such as
- /mnt/lfs/sources/.
+ /mnt/lfs/tools/. -->
Change to the sources directory.
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 @@
Software-Building-HOWTO
-
+ This is a comprehensive guide to building and installing
generic Unix software packages under Linux. Although it
@@ -40,7 +40,7 @@
Beginner's Guide to Installing from Source
-
+ This guide provides a good summary of basic skills and
techniques needed to build software from source code.
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 @@
-
+
POSIX.1-2008.
+ url="https://refspecs.linuxfoundation.org/FHS_3.0/fhs/index.html">
Filesystem Hierarchy Standard (FHS) Version 3.0
- Linux
+ Linux
Standard Base (LSB) Version 5.0 (2015)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 @@
Wheel
- This package contains a Python module that is the
+ This package contains a Python module that is the
reference implementation of the Python wheel packaging standard.
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
- * 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.
+2010-01-26 Matt Burgess
+ * 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
- * 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-09-25 Bryan Kadzban
+ * 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
- * 55-lfs.rules: Set the rtc by udev upon boot. Removed aio device from
- udev configuration so defaults are used.
+2009-05-23 Bruce Dubbs
+ * 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
- * 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 Bryan Kadzban
+ * 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
- * 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-05-16 Matt Burgess
+ * 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
- * 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).
+2009-03-15 Bryan Kadzban
+ * 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
- * 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
- * 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
- * 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
- * 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
- * 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
- * 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
- * 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
- * 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
- * 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
- * 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
- * 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
- * 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
- * Makefile: Use `udevd --version' to work out what version of Udev is
- installed (requires Udev >= 106)
+2007-03-04 Matthew Burgess
+ * Makefile: Use `udevd --version' to work out what version of Udev is
+ installed (requires Udev >= 106)
2007-01-02 Bryan Kadzban
- * 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
- * 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
- * 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
- * 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
- * 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
- * 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
- * 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
- * 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
- * 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
- * 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
- * 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
- * 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
- * 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
- * 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
- * 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 "?*").
+ * 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.)
+ * 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"