Browse Source

Ported updates from 6.2 branch.
Small tags fixes.

git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@7758 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689

Manuel Canales Esparcia 19 years ago
parent
commit
c226182dc5

+ 9 - 0
chapter01/changelog.xml

@@ -36,6 +36,15 @@
     </listitem>
     </listitem>
 -->
 -->
 
 
+    <listitem>
+      <para>2006-08-03</para>
+      <itemizedlist>
+        <listitem>
+          <para>[manuel] - Ported updates from 6.2 branch.</para>
+        </listitem>
+      </itemizedlist>
+    </listitem>
+
     <listitem>
     <listitem>
       <para>2006-07-31</para>
       <para>2006-07-31</para>
       <itemizedlist>
       <itemizedlist>

+ 5 - 3
chapter02/creatingfilesystem.xml

@@ -41,9 +41,11 @@
 
 
 <screen role="nodump"><userinput>debugfs -R feature /dev/<replaceable>&lt;xxx&gt;</replaceable></userinput></screen>
 <screen role="nodump"><userinput>debugfs -R feature /dev/<replaceable>&lt;xxx&gt;</replaceable></userinput></screen>
 
 
-    <para>If the output contains features other than: <option>dir_index</option>;
-    <option>filetype</option>; <option>large_file</option>;
-    <option>resize_inode</option> or <option>sparse_super</option> then your host
+    <para>If the output contains features other than
+    <option>has_joural</option>, <option>dir_index</option>,
+    <option>filetype</option>, <option>large_file</option>,
+    <option>resize_inode</option>, <option>sparse_super</option> or
+    <option>needs_recovery</option>, then your host
     system may have custom enhancements.  In that case, to avoid later problems,
     system may have custom enhancements.  In that case, to avoid later problems,
     you should compile the stock E2fsprogs package and use the resulting binaries
     you should compile the stock E2fsprogs package and use the resulting binaries
     to re-create the filesystem on your LFS partition:</para>
     to re-create the filesystem on your LFS partition:</para>

+ 9 - 0
chapter02/mounting.xml

@@ -52,6 +52,15 @@ mount -v -t ext3 /dev/<replaceable>&lt;yyy&gt;</replaceable> $LFS/usr</userinput
   <option>noatime</option> are set, the partition will need to be
   <option>noatime</option> are set, the partition will need to be
   remounted.</para>
   remounted.</para>
 
 
+  <para>If you are using a <systemitem
+  class="filesystem">swap</systemitem> partition, ensure that it is enabled
+  using the <command>swapon</command> command:</para>
+
+<screen role="nodump"><userinput>/sbin/swapon -v /dev/<replaceable>&lt;zzz&gt;</replaceable></userinput></screen>
+
+  <para>Replace <replaceable>&lt;zzz&gt;</replaceable> with the name of the
+  <systemitem class="filesystem">swap</systemitem> partition.</para>
+
   <para>Now that there is an established place to work, it is time to
   <para>Now that there is an established place to work, it is time to
   download the packages.</para>
   download the packages.</para>
 
 

+ 32 - 0
chapter03/patches.xml

@@ -66,6 +66,14 @@
       </listitem>
       </listitem>
     </varlistentry>
     </varlistentry>
 
 
+    <varlistentry>
+      <term>Database (Berkeley) Upstream Fixes Patch - <token>&db-fixes-patch-size;</token>:</term>
+      <listitem>
+        <para>Download: <ulink url="&patches-root;&db-fixes-patch;"/></para>
+        <para>MD5 sum: <literal>&db-fixes-patch-md5;</literal></para>
+      </listitem>
+    </varlistentry>
+
     <varlistentry>
     <varlistentry>
       <term>Diffutils Internationalization Fixes Patch - <token>&diffutils-i18n-patch-size;</token>:</term>
       <term>Diffutils Internationalization Fixes Patch - <token>&diffutils-i18n-patch-size;</token>:</term>
       <listitem>
       <listitem>
@@ -106,6 +114,14 @@
       </listitem>
       </listitem>
     </varlistentry>
     </varlistentry>
 
 
+    <varlistentry>
+      <term>Glibc Inotify Syscall Functions Patch - <token>&glibc-inotify-patch-size;</token>:</term>
+      <listitem>
+        <para>Download: <ulink url="&patches-root;&glibc-inotify-patch;"/></para>
+        <para>MD5 sum: <literal>&glibc-inotify-patch-md5;</literal></para>
+      </listitem>
+    </varlistentry>
+
     <varlistentry>
     <varlistentry>
       <term>Grep RedHat Fixes Patch - <token>&grep-fixes-patch-size;</token>:</term>
       <term>Grep RedHat Fixes Patch - <token>&grep-fixes-patch-size;</token>:</term>
       <listitem>
       <listitem>
@@ -178,6 +194,14 @@
       </listitem>
       </listitem>
     </varlistentry>
     </varlistentry>
 
 
