Selaa lähdekoodia

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 vuotta sitten
vanhempi
commit
c226182dc5

+ 9 - 0
chapter01/changelog.xml

@@ -36,6 +36,15 @@
     </listitem>
 -->
 
+    <listitem>
+      <para>2006-08-03</para>
+      <itemizedlist>
+        <listitem>
+          <para>[manuel] - Ported updates from 6.2 branch.</para>
+        </listitem>
+      </itemizedlist>
+    </listitem>
+
     <listitem>
       <para>2006-07-31</para>
       <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>
 
-    <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,
     you should compile the stock E2fsprogs package and use the resulting binaries
     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
   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
   download the packages.</para>
 

+ 32 - 0
chapter03/patches.xml

@@ -66,6 +66,14 @@
       </listitem>
     </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>
       <term>Diffutils Internationalization Fixes Patch - <token>&diffutils-i18n-patch-size;</token>:</term>
       <listitem>
@@ -106,6 +114,14 @@
       </listitem>
     </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>
       <term>Grep RedHat Fixes Patch - <token>&grep-fixes-patch-size;</token>:</term>
       <listitem>
@@ -178,6 +194,14 @@
       </listitem>
     </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>
       <term>Mktemp Tempfile Patch - <token>&mktemp-tempfile-patch-size;</token>:</term>
       <listitem>
@@ -299,6 +323,14 @@
       </listitem>
     </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>
 
   <para>Total size of these patches: about <returnvalue/></para>

+ 4 - 0
chapter06/db.xml

@@ -55,6 +55,10 @@
   <sect2 role="installation">
     <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>
 
 <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:
     <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>
 
 <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
     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>
 
 <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>
 
+    <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
     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
@@ -167,9 +172,14 @@ grep Error glibc-check-log</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
     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>
 
     <para>Individual locales can be installed using the

+ 2 - 2
chapter06/grub.xml

@@ -42,8 +42,8 @@
     unset them when building GRUB.</para>
 
     <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>
 

+ 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>
 
   </sect2>
- 
+
   <sect2 id="ch-system-kernfsmount">
     <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
     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>
 
 <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:
     <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>
 
 <screen><userinput>make DESTDIR=/ \

+ 20 - 2
chapter06/vim.xml

@@ -59,6 +59,12 @@
 
 <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
     <filename>vimrc</filename> configuration file to <filename
     class="directory">/etc</filename>:</para>
@@ -188,8 +194,20 @@ EOF</userinput></screen>
 
     <note>
       <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>
 
   </sect2>

+ 41 - 13
chapter07/network.xml

@@ -48,26 +48,31 @@
     invent a descriptive name, such as <quote>realtek</quote>, and create
     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>
 
-    <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
      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
     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>
 
     <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
     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>

+ 24 - 11
chapter07/symlinks.xml

@@ -32,14 +32,23 @@
     location of the device on the bus. If you are going to use the first
     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>
 # 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>
 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
     to different positions on the IDE bus, but the
     <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
     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/sgX</filename>, which is wrong.</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>
 # 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>
 EOF</userinput></screen>
 
@@ -105,11 +116,13 @@ EOF</userinput></screen>
 
     <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>
 # 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>
 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>
 
-  <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
   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>
 
-<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
     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 id="contents-kernel" role="content">
     <title>Contents of Linux</title>
 

+ 2 - 2
general.ent

@@ -1,6 +1,6 @@
 <?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 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 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-md5 "c8d481223db274a33b121fb8c25af9f7">
 <!ENTITY diffutils-i18n-patch-size "18 KB">
@@ -52,6 +57,10 @@
 <!ENTITY glibc-linux_types-patch-md5 "30ea59ae747478aa9315455543b5bb43">
 <!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-md5 "2c67910be2d0a54714f63ce350e6d8a6">
@@ -95,6 +104,11 @@
 <!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-md5 "65d73faabe3f637ad79853b460d30a19">
 <!ENTITY mktemp-tempfile-patch-size "3.5 KB">
@@ -152,6 +166,7 @@
 <!ENTITY util-linux-cramfs-patch-md5 "1c3f40b30e12738eb7b66a35b7374572">
 <!ENTITY util-linux-cramfs-patch-size "2.8 KB">
 
+
 <!ENTITY vim-fixes-patch "vim-&vim-version;-fixes-7.patch">
 <!ENTITY vim-fixes-patch-md5 "d274219566702b0bafcb83ab4685bbde">
 <!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-md5 "b6426eb4192faba1e867ddd502323f5b">
 <!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. -->
  <xsl:template match="para">
     <xsl:choose>
+      <xsl:when test="child::ulink[@url=' ']"/>
       <xsl:when test="./@remap='verbatim'">
         <fo:block wrap-option="no-wrap"
                     white-space-collapse="false"
@@ -254,4 +255,57 @@
     </xsl:choose>
   </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>

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

@@ -109,6 +109,11 @@
   <xsl:param name="header.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: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 -->
   <xsl:template name="book.titlepage.separator"/>