diff options
46 files changed, 1794 insertions, 345 deletions
@@ -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 @@ -23,10 +23,21 @@ If all you want to do is convert XML to HTML perform the following: * 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. @@ -1,29 +1,42 @@ -BASEDIR=~/lfs-book/ +BASEDIR=~/lfs-book lfs: - xsltproc --xinclude --nonet -stringparam base.dir $(BASEDIR) \ + xsltproc --xinclude --nonet -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 +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 lfs-print.pdf + +nochunks: + xsltproc --xinclude --nonet --output lfs.html \ + stylesheets/lfs-nochunks.xsl index.xml + tidy -config tidy.conf lfs.html || true + validate: xmllint --noout --nonet --xinclude --postvalid index.xml @@ -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..168b08fc9 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,31 @@ first a summary, then a detailed log.</para> </itemizedlist> </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 & 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..f59b004ef 100644 --- a/chapter03/packages.xml +++ b/chapter03/packages.xml @@ -191,26 +191,31 @@ 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="http://lfs.mirror.intermedia.com.sg/packages/glibc/glibc-&glibc-version;.tar.bz2"/> +<ulink +url="ftp://lfs.mirror.intermedia.com.sg/pub/lfs/glibc/glibc-&glibc-version;.tar.bz2"/> +<ulink url="http://dl.lfs.fredan.org/glibc-&glibc-version;.tar.bz2"/> +<ulink url="http://packages.lfs-es.org/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"/></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/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/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..8d328a2c7 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> @@ -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/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/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/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..659e4b416 100644 --- a/general.ent +++ b/general.ent @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="ISO-8859-1"?> -<!ENTITY version "CVS-2004-05-02"> -<!ENTITY releasedate "May 2, 2004"> +<!ENTITY version "&milestone;"> +<!ENTITY releasedate "May 16, 2004"> <!ENTITY milestone "5.1"> <!ENTITY lfs-root "http://www.linuxfromscratch.org/"> @@ -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"> @@ -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..28f34e68f 100644 --- a/prologue/acknowledgments.xml +++ b/prologue/acknowledgments.xml @@ -20,13 +20,17 @@ Beekmans</ulink> <gerard@linuxfromscratch.org> -- Linux-From-Scratch initiator, LFS Project organizer.</para></listitem> <listitem><para><ulink url="mailto:matthew@linuxfromscratch.org">Matthew -Burgess</ulink> <matthew@linuxfromscratch.org> -- LFS General Package -maintainer, LFS Book editor.</para></listitem> +Burgess</ulink> <matthew@linuxfromscratch.org> -- LFS Project Co-Leader, +LFS General Package maintainer, LFS Book editor.</para></listitem> <listitem><para><ulink url="mailto:meerkats@bellsouth.net">Craig Colton</ulink> <meerkats@bellsouth.net> -- LFS, ALFS, BLFS and Hints Project logo creator.</para></listitem> +<listitem><para><ulink url="mailto:nathan@linuxfromscratch.org">Nathan +Coulson</ulink> <nathan@linuxfromscratch.org> -- LFS-Bootscripts +maintainer.</para></listitem> + <listitem><para><ulink url="mailto:jeroen@linuxfromscratch.org">Jeroen Coumans</ulink> <jeroen@linuxfromscratch.org> -- Website developer, FAQ maintainer.</para></listitem> @@ -35,6 +39,10 @@ maintainer.</para></listitem> Dubbs</ulink> <bdubbs@linuxfromscratch.org> -- LFS Quality Assurance Team leader, BLFS Book editor.</para></listitem> +<listitem><para><ulink url="mailto:manuel@linuxfromscratch.org">Manuel +Canales Esparcia</ulink> <manuel@linuxfromscratch.org> -- LFS Book +Editor (XML).</para></listitem> + <listitem><para><ulink url="mailto:alex@linuxfromscratch.org">Alex Groenewoud</ulink> <alex@linuxfromscratch.org> -- LFS Book editor.</para></listitem> @@ -59,6 +67,10 @@ creator and maintainer.</para></listitem> Maltby</ulink> <bill@linuxfromscratch.org> -- LFS Project organizer.</para></listitem> +<listitem><para><ulink url="mailto:alexander@linuxfromscratch.org">Alexander +Patrakov</ulink> <alexander@linuxfromscratch.org> -- LFS Book +Editor (internationalization/localization).</para></listitem> + <listitem><para><ulink url="mailto:scot@linuxfromscratch.org">Scot Mc Pherson</ulink> <scot@linuxfromscratch.org> -- 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> <greg@linuxfromscratch.org> -- 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> <tushar@linuxfromscratch.org> -- 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> <jeremy@linuxfromscratch.org> -- 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> <winkie@linuxfromscratch.org> -- 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, @@ -116,102 +132,164 @@ 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> -<jason@dstc.edu.au> -- au.linuxfromscratch.org mirror.</para></listitem> +<listitem><para><ulink url="mailto:scott@osuosl.org">Scott Kveton</ulink> +<scott@osuosl.org> -- lfs.oregonstate.edu mirror</para></listitem> + +<listitem><para><ulink url="mailto:miha@xuy.biz">Mikhail Pastukhov</ulink> +<miha@xuy.biz> -- lfs.130th.net mirror.</para></listitem> + +<listitem><para><ulink url="mailto:unknown@unknown.org">Unknown User</ulink> +<unknown@unknown.org> -- lfs.crash404.com mirror.</para></listitem> <listitem><para><ulink url="mailto:lost@l-w.net">William Astle</ulink> <lost@l-w.net> -- ca.linuxfromscratch.org mirror.</para></listitem> -<listitem><para><ulink url="mailto:baque@cict.fr">Baque</ulink> -<baque@cict.fr> -- lfs.cict.fr mirror.</para></listitem> - -<listitem><para><ulink url="mailto:stevie@stevie20.de">Stephan Brendel</ulink> -<stevie@stevie20.de> -- lfs.netservice-neuss.de +<listitem><para><ulink url="mailto:jpolen@rackspace.com">Jeremy Polen</ulink> +<jpolen@rackspace.com> -- us2.linuxfromscratch.org mirror.</para></listitem> -<listitem><para><ulink url="mailto:ian@ichilton.co.uk">Ian Chilton</ulink> -<ian@ichilton.co.uk> -- us.linuxfromscratch.org, linuxfromscratch.co.uk -mirrors.</para></listitem> +<listitem><para><ulink url="mailto:tim@idge.net">Tim Jackson</ulink> +<tim@idge.net> -- linuxfromscratch.idge.net mirror.</para></listitem> -<listitem><para><ulink url="mailto:fredan-lfs@fredan.org">Fredrik -Danerklint</ulink> <fredan-lfs@fredan.org> -- se.linuxfromscratch.org -mirror.</para></listitem> +<listitem><para><ulink url="mailto:jeremy@linux-phreak.net">Jeremy Utley +</ulink> <jeremy@linux-phreak.net> -- 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> <pgpkeys@aeternamtech.com> -- lfs.learnbyexample.com +<itemizedlist> + +<listitem><para><ulink url="mailto:manuel@linuxfromscratch.org">Manuel Canales +Esparcia</ulink> <manuel@linuxfromscratch.org> -- lfsmirror.lfs-es.org mirror.</para></listitem> +<listitem><para><ulink url="mailto:sysop@mesi.com.ar">Andres Meggiotto</ulink> +<sysop@mesi.com.ar> -- lfs.mesi.com.ar mirror.</para></listitem> + <listitem><para><ulink url="mailto:ebf@aedsolucoes.com.br">Eduardo B. Fonseca</ulink> <ebf@aedsolucoes.com.br> -- br.linuxfromscratch.org mirror.</para></listitem> -<listitem><para><ulink url="mailto:hrx@hrxnet.de">Hagen Herrschaft</ulink> -<hrx@hrxnet.de> -- de.linuxfromscratch.org mirror.</para></listitem> +</itemizedlist> -<listitem><para><ulink url="mailto:tim@idge.net">Tim Jackson</ulink> -<tim@idge.net> -- linuxfromscratch.idge.net mirror.</para></listitem> +</sect3> + +<sect3> +<title>European Mirrors</title> + +<itemizedlist> <listitem><para><ulink url="mailto:barna@siker.hu">Barna Koczka</ulink> <barna@siker.hu> -- 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> -<sime@dot-sime.com> -- uk.linuxfromscratch.org mirror.</para></listitem> +<listitem><para><ulink url="mailto:Martin.Voss@ada.de">Martin Voss</ulink> +<Martin.Voss@ada.de> -- lfs.linux-matrix.net mirror.</para></listitem> -<listitem><para><ulink url="mailto:ervin@activalink.net">Ervin S. -Odisho</ulink> <ervin@activalink.net> -- lfs.activalink.net -mirror.</para></listitem> +<listitem><para><ulink url="mailto:unknown@unknown.org">Unknown User</ulink> +<unknown@unknown.org> -- mirror.vtx.ch mirror</para></listitem> <listitem><para><ulink url="mailto:guido@primerelay.net">Guido Passet</ulink> <guido@primerelay.net> -- nl.linuxfromscratch.org mirror.</para></listitem> -<listitem><para><ulink url="mailto:miha@xuy.biz">Mikhail Pastukhov</ulink> -<miha@xuy.biz> -- lfs.130th.net mirror.</para></listitem> +<listitem><para><ulink url="mailto:baafie@planet.nl">Bastiaan Jacques</ulink> +<baafie@planet.nl> -- lfs.pagefault.net mirror</para></listitem> -<listitem><para><ulink url="mailto:jpolen@rackspace.com">Jeremy Polen</ulink> -<jpolen@rackspace.com> -- us2.linuxfromscratch.org +<listitem><para><ulink url="mailto:lfs-mirror@linuxfromscratch.rave.org">Roel +Neefs</ulink> <lfs-mirror@linuxfromscratch.rave.org> -- linuxfromscratch.rave.org mirror.</para></listitem> + +<listitem><para><ulink url="mailto:justin@jrknierim.de">Justin Knierim</ulink> +<justin@jrknierim.de> -- www.lfs-matrix.de mirror</para></listitem> + +<listitem><para><ulink url="mailto:stevie@stevie20.de">Stephan Brendel</ulink> +<stevie@stevie20.de> -- 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><ulink url="mailto:unknown@unknown.org">Unknown User</ulink> +<unknown@unknown.org> -- linuxfromscratch.je-zi.de +mirror</para></listitem> -<listitem><para><ulink url="mailto:thomas@sofagang.dk">Thomas Skyt</ulink> -<thomas@sofagang.dk> -- dk.linuxfromscratch.org mirror.</para></listitem> +<listitem><para><ulink url="mailto:unknown@unknown.org">Unknown User</ulink> +<unknown@unknown.org> -- linuxfromscratch.tuxcenter.net +mirror</para></listitem> + +<listitem><para><ulink url="mailto:hrx@hrxnet.de">Hagen Herrschaft</ulink> +<hrx@hrxnet.de> -- de.linuxfromscratch.org mirror.</para></listitem> <listitem><para><ulink url="mailto:Antonin.Sprinzl@tuwien.ac.at">Antonin Sprinzl</ulink> <Antonin.Sprinzl@tuwien.ac.at> -- at.linuxfromscratch.org mirror.</para></listitem> -<listitem><para><ulink url="mailto:dag@stenstad.net">Dag Stenstad</ulink> -<dag@stenstad.net> 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> <fredan-lfs@fredan.org> -- se.linuxfromscratch.org +mirror.</para></listitem> <listitem><para><ulink url="mailto:archive@doc.cs.univ-paris8.fr">Parisian sysadmins</ulink> <archive@doc.cs.univ-paris8.fr> -- www2.fr.linuxfromscratch.org mirror.</para></listitem> -<listitem><para><ulink url="mailto:highos@linuxfromscratch.org">Jesse -Tie-Ten-Quee</ulink> <highos@linuxfromscratch.org> for providing and -running the linuxfromscratch.org server.</para></listitem> - <listitem><para><ulink url="mailto:velin@zadnik.org">Alexander Velin</ulink> <velin@zadnik.org> -- bg.linuxfromscratch.org mirror.</para></listitem> -<listitem><para><ulink url="mailto:Martin.Voss@ada.de">Martin Voss</ulink> -<Martin.Voss@ada.de> -- lfs.linux-matrix.net mirror.</para></listitem> +<listitem><para><ulink url="mailto:dirk@securewebservices.co.uk"> +Dirk Webster</ulink> <dirk@securewebservices.co.uk> -- +lfs.securewebservices.co.uk mirror</para></listitem> + +<listitem><para><ulink url="mailto:thomas@sofagang.dk">Thomas Skyt</ulink> +<thomas@sofagang.dk> -- dk.linuxfromscratch.org mirror.</para></listitem> + +<listitem><para><ulink url="mailto:sime@dot-sime.com">Simon Nicoll</ulink> +<sime@dot-sime.com> -- 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> <pyng@spam.averse.net> -- sg.linuxfromscratch.org mirror.</para></listitem> +<listitem><para><ulink url="mailto:stuart@althalus.me.uk">Stuart Harris</ulink> +<stuart@althalus.me.uk> -- lfs.mirror.intermedia.com.sg +mirror</para></listitem> + +<listitem><para><ulink url="mailto:unknown@unknown.org">Unknown User</ulink> +<unknown@unknown.org> -- 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> +<jason@dstc.edu.au> -- 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> <highos@linuxfromscratch.org> for answering +Tie-Ten-Quee</ulink> <highos@linuxfromscratch.org> 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/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..41038a992 --- /dev/null +++ b/stylesheets/lfs-nochunks.xsl @@ -0,0 +1,29 @@ +<?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"/> + + <!-- 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} </xsl:text> + <xsl:text>\frontmatter </xsl:text> +</xsl:variable> + +<!-- This put each section on a new page in the preface section --> + +<xsl:template match="preface/sect1"> + <xsl:text> </xsl:text> + <xsl:text>\newpage </xsl:text> + <xsl:text>\section*{</xsl:text><xsl:copy-of +select="normalize-space(title)"/><xsl:text>} </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>
</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, " ", 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, " ", 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;, " ", + 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, " ", 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) > 0 or (count($up) > 0 + and generate-id($up) != generate-id($home)) or count($next) > 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> </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> </xsl:text> + <xsl:if test="count($next)>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 > $depth and count($nodes)>0 + and $toc.max.depth > $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 |