+    <varlistentry>
+      <term>Linux Libc Headers Inotify Patch - <token>&linux-inotify-patch-size;</token>:</term>
+      <listitem>
+        <para>Download: <ulink url="&patches-root;&linux-inotify-patch;"/></para>
+        <para>MD5 sum: <literal>&linux-inotify-patch-md5;</literal></para>
+      </listitem>
+    </varlistentry>
+
     <varlistentry>
     <varlistentry>
       <term>Mktemp Tempfile Patch - <token>&mktemp-tempfile-patch-size;</token>:</term>
       <term>Mktemp Tempfile Patch - <token>&mktemp-tempfile-patch-size;</token>:</term>
       <listitem>
       <listitem>
@@ -299,6 +323,14 @@
       </listitem>
       </listitem>
     </varlistentry>
     </varlistentry>
 
 
+    <varlistentry>
+      <term>Vim Spellfile Patch - <token>&vim-spellfile-patch-size;</token>:</term>
+      <listitem>
+        <para>Download: <ulink url="&patches-root;&vim-spellfile-patch;"/></para>
+        <para>MD5 sum: <literal>&vim-spellfile-patch-md5;</literal></para>
+      </listitem>
+    </varlistentry>
+
   </variablelist>
   </variablelist>
 
 
   <para>Total size of these patches: about <returnvalue/></para>
   <para>Total size of these patches: about <returnvalue/></para>

+ 4 - 0
chapter06/db.xml

@@ -55,6 +55,10 @@
   <sect2 role="installation">
   <sect2 role="installation">
     <title>Installation of Berkeley DB</title>
     <title>Installation of Berkeley DB</title>
 
 
+    <para>Patch the package to eliminate potential trap events:</para>
+
+<screen><userinput>patch -Np1 -i ../&db-fixes-patch;</userinput></screen>
+
     <para>Prepare Berkeley DB for compilation:</para>
     <para>Prepare Berkeley DB for compilation:</para>
 
 
 <screen><userinput>cd build_unix &amp;&amp;
 <screen><userinput>cd build_unix &amp;&amp;

+ 7 - 0
chapter06/e2fsprogs.xml

@@ -94,6 +94,13 @@ cd build</userinput></screen>
     <para>To test the results, issue:
     <para>To test the results, issue:
     <userinput>make check</userinput>.</para>
     <userinput>make check</userinput>.</para>
 
 
+    <para>One of the E2fsprogs tests will attempt to allocate 256 MB
+    of memory. If you do not have significantly more RAM than this, it
+    is recommended to enable sufficient swap space for the test. See
+    <xref linkend="space-creatingfilesystem"/> and
+    <xref linkend="space-mounting"/> for details on creating and enabling
+    swap space.</para>
+
     <para>Install the binaries and documentation:</para>
     <para>Install the binaries and documentation:</para>
 
 
 <screen><userinput>make install</userinput></screen>
 <screen><userinput>make install</userinput></screen>

+ 13 - 3
chapter06/glibc.xml

@@ -57,8 +57,8 @@
 
 
     <para>The glibc-libidn tarball adds support for internationalized domain
     <para>The glibc-libidn tarball adds support for internationalized domain
     names (IDN) to Glibc. Many programs that support IDN require the full
     names (IDN) to Glibc. Many programs that support IDN require the full
-    <filename class="libraryfile">libidn</filename> library (see
-    <ulink url="&blfs-root;view/svn/general/libidn.html"/>), not this add-on.
+    <filename class="libraryfile">libidn</filename> library, not this add-on (see
+    <ulink url="&blfs-root;view/svn/general/libidn.html"/>).
     Unpack the tarball from within the Glibc source directory:</para>
     Unpack the tarball from within the Glibc source directory:</para>
 
 
 <screen><userinput>tar -xf ../glibc-libidn-&glibc-version;.tar.bz2</userinput></screen>
 <screen><userinput>tar -xf ../glibc-libidn-&glibc-version;.tar.bz2</userinput></screen>
@@ -69,6 +69,11 @@
 
 
 <screen><userinput>patch -Np1 -i ../&glibc-linux_types-patch;</userinput></screen>
 <screen><userinput>patch -Np1 -i ../&glibc-linux_types-patch;</userinput></screen>
 
 
+    <para>Add a header to define syscall functions for the inotify feature
+    available in newer Linux kernels:</para>
+
+<screen><userinput>patch -Np1 -i ../&glibc-inotify-patch;</userinput></screen>
+
     <para>In the vi_VN.TCVN locale, <command>bash</command> enters an infinite loop
     <para>In the vi_VN.TCVN locale, <command>bash</command> enters an infinite loop
     at startup. It is unknown whether this is a <command>bash</command> bug or a
     at startup. It is unknown whether this is a <command>bash</command> bug or a
     Glibc problem. Disable installation of this locale in order to avoid the
     Glibc problem. Disable installation of this locale in order to avoid the
