aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--INSTALL23
-rw-r--r--Makefile42
-rw-r--r--README2
-rw-r--r--chapter01/administrativa.xml7
-rw-r--r--chapter01/changelog.xml43
-rw-r--r--chapter03/packages.xml45
-rw-r--r--chapter04/aboutsbus.xml2
-rw-r--r--chapter04/creatingtoolsdir.xml6
-rw-r--r--chapter05/binutils-pass1.xml2
-rw-r--r--chapter05/binutils-pass2.xml2
-rw-r--r--chapter05/coreutils.xml2
-rw-r--r--chapter05/dejagnu.xml2
-rw-r--r--chapter05/findutils.xml2
-rw-r--r--chapter05/gawk.xml2
-rw-r--r--chapter05/gcc-pass1.xml2
-rw-r--r--chapter05/gcc-pass2.xml2
-rw-r--r--chapter05/gettext.xml2
-rw-r--r--chapter05/glibc.xml7
-rw-r--r--chapter05/kernel-headers.xml2
-rw-r--r--chapter05/ncurses.xml2
-rw-r--r--chapter05/sed.xml2
-rw-r--r--chapter05/tar.xml2
-rw-r--r--chapter05/tcl.xml2
-rw-r--r--chapter05/texinfo.xml2
-rw-r--r--chapter06/e2fsprogs.xml2
-rw-r--r--chapter06/glibc.xml18
-rw-r--r--chapter06/introduction.xml4
-rw-r--r--chapter06/kbd.xml2
-rw-r--r--chapter06/makedev.xml4
-rw-r--r--chapter06/mktemp.xml3
-rw-r--r--chapter06/vim.xml2
-rw-r--r--chapter08/kernel.xml4
-rw-r--r--chapter09/reboot.xml17
-rw-r--r--general.ent12
-rw-r--r--goTidy17
-rw-r--r--prologue/acknowledgments.xml177
-rw-r--r--prologue/organization.xml2
-rw-r--r--stylesheets/lfs-chunked.xsl103
-rw-r--r--stylesheets/lfs-nochunks.xsl32
-rw-r--r--stylesheets/lfs-pdf.xsl129
-rw-r--r--stylesheets/lfs-print.xsl57
-rw-r--r--stylesheets/lfs-tex.xsl78
-rw-r--r--stylesheets/lfs.css62
-rw-r--r--stylesheets/patcheslist.xsl24
-rw-r--r--stylesheets/pdf/lfs-index.xsl196
-rw-r--r--stylesheets/pdf/lfs-pagesetup.xsl115
-rw-r--r--stylesheets/print/lfs-index.xsl127
-rw-r--r--stylesheets/print/lfs-pagesetup.xsl120
-rw-r--r--stylesheets/xhtml/lfs-admon.xsl47
-rw-r--r--stylesheets/xhtml/lfs-index.xsl188
-rw-r--r--stylesheets/xhtml/lfs-legalnotice.xsl76
-rw-r--r--stylesheets/xhtml/lfs-mixed.xsl39
-rw-r--r--stylesheets/xhtml/lfs-navigational.xsl98
-rw-r--r--stylesheets/xhtml/lfs-titles.xsl80
-rw-r--r--stylesheets/xhtml/lfs-toc.xsl144
-rw-r--r--tidy.conf17
56 files changed, 1837 insertions, 366 deletions
diff --git a/INSTALL b/INSTALL
index c284b3e49..22fedd19d 100644
--- a/INSTALL
+++ b/INSTALL
@@ -9,7 +9,7 @@ document. Instead, you need to read the LFS Editor's Manual. See the LFS
website at http://www.linuxfromscratch.org for more information.
-------------------------------------------------------------------------------
-If all you want to do is convert XML to HTML perform the following:
+If all you want to do is convert XML to HTML install the following:
* libxml2
- http://www.linuxfromscratch.org/blfs/view/cvs/general/libxml2.html
@@ -18,15 +18,26 @@ If all you want to do is convert XML to HTML perform the following:
- http://www.linuxfromscratch.org/blfs/view/cvs/general/libxslt.html
* DocBook DTD
- - http://www.linuxfromscratch.org/blfs/view/cvs/pst/DocBook.html
+ - http://www.linuxfromscratch.org/blfs/view/cvs/pst/xml.html
* DocBook XSL Stylesheets
- http://www.linuxfromscratch.org/blfs/view/cvs/pst/docbook-xsl.html
+* HTML Tidy - http://tidy.sourceforge.net/src/tidy_src.tgz
+
+ /bin/sh build/gnuauto/setup.sh &&
+ ./configure --prefix=/usr &&
+ make &&
+ su -c "make install"
+
-------------------------------------------------------------------------------
If you want to be able to convert the book into PDF as well, then you will need
the FOP package. This takes an XSL-FO file (created with libxslt which you
-already installed) and converts it to PDF:
+already installed) and converts it to PDF. Additionally you will need
+the Java Advanced Imaging (JAI) library from
+http://java.sun.com/products/java-media/jai/downloads/download-1_1_2.html
+(you'll need either the JDK .bin or JRE .bin file dependent on your
+particular Java setup).
- http://www.apache.org/dist/xml/fop/fop-0.20.5-bin.tar.gz
@@ -36,4 +47,10 @@ already installed) and converts it to PDF:
tar -xzvf /usr/src/fop-0.20.5-bin.tar.gz &&
mv fop-0.20.5 fop
+ Install JAI by running:
+
+ chmod u+x /path/to/jai-1_1_2-lib-linux-i586-jdk.bin &&
+ cd $JAVA_HOME &&
+ /path/to/jai-1_1_2-lib-linux-i586-jdk.bin
+
Now set JAVA_HOME, FOP_HOME and PATH to values appropriate to your system.
diff --git a/Makefile b/Makefile
index a7044e233..0c86666c6 100644
--- a/Makefile
+++ b/Makefile
@@ -1,29 +1,47 @@
-BASEDIR=~/lfs-book/
+BASEDIR=~/lfs-book
+CHUNK_QUIET=0
+PDF_OUTPUT=LFS-BOOK.pdf
+PRINT_OUTPUT=LFS-BOOK-PRINTABLE.pdf
+NOCHUNKS_OUTPUT=LFS-BOOK.html
lfs:
- xsltproc --xinclude --nonet -stringparam base.dir $(BASEDIR) \
- stylesheets/lfs-chunked.xsl index.xml
+ xsltproc --xinclude --nonet -stringparam chunk.quietly $(CHUNK_QUIET) \
+ -stringparam base.dir $(BASEDIR)/ stylesheets/lfs-chunked.xsl \
+ index.xml
- if [ ! -e $(BASEDIR)stylesheets ]; then \
- mkdir -p $(BASEDIR)stylesheets; \
+ if [ ! -e $(BASEDIR)/stylesheets ]; then \
+ mkdir -p $(BASEDIR)/stylesheets; \
fi;
- cp stylesheets/lfs.css $(BASEDIR)stylesheets
+ cp stylesheets/lfs.css $(BASEDIR)/stylesheets
- if [ ! -e $(BASEDIR)images ]; then \
- mkdir -p $(BASEDIR)images; \
+ if [ ! -e $(BASEDIR)/images ]; then \
+ mkdir -p $(BASEDIR)/images; \
fi;
cp /usr/share/xml/docbook/xsl-stylesheets-1.65.1/images/*.png \
- $(BASEDIR)images
- cd $(BASEDIR); sed -i -e "s@../stylesheets@stylesheets@" \
+ $(BASEDIR)/images
+ cd $(BASEDIR)/; sed -i -e "s@../stylesheets@stylesheets@" \
index.html part1.html part2.html part3.html longindex.html
- cd $(BASEDIR); sed -i -e "s@../images@images@g" \
+ cd $(BASEDIR)/; sed -i -e "s@../images@images@g" \
index.html part1.html part2.html part3.html longindex.html
+ sh goTidy $(BASEDIR)/
+
pdf:
xsltproc --xinclude --nonet --output lfs.fo stylesheets/lfs-pdf.xsl \
index.xml
sed -i -e "s/inherit/all/" lfs.fo
- fop.sh lfs.fo lfs.pdf
+ fop.sh lfs.fo $(PDF_OUTPUT)
+
+print:
+ xsltproc --xinclude --nonet --output lfs-print.fo \
+ stylesheets/lfs-print.xsl index.xml
+ sed -i -e "s/inherit/all/" lfs-print.fo
+ fop.sh lfs-print.fo $(PRINT_OUTPUT)
+
+nochunks:
+ xsltproc --xinclude --nonet --output $(NOCHUNKS_OUTPUT) \
+ stylesheets/lfs-nochunks.xsl index.xml
+ tidy -config tidy.conf $(NOCHUNKS_OUTPUT) || true
validate:
xmllint --noout --nonet --xinclude --postvalid index.xml
diff --git a/README b/README
index e7606fb6d..61f7721a2 100644
--- a/README
+++ b/README
@@ -10,7 +10,7 @@ various other formats.
XML to XHTML:
-------------
-BASEDIR=/path/to/output/location make
+make BASEDIR=/path/to/output/location
XML to PDF:
diff --git a/chapter01/administrativa.xml b/chapter01/administrativa.xml
index 9046c9217..c21d010d0 100644
--- a/chapter01/administrativa.xml
+++ b/chapter01/administrativa.xml
@@ -23,11 +23,12 @@ consult the FAQ (Frequently Asked Questions) at
<title>IRC</title>
<para>Several members of the LFS community offer assistance on our community
-IRC (Internet Relay Chat) server. Before you utilize this mode of support, we
+IRC (Internet Relay Chat) network. Before you utilize this mode of support, we
ask that you've at least checked the LFS FAQ (see above) and the mailing list
archives (see below) for the answer to your question. You can find the IRC
-server at <emphasis>irc.linuxfromscratch.org</emphasis> port 6667. The
-support channel is named #LFS-support.</para>
+network at <emphasis>irc.linuxfromscratch.org</emphasis> or
+<emphasis>irc.linux-phreak.net</emphasis> port 6667. The support channel is
+named #LFS-support.</para>
</sect2>
diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml
index d152c2a3e..3c2889796 100644
--- a/chapter01/changelog.xml
+++ b/chapter01/changelog.xml
@@ -27,10 +27,11 @@ first a summary, then a detailed log.</para>
<listitem><para>file-4.09</para></listitem>
<listitem><para>gcc-3.3.3</para></listitem>
<listitem><para>gettext-0.14.1</para></listitem>
+<listitem><para>glibc-2.3.3-lfs-5.1</para></listitem>
<listitem><para>grub-0.94</para></listitem>
<listitem><para>kbd-1.12</para></listitem>
<listitem><para>less-382</para></listitem>
-<listitem><para>lfs-bootscripts-2.0.4</para></listitem>
+<listitem><para>lfs-bootscripts-2.0.5</para></listitem>
<listitem><para>libtool-2.5.6</para></listitem>
<listitem><para>linux-2.4.26</para></listitem>
<listitem><para>man-pages-1.66</para></listitem>
@@ -73,6 +74,46 @@ first a summary, then a detailed log.</para>
</itemizedlist>
</listitem>
+<listitem><para>June 2, 2004 [matt]: Prologue - acknowledgments, Added Thomas
+Reitelbach as the German translator</para></listitem>
+<listitem><para>May 30, 2004 [matt]: Chapter 6 - vim, corrected the optional
+command for invoking the testsuite</para></listitem>
+<listitem><para>May 23, 2004 [matt]: Chapter 6 - kbd, removed the hardcoded path
+to the kernel source directory</para></listitem>
+<listitem><para>May 19, 2004 [matt]: Chapter 6 - mktemp, added instruction to
+install tempfile wrapper</para></listitem>
+<listitem><para>May 18, 2004 [manuel]: Chapter 3 - Updated the list of mirrors
+for Glibc package. Fixed several textual bugs.</para></listitem>
+
+<listitem><para>May 17th, 2004 [winkie]: Chapter 5 - Pass
+<quote>AUTOCONF=no</quote> to the Glibc build. This prevents autoconf from
+causing us problems.</para></listitem>
+
+<listitem><para>May 16th, 2004 [jeremy]: Chapter 9 - Added a brief paragraph
+to the rebooting system page to discuss packages which might be useful to
+add prior to rebooting to the new system</para></listitem>
+
+<listitem><para>May 15th, 2004 [matt]: Chapter 6 - Added a clearer warning that
+make_devices needs to be customised</para></listitem>
+
+<listitem><para>May 14th, 2004 [matt]: Chapter 3 - Added glibc's md5sum</para>
+</listitem>
+
+<listitem><para>May 14th, 2004 [matt]: Chapters 5 &amp; 6 - Upgraded to
+glibc-2.3.3-lfs-5.1</para></listitem>
+
+<listitem><para>May 11th, 2004 [jeremy]: Prologue - Updated the list of
+active staff in the project.</para></listitem>
+
+<listitem><para>May 9th, 2004 [winkie]: Chapter 6 - Removed unused and broken
+entries from <filename>nsswitch.conf</filename>.</para></listitem>
+
+<listitem><para>May 7th, 2004 [matt]: Merged Manuel's lfs-xsl-0.9 patches</para>
+</listitem>
+<listitem><para>May 7th, 2004 [matt]: Fixed README error regarding invocation of
+`make`</para></listitem>
+<listitem><para>May 3rd, 2004: LFS 5.1-pre2 released</para></listitem>
+
<listitem><para>May 2nd, 2004 [matt]: Quoted chroot commands in chapter 6 (bug
#818).</para></listitem>
<listitem><para>May 2nd, 2004 [matt]: Removed description of the now
diff --git a/chapter03/packages.xml b/chapter03/packages.xml
index aa11f6fcb..0be22a2a3 100644
--- a/chapter03/packages.xml
+++ b/chapter03/packages.xml
@@ -116,7 +116,7 @@ Make (&make-version;) - 899 KB:
<ulink url="&freshmeat;gnumake/"/>
Make_devices (&makedev-version;) - 20 KB:
-<ulink url="&lfs-root;~alex/make_devices-1.2.bz2"/>
+<ulink url="&http-down;"/>
Man (&man-version;) - 196 KB:
<ulink url="&freshmeat;man/"/>
@@ -191,26 +191,29 @@ that may have older versions available is <ulink
url="ftp://gaosu.rave.org/pub/linux/lfs/"/>.</para></note>
<note><para>2) As of this writing, the Glibc maintainers have decided in their
-wisdom not to make available new release tarballs for download. The only way to
-obtain the current Glibc release from pristine upstream sources is to pull it
-from the Glibc CVS (Concurrent Versioning System) repository. The following commands will download the current
-release and make a tarball from it:</para>
-
-<screen><userinput>cvs -z 9 -d :pserver:anoncvs@sources.redhat.com:/cvs/glibc \
- export -d glibc-2.3.3-20031202 -D "2003-12-02 UTC" libc
-tar jcvf glibc-2.3.3-20031202.tar.bz2 glibc-2.3.3-20031202</userinput></screen>
-
-<para>Alternatively, we've made our own tarball available which you can
-download courtesy of the generous LFS mirror sites.</para>
-
-<literallayout><ulink url="ftp://gaosu.rave.org/pub/linux/lfs/packages/conglomeration/&glibc-version;.tar.bz2"/>
-<ulink url="http://lfs.mirror.intermedia.com.sg/packages/glibc/&glibc-version;.tar.bz2"/>
-<ulink url="ftp://lfs.mirror.intermedia.com.sg/pub/lfs/glibc/&glibc-version;.tar.bz2"/>
-<ulink url="http://dl.lfs.fredan.org/&glibc-version;.tar.bz2"/>
-<ulink url="http://packages.lfs-es.org/&glibc-version;.tar.bz2"/>
-<ulink url="http://mirror.averse.net/lfs-packages/&glibc-version;.tar.bz2"/>
-<ulink url="ftp://mirror.averse.net/pub/lfs-packages/&glibc-version;.tar.bz2"/>
-<ulink url="ftp://ftp.lfs-matrix.de/lfs/packages/conglomeration/&glibc-version;.tar.bz2"/></literallayout>
+wisdom not to make available new release tarballs for download. As
+such, the LFS toolchain team have provided a tarball of glibc sources
+pulled from Glibc CVS (Concurrent Versioning System) and generated a
+tarball from them, including patches where necessary.</para>
+
+<para>We have made this tarball available courtesy of the generous LFS mirror
+sites:</para>
+
+<literallayout><ulink
+url="ftp://gaosu.rave.org/pub/linux/lfs/packages/conglomeration/glibc-&glibc-version;.tar.bz2"/>
+<ulink
+url="ftp://lfs.mirror.intermedia.com.sg/pub/lfs/lfs-packages/conglomeration/glibc-&glibc-version;.tar.bz2"/>
+<ulink url="http://packages.lfs-es.org/glibc/glibc-&glibc-version;.tar.bz2"/>
+<ulink url="http://mirror.averse.net/lfs-packages/glibc-&glibc-version;.tar.bz2"/>
+<ulink
+url="ftp://mirror.averse.net/pub/lfs-packages/glibc-&glibc-version;.tar.bz2"/>
+<ulink
+url="ftp://ftp.lfs-matrix.de/lfs-packages/conglomeration/glibc-&glibc-version;.tar.bz2"/>
+<ulink url="ftp://ftp.sg.linuxfromscratch.org/pub/lfs-packages/glibc-&glibc-version;.tar.bz2"/>
+<ulink url="http://ftp.sg.linuxfromscratch.org/glibc-&glibc-version;.tar.bz2"/></literallayout>
+<para>If you wish to verify the integrity of the tarball, its MD5 digest
+is <computeroutput>cd11fabdf5162ad68329e7b28b308278</computeroutput>, which can
+be verified using <command>md5sum</command>.</para>
</note>
</sect1>
diff --git a/chapter04/aboutsbus.xml b/chapter04/aboutsbus.xml
index 6c4113584..f39754433 100644
--- a/chapter04/aboutsbus.xml
+++ b/chapter04/aboutsbus.xml
@@ -31,7 +31,7 @@ Fortunately, most build times are much shorter than the one of Binutils.</para>
<para>Note that if the system compiler on your host is GCC-2 based, the SBUs
listed may end up being somewhat understated. This is because the SBU is based
on the very first package, compiled with the old GCC, while the rest of the
-system is compiled with the newer GCC-3.3.2 which is known to be
+system is compiled with the newer GCC-&gcc-version; which is known to be
approximately 30% slower.</para>
<para>Also note that SBUs don't work well for SMP-based machines. But if you're
diff --git a/chapter04/creatingtoolsdir.xml b/chapter04/creatingtoolsdir.xml
index 7dbc9a2fb..756e6966c 100644
--- a/chapter04/creatingtoolsdir.xml
+++ b/chapter04/creatingtoolsdir.xml
@@ -7,13 +7,13 @@
<title>Creating the $LFS/tools directory</title>
<?dbhtml filename="creatingtoolsdir.html"?>
-<para>All programs compiled in this chapter will be installed under <filename
+<para>All programs compiled in <xref linkend="chapter-temporary-tools"/> will be installed under <filename
class="directory">$LFS/tools</filename> to keep them separate from the
-programs compiled in the next chapter. The programs compiled here are only
+programs compiled in <xref linkend="chapter-building-system"/>. The programs compiled here are only
temporary tools and won't be a part of the final LFS system and by keeping them
in a separate directory, we can later easily throw them away. This also
helps prevent them from ending up in your host's production directories
-(easy to do in Chapter 5), which could be a very bad thing.</para>
+(easy to do in <xref linkend="chapter-temporary-tools"/>, which could be a very bad thing.</para>
<para>Later on you might wish to search through the binaries of your system to
see what files they make use of or link against. To make this searching easier
diff --git a/chapter05/binutils-pass1.xml b/chapter05/binutils-pass1.xml
index 3b362c533..36c8999f4 100644
--- a/chapter05/binutils-pass1.xml
+++ b/chapter05/binutils-pass1.xml
@@ -14,7 +14,7 @@
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/binutils.xml" xpointer="xpointer(/sect1/para[1])"/>
<screen>&buildtime; 1.0 SBU
-&diskspace; 194 MB</screen>
+&diskspace; 170 MB</screen>
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/binutils.xml" xpointer="xpointer(/sect1/para[2])"/>
diff --git a/chapter05/binutils-pass2.xml b/chapter05/binutils-pass2.xml
index 32c749b77..8d490aa5d 100644
--- a/chapter05/binutils-pass2.xml
+++ b/chapter05/binutils-pass2.xml
@@ -12,7 +12,7 @@
<secondary>tools, pass 2</secondary></indexterm>
<screen>&buildtime; 1.5 SBU
-&diskspace; 108 MB</screen>
+&diskspace; 35.6 MB</screen>
<sect2>
diff --git a/chapter05/coreutils.xml b/chapter05/coreutils.xml
index 78833341f..683454f59 100644
--- a/chapter05/coreutils.xml
+++ b/chapter05/coreutils.xml
@@ -28,7 +28,7 @@
<para>This package has an issue when compiled against versions of glibc
later than 2.3.2. Some of the Coreutils utilities (such as
-(<command>head</command>, <command>tail</command> and <command>sort</command>)
+<command>head</command>, <command>tail</command> and <command>sort</command>)
will reject their traditional syntax, a syntax that has been in use for
approximately 30 years. This old syntax is so pervasive that compatibility
should be preserved until the many places where it is used can be
diff --git a/chapter05/dejagnu.xml b/chapter05/dejagnu.xml
index 9a526f212..c117545ee 100644
--- a/chapter05/dejagnu.xml
+++ b/chapter05/dejagnu.xml
@@ -12,7 +12,7 @@
<para>The DejaGnu package contains a framework for testing other programs.</para>
<screen>&buildtime; 0.1 SBU
-&diskspace; 8.6 MB</screen>
+&diskspace; 6.1 MB</screen>
<para>For its installation Dejagnu depends on: Bash, Binutils, Coreutils, Diffutils,
GCC, Glibc, Grep, Make, Sed.</para>
diff --git a/chapter05/findutils.xml b/chapter05/findutils.xml
index 544f5441d..9af17b3a0 100644
--- a/chapter05/findutils.xml
+++ b/chapter05/findutils.xml
@@ -14,7 +14,7 @@
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/findutils.xml" xpointer="xpointer(/sect1/para[1])"/>
<screen>&buildtime; 0.2 SBU
-&diskspace; 7.6 MB</screen>
+&diskspace; 7.5 MB</screen>
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/findutils.xml" xpointer="xpointer(/sect1/para[2])"/>
diff --git a/chapter05/gawk.xml b/chapter05/gawk.xml
index a2a22c9a9..bb8c0a5f5 100644
--- a/chapter05/gawk.xml
+++ b/chapter05/gawk.xml
@@ -14,7 +14,7 @@
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/gawk.xml" xpointer="xpointer(/sect1/para[1])"/>
<screen>&buildtime; 0.2 SBU
-&diskspace; 17 MB</screen>
+&diskspace; 16.9 MB</screen>
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/gawk.xml" xpointer="xpointer(/sect1/para[2])"/>
diff --git a/chapter05/gcc-pass1.xml b/chapter05/gcc-pass1.xml
index 68c429fb0..1f80e7eeb 100644
--- a/chapter05/gcc-pass1.xml
+++ b/chapter05/gcc-pass1.xml
@@ -14,7 +14,7 @@
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/gcc.xml" xpointer="xpointer(/sect1/para[1])"/>
<screen>&buildtime; 4.4 SBU
-&diskspace; 300 MB</screen>
+&diskspace; 411.7 MB</screen>
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/gcc.xml" xpointer="xpointer(/sect1/para[2])"/>
diff --git a/chapter05/gcc-pass2.xml b/chapter05/gcc-pass2.xml
index d89d82e82..c145ce29a 100644
--- a/chapter05/gcc-pass2.xml
+++ b/chapter05/gcc-pass2.xml
@@ -12,7 +12,7 @@
<secondary>tools, pass 2</secondary></indexterm>
<screen>&buildtime; 11.0 SBU
-&diskspace; 274 MB</screen>
+&diskspace; 332.7 MB</screen>
<sect2>
diff --git a/chapter05/gettext.xml b/chapter05/gettext.xml
index cebff68f1..8215a63a5 100644
--- a/chapter05/gettext.xml
+++ b/chapter05/gettext.xml
@@ -14,7 +14,7 @@
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/gettext.xml" xpointer="xpointer(/sect1/para[1])"/>
<screen>&buildtime; 0.5 SBU
-&diskspace; 55 MB</screen>
+&diskspace; 67.6 MB</screen>
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/gettext.xml" xpointer="xpointer(/sect1/para[2])"/>
diff --git a/chapter05/glibc.xml b/chapter05/glibc.xml
index 22a338164..3ea4547a6 100644
--- a/chapter05/glibc.xml
+++ b/chapter05/glibc.xml
@@ -14,7 +14,7 @@
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/glibc.xml" xpointer="xpointer(/sect1/para[1])"/>
<screen>&buildtime; 11.8 SBU
-&diskspace; 800 MB</screen>
+&diskspace; 734.2 MB</screen>
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/glibc.xml" xpointer="xpointer(/sect1/para[2])"/>
@@ -39,7 +39,7 @@ cd ../glibc-build</userinput></screen>
<para>Next, prepare Glibc for compilation:</para>
-<screen><userinput>../glibc-&glibc-version;-20031202/configure --prefix=/tools \
+<screen><userinput>../glibc-&glibc-version;/configure --prefix=/tools \
--disable-profile --enable-add-ons=linuxthreads \
--with-binutils=/tools/bin --with-headers=/tools/include \
--without-gd --without-cvs</userinput></screen>
@@ -86,7 +86,7 @@ running the test suite.</para>
<para>Compile the package:</para>
-<screen><userinput>make</userinput></screen>
+<screen><userinput>make AUTOCONF=no</userinput></screen>
<para>Compilation is now complete. As mentioned earlier, we don't recommend
running the test suites for the temporary system here in this chapter. If you
@@ -179,6 +179,7 @@ localedef -i en_HK -f ISO-8859-1 en_HK
localedef -i en_PH -f ISO-8859-1 en_PH
localedef -i en_US -f ISO-8859-1 en_US
localedef -i es_MX -f ISO-8859-1 es_MX
+localedef -i fa_IR -f UTF-8 fa_IR
localedef -i fr_FR -f ISO-8859-1 fr_FR
localedef -i fr_FR@euro -f ISO-8859-15 fr_FR@euro
localedef -i it_IT -f ISO-8859-1 it_IT
diff --git a/chapter05/kernel-headers.xml b/chapter05/kernel-headers.xml
index e825fe66d..a8146e972 100644
--- a/chapter05/kernel-headers.xml
+++ b/chapter05/kernel-headers.xml
@@ -12,7 +12,7 @@
<secondary>tools, headers</secondary></indexterm>
<screen>&buildtime; 0.1 SBU
-&diskspace; 186 MB</screen>
+&diskspace; 192.5 MB</screen>
<sect2>
diff --git a/chapter05/ncurses.xml b/chapter05/ncurses.xml
index 9ef4117a1..258a915fd 100644
--- a/chapter05/ncurses.xml
+++ b/chapter05/ncurses.xml
@@ -14,7 +14,7 @@
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/ncurses.xml" xpointer="xpointer(/sect1/para[1])"/>
<screen>&buildtime; 0.7 SBU
-&diskspace; 26 MB</screen>
+&diskspace; 27.8 MB</screen>
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/ncurses.xml" xpointer="xpointer(/sect1/para[2])"/>
diff --git a/chapter05/sed.xml b/chapter05/sed.xml
index 215ed3f94..400ad366a 100644
--- a/chapter05/sed.xml
+++ b/chapter05/sed.xml
@@ -14,7 +14,7 @@
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/sed.xml" xpointer="xpointer(/sect1/para[1])"/>
<screen>&buildtime; 0.2 SBU
-&diskspace; 5.2 MB</screen>
+&diskspace; 5.9 MB</screen>
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/sed.xml" xpointer="xpointer(/sect1/para[2])"/>
diff --git a/chapter05/tar.xml b/chapter05/tar.xml
index 6368b2a73..1e98b495b 100644
--- a/chapter05/tar.xml
+++ b/chapter05/tar.xml
@@ -14,7 +14,7 @@
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/tar.xml" xpointer="xpointer(/sect1/para[1])"/>
<screen>&buildtime; 0.2 SBU
-&diskspace; 10 MB</screen>
+&diskspace; 10.3 MB</screen>
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/tar.xml" xpointer="xpointer(/sect1/para[2])"/>
diff --git a/chapter05/tcl.xml b/chapter05/tcl.xml
index 4322835e7..41f36e1df 100644
--- a/chapter05/tcl.xml
+++ b/chapter05/tcl.xml
@@ -12,7 +12,7 @@
<para>The Tcl package contains the Tool Command Language.</para>
<screen>&buildtime; 0.9 SBU
-&diskspace; 23 MB</screen>
+&diskspace; 22.7 MB</screen>
<para>Tcl installation depends on: Bash, Binutils, Coreutils, Diffutils,
GCC, Glibc, Grep, Make, Sed.</para>
diff --git a/chapter05/texinfo.xml b/chapter05/texinfo.xml
index 1243b49e4..f77d727c6 100644
--- a/chapter05/texinfo.xml
+++ b/chapter05/texinfo.xml
@@ -14,7 +14,7 @@
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/texinfo.xml" xpointer="xpointer(/sect1/para[1])"/>
<screen>&buildtime; 0.2 SBU
-&diskspace; 16 MB</screen>
+&diskspace; 16.3 MB</screen>
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/texinfo.xml" xpointer="xpointer(/sect1/para[2])"/>
diff --git a/chapter06/e2fsprogs.xml b/chapter06/e2fsprogs.xml
index 4ca8f4b50..e76252d1b 100644
--- a/chapter06/e2fsprogs.xml
+++ b/chapter06/e2fsprogs.xml
@@ -65,7 +65,7 @@ test from failing, then issue: <userinput>make check</userinput>.</para>
<screen><userinput>make install</userinput></screen>
-<para>Also install also the shared libraries:</para>
+<para>Also install the shared libraries:</para>
<screen><userinput>make install-libs</userinput></screen>
diff --git a/chapter06/glibc.xml b/chapter06/glibc.xml
index 59ecff6f9..59c1e016c 100644
--- a/chapter06/glibc.xml
+++ b/chapter06/glibc.xml
@@ -42,7 +42,7 @@ cd ../glibc-build</userinput></screen>
<para>Now prepare Glibc for compilation:</para>
-<screen><userinput>../glibc-&glibc-version;-20031202/configure --prefix=/usr \
+<screen><userinput>../glibc-&glibc-version;/configure --prefix=/usr \
--disable-profile --enable-add-ons=linuxthreads \
--libexecdir=/usr/lib --with-headers=/usr/include \
--without-cvs</userinput></screen>
@@ -121,11 +121,11 @@ localedef -i ja_JP -f EUC-JP ja_JP</userinput></screen>
<para>Finally, build the linuxthreads man pages:</para>
-<screen><userinput>make -C ../glibc-&glibc-version;-20031202/linuxthreads/man</userinput></screen>
+<screen><userinput>make -C ../glibc-&glibc-version;/linuxthreads/man</userinput></screen>
<para>And install these pages:</para>
-<screen><userinput>make -C ../glibc-&glibc-version;-20031202/linuxthreads/man install</userinput></screen>
+<screen><userinput>make -C ../glibc-&glibc-version;/linuxthreads/man install</userinput></screen>
</sect2>
@@ -149,17 +149,13 @@ passwd: files
group: files
shadow: files
-publickey: files
-
hosts: files dns
networks: files
-protocols: db files
-services: db files
-ethers: db files
-rpc: db files
-
-netgroup: db files
+protocols: files
+services: files
+ethers: files
+rpc: files
# End /etc/nsswitch.conf
<userinput>EOF</userinput></screen>
diff --git a/chapter06/introduction.xml b/chapter06/introduction.xml
index 4e0ef7cbb..213ad6066 100644
--- a/chapter06/introduction.xml
+++ b/chapter06/introduction.xml
@@ -60,8 +60,8 @@ with a series of short descriptions of these.</para>
<para>If you wish to keep track of which package installs what files, you may
want to use a package manager. For a general overview of package managers have
-a look at <ulink url="&blfs-root;view/cvs/introduction/pkgmgt.html"/>. And for
-a package management method specifically geared towards LFS see
+a look at <ulink url="&blfs-root;view/cvs/introduction/important.html"/>. And
+for a package management method specifically geared towards LFS see
<ulink url="&hints-root;more_control_and_pkg_man.txt"/>.</para>
</sect1>
diff --git a/chapter06/kbd.xml b/chapter06/kbd.xml
index 4c37aade6..adf4d678a 100644
--- a/chapter06/kbd.xml
+++ b/chapter06/kbd.xml
@@ -73,7 +73,7 @@ source (you will have to repeat this command whenever you unpack a new
kernel):</para>
<screen><userinput>loadkeys -m /usr/share/kbd/keymaps/defkeymap.map.gz &gt; \
- /usr/src/linux-2.4.25/drivers/char/defkeymap.c</userinput></screen>
+ <replaceable>[unpacked sources dir]</replaceable>/linux-&linux-version;/drivers/char/defkeymap.c</userinput></screen>
</sect2>
diff --git a/chapter06/makedev.xml b/chapter06/makedev.xml
index 6d6e08edb..52a0f23b1 100644
--- a/chapter06/makedev.xml
+++ b/chapter06/makedev.xml
@@ -67,6 +67,10 @@ commented out. You should open <filename>make_devices</filename> in an editor
and customize it to your needs. This takes some time, but is very simple. When
you are satisfied, run the script to create the device files:</para>
+<warning><para>Failure to properly edit the <command>make_devices</command> to
+match your systems's setup (eg. number of partitions) can lead to boot errors.
+</para></warning>
+
<screen><userinput>cd /dev
./make_devices</userinput></screen>
diff --git a/chapter06/mktemp.xml b/chapter06/mktemp.xml
index 90087d771..3aac8c1a7 100644
--- a/chapter06/mktemp.xml
+++ b/chapter06/mktemp.xml
@@ -47,7 +47,8 @@ library.</para></listitem>
<para>Now install it:</para>
-<screen><userinput>make install</userinput></screen>
+<screen><userinput>make install</userinput>
+<userinput>make install-tempfile</userinput></screen>
</sect2>
diff --git a/chapter06/vim.xml b/chapter06/vim.xml
index a11a4dca9..366716f0d 100644
--- a/chapter06/vim.xml
+++ b/chapter06/vim.xml
@@ -45,7 +45,7 @@ echo '#define SYS_GVIMRC_FILE "/etc/gvimrc"' &gt;&gt; src/feature.h</userinput><
<screen><userinput>make</userinput></screen>
<para>To test the results, you can issue:
-<userinput>make check</userinput>. However, this test suite outputs a lot of
+<userinput>make test</userinput>. However, this test suite outputs a lot of
seemingly garbage characters to the screen, and this can wreak havoc with the
settings of the current terminal. Therefore the running of the test suite here
is strictly optional.</para>
diff --git a/chapter08/kernel.xml b/chapter08/kernel.xml
index 5ad76a1a4..542272c63 100644
--- a/chapter08/kernel.xml
+++ b/chapter08/kernel.xml
@@ -72,7 +72,7 @@ the <quote>File systems</quote> menu and is normally enabled by default.</para>
<filename>/etc/modules.conf</filename> file. Information pertaining
to modules and to kernel configuration in general may be found in the
kernel documentation, which is found in the
-<filename>linux-2.4.25/Documentation</filename> directory. The
+<filename>linux-&linux-version;/Documentation</filename> directory. The
modules.conf man page and the kernel HOWTO at
<ulink url="http://www.tldp.org/HOWTO/Kernel-HOWTO.html"/> may also be of
interest to you.</para>
@@ -130,7 +130,7 @@ person would have write access to the kernel source.</para>
<para>If you are going to keep the kernel source tree around, you may want to
run <userinput>chown -R 0:0</userinput> on the
-<filename>linux-2.4.25</filename> directory to ensure all files are
+<filename>linux-&linux-version;</filename> directory to ensure all files are
owned by user <emphasis>root</emphasis>.</para>
</sect2>
diff --git a/chapter09/reboot.xml b/chapter09/reboot.xml
index 6607a71e3..3a907e547 100644
--- a/chapter09/reboot.xml
+++ b/chapter09/reboot.xml
@@ -8,7 +8,22 @@
<?dbhtml filename="reboot.html"?>
<para>Now that all of the software has been installed, it is time to reboot
-your computer. First exit from the chroot environment:</para>
+your computer. However, you should be aware of a few things. The system you
+have created in this book is quite minimal, and most likely will not have
+the functionality you would need to be able to continue forward. By installing
+a few extra packages from the BLFS book while still in our current chroot
+environment, you can leave yourself in a much better position to continue on
+once you reboot into your new LFS installation. Installing a text mode web
+browser, such as Lynx, you can easily view the BLFS book in one virtual
+terminal, while building packages in another. The GPM package will also allow
+you to perform copy/paste actions in your virtual terminals. Lastly, if you
+are in a situation where static IP configuration does not meet your networking
+requirements, installing packages such as dhcpcd or ppp at this point might
+also be useful.</para>
+
+
+<para>Now that we have said that, lets move on to booting our shiny new LFS
+installation for the first time! First exit from the chroot environment:</para>
<screen><userinput>logout</userinput></screen>
diff --git a/general.ent b/general.ent
index 0967da488..54b2363d9 100644
--- a/general.ent
+++ b/general.ent
@@ -1,14 +1,14 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!ENTITY version "CVS-2004-05-02">
-<!ENTITY releasedate "May 2, 2004">
-<!ENTITY milestone "5.1">
+<!ENTITY version "&milestone;">
+<!ENTITY releasedate "June 5th, 2004">
+<!ENTITY milestone "5.1.1">
<!ENTITY lfs-root "http://www.linuxfromscratch.org/">
<!ENTITY blfs-root "&lfs-root;blfs/">
<!ENTITY faq-root "&lfs-root;faq/">
<!ENTITY hints-root "&lfs-root;hints/downloads/files/">
<!ENTITY hints-index "&lfs-root;hints/list.html">
-<!ENTITY patches-root "&lfs-root;patches/lfs/cvs/">
+<!ENTITY patches-root "&lfs-root;patches/lfs/&version;/">
<!ENTITY wiki-root "http://wiki.linuxfromscratch.org/">
<!ENTITY http-down "http://downloads.linuxfromscratch.org/">
<!ENTITY freshmeat "http://freshmeat.net/projects/">
@@ -21,7 +21,7 @@
<!ENTITY bash-version "2.05b">
<!ENTITY binutils-version "2.14">
<!ENTITY bison-version "1.875">
-<!ENTITY bootscripts-version "2.0.4">
+<!ENTITY bootscripts-version "2.0.5">
<!ENTITY bzip2-version "1.0.2">
<!ENTITY coreutils-version "5.2.1">
<!ENTITY dejagnu-version "1.4.4">
@@ -36,7 +36,7 @@
<!ENTITY gcc-2953-version "2.95.3">
<!ENTITY gcc-version "3.3.3">
<!ENTITY gettext-version "0.14.1">
-<!ENTITY glibc-version "2.3.3">
+<!ENTITY glibc-version "2.3.3-lfs-5.1">
<!ENTITY grep-version "2.5.1">
<!ENTITY groff-version "1.19">
<!ENTITY grub-version "0.94">
diff --git a/goTidy b/goTidy
new file mode 100644
index 000000000..e2f4eed02
--- /dev/null
+++ b/goTidy
@@ -0,0 +1,17 @@
+#!/bin/bash
+#######################################################################
+#
+# File: goTidy
+#
+# Description: Tidy is best used inside a loop, but Makefiles don't do
+# bash loops well. This file alleviates that problem.
+#
+# Author: James Robertson
+#
+########################################################################
+
+for file in `find "$1" -name "*.html"`; do
+ tidy -config tidy.conf $file
+done
+
+exit 0
diff --git a/prologue/acknowledgments.xml b/prologue/acknowledgments.xml
index 84609cb3d..efe758cc2 100644
--- a/prologue/acknowledgments.xml
+++ b/prologue/acknowledgments.xml
@@ -20,13 +20,17 @@ Beekmans</ulink> &lt;gerard@linuxfromscratch.org&gt; -- Linux-From-Scratch
initiator, LFS Project organizer.</para></listitem>
<listitem><para><ulink url="mailto:matthew@linuxfromscratch.org">Matthew
-Burgess</ulink> &lt;matthew@linuxfromscratch.org&gt; -- LFS General Package
-maintainer, LFS Book editor.</para></listitem>
+Burgess</ulink> &lt;matthew@linuxfromscratch.org&gt; -- LFS Project Co-Leader,
+LFS General Package maintainer, LFS Book editor.</para></listitem>
<listitem><para><ulink url="mailto:meerkats@bellsouth.net">Craig
Colton</ulink> &lt;meerkats@bellsouth.net&gt; -- LFS, ALFS, BLFS and Hints
Project logo creator.</para></listitem>
+<listitem><para><ulink url="mailto:nathan@linuxfromscratch.org">Nathan
+Coulson</ulink> &lt;nathan@linuxfromscratch.org&gt; -- LFS-Bootscripts
+maintainer.</para></listitem>
+
<listitem><para><ulink url="mailto:jeroen@linuxfromscratch.org">Jeroen
Coumans</ulink> &lt;jeroen@linuxfromscratch.org&gt; -- Website developer, FAQ
maintainer.</para></listitem>
@@ -35,6 +39,10 @@ maintainer.</para></listitem>
Dubbs</ulink> &lt;bdubbs@linuxfromscratch.org&gt; -- LFS Quality Assurance Team
leader, BLFS Book editor.</para></listitem>
+<listitem><para><ulink url="mailto:manuel@linuxfromscratch.org">Manuel
+Canales Esparcia</ulink> &lt;manuel@linuxfromscratch.org&gt; -- LFS Book
+Editor (XML).</para></listitem>
+
<listitem><para><ulink url="mailto:alex@linuxfromscratch.org">Alex
Groenewoud</ulink> &lt;alex@linuxfromscratch.org&gt; -- LFS Book
editor.</para></listitem>
@@ -59,6 +67,10 @@ creator and maintainer.</para></listitem>
Maltby</ulink> &lt;bill@linuxfromscratch.org&gt; -- LFS Project
organizer.</para></listitem>
+<listitem><para><ulink url="mailto:alexander@linuxfromscratch.org">Alexander
+Patrakov</ulink> &lt;alexander@linuxfromscratch.org&gt; -- LFS Book
+Editor (internationalization/localization).</para></listitem>
+
<listitem><para><ulink url="mailto:scot@linuxfromscratch.org">Scot Mc
Pherson</ulink> &lt;scot@linuxfromscratch.org&gt; -- LFS NNTP gateway
maintainer.</para></listitem>
@@ -73,7 +85,7 @@ Wiki developer, LFS Book editor.</para></listitem>
<listitem><para><ulink url="mailto:greg@linuxfromscratch.org">Greg
Schafer</ulink> &lt;greg@linuxfromscratch.org&gt; -- Toolchain maintainer,
-LFS Book editor, co-creator of PLFS.</para></listitem>
+Former LFS Book editor, co-creator of PLFS.</para></listitem>
<listitem><para><ulink url="mailto:tushar@linuxfromscratch.org">Tushar
Teredesai</ulink> &lt;tushar@linuxfromscratch.org&gt; -- BLFS Book editor,
@@ -81,7 +93,11 @@ Hints and Patches Projects maintainer.</para></listitem>
<listitem><para><ulink url="mailto:jeremy@linuxfromscratch.org">Jeremy
Utley</ulink> &lt;jeremy@linuxfromscratch.org&gt; -- LFS Book editor, Bugzilla
-maintainer.</para></listitem>
+maintainer, LFS-Bootscripts Maintainer, LFS Server co-admin.</para></listitem>
+
+<listitem><para><ulink url="mailto:winkie@linuxfromscratch.org">Zack
+Winkles</ulink> &lt;winkie@linuxfromscratch.org&gt; -- LFS Book editor
+(Emerging Technologies), LFS-Bootscripts co-maintainer.</para></listitem>
<listitem><para>Countless other people on the various LFS and BLFS
mailing lists who are making this book happen by giving their suggestions,
@@ -109,6 +125,10 @@ project.</para></listitem>
Lizardo</ulink> &lt;lizardo@linuxfromscratch.org&gt; -- Portuguese LFS
translation project.</para></listitem>
+<listitem><para><ulink url="mailto:tr@erdfunkstelle.de">Thomas Reitelbach
+</ulink> &lt;tr@erdfunkstelle.de&gt; -- German LFS translation project.</para>
+</listitem>
+
</itemizedlist>
</sect2>
@@ -116,102 +136,160 @@ translation project.</para></listitem>
<sect2>
<title>Mirror Maintainers</title>
+<sect3>
+<title>North American Mirrors</title>
+
<itemizedlist>
-<listitem><para><ulink url="mailto:jason@dstc.edu.au">Jason Andrade</ulink>
-&lt;jason@dstc.edu.au&gt; -- au.linuxfromscratch.org mirror.</para></listitem>
+<listitem><para><ulink url="mailto:scott@osuosl.org">Scott Kveton</ulink>
+&lt;scott@osuosl.org&gt; -- lfs.oregonstate.edu mirror</para></listitem>
+
+<listitem><para><ulink url="mailto:miha@xuy.biz">Mikhail Pastukhov</ulink>
+&lt;miha@xuy.biz&gt; -- lfs.130th.net mirror.</para></listitem>
+
+<listitem><para><ulink url="mailto:crash4o4@gameover.com">Frank Mancuso</ulink>
+&lt;crash4o4@gameover.com&gt; -- lfs.crash404.com mirror.</para></listitem>
<listitem><para><ulink url="mailto:lost@l-w.net">William Astle</ulink>
&lt;lost@l-w.net&gt; -- ca.linuxfromscratch.org mirror.</para></listitem>
-<listitem><para><ulink url="mailto:baque@cict.fr">Baque</ulink>
-&lt;baque@cict.fr&gt; -- lfs.cict.fr mirror.</para></listitem>
-
-<listitem><para><ulink url="mailto:stevie@stevie20.de">Stephan Brendel</ulink>
-&lt;stevie@stevie20.de&gt; -- lfs.netservice-neuss.de
+<listitem><para><ulink url="mailto:jpolen@rackspace.com">Jeremy Polen</ulink>
+&lt;jpolen@rackspace.com&gt; -- us2.linuxfromscratch.org
mirror.</para></listitem>
-<listitem><para><ulink url="mailto:ian@ichilton.co.uk">Ian Chilton</ulink>
-&lt;ian@ichilton.co.uk&gt; -- us.linuxfromscratch.org, linuxfromscratch.co.uk
-mirrors.</para></listitem>
+<listitem><para><ulink url="mailto:tim@idge.net">Tim Jackson</ulink>
+&lt;tim@idge.net&gt; -- linuxfromscratch.idge.net mirror.</para></listitem>
-<listitem><para><ulink url="mailto:fredan-lfs@fredan.org">Fredrik
-Danerklint</ulink> &lt;fredan-lfs@fredan.org&gt; -- se.linuxfromscratch.org
-mirror.</para></listitem>
+<listitem><para><ulink url="mailto:jeremy@linux-phreak.net">Jeremy Utley
+</ulink> &lt;jeremy@linux-phreak.net&gt; -- lfs.linux-phreak.net mirror.
+</para></listitem>
+
+</itemizedlist>
+
+</sect3>
+
+<sect3>
+<title>South American Mirrors</title>
-<listitem><para><ulink url="mailto:pgpkeys@aeternamtech.com">David D.W.
-Downey</ulink> &lt;pgpkeys@aeternamtech.com&gt; -- lfs.learnbyexample.com
+<itemizedlist>
+
+<listitem><para><ulink url="mailto:manuel@linuxfromscratch.org">Manuel Canales
+Esparcia</ulink> &lt;manuel@linuxfromscratch.org&gt; -- lfsmirror.lfs-es.org
mirror.</para></listitem>
+<listitem><para><ulink url="mailto:sysop@mesi.com.ar">Andres Meggiotto</ulink>
+&lt;sysop@mesi.com.ar&gt; -- lfs.mesi.com.ar mirror.</para></listitem>
+
<listitem><para><ulink url="mailto:ebf@aedsolucoes.com.br">Eduardo B.
Fonseca</ulink> &lt;ebf@aedsolucoes.com.br&gt; -- br.linuxfromscratch.org
mirror.</para></listitem>
-<listitem><para><ulink url="mailto:hrx@hrxnet.de">Hagen Herrschaft</ulink>
-&lt;hrx@hrxnet.de&gt; -- de.linuxfromscratch.org mirror.</para></listitem>
+</itemizedlist>
-<listitem><para><ulink url="mailto:tim@idge.net">Tim Jackson</ulink>
-&lt;tim@idge.net&gt; -- linuxfromscratch.idge.net mirror.</para></listitem>
+</sect3>
+
+<sect3>
+<title>European Mirrors</title>
+
+<itemizedlist>
<listitem><para><ulink url="mailto:barna@siker.hu">Barna Koczka</ulink>
&lt;barna@siker.hu&gt; -- hu.linuxfromscratch.org mirror.</para></listitem>
-<listitem><para><ulink url="mailto:lfs-mirror@linuxfromscratch.rave.org">Roel
-Neefs</ulink> -- linuxfromscratch.rave.org mirror.</para></listitem>
+<listitem><para><ulink url="http://www.mirror.ac.uk">UK Mirror Service</ulink>
+-- linuxfromscratch.mirror.ac.uk mirror.</para></listitem>
-<listitem><para><ulink url="mailto:sime@dot-sime.com">Simon Nicoll</ulink>
-&lt;sime@dot-sime.com&gt; -- uk.linuxfromscratch.org mirror.</para></listitem>
+<listitem><para><ulink url="mailto:Martin.Voss@ada.de">Martin Voss</ulink>
+&lt;Martin.Voss@ada.de&gt; -- lfs.linux-matrix.net mirror.</para></listitem>
-<listitem><para><ulink url="mailto:ervin@activalink.net">Ervin S.
-Odisho</ulink> &lt;ervin@activalink.net&gt; -- lfs.activalink.net
-mirror.</para></listitem>
+<listitem><para>Unknown -- mirror.vtx.ch mirror</para></listitem>
<listitem><para><ulink url="mailto:guido@primerelay.net">Guido Passet</ulink>
&lt;guido@primerelay.net&gt; -- nl.linuxfromscratch.org
mirror.</para></listitem>
-<listitem><para><ulink url="mailto:miha@xuy.biz">Mikhail Pastukhov</ulink>
-&lt;miha@xuy.biz&gt; -- lfs.130th.net mirror.</para></listitem>
+<listitem><para><ulink url="mailto:baafie@planet.nl">Bastiaan Jacques</ulink>
+&lt;baafie@planet.nl&gt; -- lfs.pagefault.net mirror</para></listitem>
-<listitem><para><ulink url="mailto:jpolen@rackspace.com">Jeremy Polen</ulink>
-&lt;jpolen@rackspace.com&gt; -- us2.linuxfromscratch.org
+<listitem><para><ulink url="mailto:lfs-mirror@linuxfromscratch.rave.org">Roel
+Neefs</ulink> &lt;lfs-mirror@linuxfromscratch.rave.org&gt; -- linuxfromscratch.rave.org mirror.</para></listitem>
+
+<listitem><para><ulink url="mailto:justin@jrknierim.de">Justin Knierim</ulink>
+&lt;justin@jrknierim.de&gt; -- www.lfs-matrix.de mirror</para></listitem>
+
+<listitem><para><ulink url="mailto:stevie@stevie20.de">Stephan Brendel</ulink>
+&lt;stevie@stevie20.de&gt; -- lfs.netservice-neuss.de
mirror.</para></listitem>
-<listitem><para><ulink url="http://www.mirror.ac.uk">UK Mirror Service</ulink>
--- linuxfromscratch.mirror.co.uk mirror.</para></listitem>
+<listitem><para>Unknown -- linuxfromscratch.je-zi.de
+mirror</para></listitem>
-<listitem><para><ulink url="mailto:thomas@sofagang.dk">Thomas Skyt</ulink>
-&lt;thomas@sofagang.dk&gt; -- dk.linuxfromscratch.org mirror.</para></listitem>
+<listitem><para>Unknown -- linuxfromscratch.tuxcenter.net
+mirror</para></listitem>
+
+<listitem><para><ulink url="mailto:hrx@hrxnet.de">Hagen Herrschaft</ulink>
+&lt;hrx@hrxnet.de&gt; -- de.linuxfromscratch.org mirror.</para></listitem>
<listitem><para><ulink url="mailto:Antonin.Sprinzl@tuwien.ac.at">Antonin
Sprinzl</ulink> &lt;Antonin.Sprinzl@tuwien.ac.at&gt; -- at.linuxfromscratch.org
mirror.</para></listitem>
-<listitem><para><ulink url="mailto:dag@stenstad.net">Dag Stenstad</ulink>
-&lt;dag@stenstad.net&gt; for providing no.linuxfromscratch.org and
-<ulink url="mailto:ian@ichilton.co.uk">Ian Chilton</ulink> for running
-it.</para></listitem>
+<listitem><para><ulink url="mailto:fredan-lfs@fredan.org">Fredrik
+Danerklint</ulink> &lt;fredan-lfs@fredan.org&gt; -- se.linuxfromscratch.org
+mirror.</para></listitem>
<listitem><para><ulink url="mailto:archive@doc.cs.univ-paris8.fr">Parisian
sysadmins</ulink> &lt;archive@doc.cs.univ-paris8.fr&gt; --
www2.fr.linuxfromscratch.org mirror.</para></listitem>
-<listitem><para><ulink url="mailto:highos@linuxfromscratch.org">Jesse
-Tie-Ten-Quee</ulink> &lt;highos@linuxfromscratch.org&gt; for providing and
-running the linuxfromscratch.org server.</para></listitem>
-
<listitem><para><ulink url="mailto:velin@zadnik.org">Alexander Velin</ulink>
&lt;velin@zadnik.org&gt; -- bg.linuxfromscratch.org mirror.</para></listitem>
-<listitem><para><ulink url="mailto:Martin.Voss@ada.de">Martin Voss</ulink>
-&lt;Martin.Voss@ada.de&gt; -- lfs.linux-matrix.net mirror.</para></listitem>
+<listitem><para><ulink url="mailto:dirk@securewebservices.co.uk">Dirk
+Webster</ulink> &lt;dirk@securewebservices.co.uk&gt; --
+lfs.securewebservices.co.uk mirror</para></listitem>
+
+<listitem><para><ulink url="mailto:thomas@sofagang.dk">Thomas Skyt</ulink>
+&lt;thomas@sofagang.dk&gt; -- dk.linuxfromscratch.org mirror.</para></listitem>
+
+<listitem><para><ulink url="mailto:sime@dot-sime.com">Simon Nicoll</ulink>
+&lt;sime@dot-sime.com&gt; -- uk.linuxfromscratch.org mirror.</para></listitem>
+
+</itemizedlist>
+
+</sect3>
+
+<sect3>
+<title>Asian Mirrors</title>
+
+<itemizedlist>
<listitem><para><ulink url="mailto:pyng@spam.averse.net">Pui Yong</ulink>
&lt;pyng@spam.averse.net&gt; -- sg.linuxfromscratch.org
mirror.</para></listitem>
+<listitem><para><ulink url="mailto:stuart@althalus.me.uk">Stuart Harris</ulink>
+&lt;stuart@althalus.me.uk&gt; -- lfs.mirror.intermedia.com.sg
+mirror</para></listitem>
+
+<listitem><para>Unknown -- lfs.mirror.if.itb.ac.id mirror</para></listitem>
+
</itemizedlist>
+</sect3>
+
+<sect3>
+<title>Australian Mirrors</title>
+
+<itemizedlist>
+
+<listitem><para><ulink url="mailto:jason@dstc.edu.au">Jason Andrade</ulink>
+&lt;jason@dstc.edu.au&gt; -- au.linuxfromscratch.org mirror.</para></listitem>
+
+</itemizedlist>
+
+</sect3>
+
</sect2>
<sect2>
@@ -296,7 +374,8 @@ LFS banner by Garrett LeSage.</para></listitem>
look at <ulink url="http://www.oswd.org/"/>.</para></listitem>
<listitem><para><ulink url="mailto:highos@linuxfromscratch.org">Jesse
-Tie-Ten-Quee</ulink> &lt;highos@linuxfromscratch.org&gt; for answering
+Tie-Ten-Quee</ulink> &lt;highos@linuxfromscratch.org&gt; for temporarily
+hosting the linuxfromscratch.org server, answering
countless questions on IRC and having a great deal of patience.</para></listitem>
</itemizedlist>
diff --git a/prologue/organization.xml b/prologue/organization.xml
index d88f4938d..c95a1907c 100644
--- a/prologue/organization.xml
+++ b/prologue/organization.xml
@@ -7,7 +7,7 @@
<title>Structure</title>
<?dbhtml filename="organization.html"?>
-<para>This book is divided into the following four parts:</para>
+<para>This book is divided into the following parts:</para>
<sect2>
<title>Part I - Introduction</title>
diff --git a/stylesheets/lfs-chunked.xsl b/stylesheets/lfs-chunked.xsl
index e7f6c85df..8abaf3ddd 100644
--- a/stylesheets/lfs-chunked.xsl
+++ b/stylesheets/lfs-chunked.xsl
@@ -1,92 +1,33 @@
-<?xml version='1.0'?>
+<?xml version='1.0' encoding='ISO-8859-1'?>
+
+<!-- Version 0.9 - Manuel Canales Esparcia <macana@lfs-es.org>
+Based on the original lfs-chunked.xsl created by Matthew Burgess -->
+
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns="http://www.w3.org/1999/xhtml"
version="1.0">
- <!-- We use XHTML -->
+ <!-- We use XHTML -->
<xsl:import href="http://docbook.sourceforge.net/release/xsl/1.65.1/xhtml/chunk.xsl"/>
<xsl:param name="chunker.output.encoding" select="'ISO-8859-1'"/>
-
- <!-- The CSS Stylesheet -->
- <xsl:param name="html.stylesheet" select="'../stylesheets/lfs.css'"/>
-
- <!-- Include our customised templates -->
- <xsl:include href="xhtml/lfs-toc.xsl"/>
+
+ <!-- Including our others customized templates -->
+ <xsl:include href="xhtml/lfs-admon.xsl"/>
<xsl:include href="xhtml/lfs-index.xsl"/>
+ <xsl:include href="xhtml/lfs-legalnotice.xsl"/>
+ <xsl:include href="xhtml/lfs-mixed.xsl"/>
+ <xsl:include href="xhtml/lfs-navigational.xsl"/>
+ <xsl:include href="xhtml/lfs-titles.xsl"/>
+ <xsl:include href="xhtml/lfs-toc.xsl"/>
- <!-- Use graphics in admonitions -->
- <xsl:param name="admon.graphics" select="1"/>
- <xsl:param name="admon.graphics.path">../images/</xsl:param>
- <xsl:param name="admon.graphics.extension" select="'.png'"/>
-
- <!-- Legal Notice stuff -->
- <xsl:param name="generate.legalnotice.link" select="1"/>
- <xsl:template match="legalnotice" mode="titlepage.mode">
- <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
- <xsl:choose>
- <xsl:when test="$generate.legalnotice.link != 0">
- <xsl:variable name="filename">
- <xsl:call-template name="make-relative-filename">
- <xsl:with-param name="base.dir" select="''"/>
- <xsl:with-param name="base.name" select="concat($base.dir, 'prologue/legalnotice.html')"/>
- </xsl:call-template>
- </xsl:variable>
- <xsl:variable name="title">
- <xsl:apply-templates select="." mode="title.markup"/>
- </xsl:variable>
- <xsl:element name="a">
- <xsl:attribute name="href">
- <xsl:value-of select="'prologue/legalnotice.html'"/>
- </xsl:attribute>
- <xsl:copy-of select="$title"/>
- </xsl:element>
- <xsl:call-template name="write.chunk">
- <xsl:with-param name="filename" select="$filename"/>
- <xsl:with-param name="quiet" select="$chunk.quietly"/>
- <xsl:with-param name="content">
- <html>
- <head>
- <xsl:call-template name="system.head.content"/>
- <xsl:call-template name="head.content"/>
- <xsl:call-template name="user.head.content"/>
- </head>
- <body>
- <xsl:call-template name="body.attributes"/>
- <div class="{local-name(.)}">
- <xsl:apply-templates mode="titlepage.mode"/>
- </div>
- </body>
- </html>
- </xsl:with-param>
- </xsl:call-template>
- </xsl:when>
- <xsl:otherwise>
- <div class="{local-name(.)}">
- <xsl:apply-templates mode="titlepage.mode"/>
- </div>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:template>
+ <!-- The CSS Stylesheet -->
+ <xsl:param name="html.stylesheet" select="'../stylesheets/lfs.css'"/>
- <!--TOC stuff-->
- <xsl:param name="generate.toc">
- appendix toc
- book toc,title,figure,table,example,equation
- chapter nop
- part toc
- preface nop
- qandadiv nop
- qandaset nop
- reference nop
- sect1 nop
- sect2 nop
- sect3 nop
- sect4 nop
- sect5 nop
- section nop
- set nop
- </xsl:param>
- <xsl:param name="toc.section.depth">1</xsl:param>
- <xsl:param name="toc.max.depth">3</xsl:param>
+ <!-- Dropping some unwanted style attributes -->
+ <xsl:param name="ulink.target" select="''"></xsl:param>
+ <xsl:param name="css.decoration" select="0"></xsl:param>
+
+ <!-- No XML declaration -->
+ <xsl:param name="chunker.output.omit-xml-declaration" select="'yes'"/>
</xsl:stylesheet>
diff --git a/stylesheets/lfs-nochunks.xsl b/stylesheets/lfs-nochunks.xsl
new file mode 100644
index 000000000..6006d26c7
--- /dev/null
+++ b/stylesheets/lfs-nochunks.xsl
@@ -0,0 +1,32 @@
+<?xml version='1.0' encoding='ISO-8859-1'?>
+
+<!-- Version 0.9 - Manuel Canales Esparcia <macana@lfs-es.org>
+Based on the original lfs-chunked.xsl created by Matthew Burgess -->
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns="http://www.w3.org/1999/xhtml"
+ version="1.0">
+
+ <!-- We use XHTML -->
+ <xsl:import href="http://docbook.sourceforge.net/release/xsl/1.65.1/xhtml/docbook.xsl"/>
+
+ <!-- Fix encoding issues with default UTF-8 output of the xhtml stylesheet -->
+ <xsl:output method="html" encoding="ISO-8859-1" indent="no" />
+
+ <!-- Including our others customized templates -->
+ <xsl:include href="xhtml/lfs-admon.xsl"/>
+ <xsl:include href="xhtml/lfs-index.xsl"/>
+ <xsl:include href="xhtml/lfs-mixed.xsl"/>
+ <xsl:include href="xhtml/lfs-navigational.xsl"/>
+ <!-- The following breaks hyperlinks in the TOC -->
+ <!-- <xsl:include href="xhtml/lfs-titles.xsl"/> -->
+ <xsl:include href="xhtml/lfs-toc.xsl"/>
+
+ <!-- The CSS Stylesheet -->
+ <xsl:param name="html.stylesheet" select="'lfs.css'"/>
+
+ <!-- Dropping some unwanted style attributes -->
+ <xsl:param name="ulink.target" select="''"></xsl:param>
+ <xsl:param name="css.decoration" select="0"></xsl:param>
+
+</xsl:stylesheet>
diff --git a/stylesheets/lfs-pdf.xsl b/stylesheets/lfs-pdf.xsl
index 568f7f229..2a7e25790 100644
--- a/stylesheets/lfs-pdf.xsl
+++ b/stylesheets/lfs-pdf.xsl
@@ -1,127 +1,58 @@
-<?xml version='1.0'?>
+<?xml version='1.0' encoding='ISO-8859-1'?>
+
+<!-- Version 0.9 - Manuel Canales Esparcia <macana@lfs-es.org>
+Based on the original lfs-pdf.xsl created by Matthew Burgess -->
+
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format"
- xmlns="http://www.w3.org/1999/xhtml"
version="1.0">
<!-- We use FO and FOP as the processor -->
<xsl:import href="http://docbook.sourceforge.net/release/xsl/1.65.1/fo/docbook.xsl"/>
<xsl:param name="fop.extensions" select="1"/>
<xsl:param name="draft.mode" select="'no'"/>
+
+ <!-- Including our others customized templates -->
+ <xsl:include href="pdf/lfs-index.xsl"/>
+ <xsl:include href="pdf/lfs-pagesetup.xsl"/>
+
<!-- Probably want to make the paper size configurable -->
<xsl:param name="paper.type" select="'A4'"/>
- <!-- Include our customised templates -->
- <xsl:include href="pdf/lfs-index.xsl"/>
+ <!-- Don't hyphenate -->
+ <xsl:param name="hyphenate">false</xsl:param>
+ <xsl:param name="alignment">left</xsl:param>
<!-- Font size -->
<xsl:param name="body.font.master">8</xsl:param>
<xsl:param name="body.font.size">10pt</xsl:param>
- <!-- Margins -->
- <xsl:param name="page.margin.inner">1in</xsl:param>
- <xsl:param name="page.margin.outer">0.5in</xsl:param>
- <xsl:param name="title.margin.left">-1pc</xsl:param>
+ <!-- Graphics in admonitions -->
+ <xsl:param name="admon.graphics" select="1"/>
+ <xsl:param name="admon.graphics.path"
+ select="'/usr/share/xml/docbook/xsl-stylesheets-1.65.1/images/'"/>
+
+ <!-- Shade screen -->
+ <xsl:param name="shade.verbatim" select="1"/>
- <!-- TOC stuff -->
+ <!-- TOC generation -->
<xsl:param name="generate.toc">
book toc
part nop
</xsl:param>
<xsl:param name="toc.section.depth">1</xsl:param>
- <xsl:param name="generate.section.toc.level" select="-1"></xsl:param>
- <xsl:param name="toc.indent.width" select="18"></xsl:param>
-
- <!-- Force section1's onto a new page -->
- <xsl:attribute-set name="section.level1.properties">
- <xsl:attribute name="break-after">page</xsl:attribute>
- </xsl:attribute-set>
-
- <!-- Columns in appendix -->
- <xsl:param name="column.count.back" select="2"/>
-
- <!-- Don't hyphenate -->
- <xsl:param name="hyphenate">false</xsl:param>
- <xsl:param name="alignment">left</xsl:param>
+ <xsl:param name="generate.section.toc.level" select="-1"/>
+ <xsl:param name="toc.indent.width" select="18"/>
<!-- Page number in Xref-->
<xsl:param name="insert.xref.page.number">yes</xsl:param>
- <xsl:template match="xref" name="xref">
- <xsl:variable name="targets" select="key('id',@linkend)"/>
- <xsl:variable name="target" select="$targets[1]"/>
- <xsl:variable name="refelem" select="local-name($target)"/>
- <xsl:call-template name="check.id.unique">
- <xsl:with-param name="linkend" select="@linkend"/>
- </xsl:call-template>
- <xsl:choose>
- <xsl:when test="$refelem=''">
- <xsl:message>
- <xsl:text>XRef to nonexistent id: </xsl:text>
- <xsl:value-of select="@linkend"/>
- </xsl:message>
- <xsl:text>???</xsl:text>
- </xsl:when>
- <xsl:when test="@endterm">
- <fo:basic-link internal-destination="{@linkend}"
- xsl:use-attribute-sets="xref.properties">
- <xsl:variable name="etargets" select="key('id',@endterm)"/>
- <xsl:variable name="etarget" select="$etargets[1]"/>
- <xsl:choose>
- <xsl:when test="count($etarget) = 0">
- <xsl:message>
- <xsl:value-of select="count($etargets)"/>
- <xsl:text>Endterm points to nonexistent ID: </xsl:text>
- <xsl:value-of select="@endterm"/>
- </xsl:message>
- <xsl:text>???</xsl:text>
- </xsl:when>
- <xsl:otherwise>
- <xsl:apply-templates select="$etarget" mode="endterm"/>
- </xsl:otherwise>
- </xsl:choose>
- </fo:basic-link>
- </xsl:when>
- <xsl:when test="$target/@xreflabel">
- <fo:basic-link internal-destination="{@linkend}"
- xsl:use-attribute-sets="xref.properties">
- <xsl:call-template name="xref.xreflabel">
- <xsl:with-param name="target" select="$target"/>
- </xsl:call-template>
- </fo:basic-link>
- </xsl:when>
- <xsl:otherwise>
- <fo:basic-link internal-destination="{@linkend}"
- xsl:use-attribute-sets="xref.properties">
- <xsl:apply-templates select="$target" mode="xref-to">
- <xsl:with-param name="referrer" select="."/>
- <xsl:with-param name="xrefstyle">
- <xsl:choose>
- <xsl:when test="@role and not(@xrefstyle) and $use.role.as.xrefstyle != 0">
- <xsl:value-of select="@role"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="@xrefstyle"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:with-param>
- </xsl:apply-templates>
- </fo:basic-link>
- </xsl:otherwise>
- </xsl:choose>
- <xsl:if test="not(starts-with(normalize-space(@xrefstyle), 'select:') != ''
- and (contains(@xrefstyle, 'page')
- or contains(@xrefstyle, 'Page')))
- and ( $insert.xref.page.number = 'yes'
- or $insert.xref.page.number = '1')
- or local-name($target) = 'para'">
- <fo:basic-link internal-destination="{@linkend}"
- xsl:use-attribute-sets="xref.properties">
- <xsl:text>, p. </xsl:text>
- <xsl:apply-templates select="$target" mode="page.citation">
- <xsl:with-param name="id" select="@linkend"/>
- </xsl:apply-templates>
- </fo:basic-link>
- </xsl:if>
+ <xsl:template match="*" mode="page.citation">
+ <xsl:param name="id" select="'???'"/>
+ <fo:inline keep-together.within-line="always">
+ <xsl:text>[p.</xsl:text>
+ <fo:page-number-citation ref-id="{$id}"/>
+ <xsl:text>]</xsl:text>
+ </fo:inline>
</xsl:template>
<!-- Prevent duplicate e-mails in the Acknowledgments pages-->
diff --git a/stylesheets/lfs-print.xsl b/stylesheets/lfs-print.xsl
new file mode 100644
index 000000000..8cca38786
--- /dev/null
+++ b/stylesheets/lfs-print.xsl
@@ -0,0 +1,57 @@
+<?xml version='1.0' encoding='ISO-8859-1'?>
+
+<!-- Version 0.9 - Manuel Canales Esparcia <macana@lfs-es.org>
+Based on the original lfs-pdf.xsl created by Matthew Burgess -->
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:fo="http://www.w3.org/1999/XSL/Format"
+ version="1.0">
+
+ <!-- We use FO and FOP as the processor -->
+ <xsl:import href="http://docbook.sourceforge.net/release/xsl/1.65.1/fo/docbook.xsl"/>
+ <xsl:param name="fop.extensions" select="1"/>
+ <xsl:param name="draft.mode" select="'no'"/>
+
+ <!-- Including our others customized templates -->
+ <xsl:include href="print/lfs-index.xsl"/>
+ <xsl:include href="print/lfs-pagesetup.xsl"/>
+
+ <!-- Probably want to make the paper size configurable -->
+ <xsl:param name="paper.type" select="'A4'"/>
+
+ <!-- Printing Style -->
+ <xsl:param name="double.sided" select="1"/>
+ <xsl:param name="hyphenate">true</xsl:param>
+ <xsl:param name="alignment">justify</xsl:param>
+
+ <!-- Hyphenate links -->
+ <xsl:param name="ulink.hyphenate" select="' '"></xsl:param>
+
+ <!-- Font size -->
+ <xsl:param name="body.font.master">8</xsl:param>
+ <xsl:param name="body.font.size">10pt</xsl:param>
+
+ <!-- TOC stuff -->
+ <xsl:param name="generate.toc">
+ book toc
+ part nop
+ </xsl:param>
+ <xsl:param name="toc.section.depth">1</xsl:param>
+ <xsl:param name="generate.section.toc.level" select="-1"></xsl:param>
+ <xsl:param name="toc.indent.width" select="18"></xsl:param>
+
+ <!-- Page number in Xref-->
+ <xsl:param name="insert.xref.page.number">yes</xsl:param>
+ <xsl:template match="*" mode="page.citation">
+ <xsl:param name="id" select="'???'"/>
+ <fo:inline keep-together.within-line="always">
+ <xsl:text>[p</xsl:text>
+ <fo:page-number-citation ref-id="{$id}"/>
+ <xsl:text>]</xsl:text>
+ </fo:inline>
+ </xsl:template>
+
+ <!-- Prevent duplicate e-mails in the Acknowledgments pages-->
+ <xsl:param name="ulink.show" select="0"/>
+
+</xsl:stylesheet>
diff --git a/stylesheets/lfs-tex.xsl b/stylesheets/lfs-tex.xsl
new file mode 100644
index 000000000..a312c5214
--- /dev/null
+++ b/stylesheets/lfs-tex.xsl
@@ -0,0 +1,78 @@
+<?xml version='1.0' encoding='ISO-8859-1'?>
+
+<!-- Created by Larry Lawrence <larry@linuxfromscratch.org> -->
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+version='1.0'>
+
+<xsl:import href="http://db2latex.sourceforge.net/xsl/docbook.xsl"/>
+<xsl:output method="text" encoding="ISO-8859-1" indent="yes"/>
+<xsl:variable name="latex.override">
+
+\documentclass[12pt]{book}
+
+\usepackage{lfs}
+\usepackage{fancyhdr}
+\usepackage{fancyvrb}
+\usepackage{makeidx}
+\usepackage{hyperref}
+\usepackage{fancybox}
+
+\oddsidemargin -0.5in
+\evensidemargin -0.625in
+\textwidth 7in
+\textheight 8.5in
+
+%\ifx\pdfoutput\undefined
+%\else
+%\pdfpagewidth=7in
+%\pdfpageheight=8.5in
+%\fi
+
+\pagestyle{fancy}
+\newenvironment{admonition}[2] {
+ \vspace{8mm}
+ \hspace{0mm}\newline
+ \noindent
+}
+
+
+\fancyhf{}
+\fancyhead[LE,RO]{\bfseries\thepage}
+\fancyhead[LO]{\bfseries\rightmark}
+\fancyhead[RE]{\bfseries\leftmark}
+\renewcommand{\headrulewidth}{0.5pt}
+\renewcommand{\footrulewidth}{0pt}
+\addtolength{\headheight}{3pt}
+\fancypagestyle{plain}{%
+ \fancyhead{}
+ \renewcommand{\headrulewidth}{0pt}
+}
+
+
+\hyphenation{change-log cpp-flags ctrlaltdel ma-cros chil-ton}
+
+<!-- adds \frontmatter to document -->
+
+</xsl:variable>
+
+<xsl:variable name="toc.section.depth">1</xsl:variable>
+
+<xsl:variable name="latex.book.begindocument">
+ <xsl:text>\begin{document}&#10;</xsl:text>
+ <xsl:text>\frontmatter&#10;</xsl:text>
+</xsl:variable>
+
+<!-- This put each section on a new page in the preface section -->
+
+<xsl:template match="preface/sect1">
+ <xsl:text>&#10;</xsl:text>
+ <xsl:text>\newpage&#10;</xsl:text>
+ <xsl:text>\section*{</xsl:text><xsl:copy-of
+select="normalize-space(title)"/><xsl:text>}&#10;</xsl:text>
+ <xsl:apply-templates/>
+</xsl:template>
+
+
+
+</xsl:stylesheet>
diff --git a/stylesheets/lfs.css b/stylesheets/lfs.css
index cf2f43909..16782c4f2 100644
--- a/stylesheets/lfs.css
+++ b/stylesheets/lfs.css
@@ -1,24 +1,17 @@
body {
font-weight: normal;
- font-size: normal;
+ font-size: medium;
font-family: verdana, tahoma, helvetica, arial, sans-serif;
text-align: left;
+ background: #fff;
}
-div.navheader table {
- font-size: smaller;
-}
-
-div.navfooter table {
- font-size: smaller;
-}
-
-div.navheader img {
- border: medium none;
+.toc ul, .index ul {
+ list-style: none;
}
-div.navfooter img {
- border: medium none;
+li.preface {
+ margin-left: 2.5em;
}
div.book div.titlepage h1.title {
@@ -68,40 +61,19 @@ pre.synopsis {
background-color: #dddddd;
}
-div.warning {
- border: 1px solid;
-}
-
-div.note {
- border: 1px solid;
-}
-
-div.important {
- border: 1px solid;
-}
-
-div.caution {
- border: 1px solid;
-}
-
-div.warning h3.title {
- text-align: center
-}
-
-div.warning p {
- padding-left: 0.2in
+div.admonition {
+ border: medium solid;
+ width: 90%;
+ margin: .5em auto;
}
-div.note {
- padding-left: 0.2in
+div.admonhead h3 {
+ display: inline;
+ margin-left: 1.5em;
}
-div.important {
- padding-left: 0.2in
-}
-
-div.caution {
- padding-left: 0.2in
+div.admonbody {
+ margin: .5em;
}
.command {
@@ -118,7 +90,3 @@ div.caution {
width: 12.5em;
float: left;
}
-
-.toc ul, .index ul, .navheader ul, .navfooter ul {
- list-style: none;
-}
diff --git a/stylesheets/patcheslist.xsl b/stylesheets/patcheslist.xsl
new file mode 100644
index 000000000..50456bc10
--- /dev/null
+++ b/stylesheets/patcheslist.xsl
@@ -0,0 +1,24 @@
+<?xml version='1.0' encoding='ISO-8859-1'?>
+
+<!-- Version 0.9pre1 - Manuel Canales Esparcia <macana@lfs-es.org>
+Based on the original patcheslist.xsl posted by Matthew Burgess -->
+
+<!-- This also work again BLFS -->
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version="1.0">
+
+ <xsl:output method="text"/>
+
+ <xsl:template match="//text()">
+ <xsl:text/>
+ </xsl:template>
+
+ <xsl:template match="//ulink">
+ <xsl:if test="contains(@url, '.patch')">
+ <xsl:value-of select="@url"/>
+ <xsl:text>&#x0a;</xsl:text>
+ </xsl:if>
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/stylesheets/pdf/lfs-index.xsl b/stylesheets/pdf/lfs-index.xsl
new file mode 100644
index 000000000..817fbf9d9
--- /dev/null
+++ b/stylesheets/pdf/lfs-index.xsl
@@ -0,0 +1,196 @@
+<?xml version='1.0' encoding='ISO-8859-1'?>
+<!DOCTYPE xsl:stylesheet [
+<!ENTITY lowercase "'abcdefghijklmnopqrstuvwxyz'">
+<!ENTITY uppercase "'ABCDEFGHIJKLMNOPQRSTUVWXYZ'">
+<!ENTITY primary 'normalize-space(concat(primary/@sortas, primary[not(@sortas)]))'>
+<!ENTITY secondary 'normalize-space(concat(secondary/@sortas, secondary[not(@sortas)]))'>
+<!ENTITY scope 'count(ancestor::node()|$scope) = count(ancestor::node())'>
+<!ENTITY sep '" "'>
+]>
+
+<!-- Version 0.9 - Manuel Canales Esparcia <macana@lfs-es.org> -->
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:fo="http://www.w3.org/1999/XSL/Format"
+ version="1.0">
+
+ <!--Only one column to fit the table layout-->
+ <xsl:param name="column.count.index" select="1"/>
+
+ <!--Title-->
+ <xsl:template match="index" mode="title.markup">
+ <xsl:text>Index of packages and important installed files</xsl:text>
+ </xsl:template>
+
+ <!-- Divisions-->
+ <xsl:template match="indexterm" mode="index-div">
+ <xsl:param name="scope" select="."/>
+ <xsl:variable name="key"
+ select="translate(substring(&primary;, 1, 1),&lowercase;,&uppercase;)"/>
+ <xsl:variable name="divtitle" select="translate($key, &lowercase;, &uppercase;)"/>
+ <xsl:if test="key('letter', $key)[&scope;]
+ [count(.|key('primary', &primary;)[&scope;][1]) = 1]">
+ <fo:block>
+ <xsl:if test="contains(concat(&lowercase;, &uppercase;), $key)">
+ <xsl:call-template name="indexdiv.title">
+ <xsl:with-param name="titlecontent">
+ <xsl:choose>
+ <xsl:when test="$divtitle = 'A'">
+ <xsl:text>Packages</xsl:text>
+ </xsl:when>
+ <xsl:when test="$divtitle = 'B'">
+ <xsl:text>Programs</xsl:text>
+ </xsl:when>
+ <xsl:when test="$divtitle = 'C'">
+ <xsl:text>Libraries</xsl:text>
+ </xsl:when>
+ <xsl:when test="$divtitle = 'D'">
+ <xsl:text>Scripts</xsl:text>
+ </xsl:when>
+ <xsl:when test="$divtitle = 'E'">
+ <xsl:text>Others</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$divtitle"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:if>
+ <fo:table table-layout="fixed" width="100%">
+ <fo:table-column column-number="1" column-width="11em"/>
+ <fo:table-column column-number="2" column-width="19em"/>
+ <fo:table-column column-number="3"/>
+ <fo:table-body>
+ <xsl:apply-templates select="key('letter', $key)[&scope;]
+ [count(.|key('primary', &primary;)[&scope;][1])=1]"
+ mode="index-primary">
+ <xsl:sort select="translate(&primary;, &lowercase;, &uppercase;)"/>
+ <xsl:with-param name="scope" select="$scope"/>
+ </xsl:apply-templates>
+ </fo:table-body>
+ </fo:table>
+ </fo:block>
+ </xsl:if>
+ </xsl:template>
+
+ <!-- Dropping the separator from here -->
+ <xsl:template match="indexterm" mode="reference">
+ <xsl:param name="scope" select="."/>
+ <xsl:call-template name="reference">
+ <xsl:with-param name="zones" select="normalize-space(@zone)"/>
+ <xsl:with-param name="scope" select="$scope"/>
+ </xsl:call-template>
+ </xsl:template>
+
+ <!-- Changing the output tags and re-addind the separator-->
+ <xsl:template match="indexterm" mode="index-primary">
+ <xsl:param name="scope" select="."/>
+ <xsl:variable name="key" select="&primary;"/>
+ <xsl:variable name="refs" select="key('primary', $key)[&scope;]"/>
+ <fo:table-row>
+ <fo:table-cell>
+ <fo:block>
+ <xsl:value-of select="primary"/>
+ <xsl:text>: </xsl:text>
+ </fo:block>
+ </fo:table-cell>
+ <xsl:for-each select="$refs[not(see) and not(seealso)
+ and not(secondary)]">
+ <xsl:apply-templates select="." mode="reference">
+ <xsl:with-param name="scope" select="$scope"/>
+ </xsl:apply-templates>
+ </xsl:for-each>
+ </fo:table-row>
+ <xsl:if test="$refs/secondary">
+ <xsl:apply-templates select="$refs[secondary and count(.|key('secondary',
+ concat($key, &sep;, &secondary;))[&scope;][1]) = 1]" mode="index-secondary">
+ <xsl:with-param name="scope" select="$scope"/>
+ <xsl:sort select="translate(&secondary;, &lowercase;, &uppercase;)"/>
+ </xsl:apply-templates>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template match="indexterm" mode="index-secondary">
+ <xsl:param name="scope" select="."/>
+ <xsl:variable name="key" select="concat(&primary;, &sep;, &secondary;)"/>
+ <xsl:variable name="refs" select="key('secondary', $key)[&scope;]"/>
+ <fo:table-row>
+ <fo:table-cell>
+ <fo:block start-indent="1pc">
+ <xsl:value-of select="secondary"/>
+ <xsl:text>: </xsl:text>
+ </fo:block>
+ </fo:table-cell>
+ <xsl:for-each select="$refs[not(see) and not(seealso) and not(tertiary)]">
+ <xsl:apply-templates select="." mode="reference">
+ <xsl:with-param name="scope" select="$scope"/>
+ </xsl:apply-templates>
+ </xsl:for-each>
+ </fo:table-row>
+ </xsl:template>
+
+ <!-- Targets titles and bookmarks-->
+ <xsl:template name="reference">
+ <xsl:param name="scope" select="."/>
+ <xsl:param name="zones"/>
+ <xsl:choose>
+ <xsl:when test="contains($zones, ' ')">
+ <xsl:variable name="zone" select="substring-before($zones, ' ')"/>
+ <xsl:variable name="zone2" select="substring-after($zones, ' ')"/>
+ <xsl:variable name="target" select="key('id', $zone)[&scope;]"/>
+ <xsl:variable name="target2" select="key('id', $zone2)[&scope;]"/>
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id">
+ <xsl:with-param name="object" select="$target[1]"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="id2">
+ <xsl:call-template name="object.id">
+ <xsl:with-param name="object" select="$target2[1]"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <fo:table-cell>
+ <fo:block>
+ <fo:basic-link internal-destination="{$id}">
+ <xsl:value-of select="$target/title"/>
+ <xsl:apply-templates select="$target" mode="page.citation">
+ <xsl:with-param name="id" select="$id"/>
+ </xsl:apply-templates>
+ </fo:basic-link>
+ </fo:block>
+ </fo:table-cell>
+ <fo:table-cell>
+ <fo:block>
+ <fo:basic-link internal-destination="{$id2}">
+ <xsl:text>description</xsl:text>
+ <xsl:apply-templates select="$target2" mode="page.citation">
+ <xsl:with-param name="id" select="$id2"/>
+ </xsl:apply-templates>
+ </fo:basic-link>
+ </fo:block>
+ </fo:table-cell>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="zone" select="$zones"/>
+ <xsl:variable name="target" select="key('id', $zone)[&scope;]"/>
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id">
+ <xsl:with-param name="object" select="$target[1]"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <fo:table-cell>
+ <fo:block>
+ <fo:basic-link internal-destination="{$id}">
+ <xsl:value-of select="$target/title"/>
+ <xsl:apply-templates select="$target" mode="page.citation">
+ <xsl:with-param name="id" select="$id"/>
+ </xsl:apply-templates>
+ </fo:basic-link>
+ </fo:block>
+ </fo:table-cell>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/stylesheets/pdf/lfs-pagesetup.xsl b/stylesheets/pdf/lfs-pagesetup.xsl
new file mode 100644
index 000000000..97d1b9956
--- /dev/null
+++ b/stylesheets/pdf/lfs-pagesetup.xsl
@@ -0,0 +1,115 @@
+<?xml version='1.0' encoding='ISO-8859-1'?>
+
+<!-- Version 0.9 - Manuel Canales Esparcia <macana@lfs-es.org> -->
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:fo="http://www.w3.org/1999/XSL/Format"
+ version="1.0">
+
+ <!-- Force section1's onto a new page -->
+ <xsl:attribute-set name="section.level1.properties">
+ <xsl:attribute name="break-after">
+ <xsl:choose>
+ <xsl:when test="not(position()=last())">
+ <xsl:text>page</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>auto</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ </xsl:attribute-set>
+
+ <!-- Header -->
+ <xsl:attribute-set name="header.content.properties">
+ <xsl:attribute name="font-family">
+ <xsl:value-of select="$body.fontset"/>
+ </xsl:attribute>
+ <xsl:attribute name="text-align">right</xsl:attribute>
+ </xsl:attribute-set>
+
+ <xsl:template name="header.content">
+ <xsl:value-of select="/book/bookinfo/title"/>
+ <xsl:text> - </xsl:text>
+ <xsl:value-of select="/book/bookinfo/subtitle"/>
+ </xsl:template>
+
+ <xsl:template name="header.table">
+ <xsl:param name="gentext-key" select="''"/>
+ <xsl:choose>
+ <xsl:when test="$gentext-key = 'book'"/>
+ <xsl:otherwise>
+ <xsl:call-template name="header.content"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <!-- Centered titles for book and part -->
+ <xsl:template name="book.titlepage">
+ <fo:block space-before="2in">
+ <fo:block>
+ <xsl:call-template name="book.titlepage.before.recto"/>
+ <xsl:call-template name="book.titlepage.recto"/>
+ </fo:block>
+ <fo:block>
+ <xsl:call-template name="book.titlepage.before.verso"/>
+ <xsl:call-template name="book.titlepage.verso"/>
+ </fo:block>
+ <xsl:call-template name="book.titlepage.separator"/>
+ </fo:block>
+ </xsl:template>
+
+ <xsl:template name="part.titlepage">
+ <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
+ <fo:block space-before="2.5in">
+ <xsl:call-template name="part.titlepage.before.recto"/>
+ <xsl:call-template name="part.titlepage.recto"/>
+ </fo:block>
+ <fo:block>
+ <xsl:call-template name="part.titlepage.before.verso"/>
+ <xsl:call-template name="part.titlepage.verso"/>
+ </fo:block>
+ <xsl:call-template name="part.titlepage.separator"/>
+ </fo:block>
+ </xsl:template>
+
+ <!-- Margins -->
+ <xsl:param name="page.margin.inner">0.75in</xsl:param>
+ <xsl:param name="page.margin.outer">0.75in</xsl:param>
+ <xsl:param name="title.margin.left">-1pc</xsl:param>
+ <xsl:attribute-set name="normal.para.spacing">
+ <xsl:attribute name="space-before.optimum">0.8em</xsl:attribute>
+ <xsl:attribute name="space-before.minimum">0.6em</xsl:attribute>
+ <xsl:attribute name="space-before.maximum">1em</xsl:attribute>
+ </xsl:attribute-set>
+ <xsl:attribute-set name="list.block.spacing">
+ <xsl:attribute name="space-before.optimum">0.8em</xsl:attribute>
+ <xsl:attribute name="space-before.minimum">0.6em</xsl:attribute>
+ <xsl:attribute name="space-before.maximum">1em</xsl:attribute>
+ <xsl:attribute name="space-after.optimum">0.8em</xsl:attribute>
+ <xsl:attribute name="space-after.minimum">0.6em</xsl:attribute>
+ <xsl:attribute name="space-after.maximum">1em</xsl:attribute>
+ </xsl:attribute-set>
+ <xsl:attribute-set name="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>
+ <xsl:attribute-set name="verbatim.properties">
+ <xsl:attribute name="space-before.minimum">0.6em</xsl:attribute>
+ <xsl:attribute name="space-before.optimum">0.8em</xsl:attribute>
+ <xsl:attribute name="space-before.maximum">1em</xsl:attribute>
+ <xsl:attribute name="space-after.minimum">0.6em</xsl:attribute>
+ <xsl:attribute name="space-after.optimum">0.8em</xsl:attribute>
+ <xsl:attribute name="space-after.maximum">1em</xsl:attribute>
+ </xsl:attribute-set>
+
+ <!-- Others-->
+ <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>
+
+ <!-- Dropping a blank page -->
+ <xsl:template name="book.titlepage.separator"/>
+
+</xsl:stylesheet>
diff --git a/stylesheets/print/lfs-index.xsl b/stylesheets/print/lfs-index.xsl
new file mode 100644
index 000000000..63a014a82
--- /dev/null
+++ b/stylesheets/print/lfs-index.xsl
@@ -0,0 +1,127 @@
+<?xml version='1.0' encoding='ISO-8859-1'?>
+<!DOCTYPE xsl:stylesheet [
+<!ENTITY lowercase "'abcdefghijklmnopqrstuvwxyz'">
+<!ENTITY uppercase "'ABCDEFGHIJKLMNOPQRSTUVWXYZ'">
+<!ENTITY primary 'normalize-space(concat(primary/@sortas, primary[not(@sortas)]))'>
+<!ENTITY scope 'count(ancestor::node()|$scope) = count(ancestor::node())'>
+]>
+
+<!-- Version 0.9 - Manuel Canales Esparcia <macana@lfs-es.org> -->
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:fo="http://www.w3.org/1999/XSL/Format"
+ version="1.0">
+
+ <!--Title-->
+ <xsl:template match="index" mode="title.markup">
+ <xsl:param name="allow-anchors" select="0"/>
+ <xsl:text>Index of packages and important installed files</xsl:text>
+ </xsl:template>
+
+ <!-- Divisions-->
+ <xsl:template match="indexterm" mode="index-div">
+ <xsl:param name="scope" select="."/>
+ <xsl:variable name="key"
+ select="translate(substring(&primary;, 1, 1),&lowercase;,&uppercase;)"/>
+ <xsl:variable name="divtitle" select="translate($key, &lowercase;, &uppercase;)"/>
+ <xsl:if test="key('letter', $key)[&scope;]
+ [count(.|key('primary', &primary;)[&scope;][1]) = 1]">
+ <fo:block>
+ <xsl:if test="contains(concat(&lowercase;, &uppercase;), $key)">
+ <xsl:call-template name="indexdiv.title">
+ <xsl:with-param name="titlecontent">
+ <xsl:choose>
+ <xsl:when test="$divtitle = 'A'">
+ <xsl:text>Packages</xsl:text>
+ </xsl:when>
+ <xsl:when test="$divtitle = 'B'">
+ <xsl:text>Programs</xsl:text>
+ </xsl:when>
+ <xsl:when test="$divtitle = 'C'">
+ <xsl:text>Libraries</xsl:text>
+ </xsl:when>
+ <xsl:when test="$divtitle = 'D'">
+ <xsl:text>Scripts</xsl:text>
+ </xsl:when>
+ <xsl:when test="$divtitle = 'E'">
+ <xsl:text>Others</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$divtitle"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:if>
+ <fo:block>
+ <xsl:apply-templates select="key('letter', $key)[&scope;]
+ [count(.|key('primary', &primary;)[&scope;][1])=1]"
+ mode="index-primary">
+ <xsl:sort select="translate(&primary;, &lowercase;, &uppercase;)"/>
+ <xsl:with-param name="scope" select="$scope"/>
+ </xsl:apply-templates>
+ </fo:block>
+ </fo:block>
+ </xsl:if>
+ </xsl:template>
+
+ <!-- The separator -->
+ <xsl:template match="indexterm" mode="reference">
+ <xsl:param name="scope" select="."/>
+ <xsl:text>: </xsl:text>
+ <xsl:call-template name="reference">
+ <xsl:with-param name="zones" select="normalize-space(@zone)"/>
+ <xsl:with-param name="scope" select="$scope"/>
+ </xsl:call-template>
+ </xsl:template>
+
+ <!--Bookmarks-->
+ <xsl:template name="reference">
+ <xsl:param name="scope" select="."/>
+ <xsl:param name="zones"/>
+ <xsl:choose>
+ <xsl:when test="contains($zones, ' ')">
+ <xsl:variable name="zone" select="substring-before($zones, ' ')"/>
+ <xsl:variable name="zone2" select="substring-after($zones, ' ')"/>
+ <xsl:variable name="target" select="key('id', $zone)[&scope;]"/>
+ <xsl:variable name="target2" select="key('id', $zone2)[&scope;]"/>
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id">
+ <xsl:with-param name="object" select="$target[1]"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="id2">
+ <xsl:call-template name="object.id">
+ <xsl:with-param name="object" select="$target2[1]"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <fo:basic-link internal-destination="{$id}">
+ <xsl:apply-templates select="$target" mode="page.citation">
+ <xsl:with-param name="id" select="$id"/>
+ </xsl:apply-templates>
+ </fo:basic-link>
+ <xsl:text> , </xsl:text>
+ <fo:basic-link internal-destination="{$id2}">
+ <xsl:apply-templates select="$target2" mode="page.citation">
+ <xsl:with-param name="id" select="$id2"/>
+ </xsl:apply-templates>
+ </fo:basic-link>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="zone" select="$zones"/>
+ <xsl:variable name="target" select="key('id', $zone)[&scope;]"/>
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id">
+ <xsl:with-param name="object" select="$target[1]"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <fo:basic-link internal-destination="{$id}">
+ <xsl:apply-templates select="$target" mode="page.citation">
+ <xsl:with-param name="id" select="$id"/>
+ </xsl:apply-templates>
+ </fo:basic-link>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/stylesheets/print/lfs-pagesetup.xsl b/stylesheets/print/lfs-pagesetup.xsl
new file mode 100644
index 000000000..44e91acc2
--- /dev/null
+++ b/stylesheets/print/lfs-pagesetup.xsl
@@ -0,0 +1,120 @@
+<?xml version='1.0' encoding='ISO-8859-1'?>
+
+<!-- Version 0.9 - Manuel Canales Esparcia <macana@lfs-es.org> -->
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:fo="http://www.w3.org/1999/XSL/Format"
+ version="1.0">
+
+ <!-- Force section1's onto a new page -->
+ <xsl:attribute-set name="section.level1.properties">
+ <xsl:attribute name="break-after">
+ <xsl:choose>
+ <xsl:when test="not(position()=last())">
+ <xsl:text>page</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>auto</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ </xsl:attribute-set>
+
+ <!-- Header -->
+ <xsl:template name="header.content">
+ <xsl:param name="sequence" select="''"/>
+ <fo:block>
+ <xsl:attribute name="text-align">
+ <xsl:choose>
+ <xsl:when test="$sequence = 'first' or $sequence = 'odd'">right</xsl:when>
+ <xsl:otherwise>left</xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ <xsl:value-of select="/book/bookinfo/title"/>
+ <xsl:text> - </xsl:text>
+ <xsl:value-of select="/book/bookinfo/subtitle"/>
+ </fo:block>
+ </xsl:template>
+
+ <xsl:template name="header.table">
+ <xsl:param name="sequence" select="''"/>
+ <xsl:param name="gentext-key" select="''"/>
+ <xsl:choose>
+ <xsl:when test="$gentext-key = 'book' or $sequence = 'blank'"/>
+ <xsl:otherwise>
+ <xsl:call-template name="header.content">
+ <xsl:with-param name="sequence" select="$sequence"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <!-- Centered titles for book and part -->
+ <xsl:template name="book.titlepage">
+ <fo:block space-before="2in">
+ <fo:block>
+ <xsl:call-template name="book.titlepage.before.recto"/>
+ <xsl:call-template name="book.titlepage.recto"/>
+ </fo:block>
+ <fo:block>
+ <xsl:call-template name="book.titlepage.before.verso"/>
+ <xsl:call-template name="book.titlepage.verso"/>
+ </fo:block>
+ <xsl:call-template name="book.titlepage.separator"/>
+ </fo:block>
+ </xsl:template>
+
+ <xsl:template name="part.titlepage">
+ <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
+ <fo:block space-before="2.5in">
+ <xsl:call-template name="part.titlepage.before.recto"/>
+ <xsl:call-template name="part.titlepage.recto"/>
+ </fo:block>
+ <fo:block>
+ <xsl:call-template name="part.titlepage.before.verso"/>
+ <xsl:call-template name="part.titlepage.verso"/>
+ </fo:block>
+ <xsl:call-template name="part.titlepage.separator"/>
+ </fo:block>
+ </xsl:template>
+
+ <!-- Margins -->
+ <xsl:param name="page.margin.inner">1in</xsl:param>
+ <xsl:param name="page.margin.outer">0.5in</xsl:param>
+ <xsl:param name="title.margin.left">-1pc</xsl:param>
+ <xsl:attribute-set name="normal.para.spacing">
+ <xsl:attribute name="space-before.optimum">0.8em</xsl:attribute>
+ <xsl:attribute name="space-before.minimum">0.6em</xsl:attribute>
+ <xsl:attribute name="space-before.maximum">1em</xsl:attribute>
+ </xsl:attribute-set>
+ <xsl:attribute-set name="list.block.spacing">
+ <xsl:attribute name="space-before.optimum">0.8em</xsl:attribute>
+ <xsl:attribute name="space-before.minimum">0.6em</xsl:attribute>
+ <xsl:attribute name="space-before.maximum">1em</xsl:attribute>
+ <xsl:attribute name="space-after.optimum">0.8em</xsl:attribute>
+ <xsl:attribute name="space-after.minimum">0.6em</xsl:attribute>
+ <xsl:attribute name="space-after.maximum">1em</xsl:attribute>
+ </xsl:attribute-set>
+ <xsl:attribute-set name="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>
+ <xsl:attribute-set name="verbatim.properties">
+ <xsl:attribute name="space-before.minimum">0.6em</xsl:attribute>
+ <xsl:attribute name="space-before.optimum">0.8em</xsl:attribute>
+ <xsl:attribute name="space-before.maximum">1em</xsl:attribute>
+ <xsl:attribute name="space-after.minimum">0.6em</xsl:attribute>
+ <xsl:attribute name="space-after.optimum">0.8em</xsl:attribute>
+ <xsl:attribute name="space-after.maximum">1em</xsl:attribute>
+ </xsl:attribute-set>
+
+ <!-- Others-->
+ <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>
+
+ <!-- Dropping a blank page -->
+ <xsl:template name="book.titlepage.separator"/>
+
+</xsl:stylesheet>
diff --git a/stylesheets/xhtml/lfs-admon.xsl b/stylesheets/xhtml/lfs-admon.xsl
new file mode 100644
index 000000000..7cf0520f0
--- /dev/null
+++ b/stylesheets/xhtml/lfs-admon.xsl
@@ -0,0 +1,47 @@
+<?xml version='1.0' encoding='ISO-8859-1'?>
+
+<!-- Version 0.9 - Manuel Canales Esparcia <macana@lfs-es.org> -->
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns="http://www.w3.org/1999/xhtml"
+ version="1.0">
+
+ <!-- Use graphics in admonitions -->
+ <xsl:param name="admon.graphics" select="1"/>
+ <xsl:param name="admon.graphics.path">../images/</xsl:param>
+ <xsl:param name="admon.graphics.extension" select="'.png'"/>
+
+ <!-- Changing the output tagging -->
+ <xsl:template name="graphical.admonition">
+ <xsl:variable name="admon.type">
+ <xsl:choose>
+ <xsl:when test="local-name(.)='note'">Note</xsl:when>
+ <xsl:when test="local-name(.)='warning'">Warning</xsl:when>
+ <xsl:when test="local-name(.)='caution'">Caution</xsl:when>
+ <xsl:when test="local-name(.)='tip'">Tip</xsl:when>
+ <xsl:when test="local-name(.)='important'">Important</xsl:when>
+ <xsl:otherwise>Note</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <div class="admonition">
+ <div class ="admonhead">
+ <img alt="[{$admon.type}]">
+ <xsl:attribute name="src">
+ <xsl:call-template name="admon.graphic"/>
+ </xsl:attribute>
+ </img>
+ <h3 class="{name(.)}">
+ <xsl:value-of select="$admon.type"/>
+ <xsl:if test="title">
+ <xsl:text>: </xsl:text>
+ <xsl:value-of select="title"/>
+ </xsl:if>
+ </h3>
+ </div>
+ <div class="admonbody">
+ <xsl:apply-templates/>
+ </div>
+ </div>
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/stylesheets/xhtml/lfs-index.xsl b/stylesheets/xhtml/lfs-index.xsl
new file mode 100644
index 000000000..825378702
--- /dev/null
+++ b/stylesheets/xhtml/lfs-index.xsl
@@ -0,0 +1,188 @@
+<?xml version='1.0' encoding='ISO-8859-1'?>
+<!DOCTYPE xsl:stylesheet [
+<!ENTITY lowercase "'abcdefghijklmnopqrstuvwxyz'">
+<!ENTITY uppercase "'ABCDEFGHIJKLMNOPQRSTUVWXYZ'">
+<!ENTITY primary 'normalize-space(concat(primary/@sortas, primary[not(@sortas)]))'>
+<!ENTITY scope 'count(ancestor::node()|$scope) = count(ancestor::node())'>
+]>
+
+<!-- Version 0.9 - Manuel Canales Esparcia <macana@lfs-es.org> -->
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns="http://www.w3.org/1999/xhtml"
+ version="1.0">
+
+ <!--Filename-->
+ <xsl:template match="index" mode="recursive-chunk-filename">
+ <xsl:text>longindex.html</xsl:text>
+ </xsl:template>
+
+ <!--Title-->
+ <xsl:param name="index-title">Index of packages and important installed files</xsl:param>
+
+ <xsl:template match="index" mode="title.markup">
+ <xsl:value-of select="$index-title"/>
+ </xsl:template>
+
+ <xsl:template name="index.titlepage">
+ <div class="titlepage">
+ <h1 class="index">
+ <xsl:value-of select="$index-title"/>
+ </h1>
+ </div>
+ </xsl:template>
+
+ <!--Divisions-->
+ <xsl:template match="indexterm" mode="index-div">
+ <xsl:param name="scope" select="."/>
+ <xsl:variable name="key" select="translate(substring(&primary;, 1, 1),&lowercase;,&uppercase;)"/>
+ <xsl:variable name="divtitle" select="translate($key, &lowercase;, &uppercase;)"/>
+ <!-- Make sure that we don't generate a div if there are no terms in scope -->
+ <xsl:if test="key('letter', $key)[&scope;] [count(.|key('primary', &primary;)[&scope;][1]) = 1]">
+ <div class="indexdiv">
+ <xsl:if test="contains(concat(&lowercase;, &uppercase;), $key)">
+ <h2>
+ <xsl:choose>
+ <xsl:when test="$divtitle = 'A'">
+ <xsl:text>Packages</xsl:text>
+ </xsl:when>
+ <xsl:when test="$divtitle = 'B'">
+ <xsl:text>Programs</xsl:text>
+ </xsl:when>
+ <xsl:when test="$divtitle = 'C'">
+ <xsl:text>Libraries</xsl:text>
+ </xsl:when>
+ <xsl:when test="$divtitle = 'D'">
+ <xsl:text>Scripts</xsl:text>
+ </xsl:when>
+ <xsl:when test="$divtitle = 'E'">
+ <xsl:text>Others</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$divtitle"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </h2>
+ </xsl:if>
+ <ul>
+ <xsl:apply-templates select="key('letter', $key)[&scope;]
+ [count(.|key('primary', &primary;)[&scope;][1])=1]" mode="index-primary">
+ <xsl:with-param name="scope" select="$scope"/>
+ <xsl:sort select="translate(&primary;, &lowercase;, &uppercase;)"/>
+ </xsl:apply-templates>
+ </ul>
+ </div>
+ </xsl:if>
+ </xsl:template>
+
+ <!-- Dropping the separator from here-->
+ <xsl:template match="indexterm" mode="reference">
+ <xsl:param name="scope" select="."/>
+ <xsl:call-template name="reference">
+ <xsl:with-param name="zones" select="normalize-space(@zone)"/>
+ <xsl:with-param name="scope" select="$scope"/>
+ </xsl:call-template>
+ </xsl:template>
+
+ <!-- Changing the output tags and re-addind the separator-->
+ <xsl:template match="indexterm" mode="index-primary">
+ <xsl:param name="scope" select="."/>
+ <xsl:variable name="key" select="&primary;"/>
+ <xsl:variable name="refs" select="key('primary', $key)[&scope;]"/>
+ <li>
+ <strong class="item">
+ <xsl:value-of select="primary"/>
+ <xsl:text>: </xsl:text>
+ </strong>
+ <xsl:for-each select="$refs[generate-id() = generate-id(key('primary-section',
+ concat($key, &#34; &#34;, generate-id((ancestor-or-self::book |ancestor-or-self::part
+ |ancestor-or-self::chapter |ancestor-or-self::appendix |ancestor-or-self::preface
+ |ancestor-or-self::sect1 |ancestor-or-self::sect2 |ancestor-or-self::sect3
+ |ancestor-or-self::sect4 |ancestor-or-self::sect5 |ancestor-or-self::index)[last()])))[&scope;][1])]">
+ <xsl:apply-templates select="." mode="reference">
+ <xsl:with-param name="scope" select="$scope"/>
+ </xsl:apply-templates>
+ </xsl:for-each>
+ <xsl:if test="$refs/secondary">
+ <ul>
+ <xsl:apply-templates select="$refs[secondary and count(.|key('secondary',
+ concat($key, &#34; &#34;, normalize-space(concat(secondary/@sortas,
+ secondary[not(@sortas)]))))[&scope;][1]) = 1]" mode="index-secondary">
+ <xsl:with-param name="scope" select="$scope"/>
+ <xsl:sort select="translate(normalize-space(concat(secondary/@sortas,
+ secondary[not(@sortas)])), &lowercase;, &uppercase;)"/>
+ </xsl:apply-templates>
+ </ul>
+ </xsl:if>
+ </li>
+ </xsl:template>
+
+ <xsl:template match="indexterm" mode="index-secondary">
+ <xsl:param name="scope" select="."/>
+ <xsl:variable name="key" select="concat(&primary;, &#34; &#34;,
+ normalize-space(concat(secondary/@sortas, secondary[not(@sortas)])))"/>
+ <xsl:variable name="refs" select="key('secondary', $key)[&scope;]"/>
+ <li>
+ <strong class="secitem">
+ <xsl:value-of select="secondary"/>
+ <xsl:text>: </xsl:text>
+ </strong>
+ <xsl:for-each select="$refs[generate-id() = generate-id(key('secondary-section',
+ concat($key, &#34; &#34;, generate-id((ancestor-or-self::book |ancestor-or-self::part
+ |ancestor-or-self::chapter |ancestor-or-self::appendix |ancestor-or-self::preface
+ |ancestor-or-self::sect1 |ancestor-or-self::sect2 |ancestor-or-self::sect3
+ |ancestor-or-self::sect4 |ancestor-or-self::sect5 |ancestor-or-self::index)[last()])))[&scope;][1])]">
+ <xsl:apply-templates select="." mode="reference">
+ <xsl:with-param name="scope" select="$scope"/>
+ </xsl:apply-templates>
+ </xsl:for-each>
+ </li>
+ </xsl:template>
+
+ <!--Links (This template also fix a bug in the original code)-->
+ <xsl:template name="reference">
+ <xsl:param name="scope" select="."/>
+ <xsl:param name="zones"/>
+ <xsl:choose>
+ <xsl:when test="contains($zones, ' ')">
+ <xsl:variable name="zone" select="substring-before($zones, ' ')"/>
+ <xsl:variable name="zone2" select="substring-after($zones, ' ')"/>
+ <xsl:variable name="target" select="key('sections', $zone)[&scope;]"/>
+ <xsl:variable name="target2" select="key('sections', $zone2)[&scope;]"/>
+ <a>
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target.uri">
+ <xsl:with-param name="object" select="$target[1]"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:apply-templates select="$target[1]" mode="index-title-content"/>
+ </a>
+ <xsl:text> -- </xsl:text>
+ <a>
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target.uri">
+ <xsl:with-param name="object" select="$target2[1]"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:text>description</xsl:text>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="zone" select="$zones"/>
+ <xsl:variable name="target" select="key('sections', $zone)[&scope;]"/>
+ <a>
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target.uri">
+ <xsl:with-param name="object" select="$target[1]"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:apply-templates select="$target[1]" mode="index-title-content"/>
+ </a>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <!-- Dropping unneeded anchors -->
+ <xsl:template match="indexterm"/>
+
+</xsl:stylesheet>
diff --git a/stylesheets/xhtml/lfs-legalnotice.xsl b/stylesheets/xhtml/lfs-legalnotice.xsl
new file mode 100644
index 000000000..4b43a9f19
--- /dev/null
+++ b/stylesheets/xhtml/lfs-legalnotice.xsl
@@ -0,0 +1,76 @@
+<?xml version='1.0' encoding='ISO-8859-1'?>
+
+<!-- Version 0.9 - Manuel Canales Esparcia <macana@lfs-es.org> -->
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns="http://www.w3.org/1999/xhtml"
+ version="1.0">
+
+ <!-- Generating the page -->
+ <xsl:template match="legalnotice" mode="titlepage.mode">
+ <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+ <xsl:variable name="filename" select="concat($base.dir, 'prologue/legalnotice.html')"/>
+ <xsl:variable name="title">
+ <xsl:apply-templates select="." mode="title.markup"/>
+ </xsl:variable>
+ <xsl:call-template name="write.chunk">
+ <xsl:with-param name="filename" select="$filename"/>
+ <xsl:with-param name="quiet" select="$chunk.quietly"/>
+ <xsl:with-param name="content">
+ <html>
+ <head>
+ <xsl:call-template name="system.head.content"/>
+ <xsl:call-template name="head.content"/>
+ <xsl:call-template name="user.head.content"/>
+ </head>
+ <body>
+ <xsl:call-template name="body.attributes"/>
+ <div class="{local-name(.)}">
+ <xsl:apply-templates mode="titlepage.mode"/>
+ </div>
+ <hr/>
+ <div class="navfooter">
+ <ul class="footerlinks">
+ <li>
+ <a accesskey="h">
+ <xsl:attribute name="href">
+ <xsl:text>../index.html</xsl:text>
+ </xsl:attribute>
+ <xsl:text>Home</xsl:text>
+ </a>
+ </li>
+ </ul>
+ </div>
+ </body>
+ </html>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:template>
+
+ <!-- Making the link-->
+ <xsl:template match="copyright" mode="titlepage.mode">
+ <p class="{name(.)}">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:value-of select="'prologue/legalnotice.html'"/>
+ </xsl:attribute>
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key" select="'Copyright'"/>
+ </xsl:call-template>
+ </a>
+ <xsl:call-template name="gentext.space"/>
+ <xsl:call-template name="dingbat">
+ <xsl:with-param name="dingbat">copyright</xsl:with-param>
+ </xsl:call-template>
+ <xsl:call-template name="gentext.space"/>
+ <xsl:call-template name="copyright.years">
+ <xsl:with-param name="years" select="year"/>
+ <xsl:with-param name="print.ranges" select="$make.year.ranges"/>
+ <xsl:with-param name="single.year.ranges" select="$make.single.year.ranges"/>
+ </xsl:call-template>
+ <xsl:call-template name="gentext.space"/>
+ <xsl:apply-templates select="holder" mode="titlepage.mode"/>
+ </p>
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/stylesheets/xhtml/lfs-mixed.xsl b/stylesheets/xhtml/lfs-mixed.xsl
new file mode 100644
index 000000000..08dc2262f
--- /dev/null
+++ b/stylesheets/xhtml/lfs-mixed.xsl
@@ -0,0 +1,39 @@
+<?xml version='1.0' encoding='ISO-8859-1'?>
+
+<!-- Version 0.9 - Manuel Canales Esparcia <macana@lfs-es.org> -->
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns="http://www.w3.org/1999/xhtml"
+ version="1.0">
+
+ <xsl:template match="screen">
+ <xsl:choose>
+ <!-- Temporally hack -->
+ <xsl:when test="child::* = userinput">
+ <pre class="{name(.)}">
+ <kbd class="command">
+ <xsl:value-of select="."/>
+ </kbd>
+ </pre>
+ </xsl:when>
+ <!-- This should be fixed in the XML code -->
+ <!--
+ <xsl:when test="contains(text() , 'SBU')">
+ <p class="sbu">
+ <tt>
+ <xsl:value-of select="substring-before(text() , 'R')"/>
+ <br/>
+ <xsl:value-of select="substring-after(text() , 'U')"/>
+ </tt>
+ </p>
+ </xsl:when>
+ -->
+ <xsl:otherwise>
+ <pre class="{name(.)}">
+ <xsl:apply-templates/>
+ </pre>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/stylesheets/xhtml/lfs-navigational.xsl b/stylesheets/xhtml/lfs-navigational.xsl
new file mode 100644
index 000000000..8e06c8c60
--- /dev/null
+++ b/stylesheets/xhtml/lfs-navigational.xsl
@@ -0,0 +1,98 @@
+<?xml version='1.0' encoding='ISO-8859-1'?>
+
+<!-- Version 0.9 - Manuel Canales Esparcia <macana@lfs-es.org> -->
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns="http://www.w3.org/1999/xhtml"
+ version="1.0">
+
+ <!-- Dropping the HEAD links -->
+ <xsl:template name="html.head">
+ <head>
+ <xsl:call-template name="system.head.content"/>
+ <xsl:call-template name="head.content"/>
+ <xsl:call-template name="user.head.content"/>
+ </head>
+ </xsl:template>
+
+ <!-- Header Navigation-->
+ <xsl:template name="header.navigation">
+ <xsl:param name="prev" select="/foo"/>
+ <xsl:param name="next" select="/foo"/>
+ <xsl:param name="nav.context"/>
+ <xsl:variable name="home" select="/*[1]"/>
+ <xsl:variable name="up" select="parent::*"/>
+ <xsl:variable name="row" select="count($prev) &gt; 0 or (count($up) &gt; 0
+ and generate-id($up) != generate-id($home)) or count($next) &gt; 0"/>
+ <xsl:if test="$row and $home != .">
+ <div class="navheader">
+ <xsl:if test="$home != .">
+ <table width="100%" summary="Navigation header">
+ <tr>
+ <th colspan="3" align="center">
+ <h4>
+ <xsl:apply-templates select="$home" mode="object.title.markup"/>
+ <xsl:text> - </xsl:text>
+ <xsl:apply-templates select="$home" mode="object.subtitle.markup"/>
+ </h4>
+ </th>
+ </tr>
+ <xsl:if test="$up != $home">
+ <tr>
+ <th colspan="3" align="center">
+ <h3>
+ <xsl:apply-templates select="$up" mode="object.title.markup"/>
+ </h3>
+ </th>
+ </tr>
+ </xsl:if>
+ <tr>
+ <td width="33%" align="left">
+ <a accesskey="p">
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="object" select="$prev"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:call-template name="navig.content">
+ <xsl:with-param name="direction" select="'prev'"/>
+ </xsl:call-template>
+ </a>
+ <xsl:text>&#160;</xsl:text>
+ </td>
+ <td width="34%" align="center">
+ <a accesskey="h">
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="object" select="$home"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:call-template name="navig.content">
+ <xsl:with-param name="direction" select="'home'"/>
+ </xsl:call-template>
+ </a>
+ </td>
+ <td width="33%" align="right">
+ <xsl:text>&#160;</xsl:text>
+ <xsl:if test="count($next)&gt;0">
+ <a accesskey="n">
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="object" select="$next"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:call-template name="navig.content">
+ <xsl:with-param name="direction" select="'next'"/>
+ </xsl:call-template>
+ </a>
+ </xsl:if>
+ </td>
+ </tr>
+ </table>
+ <hr/>
+ </xsl:if>
+ </div>
+ </xsl:if>
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/stylesheets/xhtml/lfs-titles.xsl b/stylesheets/xhtml/lfs-titles.xsl
new file mode 100644
index 000000000..ec6c68cfe
--- /dev/null
+++ b/stylesheets/xhtml/lfs-titles.xsl
@@ -0,0 +1,80 @@
+<?xml version='1.0' encoding='ISO-8859-1'?>
+
+<!-- Version 0.9- Manuel Canales Esparcia <macana@lfs-es.org> -->
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns="http://www.w3.org/1999/xhtml"
+ version="1.0">
+
+ <xsl:template name="part.titlepage">
+ <div class="titlepage">
+ <h1 class="{name(.)}">
+ <xsl:value-of select="title"/>
+ </h1>
+ </div>
+ </xsl:template>
+
+ <xsl:template name="chapter.titlepage">
+ <div class="titlepage">
+ <h1 class="{name(.)}">
+ <xsl:value-of select="title"/>
+ </h1>
+ </div>
+ </xsl:template>
+
+ <xsl:template name="preface.titlepage">
+ <div class="titlepage">
+ <h1 class="{name(.)}">
+ <xsl:value-of select="title"/>
+ </h1>
+ </div>
+ </xsl:template>
+
+ <xsl:template name="sect1.titlepage">
+ <xsl:choose>
+ <!-- I should find a better test -->
+ <xsl:when test="position() = 4">
+ <div class="titlepage">
+ <xsl:if test="@id">
+ <a id="{@id}" name="{@id}"/>
+ </xsl:if>
+ <h2 class="{name(.)}">
+ <xsl:value-of select="title"/>
+ </h2>
+ </div>
+ </xsl:when>
+ <xsl:otherwise>
+ <div class="titlepage">
+ <h1 class="{name(.)}">
+ <xsl:value-of select="title"/>
+ </h1>
+ </div>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template name="sect2.titlepage">
+ <xsl:choose>
+ <xsl:when test="string-length(title) = 0"/>
+ <xsl:otherwise>
+ <div class="titlepage">
+ <xsl:if test="@id">
+ <a id="{@id}" name="{@id}"/>
+ </xsl:if>
+ <h3 class="{name(.)}">
+ <xsl:value-of select="title"/>
+ </h3>
+ </div>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template name="dedication.titlepage">
+ <div class="titlepage">
+ <h2 class="{name(.)}">
+ <xsl:value-of select="title"/>
+ </h2>
+ </div>
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/stylesheets/xhtml/lfs-toc.xsl b/stylesheets/xhtml/lfs-toc.xsl
new file mode 100644
index 000000000..56c14820c
--- /dev/null
+++ b/stylesheets/xhtml/lfs-toc.xsl
@@ -0,0 +1,144 @@
+<?xml version='1.0' encoding='ISO-8859-1'?>
+
+<!-- Version 0.9 - Manuel Canales Esparcia <macana@lfs-es.org> -->
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns="http://www.w3.org/1999/xhtml"
+ version="1.0">
+
+ <!-- General settings -->
+ <xsl:param name="generate.toc">
+ appendix toc
+ book toc,title,figure,table,example,equation
+ chapter nop
+ part toc
+ preface nop
+ qandadiv nop
+ qandaset nop
+ reference nop
+ sect1 nop
+ sect2 nop
+ sect3 nop
+ sect4 nop
+ sect5 nop
+ section nop
+ set nop
+ </xsl:param>
+
+ <xsl:param name="toc.section.depth">1</xsl:param>
+
+ <xsl:param name="toc.max.depth">3</xsl:param>
+
+ <!-- Making the TOC -->
+ <xsl:template name="make.toc">
+ <xsl:param name="toc-context" select="."/>
+ <xsl:param name="nodes" select="/NOT-AN-ELEMENT"/>
+ <xsl:if test="$nodes">
+ <div class="toc">
+ <h3>
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key">TableofContents</xsl:with-param>
+ </xsl:call-template>
+ </h3>
+ <ul>
+ <xsl:apply-templates select="$nodes" mode="toc">
+ <xsl:with-param name="toc-context" select="$toc-context"/>
+ </xsl:apply-templates>
+ </ul>
+ </div>
+ </xsl:if>
+ </xsl:template>
+
+ <!-- Making the subtocs -->
+ <xsl:template name="subtoc">
+ <xsl:param name="toc-context" select="."/>
+ <xsl:param name="nodes" select="NOT-AN-ELEMENT"/>
+ <xsl:variable name="subtoc">
+ <ul>
+ <xsl:apply-templates mode="toc" select="$nodes">
+ <xsl:with-param name="toc-context" select="$toc-context"/>
+ </xsl:apply-templates>
+ </ul>
+ </xsl:variable>
+ <xsl:variable name="depth">
+ <xsl:choose>
+ <xsl:when test="local-name(.) = 'sect1'">1</xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="depth.from.context"
+ select="count(ancestor::*)-count($toc-context/ancestor::*)"/>
+ <li class="{name(.)}">
+ <xsl:call-template name="toc.line">
+ <xsl:with-param name="toc-context" select="$toc-context"/>
+ </xsl:call-template>
+ <xsl:if test="$toc.section.depth &gt; $depth and count($nodes)&gt;0
+ and $toc.max.depth &gt; $depth.from.context">
+ <xsl:copy-of select="$subtoc"/>
+ </xsl:if>
+ </li>
+ </xsl:template>
+
+ <!--Adding the h* tags and dropping redundats links-->
+ <xsl:template name="toc.line">
+ <xsl:param name="toc-context" select="."/>
+ <xsl:param name="depth" select="1"/>
+ <xsl:param name="depth.from.context" select="8"/>
+ <xsl:choose>
+ <xsl:when test="local-name(.) = 'sect1'">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="context" select="$toc-context"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:apply-templates select="." mode="titleabbrev.markup"/>
+ </a>
+ </xsl:when>
+ <xsl:when test="local-name(.) = 'chapter' or local-name(.) = 'preface'">
+ <h4>
+ <xsl:variable name="label">
+ <xsl:apply-templates select="." mode="label.markup"/>
+ </xsl:variable>
+ <xsl:copy-of select="$label"/>
+ <xsl:if test="$label != ''">
+ <xsl:value-of select="$autotoc.label.separator"/>
+ </xsl:if>
+ <xsl:apply-templates select="." mode="titleabbrev.markup"/>
+ </h4>
+ </xsl:when>
+ <xsl:when test="local-name(.) = 'part'">
+ <h3>
+ <xsl:variable name="label">
+ <xsl:apply-templates select="." mode="label.markup"/>
+ </xsl:variable>
+ <xsl:copy-of select="$label"/>
+ <xsl:if test="$label != ''">
+ <xsl:value-of select="$autotoc.label.separator"/>
+ </xsl:if>
+ <xsl:apply-templates select="." mode="titleabbrev.markup"/>
+ </h3>
+ </xsl:when>
+ <xsl:otherwise>
+ <h3>
+ <a>
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="context" select="$toc-context"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:variable name="label">
+ <xsl:apply-templates select="." mode="label.markup"/>
+ </xsl:variable>
+ <xsl:copy-of select="$label"/>
+ <xsl:if test="$label != ''">
+ <xsl:value-of select="$autotoc.label.separator"/>
+ </xsl:if>
+ <xsl:apply-templates select="." mode="titleabbrev.markup"/>
+ </a>
+ </h3>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/tidy.conf b/tidy.conf
new file mode 100644
index 000000000..b15a0a17b
--- /dev/null
+++ b/tidy.conf
@@ -0,0 +1,17 @@
+indent-spaces: 2
+wrap: 78
+tab-size: 8
+input-encoding: latin1
+output-encoding: latin1
+newline: CRLF
+write-back: yes
+markup: yes
+indent: yes
+hide-endtags: no
+uppercase-tags: no
+logical-emphasis: no
+drop-font-tags: no
+tidy-mark: no
+numeric-entities: no
+show-warnings: no
+quiet: yes