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 EOF In 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.in Prepare 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: make 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. @@ -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.log The 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/lib libssp Contains 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: + make This 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 check The 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 + meson A 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 Resources 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 @@ - 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"