@@ -167,9 +172,14 @@ grep Error glibc-check-log</userinput></screen>
 
 
 <screen><userinput>make install</userinput></screen>
 <screen><userinput>make install</userinput></screen>
 
 
+   <para>Install the inotify header to the system header location:</para>
+
+<screen><userinput>cp -v ../glibc-&glibc-version;/sysdeps/unix/sysv/linux/inotify.h \
+    /usr/include/sys</userinput></screen>
+
     <para>The locales that can make the system respond in a different language
     <para>The locales that can make the system respond in a different language
     were not installed by the above command. None of the locales are required,
     were not installed by the above command. None of the locales are required,
-    but, if some of them are misssing, testuites of the future packages would
+    but if some of them are missing, testsuites of the future packages would
     skip important testcases.</para>
     skip important testcases.</para>
 
 
     <para>Individual locales can be installed using the
     <para>Individual locales can be installed using the

+ 2 - 2
chapter06/grub.xml

@@ -42,8 +42,8 @@
     unset them when building GRUB.</para>
     unset them when building GRUB.</para>
 
 
     <para>Start by applying the following patch to allow for better drive
     <para>Start by applying the following patch to allow for better drive
-    detection, fix some <application>GCC 4.x</application> issues, and provide
-    better SATA support for some disk controllers:</para>
+    detection, fix some GCC 4.x issues, and provide better SATA support
+    for some disk controllers:</para>
 
 
 <screen><userinput>patch -Np1 -i ../&grub-geometry-patch;</userinput></screen>
 <screen><userinput>patch -Np1 -i ../&grub-geometry-patch;</userinput></screen>
 
 

+ 1 - 1
chapter06/kernfs.xml

@@ -62,7 +62,7 @@ mknod -m 666 $LFS/dev/null c 1 3</userinput></screen>
 <screen><userinput>mount --bind /dev $LFS/dev</userinput></screen>
 <screen><userinput>mount --bind /dev $LFS/dev</userinput></screen>
 
 
   </sect2>
   </sect2>
- 
+
   <sect2 id="ch-system-kernfsmount">
   <sect2 id="ch-system-kernfsmount">
     <title>Mounting Virtual Kernel File Systems</title>
     <title>Mounting Virtual Kernel File Systems</title>
 
 

+ 5 - 0
chapter06/linux-libc-headers.xml

@@ -43,6 +43,11 @@
     which was designed to maintain an API stable version of the Linux
     which was designed to maintain an API stable version of the Linux
     headers.</para>
     headers.</para>
 
 
+    <para>Add a userspace header and syscall support for the inotify feature
+    available in newer Linux kernels:</para>
+
+<screen><userinput>patch -Np1 -i ../&linux-inotify-patch;</userinput></screen>
+
     <para>Install the header files:</para>
     <para>Install the header files:</para>
 
 
 <screen><userinput>install -dv /usr/include/asm
 <screen><userinput>install -dv /usr/include/asm

+ 3 - 0
chapter06/udev.xml

@@ -73,6 +73,9 @@ ln -sv /proc/kcore /lib/udev/devices/core</userinput></screen>
     <para>To test the results, issue:
     <para>To test the results, issue:
     <userinput>make test</userinput>.</para>
     <userinput>make test</userinput>.</para>
 
 
+    <para>Note that the Udev testsuite will produce numerous messages in
+    the host system's logs. These are harmless and can be ignored.</para>
+
     <para>Install the package:</para>
     <para>Install the package:</para>
 
 
 <screen><userinput>make DESTDIR=/ \
 <screen><userinput>make DESTDIR=/ \

+ 20 - 2
chapter06/vim.xml

@@ -59,6 +59,12 @@
 
 
 <screen><userinput>patch -Np1 -i ../&vim-mandir-patch;</userinput></screen>
 <screen><userinput>patch -Np1 -i ../&vim-mandir-patch;</userinput></screen>
 
 
+    <para>There is an issue introduced by one of the upstream patches that
+    creates a problem downloading spellfiles via HTTP.  Until this is updated
+    by the developers, the following patch fixes the problem:</para>
+
+<screen><userinput>patch -Np1 -i ../&vim-spellfile-patch;</userinput></screen>
+
     <para>Finally, change the default location of the
     <para>Finally, change the default location of the
     <filename>vimrc</filename> configuration file to <filename
     <filename>vimrc</filename> configuration file to <filename
     class="directory">/etc</filename>:</para>
     class="directory">/etc</filename>:</para>
@@ -188,8 +194,20 @@ EOF</userinput></screen>
 
 
     <note>
     <note>
       <para>By default, Vim only installs spell files for the English language.
       <para>By default, Vim only installs spell files for the English language.
-      To install spell files for your preferred language, please read the README
-      file located here: <ulink url="ftp://ftp.vim.org/pub/vim/runtime/spell/" /></para>
+      To install spell files for your preferred language, download the
+      <filename>*.spl</filename> and optionally, the <filename>*.sug</filename>
+      files for your language and character encoding from <ulink
+      url="ftp://ftp.vim.org/pub/vim/runtime/spell/"/> and and save them to
+      <filename class='directory'>/usr/share/vim/vim70/spell/</filename>.</para>
+
+      <para>To use these spell files, some configuration in
+      <filename>/etc/vimrc</filename> is needed, e.g.:</para>
+
+<screen><literal>set spelllang=en,ru
+set spell</literal></screen>
+
+      <para>For more information, see the appropriate README file located
+      at the the URL above.</para>
     </note>
     </note>
 
 
   </sect2>
   </sect2>

+ 41 - 13
chapter07/network.xml

@@ -48,26 +48,31 @@
     invent a descriptive name, such as <quote>realtek</quote>, and create
     invent a descriptive name, such as <quote>realtek</quote>, and create
     Udev rules similar to the following:</para>
     Udev rules similar to the following:</para>
 
 
-<screen role="nodump"><userinput>cat &gt; /etc/udev/rules.d/26-network.rules &lt;&lt; "EOF"
-<literal>ACTION=="add", SUBSYSTEM=="net", DRIVER=="?*", SYSFS{address}=="<replaceable>00:e0:4c:12:34:56</replaceable>", NAME="<replaceable>realtek</replaceable>"
-ACTION=="add", SUBSYSTEM=="net", DRIVER=="?*", SYSFS{address}=="<replaceable>00:a0:c9:78:9a:bc</replaceable>", NAME="<replaceable>intel</replaceable>"</literal>
+<screen role="nodump"><userinput>cat &gt; /etc/udev/rules.d/26-network.rules &lt;&lt; EOF
+<literal>ACTION=="add", SUBSYSTEM=="net", SYSFS{address}=="<replaceable>00:e0:4c:12:34:56</replaceable>", \
+    NAME="<replaceable>realtek</replaceable>"
+ACTION=="add", SUBSYSTEM=="net", SYSFS{address}=="<replaceable>00:a0:c9:78:9a:bc</replaceable>", \
+    NAME="<replaceable>intel</replaceable>"</literal>
 EOF</userinput></screen>
 EOF</userinput></screen>
 
 
-    <para>The DRIVER=="?*" key prevents Udev from attempting to rename 8021Q
-    VLAN interfaces (not available without the Vlan package from
-    <ulink url="http://www.candelatech.com/~greear/vlan/"/>).
-    This is necessary since VLANs have the same MAC address as
-    the real network card.</para>
-
 <!-- Yes, I know that VLANs are beyond BLFS. This is not the reason to get them
 <!-- Yes, I know that VLANs are beyond BLFS. This is not the reason to get them
      incorrect by default when every distro does this right. -->
      incorrect by default when every distro does this right. -->
- 
+
+    <note>
+      <para>Although the examples in this book work properly, be aware
+      that Udev does not recognize the backslash for line continuation.
+      If modifying Udev rules with an editor, be sure to leave each rule
+      on one physical line.</para>
+    </note>
+
     <para>If you are going to use the bus position as a key, create
     <para>If you are going to use the bus position as a key, create
     Udev rules similar to the following:</para>
     Udev rules similar to the following:</para>
 
 
-<screen role="nodump"><userinput>cat &gt; /etc/udev/rules.d/26-network.rules &lt;&lt; "EOF"
-<literal>ACTION=="add", SUBSYSTEM=="net", BUS=="<replaceable>pci</replaceable>", ID=="<replaceable>0000:00:0c.0</replaceable>", NAME="<replaceable>realtek</replaceable>"
-ACTION=="add", SUBSYSTEM=="net", BUS=="<replaceable>pci</replaceable>", ID=="<replaceable>0000:00:0d.0</replaceable>", NAME="<replaceable>intel</replaceable>"</literal>
+<screen role="nodump"><userinput>cat &gt; /etc/udev/rules.d/26-network.rules &lt;&lt; EOF
+<literal>ACTION=="add", SUBSYSTEM=="net", BUS=="<replaceable>pci</replaceable>", ID=="<replaceable>0000:00:0c.0</replaceable>", \
+    NAME="<replaceable>realtek</replaceable>"
+ACTION=="add", SUBSYSTEM=="net", BUS=="<replaceable>pci</replaceable>", ID=="<replaceable>0000:00:0d.0</replaceable>", \
+    NAME="<replaceable>intel</replaceable>"</literal>
 EOF</userinput></screen>
 EOF</userinput></screen>
 
 
     <para>These rules will always rename the network cards to
     <para>These rules will always rename the network cards to
@@ -79,6 +84,29 @@ EOF</userinput></screen>
     of <quote>eth0</quote> in the network interface configuration files
     of <quote>eth0</quote> in the network interface configuration files
     below.</para>
     below.</para>
 
 
+    <para>Note that the rules above don't work for every setup. For example,
+    MAC-based rules break when bridges or VLANs are used, because bridges and
+    VLANs have the same MAC address as the network card. One wants to rename
+    only the network card interface, not the bridge or VLAN interface, but the
+    example rule matches both. If you use such virtual interfaces, you have two
+    potential solutions. One is to add the DRIVER=="?*" key after
+    SUBSYSTEM=="net" in MAC-based rules which will stop matching the virtual
+    interfaces.  This is known to fail with some older Ethernet cards because
+    they don't have the DRIVER variable in the uevent and thus the rule does
+    not match with such cards. Another solution is to switch to rules that use
+    the bus position as a key.</para>
+
+    <para>The second known non-working case is with wireless cards using the
+    MadWifi or HostAP drivers, because they create at least two interfaces with
+    the same MAC address and bus position. For example, the Madwifi driver
+    creates both an athX and a wifiX interface where X is a digit.  To
+    differentiate these interfaces, add an appropriate KERNEL parameter such as
+    KERNEL=="ath*" after SUBSYSTEM=="net".</para>
+
+    <para>There may be other cases where the rules above don't work. Currently,
+    bugs on this topic are still being reported to Linux distributions, and no
+    solution that covers every case is available.</para>
+
   </sect2>
   </sect2>
 
 
   <sect2>
   <sect2>

+ 24 - 11
chapter07/symlinks.xml

@@ -32,14 +32,23 @@
     location of the device on the bus. If you are going to use the first
     location of the device on the bus. If you are going to use the first
     approach, create a file similar to the following:</para>
     approach, create a file similar to the following:</para>
 
 
-<screen role="nodump"><userinput>cat &gt;/etc/udev/rules.d/82-cdrom.rules &lt;&lt;"EOF"
+<screen role="nodump"><userinput>cat &gt;/etc/udev/rules.d/82-cdrom.rules &lt;&lt; EOF
 <literal>
 <literal>
 # Custom CD-ROM symlinks
 # Custom CD-ROM symlinks
-SUBSYSTEM=="block", ENV{ID_MODEL}=="SAMSUNG_CD-ROM_SC-148F", ENV{ID_REVISION}=="PS05", SYMLINK+="cdrom"
-SUBSYSTEM=="block", ENV{ID_MODEL}=="PHILIPS_CDD5301", ENV{ID_SERIAL}=="5VO1306DM00190", SYMLINK+="cdrom1 dvd"
+SUBSYSTEM=="block", ENV{ID_MODEL}=="SAMSUNG_CD-ROM_SC-148F", \
+    ENV{ID_REVISION}=="PS05", SYMLINK+="cdrom"
+SUBSYSTEM=="block", ENV{ID_MODEL}=="PHILIPS_CDD5301", \
+    ENV{ID_SERIAL}=="5VO1306DM00190", SYMLINK+="cdrom1 dvd"
 </literal>
 </literal>
 EOF</userinput></screen>
 EOF</userinput></screen>
 
 
+    <note>
+      <para>Although the examples in this book work properly, be aware
+      that Udev does not recognize the backslash for line continuation.
+      If modifying Udev rules with an editor, be sure to leave each rule
+      on one physical line.</para>
+    </note>
+
     <para>This way, the symlinks will stay correct even if you move the drives
     <para>This way, the symlinks will stay correct even if you move the drives
     to different positions on the IDE bus, but the
     to different positions on the IDE bus, but the
     <filename>/dev/cdrom</filename> symlink won't be created if you replace
     <filename>/dev/cdrom</filename> symlink won't be created if you replace
@@ -49,17 +58,19 @@ EOF</userinput></screen>
 
 
     <para>The SUBSYSTEM==&quot;block&quot; key is needed in order to avoid
     <para>The SUBSYSTEM==&quot;block&quot; key is needed in order to avoid
     matching SCSI generic devices. Without it, in the case with SCSI
     matching SCSI generic devices. Without it, in the case with SCSI
-    CD-ROMs, the symlinks will sometimes point to the correct 
+    CD-ROMs, the symlinks will sometimes point to the correct
     <filename>/dev/srX</filename> devices, and sometimes to
     <filename>/dev/srX</filename> devices, and sometimes to
     <filename>/dev/sgX</filename>, which is wrong.</para>
     <filename>/dev/sgX</filename>, which is wrong.</para>
- 
+
     <para>The second approach yields:</para>
     <para>The second approach yields:</para>
 
 
-<screen role="nodump"><userinput>cat &gt;/etc/udev/rules.d/82-cdrom.rules &lt;&lt;"EOF"
+<screen role="nodump"><userinput>cat &gt;/etc/udev/rules.d/82-cdrom.rules &lt;&lt; EOF
 <literal>
 <literal>
 # Custom CD-ROM symlinks
 # Custom CD-ROM symlinks
-SUBSYSTEM=="block", ENV{ID_TYPE}=="cd", ENV{ID_PATH}=="pci-0000:00:07.1-ide-0:1", SYMLINK+="cdrom"
-SUBSYSTEM=="block", ENV{ID_TYPE}=="cd", ENV{ID_PATH}=="pci-0000:00:07.1-ide-1:1", SYMLINK+="cdrom1 dvd"
+SUBSYSTEM=="block", ENV{ID_TYPE}=="cd", \
+    ENV{ID_PATH}=="pci-0000:00:07.1-ide-0:1", SYMLINK+="cdrom"
+SUBSYSTEM=="block", ENV{ID_TYPE}=="cd", \
+    ENV{ID_PATH}=="pci-0000:00:07.1-ide-1:1", SYMLINK+="cdrom1 dvd"
 </literal>
 </literal>
 EOF</userinput></screen>
 EOF</userinput></screen>
 
 
@@ -105,11 +116,13 @@ EOF</userinput></screen>
 
 
     <para>Then write rules that create the symlinks, e.g.:</para>
     <para>Then write rules that create the symlinks, e.g.:</para>
 
 
-<screen role="nodump"><userinput>cat &gt;/etc/udev/rules.d/83-duplicate_devs.rules &lt;&lt;"EOF"
+<screen role="nodump"><userinput>cat &gt;/etc/udev/rules.d/83-duplicate_devs.rules &lt;&lt; EOF
 <literal>
 <literal>
 # Persistent symlinks for webcam and tuner
 # Persistent symlinks for webcam and tuner
-KERNEL=="video*", SYSFS{idProduct}=="1910", SYSFS{idVendor}=="0d81", SYMLINK+="webcam"
-KERNEL=="video*", SYSFS{device}=="0x036f", SYSFS{vendor}=="0x109e", SYMLINK+="tvtuner"
+KERNEL=="video*", SYSFS{idProduct}=="1910", SYSFS{idVendor}=="0d81", \
+    SYMLINK+="webcam"
+KERNEL=="video*", SYSFS{device}=="0x036f", SYSFS{vendor}=="0x109e", \
+    SYMLINK+="tvtuner"
 </literal>
 </literal>
 EOF</userinput></screen>
 EOF</userinput></screen>
 
 

+ 8 - 5
chapter08/fstab.xml

@@ -72,13 +72,16 @@ EOF</userinput></screen>
 
 
 <screen>/dev/sda1    /media/flash vfat noauto,user,quiet,showexec,iocharset=utf8,codepage=866 0 0</screen>
 <screen>/dev/sda1    /media/flash vfat noauto,user,quiet,showexec,iocharset=utf8,codepage=866 0 0</screen>
 
 
-  <note><para>In the latter case, the kernel emits the following message:</para>
+  <note>
+    <para>In the latter case, the kernel emits the following message:</para>
 
 
-<screen><computeroutput>FAT: utf8 is not a recommended IO charset for FAT filesystems, filesystem will be case sensitive!</computeroutput></screen>
+<screen><computeroutput>FAT: utf8 is not a recommended IO charset for FAT filesystems,
+    filesystem will be case sensitive!</computeroutput></screen>
 
 
-  <para>This negative recommendation should be ignored, since all other values
-  of the <quote>iocharset</quote> option result in wrong display of filenames in
-  UTF-8 locales.</para></note>
+    <para>This negative recommendation should be ignored, since all other values
+    of the <quote>iocharset</quote> option result in wrong display of filenames in
+    UTF-8 locales.</para>
+  </note>
 
 
   <para>It is also possible to specify default codepage and iocharset values for
   <para>It is also possible to specify default codepage and iocharset values for
   some filesystems during kernel configuration. The relevant parameters
   some filesystems during kernel configuration. The relevant parameters

+ 2 - 3
chapter08/kernel.xml

@@ -117,8 +117,8 @@
 
 
     <para>Install the documentation for the Linux kernel:</para>
     <para>Install the documentation for the Linux kernel:</para>
 
 
-<screen>install -d /usr/share/doc/linux-&linux-version; &amp;&amp;
-cp -r Documentation/* /usr/share/doc/linux-&linux-version;</screen>
+<screen><userinput>install -d /usr/share/doc/linux-&linux-version; &amp;&amp;
+cp -r Documentation/* /usr/share/doc/linux-&linux-version;</userinput></screen>
 
 
     <para>It is important to note that the files in the kernel source
     <para>It is important to note that the files in the kernel source
     directory are not owned by <emphasis>root</emphasis>. Whenever a
     directory are not owned by <emphasis>root</emphasis>. Whenever a
@@ -154,7 +154,6 @@ cp -r Documentation/* /usr/share/doc/linux-&linux-version;</screen>
 
 
   </sect2>
   </sect2>
 
 
-
   <sect2 id="contents-kernel" role="content">
   <sect2 id="contents-kernel" role="content">
     <title>Contents of Linux</title>
     <title>Contents of Linux</title>
 
 

+ 2 - 2
general.ent

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
 <?xml version="1.0" encoding="ISO-8859-1"?>
-<!ENTITY version "SVN-20060731">
-<!ENTITY releasedate "July 31, 2006">
+<!ENTITY version "SVN-20060803">
+<!ENTITY releasedate "August 3, 2006">
 <!ENTITY milestone "6.3">
 <!ENTITY milestone "6.3">
 <!ENTITY generic-version "development"> <!-- Use "development", "testing", or "x.y[-pre{x}]" -->
 <!ENTITY generic-version "development"> <!-- Use "development", "testing", or "x.y[-pre{x}]" -->
 
 

+ 19 - 0
patches.ent

@@ -28,6 +28,11 @@
 <!ENTITY coreutils-uname-patch-size "4.6 KB">
 <!ENTITY coreutils-uname-patch-size "4.6 KB">
 
 
 
 
+<!ENTITY db-fixes-patch "db-&db-version;-fixes-1.patch">
+<!ENTITY db-fixes-patch-md5 "32b28d1d1108dfcd837fe10c4eb0fbad">
+<!ENTITY db-fixes-patch-size "3.8 KB">
+
+
 <!ENTITY diffutils-i18n-patch "diffutils-&diffutils-version;-i18n-1.patch">
 <!ENTITY diffutils-i18n-patch "diffutils-&diffutils-version;-i18n-1.patch">
 <!ENTITY diffutils-i18n-patch-md5 "c8d481223db274a33b121fb8c25af9f7">
 <!ENTITY diffutils-i18n-patch-md5 "c8d481223db274a33b121fb8c25af9f7">
 <!ENTITY diffutils-i18n-patch-size "18 KB">
 <!ENTITY diffutils-i18n-patch-size "18 KB">
@@ -52,6 +57,10 @@
 <!ENTITY glibc-linux_types-patch-md5 "30ea59ae747478aa9315455543b5bb43">
 <!ENTITY glibc-linux_types-patch-md5 "30ea59ae747478aa9315455543b5bb43">
 <!ENTITY glibc-linux_types-patch-size "1.1 KB">
 <!ENTITY glibc-linux_types-patch-size "1.1 KB">
 
 
+<!ENTITY glibc-inotify-patch "glibc-&glibc-version;-inotify-1.patch">
+<!ENTITY glibc-inotify-patch-md5 "94f6d26ae50a0fe6285530fdbae90bbf">
+<!ENTITY glibc-inotify-patch-size "1.4 KB">
+
 
 
 <!ENTITY grep-fixes-patch "grep-&grep-version;-redhat_fixes-2.patch">
 <!ENTITY grep-fixes-patch "grep-&grep-version;-redhat_fixes-2.patch">
 <!ENTITY grep-fixes-patch-md5 "2c67910be2d0a54714f63ce350e6d8a6">
 <!ENTITY grep-fixes-patch-md5 "2c67910be2d0a54714f63ce350e6d8a6">
@@ -95,6 +104,11 @@
 <!ENTITY linux-utf8-patch-size "11 KB">
 <!ENTITY linux-utf8-patch-size "11 KB">
 
 
 
 
+<!ENTITY linux-inotify-patch "linux-libc-headers-&linux-libc-headers-version;-inotify-3.patch">
+<!ENTITY linux-inotify-patch-md5 "8fd71a4bd3344380bd16caf2c430fa9b">
+<!ENTITY linux-inotify-patch-size "4.7 KB">
+
+
 <!ENTITY mktemp-tempfile-patch "mktemp-&mktemp-version;-add_tempfile-3.patch">
 <!ENTITY mktemp-tempfile-patch "mktemp-&mktemp-version;-add_tempfile-3.patch">
 <!ENTITY mktemp-tempfile-patch-md5 "65d73faabe3f637ad79853b460d30a19">
 <!ENTITY mktemp-tempfile-patch-md5 "65d73faabe3f637ad79853b460d30a19">
 <!ENTITY mktemp-tempfile-patch-size "3.5 KB">
 <!ENTITY mktemp-tempfile-patch-size "3.5 KB">
@@ -152,6 +166,7 @@
 <!ENTITY util-linux-cramfs-patch-md5 "1c3f40b30e12738eb7b66a35b7374572">
 <!ENTITY util-linux-cramfs-patch-md5 "1c3f40b30e12738eb7b66a35b7374572">
 <!ENTITY util-linux-cramfs-patch-size "2.8 KB">
 <!ENTITY util-linux-cramfs-patch-size "2.8 KB">
 
 
+
 <!ENTITY vim-fixes-patch "vim-&vim-version;-fixes-7.patch">
 <!ENTITY vim-fixes-patch "vim-&vim-version;-fixes-7.patch">
 <!ENTITY vim-fixes-patch-md5 "d274219566702b0bafcb83ab4685bbde">
 <!ENTITY vim-fixes-patch-md5 "d274219566702b0bafcb83ab4685bbde">
 <!ENTITY vim-fixes-patch-size "42 KB">
 <!ENTITY vim-fixes-patch-size "42 KB">
@@ -159,3 +174,7 @@
 <!ENTITY vim-mandir-patch "vim-&vim-version;-mandir-1.patch">
 <!ENTITY vim-mandir-patch "vim-&vim-version;-mandir-1.patch">
 <!ENTITY vim-mandir-patch-md5 "b6426eb4192faba1e867ddd502323f5b">
 <!ENTITY vim-mandir-patch-md5 "b6426eb4192faba1e867ddd502323f5b">
 <!ENTITY vim-mandir-patch-size "4.2 KB">
 <!ENTITY vim-mandir-patch-size "4.2 KB">
+
+<!ENTITY vim-spellfile-patch "vim-&vim-version;-spellfile-1.patch">
+<!ENTITY vim-spellfile-patch-md5 "98e59e34cb6e16a8d4671247cebd64ee">
+<!ENTITY vim-spellfile-patch-size "1.2 KB">

+ 54 - 0
stylesheets/pdf/lfs-mixed.xsl

@@ -16,6 +16,7 @@
     and to remove vertical space in pachages and patches pages. -->
     and to remove vertical space in pachages and patches pages. -->
  <xsl:template match="para">
  <xsl:template match="para">
     <xsl:choose>
     <xsl:choose>
+      <xsl:when test="child::ulink[@url=' ']"/>
       <xsl:when test="./@remap='verbatim'">
       <xsl:when test="./@remap='verbatim'">
         <fo:block wrap-option="no-wrap"
         <fo:block wrap-option="no-wrap"
                     white-space-collapse="false"
                     white-space-collapse="false"
@@ -254,4 +255,57 @@
     </xsl:choose>
     </xsl:choose>
   </xsl:template>
   </xsl:template>
 
 
+    <!-- Total packages size calculation -->
+  <xsl:template match="returnvalue">
+    <xsl:call-template name="calculation">
+     <xsl:with-param name="scope" select="../../variablelist"/>
+    </xsl:call-template>
+  </xsl:template>
+
+  <xsl:template name="calculation">
+    <xsl:param name="scope"/>
+    <xsl:param name="total">0</xsl:param>
+    <xsl:param name="position">1</xsl:param>
+    <xsl:variable name="tokens" select="count($scope/varlistentry)"/>
+    <xsl:variable name="token" select="$scope/varlistentry[$position]/term/token"/>
+    <xsl:variable name="size" select="substring-before($token,' KB')"/>
+    <xsl:variable name="rawsize">
+      <xsl:choose>
+        <xsl:when test="contains($size,',')">
+          <xsl:value-of select="concat(substring-before($size,','),substring-after($size,','))"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="$size"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:variable>
+    <xsl:choose>
+      <xsl:when test="$position &lt;= $tokens">
+        <xsl:call-template name="calculation">
+          <xsl:with-param name="scope" select="$scope"/>
+          <xsl:with-param name="position" select="$position +1"/>
+          <xsl:with-param name="total" select="$total + $rawsize"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:choose>
+          <xsl:when test="$total &lt; '1000'">
+            <xsl:value-of select="$total"/>
+            <xsl:text>  KB</xsl:text>
+          </xsl:when>
+          <xsl:when test="$total &gt; '1000' and $total &lt; '5000'">
+            <xsl:value-of select="substring($total,1,1)"/>
+            <xsl:text>,</xsl:text>
+            <xsl:value-of select="substring($total,2)"/>
+            <xsl:text>  KB</xsl:text>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:value-of select="round($total div 1024)"/>
+            <xsl:text>  MB</xsl:text>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
 </xsl:stylesheet>
 </xsl:stylesheet>

+ 5 - 0
stylesheets/pdf/lfs-pagesetup.xsl

@@ -109,6 +109,11 @@
   <xsl:param name="header.rule" select="0"></xsl:param>
   <xsl:param name="header.rule" select="0"></xsl:param>
   <xsl:param name="footer.rule" select="0"></xsl:param>
   <xsl:param name="footer.rule" select="0"></xsl:param>
   <xsl:param name="marker.section.level" select="-1"></xsl:param>
   <xsl:param name="marker.section.level" select="-1"></xsl:param>
+  <xsl:attribute-set name="compact.list.item.spacing">
+    <xsl:attribute name="space-before.optimum">0.6em</xsl:attribute>
+    <xsl:attribute name="space-before.minimum">0.4em</xsl:attribute>
+    <xsl:attribute name="space-before.maximum">0.8em</xsl:attribute>
+  </xsl:attribute-set>
 
 
     <!-- Dropping a blank page -->
     <!-- Dropping a blank page -->
   <xsl:template name="book.titlepage.separator"/>
   <xsl:template name="book.titlepage.separator"/>