aboutsummaryrefslogtreecommitdiffstats
path: root/chapter06
diff options
context:
space:
mode:
authorMatthew Burgess <matthew@linuxfromscratch.org>2004-05-03 10:59:46 +0000
committerMatthew Burgess <matthew@linuxfromscratch.org>2004-05-03 10:59:46 +0000
commit673b0d84ba9591e07c0bdf0ee49d92eba10f502c (patch)
tree129e27a1450727b440da4378e0117a468eb9c25e /chapter06
parent287ea55da70ceb1f0990554b7db921d525fef816 (diff)
* Merged newxml into HEAD
git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@3435 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
Diffstat (limited to 'chapter06')
-rw-r--r--chapter06/aboutdebug.xml46
-rw-r--r--chapter06/autoconf.xml82
-rw-r--r--chapter06/automake.xml103
-rw-r--r--chapter06/bash.xml68
-rw-r--r--chapter06/binutils.xml122
-rw-r--r--chapter06/bison.xml61
-rw-r--r--chapter06/bzip2.xml83
-rw-r--r--chapter06/changingowner.xml36
-rw-r--r--chapter06/chapter06.xml717
-rw-r--r--chapter06/chroot.xml53
-rw-r--r--chapter06/coreutils.xml403
-rw-r--r--chapter06/createfiles.xml20
-rw-r--r--chapter06/creatingdirs.xml65
-rw-r--r--chapter06/diffutils.xml54
-rw-r--r--chapter06/e2fsprogs.xml156
-rw-r--r--chapter06/ed.xml51
-rw-r--r--chapter06/file.xml50
-rw-r--r--chapter06/findutils.xml79
-rw-r--r--chapter06/flex.xml58
-rw-r--r--chapter06/gawk.xml60
-rw-r--r--chapter06/gcc-2953.xml53
-rw-r--r--chapter06/gcc.xml92
-rw-r--r--chapter06/gettext.xml161
-rw-r--r--chapter06/glibc.xml255
-rw-r--r--chapter06/grep.xml54
-rw-r--r--chapter06/groff.xml177
-rw-r--r--chapter06/grub.xml60
-rw-r--r--chapter06/gzip.xml88
-rw-r--r--chapter06/iana-etc.xml46
-rw-r--r--chapter06/inetutils.xml72
-rw-r--r--chapter06/introduction.xml67
-rw-r--r--chapter06/kbd.xml142
-rw-r--r--chapter06/kernel-headers.xml28
-rw-r--r--chapter06/less.xml52
-rw-r--r--chapter06/lfs-utils.xml54
-rw-r--r--chapter06/libtool.xml55
-rw-r--r--chapter06/m4.xml47
-rw-r--r--chapter06/make.xml48
-rw-r--r--chapter06/makedev.xml54
-rw-r--r--chapter06/man-pages.xml49
-rw-r--r--chapter06/man.xml78
-rw-r--r--chapter06/manpages.xml28
-rw-r--r--chapter06/mktemp.xml75
-rw-r--r--chapter06/modutils.xml81
-rw-r--r--chapter06/ncurses.xml103
-rw-r--r--chapter06/net-tools.xml124
-rw-r--r--chapter06/nettools.xml53
-rw-r--r--chapter06/patch.xml48
-rw-r--r--chapter06/perl.xml146
-rw-r--r--chapter06/proc.xml52
-rw-r--r--chapter06/procinfo.xml51
-rw-r--r--chapter06/procps.xml105
-rw-r--r--chapter06/psmisc.xml57
-rw-r--r--chapter06/pwdgroup.xml89
-rw-r--r--chapter06/readjusting.xml101
-rw-r--r--chapter06/revisedchroot.xml41
-rw-r--r--chapter06/sed.xml45
-rw-r--r--chapter06/shadow.xml193
-rw-r--r--chapter06/sysklogd.xml56
-rw-r--r--chapter06/sysvinit.xml129
-rw-r--r--chapter06/tar.xml48
-rw-r--r--chapter06/texinfo.xml67
-rw-r--r--chapter06/util-linux.xml314
-rw-r--r--chapter06/utillinux.xml66
-rw-r--r--chapter06/vim.xml152
-rw-r--r--chapter06/zlib.xml46
66 files changed, 4931 insertions, 1438 deletions
diff --git a/chapter06/aboutdebug.xml b/chapter06/aboutdebug.xml
new file mode 100644
index 000000000..32798c78b
--- /dev/null
+++ b/chapter06/aboutdebug.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+ <!ENTITY % general-entities SYSTEM "../general.ent">
+ %general-entities;
+]>
+<sect1 id="ch-system-aboutdebug">
+<title>About debugging symbols</title>
+<?dbhtml filename="aboutdebug.html"?>
+
+<para>Most programs and libraries are, by default, compiled with debugging
+symbols included (with <command>gcc</command>'s <emphasis>-g</emphasis>
+option). This means that, when debugging a program or library that was compiled
+with debugging information included, the debugger can give you not only memory
+addresses but also the names of the routines and variables.</para>
+
+<para>The inclusion of these debugging symbols, however, enlarges a program or
+library significantly. To get an idea of the amount of space these symbols
+occupy, have a look at the following:</para>
+
+<itemizedlist>
+
+<listitem><para>a bash binary
+with debugging symbols: 1200 KB</para></listitem>
+
+<listitem><para>a bash binary
+without debugging symbols: 480 KB</para></listitem>
+
+<listitem><para>Glibc and GCC files (/lib and /usr/lib)
+with debugging symbols: 87 MB</para></listitem>
+
+<listitem><para>Glibc and GCC files
+without debugging symbols: 16 MB</para></listitem>
+
+</itemizedlist>
+
+<para>Sizes may vary somewhat, depending on which compiler was used and which C
+library, but when comparing programs with and without debugging symbols the
+difference will generally be a factor between 2 and 5.</para>
+
+<para>As most people will probably never use a debugger on their system
+software, a lot of disk space can be regained by removing these symbols. For
+your convenience, the next section shows how to strip all debugging symbols
+from all programs and libraries. Information on other ways of optimizing your
+system can be found in the hint at <ulink url="&hints-root;optimization.txt"/>.</para>
+
+</sect1>
diff --git a/chapter06/autoconf.xml b/chapter06/autoconf.xml
index 7401d1ab3..07b6b5cbe 100644
--- a/chapter06/autoconf.xml
+++ b/chapter06/autoconf.xml
@@ -1,17 +1,24 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+ <!ENTITY % general-entities SYSTEM "../general.ent">
+ %general-entities;
+]>
<sect1 id="ch-system-autoconf" xreflabel="Autoconf">
-<title>Installing Autoconf-&autoconf-version;</title>
-<?dbhtml filename="autoconf.html" dir="chapter06"?>
+<title>Autoconf-&autoconf-version;</title>
+<?dbhtml filename="autoconf.html"?>
+
+<indexterm zone="ch-system-autoconf"><primary sortas="a-Autoconf">Autoconf</primary></indexterm>
<para>The Autoconf package contains programs for producing shell scripts that
can automatically configure source code.</para>
-<screen>&buildtime; &autoconf-time;
-&diskspace; &autoconf-compsize;</screen>
+<screen>&buildtime; 0.5 SBU
+&diskspace; 7.7 MB</screen>
+
+<para>Autoconf installation depends on: Bash, Coreutils, Diffutils, Grep,
+M4, Make, Perl, Sed.</para>
-&aa-autoconf-down;
-&aa-autoconf-dep;
-<sect2><title>&nbsp;</title><para>&nbsp;</para></sect2>
<sect2>
<title>Installation of Autoconf</title>
@@ -23,17 +30,68 @@ can automatically configure source code.</para>
<screen><userinput>make</userinput></screen>
-<para>To have the results tested, issue:
+<para>To test the results, issue:
<userinput>make check</userinput>. This takes a long time, about 2 SBUs.</para>
-<para>And install the package:</para>
+<para>Install the package:</para>
<screen><userinput>make install</userinput></screen>
</sect2>
-&aa-autoconf-shortdesc;
-&aa-autoconf-desc;
-</sect1>
+<sect2 id="contents-autoconf"><title>Contents of Autoconf</title>
+
+<para><emphasis>Installed programs</emphasis>: autoconf, autoheader, autom4te,
+autoreconf, autoscan, autoupdate and ifnames</para>
+
+</sect2>
+
+<sect2><title>Short descriptions</title>
+
+<indexterm zone="ch-system-autoconf autoconf"><primary sortas="b-autoconf">autoconf</primary></indexterm>
+<para id="autoconf"><command>autoconf</command> is a tool for producing shell scripts
+that automatically configure software source code packages to adapt to many
+kinds of Unix-like systems. The configuration scripts it produces are
+independent -- running them does not require the autoconf program.</para>
+
+<indexterm zone="ch-system-autoconf autoheader"><primary sortas="b-autoheader">autoheader</primary></indexterm>
+<para id="autoheader"><command>autoheader</command> is a tool for creating template files
+of C #define statements for configure to use.</para>
+
+<indexterm zone="ch-system-autoconf autom4te"><primary sortas="b-autom4te">autom4te</primary></indexterm>
+<para id="autom4te"><command>autom4te</command> is a wrapper for the M4 macro
+processor.</para>
+<indexterm zone="ch-system-autoconf autoreconf"><primary sortas="b-autoreconf">autoreconf</primary></indexterm>
+<para id="autoreconf"><command>autoreconf</command> comes in handy when there are a lot
+of autoconf-generated configure scripts around. The program runs autoconf and
+autoheader repeatedly (where appropriate) to remake the autoconf configure
+scripts and configuration header templates in a given directory tree.</para>
+
+<indexterm zone="ch-system-autoconf autoscan"><primary sortas="b-autoscan">autoscan</primary></indexterm>
+<para id="autoscan"><command>autoscan</command> can help to create a
+<filename>configure.in</filename> file for a software package. It examines
+the source files in a directory tree, searching them for common portability
+problems and creates a <filename>configure.scan</filename> file that serves as
+as a preliminary <filename>configure.in</filename> for the package.</para>
+
+<indexterm zone="ch-system-autoconf autoupdate"><primary sortas="b-autoupdate">autoupdate</primary></indexterm>
+<para id="autoupdate"><command>autoupdate</command> modifies a
+<filename>configure.in</filename> file that still calls autoconf macros
+by their old names to use the current macro names.</para>
+
+<indexterm zone="ch-system-autoconf ifnames"><primary sortas="b-ifnames">ifnames</primary></indexterm>
+<para id="ifnames"><command>ifnames</command> can be helpful when writing a
+<filename>configure.in</filename> for a software package. It prints the
+identifiers that the package uses in C preprocessor conditionals. If a package
+has already been set up to have some portability, this program can help to
+determine what <command>configure</command> needs to check. It can fill
+in some gaps in a <filename>configure.in</filename> file generated by
+autoscan.</para>
+
+</sect2>
+
+
+
+</sect1>
diff --git a/chapter06/automake.xml b/chapter06/automake.xml
index 05fd9fe3a..e2e492719 100644
--- a/chapter06/automake.xml
+++ b/chapter06/automake.xml
@@ -1,17 +1,24 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+ <!ENTITY % general-entities SYSTEM "../general.ent">
+ %general-entities;
+]>
<sect1 id="ch-system-automake" xreflabel="Automake">
-<title>Installing Automake-&automake-version;</title>
-<?dbhtml filename="automake.html" dir="chapter06"?>
+<title>Automake-&automake-version;</title>
+<?dbhtml filename="automake.html"?>
+
+<indexterm zone="ch-system-automake"><primary sortas="a-Automake">Automake</primary></indexterm>
<para>The Automake package contains programs for generating Makefiles for use
with Autoconf.</para>
-<screen>&buildtime; &automake-time;
-&diskspace; &automake-compsize;</screen>
+<screen>&buildtime; 0.2 SBU
+&diskspace; 6.8 MB</screen>
+
+<para>Automake installation depends on: Autoconf, Bash, Coreutils,
+Diffutils, Grep, M4, Make, Perl, Sed.</para>
-&aa-automake-down;
-&aa-automake-dep;
-<sect2><title>&nbsp;</title><para>&nbsp;</para></sect2>
<sect2>
<title>Installation of Automake</title>
@@ -24,7 +31,7 @@ with Autoconf.</para>
<screen><userinput>make</userinput></screen>
-<para>To have the results tested, issue:
+<para>To test the results, issue:
<userinput>make check</userinput>. This takes a long time, about 5 SBUs.</para>
<para>Install the package:</para>
@@ -33,8 +40,82 @@ with Autoconf.</para>
</sect2>
-&aa-automake-shortdesc;
-&aa-automake-desc;
-</sect1>
+<sect2 id="contents-automake"><title>Contents of Automake</title>
+
+<para><emphasis>Installed programs</emphasis>: acinstall, aclocal,
+aclocal-1.8, automake, automake-1.8, compile, config.guess, config.sub,
+depcomp, elisp-comp, install-sh, mdate-sh, missing, mkinstalldirs, py-compile,
+symlink-tree, ylwrap</para>
+
+</sect2>
+
+<sect2><title>Short descriptions</title>
+
+<indexterm zone="ch-system-automake acinstall"><primary sortas="b-acinstall">acinstall</primary></indexterm>
+<para id="acinstall"><command>acinstall</command> is a script that installs
+aclocal-style M4 files.</para>
+
+<indexterm zone="ch-system-automake aclocal"><primary sortas="b-aclocal">aclocal</primary></indexterm>
+<para id="aclocal"><command>aclocal</command> generates <filename>aclocal.m4</filename>
+files based on the contents of <filename>configure.in</filename> files.</para>
+
+<indexterm zone="ch-system-automake automake"><primary sortas="b-automake">automake</primary></indexterm>
+<para id="automake"><command>automake</command> is a tool for automatically generating
+<filename>Makefile.in</filename>'s from files called
+<filename>Makefile.am</filename>. To create all the
+<filename>Makefile.in</filename> files for a package, run this program in the
+top-level directory. By scanning the <filename>configure.in</filename>s it
+automatically finds each appropriate <filename>Makefile.am</filename> and
+generate the corresponding <filename>Makefile.in</filename>.</para>
+
+<indexterm zone="ch-system-automake compile"><primary sortas="b-compile">compile</primary></indexterm>
+<para id="compile"><command>compile</command> is a wrapper for compilers.</para>
+
+<indexterm zone="ch-system-automake config.guess"><primary sortas="b-config.guess">config.guess</primary></indexterm>
+<para id="config.guess"><command>config.guess</command> is a script that attempts to guess
+the canonical triplet for the given build, host, or target architecture.</para>
+
+<indexterm zone="ch-system-automake config.su"><primary sortas="b-config.su">config.su</primary></indexterm>
+<para id="config.su"><command>config.sub</command> is a configuration validation
+subroutine script.</para>
+
+<indexterm zone="ch-system-automake depcomp"><primary sortas="b-depcomp">depcomp</primary></indexterm>
+<para id="depcomp"><command>depcomp</command> is a script for compiling a program
+so that not only the desired output is generated, but also dependency
+information.</para>
+<indexterm zone="ch-system-automake elisp-comp"><primary sortas="b-elisp-comp">elisp-comp</primary></indexterm>
+<para id="elisp-comp"><command>elisp-comp</command> byte-compiles Emacs Lisp code.</para>
+
+<indexterm zone="ch-system-automake install-sh"><primary sortas="b-install-sh">install-sh</primary></indexterm>
+<para id="install-sh"><command>install-sh</command> is a script that installs a program,
+a script, or a datafile.</para>
+
+<indexterm zone="ch-system-automake mdate-sh"><primary sortas="b-mdate-sh">mdate-sh</primary></indexterm>
+<para id="mdate-sh"><command>mdate-sh</command> is a script that prints the modification
+time of a file or directory.</para>
+
+<indexterm zone="ch-system-automake missing"><primary sortas="b-missing">missing</primary></indexterm>
+<para id="missing"><command>missing</command> is a script acting as a common stub for
+missing GNU programs during an installation.</para>
+
+<indexterm zone="ch-system-automake mkinstalldirs"><primary sortas="b-mkinstalldirs">mkinstalldirs</primary></indexterm>
+<para id="mkinstalldirs"><command>mkinstalldirs</command> is a script that creates a directory
+tree.</para>
+
+<indexterm zone="ch-system-automake py-compile"><primary sortas="b-py-compile">py-compile</primary></indexterm>
+<para id="py-compile"><command>py-compile</command> compiles a Python program.</para>
+
+<indexterm zone="ch-system-automake symlink-tree"><primary sortas="b-symlink-tree">symlink-tree</primary></indexterm>
+<para id="symlink-tree"><command>symlink-tree</command> is a script to create a symlink tree of
+a directory tree.</para>
+
+<indexterm zone="ch-system-automake ylwrap"><primary sortas="b-ylwrap">ylwrap</primary></indexterm>
+<para id="ylwrap"><command>ylwrap</command> is a wrapper for lex and yacc.</para>
+
+</sect2>
+
+
+
+</sect1>
diff --git a/chapter06/bash.xml b/chapter06/bash.xml
index aa38ef855..af2acf4b5 100644
--- a/chapter06/bash.xml
+++ b/chapter06/bash.xml
@@ -1,25 +1,32 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+ <!ENTITY % general-entities SYSTEM "../general.ent">
+ %general-entities;
+]>
<sect1 id="ch-system-bash" xreflabel="Bash">
-<title>Installing Bash-&bash-version;</title>
-<?dbhtml filename="bash.html" dir="chapter06"?>
+<title>Bash-&bash-version;</title>
+<?dbhtml filename="bash.html"?>
+
+<indexterm zone="ch-system-bash"><primary sortas="a-Bash">Bash</primary></indexterm>
<para>The Bash package contains the Bourne-Again SHell.</para>
-<screen>&buildtime; &bash-time;
-&diskspace; &bash-compsize;</screen>
+<screen>Approximate build time: 1.2 SBU
+Required disk space: 27 MB</screen>
+
+<para>Bash installation depends on: Binutils, Coreutils, Diffutils, Gawk,
+GCC, Glibc, Grep, Make, Ncurses, Sed.</para>
-&aa-bash-down;
-&aa-bash-dep;
-<sect2><title>&nbsp;</title><para>&nbsp;</para></sect2>
<sect2>
<title>Installation of Bash</title>
<para>Bash has a number of bugs in it that cause it to not behave the
-way it is expected at times. Fix this behaviour with the following
+way it is expected at times. Fix this behavior with the following
patch:</para>
-<screen><userinput>patch -Np1 -i ../&bash-patch;</userinput></screen>
+<screen><userinput>patch -Np1 -i ../bash-&bash-version;-2.patch</userinput></screen>
<para>Now prepare Bash for compilation:</para>
@@ -29,21 +36,52 @@ patch:</para>
<screen><userinput>make</userinput></screen>
-<para>To have the results tested, issue:
+<para>To test the results, issue:
<userinput>make tests</userinput>.</para>
<para>Install the package:</para>
<screen><userinput>make install</userinput></screen>
-<para>And reload the newly compiled <command>bash</command> program:</para>
+<para>Now run the newly compiled <command>bash</command> program (replacing the one you are currently executing):</para>
+
+<screen><userinput>exec /bin/bash --login +h</userinput></screen>
-<screen><userinput>exec /bin/bash +h</userinput></screen>
+<para>Note that the parameters used make it an interactive login instance
+(so /etc/profile is read, if it exists, and the first found
+~/.bash_profile, ~/.bash_login or and ~/.profile) and continue to
+disable hashing so that new programs are found as they become
+available.</para>
</sect2>
-&aa-bash-shortdesc;
-&aa-bash-desc;
-</sect1>
+<sect2 id="contents-bash"><title>Contents of Bash</title>
+
+<para><emphasis>Installed programs</emphasis>: bash, sh (link to bash) and
+bashbug</para>
+
+</sect2>
+
+
+<sect2><title>Short descriptions</title>
+<indexterm zone="ch-system-bash bash"><primary sortas="b-bash">bash</primary></indexterm>
+<para id="bash"><command>bash</command> is a widely-used command interpreter. It
+performs many kinds of expansions and substitutions on a given command line
+before executing it, thus making this interpreter a powerful tool.</para>
+
+<indexterm zone="ch-system-bash bashbug"><primary sortas="b-bashbug">bashbug</primary></indexterm>
+<para id="bashbug"><command>bashbug</command> is a shell script to help the user
+compose and mail bug reports concerning bash in a standard format.</para>
+
+<indexterm zone="ch-system-bash sh"><primary sortas="b-sh">sh</primary></indexterm>
+<para id="sh"><command>sh</command> is a symlink to the bash program. When invoked
+as sh, bash tries to mimic the startup behavior of historical versions of sh as
+closely as possible, while conforming to the POSIX standard as well.</para>
+
+</sect2>
+
+
+
+</sect1>
diff --git a/chapter06/binutils.xml b/chapter06/binutils.xml
index 92c02a803..589f61f29 100644
--- a/chapter06/binutils.xml
+++ b/chapter06/binutils.xml
@@ -1,17 +1,24 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+ <!ENTITY % general-entities SYSTEM "../general.ent">
+ %general-entities;
+]>
<sect1 id="ch-system-binutils" xreflabel="Binutils">
-<title>Installing Binutils-&binutils-version;</title>
-<?dbhtml filename="binutils.html" dir="chapter06"?>
+<title>Binutils-&binutils-version;</title>
+<?dbhtml filename="binutils.html"?>
+
+<indexterm zone="ch-system-binutils"><primary sortas="a-Binutils">Binutils</primary></indexterm>
<para>The Binutils package contains a linker, an assembler, and other tools for
handling object files.</para>
-<screen>&buildtime; &binutils-time;
-&diskspace; &binutils-compsize;</screen>
+<screen>&buildtime; 1.4 SBU
+&diskspace; 167 MB</screen>
+
+<para>Binutils installation depends on: Bash, Coreutils, Diffutils, GCC, Gettext,
+Glibc, Grep, Make, Perl, Sed, Texinfo.</para>
-&aa-binutils-down;
-&aa-binutils-dep;
-<sect2><title>&nbsp;</title><para>&nbsp;</para></sect2>
<sect2><title>Installation of Binutils</title>
@@ -34,7 +41,7 @@ to fix the problem.</para>
<para>This package is known to behave badly when you have changed its
default optimization flags (including the -march and -mcpu options).
Therefore, if you have defined any environment variables that override
-default optimizations, such as CFLAGS and CXXFLAGS, we recommend unsetting
+default optimizations, such as CFLAGS and CXXFLAGS, we recommend un-setting
or modifying them when building Binutils.</para>
<para>The Binutils documentation recommends building Binutils outside of the
@@ -45,7 +52,7 @@ cd ../binutils-build</userinput></screen>
<para>Now prepare Binutils for compilation:</para>
-<screen><userinput>../&binutils-dir;/configure --prefix=/usr --enable-shared</userinput></screen>
+<screen><userinput>../binutils-&binutils-version;/configure --prefix=/usr --enable-shared</userinput></screen>
<para>Compile the package:</para>
@@ -78,12 +85,101 @@ doubts.</para>
<para>Install the <emphasis>libiberty</emphasis> header file that is needed by
some packages:</para>
-<screen><userinput>cp ../&binutils-dir;/include/libiberty.h /usr/include</userinput></screen>
+<screen><userinput>cp ../binutils-&binutils-version;/include/libiberty.h /usr/include</userinput></screen>
</sect2>
-&aa-binutils-shortdesc;
-&aa-binutils-desc;
-</sect1>
+<sect2 id="contents-binutils"><title>Contents of Binutils</title>
+
+<para><emphasis>Installed programs</emphasis>: addr2line, ar, as, c++filt,
+gprof, ld, nm, objcopy, objdump, ranlib, readelf, size, strings and
+strip</para>
+
+<para><emphasis>Installed libraries</emphasis>: libiberty.a, libbfd.[a,so] and
+libopcodes.[a,so]</para>
+
+</sect2>
+
+
+<sect2><title>Short descriptions</title>
+
+<indexterm zone="ch-system-binutils addr2line"><primary sortas="b-addr2line">addr2line</primary></indexterm>
+<para id="addr2line"><command>addr2line</command> translates program addresses to file
+names and line numbers. Given an address and the name of an executable, it
+uses the debugging information in the executable to figure out which source
+file and line number are associated with the address.</para>
+
+<indexterm zone="ch-system-binutils ar"><primary sortas="b-ar">ar</primary></indexterm>
+<para id="ar"><command>ar</command> creates, modifies, and extracts from archives. An archive
+is a single file holding a collection of other files in a structure that makes
+it possible to retrieve the original individual files (called members of
+the archive).</para>
+
+<indexterm zone="ch-system-binutils as"><primary sortas="b-as">as</primary></indexterm>
+<para id="as"><command>as</command> is an assembler. It assembles the output of
+gcc into object files.</para>
+
+<indexterm zone="ch-system-binutils c-filt"><primary sortas="b-c++filt">c++filt</primary></indexterm>
+<para id="c-filt"><command>c++filt</command> is used by the linker to de-mangle C++ and
+Java symbols, to keep overloaded functions from clashing.</para>
+
+<indexterm zone="ch-system-binutils gprof"><primary sortas="b-gprof">gprof</primary></indexterm>
+<para id="gprof"><command>gprof</command> displays call graph profile data.</para>
+
+<indexterm zone="ch-system-binutils ld"><primary sortas="b-ld">ld</primary></indexterm>
+<para id="ld"><command>ld</command> is a linker. It combines a number of object
+and archive files into a single file, relocating their data and tying up symbol
+references.</para>
+
+<indexterm zone="ch-system-binutils nm"><primary sortas="b-nm">nm</primary></indexterm>
+<para id="nm"><command>nm</command> lists the symbols occurring in a given object file.</para>
+<indexterm zone="ch-system-binutils objcopy"><primary sortas="b-objcopy">objcopy</primary></indexterm>
+<para id="objcopy"><command>objcopy</command> is used to translate one type of object
+file into another.</para>
+
+<indexterm zone="ch-system-binutils objdump"><primary sortas="b-objdump">objdump</primary></indexterm>
+<para id="objdump"><command>objdump</command> displays information about the given
+object file, with options controlling what particular information to display.
+The information shown is mostly only useful to programmers who are working on
+the compilation tools.</para>
+
+<indexterm zone="ch-system-binutils ranlib"><primary sortas="b-ranlib">ranlib</primary></indexterm>
+<para id="ranlib"><command>ranlib</command> generates an index of the contents of an
+archive, and stores it in the archive. The index lists all the symbols defined
+by archive members that are relocatable object files.</para>
+
+<indexterm zone="ch-system-binutils readelf"><primary sortas="b-readelf">readelf</primary></indexterm>
+<para id="readelf"><command>readelf</command> displays information about elf type binaries.</para>
+
+<indexterm zone="ch-system-binutils size"><primary sortas="b-size">size</primary></indexterm>
+<para id="size"><command>size</command> lists the section sizes -- and the grand
+total -- for the given object files.</para>
+
+<indexterm zone="ch-system-binutils strings"><primary sortas="b-strings">strings</primary></indexterm>
+<para id="strings"><command>strings</command> outputs, for each given file, the sequences
+of printable characters that are of at least the specified length (defaulting to 4).
+For object files it prints, by default, only the strings from the initializing
+and loading sections. For other types of files it scans the whole file.</para>
+
+<indexterm zone="ch-system-binutils strip"><primary sortas="b-strip">strip</primary></indexterm>
+<para id="strip"><command>strip</command> discards symbols from object files.</para>
+
+<indexterm zone="ch-system-binutils libiberty"><primary sortas="c-libiberty">libiberty</primary></indexterm>
+<para id="libiberty"><command>libiberty</command> contains routines used by various GNU
+programs, including getopt, obstack, strerror, strtol and strtoul.</para>
+
+<indexterm zone="ch-system-binutils libbfd"><primary sortas="c-libbfd">libbfd</primary></indexterm>
+<para id="libbfd"><command>libbfd</command> is the Binary File Descriptor library.</para>
+
+<indexterm zone="ch-system-binutils libopcodes"><primary sortas="c-libopcodes">libopcodes</primary></indexterm>
+<para id="libopcodes"><command>libopcodes</command> is a library for dealing with opcodes.
+It is used for building utilities like objdump. Opcodes are the <quote>readable
+text</quote> versions of instructions for the processor.</para>
+
+</sect2>
+
+
+
+</sect1>
diff --git a/chapter06/bison.xml b/chapter06/bison.xml
index a8404ec27..4202899d1 100644
--- a/chapter06/bison.xml
+++ b/chapter06/bison.xml
@@ -1,24 +1,31 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+ <!ENTITY % general-entities SYSTEM "../general.ent">
+ %general-entities;
+]>
<sect1 id="ch-system-bison" xreflabel="Bison">
-<title>Installing Bison-&bison-version;</title>
-<?dbhtml filename="bison.html" dir="chapter06"?>
+<title>Bison-&bison-version;</title>
+<?dbhtml filename="bison.html"?>
+
+<indexterm zone="ch-system-bison"><primary sortas="a-Bison">Bison</primary></indexterm>
<para>The Bison package contains a parser generator.</para>
-<screen>&buildtime; &bison-time;
-&diskspace; &bison-compsize;</screen>
+<screen>&buildtime; 0.6 SBU
+&diskspace; 10.6 MB</screen>
+
+<para>Bison installation depends on: Bash, Binutils, Coreutils, Diffutils,
+GCC, Gettext, Glibc, Grep, M4, Make, Sed.</para>
-&aa-bison-down;
-&aa-bison-dep;
-<sect2><title>&nbsp;</title><para>&nbsp;</para></sect2>
<sect2>
<title>Installation of Bison</title>
<para>First fix a minor compilation problem that Bison has with some packages,
-the patch is backported from CVS:</para>
+the patch is back-ported from CVS:</para>
-<screen><userinput>patch -Np1 -i ../&bison-patch;</userinput></screen>
+<screen><userinput>patch -Np1 -i ../bison-&bison-version;-attribute.patch</userinput></screen>
<para>Now prepare Bison for compilation:</para>
@@ -28,17 +35,43 @@ the patch is backported from CVS:</para>
<screen><userinput>make</userinput></screen>
-<para>To have the results tested, issue:
+<para>To test the results, issue:
<userinput>make check</userinput>.</para>
-<para>And install the package:</para>
+<para>Now install the package:</para>
<screen><userinput>make install</userinput></screen>
</sect2>
-&aa-bison-shortdesc;
-&aa-bison-desc;
-</sect1>
+<sect2 id="contents-bison"><title>Contents of Bison</title>
+
+<para><emphasis>Installed programs</emphasis>: bison and yacc</para>
+
+<para><emphasis>Installed library</emphasis>: liby.a</para>
+
+</sect2>
+
+
+<sect2><title>Short descriptions</title>
+<indexterm zone="ch-system-bison bison"><primary sortas="b-bison">bison</primary></indexterm>
+<para id="bison"><command>bison</command> generates, from a series of rules, a program
+for analyzing the structure of text files. Bison is a replacement for yacc
+(Yet Another Compiler Compiler).</para>
+
+<indexterm zone="ch-system-bison yacc"><primary sortas="b-yacc">yacc</primary></indexterm>
+<para id="yacc"><command>yacc</command> is a wrapper for bison, meant for programs
+that still call yacc instead of bison. It calls bison with the -y option.</para>
+
+<indexterm zone="ch-system-bison liby.a"><primary sortas="c-liby.a">liby.a</primary></indexterm>
+<para id="liby.a"><command>liby.a</command> is the Yacc library containing
+implementations of Yacc-compatible yyerror and main functions. This library
+is normally not very useful, but POSIX requires it.</para>
+
+</sect2>
+
+
+
+</sect1>
diff --git a/chapter06/bzip2.xml b/chapter06/bzip2.xml
index d1893c1f0..e6034e228 100644
--- a/chapter06/bzip2.xml
+++ b/chapter06/bzip2.xml
@@ -1,18 +1,25 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+ <!ENTITY % general-entities SYSTEM "../general.ent">
+ %general-entities;
+]>
<sect1 id="ch-system-bzip2" xreflabel="Bzip2">
-<title>Installing Bzip2-&bzip2-version;</title>
-<?dbhtml filename="bzip2.html" dir="chapter06"?>
+<title>Bzip2-&bzip2-version;</title>
+<?dbhtml filename="bzip2.html"?>
+
+<indexterm zone="ch-system-bzip2"><primary sortas="a-Bzip2">Bzip2</primary></indexterm>
<para>The Bzip2 package contains programs for compressing and decompressing
files. On text files they achieve a much better compression than the
traditional <command>gzip</command>.</para>
-<screen>&buildtime; &bzip2-time;
-&diskspace; &bzip2-compsize;</screen>
+<screen>&buildtime; 0.1 SBU
+&diskspace; 3.0 MB</screen>
+
+<para>Bzip2 installation depends on: Bash, Binutils, Coreutils, Diffutils,
+GCC, Glibc, Make.</para>
-&aa-bzip2-down;
-&aa-bzip2-dep;
-<sect2><title>&nbsp;</title><para>&nbsp;</para></sect2>
<sect2>
<title>Installation of Bzip2</title>
@@ -32,15 +39,15 @@ against it.</para>
<screen><userinput>make</userinput></screen>
-<para>If you are reinstalling Bzip2, you will now first have to do
-<userinput>rm -f /usr/bin/bz*</userinput>, otherwise the following
+<para>If you are reinstalling Bzip2, you need to do
+<userinput>rm -f /usr/bin/bz*</userinput> first, otherwise the following
<command>make install</command> will fail.</para>
<para>Install the programs:</para>
<screen><userinput>make install</userinput></screen>
-<para>And install the shared <command>bzip2</command> binary into the
+<para>Now install the shared <command>bzip2</command> binary into the
<filename class="directory">/bin</filename> directory, then make some
necessary symbolic links, and clean up:</para>
@@ -54,8 +61,58 @@ ln -s bzip2 /bin/bzcat</userinput></screen>
</sect2>
-&aa-bzip2-shortdesc;
-&aa-bzip2-desc;
-</sect1>
+<sect2 id="contents-bzip2"><title>Contents of Bzip2</title>
+
+<para><emphasis>Installed programs</emphasis>: bunzip2 (link to bzip2), bzcat
+(link to bzip2), bzcmp, bzdiff, bzegrep, bzfgrep, bzgrep, bzip2, bzip2recover,
+bzless and bzmore</para>
+
+<para><emphasis>Installed libraries</emphasis>: libbz2.a, libbz2.so (link to
+libbz2.so.1.0), libbz2.so.1.0 (link to libbz2.so.&bzip2-version;) and
+libbz2.so.&bzip2-version;</para>
+
+</sect2>
+
+<sect2><title>Short descriptions</title>
+
+<indexterm zone="ch-system-bzip2 bunzip2"><primary sortas="b-bunzip2">bunzip2</primary></indexterm>
+<para id="bunzip2"><command>bunzip2</command> decompresses bzipped files.</para>
+
+<indexterm zone="ch-system-bzip2 bzcat"><primary sortas="b-bzcat">bzcat</primary></indexterm>
+<para id="bzcat"><command>bzcat</command> decompresses to standard output.</para>
+
+<indexterm zone="ch-system-bzip2 bzcmp"><primary sortas="b-bzcmp">bzcmp</primary></indexterm>
+<para id="bzcmp"><command>bzcmp</command> runs cmp on bzipped files.</para>
+
+<indexterm zone="ch-system-bzip2 bzdiff"><primary sortas="b-bzdiff">bzdiff</primary></indexterm>
+<para id="bzdiff"><command>bzdiff</command> runs diff on bzipped files.</para>
+<indexterm zone="ch-system-bzip2 bzgrep"><primary sortas="b-bzgrep">bzgrep</primary></indexterm>
+<para id="bzgrep"><command>bzgrep</command> and friends run grep on bzipped files.</para>
+
+<indexterm zone="ch-system-bzip2 bzip2"><primary sortas="b-bzip2">bzip2</primary></indexterm>
+<para id="bzip2"><command>bzip2</command> compresses files using the Burrows-Wheeler
+block sorting text compression algorithm with Huffman coding. The compression
+rate is generally considerably better than that achieved by more conventional
+compressors using LZ77/LZ78, like <command>gzip</command>.</para>
+
+<indexterm zone="ch-system-bzip2 bzip2recover"><primary sortas="b-bzip2recover">bzip2recover</primary></indexterm>
+<para id="bzip2recover"><command>bzip2recover</command> tries to recover data from damaged
+bzip2 files.</para>
+
+<indexterm zone="ch-system-bzip2 bzless"><primary sortas="b-bzless">bzless</primary></indexterm>
+<para id="bzless"><command>bzless</command> runs less on bzipped files.</para>
+
+<indexterm zone="ch-system-bzip2 bzmore"><primary sortas="b-bzmore">bzmore</primary></indexterm>
+<para id="bzmore"><command>bzmore</command> runs more on bzipped files.</para>
+
+<indexterm zone="ch-system-bzip2 libbz2"><primary sortas="c-libbz2*">libbz2*</primary></indexterm>
+<para id="libbz2"><command>libbz2*</command> is the library implementing lossless,
+block-sorting data compression, using the Burrows-Wheeler algorithm.</para>
+
+</sect2>
+
+
+
+</sect1>
diff --git a/chapter06/changingowner.xml b/chapter06/changingowner.xml
new file mode 100644
index 000000000..cef15f8ba
--- /dev/null
+++ b/chapter06/changingowner.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+ <!ENTITY % general-entities SYSTEM "../general.ent">
+ %general-entities;
+]>
+<sect1 id="ch-system-changingowner">
+<title>Changing ownership</title>
+<?dbhtml filename="changingowner.html"?>
+
+<para>Right now the <filename class="directory">/tools</filename> directory
+is owned by the user <emphasis>lfs</emphasis>, a user that exists only on your
+host system. Although you will probably want to delete the
+<filename class="directory">/tools</filename> directory once you have
+finished your LFS system, you may want to keep it around, for example to
+build more LFS systems. But if you keep the
+<filename class="directory">/tools</filename> directory as it is, you end up
+with files owned by a user ID without a corresponding account. This is
+dangerous because a user account created later on could get this same user ID
+and would suddenly own the <filename class="directory">/tools</filename>
+directory and all the files therein, thus exposing these files to possible
+malicious manipulation.</para>
+
+<para>To avoid this issue, you could add the <emphasis>lfs</emphasis> user to
+your new LFS system later on when creating the <filename>/etc/passwd</filename>
+file, taking care to assign it the same user and group IDs as on your host
+system. Alternatively, you can (and the book assumes you do) assign the
+contents of the <filename class="directory">/tools</filename> directory to
+user <emphasis>root</emphasis> by running the following command:</para>
+
+<screen><userinput>chown -R 0:0 /tools</userinput></screen>
+
+<para>The command uses <quote>0:0</quote> instead of <quote>root:root</quote>,
+because <userinput>chown</userinput> is unable to resolve the name
+<quote>root</quote> until the password file has been created.</para>
+
+</sect1>
diff --git a/chapter06/chapter06.xml b/chapter06/chapter06.xml
index 953fb3233..0de12cb7a 100644
--- a/chapter06/chapter06.xml
+++ b/chapter06/chapter06.xml
@@ -1,569 +1,202 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+ <!ENTITY % general-entities SYSTEM "../general.ent">
+ %general-entities;
+]>
<chapter id="chapter-building-system" xreflabel="Chapter 6">
+<?dbhtml dir="chapter06"?>
<title>Installing basic system software</title>
-<?dbhtml filename="chapter06.html" dir="chapter06"?>
-
-
-<sect1 id="ch-system-introduction">
-<title>Introduction</title>
-<?dbhtml filename="introduction.html" dir="chapter06"?>
-
-<para>In this chapter we enter the building site, and start
-constructing our LFS system in earnest. That is, we chroot into
-our temporary mini Linux system, create some auxiliary things,
-and then start installing all the packages, one by one.</para>
-
-<para>The installation of all this software is pretty straightforward,
-and you will probably think it would be much shorter to give here
-the generic installation instructions and explain in full only the
-installation of those packages that require an alternate method.
-Although we agree with that, we nevertheless choose to give the
-full instructions for each and every package, simply to minimize
-the possibilities for mistakes.</para>
-
-<para>The key to learning what makes a Linux system work is to know
-what each package is used for and why the user (or the system) needs it.
-For this purpose for every installed package a summary of its content is
-given followed by concise descriptions of each program and library it
-installed.</para>
-
-<para>If you plan to use compiler optimizations in this chapter, take a look at
-the optimization hint at <ulink url="&hints-root;optimization.txt"/>. Compiler
-optimizations can make a program run slightly faster, but they may also cause
-compilation difficulties and even problems when running the program. If a
-package refuses to compile when using optimization, try to compile it without
-optimization and see if the problem goes away. Even if the package does compile
-when using optimization, there is the risk it may have been compiled incorrectly
-due to complex interactions between the code and build tools. In short, the
-small potential gains achieved in using compiler optimization are generally
-outweighed by the risk. First time builders of LFS are encouraged to build
-without custom optimizations. Your system will still be very fast and very
-stable at the same time.</para>
-
-<para>The order in which packages are installed in this chapter has
-to be strictly followed, to ensure that no program gets a path referring
-to <filename class="directory">/tools</filename> hard-wired into it.
-For the same reason, <emphasis>do not </emphasis> compile packages
-in parallel. Compiling in parallel may save you some time (especially on
-dual-CPU machines), but it could result in a program containing a
-hard-wired path to <filename class="directory">/tools</filename>,
-which will cause the program to stop working when that directory
-is removed.</para>
-
-<para>Before the installation instructions each installation page gives some
-information about the package: a concise description of what it contains, how
-long it will approximately take to build it, how much disk space it needs
-during this building process, the official download location of the package
-(in case you just want to update a few of them), and which other packages it
-needs in order to be built successfully. After the installation instructions
-follows a list of programs and libraries that the package installs, together
-with a series of short descriptions of these.</para>
-
-<para>If you wish to keep track of which package installs what files, you may
-want to use a package manager. For a general overview of package managers have
-a look at <ulink url="&blfs-root;view/cvs/introduction/pkgmgt.html"/>. And for
-a package management method specifically geared towards LFS see
-<ulink url="&hints-root;more_control_and_pkg_man.txt"/>.</para>
+<?dbhtml filename="chapter06.html"?>
-</sect1>
+<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="introduction.xml"/>
-<sect1 id="ch-system-proc">
-<title>Mounting the proc and devpts file systems</title>
-<?dbhtml filename="proc.html" dir="chapter06"?>
-<para>In order for certain programs to function properly, the
-<emphasis>proc</emphasis> and <emphasis>devpts</emphasis> file systems must be
-available within the chroot environment. The proc file system is the process
-information pseudo file system through which the kernel provides information
-about the status of the system. And the devpts file system is nowadays the most
-common way pseudo terminals (PTYs) are implemented. Since kernel version 2.4, a
-file system can be mounted as many times and in as many places as you like,
-thus it's not a problem that these file systems are already mounted on your
-host system, especially so because they are virtual file systems.</para>
+<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="proc.xml"/>
-<para>First become <emphasis>root</emphasis>, as only <emphasis>root</emphasis>
-can mount file systems in unusual places. Then check again that the LFS
-environment variable is set correctly by running <userinput>echo
-$LFS</userinput> and making sure it shows the path to your LFS partition's
-mount point, which is <filename class="directory">/mnt/lfs</filename> if you
-followed our example.</para>
-<para>Now make the mount points for these filesystems:</para>
+<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="chroot.xml"/>
-<screen><userinput>mkdir -p $LFS/{proc,dev/pts}</userinput></screen>
-<para>Mount the <emphasis>proc</emphasis> file system with:</para>
+<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="changingowner.xml"/>
-<screen><userinput>mount proc $LFS/proc -t proc</userinput></screen>
-<para>And mount the <emphasis>devpts</emphasis> file system with:</para>
+<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="creatingdirs.xml"/>
-<screen><userinput>mount devpts $LFS/dev/pts -t devpts</userinput></screen>
-<para>This last command might fail with an error like:</para>
+<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="createfiles.xml"/>
-<blockquote><screen>filesystem devpts not supported by kernel</screen></blockquote>
-<para>The most likely cause for this is that your host system's kernel was
-compiled without support for the devpts file system (you can check which file
-systems your kernel supports with <command>cat /proc/filesystems</command>,
-for example). A few PTYs are needed to be able to run the suites for Binutils
-and GCC later on. If your kernel does not support devpts, do not worry, there
-is another way to get them working inside the chroot environment. We'll cover
-this shortly in the <xref linkend="ch-system-MAKEDEV"/> section.</para>
+<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="pwdgroup.xml"/>
-<para>Remember that if for any reason you stop working on your LFS, and start
-again later, it's important to check that these file systems are mounted again
-before entering the chroot environment, otherwise problems could occur.</para>
-</sect1>
+<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="makedev.xml"/>
-<sect1 id="ch-system-chroot">
-<title>Entering the chroot environment</title>
-<?dbhtml filename="chroot.html" dir="chapter06"?>
+<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="kernel-headers.xml"/>
-<para>It is time to enter the chroot environment in order to begin building
-and installing your final LFS system. Still as <emphasis>root</emphasis> run
-the following command to enter the small world that is, at the moment,
-populated with only the temporary tools:</para>
-<screen><userinput>chroot $LFS /tools/bin/env -i \
-&nbsp;&nbsp;&nbsp;&nbsp;HOME=/root TERM=$TERM PS1='\u:\w\$ ' \
-&nbsp;&nbsp;&nbsp;&nbsp;PATH=/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin \
-&nbsp;&nbsp;&nbsp;&nbsp;/tools/bin/bash +h</userinput></screen>
-
-<para>The <emphasis>-i</emphasis> option passed to the <command>env</command>
-command will clear all variables of the chroot environment. After that, only
-the HOME, TERM, PS1 and PATH variables are set again. The HOME variable is set
-mainly to prevent several small warnings during the configure runs of
-Diffutils, Grep and Grub. The TERM variable is set to make programs such as
-<command>less</command> and <command>vim</command>, that make use of the
-Ncurses package, operate properly -- the TERM=$TERM construct sets the TERM
-variable inside chroot to the same value as outside chroot. The main prompt
-(PS1) is set to "username:working-dir# " (since the "\$" becomes "#" for root).
-If you need other variables present, such as CFLAGS, CXXFLAGS or LDFLAGS, this
-is a good place to set them.</para>
-
-<para>From this point on there's no need to use the LFS variable anymore,
-because everything you do will be restricted to the LFS file system -- since
-what the shell thinks is <filename class="directory">/</filename> is actually
-the value of <filename class="directory">$LFS</filename>, which was passed to
-the chroot command.</para>
-
-<para>Notice that <filename class="directory">/tools/bin</filename> comes
-last in the PATH. This means that a temporary tool will not be used any more
-as soon as its final version is installed. Well, at least when the shell
-doesn't remember the locations of executed binaries -- for this reason hashing
-is switched off by passing the <emphasis>+h</emphasis> option to
-<command>bash</command>.</para>
-
-<para>You have to make sure all the commands in the rest of this chapter and
-in the following chapters are run from within the chroot environment.
-If you ever leave this environment for any reason (rebooting for example),
-you must remember to first mount the proc and devpts file systems (discussed
-in the previous section) <emphasis>and</emphasis> enter chroot again before
-continuing with the installations.</para>
-
-<para>Note that the bash prompt will say "I have no name!" This is normal, as
-the <filename>/etc/passwd</filename> file has not been created yet.</para>
+<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="man-pages.xml"/>
-</sect1>
+<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="glibc.xml"/>
-<sect1 id="ch-system-changingowner">
-<title>Changing ownership</title>
-<?dbhtml filename="changingowner.html" dir="chapter06"?>
-
-<para>Right now the <filename class="directory">/tools</filename> directory
-is owned by the user <emphasis>lfs</emphasis>, a user that exists only on your
-host system. Although you will probably want to delete the
-<filename class="directory">/tools</filename> directory once you have
-finished your LFS system, you may want to keep it around, for example to
-build more LFS systems. But if you keep the
-<filename class="directory">/tools</filename> directory as it is, you end up
-with files owned by a user ID without a corresponding account. This is
-dangerous because a user account created later on could get this same user ID
-and would suddenly own the <filename class="directory">/tools</filename>
-directory and all the files therein, thus exposing these files to possible
-malicious manipulation.</para>
-
-<para>To avoid this issue, you could add the <emphasis>lfs</emphasis> user to
-your new LFS system later on when creating the <filename>/etc/passwd</filename>
-file, taking care to assign it the same user and group IDs as on your host
-system. Alternatively, you can (and the book assumes you do) assign the
-contents of the <filename class="directory">/tools</filename> directory to
-user <emphasis>root</emphasis> by running the following command:</para>
-
-<screen><userinput>chown -R 0:0 /tools</userinput></screen>
-
-<para>The command uses "0:0" instead of "root:root", because
-<userinput>chown</userinput> is unable to resolve the name "root" until the
-password file has been created.</para>
-</sect1>
-<sect1 id="ch-system-creatingdirs">
-<title>Creating directories</title>
-<?dbhtml filename="creatingdirs.html" dir="chapter06"?>
-
-<para>Let's now create some structure in our LFS file system. Let's create
-a directory tree. Issuing the following commands will create a more or less
-standard tree:</para>
-
-<screen><userinput>mkdir -p /{bin,boot,dev/{pts,shm},etc/opt,home,lib,mnt,proc}
-mkdir -p /{root,sbin,tmp,usr/local,var,opt}
-mkdir /usr/{bin,include,lib,sbin,share,src}
-ln -s share/{man,doc,info} /usr
-mkdir /usr/share/{doc,info,locale,man}
-mkdir /usr/share/{misc,terminfo,zoneinfo}
-mkdir /usr/share/man/man{1,2,3,4,5,6,7,8}
-mkdir /usr/local/{bin,etc,include,lib,sbin,share,src}
-ln -s share/{man,doc,info} /usr/local
-mkdir /usr/local/share/{doc,info,locale,man}
-mkdir /usr/local/share/{misc,terminfo,zoneinfo}
-mkdir /usr/local/share/man/man{1,2,3,4,5,6,7,8}
-mkdir /var/{lock,log,mail,run,spool}
-mkdir -p /var/{tmp,opt,cache,lib/misc,local}
-mkdir /opt/{bin,doc,include,info}
-mkdir -p /opt/{lib,man/man{1,2,3,4,5,6,7,8}}</userinput></screen>
-
-<para>Directories are, by default, created with permission mode 755, but this
-isn't desirable for all directories. We will make two changes: one to the home
-directory of <emphasis>root</emphasis>, and another to the directories for
-temporary files.</para>
-
-<screen><userinput>chmod 0750 /root
-chmod 1777 /tmp /var/tmp</userinput></screen>
-
-<para>The first mode change ensures that not just anybody can enter the
-<filename class="directory">/root</filename> directory -- the same
-as a normal user would do with his or her home directory.
-The second mode change makes sure that any user can write to the
-<filename class="directory">/tmp</filename> and
-<filename class="directory">/var/tmp</filename> directories, but
-cannot remove other users' files from them. The latter is prohibited
-by the so-called "sticky bit" -- the highest bit in the 1777 bit mask.</para>
-
-<sect2>
-<title>FHS compliance note</title>
-
-<para>We have based our directory tree on the FHS standard (available at
-<ulink url="http://www.pathname.com/fhs/"/>). Besides the above created
-tree this standard stipulates the existence of
-<filename class="directory">/usr/local/games</filename> and
-<filename class="directory">/usr/share/games</filename>, but we don't
-much like these for a base system. However, feel free to make your system
-FHS-compliant. As to the structure of the
-<filename class="directory">/usr/local/share</filename> subdirectory, the FHS
-isn't precise, so we created here the directories that we think are needed.</para>
-
-</sect2>
+<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="readjusting.xml"/>
-</sect1>
+<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="binutils.xml"/>
-<sect1 id="ch-system-createfiles">
-<title>Creating essential symlinks</title>
-<?dbhtml filename="createfiles.html" dir="chapter06"?>
-<para>Some programs hard-wire paths to programs which don't exist yet. In
-order to satisfy these programs, we create a number of symbolic links which
-will be replaced by real files throughout the course of this chapter when
-we're installing all the software.</para>
+<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="gcc.xml"/>
-<screen><userinput>ln -s /tools/bin/{bash,cat,pwd,stty} /bin
-ln -s /tools/bin/perl /usr/bin
-ln -s /tools/lib/libgcc_s.so.1 /usr/lib
-ln -s bash /bin/sh</userinput></screen>
-</sect1>
+<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="coreutils.xml"/>
-<sect1 id="ch-system-pwdgroup">
-<title>Creating the passwd, group and log files</title>
-<?dbhtml filename="pwdgroup.html" dir="chapter06"?>
-
-<para>In order for <emphasis>root</emphasis> to be able to login and for the
-name "root" to be recognized, there need to be relevant entries in the
-<filename>/etc/passwd</filename> and <filename>/etc/group</filename> files.</para>
-
-<para>Create the <filename>/etc/passwd</filename> file by running the following
-command:</para>
-
-<screen><userinput>cat &gt; /etc/passwd &lt;&lt; "EOF"</userinput>
-root:x:0:0:root:/root:/bin/bash
-<userinput>EOF</userinput></screen>
-
-<para>The actual password for <emphasis>root</emphasis> (the "x" here is just a
-placeholder) will be set later.</para>
-
-<para>Create the <filename>/etc/group</filename> file by running the following
-command:</para>
-
-<screen><userinput>cat &gt; /etc/group &lt;&lt; "EOF"</userinput>
-root:x:0:
-bin:x:1:
-sys:x:2:
-kmem:x:3:
-tty:x:4:
-tape:x:5:
-daemon:x:6:
-floppy:x:7:
-disk:x:8:
-lp:x:9:
-dialout:x:10:
-audio:x:11:
-<userinput>EOF</userinput></screen>
-
-<para>The created groups aren't part of any standard -- they are some of the
-groups that the <command>make_devices</command> script in the next section
-uses. The LSB (<ulink url="http://www.linuxbase.org/">Linux Standard
-Base</ulink>) recommends only that, beside the group "root" with a GID of 0, a
-group "bin" with a GID of 1 be present. All other group names and GIDs can
-be chosen freely by the system administrator, since well-written packages don't
-depend on GID numbers but use the group's name.</para>
-
-<para>To get rid of the "I have no name!" prompt, we will start a new shell.
-Since we installed a full Glibc in <xref linkend="chapter-temporary-tools"/>,
-and have just created the <filename>/etc/passwd</filename> and
-<filename>/etc/group</filename> files, user name and group name resolution
-will now work.</para>
-
-<screen><userinput>exec /tools/bin/bash +h</userinput></screen>
-
-<para>Note the use of the <emphasis>+h</emphasis> directive. This tells
-<command>bash</command> not to use its internal path hashing. Without this
-directive, <command>bash</command> would remember the paths to binaries it
-has executed. Since we want to use our newly compiled binaries as soon as
-they are installed, we turn off this function for the duration of this
-chapter.</para>
-
-<para>The <command>login</command>, <command>agetty</command> and
-<command>init</command> programs (and some others) use a number of log
-files to record information such as who was logged into the system and when.
-These programs, however, won't write to the log files if they don't already
-exist. Initialize the log files and give them their proper permissions:</para>
-
-<screen><userinput>touch /var/run/utmp /var/log/{btmp,lastlog,wtmp}
-chmod 644 /var/run/utmp /var/log/{btmp,lastlog,wtmp}</userinput></screen>
-
-<para>The <filename>/var/run/utmp</filename> file records the users that are
-currently logged in. The <filename>/var/log/wtmp</filename> file records all
-logins and logouts. The <filename>/var/log/lastlog</filename> file records for
-each user when he or she last logged in. The <filename>/var/log/btmp</filename>
-file records the bad login attempts.</para>
-</sect1>
+<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="zlib.xml"/>
-&c6-makedev;
-&c6-kernel-headers;
-&c6-manpages;
-&c6-glibc;
-
-
-<sect1 id="ch-system-readjusting">
-<title>Re-adjusting the toolchain</title>
-<?dbhtml filename="readjusting.html" dir="chapter06"?>
-
-<para>Now that the new and final C libraries have been installed, it's time to
-adjust our toolchain again. We'll adjust it so that it will link any newly
-compiled program against these new libraries. This is in fact the same thing we
-did in the "Adjusting" phase in the beginning of the previous chapter, even
-though it looks like the reverse: then we guided the chain from the host's
-<filename class="directory">/{,usr/}lib</filename> to the new
-<filename class="directory">/tools/lib</filename>, now we guide it from that
-same <filename class="directory">/tools/lib</filename>
-to the LFS's <filename class="directory">/{,usr/}lib</filename>.</para>
-
-<para>First we adjust the linker. For this we retained the
-source and build directories from the second pass over Binutils. Install the
-adjusted linker by running the following from within the
-<filename class="directory">binutils-build</filename> directory:</para>
-
-<screen><userinput>make -C ld INSTALL=/tools/bin/install install</userinput></screen>
-
-<note><para>If you somehow missed the earlier warning to retain the Binutils
-source and build directories from the second pass in
-<xref linkend="chapter-temporary-tools"/>, or otherwise accidentally deleted them or just
-don't have access to them, don't worry, all is not lost. Just ignore the above
-command. The result will be that the next package, Binutils, will link against
-the C libraries in <filename class="directory">/tools</filename> rather
-than in <filename class="directory">/{,usr/}lib</filename>. This is not ideal,
-however, our testing has shown that the resulting Binutils program binaries
-should be identical.</para></note>
-
-<para>From now on every compiled program will link <emphasis>only</emphasis>
-against the libraries in <filename>/usr/lib</filename> and
-<filename>/lib</filename>. The extra
-<emphasis>INSTALL=/tools/bin/install</emphasis> is needed because the Makefile
-created during the second pass still contains the reference to
-<filename>/usr/bin/install</filename>, which we obviously haven't installed yet.
-Some host distributions contain a <filename class="symlink">ginstall</filename>
-symbolic link which takes precedence in the Makefile and thus can cause a
-problem here. The above command takes care of this also.</para>
-
-<para>You must now remove the Binutils source and build directories. (This is
-important, as you should start the next section with a fresh untarring of the
-package.)</para>
-
-<para>The next thing to do is to amend our GCC specs file so that it points
-to the new dynamic linker. Just like earlier on, we use a sed to accomplish
-this:</para>
-
-<!-- Ampersands are needed to allow cut and paste -->
-
-<screen><userinput>SPECFILE=/tools/lib/gcc-lib/*/*/specs &amp;&amp;
-sed -e 's@ /tools/lib/ld-linux.so.2@ /lib/ld-linux.so.2@g' \
-&nbsp;&nbsp;&nbsp;&nbsp;$SPECFILE &gt; newspecfile &amp;&amp;
-mv -f newspecfile $SPECFILE &amp;&amp;
-unset SPECFILE</userinput></screen>
-
-<para>Again, cutting and pasting the above is recommended. And just like
-before, it is a good idea to visually inspect the specs file to verify the
-intended change was actually made.</para>
-
-<important><para>If you are working on a platform where the name of the dynamic
-linker is something other than <filename>ld-linux.so.2</filename>, you
-<emphasis>must</emphasis> substitute <filename>ld-linux.so.2</filename> with the
-name of your platform's dynamic linker in the above commands. Refer back to
-<xref linkend="tools-technicalnotes"/> if necessary.</para></important>
-
-<!-- HACK - Force some whitespace to appease tidy -->
-<literallayout></literallayout>
-
-<caution><para>It is imperative at this point to stop and ensure that the
-basic functions (compiling and linking) of the adjusted toolchain are working
-as expected. For this we are going to perform a simple sanity check:</para>
-
-<screen><userinput>echo 'main(){}' &gt; dummy.c
-cc dummy.c
-readelf -l a.out | grep ': /lib'</userinput></screen>
-
-<para>If everything is working correctly, there should be no errors, and the
-output of the last command will be (allowing for platform specific differences
-in dynamic linker name):</para>
-
-<blockquote><screen>[Requesting program interpreter: /lib/ld-linux.so.2]</screen></blockquote>
-
-<para>Note especially that <filename class="directory">/lib</filename> is now
-the prefix of our dynamic linker.</para>
-
-<para> If you did not receive the output
-as shown above, or received no output at all, then something is seriously wrong.
-You will need to investigate and retrace your steps to find out where the
-problem is and correct it. There is no point in continuing until this is done.
-Most likely something went wrong with the specs file amendment above.</para>
-
-<para>Once you are satisfied that all is well, clean up the test files:</para>
-
-<screen><userinput>rm dummy.c a.out</userinput></screen>
-</caution>
-
-<!-- HACK - Force some whitespace to appease tidy -->
-<literallayout></literallayout>
+<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="mktemp.xml"/>
-</sect1>
+<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="iana-etc.xml"/>
-&c6-binutils;
-&c6-gcc;
-
-&c6-coreutils;
-&c6-zlib;
-&c6-lfs-utils;
-&c6-findutils;
-&c6-gawk;
-&c6-ncurses;
-&c6-vim;
-&c6-m4;
-&c6-bison;
-&c6-less;
-&c6-groff;
-&c6-sed;
-&c6-flex;
-&c6-gettext;
-&c6-nettools;
-&c6-inetutils;
-&c6-perl;
-&c6-texinfo;
-&c6-autoconf;
-&c6-automake;
-&c6-bash;
-&c6-file;
-&c6-libtool;
-&c6-bzip2;
-&c6-diffutils;
-&c6-ed;
-&c6-kbd;
-&c6-e2fsprogs;
-&c6-grep;
-&c6-grub;
-&c6-gzip;
-&c6-man;
-&c6-make;
-&c6-modutils;
-&c6-patch;
-&c6-procinfo;
-&c6-procps;
-&c6-psmisc;
-&c6-shadow;
-&c6-sysklogd;
-&c6-sysvinit;
-&c6-tar;
-&c6-utillinux;
-&c6-gcc-2953;
-
-
-<sect1 id="ch-system-aboutdebug">
-<title>About debugging symbols</title>
-<?dbhtml filename="aboutdebug.html" dir="chapter06"?>
-
-<para>Most programs and libraries are, by default, compiled with debugging
-symbols included (with <command>gcc</command>'s <emphasis>-g</emphasis>
-option). This means that, when debugging a program or library that was compiled
-with debugging information included, the debugger can give you not only memory
-addresses but also the names of the routines and variables.</para>
-
-<para>The inclusion of these debugging symbols, however, enlarges a program or
-library significantly. To get an idea of the amount of space these symbols
-occupy, have a look at the following:</para>
-
-<itemizedlist>
-
-<listitem><para>a bash binary
-with debugging symbols: 1200 KB</para></listitem>
-
-<listitem><para>a bash binary
-without debugging symbols: 480 KB</para></listitem>
-
-<listitem><para>Glibc and GCC files (/lib and /usr/lib)
-with debugging symbols: 87 MB</para></listitem>
-
-<listitem><para>Glibc and GCC files
-without debugging symbols: 16 MB</para></listitem>
-
-</itemizedlist>
-
-<para>Sizes may vary somewhat, depending on which compiler was used and which C
-library, but when comparing programs with and without debugging symbols the
-difference will generally be a factor between 2 and 5.</para>
-
-<para>As most people will probably never use a debugger on their system
-software, a lot of disk space can be regained by removing these symbols. For
-your convenience, the next section shows how to strip all debugging symbols
-from all programs and libraries. Information on other ways of optimizing your
-system can be found in the hint at <ulink
-url="&hints-root;optimization.txt"/>.</para>
-</sect1>
+<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="findutils.xml"/>
+
+
+<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="gawk.xml"/>
+
+
+<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="ncurses.xml"/>
+
+
+<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="vim.xml"/>
+
+
+<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="m4.xml"/>
+
+
+<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="bison.xml"/>
+
+
+<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="less.xml"/>
+
+
+<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="groff.xml"/>
+
+
+<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="sed.xml"/>
+
+
+<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="flex.xml"/>
+
+
+<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="gettext.xml"/>
+
+
+<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="net-tools.xml"/>
+
+
+<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="inetutils.xml"/>
+
+
+<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="perl.xml"/>
+
+
+<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="texinfo.xml"/>
+
+
+<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="autoconf.xml"/>
+
+
+<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="automake.xml"/>
+
+
+<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="bash.xml"/>
+
+
+<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="file.xml"/>
+
+
+<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="libtool.xml"/>
+
+
+<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="bzip2.xml"/>
+
+
+<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="diffutils.xml"/>
+
+
+<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="ed.xml"/>
+
+
+<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="kbd.xml"/>
+
+
+<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="e2fsprogs.xml"/>
+
+
+<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="grep.xml"/>
+
+
+<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="grub.xml"/>
+
+
+<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="gzip.xml"/>
+
+
+<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="man.xml"/>
+
+
+<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="make.xml"/>
+
+
+<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="modutils.xml"/>
+
+
+<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="patch.xml"/>
+
+
+<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="procinfo.xml"/>
+
+
+<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="procps.xml"/>
+
+
+<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="psmisc.xml"/>
+
+
+<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="shadow.xml"/>
+
+
+<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="sysklogd.xml"/>
+
+
+<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="sysvinit.xml"/>
+
+
+<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="tar.xml"/>
+
+
+<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="util-linux.xml"/>
+
+
+<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="gcc-2953.xml"/>
+
+
+
+
+<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="aboutdebug.xml"/>
<sect1 id="ch-system-strippingagain">
<title>Stripping again</title>
-<?dbhtml filename="strippingagain.html" dir="chapter06"?>
+<?dbhtml filename="strippingagain.html"?>
<para>If you are not a programmer and don't plan to do any debugging on your
system software, you can shrink your system by about 200 MB by removing the
@@ -585,14 +218,14 @@ If you're not sure whether you entered chroot with the command given in
<para>Then reenter it with:</para>
<screen><userinput>chroot $LFS /tools/bin/env -i \
-&nbsp;&nbsp;&nbsp;&nbsp;HOME=/root TERM=$TERM PS1='\u:\w\$ ' \
-&nbsp;&nbsp;&nbsp;&nbsp;PATH=/bin:/usr/bin:/sbin:/usr/sbin \
-&nbsp;&nbsp;&nbsp;&nbsp;/tools/bin/bash</userinput></screen>
+ HOME=/root TERM=$TERM PS1='\u:\w\$ ' \
+ PATH=/bin:/usr/bin:/sbin:/usr/sbin \
+ /tools/bin/bash --login</userinput></screen>
<para>Now you can safely strip the binaries and libraries:</para>
<screen><userinput>/tools/bin/find /{,usr/}{bin,lib,sbin} -type f \
-&nbsp;&nbsp;&nbsp;-exec /tools/bin/strip --strip-debug '{}' ';'</userinput></screen>
+ -exec /tools/bin/strip --strip-debug '{}' ';'</userinput></screen>
<para>A large number of files will be reported as having their file format not
recognized. These warnings can be safely ignored, they just mean that those
@@ -607,42 +240,6 @@ destroyed.</para>
</sect1>
-<sect1 id="ch-system-revisedchroot">
-<title>Cleaning up</title>
-<?dbhtml filename="revisedchroot.html" dir="chapter06"?>
-
-<para>From now on, when you exit the chroot environment and wish to reenter
-it, you should use the following modified chroot command:</para>
-
-<screen><userinput>chroot $LFS /usr/bin/env -i \
-&nbsp;&nbsp;&nbsp;&nbsp;HOME=/root TERM=$TERM PS1='\u:\w\$ ' \
-&nbsp;&nbsp;&nbsp;&nbsp;PATH=/bin:/usr/bin:/sbin:/usr/sbin \
-&nbsp;&nbsp;&nbsp;&nbsp;/bin/bash</userinput></screen>
-
-<para>The reason for this is that, since the programs in <filename
-class="directory">/tools</filename> are no longer needed, you may want to
-delete the whole directory and regain the space. Before actually deleting the
-directory, exit from chroot and reenter it with the above command. Also, before
-removing <filename class="directory">/tools</filename>, you may want to tar it
-up and store it in a safe place, in case you want to build another LFS system
-soon.</para>
-
-<note><para>Removing <filename class="directory">/tools</filename> will also
-remove the temporary copies of Tcl, Expect and DejaGnu, which were used for
-running the toolchain tests. If you want to use these programs later on, you
-will need to recompile and re-install them. The installation instructions are
-the same as in <xref linkend="chapter-temporary-tools"/>, apart from changing
-the prefix from <emphasis>/tools</emphasis> to <emphasis>/usr</emphasis>. The
-BLFS book discusses a slightly different approach to installing Tcl, see <ulink
-url="&blfs-root;"/>.</para></note>
-
-<para>You may also want to move the packages and patches stored in <filename
-class="directory">/sources</filename> to a more usual location, such as
-<filename class="directory">/usr/src/packages</filename>, and remove the
-directory -- or simply delete the whole directory if you've burned its contents
-on a CD).</para>
-
-</sect1>
+<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="revisedchroot.xml"/>
</chapter>
-
diff --git a/chapter06/chroot.xml b/chapter06/chroot.xml
new file mode 100644
index 000000000..08d74ea53
--- /dev/null
+++ b/chapter06/chroot.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+ <!ENTITY % general-entities SYSTEM "../general.ent">
+ %general-entities;
+]>
+<sect1 id="ch-system-chroot">
+<title>Entering the chroot environment</title>
+<?dbhtml filename="chroot.html"?>
+
+<para>It is time to enter the chroot environment in order to begin building
+and installing your final LFS system. Still as <emphasis>root</emphasis> run
+the following command to enter the small world that is, at the moment,
+populated with only the temporary tools:</para>
+
+<screen><userinput>chroot "$LFS" /tools/bin/env -i \
+ HOME=/root TERM="$TERM" PS1='\u:\w\$ ' \
+ PATH=/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin \
+ /tools/bin/bash --login +h</userinput></screen>
+
+<para>The <emphasis>-i</emphasis> option given to the
+<command>env</command> command will clear all variables of the chroot
+environment. After that, only the HOME, TERM, PS1 and PATH variables are
+set again. The TERM=$TERM construct will set the TERM variable inside chroot
+to the same value as outside chroot; this variable is needed for programs
+like <command>vim</command> and <command>less</command> to operate
+properly. If you need other variables present, such as CFLAGS or CXXFLAGS,
+this is a good place to set them again.</para>
+
+<para>From this point on there's no need to use the LFS variable anymore,
+because everything you do will be restricted to the LFS file system -- since
+what the shell thinks is <filename class="directory">/</filename> is actually
+the value of <filename class="directory">$LFS</filename>, which was passed to
+the chroot command.</para>
+
+<para>Notice that <filename class="directory">/tools/bin</filename> comes
+last in the PATH. This means that a temporary tool will not be used any more
+as soon as its final version is installed. Well, at least when the shell
+doesn't remember the locations of executed binaries -- for this reason hashing
+is switched off by passing the <emphasis>+h</emphasis> option to
+<command>bash</command>.</para>
+
+<para>You have to make sure all the commands in the rest of this chapter and
+in the following chapters are run from within the chroot environment.
+If you ever leave this environment for any reason (rebooting for example),
+you must remember to first mount the proc and devpts file systems (discussed
+in the previous section) <emphasis>and</emphasis> enter chroot again before
+continuing with the installations.</para>
+
+<para>Note that the bash prompt will say <quote>I have no name!</quote> This is
+normal, as the <filename>/etc/passwd</filename> file has not been created yet.
+</para>
+
+</sect1>
diff --git a/chapter06/coreutils.xml b/chapter06/coreutils.xml
index 24e7733e9..8ac6c756e 100644
--- a/chapter06/coreutils.xml
+++ b/chapter06/coreutils.xml
@@ -1,51 +1,63 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+ <!ENTITY % general-entities SYSTEM "../general.ent">
+ %general-entities;
+]>
<sect1 id="ch-system-coreutils" xreflabel="Coreutils">
-<title>Installing Coreutils-&coreutils-version;</title>
-<?dbhtml filename="coreutils.html" dir="chapter06"?>
+<title>Coreutils-&coreutils-version;</title>
+<?dbhtml filename="coreutils.html"?>
+
+<indexterm zone="ch-system-coreutils"><primary sortas="a-Coreutils">Coreutils</primary></indexterm>
<para>The Coreutils package contains utilities for showing and setting the
basic system characteristics.</para>
-<screen>&buildtime; &coreutils-time;
-&diskspace; &coreutils-compsize;</screen>
+<screen>&buildtime; 0.9 SBU
+&diskspace; 69 MB</screen>
+
+<para>Coreutils installation depends on: Bash, Binutils, Coreutils, Diffutils, GCC,
+Gettext, Glibc, Grep, Make, Perl, Sed.</para>
-&aa-coreutils-down;
-&aa-coreutils-dep;
-<sect2><title>&nbsp;</title><para>&nbsp;</para></sect2>
<sect2>
<title>Installation of Coreutils</title>
-<para>Apply the same Posixver patch we used previously:</para>
-
-<screen><userinput>patch -Np1 -i ../&coreutils-posixver-patch;</userinput></screen>
-
<para>Normally the functionality of <command>uname</command> is somewhat
-broken, in that the <emphasis>-p</emphasis> switch always returns "unknown".
-The following patch fixes this behaviour for Intel architectures:</para>
+broken, in that the <emphasis>-p</emphasis> switch always returns
+<quote>unknown</quote>. The following patch fixes this behavior for Intel
+architectures:</para>
-<screen><userinput>patch -Np1 -i ../&coreutils-uname-patch;</userinput></screen>
+<screen><userinput>patch -Np1 -i ../coreutils-&coreutils-version;-uname-1.patch</userinput></screen>
<para>We do not want Coreutils to install its version of the
<command>hostname</command> program, because it is inferior to the version
provided by Net-tools. Prevent its installation by applying a patch:</para>
-<screen><userinput>patch -Np1 -i ../&coreutils-hostname-patch;</userinput></screen>
+<screen><userinput>patch -Np1 -i ../coreutils-&coreutils-version;-hostname-1.patch</userinput></screen>
<para>Now prepare Coreutils for compilation:</para>
-<screen><userinput>./configure --prefix=/usr</userinput></screen>
+<screen><userinput>DEFAULT_POSIX2_VERSION=199209 ./configure --prefix=/usr</userinput></screen>
<para>Compile the package:</para>
<screen><userinput>make</userinput></screen>
<para>The test suite of Coreutils makes several assumptions about the presence
-of files and users that aren't valid yet this early in the LFS build. We will
+of files and users that aren't valid this early in the LFS build. We will
therefore have to set up a few things before being able to run the tests. If
-you choose not to run these tests, skip down to "Install the package".</para>
+you choose not to run these tests, skip down to <quote>Install the
+package</quote>.</para>
-<para>First create a 'table of mounted filesystems' file with:</para>
+<para>To be able to run the full test suite, the <command>su</command> program
+needs to be installed. We didn't bother to install this little program in
+<xref linkend="chapter-temporary-tools"/> because it requires root privileges,
+so do it now:</para>
+
+<screen><userinput>make install-root</userinput></screen>
+
+<para>Create a 'table of mounted filesystems' file with:</para>
<screen><userinput>touch /etc/mtab</userinput></screen>
@@ -58,16 +70,12 @@ echo "dummy:x:1000:1000:::/bin/bash" &gt;&gt; /etc/passwd</userinput></screen>
<para>Now you're all set to run the test suite. First run the few tests that
are meant to be run as <emphasis>root</emphasis>:</para>
-<screen><userinput>make check-root</userinput></screen>
+<screen><userinput>export NON_ROOT_USERNAME=dummy; make check-root</userinput></screen>
<para>Then run the remainder of the tests as the <emphasis>dummy</emphasis>
user:</para>
-<screen><userinput>src/su dummy -c "make RUN_EXPENSIVE_TESTS=yes check"</userinput></screen>
-
-<para>The above command uses the newly compiled <command>src/su</command>
-program, since in <xref linkend="chapter-temporary-tools"/> we didn't bother to
-install it, because installing it requires root privileges.</para>
+<screen><userinput>su dummy -c "make RUN_EXPENSIVE_TESTS=yes check"</userinput></screen>
<para>When you're done testing, remove the dummy user and groups:</para>
@@ -98,8 +106,347 @@ ln -s ../../bin/install /usr/bin</userinput></screen>
</sect2>
-&aa-coreutils-shortdesc;
-&aa-coreutils-desc;
-</sect1>
+<sect2 id="contents-coreutils"><title>Contents of Coreutils</title>
+
+<para><emphasis>Installed programs</emphasis>: basename, cat, chgrp, chmod,
+chown, chroot, cksum, comm, cp, csplit, cut, date, dd, df, dir, dircolors,
+dirname, du, echo, env, expand, expr, factor, false, fmt, fold, groups, head,
+hostid, hostname, id, install, join, link, ln, logname, ls, md5sum,
+mkdir, mkfifo, mknod, mv, nice, nl, nohup, od, paste, pathchk, pinky, pr,
+printenv, printf, ptx, pwd, readlink, rm, rmdir, seq, sha1sum, shred, sleep,
+sort, split, stat, stty, su, sum, sync, tac, tail, tee, test, touch, tr, true,
+tsort, tty, uname, unexpand, uniq, unlink, uptime, users, vdir, wc, who,
+whoami and yes</para>
+
+</sect2>
+
+
+<sect2><title>Short descriptions</title>
+
+<indexterm zone="ch-system-coreutils basename"><primary sortas="b-basename">basename</primary></indexterm>
+<para id="basename"><command>basename</command> strips any path and a given suffix from
+the given file name.</para>
+
+<indexterm zone="ch-system-coreutils cat"><primary sortas="b-cat">cat</primary></indexterm>
+<para id="cat"><command>cat</command> concatenates files to standard output.</para>
+
+<indexterm zone="ch-system-coreutils chgrp"><primary sortas="b-chgrp">chgrp</primary></indexterm>
+<para id="chgrp"><command>chgrp</command> changes the group ownership of each given
+file to the given group. The group can be either given a a name or a numeric
+ID.</para>
+
+<indexterm zone="ch-system-coreutils chmod"><primary sortas="b-chmod">chmod</primary></indexterm>
+<para id="chmod"><command>chmod</command> changes the permissions of each given file
+to the given mode. The mode can be either a symbolic representation of the
+changes to make, or an octal number representing the new permissions.</para>
+
+<indexterm zone="ch-system-coreutils chown"><primary sortas="b-chown">chown</primary></indexterm>
+<para id="chown"><command>chown</command> changes the user and/or group ownership of
+each given file to the given user:group pair.</para>
+
+<indexterm zone="ch-system-coreutils chroot"><primary sortas="b-chroot">chroot</primary></indexterm>
+<para id="chroot"><command>chroot</command> runs a given command with the specified
+directory as the <filename>/</filename> directory. The given command can be an
+interactive shell. On most systems only <emphasis>root</emphasis> can do
+this.</para>
+
+<indexterm zone="ch-system-coreutils cksum"><primary sortas="b-cksum">cksum</primary></indexterm>
+<para id="cksum"><command>cksum</command> prints the CRC (Cyclic Redundancy Check) checksum and the byte
+counts of each specified file.</para>
+
+<indexterm zone="ch-system-coreutils comm"><primary sortas="b-comm">comm</primary></indexterm>
+<para id="comm"><command>comm</command> compares two sorted files, outputting in
+three columns the lines that are unique, and the lines that are common.</para>
+
+<indexterm zone="ch-system-coreutils cp"><primary sortas="b-cp">cp</primary></indexterm>
+<para id="cp"><command>cp</command> copies files.</para>
+
+<indexterm zone="ch-system-coreutils csplit"><primary sortas="b-csplit">csplit</primary></indexterm>
+<para id="csplit"><command>csplit</command> splits a given file into several new files,
+separating them according to given patterns or line numbers, and outputting
+the byte count of each new file.</para>
+
+<indexterm zone="ch-system-coreutils cut"><primary sortas="b-cut">cut</primary></indexterm>
+<para id="cut"><command>cut</command> prints parts of lines, selecting the parts
+according to given fields or positions.</para>
+
+<indexterm zone="ch-system-coreutils date"><primary sortas="b-date">date</primary></indexterm>
+<para id="date"><command>date</command> displays the current time in the given
+format, or sets the system date.</para>
+
+<indexterm zone="ch-system-coreutils dd"><primary sortas="b-dd">dd</primary></indexterm>
+<para id="dd"><command>dd</command> copies a file using the given block size and
+count, while optionally performing conversions on it.</para>
+
+<indexterm zone="ch-system-coreutils df"><primary sortas="b-df">df</primary></indexterm>
+<para id="df"><command>df</command> reports the amount of disk space available
+(and used) on all mounted file systems, or only on the file systems holding the
+given files.</para>
+
+<indexterm zone="ch-system-coreutils dir"><primary sortas="b-dir">dir</primary></indexterm>
+<para id="dir"><command>dir</command> is the same as ls.</para>
+
+<indexterm zone="ch-system-coreutils dircolors"><primary sortas="b-dircolors">dircolors</primary></indexterm>
+<para id="dircolors"><command>dircolors</command> outputs commands to set the LS_COLOR
+environment variable, to change the color scheme used by ls.</para>
+
+<indexterm zone="ch-system-coreutils dirname"><primary sortas="b-dirname">dirname</primary></indexterm>
+<para id="dirname"><command>dirname</command> strips the non-directory suffix from
+a given file name.</para>
+
+<indexterm zone="ch-system-coreutils du"><primary sortas="b-du">du</primary></indexterm>
+<para id="du"><command>du</command> reports the amount of disk space used by the
+current directory, or by each of the given directories including all their
+subdirectories, or by each of the given files.</para>
+
+<indexterm zone="ch-system-coreutils echo"><primary sortas="b-echo">echo</primary></indexterm>
+<para id="echo"><command>echo</command> displays the given strings.</para>
+
+<indexterm zone="ch-system-coreutils env"><primary sortas="b-env">env</primary></indexterm>
+<para id="env"><command>env</command> runs a command in a modified environment.</para>
+
+<indexterm zone="ch-system-coreutils expand"><primary sortas="b-expand">expand</primary></indexterm>
+<para id="expand"><command>expand</command> converts tabs to spaces.</para>
+
+<indexterm zone="ch-system-coreutils expr"><primary sortas="b-expr">expr</primary></indexterm>
+<para id="expr"><command>expr</command> evaluates expressions.</para>
+
+<indexterm zone="ch-system-coreutils factor"><primary sortas="b-factor">factor</primary></indexterm>
+<para id="factor"><command>factor</command> prints the prime factors of all specified
+integer numbers.</para>
+
+<indexterm zone="ch-system-coreutils false"><primary sortas="b-false">false</primary></indexterm>
+<para id="false"><command>false</command> does nothing, unsuccessfully. It always
+exits with a status code indicating failure.</para>
+
+<indexterm zone="ch-system-coreutils mt"><primary sortas="b-mt">mt</primary></indexterm>
+<para id="mt"><command>fmt</command> reformats the paragraphs in the given files.</para>
+
+<indexterm zone="ch-system-coreutils fold"><primary sortas="b-fold">fold</primary></indexterm>
+<para id="fold"><command>fold</command> wraps the lines in the given files.</para>
+
+<indexterm zone="ch-system-coreutils groups-coreutils"><primary sortas="b-groups-coreutils">groups</primary></indexterm>
+<para id="groups-coreutils"><command>groups</command> reports a user's group memberships.</para>
+
+<indexterm zone="ch-system-coreutils head"><primary sortas="b-head">head</primary></indexterm>
+<para id="head"><command>head</command> prints the first ten lines (or the given
+number of lines) of each given file.</para>
+
+<indexterm zone="ch-system-coreutils hostid"><primary sortas="b-hostid">hostid</primary></indexterm>
+<para id="hostid"><command>hostid</command> reports the numeric identifier
+(in hexadecimal) of the host.</para>
+
+<indexterm zone="ch-system-coreutils hostname-coreutils"><primary sortas="b-hostname-coreutils">hostname</primary></indexterm>
+<para id="hostname-coreutils"><command>hostname</command> reports or sets the name of the
+host.</para>
+
+<indexterm zone="ch-system-coreutils id"><primary sortas="b-id">id</primary></indexterm>
+<para id="id"><command>id</command> reports the effective user ID, group ID, and
+group memberships of the current user, or of a given user.</para>
+
+<indexterm zone="ch-system-coreutils install"><primary sortas="b-install">install</primary></indexterm>
+<para id="install"><command>install</command> copies files while setting their
+permission modes and, if possible, their owner and group.</para>
+
+<indexterm zone="ch-system-coreutils join"><primary sortas="b-join">join</primary></indexterm>
+<para id="join"><command>join</command> joins from two files the lines that have
+identical join fields.</para>
+
+<indexterm zone="ch-system-coreutils link"><primary sortas="b-link">link</primary></indexterm>
+<para id="link"><command>link</command> creates a hard link with the given name
+to the given file.</para>
+
+<indexterm zone="ch-system-coreutils ln"><primary sortas="b-ln">ln</primary></indexterm>
+<para id="ln"><command>ln</command> makes hard links or soft links between files.</para>
+
+<indexterm zone="ch-system-coreutils logname"><primary sortas="b-logname">logname</primary></indexterm>
+<para id="logname"><command>logname</command> reports the current user's login name.</para>
+
+<indexterm zone="ch-system-coreutils ls"><primary sortas="b-ls">ls</primary></indexterm>
+<para id="ls"><command>ls</command> lists the contents of each given directory.
+By default it orders the files and subdirectories alphabetically.</para>
+
+<indexterm zone="ch-system-coreutils md5sum"><primary sortas="b-md5sum">md5sum</primary></indexterm>
+<para id="md5sum"><command>md5sum</command> reports or checks MD5 (Message Digest 5) checksums.</para>
+
+<indexterm zone="ch-system-coreutils mkdir"><primary sortas="b-mkdir">mkdir</primary></indexterm>
+<para id="mkdir"><command>mkdir</command> creates directories with the given names.</para>
+
+<indexterm zone="ch-system-coreutils mkfifo"><primary sortas="b-mkfifo">mkfifo</primary></indexterm>
+<para id="mkfifo"><command>mkfifo</command> creates FIFOs (First-In, First-Out, a "named pipe" in UNIX parlance) with the given names.</para>
+<indexterm zone="ch-system-coreutils mknod"><primary sortas="b-mknod">mknod</primary></indexterm>
+<para id="mknod"><command>mknod</command> creates device nodes with the given names.
+A device node is a character special file, or a block special file, or a FIFO.</para>
+
+<indexterm zone="ch-system-coreutils mv"><primary sortas="b-mv">mv</primary></indexterm>
+<para id="mv"><command>mv</command> moves or renames files or directories.</para>
+
+<indexterm zone="ch-system-coreutils nice"><primary sortas="b-nice">nice</primary></indexterm>
+<para id="nice"><command>nice</command> runs a program with modified scheduling priority.</para>
+
+<indexterm zone="ch-system-coreutils nl"><primary sortas="b-nl">nl</primary></indexterm>
+<para id="nl"><command>nl</command> numbers the lines from the given files.</para>
+
+<indexterm zone="ch-system-coreutils nohup"><primary sortas="b-nohup">nohup</primary></indexterm>
+<para id="nohup"><command>nohup</command> runs a command immune to hangups, with
+output redirected to a log file.</para>
+
+<indexterm zone="ch-system-coreutils od"><primary sortas="b-od">od</primary></indexterm>
+<para id="od"><command>od</command> dumps files in octal and other formats.</para>
+
+<indexterm zone="ch-system-coreutils paste"><primary sortas="b-paste">paste</primary></indexterm>
+<para id="paste"><command>paste</command> merges the given files, joining
+sequentially corresponding lines side by side, separated by tab characters..</para>
+
+<indexterm zone="ch-system-coreutils pathchk"><primary sortas="b-pathchk">pathchk</primary></indexterm>
+<para id="pathchk"><command>pathchk</command> checks whether file names are valid
+or portable.</para>
+
+<indexterm zone="ch-system-coreutils pinky"><primary sortas="b-pinky">pinky</primary></indexterm>
+<para id="pinky"><command>pinky</command> is a lightweight finger. It reports
+some information about the given users.</para>
+
+<indexterm zone="ch-system-coreutils pr"><primary sortas="b-pr">pr</primary></indexterm>
+<para id="pr"><command>pr</command> paginates and columnates files for printing.</para>
+
+<indexterm zone="ch-system-coreutils printenv"><primary sortas="b-printenv">printenv</primary></indexterm>
+<para id="printenv"><command>printenv</command> prints the environment.</para>
+
+<indexterm zone="ch-system-coreutils printf"><primary sortas="b-printf">printf</primary></indexterm>
+<para id="printf"><command>printf</command> prints the given arguments according to the
+given format -- much like the C printf function.</para>
+
+<indexterm zone="ch-system-coreutils ptx"><primary sortas="b-ptx">ptx</primary></indexterm>
+<para id="ptx"><command>ptx</command> produces from the contents of the given files
+a permuted index, with each keyword in its context.</para>
+
+<indexterm zone="ch-system-coreutils pwd"><primary sortas="b-pwd">pwd</primary></indexterm>
+<para id="pwd"><command>pwd</command> reports the name of the current directory.</para>
+
+<indexterm zone="ch-system-coreutils readlink"><primary sortas="b-readlink">readlink</primary></indexterm>
+<para id="readlink"><command>readlink</command> reports the value of the given symbolic
+link.</para>
+
+<indexterm zone="ch-system-coreutils rm"><primary sortas="b-rm">rm</primary></indexterm>
+<para id="rm"><command>rm</command> removes files or directories.</para>
+
+<indexterm zone="ch-system-coreutils rmdir"><primary sortas="b-rmdir">rmdir</primary></indexterm>
+<para id="rmdir"><command>rmdir</command> removes directories, if they are empty.</para>
+
+<indexterm zone="ch-system-coreutils seq"><primary sortas="b-seq">seq</primary></indexterm>
+<para id="seq"><command>seq</command> prints a sequence of numbers, within a given
+range and with a given increment.</para>
+
+<indexterm zone="ch-system-coreutils sha1sum"><primary sortas="b-sha1sum">sha1sum</primary></indexterm>
+<para id="sha1sum"><command>sha1sum</command> prints or checks 160-bit SHA1
+checksums.</para>
+
+<indexterm zone="ch-system-coreutils shred"><primary sortas="b-shred">shred</primary></indexterm>
+<para id="shred"><command>shred</command> overwrites the given files repeatedly with
+strange patterns, to make it real hard to recover the data.</para>
+
+<indexterm zone="ch-system-coreutils sleep"><primary sortas="b-sleep">sleep</primary></indexterm>
+<para id="sleep"><command>sleep</command> pauses for the given amount of time.</para>
+
+<indexterm zone="ch-system-coreutils sort"><primary sortas="b-sort">sort</primary></indexterm>
+<para id="sort"><command>sort</command> sorts the lines from the given files.</para>
+
+<indexterm zone="ch-system-coreutils split"><primary sortas="b-split">split</primary></indexterm>
+<para id="split"><command>split</command> splits the given file into pieces, by size
+or by numbspliter of lines.</para>
+
+<indexterm zone="ch-system-coreutils stty"><primary sortas="b-stty">stty</primary></indexterm>
+<para id="stty"><command>stty</command> sets or reports terminal line settings.</para>
+
+<indexterm zone="ch-system-coreutils su"><primary sortas="b-su">su</primary></indexterm>
+<para id="su"><command>su</command> runs a shell with substitute user and group IDs.</para>
+
+<indexterm zone="ch-system-coreutils sum"><primary sortas="b-sum">sum</primary></indexterm>
+<para id="sum"><command>sum</command> prints checksum and block counts for each
+given file.</para>
+
+<indexterm zone="ch-system-coreutils sync"><primary sortas="b-sync">sync</primary></indexterm>
+<para id="sync"><command>sync</command> flushes file system buffers. It forces
+changed blocks to disk and updates the super block.</para>
+
+<indexterm zone="ch-system-coreutils tac"><primary sortas="b-tac">tac</primary></indexterm>
+<para id="tac"><command>tac</command> concatenates the given files in reverse.</para>
+
+<indexterm zone="ch-system-coreutils tail"><primary sortas="b-tail">tail</primary></indexterm>
+<para id="tail"><command>tail</command> prints the last ten lines (or the given
+number of lines) of each given file.</para>
+
+<indexterm zone="ch-system-coreutils tee"><primary sortas="b-tee">tee</primary></indexterm>
+<para id="tee"><command>tee</command> reads from standard input while writing both
+to standard output and to the given files.</para>
+
+<indexterm zone="ch-system-coreutils test"><primary sortas="b-test">test</primary></indexterm>
+<para id="test"><command>test</command> compares values and checks file types.</para>
+
+<indexterm zone="ch-system-coreutils touch"><primary sortas="b-touch">touch</primary></indexterm>
+<para id="touch"><command>touch</command> changes file timestamps, setting the access
+and modification times of the given files to the current time. Files that do
+not exist are created with zero length.</para>
+
+<indexterm zone="ch-system-coreutils tr"><primary sortas="b-tr">tr</primary></indexterm>
+<para id="tr"><command>tr</command> translates, squeezes, and deletes the given
+characters from standard input.</para>
+
+<indexterm zone="ch-system-coreutils true"><primary sortas="b-true">true</primary></indexterm>
+<para id="true"><command>true</command> does nothing, successfully. It always exits
+with a status code indicating success.</para>
+
+<indexterm zone="ch-system-coreutils tsort"><primary sortas="b-tsort">tsort</primary></indexterm>
+<para id="tsort"><command>tsort</command> performs a topological sort. It writes a
+totally ordered list according to the partial ordering in a given file.</para>
+
+<indexterm zone="ch-system-coreutils tty"><primary sortas="b-tty">tty</primary></indexterm>
+<para id="tty"><command>tty</command> reports the file name of the terminal
+connected to standard input.</para>
+
+<indexterm zone="ch-system-coreutils uname"><primary sortas="b-uname">uname</primary></indexterm>
+<para id="uname"><command>uname</command> reports system information.</para>
+
+<indexterm zone="ch-system-coreutils unexpand"><primary sortas="b-unexpand">unexpand</primary></indexterm>
+<para id="unexpand"><command>unexpand</command> converts spaces to tabs.</para>
+
+<indexterm zone="ch-system-coreutils uniq"><primary sortas="b-uniq">uniq</primary></indexterm>
+<para id="uniq"><command>uniq</command> discards all but one of successive
+identical lines.</para>
+
+<indexterm zone="ch-system-coreutils unlink"><primary sortas="b-unlink">unlink</primary></indexterm>
+<para id="unlink"><command>unlink</command> removes the given file.</para>
+
+<indexterm zone="ch-system-coreutils uptime-coreutils"><primary sortas="b-uptime-coreutils">uptime</primary></indexterm>
+<para id="uptime-coreutils"><command>uptime</command> reports how long the system has been
+running, how many users are logged on, and the system load averages.</para>
+
+<indexterm zone="ch-system-coreutils users"><primary sortas="b-users">users</primary></indexterm>
+<para id="users"><command>users</command> reports the names of the users currently
+logged on.</para>
+
+<indexterm zone="ch-system-coreutils vdir"><primary sortas="b-vdir">vdir</primary></indexterm>
+<para id="vdir"><command>vdir</command> is the same as ls -l.</para>
+
+<indexterm zone="ch-system-coreutils wc"><primary sortas="b-wc">wc</primary></indexterm>
+<para id="wc"><command>wc</command> reports the number of lines, words, and bytes
+for each given file, and a total line when more than one file is given.</para>
+
+<indexterm zone="ch-system-coreutils who"><primary sortas="b-who">who</primary></indexterm>
+<para id="who"><command>who</command> reports who is logged on.</para>
+
+<indexterm zone="ch-system-coreutils whoami"><primary sortas="b-whoami">whoami</primary></indexterm>
+<para id="whoami"><command>whoami</command> reports the user name associated with the
+current effective user ID.</para>
+
+<indexterm zone="ch-system-coreutils yes"><primary sortas="b-yes">yes</primary></indexterm>
+<para id="yes"><command>yes</command> outputs 'y' or a given string repeatedly,
+until killed.</para>
+
+</sect2>
+
+
+
+</sect1>
diff --git a/chapter06/createfiles.xml b/chapter06/createfiles.xml
new file mode 100644
index 000000000..a67c55309
--- /dev/null
+++ b/chapter06/createfiles.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+ <!ENTITY % general-entities SYSTEM "../general.ent">
+ %general-entities;
+]>
+<sect1 id="ch-system-createfiles">
+<title>Creating essential symlinks</title>
+<?dbhtml filename="createfiles.html"?>
+
+<para>Some programs hard-wire paths to programs which don't exist yet. In
+order to satisfy these programs, we create a number of symbolic links which
+will be replaced by real files throughout the course of this chapter when
+we're installing all the software.</para>
+
+<screen><userinput>ln -s /tools/bin/{bash,cat,pwd,stty} /bin
+ln -s /tools/bin/perl /usr/bin
+ln -s /tools/lib/libgcc_s.so.1 /usr/lib
+ln -s bash /bin/sh</userinput></screen>
+
+</sect1>
diff --git a/chapter06/creatingdirs.xml b/chapter06/creatingdirs.xml
new file mode 100644
index 000000000..4faf42e66
--- /dev/null
+++ b/chapter06/creatingdirs.xml
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+ <!ENTITY % general-entities SYSTEM "../general.ent">
+ %general-entities;
+]>
+<sect1 id="ch-system-creatingdirs">
+<title>Creating directories</title>
+<?dbhtml filename="creatingdirs.html"?>
+
+<para>Let's now create some structure in our LFS file system. Let's create
+a directory tree. Issuing the following commands will create a more or less
+standard tree:</para>
+
+<screen><userinput>mkdir -p /{bin,boot,dev/{pts,shm},etc/opt,home,lib,mnt,proc}
+mkdir -p /{root,sbin,srv,tmp,usr/local,var,opt}
+mkdir -p /media/{floppy,cdrom}
+mkdir /usr/{bin,include,lib,sbin,share,src}
+ln -s share/{man,doc,info} /usr
+mkdir /usr/share/{doc,info,locale,man}
+mkdir /usr/share/{misc,terminfo,zoneinfo}
+mkdir /usr/share/man/man{1,2,3,4,5,6,7,8}
+mkdir /usr/local/{bin,etc,include,lib,sbin,share,src}
+ln -s share/{man,doc,info} /usr/local
+mkdir /usr/local/share/{doc,info,locale,man}
+mkdir /usr/local/share/{misc,terminfo,zoneinfo}
+mkdir /usr/local/share/man/man{1,2,3,4,5,6,7,8}
+mkdir /var/{lock,log,mail,run,spool}
+mkdir -p /var/{tmp,opt,cache,lib/misc,local}
+mkdir /opt/{bin,doc,include,info}
+mkdir -p /opt/{lib,man/man{1,2,3,4,5,6,7,8}}</userinput></screen>
+
+<para>Directories are, by default, created with permission mode 755, but this
+isn't desirable for all directories. We will make two changes: one to the home
+directory of <emphasis>root</emphasis>, and another to the directories for
+temporary files.</para>
+
+<screen><userinput>chmod 0750 /root
+chmod 1777 /tmp /var/tmp</userinput></screen>
+
+<para>The first mode change ensures that not just anybody can enter the
+<filename class="directory">/root</filename> directory -- the same
+as a normal user would do with his or her home directory.
+The second mode change makes sure that any user can write to the
+<filename class="directory">/tmp</filename> and
+<filename class="directory">/var/tmp</filename> directories, but
+cannot remove other users' files from them. The latter is prohibited
+by the so-called <quote>sticky bit</quote> -- the highest bit in the 1777 bit
+mask.</para>
+
+<sect2>
+<title>FHS compliance note</title>
+
+<para>We have based our directory tree on the FHS standard (available at
+<ulink url="http://www.pathname.com/fhs/"/>). Besides the above created
+tree this standard stipulates the existence of
+<filename class="directory">/usr/local/games</filename> and
+<filename class="directory">/usr/share/games</filename>, but we don't
+much like these for a base system. However, feel free to make your system
+FHS-compliant. As to the structure of the
+<filename class="directory">/usr/local/share</filename> subdirectory, the FHS
+isn't precise, so we created here the directories that we think are needed.</para>
+
+</sect2>
+
+</sect1>
diff --git a/chapter06/diffutils.xml b/chapter06/diffutils.xml
index 203244033..845b83818 100644
--- a/chapter06/diffutils.xml
+++ b/chapter06/diffutils.xml
@@ -1,17 +1,24 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+ <!ENTITY % general-entities SYSTEM "../general.ent">
+ %general-entities;
+]>
<sect1 id="ch-system-diffutils" xreflabel="Diffutils">
-<title>Installing Diffutils-&diffutils-version;</title>
-<?dbhtml filename="diffutils.html" dir="chapter06"?>
+<title>Diffutils-&diffutils-version;</title>
+<?dbhtml filename="diffutils.html"?>
+
+<indexterm zone="ch-system-diffutils"><primary sortas="a-Diffutils">Diffutils</primary></indexterm>
<para>The Diffutils package contains programs that show the differences
between files or directories.</para>
-<screen>&buildtime; &diffutils-time;
-&diskspace; &diffutils-compsize;</screen>
+<screen>&buildtime; 0.1 SBU
+&diskspace; 7.5 MB</screen>
+
+<para>Diffutils installation depends on: Bash, Binutils, Coreutils, Diffutils, GCC,
+Gettext, Glibc, Grep, Make, Sed.</para>
-&aa-diffutils-down;
-&aa-diffutils-dep;
-<sect2><title>&nbsp;</title><para>&nbsp;</para></sect2>
<sect2>
<title>Installation of Diffutils</title>
@@ -24,14 +31,39 @@ between files or directories.</para>
<screen><userinput>make</userinput></screen>
-<para>And install it:</para>
+<para>Install it:</para>
<screen><userinput>make install</userinput></screen>
</sect2>
-&aa-diffutils-shortdesc;
-&aa-diffutils-desc;
-</sect1>
+<sect2 id="contents-diffutils"><title>Contents of Diffutils</title>
+
+<para><emphasis>Installed programs</emphasis>: cmp, diff, diff3 and sdiff</para>
+
+</sect2>
+
+
+<sect2><title>Short descriptions</title>
+
+<indexterm zone="ch-system-diffutils cmp"><primary sortas="b-cmp">cmp</primary></indexterm>
+<para id="cmp"><command>cmp</command> compares two files and reports whether or
+in which bytes they differ.</para>
+<indexterm zone="ch-system-diffutils diff"><primary sortas="b-diff">diff</primary></indexterm>
+<para id="diff"><command>diff</command> compares two files or directories and reports
+which lines in the files differ.</para>
+
+<indexterm zone="ch-system-diffutils diff3"><primary sortas="b-diff3">diff3</primary></indexterm>
+<para id="diff3"><command>diff3</command> compares three files line by line.</para>
+
+<indexterm zone="ch-system-diffutils sdiff"><primary sortas="b-sdiff">sdiff</primary></indexterm>
+<para id="sdiff"><command>sdiff</command> merges two files and interactively outputs
+the results.</para>
+
+</sect2>
+
+
+
+</sect1>
diff --git a/chapter06/e2fsprogs.xml b/chapter06/e2fsprogs.xml
index 89badb958..4ca8f4b50 100644
--- a/chapter06/e2fsprogs.xml
+++ b/chapter06/e2fsprogs.xml
@@ -1,17 +1,24 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+ <!ENTITY % general-entities SYSTEM "../general.ent">
+ %general-entities;
+]>
<sect1 id="ch-system-e2fsprogs" xreflabel="E2fsprogs">
-<title>Installing E2fsprogs-&e2fsprogs-version;</title>
-<?dbhtml filename="e2fsprogs.html" dir="chapter06"?>
+<title>E2fsprogs-&e2fsprogs-version;</title>
+<?dbhtml filename="e2fsprogs.html"?>
+
+<indexterm zone="ch-system-e2fsprogs"><primary sortas="a-E2fsprogs">E2fsprogs</primary></indexterm>
<para>The E2fsprogs package contains the utilities for handling the ext2
file system. It also supports the ext3 journaling file system.</para>
-<screen>&buildtime; &e2fsprogs-time;
-&diskspace; &e2fsprogs-compsize;</screen>
+<screen>&buildtime; 0.6 SBU
+&diskspace; 48.4 MB</screen>
+
+<para>E2fsprogs installation depends on: Bash, Binutils, Coreutils,
+Diffutils, Gawk, GCC, Gettext, Glibc, Grep, Make, Sed, Texinfo.</para>
-&aa-e2fsprogs-down;
-&aa-e2fsprogs-dep;
-<sect2><title>&nbsp;</title><para>&nbsp;</para></sect2>
<sect2>
<title>Installation of E2fsprogs</title>
@@ -24,8 +31,8 @@ cd ../e2fsprogs-build</userinput></screen>
<para>Prepare E2fsprogs for compilation:</para>
-<screen><userinput>../&e2fsprogs-dir;/configure --prefix=/usr --with-root-prefix="" \
-&nbsp;&nbsp;&nbsp;&nbsp;--enable-elf-shlibs</userinput></screen>
+<screen><userinput>../e2fsprogs-&e2fsprogs-version;/configure --prefix=/usr --with-root-prefix="" \
+ --enable-elf-shlibs</userinput></screen>
<para>The meaning of the configure options:</para>
@@ -41,15 +48,14 @@ to E2fsprogs's configure, the programs are placed in the
want.</para></listitem>
<listitem><para><userinput>--enable-elf-shlibs</userinput>: This creates
-the shared libraries which some programs in this package make use
-of.</para></listitem>
+the shared libraries which some programs in this package use.</para></listitem>
</itemizedlist>
<para>Compile the package:</para>
<screen><userinput>make</userinput></screen>
-<para>If you wish to have the results tested, first make sure an mtab file
+<para>If you to test the results, first make sure an mtab file
exists with <userinput>touch /etc/mtab</userinput> to prevent some sixty tests
from failing, and (if it doesn't already exist) fake the presence of an old
pager with <userinput>ln -s /tools/bin/cat /bin/more</userinput> to prevent one
@@ -59,15 +65,133 @@ test from failing, then issue: <userinput>make check</userinput>.</para>
<screen><userinput>make install</userinput></screen>
-<para>And install also the shared libraries:</para>
+<para>Also install also the shared libraries:</para>
<screen><userinput>make install-libs</userinput></screen>
</sect2>
-&aa-e2fsprogs-shortdesc;
-&aa-e2fsprogs-desc;
-</sect1>
+<sect2 id="contents-e2fsprogs"><title>Contents of E2fsprogs</title>
+
+<para><emphasis>Installed programs</emphasis>: badblocks, blkid, chattr,
+compile_et, debugfs, dumpe2fs, e2fsck, e2image, e2label, findfs, fsck,
+fsck.ext2, fsck.ext3, logsave, lsattr, mk_cmds, mke2fs, mkfs.ext2, mkfs.ext3,
+mklost+found, resize2fs, tune2fs and uuidgen.</para>
+
+<para><emphasis>Installed libraries</emphasis>: libblkid.[a,so],
+libcom_err.[a,so], libe2p.[a,so], libext2fs.[a,so], libss.[a,so] and
+libuuid.[a,so]</para>
+
+</sect2>
+
+
+<sect2><title>Short descriptions</title>
+
+<indexterm zone="ch-system-e2fsprogs badblocks"><primary sortas="b-badblocks">badblocks</primary></indexterm>
+<para id="badblocks"><command>badblocks</command> searches a device (usually a disk
+partition) for bad blocks.</para>
+
+<indexterm zone="ch-system-e2fsprogs blkid"><primary sortas="b-blkid">blkid</primary></indexterm>
+<para id="blkid"><command>blkid</command> is a command line utility to locate and
+print block device attributes.</para>
+
+<indexterm zone="ch-system-e2fsprogs chattr"><primary sortas="b-chattr">chattr</primary></indexterm>
+<para id="chattr"><command>chattr</command> changes the attributes of files on a
+second extended (ext2) file system, and also ext3 file systems, the journaling version of ext2 file systems.</para>
+
+<indexterm zone="ch-system-e2fsprogs compile_et"><primary sortas="b-compile_et">compile_et</primary></indexterm>
+<para id="compile_et"><command>compile_et</command> is an error table compiler. It
+converts a table of error-code names and messages into a C source file
+suitable for use with the com_err library.</para>
+
+<indexterm zone="ch-system-e2fsprogs debugfs"><primary sortas="b-debugfs">debugfs</primary></indexterm>
+<para id="debugfs"><command>debugfs</command> is a file system debugger. It can be
+used to examine and change the state of an ext2 file system.</para>
+
+<indexterm zone="ch-system-e2fsprogs dumpe2fs"><primary sortas="b-dumpe2fs">dumpe2fs</primary></indexterm>
+<para id="dumpe2fs"><command>dumpe2fs</command> prints the super block and blocks group
+information for the file system present on a given device.</para>
+
+<indexterm zone="ch-system-e2fsprogs e2fsck"><primary sortas="b-e2fsck">e2fsck</primary></indexterm>
+<para id="e2fsck"><command>e2fsck</command> is used to check, and optionally repair,
+second extended (ext2) file systems, and also ext3 file systems.</para>
+
+<indexterm zone="ch-system-e2fsprogs e2image"><primary sortas="b-e2image">e2image</primary></indexterm>
+<para id="e2image"><command>e2image</command> is used to save critical ext2 file system
+data to a file.</para>
+
+<indexterm zone="ch-system-e2fsprogs e2label"><primary sortas="b-e2label">e2label</primary></indexterm>
+<para id="e2label"><command>e2label</command> will display or change the file system
+label on the ext2 file system present on a given device.</para>
+
+<indexterm zone="ch-system-e2fsprogs findfs"><primary sortas="b-findfs">findfs</primary></indexterm>
+<para id="findfs"><command>findfs</command> finds a file system by label or UUID (Universally Unique Identifier).</para>
+
+<indexterm zone="ch-system-e2fsprogs fsck"><primary sortas="b-fsck">fsck</primary></indexterm>
+<para id="fsck"><command>fsck</command> is used to check, and optionally repair,
+file systems. By default it checks the file systems listed in
+<filename>/etc/fstab</filename></para>
+<indexterm zone="ch-system-e2fsprogs logsave"><primary sortas="b-logsave">logsave</primary></indexterm>
+<para id="logsave"><command>logsave</command> saves the output of a command in a log file.</para>
+
+<indexterm zone="ch-system-e2fsprogs lsattr"><primary sortas="b-lsattr">lsattr</primary></indexterm>
+<para id="lsattr"><command>lsattr</command> lists the attributes of files on a second
+extended file system.</para>
+
+<indexterm zone="ch-system-e2fsprogs mk_cmds"><primary sortas="b-mk_cmds">mk_cmds</primary></indexterm>
+<para id="mk_cmds"><command>mk_cmds</command> converts a table of command names
+and help messages into a C source file suitable for use with the
+<filename>libss</filename> subsystem library.</para>
+
+<indexterm zone="ch-system-e2fsprogs mke2fs"><primary sortas="b-mke2fs">mke2fs</primary></indexterm>
+<para id="mke2fs"><command>mke2fs</command> is used to create a second extended
+file system on the given device.</para>
+
+<indexterm zone="ch-system-e2fsprogs mklost-found"><primary sortas="b-mklost+found">mklost+found</primary></indexterm>
+<para id="mklost-found"><command>mklost+found</command> is used to create a
+<filename>lost+found</filename> directory on a second extended file system.
+It pre-allocates disk blocks to this directory to lighten the task of e2fsck.</para>
+
+<indexterm zone="ch-system-e2fsprogs resize2fs"><primary sortas="b-resize2fs">resize2fs</primary></indexterm>
+<para id="resize2fs"><command>resize2fs</command> can be used to enlarge or shrink an
+ext2 file system.</para>
+
+<indexterm zone="ch-system-e2fsprogs tune2fs"><primary sortas="b-tune2fs">tune2fs</primary></indexterm>
+<para id="tune2fs"><command>tune2fs</command> is used adjust tunable file system
+parameters on a second extended file system.</para>
+
+<indexterm zone="ch-system-e2fsprogs uuidgen"><primary sortas="b-uuidgen">uuidgen</primary></indexterm>
+<para id="uuidgen"><command>uuidgen</command> creates new
+UUID. Each new UUID can reasonably be considered unique
+among all UUIDs created, on the local system and on other systems, in the
+past and in the future.</para>
+
+<indexterm zone="ch-system-e2fsprogs libblkid"><primary sortas="c-libblkid">libblkid</primary></indexterm>
+<para id="libblkid"><command>libblkid</command> contains routines for device
+identification and token extraction.</para>
+
+<indexterm zone="ch-system-e2fsprogs libcom_err"><primary sortas="c-libcom_err">libcom_err</primary></indexterm>
+<para id="libcom_err"><command>libcom_err</command> is the common error display routine.</para>
+
+<indexterm zone="ch-system-e2fsprogs libe2p"><primary sortas="c-libe2p">libe2p</primary></indexterm>
+<para id="libe2p"><command>libe2p</command> is used by dumpe2fs, chattr, and lsattr.</para>
+
+<indexterm zone="ch-system-e2fsprogs libext2fs"><primary sortas="c-libext2fs">libext2fs</primary></indexterm>
+<para id="libext2fs"><command>libext2fs</command> contains routines to enable user-level
+programs to manipulate an ext2 file system.</para>
+
+<indexterm zone="ch-system-e2fsprogs libss"><primary sortas="c-libss">libss</primary></indexterm>
+<para id="libss"><command>libss</command> is used by debugfs.</para>
+
+<indexterm zone="ch-system-e2fsprogs libuuid"><primary sortas="c-libuuid">libuuid</primary></indexterm>
+<para id="libuuid"><command>libuuid</command> contains routines for generating unique
+identifiers for objects that may be accessible beyond the local system.</para>
+
+</sect2>
+
+
+
+</sect1>
diff --git a/chapter06/ed.xml b/chapter06/ed.xml
index a5e9d3942..7858144c9 100644
--- a/chapter06/ed.xml
+++ b/chapter06/ed.xml
@@ -1,16 +1,23 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+ <!ENTITY % general-entities SYSTEM "../general.ent">
+ %general-entities;
+]>
<sect1 id="ch-system-ed" xreflabel="Ed">
-<title>Installing Ed-&ed-version;</title>
-<?dbhtml filename="ed.html" dir="chapter06"?>
+<title>Ed-&ed-version;</title>
+<?dbhtml filename="ed.html"?>
+
+<indexterm zone="ch-system-ed"><primary sortas="a-Ed">Ed</primary></indexterm>
<para>The Ed package contains a spartan line editor.</para>
-<screen>&buildtime; &ed-time;
-&diskspace; &ed-compsize;</screen>
+<screen>&buildtime; 0.1 SBU
+&diskspace; 3.1 MB</screen>
+
+<para>Ed installation depends on: Bash, Binutils, Coreutils, Diffutils, GCC,
+Glibc, Grep, Make, Sed.</para>
-&aa-ed-down;
-&aa-ed-dep;
-<sect2><title>&nbsp;</title><para>&nbsp;</para></sect2>
<sect2>
<title>Installation of Ed</title>
@@ -22,12 +29,12 @@ days.</para></note>
<para>Ed normally uses the <emphasis>mktemp</emphasis> function to create
temporary files in <filename class="directory">/tmp</filename>, but this
-function contains a vulnerability (see the section on Temporary Files in <ulink
+function contains a vulnerability (see the section on Temporary Files in <ulink
url="http://en.tldp.org/HOWTO/Secure-Programs-HOWTO/avoid-race.html"/>). Apply
the following patch to make Ed use <emphasis>mkstemp</emphasis> instead, a
secure way to create temporary files:</para>
-<screen><userinput>patch -Np1 -i ../&ed-patch;</userinput></screen>
+<screen><userinput>patch -Np1 -i ../ed-&ed-version;-mkstemp.patch</userinput></screen>
<para>Now prepare Ed for compilation:</para>
@@ -46,7 +53,7 @@ the programs available there is useful in the event of the
<screen><userinput>make</userinput></screen>
-<para>To have the results tested, issue:
+<para>To test the results, issue:
<userinput>make check</userinput>.</para>
<para>Install the package:</para>
@@ -55,8 +62,26 @@ the programs available there is useful in the event of the
</sect2>
-&aa-ed-shortdesc;
-&aa-ed-desc;
-</sect1>
+<sect2 id="contents-ed"><title>Contents of Ed</title>
+
+<para><emphasis>Installed programs</emphasis>: ed and red (link to ed)</para>
+
+</sect2>
+
+
+<sect2><title>Short descriptions</title>
+<indexterm zone="ch-system-ed ed"><primary sortas="b-ed">ed</primary></indexterm>
+<para id="ed"><command>ed</command> is a line-oriented text editor. It can be used
+to create, display, modify and otherwise manipulate text files.</para>
+
+<indexterm zone="ch-system-ed red"><primary sortas="b-red">red</primary></indexterm>
+<para id="red"><command>red</command> is a restricted ed -- it can only edit files
+in the current directory and cannot execute shell commands.</para>
+
+</sect2>
+
+
+
+</sect1>
diff --git a/chapter06/file.xml b/chapter06/file.xml
index d7232b401..4b4bb8cd0 100644
--- a/chapter06/file.xml
+++ b/chapter06/file.xml
@@ -1,16 +1,23 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+ <!ENTITY % general-entities SYSTEM "../general.ent">
+ %general-entities;
+]>
<sect1 id="ch-system-file" xreflabel="File">
-<title>Installing File-&file-version;</title>
-<?dbhtml filename="file.html" dir="chapter06"?>
+<title>File-&file-version;</title>
+<?dbhtml filename="file.html"?>
+
+<indexterm zone="ch-system-file"><primary sortas="a-File">File</primary></indexterm>
<para>The File package contains a utility for determining the type of files.</para>
-<screen>&buildtime; &file-time;
-&diskspace; &file-compsize;</screen>
+<screen>&buildtime; 0.1 SBU
+&diskspace; 6.3 MB</screen>
+
+<para>File installation depends on: Bash, Binutils, Coreutils, Diffutils,
+GCC, Glibc, Grep, Make, Sed, Zlib.</para>
-&aa-file-down;
-&aa-file-dep;
-<sect2><title>&nbsp;</title><para>&nbsp;</para></sect2>
<sect2>
<title>Installation of File</title>
@@ -23,14 +30,35 @@
<screen><userinput>make</userinput></screen>
-<para>And install it:</para>
+<para>Now install it:</para>
<screen><userinput>make install</userinput></screen>
</sect2>
-&aa-file-shortdesc;
-&aa-file-desc;
-</sect1>
+<sect2 id="contents-file"><title>Contents of File</title>
+
+<para><emphasis>Installed program</emphasis>: file</para>
+
+<para><emphasis>Installed library</emphasis>: libmagic.[a,so]</para>
+
+</sect2>
+
+<sect2><title>Short descriptions</title>
+
+<indexterm zone="ch-system-file file"><primary sortas="b-file">file</primary></indexterm>
+<para id="file"><command>file</command> tries to classify each given file. It does
+this by performing several tests: file system tests, magic number tests, and
+language tests. The first test that succeeds determines the result.</para>
+
+<indexterm zone="ch-system-file libmagic"><primary sortas="c-libmagic">libmagic</primary></indexterm>
+<para id="libmagic"><command>libmagic</command> contains routines for magic number
+recognition, used by the file program.</para>
+
+</sect2>
+
+
+
+</sect1>
diff --git a/chapter06/findutils.xml b/chapter06/findutils.xml
index db2485a73..a6f2aa3d5 100644
--- a/chapter06/findutils.xml
+++ b/chapter06/findutils.xml
@@ -1,18 +1,26 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+ <!ENTITY % general-entities SYSTEM "../general.ent">
+ %general-entities;
+]>
<sect1 id="ch-system-findutils" xreflabel="Findutils">
-<title>Installing Findutils-&findutils-version;</title>
-<?dbhtml filename="findutils.html" dir="chapter06"?>
+<title>Findutils-&findutils-version;</title>
+<?dbhtml filename="findutils.html"?>
-<para>The Findutils package contains programs to find files. The finding is
-done either by doing a live recursive search through a directory tree, or by
-consulting a previously set up database.</para>
+<indexterm zone="ch-system-findutils"><primary sortas="a-Findutils">Findutils</primary></indexterm>
-<screen>&buildtime; &findutils-time;
-&diskspace; &findutils-compsize;</screen>
+<para>The Findutils package contains programs to find files. Processes
+are provided to recursively search through a directory tree and to
+create, maintain and search a database (often faster than the recursive
+find, but unreliable if the database has not been recently updated).</para>
+
+<screen>&buildtime; 0.2 SBU
+&diskspace; 7.5 MB</screen>
+
+<para>Findutils installation depends on: Bash, Binutils, Coreutils,
+Diffutils, GCC, Gettext, Glibc, Grep, Make, Sed.</para>
-&aa-findutils-down;
-&aa-findutils-dep;
-<sect2><title>&nbsp;</title><para>&nbsp;</para></sect2>
<sect2>
<title>Installation of Findutils</title>
@@ -29,17 +37,58 @@ database to be in /var/lib/misc, which is FHS-compliant.</para>
<screen><userinput>make</userinput></screen>
-<para>To have the results tested, issue:
+<para>To test the results, issue:
<userinput>make check</userinput>.</para>
-<para>And install the package:</para>
+<para>Now install the package:</para>
<screen><userinput>make install</userinput></screen>
</sect2>
-&aa-findutils-shortdesc;
-&aa-findutils-desc;
-</sect1>
+<sect2 id="contents-findutils"><title>Contents of Findutils</title>
+
+<para><emphasis>Installed programs</emphasis>: bigram, code, find, frcode,
+locate, updatedb and xargs</para>
+
+</sect2>
+
+
+<sect2><title>Short descriptions</title>
+
+<indexterm zone="ch-system-findutils bigram"><primary sortas="b-bigram">bigram</primary></indexterm>
+<para id="bigram"><command>bigram</command> was formerly used to produce locate
+databases.</para>
+
+<indexterm zone="ch-system-findutils code"><primary sortas="b-code">code</primary></indexterm>
+<para id="code"><command>code</command> was formerly used to produce locate
+databases. It is the ancestor of frcode.</para>
+<indexterm zone="ch-system-findutils find"><primary sortas="b-find">find</primary></indexterm>
+<para id="find"><command>find</command> searches given directory trees for files
+matching the specified criteria.</para>
+
+<indexterm zone="ch-system-findutils frcode"><primary sortas="b-frcode">frcode</primary></indexterm>
+<para id="frcode"><command>frcode</command> is called by updatedb to compress the
+list of file names. It uses front-compression, reducing the database size by a
+factor of 4 to 5.</para>
+
+<indexterm zone="ch-system-findutils locate"><primary sortas="b-locate">locate</primary></indexterm>
+<para id="locate"><command>locate</command> searches through a database of file names,
+and reports the names that contain a given string or match a given pattern.</para>
+
+<indexterm zone="ch-system-findutils updatedb"><primary sortas="b-updatedb">updatedb</primary></indexterm>
+<para id="updatedb"><command>updatedb</command> updates the locate database. It scans
+the entire file system (including other file systems that are currently mounted,
+unless told not to) and puts every file name it finds in the database.</para>
+
+<indexterm zone="ch-system-findutils xargs"><primary sortas="b-xargs">xargs</primary></indexterm>
+<para id="xargs"><command>xargs</command> can be used to apply a given command to
+a list of files.</para>
+
+</sect2>
+
+
+
+</sect1>
diff --git a/chapter06/flex.xml b/chapter06/flex.xml
index 8bfbbb999..4210a6fc8 100644
--- a/chapter06/flex.xml
+++ b/chapter06/flex.xml
@@ -1,17 +1,24 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+ <!ENTITY % general-entities SYSTEM "../general.ent">
+ %general-entities;
+]>
<sect1 id="ch-system-flex" xreflabel="Flex">
-<title>Installing Flex-&flex-version;</title>
-<?dbhtml filename="flex.html" dir="chapter06"?>
+<title>Flex-&flex-version;</title>
+<?dbhtml filename="flex.html"?>
+
+<indexterm zone="ch-system-flex"><primary sortas="a-Flex">Flex</primary></indexterm>
<para>The Flex package contains a utility for generating programs that
recognize patterns in text.</para>
-<screen>&buildtime; &flex-time;
-&diskspace; &flex-compsize;</screen>
+<screen>&buildtime; 0.1 SBU
+&diskspace; 3.4 MB</screen>
+
+<para>Flex installation depends on: Bash, Binutils, Bison, Coreutils, Diffutils,
+GCC, Gettext, Glibc, Grep, M4, Make, Sed.</para>
-&aa-flex-down;
-&aa-flex-dep;
-<sect2><title>&nbsp;</title><para>&nbsp;</para></sect2>
<sect2>
<title>Installation of Flex</title>
@@ -24,10 +31,10 @@ recognize patterns in text.</para>
<screen><userinput>make</userinput></screen>
-<para>To have the results tested, issue:
+<para>To test the results, issue:
<userinput>make bigcheck</userinput>.</para>
-<para>And install the package:</para>
+<para>Now install the package:</para>
<screen><userinput>make install</userinput></screen>
@@ -54,8 +61,35 @@ chmod 755 /usr/bin/lex</userinput></screen>
</sect2>
-&aa-flex-shortdesc;
-&aa-flex-desc;
-</sect1>
+<sect2 id="contents-flex"><title>Contents of Flex</title>
+
+<para><emphasis>Installed programs</emphasis>: flex, flex++ (link to flex)
+and lex</para>
+
+<para><emphasis>Installed library</emphasis>: libfl.a</para>
+
+</sect2>
+
+
+<sect2><title>Short descriptions</title>
+<indexterm zone="ch-system-flex flex"><primary sortas="b-flex">flex</primary></indexterm>
+<para id="flex"><command>flex</command> is a tool for generating programs that
+recognize patterns in text. Pattern recognition is useful in many applications.
+From a set of rules on what to look for, flex makes a program that looks for
+those patterns. The reason to use flex is that it is much easier to specify
+the rules for a pattern-finding program than to write the program.</para>
+
+<indexterm zone="ch-system-flex flex-"><primary sortas="b-flex++">flex++</primary></indexterm>
+<para id="flex-"><command>flex++</command> invokes a version of flex that is used
+exclusively for C++ scanners.</para>
+
+<indexterm zone="ch-system-flex libfl.a"><primary sortas="c-libfl.a">libfl.a</primary></indexterm>
+<para id="libfl.a"><command>libfl.a</command> is the flex library.</para>
+
+</sect2>
+
+
+
+</sect1>
diff --git a/chapter06/gawk.xml b/chapter06/gawk.xml
index 50454c7aa..8eea05d14 100644
--- a/chapter06/gawk.xml
+++ b/chapter06/gawk.xml
@@ -1,16 +1,23 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+ <!ENTITY % general-entities SYSTEM "../general.ent">
+ %general-entities;
+]>
<sect1 id="ch-system-gawk" xreflabel="Gawk">
-<title>Installing Gawk-&gawk-version;</title>
-<?dbhtml filename="gawk.html" dir="chapter06"?>
+<title>Gawk-&gawk-version;</title>
+<?dbhtml filename="gawk.html"?>
+
+<indexterm zone="ch-system-gawk"><primary sortas="a-Gawk">Gawk</primary></indexterm>
<para>The Gawk package contains programs for manipulating text files.</para>
-<screen>&buildtime; &gawk-time;
-&diskspace; &gawk-compsize;</screen>
+<screen>&buildtime; 0.2 SBU
+&diskspace; 17 MB</screen>
+
+<para>Gawk installation depends on: Bash, Binutils, Coreutils,
+Diffutils, GCC, Gettext, Glibc, Grep, Make, Sed.</para>
-&aa-gawk-down;
-&aa-gawk-dep;
-<sect2><title>&nbsp;</title><para>&nbsp;</para></sect2>
<sect2>
<title>Installation of Gawk</title>
@@ -23,17 +30,46 @@
<screen><userinput>make</userinput></screen>
-<para>To have the results tested, issue:
+<para>To test the results, issue:
<userinput>make check</userinput>.</para>
-<para>And install the package:</para>
+<para>Now install the package:</para>
<screen><userinput>make install</userinput></screen>
</sect2>
-&aa-gawk-shortdesc;
-&aa-gawk-desc;
-</sect1>
+<sect2 id="contents-gawk"><title>Contents of Gawk</title>
+
+<para><emphasis>Installed programs</emphasis>: awk (link to gawk), gawk,
+gawk-&gawk-version;, grcat, igawk, pgawk, pgawk-&gawk-version; and pwcat</para>
+
+</sect2>
+
+<sect2><title>Short descriptions</title>
+
+<indexterm zone="ch-system-gawk gawk"><primary sortas="b-gawk">gawk</primary></indexterm>
+<para id="gawk"><command>gawk</command> is a program for manipulating text files.
+It is the GNU implementation of awk.</para>
+
+<indexterm zone="ch-system-gawk grcat"><primary sortas="b-grcat">grcat</primary></indexterm>
+<para id="grcat"><command>grcat</command> dumps the group database
+<filename>/etc/group</filename>.</para>
+<indexterm zone="ch-system-gawk igawk"><primary sortas="b-igawk">igawk</primary></indexterm>
+<para id="igawk"><command>igawk</command> gives gawk the ability to
+include files.</para>
+
+<indexterm zone="ch-system-gawk pgawk"><primary sortas="b-pgawk">pgawk</primary></indexterm>
+<para id="pgawk"><command>pgawk</command> is the profiling version of gawk.</para>
+
+<indexterm zone="ch-system-gawk pwcat"><primary sortas="b-pwcat">pwcat</primary></indexterm>
+<para id="pwcat"><command>pwcat</command> dumps the password database
+<filename>/etc/passwd</filename>.</para>
+
+</sect2>
+
+
+
+</sect1>
diff --git a/chapter06/gcc-2953.xml b/chapter06/gcc-2953.xml
index 171c4d908..b337d127e 100644
--- a/chapter06/gcc-2953.xml
+++ b/chapter06/gcc-2953.xml
@@ -1,22 +1,16 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+ <!ENTITY % general-entities SYSTEM "../general.ent">
+ %general-entities;
+]>
<sect1 id="ch-system-gcc-2953">
-<title>Installing GCC-2.95.3</title>
-<?dbhtml filename="gcc-2953.html" dir="chapter06"?>
+<title>GCC-&gcc-2953-version;</title>
+<?dbhtml filename="gcc-2953.html"?>
-<screen>&buildtime; &gcc-2953-time;
-&diskspace; &gcc-2953-compsize;</screen>
+<indexterm zone="ch-system-gcc-2953"><primary sortas="a-GCC-2953">GCC-2953</primary></indexterm>
-<sect2><title></title>
-<literallayout>Official download location for GCC-2 (&gcc-2953-version;):
-<ulink url="ftp://ftp.gnu.org/pub/gnu/gcc/"/>
-And for the GCC-2 Patch:
-<ulink url="&patches-root;&gcc-2953-patch;"/>
-And for the GCC-2 No-Fixincludes Patch:
-<ulink url="&patches-root;&gcc-2953-no-fixinc-patch;"/>
-And for the GCC-2 Return-Type Patch:
-<ulink url="&patches-root;&gcc-2953-returntype-fix-patch;"/></literallayout>
-</sect2>
-
-<sect2><title>&nbsp;</title><para>&nbsp;</para></sect2>
+<screen>&buildtime; 1.5 SBU
+&buildtime; 130 MB</screen>
<sect2>
<title>Installation of GCC</title>
@@ -24,16 +18,16 @@ And for the GCC-2 Return-Type Patch:
<para>This package is known to behave badly when you have changed its
default optimization flags (including the -march and -mcpu options).
Therefore, if you have defined any environment variables that override
-default optimizations, such as CFLAGS and CXXFLAGS, we recommend unsetting
+default optimizations, such as CFLAGS and CXXFLAGS, we recommend un-setting
or modifying them when building GCC.</para>
<para>This is an older release of GCC which we are going to install for the
-purpose of compiling the Linux kernel in <xref linkend="chapter-mixture"/>. This
-version is recommended
-by the kernel developers when you need absolute stability. Later versions of
-GCC have not received as much testing for Linux kernel compilation. Using a
-later version is likely to work, however, we recommend adhering to the kernel
-developer's advice and using the version here to compile your kernel.</para>
+purpose of compiling the Linux kernel in <xref linkend="chapter-bootable"/>.
+This version is recommended by the kernel developers when you need absolute
+stability. Later versions of GCC have not received as much testing for Linux
+kernel compilation. Using a later version is likely to work, however, we
+recommend adhering to the kernel developer's advice and using the version here
+to compile your kernel.</para>
<note><para>We don't install the C++ compiler or libraries here. However, there
may be reasons why you would want to install them. More information can be found
@@ -46,9 +40,9 @@ the system GCC already installed in <filename class="directory">/usr</filename>
<para>Apply the patches and make a small adjustment:</para>
-<screen><userinput>patch -Np1 -i ../&gcc-2953-patch;
-patch -Np1 -i ../&gcc-2953-no-fixinc-patch;
-patch -Np1 -i ../&gcc-2953-returntype-fix-patch;
+<screen><userinput>patch -Np1 -i ../gcc-&gcc-2953-version;-2.patch
+patch -Np1 -i ../gcc-&gcc-2953-version;-no-fixinc.patch
+patch -Np1 -i ../gcc-&gcc-2953-version;-returntype-fix.patch
echo timestamp &gt; gcc/cstamp-h.in</userinput></screen>
<para>The GCC documentation recommends building GCC outside of the source
@@ -59,13 +53,12 @@ cd ../gcc-2-build</userinput></screen>
<para>Compile and install the compiler:</para>
-<screen><userinput>../&gcc-2953-dir;/configure --prefix=/opt/&gcc-2953-dir; \
-&nbsp;&nbsp;&nbsp;&nbsp;--enable-shared --enable-languages=c \
-&nbsp;&nbsp;&nbsp;&nbsp;--enable-threads=posix
+<screen><userinput>../gcc-&gcc-2953-version;/configure --prefix=/opt/gcc-&gcc-2953-version; \
+ --enable-shared --enable-languages=c \
+ --enable-threads=posix
make bootstrap
make install</userinput></screen>
</sect2>
</sect1>
-
diff --git a/chapter06/gcc.xml b/chapter06/gcc.xml
index bb9467167..cc6b5d79e 100644
--- a/chapter06/gcc.xml
+++ b/chapter06/gcc.xml
@@ -1,21 +1,24 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+ <!ENTITY % general-entities SYSTEM "../general.ent">
+ %general-entities;
+]>
<sect1 id="ch-system-gcc" xreflabel="GCC">
-<title>Installing GCC-&gcc-version;</title>
-<?dbhtml filename="gcc.html" dir="chapter06"?>
+<title>GCC-&gcc-version;</title>
+<?dbhtml filename="gcc.html"?>
-<para>The GCC package contains the GNU compiler collection, among them
+<indexterm zone="ch-system-gcc"><primary sortas="a-GCC">GCC</primary></indexterm>
+
+<para>The GCC package contains the GNU compiler collection, which includes
the C and C++ compilers.</para>
-<screen>&buildtime; &gcc-time;
-&diskspace; &gcc-compsize;</screen>
+<screen>&buildtime; 11.7 SBU
+&diskspace; 294 MB</screen>
-<literallayout>Official download location for GCC (&gcc-version;):
-<ulink url="ftp://ftp.gnu.org/pub/gnu/gcc/"/>
-And for the patch:
-<ulink url="&patches-root;&gcc-nofixincludes-patch;"/></literallayout>
+<para>GCC installation depends on: Bash, Binutils, Coreutils, Diffutils, Findutils,
+Gawk, Gettext, Glibc, Grep, Make, Perl, Sed, Texinfo.</para>
-&aa-gcc-dep;
-<sect2><title>&nbsp;</title><para>&nbsp;</para></sect2>
<sect2>
<title>Installation of GCC</title>
@@ -23,7 +26,7 @@ And for the patch:
<para>This package is known to behave badly when you have changed its
default optimization flags (including the -march and -mcpu options).
Therefore, if you have defined any environment variables that override
-default optimizations, such as CFLAGS and CXXFLAGS, we recommend unsetting
+default optimizations, such as CFLAGS and CXXFLAGS, we recommend un-setting
or modifying them when building GCC.</para>
<para>Unpack the GCC-core <emphasis>and</emphasis> the GCC-g++ tarball -- they
@@ -35,7 +38,7 @@ compilers. Instructions for building these can be found at
<para>First apply only the No-Fixincludes patch (and <emphasis>not</emphasis>
the Specs patch) also used in the previous chapter:</para>
-<screen><userinput>patch -Np1 -i ../&gcc-nofixincludes-patch;</userinput></screen>
+<screen><userinput>patch -Np1 -i ../gcc-&gcc-version;-no_fixincludes-1.patch</userinput></screen>
<para>Now apply a sed substitution that will suppress the installation of
<filename>libiberty.a</filename>. We want to use the version of
@@ -51,10 +54,10 @@ cd ../gcc-build</userinput></screen>
<para>Now prepare GCC for compilation:</para>
-<screen><userinput>../&gcc-dir;/configure --prefix=/usr \
-&nbsp;&nbsp;&nbsp;&nbsp;--enable-shared --enable-threads=posix \
-&nbsp;&nbsp;&nbsp;&nbsp;--enable-__cxa_atexit --enable-clocale=gnu \
-&nbsp;&nbsp;&nbsp;&nbsp;--enable-languages=c,c++</userinput></screen>
+<screen><userinput>../gcc-&gcc-version;/configure --prefix=/usr \
+ --enable-shared --enable-threads=posix \
+ --enable-__cxa_atexit --enable-clocale=gnu \
+ --enable-languages=c,c++</userinput></screen>
<para>Compile the package:</para>
@@ -73,13 +76,13 @@ known ones):</para>
much appropriate here. Be sure to refer back there should you have any
doubts.</para>
-<para>And install the package:</para>
+<para>Now install the package:</para>
<screen><userinput>make install</userinput></screen>
<para>Some packages expect the C PreProcessor to be installed in the
<filename>/lib</filename> directory.
-To honor those packages, create this symlink:</para>
+To support those packages, create this symlink:</para>
<screen><userinput>ln -s ../usr/bin/cpp /lib</userinput></screen>
@@ -96,8 +99,53 @@ are wrong, then most likely you erroneously applied the GCC Specs patch from
</sect2>
-&aa-gcc-shortdesc;
-&aa-gcc-desc;
-</sect1>
+<sect2 id="contents-gcc"><title>Contents of GCC</title>
+
+<para><emphasis>Installed programs</emphasis>: c++, cc (link to gcc),
+cc1, cc1plus, collect2, cpp, g++, gcc, gccbug, and gcov</para>
+
+<para><emphasis>Installed libraries</emphasis>: libgcc.a, libgcc_eh.a,
+libgcc_s.so, libstdc++.[a,so] and libsupc++.a</para>
+
+</sect2>
+
+
+<sect2><title>Short descriptions</title>
+
+<indexterm zone="ch-system-gcc cpp"><primary sortas="b-cpp">cpp</primary></indexterm>
+<para id="cpp"><command>cpp</command> is the C preprocessor. It is used by the
+compiler to have the #include and #define and such statements expanded in
+the source files.</para>
+
+<indexterm zone="ch-system-gcc g"><primary sortas="b-g++">g++</primary></indexterm>
+<para id="g"><command>g++</command> is the C++ compiler.</para>
+
+<indexterm zone="ch-system-gcc gcc"><primary sortas="b-gcc">gcc</primary></indexterm>
+<para id="gcc"><command>gcc</command> is the C compiler. It is used to translate
+the source code of a program into assembly code.</para>
+<indexterm zone="ch-system-gcc gccbug"><primary sortas="b-gccbug">gccbug</primary></indexterm>
+<para id="gccbug"><command>gccbug</command> is a shell script used to help create
+good bug reports.</para>
+
+<indexterm zone="ch-system-gcc gcov"><primary sortas="b-gcov">gcov</primary></indexterm>
+<para id="gcov"><command>gcov</command> is a coverage testing tool. It is used to
+analyze programs to find out where optimizations will have the most effect.</para>
+
+<indexterm zone="ch-system-gcc libgcc"><primary sortas="c-libgcc*">libgcc*</primary></indexterm>
+<para id="libgcc"><command>libgcc*</command> contains run-time support for gcc.</para>
+
+<indexterm zone="ch-system-gcc libstdc"><primary sortas="c-libstdc++">libstdc++</primary></indexterm>
+<para id="libstdc"><command>libstdc++</command> is the standard C++ library. It contains
+many frequently-used functions.</para>
+
+<indexterm zone="ch-system-gcc libsupc"><primary sortas="c-libsupc++">libsupc++</primary></indexterm>
+<para id="libsupc"><command>libsupc++</command> provides supporting routines
+for the c++ programming language.</para>
+
+</sect2>
+
+
+
+</sect1>
diff --git a/chapter06/gettext.xml b/chapter06/gettext.xml
index 2e7b6a080..9c3b449cd 100644
--- a/chapter06/gettext.xml
+++ b/chapter06/gettext.xml
@@ -1,18 +1,25 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+ <!ENTITY % general-entities SYSTEM "../general.ent">
+ %general-entities;
+]>
<sect1 id="ch-system-gettext" xreflabel="Gettext">
-<title>Installing Gettext-&gettext-version;</title>
-<?dbhtml filename="gettext.html" dir="chapter06"?>
+<title>Gettext-&gettext-version;</title>
+<?dbhtml filename="gettext.html"?>
+
+<indexterm zone="ch-system-gettext"><primary sortas="a-Gettext">Gettext</primary></indexterm>
<para>The Gettext package contains utilities for internationalization and
localization. These allow programs to be compiled with Native Language Support
(NLS), enabling them to output messages in the user's native language.</para>
-<screen>&buildtime; &gettext-time;
-&diskspace; &gettext-compsize;</screen>
+<screen>&buildtime; 0.5 SBU
+&diskspace; 55 MB</screen>
+
+<para>Gettext installation depends on: Bash, Binutils, Bison, Coreutils,
+Diffutils, Gawk, GCC, Glibc, Grep, Make, Sed.</para>
-&aa-gettext-down;
-&aa-gettext-dep;
-<sect2><title>&nbsp;</title><para>&nbsp;</para></sect2>
<sect2>
<title>Installation of Gettext</title>
@@ -25,18 +32,148 @@ localization. These allow programs to be compiled with Native Language Support
<screen><userinput>make</userinput></screen>
-<para>To have the results tested, issue:
+<para>To test the results, issue:
<userinput>make check</userinput>. This takes a very long time, around
7 SBUs.</para>
-<para>And install the package:</para>
+<para>Now install the package:</para>
<screen><userinput>make install</userinput></screen>
</sect2>
-&aa-gettext-shortdesc;
-&aa-gettext-desc;
-</sect1>
+<sect2 id="contents-gettext"><title>Contents of Gettext</title>
+
+<para><emphasis>Installed programs</emphasis>: autopoint, config.charset,
+config.rpath, envsubst, gettext, gettextize, hostname, msgattrib, msgcat,
+msgcmp, msgcomm, msgconv, msgen, msgexec, msgfilter, msgfmt, msggrep, msginit,
+msgmerge, msgunfmt, msguniq, ngettext, project-id, team-address, trigger,
+urlget, user-email and xgettext</para>
+
+<para><emphasis>Installed libraries</emphasis>: libasprintf[a,so],
+libgettextlib[a,so], libgettextpo[a,so] and libgettextsrc[a,so]</para>
+
+</sect2>
+
+<sect2><title>Short descriptions</title>
+
+<indexterm zone="ch-system-gettext autopoint"><primary sortas="b-autopoint">autopoint</primary></indexterm>
+<para id="autopoint"><command>autopoint</command> copies standard gettext infrastructure
+files into a source package.</para>
+
+<indexterm zone="ch-system-gettext config.charset"><primary sortas="b-config.charset">config.charset</primary></indexterm>
+<para id="config.charset"><command>config.charset</command> outputs a system-dependent table of
+character encoding aliases.</para>
+
+<indexterm zone="ch-system-gettext config.rpath"><primary sortas="b-config.rpath">config.rpath</primary></indexterm>
+<para id="config.rpath"><command>config.rpath</command> outputs a system-dependent set of
+variables, describing how to set the runtime search path of shared libraries in an
+executable.</para>
+
+<indexterm zone="ch-system-gettext envsubst"><primary sortas="b-envsubst">envsubst</primary></indexterm>
+<para id="envsubst"><command>envsubst</command> substitutes environment variables in shell
+format strings.</para>
+
+<indexterm zone="ch-system-gettext gettext"><primary sortas="b-gettext">gettext</primary></indexterm>
+<para id="gettext"><command>gettext</command> translates a natural language message into
+the user's language, by looking up the translation in a message catalog.</para>
+
+<indexterm zone="ch-system-gettext gettextize"><primary sortas="b-gettextize">gettextize</primary></indexterm>
+<para id="gettextize"><command>gettextize</command> copies all standard Gettext files into
+the given top-level directory of a package, to begin inter-nationalizing it.</para>
+
+<indexterm zone="ch-system-gettext hostname-gettext"><primary sortas="b-hostname-gettext">hostname</primary></indexterm>
+<para id="hostname-gettext"><command>hostname</command> displays a network hostname in various
+forms.</para>
+
+<indexterm zone="ch-system-gettext msgattrib"><primary sortas="b-msgattrib">msgattrib</primary></indexterm>
+<para id="msgattrib"><command>msgattrib</command> filters the messages of a translation
+catalog according to their attributes and manipulates the attributes.</para>
+
+<indexterm zone="ch-system-gettext msgcat"><primary sortas="b-msgcat">msgcat</primary></indexterm>
+<para id="msgcat"><command>msgcat</command> concatenates and merges the given
+<filename>.po</filename> files.</para>
+
+<indexterm zone="ch-system-gettext msgcmp"><primary sortas="b-msgcmp">msgcmp</primary></indexterm>
+<para id="msgcmp"><command>msgcmp</command> compares two <filename>.po</filename>
+files to check that both contain the same set of msgid strings.</para>
+
+<indexterm zone="ch-system-gettext msgcomm"><primary sortas="b-msgcomm">msgcomm</primary></indexterm>
+<para id="msgcomm"><command>msgcomm</command> finds the messages that are common to
+to the given <filename>.po</filename> files.</para>
+
+<indexterm zone="ch-system-gettext msgconv"><primary sortas="b-msgconv">msgconv</primary></indexterm>
+<para id="msgconv"><command>msgconv</command> converts a translation catalog to a
+different character encoding.</para>
+<indexterm zone="ch-system-gettext msgen"><primary sortas="b-msgen">msgen</primary></indexterm>
+<para id="msgen"><command>msgen</command> creates an English translation catalog.</para>
+
+<indexterm zone="ch-system-gettext msgexec"><primary sortas="b-msgexec">msgexec</primary></indexterm>
+<para id="msgexec"><command>msgexec</command> applies a command to all translations of a
+translation catalog.</para>
+
+<indexterm zone="ch-system-gettext msgfilter"><primary sortas="b-msgfilter">msgfilter</primary></indexterm>
+<para id="msgfilter"><command>msgfilter</command> applies a filter to all translations of a
+translation catalog.</para>
+
+<indexterm zone="ch-system-gettext msgfmt"><primary sortas="b-msgfmt">msgfmt</primary></indexterm>
+<para id="msgfmt"><command>msgfmt</command> generates a binary message catalog from
+from a translation catalog.</para>
+
+<indexterm zone="ch-system-gettext msggrep"><primary sortas="b-msggrep">msggrep</primary></indexterm>
+<para id="msggrep"><command>msggrep</command> extracts all messages of a translation
+catalog that match a given pattern or belong to some given source files.</para>
+
+<indexterm zone="ch-system-gettext msginit"><primary sortas="b-msginit">msginit</primary></indexterm>
+<para id="msginit"><command>msginit</command> creates a new <filename>.po</filename>
+file, initializing the meta information with values from the user's
+environment.</para>
+
+<indexterm zone="ch-system-gettext msgmerge"><primary sortas="b-msgmerge">msgmerge</primary></indexterm>
+<para id="msgmerge"><command>msgmerge</command> combines two raw translations into a
+single file.</para>
+
+<indexterm zone="ch-system-gettext msgunfmt"><primary sortas="b-msgunfmt">msgunfmt</primary></indexterm>
+<para id="msgunfmt"><command>msgunfmt</command> decompiles a binary message catalog
+into raw translation text.</para>
+
+<indexterm zone="ch-system-gettext msguniq"><primary sortas="b-msguniq">msguniq</primary></indexterm>
+<para id="msguniq"><command>msguniq</command> unifies duplicate translations in a
+translation catalog.</para>
+
+<indexterm zone="ch-system-gettext ngettext"><primary sortas="b-ngettext">ngettext</primary></indexterm>
+<para id="ngettext"><command>ngettext</command> displays native language translations of a
+textual message whose grammatical form depends on a number.</para>
+
+<indexterm zone="ch-system-gettext xgettext"><primary sortas="b-xgettext">xgettext</primary></indexterm>
+<para id="xgettext"><command>xgettext</command> extracts the translatable message lines
+from the given source files, to make the first translation template.</para>
+
+<indexterm zone="ch-system-gettext libasprintf"><primary sortas="c-libasprintf">libasprintf</primary></indexterm>
+<para id="libasprintf"><command>libasprintf</command> defines the autosprintf class, which
+makes C formatted output routines usable in C++ programs, for use with the
+&lt;string&gt; strings and the &lt;iostream&gt; streams.</para>
+
+<indexterm zone="ch-system-gettext libgettextlib"><primary sortas="c-libgettextlib">libgettextlib</primary></indexterm>
+<para id="libgettextlib"><command>libgettextlib</command> is a private library containing
+common routines used by the various gettext programs. They're not meant for
+general use.</para>
+
+<indexterm zone="ch-system-gettext libgettextpo"><primary sortas="c-libgettextpo">libgettextpo</primary></indexterm>
+<para id="libgettextpo"><command>libgettextpo</command> is used to write specialized
+programs that process PO files. This library is used when the standard
+applications shipped with gettext won't suffice (such as msgcomm, msgcmp,
+msgattrib and msgen).</para>
+
+<indexterm zone="ch-system-gettext libgettextsrc"><primary sortas="c-libgettextsrc">libgettextsrc</primary></indexterm>
+<para id="libgettextsrc"><command>libgettextsrc</command> is a private library containing
+common routines used by the various gettext programs. They're not meant for
+general use.</para>
+
+</sect2>
+
+
+
+</sect1>
diff --git a/chapter06/glibc.xml b/chapter06/glibc.xml
index 86dbcb09b..59ecff6f9 100644
--- a/chapter06/glibc.xml
+++ b/chapter06/glibc.xml
@@ -1,19 +1,26 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+ <!ENTITY % general-entities SYSTEM "../general.ent">
+ %general-entities;
+]>
<sect1 id="ch-system-glibc" xreflabel="Glibc">
-<title>Installing Glibc-&glibc-version;</title>
-<?dbhtml filename="glibc.html" dir="chapter06"?>
+<title>Glibc-&glibc-version;</title>
+<?dbhtml filename="glibc.html"?>
+
+<indexterm zone="ch-system-glibc"><primary sortas="a-Glibc">Glibc</primary></indexterm>
<para>The Glibc package contains the main C library. This library provides all
the basic routines for allocating memory, searching directories, opening and
closing files, reading and writing them, string handling, pattern matching,
arithmetic, and so on.</para>
-<screen>&buildtime; &glibc-time;
-&diskspace; &glibc-compsize;</screen>
+<screen>&buildtime; 12.3 SBU
+&diskspace; 784 MB</screen>
+
+<para>Glibc installation depends on: Bash, Binutils, Coreutils, Diffutils,
+Gawk, GCC, Gettext, Grep, Make, Perl, Sed, Texinfo.</para>
-&aa-glibc-down;
-&aa-glibc-dep;
-<sect2><title>&nbsp;</title><para>&nbsp;</para></sect2>
<sect2>
<title>Installation of Glibc</title>
@@ -35,10 +42,10 @@ cd ../glibc-build</userinput></screen>
<para>Now prepare Glibc for compilation:</para>
-<screen><userinput>../&glibc-dir;/configure --prefix=/usr \
-&nbsp;&nbsp;&nbsp;&nbsp;--disable-profile --enable-add-ons=linuxthreads \
-&nbsp;&nbsp;&nbsp;&nbsp;--libexecdir=/usr/lib --with-headers=/usr/include \
-&nbsp;&nbsp;&nbsp;&nbsp;--without-cvs</userinput></screen>
+<screen><userinput>../glibc-&glibc-version;-20031202/configure --prefix=/usr \
+ --disable-profile --enable-add-ons=linuxthreads \
+ --libexecdir=/usr/lib --with-headers=/usr/include \
+ --without-cvs</userinput></screen>
<para>The meaning of the new configure options:</para>
@@ -106,6 +113,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
@@ -113,17 +121,18 @@ localedef -i ja_JP -f EUC-JP ja_JP</userinput></screen>
<para>Finally, build the linuxthreads man pages:</para>
-<screen><userinput>make -C ../&glibc-dir;/linuxthreads/man</userinput></screen>
+<screen><userinput>make -C ../glibc-&glibc-version;-20031202/linuxthreads/man</userinput></screen>
<para>And install these pages:</para>
-<screen><userinput>make -C ../&glibc-dir;/linuxthreads/man install</userinput></screen>
+<screen><userinput>make -C ../glibc-&glibc-version;-20031202/linuxthreads/man install</userinput></screen>
</sect2>
-<sect2><title>&nbsp;</title><para>&nbsp;</para></sect2>
-<sect2><title>Configuring Glibc</title>
+<sect2 id="conf-glibc"><title>Configuring Glibc</title>
+<indexterm zone="conf-glibc"><primary sortas="e-/etc/nsswitch.conf">/etc/nsswitch.conf</primary></indexterm>
+<indexterm zone="conf-glibc"><primary sortas="e-/etc/localtime">/etc/localtime</primary></indexterm>
<para>We need to create the <filename>/etc/nsswitch.conf</filename> file,
because, although Glibc provides defaults when this file is missing or corrupt,
@@ -182,23 +191,22 @@ gave you.</para>
</sect2>
-<sect2><title>&nbsp;</title><para>&nbsp;</para></sect2>
-<sect2>
+<sect2 id="conf-ld">
<title>Configuring Dynamic Loader</title>
+<indexterm zone="conf-ld"><primary sortas="e-/etc/ld.so.conf">/etc/ld.so.conf</primary></indexterm>
<para>By default, the dynamic loader
-(<filename>/lib/ld-linux.so.2</filename>) searches through <filename
-class="directory">/lib</filename> and <filename
-class="directory">/usr/lib</filename> for dynamic libraries that are needed
+(<filename>/lib/ld-linux.so.2</filename>) searches through <filename
+class="directory">/lib</filename> and <filename class="directory">/usr/lib</filename>
+for dynamic libraries that are needed
by programs when you run them. However, if there are libraries in
directories other than <filename class="directory">/lib</filename> and
<filename class="directory">/usr/lib</filename>, you need to add them to
the <filename>/etc/ld.so.conf</filename> file for the dynamic
loader to find them. Two directories that are commonly known to contain
-additional libraries are <filename
-class="directory">/usr/local/lib</filename> and <filename
-class="directory">/opt/lib</filename>, so we add those directories to the
+additional libraries are <filename class="directory">/usr/local/lib</filename>
+and <filename class="directory">/opt/lib</filename>, so we add those directories to the
dynamic loader's search path.</para>
<para>Create a new file <filename>/etc/ld.so.conf</filename> by running the
@@ -215,8 +223,203 @@ following:</para>
</sect2>
-&aa-glibc-shortdesc;
-&aa-glibc-desc;
-</sect1>
+<sect2 id="contents-glibc"><title>Contents of Glibc</title>
+
+<para><emphasis>Installed programs</emphasis>: catchsegv, gencat, getconf,
+getent, glibcbug, iconv, iconvconfig, ldconfig, ldd, lddlibc4, locale,
+localedef, mtrace, nscd, nscd_nischeck, pcprofiledump, pt_chown, rpcgen,
+rpcinfo, sln, sprof, tzselect, xtrace, zdump and zic</para>
+
+<para><emphasis>Installed libraries</emphasis>: ld.so, libBrokenLocale.[a,so],
+libSegFault.so, libanl.[a,so], libbsd-compat.a, libc.[a,so], libc_nonshared.a,
+libcrypt.[a,so], libdl.[a,so], libg.a, libieee.a, libm.[a,so], libmcheck.a,
+libmemusage.so, libnsl.a, libnss_compat.so, libnss_dns.so, libnss_files.so,
+libnss_hesiod.so, libnss_nis.so, libnss_nisplus.so, libpcprofile.so,
+libpthread.[a,so], libresolv.[a,so], librpcsvc.a, librt.[a,so], libthread_db.so
+and libutil.[a,so]</para>
+
+</sect2>
+
+
+<sect2><title>Short descriptions</title>
+
+<indexterm zone="ch-system-glibc catchsegv"><primary sortas="b-catchsegv">catchsegv</primary></indexterm>
+<para id="catchsegv"><command>catchsegv</command> can be used to create a stack trace
+when a program terminates with a segmentation fault.</para>
+
+<indexterm zone="ch-system-glibc gencat"><primary sortas="b-gencat">gencat</primary></indexterm>
+<para id="gencat"><command>gencat</command> generates message catalogues.</para>
+
+<indexterm zone="ch-system-glibc getconf"><primary sortas="b-getconf">getconf</primary></indexterm>
+<para id="getconf"><command>getconf</command> displays the system configuration values
+for file system specific variables.</para>
+
+<indexterm zone="ch-system-glibc getent"><primary sortas="b-getent">getent</primary></indexterm>
+<para id="getent"><command>getent</command> gets entries from an administrative
+database.</para>
+
+<indexterm zone="ch-system-glibc glibcbug"><primary sortas="b-glibcbug">glibcbug</primary></indexterm>
+<para id="glibcbug"><command>glibcbug</command> creates a bug report and mails it to the
+bug email address.</para>
+
+<indexterm zone="ch-system-glibc iconv"><primary sortas="b-iconv">iconv</primary></indexterm>
+<para id="iconv"><command>iconv</command> performs character set conversion.</para>
+
+<indexterm zone="ch-system-glibc iconvconfig"><primary sortas="b-iconvconfig">iconvconfig</primary></indexterm>
+<para id="iconvconfig"><command>iconvconfig</command> creates fastloading iconv module
+configuration file.</para>
+
+<indexterm zone="ch-system-glibc ldconfig"><primary sortas="b-ldconfig">ldconfig</primary></indexterm>
+<para id="ldconfig"><command>ldconfig</command> configures the dynamic linker runtime
+bindings.</para>
+
+<indexterm zone="ch-system-glibc ldd"><primary sortas="b-ldd">ldd</primary></indexterm>
+<para id="ldd"><command>ldd</command> reports which shared libraries are required
+by each given program or shared library.</para>
+
+<indexterm zone="ch-system-glibc lddlibc4"><primary sortas="b-lddlibc4">lddlibc4</primary></indexterm>
+<para id="lddlibc4"><command>lddlibc4</command> assists ldd with object files.</para>
+
+<indexterm zone="ch-system-glibc locale"><primary sortas="b-locale">locale</primary></indexterm>
+<para id="locale"><command>locale</command> is a Perl program that tells the compiler
+to enable or disable the use of POSIX locales for built-in operations.</para>
+
+<indexterm zone="ch-system-glibc localedef"><primary sortas="b-localedef">localedef</primary></indexterm>
+<para id="localedef"><command>localedef</command> compiles locale specifications.</para>
+
+<indexterm zone="ch-system-glibc mtrace"><primary sortas="b-mtrace">mtrace</primary></indexterm>
+<para id="mtrace"><command>mtrace</command>...</para>
+
+<indexterm zone="ch-system-glibc nscd"><primary sortas="b-nscd">nscd</primary></indexterm>
+<para id="nscd"><command>nscd</command> is a name service cache daemon providing a
+cache for the most common name service requests.</para>
+
+<indexterm zone="ch-system-glibc nscd_nischeck"><primary sortas="b-nscd_nischeck">nscd_nischeck</primary></indexterm>
+<para id="nscd_nischeck"><command>nscd_nischeck</command> checks whether or not secure mode
+is necessary for NIS+ lookup.</para>
+
+<indexterm zone="ch-system-glibc pcprofiledump"><primary sortas="b-pcprofiledump">pcprofiledump</primary></indexterm>
+<para id="pcprofiledump"><command>pcprofiledump</command> dumps information generated by
+PC profiling.</para>
+
+<indexterm zone="ch-system-glibc pt_chown"><primary sortas="b-pt_chown">pt_chown</primary></indexterm>
+<para id="pt_chown"><command>pt_chown</command> is a helper program for grantpt to set
+the owner, group and access permissions of a slave pseudo terminal.</para>
+
+<indexterm zone="ch-system-glibc rpcgen"><primary sortas="b-rpcgen">rpcgen</primary></indexterm>
+<para id="rpcgen"><command>rpcgen</command> generates C code to implement the
+RPC protocol.</para>
+
+<indexterm zone="ch-system-glibc rpcinfo"><primary sortas="b-rpcinfo">rpcinfo</primary></indexterm>
+<para id="rpcinfo"><command>rpcinfo</command> makes an RPC call to an RPC server.</para>
+
+<indexterm zone="ch-system-glibc sln"><primary sortas="b-sln">sln</primary></indexterm>
+<para id="sln"><command>sln</command> is used to make symbolic links. The program
+is statically linked, so it is useful for making symbolic links to dynamic
+libraries if the dynamic linking system for some reason is nonfunctional.</para>
+
+<indexterm zone="ch-system-glibc sprof"><primary sortas="b-sprof">sprof</primary></indexterm>
+<para id="sprof"><command>sprof</command> reads and displays shared object profiling
+data.</para>
+<indexterm zone="ch-system-glibc tzselect"><primary sortas="b-tzselect">tzselect</primary></indexterm>
+<para id="tzselect"><command>tzselect</command> asks the user about the location of the
+system and reports the corresponding time zone description.</para>
+
+<indexterm zone="ch-system-glibc xtrace"><primary sortas="b-xtrace">xtrace</primary></indexterm>
+<para id="xtrace"><command>xtrace</command> traces the execution of a program by
+printing the currently executed function.</para>
+
+<indexterm zone="ch-system-glibc zdump"><primary sortas="b-zdump">zdump</primary></indexterm>
+<para id="zdump"><command>zdump</command> is the time zone dumper.</para>
+
+<indexterm zone="ch-system-glibc zic"><primary sortas="b-zic">zic</primary></indexterm>
+<para id="zic"><command>zic</command> is the time zone compiler.</para>
+
+<indexterm zone="ch-system-glibc ld.so"><primary sortas="c-ld.so">ld.so</primary></indexterm>
+<para id="ld.so"><command>ld.so</command> is the helper program for shared library
+executables.</para>
+
+<indexterm zone="ch-system-glibc libBrokenLocale"><primary sortas="c-libBrokenLocale">libBrokenLocale</primary></indexterm>
+<para id="libBrokenLocale"><command>libBrokenLocale</command> is used by programs, such as
+Mozilla, to solve broken locales.</para>
+
+<indexterm zone="ch-system-glibc libSegFault"><primary sortas="c-libSegFault">libSegFault</primary></indexterm>
+<para id="libSegFault"><command>libSegFault</command> is a segmentation fault signal
+handler. It tries to catch segfaults.</para>
+
+<indexterm zone="ch-system-glibc libanl"><primary sortas="c-libanl">libanl</primary></indexterm>
+<para id="libanl"><command>libanl</command> is an asynchronous name lookup
+library.</para>
+
+<indexterm zone="ch-system-glibc libbsd-compat"><primary sortas="c-libbsd-compat">libbsd-compat</primary></indexterm>
+<para id="libbsd-compat"><command>libbsd-compat</command> provides the portability needed
+in order to run certain BSD programs under Linux.</para>
+
+<indexterm zone="ch-system-glibc libc"><primary sortas="c-libc">libc</primary></indexterm>
+<para id="libc"><command>libc</command> is the main C library -- a collection of
+commonly used functions.</para>
+
+<indexterm zone="ch-system-glibc libcrypt"><primary sortas="c-libcrypt">libcrypt</primary></indexterm>
+<para id="libcrypt"><command>libcrypt</command> is the cryptography library.</para>
+
+<indexterm zone="ch-system-glibc libdl"><primary sortas="c-libdl">libdl</primary></indexterm>
+<para id="libdl"><command>libdl</command> is the dynamic linking interface library.</para>
+
+<indexterm zone="ch-system-glibc libg"><primary sortas="c-libg">libg</primary></indexterm>
+<para id="libg"><command>libg</command> is a runtime library for g++.</para>
+
+<indexterm zone="ch-system-glibc libieee"><primary sortas="c-libieee">libieee</primary></indexterm>
+<para id="libieee"><command>libieee</command> is the IEEE floating point library.</para>
+
+<indexterm zone="ch-system-glibc libm"><primary sortas="c-libm">libm</primary></indexterm>
+<para id="libm"><command>libm</command> is the mathematical library.</para>
+
+<indexterm zone="ch-system-glibc libmcheck"><primary sortas="c-libmcheck">libmcheck</primary></indexterm>
+<para id="libmcheck"><command>libmcheck</command> contains code run at boot.</para>
+
+<indexterm zone="ch-system-glibc libmemusage"><primary sortas="c-libmemusage">libmemusage</primary></indexterm>
+<para id="libmemusage"><command>libmemusage</command> is used by memusage to help collect
+information about the memory usage of a program.</para>
+
+<indexterm zone="ch-system-glibc libnsl"><primary sortas="c-libnsl">libnsl</primary></indexterm>
+<para id="libnsl"><command>libnsl</command> is the network services library.</para>
+
+<indexterm zone="ch-system-glibc libnss"><primary sortas="c-libnss*">libnss*</primary></indexterm>
+<para id="libnss"><command>libnss*</command> are the Name Service Switch libraries,
+containing functions for resolving host names, user names, group names,
+aliases, services, protocols,and the like.</para>
+
+<indexterm zone="ch-system-glibc libpcprofile"><primary sortas="c-libpcprofile">libpcprofile</primary></indexterm>
+<para id="libpcprofile"><command>libpcprofile</command> contains profiling functions used
+to track the amount of CPU time spent in which source code lines.</para>
+
+<indexterm zone="ch-system-glibc libpthread"><primary sortas="c-libpthread">libpthread</primary></indexterm>
+<para id="libpthread"><command>libpthread</command> is the POSIX threads library.</para>
+
+<indexterm zone="ch-system-glibc libresolv"><primary sortas="c-libresolv">libresolv</primary></indexterm>
+<para id="libresolv"><command>libresolv</command> contains functions for creating,
+sending, and interpreting packets to the Internet domain name servers.</para>
+
+<indexterm zone="ch-system-glibc librpcsvc"><primary sortas="c-librpcsvc">librpcsvc</primary></indexterm>
+<para id="librpcsvc"><command>librpcsvc</command>contains functions providing
+miscellaneous RPC services.</para>
+
+<indexterm zone="ch-system-glibc librt"><primary sortas="c-librt">librt</primary></indexterm>
+<para id="librt"><command>librt</command> contains functions providing most of the
+interfaces specified by the POSIX.1b Realtime Extension.</para>
+
+<indexterm zone="ch-system-glibc libthread_db"><primary sortas="c-libthread_db">libthread_db</primary></indexterm>
+<para id="libthread_db"><command>libthread_db</command> contains functions useful for
+building debuggers for multi-threaded programs.</para>
+
+<indexterm zone="ch-system-glibc libutil"><primary sortas="c-libutil">libutil</primary></indexterm>
+<para id="libutil"><command>libutil</command> contains code for "standard" functions
+used in many different Unix utilities.</para>
+
+</sect2>
+
+
+
+</sect1>
diff --git a/chapter06/grep.xml b/chapter06/grep.xml
index c3754edb0..5e7c5a58a 100644
--- a/chapter06/grep.xml
+++ b/chapter06/grep.xml
@@ -1,16 +1,23 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+ <!ENTITY % general-entities SYSTEM "../general.ent">
+ %general-entities;
+]>
<sect1 id="ch-system-grep" xreflabel="Grep">
-<title>Installing Grep-&grep-version;</title>
-<?dbhtml filename="grep.html" dir="chapter06"?>
+<title>Grep-&grep-version;</title>
+<?dbhtml filename="grep.html"?>
+
+<indexterm zone="ch-system-grep"><primary sortas="a-Grep">Grep</primary></indexterm>
<para>The Grep package contains programs for searching through files.</para>
-<screen>&buildtime; &grep-time;
-&diskspace; &grep-compsize;</screen>
+<screen>&buildtime; 0.1 SBU
+&diskspace; 5.8 MB</screen>
+
+<para>Grep installation depends on: Bash, Binutils, Coreutils,
+Diffutils, GCC, Gettext, Glibc, Make, Sed, Texinfo.</para>
-&aa-grep-down;
-&aa-grep-dep;
-<sect2><title>&nbsp;</title><para>&nbsp;</para></sect2>
<sect2>
<title>Installation of Grep</title>
@@ -23,17 +30,40 @@
<screen><userinput>make</userinput></screen>
-<para>To have the results tested, issue:
+<para>To test the results, issue:
<userinput>make check</userinput>.</para>
-<para>And install the package:</para>
+<para>Now install the package:</para>
<screen><userinput>make install</userinput></screen>
</sect2>
-&aa-grep-shortdesc;
-&aa-grep-desc;
-</sect1>
+<sect2 id="contents-grep"><title>Contents of Grep</title>
+
+<para><emphasis>Installed programs</emphasis>: egrep (link to grep), fgrep
+(link to grep) and grep</para>
+
+</sect2>
+
+
+<sect2><title>Short descriptions</title>
+<indexterm zone="ch-system-grep egrep"><primary sortas="b-egrep">egrep</primary></indexterm>
+<para id="egrep"><command>egrep</command> prints lines matching an extended regular
+expression.</para>
+
+<indexterm zone="ch-system-grep fgrep"><primary sortas="b-fgrep">fgrep</primary></indexterm>
+<para id="fgrep"><command>fgrep</command> prints lines matching a list of fixed
+strings.</para>
+
+<indexterm zone="ch-system-grep grep"><primary sortas="b-grep">grep</primary></indexterm>
+<para id="grep"><command>grep</command> prints lines matching a basic regular
+expression.</para>
+
+</sect2>
+
+
+
+</sect1>
diff --git a/chapter06/groff.xml b/chapter06/groff.xml
index 3722ba239..7e48a9456 100644
--- a/chapter06/groff.xml
+++ b/chapter06/groff.xml
@@ -1,16 +1,23 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+ <!ENTITY % general-entities SYSTEM "../general.ent">
+ %general-entities;
+]>
<sect1 id="ch-system-groff" xreflabel="Groff">
-<title>Installing Groff-&groff-version;</title>
-<?dbhtml filename="groff.html" dir="chapter06"?>
+<title>Groff-&groff-version;</title>
+<?dbhtml filename="groff.html"?>
+
+<indexterm zone="ch-system-groff"><primary sortas="a-Groff">Groff</primary></indexterm>
<para>The Groff package contains programs for processing and formatting text.</para>
-<screen>&buildtime; &groff-time;
-&diskspace; &groff-compsize;</screen>
+<screen>&buildtime; 0.5 SBU
+&diskspace; 43 MB</screen>
+
+<para>Groff installation depends on: Bash, Binutils, Coreutils, Diffutils,
+Gawk, GCC, Glibc, Grep, Make, Sed.</para>
-&aa-groff-down;
-&aa-groff-dep;
-<sect2><title>&nbsp;</title><para>&nbsp;</para></sect2>
<sect2>
<title>Installation of Groff</title>
@@ -28,7 +35,7 @@ live elsewhere, you may want to change <emphasis>PAGE=letter</emphasis> to
<screen><userinput>make</userinput></screen>
-<para>And install it:</para>
+<para>Now install it:</para>
<screen><userinput>make install</userinput></screen>
@@ -41,8 +48,156 @@ ln -s tbl /usr/bin/gtbl</userinput></screen>
</sect2>
-&aa-groff-shortdesc;
-&aa-groff-desc;
-</sect1>
+<sect2 id="contents-groff"><title>Contents of Groff</title>
+
+<para><emphasis>Installed programs</emphasis>: addftinfo, afmtodit, eqn,
+eqn2graph, geqn (link to eqn), grn, grodvi, groff, groffer, grog, grolbp,
+grolj4, grops, grotty, gtbl (link to tbl), hpftodit, indxbib, lkbib,
+lookbib, mmroff, neqn, nroff, pfbtops, pic, pic2graph, post-grohtml,
+pre-grohtml, refer, soelim, tbl, tfmtodit, troff and zsoelim (link to
+soelim)</para>
+
+</sect2>
+
+<sect2><title>Short descriptions</title>
+
+<indexterm zone="ch-system-groff addftinfo"><primary sortas="b-addftinfo">addftinfo</primary></indexterm>
+<para id="addftinfo"><command>addftinfo</command> reads a troff font file and adds some
+additional font-metric information that is used by the groff system.</para>
+
+<indexterm zone="ch-system-groff afmtodit"><primary sortas="b-afmtodit">afmtodit</primary></indexterm>
+<para id="afmtodit"><command>afmtodit</command> creates a font file for use with
+groff and grops.</para>
+
+<indexterm zone="ch-system-groff eqn"><primary sortas="b-eqn">eqn</primary></indexterm>
+<para id="eqn"><command>eqn</command> compiles descriptions of equations embedded
+within troff input files into commands that are understood by troff.</para>
+
+<indexterm zone="ch-system-groff eqn2graph"><primary sortas="b-eqn2graph">eqn2graph</primary></indexterm>
+<para id="eqn2graph"><command>eqn2graph</command> converts an EQN equation into a cropped
+image.</para>
+
+<indexterm zone="ch-system-groff grn"><primary sortas="b-grn">grn</primary></indexterm>
+<para id="grn"><command>grn</command> is a groff preprocessor for gremlin files.</para>
+
+<indexterm zone="ch-system-groff grodvi"><primary sortas="b-grodvi">grodvi</primary></indexterm>
+<para id="grodvi"><command>grodvi</command> is a driver for groff that produces TeX dvi format.</para>
+
+<indexterm zone="ch-system-groff groff"><primary sortas="b-groff">groff</primary></indexterm>
+<para id="groff"><command>groff</command> is a front-end to the groff document
+formatting system. Normally it runs the troff program and a post-processor
+appropriate for the selected device.</para>
+
+<indexterm zone="ch-system-groff groffer"><primary sortas="b-groffer">groffer</primary></indexterm>
+<para id="groffer"><command>groffer</command> displays groff files and man pages on X
+and tty terminals.</para>
+
+<indexterm zone="ch-system-groff grog"><primary sortas="b-grog">grog</primary></indexterm>
+<para id="grog"><command>grog</command> reads files and guesses which of the groff
+options -e, -man, -me, -mm, -ms, -p, -s, and -t are required for printing
+files, and reports the groff command including those options.</para>
+
+<indexterm zone="ch-system-groff grolbp"><primary sortas="b-grolbp">grolbp</primary></indexterm>
+<para id="grolbp"><command>grolbp</command> is a groff driver for Canon CAPSL printers
+(LBP-4 and LBP-8 series laser printers).</para>
+
+<indexterm zone="ch-system-groff grolj4"><primary sortas="b-grolj4">grolj4</primary></indexterm>
+<para id="grolj4"><command>grolj4</command> is a driver for groff that produces output
+in PCL5 format suitable for an HP Laserjet 4 printer.</para>
+
+<indexterm zone="ch-system-groff grops"><primary sortas="b-grops">grops</primary></indexterm>
+<para id="grops"><command>grops</command> translates the output of GNU troff to
+Postscript.</para>
+<indexterm zone="ch-system-groff grotty"><primary sortas="b-grotty">grotty</primary></indexterm>
+<para id="grotty"><command>grotty</command> translates the output of GNU troff into
+a form suitable for typewriter-like devices.</para>
+
+<indexterm zone="ch-system-groff gtbl"><primary sortas="b-gtbl">gtbl</primary></indexterm>
+<para id="gtbl"><command>gtbl</command> is the GNU implementation of tbl.</para>
+
+<indexterm zone="ch-system-groff hpftodit"><primary sortas="b-hpftodit">hpftodit</primary></indexterm>
+<para id="hpftodit"><command>hpftodit</command> creates a font file for use with
+groff -Tlj4 from an HP-tagged font metric file.</para>
+
+<indexterm zone="ch-system-groff indxbib"><primary sortas="b-indxbib">indxbib</primary></indexterm>
+<para id="indxbib"><command>indxbib</command> makes an inverted index for the
+bibliographic databases a specified file for use with refer, lookbib,
+and lkbib.</para>
+
+<indexterm zone="ch-system-groff lkbib"><primary sortas="b-lkbib">lkbib</primary></indexterm>
+<para id="lkbib"><command>lkbib</command> searches bibliographic databases for
+references that contain specified keys and reports any references found.</para>
+
+<indexterm zone="ch-system-groff lookbib"><primary sortas="b-lookbib">lookbib</primary></indexterm>
+<para id="lookbib"><command>lookbib</command> prints a prompt on the standard error
+(unless the standard input is not a terminal), reads from the standard input
+a line containing a set of keywords, searches the bibliographic databases in
+a specified file for references containing those keywords, prints any
+references found on the standard output and repeats this process until the
+end of input.</para>
+
+<indexterm zone="ch-system-groff mmroff"><primary sortas="b-mmroff">mmroff</primary></indexterm>
+<para id="mmroff"><command>mmroff</command> is a simple preprocessor for groff.</para>
+
+<indexterm zone="ch-system-groff neqn"><primary sortas="b-neqn">neqn</primary></indexterm>
+<para id="neqn"><command>neqn</command> formats equations for ASCII (American Standard Code for Information Interchange) output.</para>
+
+<indexterm zone="ch-system-groff nroff"><primary sortas="b-nroff">nroff</primary></indexterm>
+<para id="nroff"><command>nroff</command> is a script that emulates the nroff command
+using groff.</para>
+
+<indexterm zone="ch-system-groff pfbtops"><primary sortas="b-pfbtops">pfbtops</primary></indexterm>
+<para id="pfbtops"><command>pfbtops</command> translates a Postscript font in .pfb
+format to ASCII.</para>
+
+<indexterm zone="ch-system-groff pic"><primary sortas="b-pic">pic</primary></indexterm>
+<para id="pic"><command>pic</command> compiles descriptions of pictures embedded
+within troff or TeX input files into commands understood by TeX or troff.</para>
+
+<indexterm zone="ch-system-groff pic2graph"><primary sortas="b-pic2graph">pic2graph</primary></indexterm>
+<para id="pic2graph"><command>pic2graph</command> converts a PIC diagram into a cropped
+image.</para>
+
+<indexterm zone="ch-system-groff pre-grohtml"><primary sortas="b-pre-grohtml">pre-grohtml</primary></indexterm>
+<para id="pre-grohtml"><command>pre-grohtml </command> translates the output of GNU troff
+to html.</para>
+
+<indexterm zone="ch-system-groff post-grohtml"><primary sortas="b-post-grohtml">post-grohtml</primary></indexterm>
+<para id="post-grohtml"><command>post-grohtml</command> translates the output of GNU troff
+to html.</para>
+
+<indexterm zone="ch-system-groff refer"><primary sortas="b-refer">refer</primary></indexterm>
+<para id="refer"><command>refer</command> copies the contents of a file to the
+standard output, except that lines between .[ and .] are interpreted as
+citations, and lines between .R1 and .R2 are interpreted as commands about
+how citations are to be processed.</para>
+
+<indexterm zone="ch-system-groff soelim"><primary sortas="b-soelim">soelim</primary></indexterm>
+<para id="soelim"><command>soelim</command> reads files and replaces lines of the form
+<emphasis>.so file</emphasis> by the contents of the mentioned
+<emphasis>file</emphasis>.</para>
+
+<indexterm zone="ch-system-groff tbl"><primary sortas="b-tbl">tbl</primary></indexterm>
+<para id="tbl"><command>tbl</command> compiles descriptions of tables embedded
+within troff input files into commands that are understood by troff.</para>
+
+<indexterm zone="ch-system-groff tfmtodit"><primary sortas="b-tfmtodit">tfmtodit</primary></indexterm>
+<para id="tfmtodit"><command>tfmtodit</command> creates a font file for use with
+groff -Tdvi.</para>
+
+<indexterm zone="ch-system-groff troff"><primary sortas="b-troff">troff</primary></indexterm>
+<para id="troff"><command>troff</command> is highly compatible with Unix troff.
+Usually it should be invoked using the groff command, which will also run
+preprocessors and post-processors in the appropriate order and with the
+appropriate options.</para>
+
+<indexterm zone="ch-system-groff zsoelim"><primary sortas="b-zsoelim">zsoelim</primary></indexterm>
+<para id="zsoelim"><command>zsoelim</command> is the GNU implementation of soelim.</para>
+
+</sect2>
+
+
+
+</sect1>
diff --git a/chapter06/grub.xml b/chapter06/grub.xml
index fa5394355..a7c7ff1bc 100644
--- a/chapter06/grub.xml
+++ b/chapter06/grub.xml
@@ -1,16 +1,23 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+ <!ENTITY % general-entities SYSTEM "../general.ent">
+ %general-entities;
+]>
<sect1 id="ch-system-grub" xreflabel="Grub">
-<title>Installing Grub-&grub-version;</title>
-<?dbhtml filename="grub.html" dir="chapter06"?>
+<title>Grub-&grub-version;</title>
+<?dbhtml filename="grub.html"?>
+
+<indexterm zone="ch-system-grub"><primary sortas="a-Grub">Grub</primary></indexterm>
<para>The Grub package contains the GRand Unified Bootloader.</para>
-<screen>&buildtime; &grub-time;
-&diskspace; &grub-compsize;</screen>
+<screen>&buildtime; 0.2 SBU
+&diskspace; 10 MB</screen>
+
+<para>Grub installation depends on: Bash, Binutils, Coreutils, Diffutils,
+GCC, Glibc, Grep, Make, Ncurses, Sed.</para>
-&aa-grub-down;
-&aa-grub-dep;
-<sect2><title>&nbsp;</title><para>&nbsp;</para></sect2>
<sect2>
<title>Installation of Grub</title>
@@ -18,10 +25,10 @@
<para>This package is known to behave badly when you have changed its default
optimization flags (including the -march and -mcpu options). Therefore, if you
have defined any environment variables that override default optimizations,
-such as CFLAGS and CXXFLAGS, we recommend unsetting them when building
+such as CFLAGS and CXXFLAGS, we recommend un-setting them when building
Grub.</para>
-<para>Prepare Grub for compilation:</para>
+<para>First prepare Grub for compilation:</para>
<screen><userinput>./configure --prefix=/usr</userinput></screen>
@@ -29,7 +36,7 @@ Grub.</para>
<screen><userinput>make</userinput></screen>
-<para>And install it:</para>
+<para>Now install it:</para>
<screen><userinput>make install
mkdir /boot/grub
@@ -47,8 +54,35 @@ and/or <filename>reiserfs_stage1_5</filename> files.</para>
</sect2>
-&aa-grub-shortdesc;
-&aa-grub-desc;
-</sect1>
+<sect2 id="contents-grub"><title>Contents of Grub</title>
+
+<para><emphasis>Installed programs</emphasis>: grub, grub-install,
+grub-md5-crypt, grub-terminfo and mbchk</para>
+
+</sect2>
+
+<sect2><title>Short descriptions</title>
+
+<indexterm zone="ch-system-grub grub"><primary sortas="b-grub">grub</primary></indexterm>
+<para id="grub"><command>grub</command> is the GRand Unified Bootloader's command
+shell.</para>
+<indexterm zone="ch-system-grub grub-install"><primary sortas="b-grub-install">grub-install</primary></indexterm>
+<para id="grub-install"><command>grub-install</command> installs GRUB on the given device.</para>
+
+<indexterm zone="ch-system-grub grub-md5-crypt"><primary sortas="b-grub-md5-crypt">grub-md5-crypt</primary></indexterm>
+<para id="grub-md5-crypt"><command>grub-md5-crypt</command> encrypts a password in MD5
+format.</para>
+
+<indexterm zone="ch-system-grub grub-terminfo"><primary sortas="b-grub-terminfo">grub-terminfo</primary></indexterm>
+<para id="grub-terminfo"><command>grub-terminfo</command> generates a terminfo command from a
+terminfo name. It can be used if you have an uncommon terminal.</para>
+
+<indexterm zone="ch-system-grub mbchk"><primary sortas="b-mbchk">mbchk</primary></indexterm>
+<para id="mbchk"><command>mbchk</command> checks the format of a multi-boot kernel.</para>
+
+</sect2>
+
+
+</sect1>
diff --git a/chapter06/gzip.xml b/chapter06/gzip.xml
index 81e054b4d..6294e6906 100644
--- a/chapter06/gzip.xml
+++ b/chapter06/gzip.xml
@@ -1,17 +1,24 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+ <!ENTITY % general-entities SYSTEM "../general.ent">
+ %general-entities;
+]>
<sect1 id="ch-system-gzip" xreflabel="Gzip">
-<title>Installing Gzip-&gzip-version;</title>
-<?dbhtml filename="gzip.html" dir="chapter06"?>
+<title>Gzip-&gzip-version;</title>
+<?dbhtml filename="gzip.html"?>
+
+<indexterm zone="ch-system-gzip"><primary sortas="a-Gzip">Gzip</primary></indexterm>
<para>The Gzip package contains programs for compressing and decompressing
files.</para>
-<screen>&buildtime; &gzip-time;
-&diskspace; &gzip-compsize;</screen>
+<screen>&buildtime; 0.1 SBU
+&diskspace; 2.6 MB</screen>
+
+<para>Gzip installation depends on: Bash, Binutils, Coreutils, Diffutils,
+GCC, Glibc, Grep, Make, Sed.</para>
-&aa-gzip-down;
-&aa-gzip-dep;
-<sect2><title>&nbsp;</title><para>&nbsp;</para></sect2>
<sect2>
<title>Installation of Gzip</title>
@@ -22,7 +29,7 @@ files.</para>
<para>The <command>gzexe</command> script has the location of the
<command>gzip</command> binary hard-wired into it. Because we later change
-the location of the binary, the following command assures that the new
+the location of the binary, the following command ensures that the new
location gets placed into the script:</para>
<screen><userinput>cp gzexe.in{,.backup}
@@ -36,8 +43,7 @@ sed 's%"BINDIR"%/bin%' gzexe.in.backup &gt; gzexe.in</userinput></screen>
<screen><userinput>make install</userinput></screen>
-<para>And move the programs to the <filename
-class="directory">/bin</filename> directory:</para>
+<para>Move the programs to the <filename class="directory">/bin</filename> directory:</para>
<screen><userinput>mv /usr/bin/gzip /bin
rm /usr/bin/{gunzip,zcat}
@@ -47,8 +53,64 @@ ln -s gunzip /bin/uncompress</userinput></screen>
</sect2>
-&aa-gzip-shortdesc;
-&aa-gzip-desc;
-</sect1>
+<sect2 id="contents-gzip"><title>Contents of Gzip</title>
+
+<para><emphasis>Installed programs</emphasis>: gunzip (link to gzip), gzexe,
+gzip, uncompress (link to gunzip), zcat (link to gzip), zcmp, zdiff,
+zegrep, zfgrep, zforce, zgrep, zless, zmore and znew</para>
+
+</sect2>
+
+<sect2><title>Short descriptions</title>
+
+<indexterm zone="ch-system-gzip gunzip"><primary sortas="b-gunzip">gunzip</primary></indexterm>
+<para id="gunzip"><command>gunzip</command> decompresses gzipped files.</para>
+
+<indexterm zone="ch-system-gzip gzexe"><primary sortas="b-gzexe">gzexe</primary></indexterm>
+<para id="gzexe"><command>gzexe</command> is used to create self-uncompressing
+executable files.</para>
+
+<indexterm zone="ch-system-gzip gzip"><primary sortas="b-gzip">gzip</primary></indexterm>
+<para id="gzip"><command>gzip</command> compresses the given files, using
+Lempel-Ziv (LZ77) coding.</para>
+
+<indexterm zone="ch-system-gzip zcat"><primary sortas="b-zcat">zcat</primary></indexterm>
+<para id="zcat"><command>zcat</command> uncompresses the given gzipped files to
+standard output.</para>
+
+<indexterm zone="ch-system-gzip zcmp"><primary sortas="b-zcmp">zcmp</primary></indexterm>
+<para id="zcmp"><command>zcmp</command> runs cmp on gzipped files.</para>
+
+<indexterm zone="ch-system-gzip zdiff"><primary sortas="b-zdiff">zdiff</primary></indexterm>
+<para id="zdiff"><command>zdiff</command> runs diff on gzipped files.</para>
+<indexterm zone="ch-system-gzip zegrep"><primary sortas="b-zegrep">zegrep</primary></indexterm>
+<para id="zegrep"><command>zegrep</command> runs egrep on gzipped files.</para>
+
+<indexterm zone="ch-system-gzip zfgrep"><primary sortas="b-zfgrep">zfgrep</primary></indexterm>
+<para id="zfgrep"><command>zfgrep</command> runs fgrep on gzipped files.</para>
+
+<indexterm zone="ch-system-gzip zforce"><primary sortas="b-zforce">zforce</primary></indexterm>
+<para id="zforce"><command>zforce</command> forces a .gz extension on all given files
+that are gzipped files, so that gzip will not compress them again. This can be
+useful when file names were truncated during a file transfer.</para>
+
+<indexterm zone="ch-system-gzip zgrep"><primary sortas="b-zgrep">zgrep</primary></indexterm>
+<para id="zgrep"><command>zgrep</command> runs grep on gzipped files.</para>
+
+<indexterm zone="ch-system-gzip zless"><primary sortas="b-zless">zless</primary></indexterm>
+<para id="zless"><command>zless</command> runs less on gzipped files.</para>
+
+<indexterm zone="ch-system-gzip zmore"><primary sortas="b-zmore">zmore</primary></indexterm>
+<para id="zmore"><command>zmore</command> runs more on gzipped files.</para>
+
+<indexterm zone="ch-system-gzip znew"><primary sortas="b-znew">znew</primary></indexterm>
+<para id="znew"><command>znew</command> re-compresses files from compress format
+to gzip format -- .Z to .gz.</para>
+
+</sect2>
+
+
+
+</sect1>
diff --git a/chapter06/iana-etc.xml b/chapter06/iana-etc.xml
new file mode 100644
index 000000000..e83ec168c
--- /dev/null
+++ b/chapter06/iana-etc.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+ <!ENTITY % general-entities SYSTEM "../general.ent">
+ %general-entities;
+]>
+<sect1 id="ch-system-iana-etc" xreflabel="Iana-Etc">
+<title>Iana-Etc-&iana-etc-version;</title>
+<?dbhtml filename="iana-etc.html"?>
+
+<indexterm zone="ch-system-iana-etc"><primary sortas="a-Iana-Etc">Iana-Etc</primary></indexterm>
+
+<para>The Iana-Etc package provides data for network services and protocols.</para>
+
+<screen>&buildtime; 0.1 SBU
+&diskspace; 641 KB</screen>
+
+<para>The installation dependencies for Iana-Etc haven't been checked yet.</para>
+
+
+
+<sect2>
+<title>Installation of Iana-Etc</title>
+
+<para>Parse the data:</para>
+
+<screen><userinput>make</userinput></screen>
+
+<para>Now install it:</para>
+
+<screen><userinput>make install</userinput></screen>
+
+</sect2>
+
+
+<sect2 id="contents-iana-etc"><title>Contents of Iana-Etc</title>
+
+<para><emphasis>Installed files</emphasis>: protocols, services</para>
+
+<indexterm zone="ch-system-iana-etc"><primary sortas="e-/etc/protocols">/etc/protocols</primary></indexterm>
+
+<indexterm zone="ch-system-iana-etc"><primary sortas="e-/etc/services">/etc/services</primary></indexterm>
+
+</sect2>
+
+
+</sect1>
diff --git a/chapter06/inetutils.xml b/chapter06/inetutils.xml
index 43bb389fb..9d944d340 100644
--- a/chapter06/inetutils.xml
+++ b/chapter06/inetutils.xml
@@ -1,16 +1,23 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+ <!ENTITY % general-entities SYSTEM "../general.ent">
+ %general-entities;
+]>
<sect1 id="ch-system-inetutils" xreflabel="Inetutils">
-<title>Installing Inetutils-&inetutils-version;</title>
-<?dbhtml filename="inetutils.html" dir="chapter06"?>
+<title>Inetutils-&inetutils-version;</title>
+<?dbhtml filename="inetutils.html"?>
+
+<indexterm zone="ch-system-inetutils"><primary sortas="a-Inetutils">Inetutils</primary></indexterm>
<para>The Inetutils package contains programs for basic networking.</para>
-<screen>&buildtime; &inetutils-time;
-&diskspace; &inetutils-compsize;</screen>
+<screen>&buildtime; 0.2 SBU
+&diskspace; 11 MB</screen>
+
+<para>Inetutils installation depends on: Bash, Binutils, Coreutils,
+Diffutils, GCC, Glibc, Grep, Make, Ncurses, Sed.</para>
-&aa-inetutils-down;
-&aa-inetutils-dep;
-<sect2><title>&nbsp;</title><para>&nbsp;</para></sect2>
<sect2>
<title>Installation of Inetutils</title>
@@ -19,14 +26,14 @@
However, the Inetutils build system will insist on installing all the man
pages anyway. The following patch will correct this situation:</para>
-<screen><userinput>patch -Np1 -i ../&inetutils-no-server-man-pages-patch;</userinput></screen>
+<screen><userinput>patch -Np1 -i ../inetutils-&inetutils-version;-no_server_man_pages-1.patch</userinput></screen>
<para>Now prepare Inetutils for compilation:</para>
<screen><userinput>./configure --prefix=/usr --libexecdir=/usr/sbin \
-&nbsp;&nbsp;&nbsp;&nbsp;--sysconfdir=/etc --localstatedir=/var \
-&nbsp;&nbsp;&nbsp;&nbsp;--disable-logger --disable-syslogd \
-&nbsp;&nbsp;&nbsp;&nbsp;--disable-whois --disable-servers</userinput></screen>
+ --sysconfdir=/etc --localstatedir=/var \
+ --disable-logger --disable-syslogd \
+ --disable-whois --disable-servers</userinput></screen>
<para>The meaning of the configure options:</para>
@@ -61,15 +68,50 @@ replacements are available for many of these servers.</para></listitem>
<screen><userinput>make install</userinput></screen>
-<para>And move the <command>ping</command> program to its FHS-compliant
+<para>Move the <command>ping</command> program to its FHS-compliant
place:</para>
<screen><userinput>mv /usr/bin/ping /bin</userinput></screen>
</sect2>
-&aa-inetutils-shortdesc;
-&aa-inetutils-desc;
-</sect1>
+<sect2 id="contents-inetutils"><title>Contents of Inetutils</title>
+
+<para><emphasis>Installed programs</emphasis>: ftp, ping, rcp, rlogin, rsh,
+talk, telnet and tftp</para>
+
+</sect2>
+
+<sect2><title>Short descriptions</title>
+
+<indexterm zone="ch-system-inetutils ftp"><primary sortas="b-ftp">ftp</primary></indexterm>
+<para id="ftp"><command>ftp</command> is the ARPANET file transfer program.</para>
+
+<indexterm zone="ch-system-inetutils ping"><primary sortas="b-ping">ping</primary></indexterm>
+<para id="ping"><command>ping</command> sends echo-request packets and reports how
+long the replies take.</para>
+
+<indexterm zone="ch-system-inetutils rcp"><primary sortas="b-rcp">rcp</primary></indexterm>
+<para id="rcp"><command>rcp</command> does remote file copy.</para>
+<indexterm zone="ch-system-inetutils rlogin"><primary sortas="b-rlogin">rlogin</primary></indexterm>
+<para id="rlogin"><command>rlogin</command> does remote login.</para>
+
+<indexterm zone="ch-system-inetutils rsh"><primary sortas="b-rsh">rsh</primary></indexterm>
+<para id="rsh"><command>rsh</command> runs a remote shell.</para>
+
+<indexterm zone="ch-system-inetutils talk"><primary sortas="b-talk">talk</primary></indexterm>
+<para id="talk"><command>talk</command> is used to chat up another user.</para>
+
+<indexterm zone="ch-system-inetutils telnet"><primary sortas="b-telnet">telnet</primary></indexterm>
+<para id="telnet"><command>telnet</command> is an interface to the TELNET protocol.</para>
+
+<indexterm zone="ch-system-inetutils tftp"><primary sortas="b-tftp">tftp</primary></indexterm>
+<para id="tftp"><command>tftp</command> is a trivial file transfer program.</para>
+
+</sect2>
+
+
+
+</sect1>
diff --git a/chapter06/introduction.xml b/chapter06/introduction.xml
new file mode 100644
index 000000000..4e0ef7cbb
--- /dev/null
+++ b/chapter06/introduction.xml
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+ <!ENTITY % general-entities SYSTEM "../general.ent">
+ %general-entities;
+]>
+<sect1 id="ch-system-introduction">
+<title>Introduction</title>
+<?dbhtml filename="introduction.html"?>
+
+<para>In this chapter we enter the building site, and start
+constructing our LFS system in earnest. That is, we chroot into
+our temporary mini Linux system, create some auxiliary things,
+and then start installing all the packages, one by one.</para>
+
+<para>The installation of all this software is pretty straightforward,
+and you will probably think it would be much shorter to give here
+the generic installation instructions and explain in full only the
+installation of those packages that require an alternate method.
+Although we agree with that, we nevertheless choose to give the
+full instructions for each and every package, simply to minimize
+the possibilities for mistakes.</para>
+
+<para>The key to learning what makes a Linux system work is to know
+what each package is used for and why the user (or the system) needs it.
+For this purpose for every installed package a summary of its content is
+given followed by concise descriptions of each program and library it
+installed.</para>
+
+<para>If you plan to use compiler optimizations in this chapter, take a look at
+the optimization hint at <ulink url="&hints-root;optimization.txt"/>. Compiler
+optimizations can make a program run slightly faster, but they may also cause
+compilation difficulties and even problems when running the program. If a
+package refuses to compile when using optimization, try to compile it without
+optimization and see if the problem goes away. Even if the package does compile
+when using optimization, there is the risk it may have been compiled incorrectly
+due to complex interactions between the code and build tools. In short, the
+small potential gains achieved in using compiler optimization are generally
+outweighed by the risk. First time builders of LFS are encouraged to build
+without custom optimizations. Your system will still be very fast and very
+stable at the same time.</para>
+
+<para>The order in which packages are installed in this chapter has
+to be strictly followed, to ensure that no program gets a path referring
+to <filename class="directory">/tools</filename> hard-wired into it.
+For the same reason, <emphasis>do not </emphasis> compile packages
+in parallel. Compiling in parallel may save you some time (especially on
+dual-CPU machines), but it could result in a program containing a
+hard-wired path to <filename class="directory">/tools</filename>,
+which will cause the program to stop working when that directory
+is removed.</para>
+
+<para>Before the installation instructions each installation page gives some
+information about the package: a concise description of what it contains,
+approximately how long it will take to build it, how much disk space it needs
+during this building process, the official download location of the package
+(in case you just want to update a few of them), and which other packages it
+needs in order to be built successfully. After the installation instructions
+follows a list of programs and libraries that the package installs, together
+with a series of short descriptions of these.</para>
+
+<para>If you wish to keep track of which package installs what files, you may
+want to use a package manager. For a general overview of package managers have
+a look at <ulink url="&blfs-root;view/cvs/introduction/pkgmgt.html"/>. And for
+a package management method specifically geared towards LFS see
+<ulink url="&hints-root;more_control_and_pkg_man.txt"/>.</para>
+
+</sect1>
diff --git a/chapter06/kbd.xml b/chapter06/kbd.xml
index 854be7e1a..4c37aade6 100644
--- a/chapter06/kbd.xml
+++ b/chapter06/kbd.xml
@@ -1,16 +1,23 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+ <!ENTITY % general-entities SYSTEM "../general.ent">
+ %general-entities;
+]>
<sect1 id="ch-system-kbd" xreflabel="Kbd">
-<title>Installing Kbd-&kbd-version;</title>
-<?dbhtml filename="kbd.html" dir="chapter06"?>
+<title>Kbd-&kbd-version;</title>
+<?dbhtml filename="kbd.html"?>
-<para>The Kbd package contains keytable files and keyboard utilities.</para>
+<indexterm zone="ch-system-kbd"><primary sortas="a-Kbd">Kbd</primary></indexterm>
-<screen>&buildtime; &kbd-time;
-&diskspace; &kbd-compsize;</screen>
+<para>The Kbd package contains key-table files and keyboard utilities.</para>
+
+<screen>&buildtime; 0.1 SBU
+&diskspace; 12 MB</screen>
+
+<para>Kbd installation depends on: Bash, Binutils, Bison, Coreutils,
+Diffutils, Flex, GCC, Gettext, Glibc, Grep, Gzip, M4, Make, Sed.</para>
-&aa-kbd-down;
-&aa-kbd-dep;
-<sect2><title>&nbsp;</title><para>&nbsp;</para></sect2>
<sect2>
<title>Installation of Kbd</title>
@@ -19,7 +26,7 @@
<command>setvesablank</command> and <command>getunimap</command>) are
not installed. First enable the compilation of these utilities:</para>
-<screen><userinput>patch -Np1 -i ../&kbd-patch;</userinput></screen>
+<screen><userinput>patch -Np1 -i ../kbd-&kbd-version;-more-programs-1.patch</userinput></screen>
<para>Now prepare Kbd for compilation:</para>
@@ -29,13 +36,16 @@ not installed. First enable the compilation of these utilities:</para>
<screen><userinput>make</userinput></screen>
-<para>And install it:</para>
+<para>Now install it:</para>
<screen><userinput>make install</userinput></screen>
</sect2>
-<sect2><title>Configuring your keyboard</title>
+<sect2 id="conf-kbd"><title>Configuring your keyboard</title>
+<indexterm zone="conf-kbd">
+<primary sortas="a-Kbd">Kbd</primary>
+<secondary>configuring</secondary></indexterm>
<para>Few things are more annoying than using Linux while a wrong keymap
for your keyboard is loaded. If you have a standard US keyboard, however, you
@@ -50,25 +60,123 @@ symlink by running the following command:</para>
<para>Of course, replace <filename>path/to/keymap</filename> with the path and
name of your keyboard's map file. For example, if you have a Dutch keyboard,
-you would use <filename>i386/qwerty/nl.map.gz</filename>.</para>
+you would use <filename>/usr/share/kbd/keymaps/i386/qwerty/nl.map.gz</filename>.</para>
<para>Another way to set your keyboard's layout is to compile the keymap
into the kernel. This ensures that your keyboard will always work as expected,
even when you boot into maintenance mode (by passing `init=/bin/sh' to the
kernel), as then the bootscript that normally sets up your keymap isn't run.</para>
-<para>When in <xref linkend="chapter-mixture"/> you're ready to compile the
+<para>When in <xref linkend="chapter-bootable"/> you're ready to compile the
kernel, run the following command to patch the current default keymap into the
source (you will have to repeat this command whenever you unpack a new
kernel):</para>
<screen><userinput>loadkeys -m /usr/share/kbd/keymaps/defkeymap.map.gz &gt; \
-&nbsp;&nbsp;&nbsp;&nbsp;/usr/src/linux-&kernel-version;/drivers/char/defkeymap.c</userinput></screen>
+ /usr/src/linux-2.4.25/drivers/char/defkeymap.c</userinput></screen>
</sect2>
-&aa-kbd-shortdesc;
-&aa-kbd-desc;
-</sect1>
+<sect2 id="contents-kbd"><title>Contents of Kbd</title>
+
+<para><emphasis>Installed programs</emphasis>: chvt, deallocvt, dumpkeys,
+fgconsole, getkeycodes, getunimap, kbd_mode, kbdrate, loadkeys, loadunimap,
+mapscrn, openvt, psfaddtable (link to psfxtable), psfgettable (link to
+psfxtable), psfstriptable (link to psfxtable), psfxtable, resizecons,
+setfont, setkeycodes, setleds, setlogcons, setmetamode, setvesablank,
+showconsolefont, showkey, unicode_start and unicode_stop</para>
+
+</sect2>
+
+
+<sect2><title>Short descriptions</title>
+
+<indexterm zone="ch-system-kbd chvt"><primary sortas="b-chvt">chvt</primary></indexterm>
+<para id="chvt"><command>chvt</command> changes the foreground virtual terminal.</para>
+
+<indexterm zone="ch-system-kbd deallocvt"><primary sortas="b-deallocvt">deallocvt</primary></indexterm>
+<para id="deallocvt"><command>deallocvt</command> deallocates unused virtual terminals.</para>
+
+<indexterm zone="ch-system-kbd dumpkeys"><primary sortas="b-dumpkeys">dumpkeys</primary></indexterm>
+<para id="dumpkeys"><command>dumpkeys</command> dumps the keyboard translation tables.</para>
+
+<indexterm zone="ch-system-kbd fgconsole"><primary sortas="b-fgconsole">fgconsole</primary></indexterm>
+<para id="fgconsole"><command>fgconsole</command> prints the number of the active virtual terminal.</para>
+
+<indexterm zone="ch-system-kbd getkeycodes"><primary sortas="b-getkeycodes">getkeycodes</primary></indexterm>
+<para id="getkeycodes"><command>getkeycodes</command> prints the kernel scancode-to-keycode
+mapping table.</para>
+
+<indexterm zone="ch-system-kbd getunimap"><primary sortas="b-getunimap">getunimap</primary></indexterm>
+<para id="getunimap"><command>getunimap</command> prints the currently used unimap.</para>
+
+<indexterm zone="ch-system-kbd kbd_mode"><primary sortas="b-kbd_mode">kbd_mode</primary></indexterm>
+<para id="kbd_mode"><command>kbd_mode</command> reports or sets the keyboard mode.</para>
+
+<indexterm zone="ch-system-kbd kbdrate"><primary sortas="b-kbdrate">kbdrate</primary></indexterm>
+<para id="kbdrate"><command>kbdrate</command> sets the keyboard repeat and delay rates.</para>
+
+<indexterm zone="ch-system-kbd loadkeys"><primary sortas="b-loadkeys">loadkeys</primary></indexterm>
+<para id="loadkeys"><command>loadkeys</command> loads the keyboard translation tables.</para>
+
+<indexterm zone="ch-system-kbd loadunimap"><primary sortas="b-loadunimap">loadunimap</primary></indexterm>
+<para id="loadunimap"><command>loadunimap</command> loads the kernel unicode-to-font mapping table.</para>
+
+<indexterm zone="ch-system-kbd mapscrn"><primary sortas="b-mapscrn">mapscrn</primary></indexterm>
+<para id="mapscrn"><command>mapscrn</command> is an obsolete program that used to load
+a user-defined output character mapping table into the console driver. This is
+now done by setfont.</para>
+<indexterm zone="ch-system-kbd openvt"><primary sortas="b-openvt">openvt</primary></indexterm>
+<para id="openvt"><command>openvt</command> starts a program on a new virtual terminal (VT).</para>
+
+<indexterm zone="ch-system-kbd psf"><primary sortas="b-psf*">psf*</primary></indexterm>
+<para id="psf"><command>psf*</command> are a set of tools for handling Unicode
+character tables for console fonts.</para>
+
+<indexterm zone="ch-system-kbd resizecons"><primary sortas="b-resizecons">resizecons</primary></indexterm>
+<para id="resizecons"><command>resizecons</command> changes the kernel idea of the console size.</para>
+
+<indexterm zone="ch-system-kbd setfont"><primary sortas="b-setfont">setfont</primary></indexterm>
+<para id="setfont"><command>setfont</command> lets you change the EGA/VGA fonts on the console.</para>
+
+<indexterm zone="ch-system-kbd setkeycodes"><primary sortas="b-setkeycodes">setkeycodes</primary></indexterm>
+<para id="setkeycodes"><command>setkeycodes</command> loads kernel scancode-to-keycode
+mapping table entries, useful if you have some unusual keys on your keyboard.</para>
+
+<indexterm zone="ch-system-kbd setleds"><primary sortas="b-setleds">setleds</primary></indexterm>
+<para id="setleds"><command>setleds</command> sets the keyboard flags and LEDs. Many
+people find it useful to have "Num Lock" on by default, setleds +num achieves this.</para>
+
+<indexterm zone="ch-system-kbd setlogcons"><primary sortas="b-setlogcons">setlogcons</primary></indexterm>
+<para id="setlogcons"><command>setlogcons</command> sends kernel messages to the console.</para>
+
+<indexterm zone="ch-system-kbd setmetamode"><primary sortas="b-setmetamode">setmetamode</primary></indexterm>
+<para id="setmetamode"><command>setmetamode</command> defines the keyboard meta-key handling.</para>
+
+<indexterm zone="ch-system-kbd setvesablank"><primary sortas="b-setvesablank">setvesablank</primary></indexterm>
+<para id="setvesablank"><command>setvesablank</command> lets you fiddle with the built-in
+hardware screensaver (no toasters, just a blank screen).</para>
+
+<indexterm zone="ch-system-kbd showconsolefont"><primary sortas="b-showconsolefont">showconsolefont</primary></indexterm>
+<para id="showconsolefont"><command>showconsolefont</command> shows the current EGA/VGA console
+screen font.</para>
+
+<indexterm zone="ch-system-kbd showkey"><primary sortas="b-showkey">showkey</primary></indexterm>
+<para id="showkey"><command>showkey</command> reports the scancodes and keycodes and
+ASCII codes of the keys pressed on the keyboard.</para>
+
+<indexterm zone="ch-system-kbd unicode_start"><primary sortas="b-unicode_start">unicode_start</primary></indexterm>
+<para id="unicode_start"><command>unicode_start</command> puts the keyboard and console in
+unicode mode.</para>
+
+<indexterm zone="ch-system-kbd unicode_stop"><primary sortas="b-unicode_stop">unicode_stop</primary></indexterm>
+<para id="unicode_stop"><command>unicode_stop</command> reverts keyboard and console from
+unicode mode.</para>
+
+</sect2>
+
+
+
+</sect1>
diff --git a/chapter06/kernel-headers.xml b/chapter06/kernel-headers.xml
index 14d73d992..1a51b1a31 100644
--- a/chapter06/kernel-headers.xml
+++ b/chapter06/kernel-headers.xml
@@ -1,11 +1,19 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+ <!ENTITY % general-entities SYSTEM "../general.ent">
+ %general-entities;
+]>
<sect1 id="ch-system-kernel-headers">
-<title>Installing Linux-&kernel-version; headers</title>
-<?dbhtml filename="kernelheaders.html" dir="chapter06"?>
+<title>Linux-&linux-version; headers</title>
+<?dbhtml filename="kernelheaders.html"?>
-<screen>&buildtime; &kernel-time-headers;
-&diskspace; &kernel-compsize-headers;</screen>
+<indexterm zone="ch-system-kernel-headers">
+<primary sortas="a-Linux">Linux</primary>
+<secondary>system, headers</secondary></indexterm>
+
+<screen>&buildtime; 0.1 SBU
+&diskspace; 186 MB</screen>
-<sect2><title>&nbsp;</title><para>&nbsp;</para></sect2>
<sect2>
<title>Installation of the kernel headers</title>
@@ -28,7 +36,6 @@ Create an empty <filename>autoconf.h</filename> file with:</para>
</sect2>
-<sect2><title>&nbsp;</title><para>&nbsp;</para></sect2>
<sect2>
<title>Why we copy the kernel headers</title>
@@ -42,8 +49,8 @@ post by Linus Torvalds to the Linux Kernel Mailing List points out:</para>
<screen>I would suggest that people who compile new kernels should:
- not have a single symbolic link in sight (except the one that the
- kernel build itself sets up, namely the "linux/include/asm" symlink
- that is only used for the internal kernel compile itself)
+ kernel build itself sets up, namely the <quote>linux/include/asm</quote>
+ symlink that is only used for the internal kernel compile itself)
And yes, this is what I do. My /usr/src/linux still has the old 2.2.13
header files, even though I haven't run a 2.2.13 kernel in a _loong_
@@ -54,8 +61,8 @@ And this is actually what has been the suggested environment for at
least the last five years. I don't know why the symlink business keeps
on living on, like a bad zombie. Pretty much every distribution still
has that broken symlink, and people still remember that the linux
-sources should go into "/usr/src/linux" even though that hasn't been
-true in a _loong_ time.</screen>
+sources should go into <quote>/usr/src/linux</quote> even though that hasn't
+been true in a _loong_ time.</screen>
<para>The essential part is where Linus states that the header files should be
<emphasis>the ones which Glibc was compiled against</emphasis>. These are
@@ -71,4 +78,3 @@ symlinks.</para>
</sect2>
</sect1>
-
diff --git a/chapter06/less.xml b/chapter06/less.xml
index 1445b1529..e404cc8fa 100644
--- a/chapter06/less.xml
+++ b/chapter06/less.xml
@@ -1,16 +1,23 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+ <!ENTITY % general-entities SYSTEM "../general.ent">
+ %general-entities;
+]>
<sect1 id="ch-system-less" xreflabel="Less">
-<title>Installing Less-&less-version;</title>
-<?dbhtml filename="less.html" dir="chapter06"?>
+<title>Less-&less-version;</title>
+<?dbhtml filename="less.html"?>
+
+<indexterm zone="ch-system-less"><primary sortas="a-Less">Less</primary></indexterm>
<para>The Less package contains a text file viewer.</para>
-<screen>&buildtime; &less-time;
-&diskspace; &less-compsize;</screen>
+<screen>&buildtime; 0.1 SBU
+&diskspace; 3.4 MB</screen>
+
+<para>Less installation depends on: Bash, Binutils, Coreutils, Diffutils,
+GCC, Glibc, Grep, Make, Ncurses, Sed.</para>
-&aa-less-down;
-&aa-less-dep;
-<sect2><title>&nbsp;</title><para>&nbsp;</para></sect2>
<sect2>
<title>Installation of Less</title>
@@ -31,14 +38,37 @@ configuration files.</para></listitem>
<screen><userinput>make</userinput></screen>
-<para>And install it:</para>
+<para>Now install it:</para>
<screen><userinput>make install</userinput></screen>
</sect2>
-&aa-less-shortdesc;
-&aa-less-desc;
-</sect1>
+<sect2 id="contents-less"><title>Contents of Less</title>
+
+<para><emphasis>Installed programs</emphasis>: less, lessecho and lesskey</para>
+
+</sect2>
+
+
+<sect2><title>Short descriptions</title>
+<indexterm zone="ch-system-less less"><primary sortas="b-less">less</primary></indexterm>
+<para id="less"><command>less</command> is a file viewer or pager. It displays the
+contents of the given file, letting you scroll around, find strings, and jump
+to marks.</para>
+
+<indexterm zone="ch-system-less lessecho"><primary sortas="b-lessecho">lessecho</primary></indexterm>
+<para id="lessecho"><command>lessecho</command> is needed to expand meta-characters,
+such as * and ?, in filenames on Unix systems.</para>
+
+<indexterm zone="ch-system-less lesskey"><primary sortas="b-lesskey">lesskey</primary></indexterm>
+<para id="lesskey"><command>lesskey</command> is used to specify the key bindings
+for less.</para>
+
+</sect2>
+
+
+
+</sect1>
diff --git a/chapter06/lfs-utils.xml b/chapter06/lfs-utils.xml
deleted file mode 100644
index a4a025126..000000000
--- a/chapter06/lfs-utils.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-<sect1 id="ch-system-lfs-utils" xreflabel="Lfs-Utils">
-<title>Installing Lfs-Utils-&lfs-utils-version;</title>
-<?dbhtml filename="lfs-utils.html" dir="chapter06"?>
-
-<para>The Lfs-Utils package contains a few helper files.</para>
-
-<screen>&buildtime; &lfs-utils-time;
-&diskspace; &lfs-utils-compsize;</screen>
-
-&aa-lfs-utils-down;
-&aa-lfs-utils-dep;
-
-<sect2><title>&nbsp;</title><para>&nbsp;</para></sect2>
-
-<sect2>
-<title>Installation of Lfs-Utils</title>
-
-<para>Prepare Lfs-Utils for compilation:</para>
-
-<screen><userinput>./configure --prefix=/usr --with-libc</userinput></screen>
-
-<para>The meaning of the configure option:</para>
-
-<itemizedlist>
-<listitem><para><userinput>--with-libc</userinput>: This causes the
-<command>mktemp</command> program to use the <emphasis>mkstemp</emphasis>
-and <emphasis>mkdtemp</emphasis> functions from the system C
-library.</para></listitem>
-</itemizedlist>
-
-<para>Compile the package:</para>
-
-<screen><userinput>make</userinput></screen>
-
-<para>And install it:</para>
-
-<screen><userinput>make install</userinput></screen>
-
-<para>Now copy two supporting files included in the Lfs-Utils tarball to
-their destination:</para>
-
-<screen><userinput>cp etc/{services,protocols} /etc</userinput></screen>
-
-<para>The <filename>/etc/services</filename> file is used to resolve service
-numbers to human-readable names, and the <filename>/etc/protocols</filename>
-does the same for protocol numbers.</para>
-
-</sect2>
-
-&aa-lfs-utils-shortdesc;
-&aa-lfs-utils-desc;
-
-</sect1>
-
diff --git a/chapter06/libtool.xml b/chapter06/libtool.xml
index b38b28c82..0cd065c3b 100644
--- a/chapter06/libtool.xml
+++ b/chapter06/libtool.xml
@@ -1,18 +1,25 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+ <!ENTITY % general-entities SYSTEM "../general.ent">
+ %general-entities;
+]>
<sect1 id="ch-system-libtool" xreflabel="Libtool">
-<title>Installing Libtool-&libtool-version;</title>
-<?dbhtml filename="libtool.html" dir="chapter06"?>
+<title>Libtool-&libtool-version;</title>
+<?dbhtml filename="libtool.html"?>
+
+<indexterm zone="ch-system-libtool"><primary sortas="a-Libtool">Libtool</primary></indexterm>
<para>The Libtool package contains the GNU generic library support script.
It wraps the complexity of using shared libraries in a consistent, portable
interface.</para>
-<screen>&buildtime; &libtool-time;
-&diskspace; &libtool-compsize;</screen>
+<screen>&buildtime; 1.5 SBU
+&diskspace; 20 MB</screen>
+
+<para>Libtool installation depends on: Bash, Binutils, Coreutils, Diffutils,
+GCC, Glibc, Grep, Make, Sed.</para>
-&aa-libtool-down;
-&aa-libtool-dep;
-<sect2><title>&nbsp;</title><para>&nbsp;</para></sect2>
<sect2>
<title>Installation of Libtool</title>
@@ -25,17 +32,41 @@ interface.</para>
<screen><userinput>make</userinput></screen>
-<para>To have the results tested, issue:
+<para>To test the results, issue:
<userinput>make check</userinput>.</para>
-<para>And install the package:</para>
+<para>Install the package:</para>
<screen><userinput>make install</userinput></screen>
</sect2>
-&aa-libtool-shortdesc;
-&aa-libtool-desc;
-</sect1>
+<sect2 id="contents-libtool"><title>Contents of Libtool</title>
+
+<para><emphasis>Installed programs</emphasis>: libtool and libtoolize</para>
+
+<para><emphasis>Installed libraries</emphasis>: libltdl.[a,so].</para>
+
+</sect2>
+
+
+<sect2><title>Short descriptions</title>
+<indexterm zone="ch-system-libtool libtool"><primary sortas="b-libtool">libtool</primary></indexterm>
+<para id="libtool"><command>libtool</command> provides generalized library-building
+support services.</para>
+
+<indexterm zone="ch-system-libtool libtoolize"><primary sortas="b-libtoolize">libtoolize</primary></indexterm>
+<para id="libtoolize"><command>libtoolize</command> provides a standard way to add
+libtool support to a package.</para>
+
+<indexterm zone="ch-system-libtool libltdl"><primary sortas="c-libltdl">libltdl</primary></indexterm>
+<para id="libltdl"><command>libltdl</command> hides the various difficulties of
+dlopening libraries.</para>
+
+</sect2>
+
+
+
+</sect1>
diff --git a/chapter06/m4.xml b/chapter06/m4.xml
index d990a91e5..1ca0a6861 100644
--- a/chapter06/m4.xml
+++ b/chapter06/m4.xml
@@ -1,16 +1,23 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+ <!ENTITY % general-entities SYSTEM "../general.ent">
+ %general-entities;
+]>
<sect1 id="ch-system-m4" xreflabel="M4">
-<title>Installing M4-&m4-version;</title>
-<?dbhtml filename="m4.html" dir="chapter06"?>
+<title>M4-&m4-version;</title>
+<?dbhtml filename="m4.html"?>
+
+<indexterm zone="ch-system-m4"><primary sortas="a-M4">M4</primary></indexterm>
<para>The M4 package contains a macro processor.</para>
-<screen>&buildtime; &m4-time;
-&diskspace; &m4-compsize;</screen>
+<screen>&buildtime; 0.1 SBU
+&diskspace; 3.0 MB</screen>
+
+<para>M4 installation depends on: Bash, Binutils, Coreutils, Diffutils, GCC,
+Gettext, Glibc, Grep, Make, Perl, Sed.</para>
-&aa-m4-down;
-&aa-m4-dep;
-<sect2><title>&nbsp;</title><para>&nbsp;</para></sect2>
<sect2>
<title>Installation of M4</title>
@@ -23,7 +30,7 @@
<screen><userinput>make</userinput></screen>
-<para>To have the results tested, issue:
+<para>To test the results, issue:
<userinput>make check</userinput>.</para>
<para>And install the package:</para>
@@ -32,8 +39,26 @@
</sect2>
-&aa-m4-shortdesc;
-&aa-m4-desc;
-</sect1>
+<sect2 id="contents-m4"><title>Contents of M4</title>
+
+<para><emphasis>Installed program</emphasis>: m4</para>
+
+</sect2>
+
+<sect2><title>Short description</title>
+<indexterm zone="ch-system-m4 m4"><primary sortas="b-m4">m4</primary></indexterm>
+<para id="m4"><command>m4</command> copies the given files
+while expanding the macros that they contain. These macros are either built-in
+or user-defined and can take any number of arguments. Besides just doing macro
+expansion, m4 has built-in functions for including named files, running Unix
+commands, doing integer arithmetic, manipulating text in various ways,
+recursion, and so on. The m4 program can be used either as a front-end to a
+compiler or as a macro processor in its own right.</para>
+
+</sect2>
+
+
+
+</sect1>
diff --git a/chapter06/make.xml b/chapter06/make.xml
index e3d034f30..99b4d57bf 100644
--- a/chapter06/make.xml
+++ b/chapter06/make.xml
@@ -1,16 +1,23 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+ <!ENTITY % general-entities SYSTEM "../general.ent">
+ %general-entities;
+]>
<sect1 id="ch-system-make" xreflabel="Make">
-<title>Installing Make-&make-version;</title>
-<?dbhtml filename="make.html" dir="chapter06"?>
+<title>Make-&make-version;</title>
+<?dbhtml filename="make.html"?>
+
+<indexterm zone="ch-system-make"><primary sortas="a-Make">Make</primary></indexterm>
<para>The Make package contains a program for compiling large packages.</para>
-<screen>&buildtime; &make-time;
-&diskspace; &make-compsize;</screen>
+<screen>&buildtime; 0.2 SBU
+&diskspace; 8.8 MB</screen>
+
+<para>Make installation depends on: Bash, Binutils, Coreutils, Diffutils,
+GCC, Gettext, Glibc, Grep, Sed.</para>
-&aa-make-down;
-&aa-make-dep;
-<sect2><title>&nbsp;</title><para>&nbsp;</para></sect2>
<sect2>
<title>Installation of Make</title>
@@ -23,18 +30,31 @@
<screen><userinput>make</userinput></screen>
-<para>To have the results tested, issue:
-<userinput>make HOME=/root check</userinput>. The HOME environment variable
-needs to be set to prevent one of the tests from failing.</para>
+<para>To test the results, issue:
+<userinput>make check</userinput>.</para>
-<para>And install the package:</para>
+<para>Now install the package:</para>
<screen><userinput>make install</userinput></screen>
</sect2>
-&aa-make-shortdesc;
-&aa-make-desc;
-</sect1>
+<sect2 id="contents-make"><title>Contents of Make</title>
+
+<para><emphasis>Installed program</emphasis>: make</para>
+
+</sect2>
+
+<sect2><title>Short description</title>
+
+<indexterm zone="ch-system-make make"><primary sortas="b-make">make</primary></indexterm>
+<para id="make"><command>make</command> automatically determines which pieces of a
+large package need to be recompiled, and then issues the relevant commands.</para>
+
+</sect2>
+
+
+
+</sect1>
diff --git a/chapter06/makedev.xml b/chapter06/makedev.xml
index a83f07885..6d6e08edb 100644
--- a/chapter06/makedev.xml
+++ b/chapter06/makedev.xml
@@ -1,17 +1,24 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+ <!ENTITY % general-entities SYSTEM "../general.ent">
+ %general-entities;
+]>
<sect1 id="ch-system-MAKEDEV" xreflabel="Make_devices">
<title>Creating devices with Make_devices-&makedev-version;</title>
-<?dbhtml filename="makedevices.html" dir="chapter06"?>
+<?dbhtml filename="makedevices.html"?>
+
+<indexterm zone="ch-system-MAKEDEV"><primary sortas="a-Make_devices">Make_devices</primary></indexterm>
<para>The Make_devices package contains a script for creating device
nodes.</para>
-<screen>&buildtime; &makedev-time;
-&diskspace; &makedev-compsize;</screen>
+<screen>&buildtime; 1 SBU
+&diskspace; 160 KB</screen>
+
+<para>For its installation Make_devices depends on: Bash, Bzip2,
+Coreutils.</para>
-&aa-makedev-down;
-&aa-makedev-dep;
-<sect2><title>&nbsp;</title><para>&nbsp;</para></sect2>
<sect2>
<title>Making devices</title>
@@ -63,23 +70,36 @@ you are satisfied, run the script to create the device files:</para>
<screen><userinput>cd /dev
./make_devices</userinput></screen>
-<para>If you had success with mounting the devpts file system earlier in <xref
-linkend="ch-system-proc"/>, you can continue with the next section. If you were
+<para>If you had success with mounting the devpts file system earlier in
+<xref linkend="ch-system-proc"/>, you can continue with the next section. If you were
unable to mount devpts, you will have to create a few static ptyXX and ttyXX
device nodes instead. To do this, open <filename>make_devices</filename> in
-your editor, go to the section "Pseudo-TTY masters" and enable a few ptyXX
-devices -- a handful are enough to enable the test suites to run, but if you
-plan to run a kernel without devpts support you will probably need many more
-(every xterm, ssh connection, telnet connection, and the like, uses one of
-these pseudo terminals). In the immediately following section "Pseudo-TTY
-slaves", enable the corresponding ttyXX devices. When you are done, rerun
+your editor, go to the section <quote>Pseudo-TTY masters</quote> and enable a
+few ptyXX devices -- a handful are enough to enable the test suites to run, but
+if you plan to run a kernel without devpts support you will probably need many
+more (every xterm, ssh connection, telnet connection, and the like, uses one of
+these pseudo terminals). In the immediately following section <quote>Pseudo-TTY
+slaves</quote>, enable the corresponding ttyXX devices. When you are done, rerun
<command>./make_devices</command> from inside <filename>/dev</filename> to
have it create the new devices.</para>
</sect2>
-&aa-makedev-shortdesc;
-&aa-makedev-desc;
-</sect1>
+<sect2 id="contents-makedev"><title>Contents of Make_devices</title>
+
+<para><emphasis>Installed script</emphasis>: make_devices</para>
+
+</sect2>
+
+<sect2><title>Short description</title>
+<indexterm zone="ch-system-MAKEDEV make_devices"><primary sortas="d-make_devices">make_devices</primary></indexterm>
+<para id="make_devices"><command>make_devices</command> is a script for creating a basic set of
+static device nodes, usually residing in the <filename class="directory">/dev</filename> directory.</para>
+
+</sect2>
+
+
+
+</sect1>
diff --git a/chapter06/man-pages.xml b/chapter06/man-pages.xml
new file mode 100644
index 000000000..755522fa5
--- /dev/null
+++ b/chapter06/man-pages.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+ <!ENTITY % general-entities SYSTEM "../general.ent">
+ %general-entities;
+]>
+<sect1 id="ch-system-man-pages" xreflabel="Man-pages">
+<title>Man-pages-&man-pages-version;</title>
+<?dbhtml filename="man-pages.html"?>
+
+<indexterm zone="ch-system-man-pages"><primary sortas="a-Man-pages">Man-pages</primary></indexterm>
+
+<para>The Man-pages package contains over 1200 manual pages.</para>
+
+<screen>&buildtime; 0.1 SBU
+&diskspace; 15 MB</screen>
+
+<para>For its installation Man-pages depends on: Bash, Coreutils, Make.</para>
+
+
+
+<sect2>
+<title>Installation of Man-pages</title>
+
+<para>Install Man-pages by running:</para>
+
+<screen><userinput>make install</userinput></screen>
+
+</sect2>
+
+
+<sect2 id="contents-manpages"><title>Contents of Man-pages</title>
+
+<para><emphasis>Installed files</emphasis>: various manual pages</para>
+
+</sect2>
+
+
+<sect2><title>Short description</title>
+
+<indexterm zone="ch-system-man-pages manual-pages"><primary sortas="e-manual-pages">manual pages</primary></indexterm>
+<para id="manual-pages">Examples of provided <emphasis>manual pages</emphasis> are the pages
+describing all the C and C++ functions, important device files, and important
+configuration files.</para>
+
+</sect2>
+
+
+
+</sect1>
diff --git a/chapter06/man.xml b/chapter06/man.xml
index d308a1263..37ec8c8e9 100644
--- a/chapter06/man.xml
+++ b/chapter06/man.xml
@@ -1,16 +1,23 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+ <!ENTITY % general-entities SYSTEM "../general.ent">
+ %general-entities;
+]>
<sect1 id="ch-system-man" xreflabel="Man">
-<title>Installing Man-&man-version;</title>
-<?dbhtml filename="man.html" dir="chapter06"?>
+<title>Man-&man-version;</title>
+<?dbhtml filename="man.html"?>
+
+<indexterm zone="ch-system-man"><primary sortas="a-Man">Man</primary></indexterm>
<para>The Man package contains programs for finding and viewing manual pages.</para>
-<screen>&buildtime; &man-time;
-&diskspace; &man-compsize;</screen>
+<screen>&buildtime; 0.1 SBU
+&diskspace; 1.9MB</screen>
+
+<para>Man installation depends on: Bash, Binutils, Coreutils, Gawk, GCC,
+Glibc, Grep, Make, Sed.</para>
-&aa-man-down;
-&aa-man-dep;
-<sect2><title>&nbsp;</title><para>&nbsp;</para></sect2>
<sect2>
<title>Installation of Man</title>
@@ -21,7 +28,7 @@
of Groff. In particular, man pages will now display using the full terminal
width instead of being limited to 80 characters:</para>
-<screen><userinput>patch -Np1 -i ../&man-80cols-patch;</userinput></screen>
+<screen><userinput>patch -Np1 -i ../man-&man-version;-80cols.patch</userinput></screen>
<para>The second is a sed substitution to add the <emphasis>-R</emphasis>
switch to the <emphasis>PAGER</emphasis> variable so that escape sequences are
@@ -29,9 +36,9 @@ properly handled by Less:</para>
<screen><userinput>sed -i 's/-is/&amp;R/' configure</userinput></screen>
-<para>The third is also a sed substitution to comment out the "MANPATH
-/usr/man" line in the <filename>man.conf</filename> file to prevent redundant
-results when using programs such as <command>whatis</command>:</para>
+<para>The third is also a sed substitution to comment out the <quote>MANPATH
+/usr/man</quote> line in the <filename>man.conf</filename> file to prevent
+redundant results when using programs such as <command>whatis</command>:</para>
<screen><userinput>sed -i 's%MANPATH./usr/man%#&amp;%' src/man.conf.in</userinput></screen>
@@ -46,8 +53,8 @@ results when using programs such as <command>whatis</command>:</para>
to select a sensible set of default options. For example: only English man
pages, no message catalogs, man not suid, handle compressed man pages, compress
cat pages, create cat pages whenever the appropriate directory exists, follow
-FHS by putting cat pages under /var/cache/man provided that that directory
-exists.</para></listitem>
+FHS by putting cat pages under /var/cache/man (provided that directory
+exists).</para></listitem>
<listitem><para><userinput>-confdir=/etc</userinput>: This tells the
<command>man</command> program to look for the <filename>man.conf</filename>
@@ -58,11 +65,11 @@ configuration file in the <filename>/etc</filename> directory.</para></listitem>
<screen><userinput>make</userinput></screen>
-<para>And install it:</para>
+<para>Lastly, install it:</para>
<screen><userinput>make install</userinput></screen>
-<note><para>If you wish to disable SGR escape sequences, you should edit the
+<note><para>If you wish to disable SGR (Select Graphic Rendition) escape sequences, you should edit the
<filename>man.conf</filename> file and add the <emphasis>-c</emphasis> switch
to NROFF.</para></note>
@@ -72,8 +79,43 @@ formatting and compression issues for man pages.</para>
</sect2>
-&aa-man-shortdesc;
-&aa-man-desc;
-</sect1>
+<sect2 id="contents-man"><title>Contents of Man</title>
+
+<para><emphasis>Installed programs</emphasis>: apropos, makewhatis, man,
+man2dvi, man2html and whatis</para>
+
+</sect2>
+
+
+<sect2><title>Short descriptions</title>
+
+<indexterm zone="ch-system-man apropos"><primary sortas="b-apropos">apropos</primary></indexterm>
+<para id="apropos"><command>apropos</command> searches the whatis database and displays
+the short descriptions of system commands that contain a given string.</para>
+
+<indexterm zone="ch-system-man makewhatis"><primary sortas="b-makewhatis">makewhatis</primary></indexterm>
+<para id="makewhatis"><command>makewhatis</command> builds the whatis database. It reads
+all the manual pages in the manpath and for each page writes the name and a
+short description in the whatis database.</para>
+<indexterm zone="ch-system-man man"><primary sortas="b-man">man</primary></indexterm>
+<para id="man"><command>man</command> formats and displays the requested on-line
+manual page.</para>
+
+<indexterm zone="ch-system-man man2dvi"><primary sortas="b-man2dvi">man2dvi</primary></indexterm>
+<para id="man2dvi"><command>man2dvi</command> converts a manual page into dvi format.</para>
+
+<indexterm zone="ch-system-man man2html"><primary sortas="b-man2html">man2html</primary></indexterm>
+<para id="man2html"><command>man2html</command> converts a manual page into html.</para>
+
+<indexterm zone="ch-system-man whatis"><primary sortas="b-whatis">whatis</primary></indexterm>
+<para id="whatis"><command>whatis</command> searches the whatis database and displays
+the short descriptions of system commands that contain the given keyword as a
+separate word.</para>
+
+</sect2>
+
+
+
+</sect1>
diff --git a/chapter06/manpages.xml b/chapter06/manpages.xml
deleted file mode 100644
index 3956bfd72..000000000
--- a/chapter06/manpages.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<sect1 id="ch-system-man-pages" xreflabel="Man-pages">
-<title>Installing Man-pages-&man-pages-version;</title>
-<?dbhtml filename="man-pages.html" dir="chapter06"?>
-
-<para>The Man-pages package contains over 1200 manual pages.</para>
-
-<screen>&buildtime; &man-pages-time;
-&diskspace; &man-pages-compsize;</screen>
-
-&aa-manpages-down;
-&aa-manpages-dep;
-
-<sect2><title>&nbsp;</title><para>&nbsp;</para></sect2>
-
-<sect2>
-<title>Installation of Man-pages</title>
-
-<para>Install Man-pages by running:</para>
-
-<screen><userinput>make install</userinput></screen>
-
-</sect2>
-
-&aa-manpages-shortdesc;
-&aa-manpages-desc;
-
-</sect1>
-
diff --git a/chapter06/mktemp.xml b/chapter06/mktemp.xml
new file mode 100644
index 000000000..90087d771
--- /dev/null
+++ b/chapter06/mktemp.xml
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+ <!ENTITY % general-entities SYSTEM "../general.ent">
+ %general-entities;
+]>
+<sect1 id="ch-system-mktemp" xreflabel="Mktemp">
+<title>Mktemp-&mktemp-version;</title>
+<?dbhtml filename="mktemp.html"?>
+
+<indexterm zone="ch-system-mktemp"><primary sortas="a-Mktemp">Mktemp</primary></indexterm>
+
+<para>The Mktemp package contains programs used to create secure temporary
+files in shell scripts.</para>
+
+<screen>&buildtime; 0.1 SBU
+&diskspace; 317 KB</screen>
+
+<para>The installation dependencies for Mktemp haven't been checked yet.</para>
+
+
+
+<sect2>
+<title>Installation of Mktemp</title>
+
+<para>Many scripts still use the deprecated <command>tempfile</command>
+program, which has functionality much the same as <command>mktemp</command>.
+Patch mktemp to include a <command>tempfile</command> wrapper:</para>
+
+<screen><userinput>patch -Np1 -i ../mktemp-&mktemp-version;-add-tempfile.patch</userinput></screen>
+
+<para>Now prepare Mktemp for compilation:</para>
+
+<screen><userinput>./configure --prefix=/usr --with-libc</userinput></screen>
+
+<para>The meaning of the configure option:</para>
+
+<itemizedlist>
+<listitem><para><userinput>--with-libc</userinput>: This causes the
+<command>mktemp</command> program to use the <emphasis>mkstemp</emphasis>
+and <emphasis>mkdtemp</emphasis> functions from the system C
+library.</para></listitem>
+</itemizedlist>
+
+<para>Compile the package:</para>
+
+<screen><userinput>make</userinput></screen>
+
+<para>Now install it:</para>
+
+<screen><userinput>make install</userinput></screen>
+
+</sect2>
+
+
+<sect2 id="contents-mktemp"><title>Contents of Mktemp</title>
+
+<para><emphasis>Installed programs</emphasis>: mktemp, tempfile</para>
+
+</sect2>
+
+<sect2><title>Short descriptions</title>
+
+<indexterm zone="ch-system-mktemp mktemp"><primary sortas="b-mktemp">mktemp</primary></indexterm>
+<para id="mktemp"><command>mktemp</command> creates temporary files in a secure manner.
+It is used in scripts.</para>
+
+<indexterm zone="ch-system-mktemp tempfile"><primary sortas="b-tempfile">tempfile</primary></indexterm>
+<para id="tempfile"><command>tempfile</command> creates temporary files in a less secure
+manner than <command>mktemp</command>. It is installed for
+backwards-compatibility.</para>
+
+</sect2>
+
+
+</sect1>
diff --git a/chapter06/modutils.xml b/chapter06/modutils.xml
index 1f7c0fdbe..829dc4739 100644
--- a/chapter06/modutils.xml
+++ b/chapter06/modutils.xml
@@ -1,16 +1,23 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+ <!ENTITY % general-entities SYSTEM "../general.ent">
+ %general-entities;
+]>
<sect1 id="ch-system-modutils" xreflabel="Modutils">
-<title>Installing Modutils-&modutils-version;</title>
-<?dbhtml filename="modutils.html" dir="chapter06"?>
+<title>Modutils-&modutils-version;</title>
+<?dbhtml filename="modutils.html"?>
+
+<indexterm zone="ch-system-modutils"><primary sortas="a-Modutils">Modutils</primary></indexterm>
<para>The Modutils package contains programs for handling kernel modules.</para>
-<screen>&buildtime; &modutils-time;
-&diskspace; &modutils-compsize;</screen>
+<screen>&buildtime; 0.1 SBU
+&buildtime; 2.9 MB</screen>
+
+<para>Modutils installation depends on: Bash, Binutils, Bison, Coreutils,
+Diffutils, Flex, GCC, Glibc, Grep, M4, Make, Sed.</para>
-&aa-modutils-down;
-&aa-modutils-dep;
-<sect2><title>&nbsp;</title><para>&nbsp;</para></sect2>
<sect2>
<title>Installation of Modutils</title>
@@ -23,14 +30,66 @@
<screen><userinput>make</userinput></screen>
-<para>And install it:</para>
+<para>Install it:</para>
<screen><userinput>make install</userinput></screen>
</sect2>
-&aa-modutils-shortdesc;
-&aa-modutils-desc;
-</sect1>
+<sect2 id="contents-modutils"><title>Contents of Modutils</title>
+
+<para><emphasis>Installed programs</emphasis>: depmod, genksyms, insmod,
+insmod_ksymoops_clean, kallsyms (link to insmod), kernelversion, ksyms
+(link to insmod), lsmod (link to insmod), modinfo, modprobe (link to insmod)
+and rmmod (link to insmod)</para>
+
+</sect2>
+
+
+<sect2><title>Short descriptions</title>
+
+<indexterm zone="ch-system-modutils depmod"><primary sortas="b-depmod">depmod</primary></indexterm>
+<para id="depmod"><command>depmod</command> creates a dependency file, based on the
+symbols it finds in the existing set of modules. This dependency file is used
+by modprobe to automatically load the required modules.</para>
+
+<indexterm zone="ch-system-modutils genksyms"><primary sortas="b-genksyms">genksyms</primary></indexterm>
+<para id="genksyms"><command>genksyms</command> generates symbol version information.</para>
+
+<indexterm zone="ch-system-modutils insmod"><primary sortas="b-insmod">insmod</primary></indexterm>
+<para id="insmod"><command>insmod</command> installs a loadable module in the running kernel.</para>
+
+<indexterm zone="ch-system-modutils insmod_ksymoops_clean"><primary sortas="b-insmod_ksymoops_clean">insmod_ksymoops_clean</primary></indexterm>
+<para id="insmod_ksymoops_clean"><command>insmod_ksymoops_clean</command> deletes saved ksyms and
+modules not accessed for two days.</para>
+<indexterm zone="ch-system-modutils kallsyms"><primary sortas="b-kallsyms">kallsyms</primary></indexterm>
+<para id="kallsyms"><command>kallsyms</command> extracts all kernel symbols for debugging.</para>
+
+<indexterm zone="ch-system-modutils kernelversion"><primary sortas="b-kernelversion">kernelversion</primary></indexterm>
+<para id="kernelversion"><command>kernelversion</command> reports the major version of the
+running kernel.</para>
+
+<indexterm zone="ch-system-modutils ksyms"><primary sortas="b-ksyms">ksyms</primary></indexterm>
+<para id="ksyms"><command>ksyms</command> displays exported kernel symbols.</para>
+
+<indexterm zone="ch-system-modutils lsmod"><primary sortas="b-lsmod">lsmod</primary></indexterm>
+<para id="lsmod"><command>lsmod</command> shows which modules are loaded.</para>
+
+<indexterm zone="ch-system-modutils modinfo"><primary sortas="b-modinfo">modinfo</primary></indexterm>
+<para id="modinfo"><command>modinfo</command> examines an object file associated with
+a kernel module and displays any information that it can glean.</para>
+
+<indexterm zone="ch-system-modutils modprobe"><primary sortas="b-modprobe">modprobe</primary></indexterm>
+<para id="modprobe"><command>modprobe</command> uses a dependency file, created by
+depmod, to automatically load the relevant modules.</para>
+
+<indexterm zone="ch-system-modutils rmmod"><primary sortas="b-rmmod">rmmod</primary></indexterm>
+<para id="rmmod"><command>rmmod</command> unloads modules from the running kernel.</para>
+
+</sect2>
+
+
+
+</sect1>
diff --git a/chapter06/ncurses.xml b/chapter06/ncurses.xml
index 700d81b9e..4be199096 100644
--- a/chapter06/ncurses.xml
+++ b/chapter06/ncurses.xml
@@ -1,17 +1,24 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+ <!ENTITY % general-entities SYSTEM "../general.ent">
+ %general-entities;
+]>
<sect1 id="ch-system-ncurses" xreflabel="Ncurses">
-<title>Installing Ncurses-&ncurses-version;</title>
-<?dbhtml filename="ncurses.html" dir="chapter06"?>
+<title>Ncurses-&ncurses-version;</title>
+<?dbhtml filename="ncurses.html"?>
-<para>The Ncurses package contains libraries for the terminal-independent
+<indexterm zone="ch-system-ncurses"><primary sortas="a-Ncurses">Ncurses</primary></indexterm>
+
+<para>The Ncurses package contains libraries for terminal-independent
handling of character screens.</para>
-<screen>&buildtime; &ncurses-time;
-&diskspace; &ncurses-compsize;</screen>
+<screen>&buildtime; 0.6 SBU
+&diskspace; 27 MB</screen>
+
+<para>Ncurses installation depends on: Bash, Binutils, Coreutils, Diffutils,
+Gawk, GCC, Glibc, Grep, Make, Sed.</para>
-&aa-ncurses-down;
-&aa-ncurses-dep;
-<sect2><title>&nbsp;</title><para>&nbsp;</para></sect2>
<sect2>
<title>Installation of Ncurses</title>
@@ -32,7 +39,7 @@ handling of character screens.</para>
<screen><userinput>chmod 755 /usr/lib/*.&ncurses-version;</userinput></screen>
-<para>And fix a library that shouldn't be executable:</para>
+<para>Now fix a library that shouldn't be executable:</para>
<screen><userinput>chmod 644 /usr/lib/libncurses++.a</userinput></screen>
@@ -41,15 +48,85 @@ where they're expected to reside:</para>
<screen><userinput>mv /usr/lib/libncurses.so.5* /lib</userinput></screen>
-<para>Now the libraries have been moved, a few symlinks are pointing to
+<para>Because the libraries have been moved, a few symlinks are pointing to
non-existent files. Recreate those symlinks:</para>
<screen><userinput>ln -sf ../../lib/libncurses.so.5 /usr/lib/libncurses.so
ln -sf libncurses.so /usr/lib/libcurses.so</userinput></screen>
</sect2>
-&aa-ncurses-shortdesc;
-&aa-ncurses-desc;
-</sect1>
+<sect2 id="contents-ncurses"><title>Contents of Ncurses</title>
+
+<para><emphasis>Installed programs</emphasis>: captoinfo (link to tic), clear,
+infocmp, infotocap (link to tic), reset (link to tset), tack, tic, toe, tput
+and tset</para>
+
+<para><emphasis>Installed libraries</emphasis>: libcurses.[a,so] (link to
+libncurses.[a,so]), libform.[a,so], libmenu.[a,so], libncurses++.a,
+libncurses.[a,so], libpanel.[a,so]</para>
+
+</sect2>
+
+<sect2><title>Short descriptions</title>
+
+<indexterm zone="ch-system-ncurses captoinfo"><primary sortas="b-captoinfo">captoinfo</primary></indexterm>
+<para id="captoinfo"><command>captoinfo</command> converts a termcap description into a
+terminfo description.</para>
+
+<indexterm zone="ch-system-ncurses clear"><primary sortas="b-clear">clear</primary></indexterm>
+<para id="clear"><command>clear</command> clears the screen, if this is possible.</para>
+
+<indexterm zone="ch-system-ncurses infocmp"><primary sortas="b-infocmp">infocmp</primary></indexterm>
+<para id="infocmp"><command>infocmp</command> compares or prints out terminfo
+descriptions.</para>
+
+<indexterm zone="ch-system-ncurses infotocap"><primary sortas="b-infotocap">infotocap</primary></indexterm>
+<para id="infotocap"><command>infotocap</command> converts a terminfo description into
+a termcap description.</para>
+
+<indexterm zone="ch-system-ncurses reset"><primary sortas="b-reset">reset</primary></indexterm>
+<para id="reset"><command>reset</command> reinitializes a terminal to its default
+values.</para>
+
+<indexterm zone="ch-system-ncurses tack"><primary sortas="b-tack">tack</primary></indexterm>
+<para id="tack"><command>tack</command> is the terminfo action checker. It is mainly
+used to test the correctness of an entry in the terminfo database.</para>
+<indexterm zone="ch-system-ncurses tic"><primary sortas="b-tic">tic</primary></indexterm>
+<para id="tic"><command>tic</command> is the terminfo entry-description compiler.
+It translates a terminfo file from source format into the binary format needed
+for the ncurses library routines. A terminfo file contains information on the
+capabilities of a certain terminal.</para>
+
+<indexterm zone="ch-system-ncurses toe"><primary sortas="b-toe">toe</primary></indexterm>
+<para id="toe"><command>toe</command> lists all available terminal types, for each
+giving its primary name and its description.</para>
+
+<indexterm zone="ch-system-ncurses tput"><primary sortas="b-tput">tput</primary></indexterm>
+<para id="tput"><command>tput</command> makes the values of terminal-dependent
+capabilities available to the shell. It can also be used to reset or initialize
+a terminal, or report its long name.</para>
+
+<indexterm zone="ch-system-ncurses tset"><primary sortas="b-tset">tset</primary></indexterm>
+<para id="tset"><command>tset</command> can be used to initialize terminals.</para>
+
+<indexterm zone="ch-system-ncurses libncurses"><primary sortas="c-libncurses*">libncurses*</primary></indexterm>
+<para id="libncurses"><command>libncurses*</command> contains functions to display text in
+many complicated ways on a terminal screen. A good example of the use of these
+functions is the menu displayed during the kernel's make menuconfig.</para>
+
+<indexterm zone="ch-system-ncurses libform"><primary sortas="c-libform*">libform*</primary></indexterm>
+<para id="libform"><command>libform*</command> contains functions to implement forms.</para>
+
+<indexterm zone="ch-system-ncurses libmenu"><primary sortas="c-libmenu*">libmenu*</primary></indexterm>
+<para id="libmenu"><command>libmenu*</command> contains functions to implement menus.</para>
+
+<indexterm zone="ch-system-ncurses libpanel"><primary sortas="c-libpanel*">libpanel*</primary></indexterm>
+<para id="libpanel"><command>libpanel*</command> contains functions to implement panels.</para>
+
+</sect2>
+
+
+
+</sect1>
diff --git a/chapter06/net-tools.xml b/chapter06/net-tools.xml
new file mode 100644
index 000000000..9eaa24b3c
--- /dev/null
+++ b/chapter06/net-tools.xml
@@ -0,0 +1,124 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+ <!ENTITY % general-entities SYSTEM "../general.ent">
+ %general-entities;
+]>
+<sect1 id="ch-system-net-tools" xreflabel="Net-tools">
+<title>Net-tools-&net-tools-version;</title>
+<?dbhtml filename="net-tools.html"?>
+
+<indexterm zone="ch-system-net-tools"><primary sortas="a-Net-tools">Net-tools</primary></indexterm>
+
+<para>The Net-tools package contains programs for basic networking.</para>
+
+<screen>&buildtime; 0.1 SBU
+&diskspace; 9.4 MB</screen>
+
+<para>Net-tools installation depends on: Bash, Binutils, Coreutils, GCC,
+Glibc, Make.</para>
+
+
+
+<sect2>
+<title>Installation of Net-tools</title>
+
+<para>If you don't know what to answer to all the questions asked during the
+<command>make config</command> phase below, then just accept the defaults.
+This will be just fine in the majority of cases. What you're asked here is a
+bunch of questions about which network protocols you've enabled in your
+kernel. The default answers will enable the tools from this package to work
+with the most common protocols: TCP, PPP, and several others. You still need
+to actually enable these protocols in the kernel -- what you do here is merely
+telling the package to include support for those protocols in its programs,
+but it's up to the kernel to make the protocols available.</para>
+
+<para>First fix a small syntax problem in the sources of the
+<command>mii-tool</command> program:</para>
+
+<screen><userinput>patch -Np1 -i ../net-tools-&net-tools-version;-miitool-gcc33-1.patch</userinput></screen>
+
+<para>Now prepare Net-tools for compilation (if you intend to accept the
+defaults, you can skip all the questions by running <userinput>yes "" |
+make config</userinput> instead):</para>
+
+<screen><userinput>make config</userinput></screen>
+
+<para>Compile the package:</para>
+
+<screen><userinput>make</userinput></screen>
+
+<para>Now install it:</para>
+
+<screen><userinput>make update</userinput></screen>
+
+</sect2>
+
+
+<sect2 id="contents-net"><title>Contents of Net-tools</title>
+
+<para><emphasis>Installed programs</emphasis>: arp, dnsdomainname (link to
+hostname), domainname (link to hostname), hostname, ifconfig, nameif, netstat,
+nisdomainname (link to hostname), plipconfig, rarp, route, slattach and
+ypdomainname (link to hostname)</para>
+
+</sect2>
+
+
+<sect2><title>Short descriptions</title>
+
+<indexterm zone="ch-system-net-tools arp"><primary sortas="b-arp">arp</primary></indexterm>
+<para id="arp"><command>arp</command> is used to manipulate the kernel's ARP cache,
+usually to add or delete an entry, or to dump the entire cache.</para>
+
+<indexterm zone="ch-system-net-tools dnsdomainname"><primary sortas="b-dnsdomainname">dnsdomainname</primary></indexterm>
+<para id="dnsdomainname"><command>dnsdomainname</command> reports the system's DNS (Domain Name Server) domain
+name.</para>
+
+<indexterm zone="ch-system-net-tools domainname"><primary sortas="b-domainname">domainname</primary></indexterm>
+<para id="domainname"><command>domainname</command> reports or sets the system's NIS/YP
+domain name.</para>
+
+<indexterm zone="ch-system-net-tools hostname"><primary sortas="b-hostname">hostname</primary></indexterm>
+<para id="hostname"><command>hostname</command> reports or sets the name of the current
+host system.</para>
+
+<indexterm zone="ch-system-net-tools ifconfig"><primary sortas="b-ifconfig">ifconfig</primary></indexterm>
+<para id="ifconfig"><command>ifconfig</command> is the main utility for configuring
+network interfaces.</para>
+
+<indexterm zone="ch-system-net-tools nameif"><primary sortas="b-nameif">nameif</primary></indexterm>
+<para id="nameif"><command>nameif</command> names network interfaces based on MAC
+addresses.</para>
+
+<indexterm zone="ch-system-net-tools netstat"><primary sortas="b-netstat">netstat</primary></indexterm>
+<para id="netstat"><command>netstat</command> is used to report network connections,
+routing tables, and interface statistics..</para>
+
+<indexterm zone="ch-system-net-tools nisdomainname"><primary sortas="b-nisdomainname">nisdomainname</primary></indexterm>
+<para id="nisdomainname"><command>nisdomainname</command> does the same as domainname.</para>
+
+<indexterm zone="ch-system-net-tools plipconfig"><primary sortas="b-plipconfig">plipconfig</primary></indexterm>
+<para id="plipconfig"><command>plipconfig</command> is used to fine tune the PLIP device
+parameters, to improve its performance.</para>
+
+<indexterm zone="ch-system-net-tools rarp"><primary sortas="b-rarp">rarp</primary></indexterm>
+<para id="rarp"><command>rarp</command> is used to manipulate the kernel's RARP
+table.</para>
+
+<indexterm zone="ch-system-net-tools route"><primary sortas="b-route">route</primary></indexterm>
+<para id="route"><command>route</command> is used to manipulate the IP routing
+table.</para>
+
+<indexterm zone="ch-system-net-tools slattach"><primary sortas="b-slattach">slattach</primary></indexterm>
+<para id="slattach"><command>slattach</command> attaches a network interface to a serial
+line. This allows you to use normal terminal lines for point-to-point links to
+other computers.</para>
+
+<indexterm zone="ch-system-net-tools ypdomainname"><primary sortas="b-ypdomainname">ypdomainname</primary></indexterm>
+<para id="ypdomainname"><command>ypdomainname</command> does the same as domainname.</para>
+
+</sect2>
+
+
+
+</sect1>
diff --git a/chapter06/nettools.xml b/chapter06/nettools.xml
deleted file mode 100644
index 2f149de11..000000000
--- a/chapter06/nettools.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-<sect1 id="ch-system-net-tools" xreflabel="Net-tools">
-<title>Installing Net-tools-&net-tools-version;</title>
-<?dbhtml filename="net-tools.html" dir="chapter06"?>
-
-<para>The Net-tools package contains programs for basic networking.</para>
-
-<screen>&buildtime; &net-tools-time;
-&diskspace; &net-tools-compsize;</screen>
-
-&aa-nettools-down;
-&aa-nettools-dep;
-
-<sect2><title>&nbsp;</title><para>&nbsp;</para></sect2>
-
-<sect2>
-<title>Installation of Net-tools</title>
-
-<para>If you don't know what to answer to all the questions asked during the
-<command>make config</command> phase below, then just accept the defaults.
-This will be just fine in the majority of cases. What you're asked here is a
-bunch of questions about which network protocols you've enabled in your
-kernel. The default answers will enable the tools from this package to work
-with the most common protocols: TCP, PPP, and several others. You still need
-to actually enable these protocols in the kernel -- what you do here is merely
-telling the package to include support for those protocols in its programs,
-but it's up to the kernel to make the protocols available.</para>
-
-<para>First fix a small syntax problem in the sources of the
-<command>mii-tool</command> program:</para>
-
-<screen><userinput>patch -Np1 -i ../&net-tools-mii-patch;</userinput></screen>
-
-<para>Now prepare Net-tools for compilation (if you intend to accept the
-defaults, you can skip all the questions by running <userinput>yes "" |
-make config</userinput> instead):</para>
-
-<screen><userinput>make config</userinput></screen>
-
-<para>Compile the package:</para>
-
-<screen><userinput>make</userinput></screen>
-
-<para>And install it:</para>
-
-<screen><userinput>make update</userinput></screen>
-
-</sect2>
-
-&aa-nettools-shortdesc;
-&aa-nettools-desc;
-
-</sect1>
-
diff --git a/chapter06/patch.xml b/chapter06/patch.xml
index 8ff7e4c69..081d36278 100644
--- a/chapter06/patch.xml
+++ b/chapter06/patch.xml
@@ -1,21 +1,28 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+ <!ENTITY % general-entities SYSTEM "../general.ent">
+ %general-entities;
+]>
<sect1 id="ch-system-patch" xreflabel="Patch">
-<title>Installing Patch-&patch-version;</title>
-<?dbhtml filename="patch.html" dir="chapter06"?>
+<title>Patch-&patch-version;</title>
+<?dbhtml filename="patch.html"?>
+
+<indexterm zone="ch-system-patch"><primary sortas="a-Patch">Patch</primary></indexterm>
<para>The Patch package contains a program for modifying files.</para>
-<screen>&buildtime; &patch-time;
-&diskspace; &patch-compsize;</screen>
+<screen>&buildtime; 0.1 SBU
+&diskspace; 1.9 MB</screen>
+
+<para>Patch installation depends on: Bash, Binutils, Coreutils, Diffutils,
+GCC, Glibc, Grep, Make, Sed.</para>
-&aa-patch-down;
-&aa-patch-dep;
-<sect2><title>&nbsp;</title><para>&nbsp;</para></sect2>
<sect2>
<title>Installation of Patch</title>
-<para>Prepare Patch for compilation (setting the preprocessor flags to
+<para>Prepare Patch for compilation (the preprocessor flag
<emphasis>-D_GNU_SOURCE</emphasis> is only needed on PowerPCs, on other
machines you can leave it out):</para>
@@ -25,14 +32,31 @@ machines you can leave it out):</para>
<screen><userinput>make</userinput></screen>
-<para>And install it:</para>
+<para>Now install it:</para>
<screen><userinput>make install</userinput></screen>
</sect2>
-&aa-patch-shortdesc;
-&aa-patch-desc;
-</sect1>
+<sect2 id="contents-patch"><title>Contents of Patch</title>
+
+<para><emphasis>Installed program</emphasis>: patch</para>
+
+</sect2>
+
+<sect2><title>Short description</title>
+
+<indexterm zone="ch-system-patch patch"><primary sortas="b-patch">patch</primary></indexterm>
+<para id="patch"><command>patch</command> modifies files according to a patch file.
+A patch file normally is a difference listing created with the diff program.
+By applying these differences to the original files, patch creates the patched
+versions. Using patches instead of entirely new tarballs to keep your sources
+up-to-date can save you a lot of download time.</para>
+
+</sect2>
+
+
+
+</sect1>
diff --git a/chapter06/perl.xml b/chapter06/perl.xml
index 594d98426..62aa4d9bf 100644
--- a/chapter06/perl.xml
+++ b/chapter06/perl.xml
@@ -1,25 +1,30 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+ <!ENTITY % general-entities SYSTEM "../general.ent">
+ %general-entities;
+]>
<sect1 id="ch-system-perl" xreflabel="Perl">
-<title>Installing Perl-&perl-version;</title>
-<?dbhtml filename="perl.html" dir="chapter06"?>
+<title>Perl-&perl-version;</title>
+<?dbhtml filename="perl.html"?>
+
+<indexterm zone="ch-system-perl"><primary sortas="a-Perl">Perl</primary></indexterm>
<para>The Perl package contains the Practical Extraction and Report Language.</para>
-<screen>&buildtime; &perl-time;
-&diskspace; &perl-compsize;</screen>
+<screen>&buildtime; 2.9 SBU
+&diskspace; 143 MB</screen>
-<literallayout>Official download location for Perl (&perl-version;):
-<ulink url="http://www.perl.com/"/></literallayout>
+<para>Perl installation depends on: Bash, Binutils, Coreutils, Diffutils,
+Gawk, GCC, Glibc, Grep, Make, Sed.</para>
-&aa-perl-dep;
-<sect2><title>&nbsp;</title><para>&nbsp;</para></sect2>
<sect2>
<title>Installation of Perl</title>
<para>If you want full control over the way Perl is set up, you can run the
interactive <command>Configure</command> script and hand-pick the way this
-package is built. If, however, you guess you can live with the (sensible)
+package is built. If you think you can live with the (sensible)
defaults it auto-detects, then prepare Perl for compilation with:</para>
<screen><userinput>./configure.gnu --prefix=/usr -Dpager="/bin/less -isR"</userinput></screen>
@@ -46,14 +51,129 @@ resolve the name <emphasis>localhost</emphasis>:</para>
<screen><userinput>make test</userinput></screen>
-<para>And install the package:</para>
+<para>Finally, install the package:</para>
<screen><userinput>make install</userinput></screen>
</sect2>
-&aa-perl-shortdesc;
-&aa-perl-desc;
-</sect1>
+<sect2 id="contents-perl"><title>Contents of Perl</title>
+
+<para><emphasis>Installed programs</emphasis>: a2p, c2ph, dprofpp, enc2xs,
+find2perl, h2ph, h2xs, libnetcfg, perl, perl&perl-version; (link to perl),
+perlbug, perlcc, perldoc, perlivp, piconv, pl2pm, pod2html, pod2latex, pod2man,
+pod2text, pod2usage, podchecker, podselect, psed (link to s2p), pstruct (link
+to c2ph), s2p, splain and xsubpp</para>
+
+<para><emphasis>Installed libraries</emphasis>: (too many to name)</para>
+
+</sect2>
+
+<sect2><title>Short descriptions</title>
+
+<indexterm zone="ch-system-perl a2p"><primary sortas="b-a2p">a2p</primary></indexterm>
+<para id="a2p"><command>a2p</command> translates awk to perl.</para>
+
+<indexterm zone="ch-system-perl c2ph"><primary sortas="b-c2ph">c2ph</primary></indexterm>
+<para id="c2ph"><command>c2ph</command> dumps C structures as generated from
+"cc -g -S" stabs.</para>
+
+<indexterm zone="ch-system-perl dprofpp"><primary sortas="b-dprofpp">dprofpp</primary></indexterm>
+<para id="dprofpp"><command>dprofpp</command> displays perl profile data.</para>
+
+<indexterm zone="ch-system-perl en2cxs"><primary sortas="b-en2cxs">en2cxs</primary></indexterm>
+<para id="en2cxs"><command>en2cxs</command> builds a Perl extension for the Encode module,
+from either Unicode Character Mappings or Tcl Encoding Files.</para>
+
+<indexterm zone="ch-system-perl find2perl"><primary sortas="b-find2perl">find2perl</primary></indexterm>
+<para id="find2perl"><command>find2perl</command> translates find commands to perl.</para>
+
+<indexterm zone="ch-system-perl h2ph"><primary sortas="b-h2ph">h2ph</primary></indexterm>
+<para id="h2ph"><command>h2ph</command> converts .h C header files to .ph Perl header files.</para>
+
+<indexterm zone="ch-system-perl h2xs"><primary sortas="b-h2xs">h2xs</primary></indexterm>
+<para id="h2xs"><command>h2xs</command> converts .h C header files to Perl extensions.</para>
+
+<indexterm zone="ch-system-perl libnetcfg"><primary sortas="b-libnetcfg">libnetcfg</primary></indexterm>
+<para id="libnetcfg"><command>libnetcfg</command> can be used to configure the libnet.</para>
+
+<indexterm zone="ch-system-perl perl"><primary sortas="b-perl">perl</primary></indexterm>
+<para id="perl"><command>perl</command> combines some of the best features of C, sed,
+awk and sh into a single swiss-army language.</para>
+
+<indexterm zone="ch-system-perl perlbug"><primary sortas="b-perlbug">perlbug</primary></indexterm>
+<para id="perlbug"><command>perlbug</command> is used to generate bug reports about
+Perl or the modules that come with it, and mail them.</para>
+
+<indexterm zone="ch-system-perl perlcc"><primary sortas="b-perlcc">perlcc</primary></indexterm>
+<para id="perlcc"><command>perlcc</command> generates executables from Perl programs.</para>
+
+<indexterm zone="ch-system-perl perldoc"><primary sortas="b-perldoc">perldoc</primary></indexterm>
+<para id="perldoc"><command>perldoc</command> displays a piece of documentation in pod
+format that is embedded in the perl installation tree or in a perl script.</para>
+
+<indexterm zone="ch-system-perl perlivp"><primary sortas="b-perlivp">perlivp</primary></indexterm>
+<para id="perlivp"><command>perlivp</command> is the Perl Installation Verification
+Procedure. It can be used to verify that Perl and its libraries have been
+installed correctly.</para>
+<indexterm zone="ch-system-perl piconv"><primary sortas="b-piconv">piconv</primary></indexterm>
+<para id="piconv"><command>piconv</command> is a Perl version of the character encoding
+converter <command>iconv</command>.</para>
+
+<indexterm zone="ch-system-perl pl2pm"><primary sortas="b-pl2pm">pl2pm</primary></indexterm>
+<para id="pl2pm"><command>pl2pm</command> is a rough tool for converting Perl4 .pl
+files to Perl5 .pm modules.</para>
+
+<indexterm zone="ch-system-perl pod2html"><primary sortas="b-pod2html">pod2html</primary></indexterm>
+<para id="pod2html"><command>pod2html</command> converts files from pod format to HTML
+format.</para>
+
+<indexterm zone="ch-system-perl pod2latex"><primary sortas="b-pod2latex">pod2latex</primary></indexterm>
+<para id="pod2latex"><command>pod2latex</command> converts files from pod format to LaTeX
+format.</para>
+
+<indexterm zone="ch-system-perl pod2man"><primary sortas="b-pod2man">pod2man</primary></indexterm>
+<para id="pod2man"><command>pod2man</command> converts pod data to formatted *roff
+input.</para>
+
+<indexterm zone="ch-system-perl pod2text"><primary sortas="b-pod2text">pod2text</primary></indexterm>
+<para id="pod2text"><command>pod2text</command> converts pod data to formatted ASCII
+text.</para>
+
+<indexterm zone="ch-system-perl pod2usage"><primary sortas="b-pod2usage">pod2usage</primary></indexterm>
+<para id="pod2usage"><command>pod2usage</command> prints usage messages from embedded
+pod docs in files.</para>
+
+<indexterm zone="ch-system-perl podchecker"><primary sortas="b-podchecker">podchecker</primary></indexterm>
+<para id="podchecker"><command>podchecker</command> checks the syntax of pod format
+documentation files.</para>
+
+<indexterm zone="ch-system-perl podselect"><primary sortas="b-podselect">podselect</primary></indexterm>
+<para id="podselect"><command>podselect</command> displays selected sections of pod
+documentation.</para>
+
+<indexterm zone="ch-system-perl psed"><primary sortas="b-psed">psed</primary></indexterm>
+<para id="psed"><command>psed</command> is a Perl version of the stream editor
+<userinput>sed</userinput>.</para>
+
+<indexterm zone="ch-system-perl pstruct"><primary sortas="b-pstruct">pstruct</primary></indexterm>
+<para id="pstruct"><command>pstruct</command> dumps C structures as generated from
+"cc -g -S" stabs.</para>
+
+<indexterm zone="ch-system-perl s2p"><primary sortas="b-s2p">s2p</primary></indexterm>
+<para id="s2p"><command>s2p</command> translates sed to perl.</para>
+
+<indexterm zone="ch-system-perl splain"><primary sortas="b-splain">splain</primary></indexterm>
+<para id="splain"><command>splain</command> is used to force verbose warning
+diagnostics in perl.</para>
+
+<indexterm zone="ch-system-perl xsubpp"><primary sortas="b-xsubpp">xsubpp</primary></indexterm>
+<para id="xsubpp"><command>xsubpp</command> converts Perl XS code into C code.</para>
+
+</sect2>
+
+
+
+</sect1>
diff --git a/chapter06/proc.xml b/chapter06/proc.xml
new file mode 100644
index 000000000..919abf6a8
--- /dev/null
+++ b/chapter06/proc.xml
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
+<sect1 id="ch-system-proc">
+<title>Mounting the proc and devpts file systems</title>
+<?dbhtml filename="proc.html"?>
+
+<para>In order for certain programs to function properly, the
+<emphasis>proc</emphasis> and <emphasis>devpts</emphasis> file systems must be
+available within the chroot environment. The proc file system is the process
+information pseudo file system through which the kernel provides information
+about the status of the system. And the devpts file system is nowadays the most
+common way pseudo terminals (PTYs) are implemented. Since kernel version 2.4, a
+file system can be mounted as many times and in as many places as you like,
+thus it's not a problem that these file systems are already mounted on your
+host system, especially so because they are virtual file systems.</para>
+
+<para>First become <emphasis>root</emphasis>, as only <emphasis>root</emphasis>
+can mount file systems in unusual places. Then check again that the LFS
+environment variable is set correctly by running <userinput>echo
+$LFS</userinput> and making sure it shows the path to your LFS partition's
+mount point, which is <filename class="directory">/mnt/lfs</filename> if you
+followed our example.</para>
+
+<para>Now make the mount points for these filesystems:</para>
+
+<screen><userinput>mkdir -p $LFS/{proc,dev/pts}</userinput></screen>
+
+<para>Mount the <emphasis>proc</emphasis> file system with:</para>
+
+<screen><userinput>mount proc $LFS/proc -t proc</userinput></screen>
+
+<para>And mount the <emphasis>devpts</emphasis> file system with:</para>
+
+<screen><userinput>mount devpts $LFS/dev/pts -t devpts</userinput></screen>
+
+<para>This last command might fail with an error like:</para>
+
+<blockquote><screen>filesystem devpts not supported by kernel</screen></blockquote>
+
+<para>The most likely cause for this is that your host system's kernel was
+compiled without support for the devpts file system (you can check which file
+systems your kernel supports with <command>cat /proc/filesystems</command>,
+for example). A few PTYs are needed to be able to run the suites for Binutils
+and GCC later on. If your kernel does not support devpts, do not worry, there
+is another way to get them working inside the chroot environment. We'll cover
+this shortly in the <xref linkend="ch-system-MAKEDEV"/> section.</para>
+
+<para>Remember that if for any reason you stop working on your LFS, and start
+again later, it's important to check that these file systems are mounted again
+before entering the chroot environment, otherwise problems could occur.</para>
+
+</sect1>
diff --git a/chapter06/procinfo.xml b/chapter06/procinfo.xml
index f8d59a2e0..41249115b 100644
--- a/chapter06/procinfo.xml
+++ b/chapter06/procinfo.xml
@@ -1,16 +1,22 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+ <!ENTITY % general-entities SYSTEM "../general.ent">
+ %general-entities;
+]>
<sect1 id="ch-system-procinfo" xreflabel="Procinfo">
-<title>Installing Procinfo-&procinfo-version;</title>
-<?dbhtml filename="procinfo.html" dir="chapter06"?>
+<title>Procinfo-&procinfo-version;</title>
+<?dbhtml filename="procinfo.html"?>
+
+<indexterm zone="ch-system-procinfo"><primary sortas="a-Procinfo">Procinfo</primary></indexterm>
<para>The Procinfo package contains programs for displaying system information.</para>
-<screen>&buildtime; &procinfo-time;
-&diskspace; &procinfo-compsize;</screen>
+<screen>&buildtime; 0.1 SBU
+&diskspace; 0.2 MB</screen>
+
+<para>Procinfo installation depends on: Binutils, GCC, Glibc, Make, Ncurses.</para>
-&aa-procinfo-down;
-&aa-procinfo-dep;
-<sect2><title>&nbsp;</title><para>&nbsp;</para></sect2>
<sect2>
<title>Installation of Procinfo</title>
@@ -26,14 +32,37 @@ to use the <filename>libncurses</filename> library instead of the
long-obsolete <filename>libtermcap</filename>.</para></listitem>
</itemizedlist>
-<para>And install the package:</para>
+<para>Install the package:</para>
<screen><userinput>make install</userinput></screen>
</sect2>
-&aa-procinfo-shortdesc;
-&aa-procinfo-desc;
-</sect1>
+<sect2 id="contents-procinfo"><title>Contents of Procinfo</title>
+
+<para><emphasis>Installed programs</emphasis>: lsdev, procinfo and
+socklist</para>
+
+</sect2>
+
+
+<sect2><title>Short descriptions</title>
+<indexterm zone="ch-system-procinfo lsdev"><primary sortas="b-lsdev">lsdev</primary></indexterm>
+<para id="lsdev"><command>lsdev</command> lists the devices present in your system,
+and which IRQs (Interrupt ReQuest) and IO ports they use.</para>
+
+<indexterm zone="ch-system-procinfo procinfo"><primary sortas="b-procinfo">procinfo</primary></indexterm>
+<para id="procinfo"><command>procinfo</command> displays an overview of some of the information
+present in the virtual proc file system.</para>
+
+<indexterm zone="ch-system-procinfo socklist"><primary sortas="b-socklist">socklist</primary></indexterm>
+<para id="socklist"><command>socklist</command> lists the open sockets, reporting their
+type, port number, and other specifics.</para>
+
+</sect2>
+
+
+
+</sect1>
diff --git a/chapter06/procps.xml b/chapter06/procps.xml
index 4e80e190d..8ab64a1e4 100644
--- a/chapter06/procps.xml
+++ b/chapter06/procps.xml
@@ -1,16 +1,23 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+ <!ENTITY % general-entities SYSTEM "../general.ent">
+ %general-entities;
+]>
<sect1 id="ch-system-procps" xreflabel="Procps">
-<title>Installing Procps-&procps-version;</title>
-<?dbhtml filename="procps.html" dir="chapter06"?>
+<title>Procps-&procps-version;</title>
+<?dbhtml filename="procps.html"?>
+
+<indexterm zone="ch-system-procps"><primary sortas="a-Procps">Procps</primary></indexterm>
<para>The Procps package contains programs for monitoring processes.</para>
-<screen>&buildtime; &procps-time;
-&diskspace; &procps-compsize;</screen>
+<screen>&buildtime; 0.1 SBU
+&diskspace; 6.2 MB</screen>
+
+<para>Procps installation depends on: Bash, Binutils, Coreutils, GCC, Glibc,
+Make, Ncurses.</para>
-&aa-procps-down;
-&aa-procps-dep;
-<sect2><title>&nbsp;</title><para>&nbsp;</para></sect2>
<sect2>
<title>Installation of Procps</title>
@@ -23,14 +30,90 @@
<screen><userinput>make install</userinput></screen>
-<para>And remove a spurious library link:</para>
+<para>Remove a spurious library link:</para>
<screen><userinput>rm /lib/libproc.so</userinput></screen>
</sect2>
-&aa-procps-shortdesc;
-&aa-procps-desc;
-</sect1>
+<sect2 id="contents-procps"><title>Contents of Procps</title>
+
+<para><emphasis>Installed programs</emphasis>: free, kill, pgrep, pkill,
+pmap, ps, skill, snice, sysctl, tload, top, uptime, vmstat, w and watch</para>
+
+<para><emphasis>Installed library</emphasis>: libproc.so</para>
+
+</sect2>
+
+
+<sect2><title>Short descriptions</title>
+
+<indexterm zone="ch-system-procps free"><primary sortas="b-free">free</primary></indexterm>
+<para id="free"><command>free</command> reports the amount of free and used memory
+in the system, both physical and swap memory.</para>
+
+<indexterm zone="ch-system-procps kill"><primary sortas="b-kill">kill</primary></indexterm>
+<para id="kill"><command>kill</command> is used to send signals to processes.</para>
+
+<indexterm zone="ch-system-procps pgrep"><primary sortas="b-pgrep">pgrep</primary></indexterm>
+<para id="pgrep"><command>pgrep</command> looks up processes based on their name
+and other attributes.</para>
+
+<indexterm zone="ch-system-procps pkill"><primary sortas="b-pkill">pkill</primary></indexterm>
+<para id="pkill"><command>pkill</command> signals processes based on their name
+and other attributes.</para>
+
+<indexterm zone="ch-system-procps pmap"><primary sortas="b-pmap">pmap</primary></indexterm>
+<para id="pmap"><command>pmap</command> reports the memory map of the given
+process.</para>
+
+<indexterm zone="ch-system-procps ps"><primary sortas="b-ps">ps</primary></indexterm>
+<para id="ps"><command>ps</command> gives a snapshot of the current processes.</para>
+<indexterm zone="ch-system-procps skill"><primary sortas="b-skill">skill</primary></indexterm>
+<para id="skill"><command>skill</command> sends signals to processes matching the
+given criteria.</para>
+
+<indexterm zone="ch-system-procps snice"><primary sortas="b-snice">snice</primary></indexterm>
+<para id="snice"><command>snice</command> changes the scheduling priority of processes
+matching the given criteria.</para>
+
+<indexterm zone="ch-system-procps sysctl"><primary sortas="b-sysctl">sysctl</primary></indexterm>
+<para id="sysctl"><command>sysctl</command> modifies kernel parameters at run time.</para>
+
+<indexterm zone="ch-system-procps tload"><primary sortas="b-tload">tload</primary></indexterm>
+<para id="tload"><command>tload</command> prints a graph of the current system load
+average.</para>
+
+<indexterm zone="ch-system-procps top"><primary sortas="b-top">top</primary></indexterm>
+<para id="top"><command>top</command> displays the top CPU processes. It provides
+an ongoing look at processor activity in real time.</para>
+
+<indexterm zone="ch-system-procps uptime"><primary sortas="b-uptime">uptime</primary></indexterm>
+<para id="uptime"><command>uptime</command> reports how long the system has been
+running, how many users are logged on, and the system load averages.</para>
+
+<indexterm zone="ch-system-procps vmstat"><primary sortas="b-vmstat">vmstat</primary></indexterm>
+<para id="vmstat"><command>vmstat</command> reports virtual memory statistics, giving
+information about processes, memory, paging, block IO, traps, and CPU
+activity.</para>
+
+<indexterm zone="ch-system-procps w"><primary sortas="b-w">w</primary></indexterm>
+<para id="w"><command>w</command> shows which users are currently logged on,
+where and since when.</para>
+
+<indexterm zone="ch-system-procps watch"><primary sortas="b-watch">watch</primary></indexterm>
+<para id="watch"><command>watch</command> runs a given command repeatedly,
+displaying the first screen-full of its output. This allows you to watch the
+output change over time.</para>
+
+<indexterm zone="ch-system-procps libproc"><primary sortas="c-libproc">libproc</primary></indexterm>
+<para id="libproc"><command>libproc</command> contains the functions used by most
+programs in this package.</para>
+
+</sect2>
+
+
+
+</sect1>
diff --git a/chapter06/psmisc.xml b/chapter06/psmisc.xml
index f506ed5b8..2378d60ff 100644
--- a/chapter06/psmisc.xml
+++ b/chapter06/psmisc.xml
@@ -1,17 +1,24 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+ <!ENTITY % general-entities SYSTEM "../general.ent">
+ %general-entities;
+]>
<sect1 id="ch-system-psmisc" xreflabel="Psmisc">
-<title>Installing Psmisc-&psmisc-version;</title>
-<?dbhtml filename="psmisc.html" dir="chapter06"?>
+<title>Psmisc-&psmisc-version;</title>
+<?dbhtml filename="psmisc.html"?>
+
+<indexterm zone="ch-system-psmisc"><primary sortas="a-Psmisc">Psmisc</primary></indexterm>
<para>The Psmisc package contains programs for displaying information on
processes.</para>
-<screen>&buildtime; &psmisc-time;
-&diskspace; &psmisc-compsize;</screen>
+<screen>&buildtime; 0.1 SBU
+&diskspace; 2.2 MB</screen>
+
+<para>Psmisc installation depends on: Bash, Binutils, Coreutils, Diffutils,
+GCC, Gettext, Glibc, Grep, Make, Ncurses, Sed.</para>
-&aa-psmisc-down;
-&aa-psmisc-dep;
-<sect2><title>&nbsp;</title><para>&nbsp;</para></sect2>
<sect2>
<title>Installation of Psmisc</title>
@@ -24,7 +31,7 @@ processes.</para>
<itemizedlist>
<listitem><para><userinput>--exec-prefix=/</userinput>: This causes the
-binaries to be installed in <filename>/bin</filename> and not in
+binaries to be installed in <filename>/bin</filename> instead of
<filename>/usr/bin</filename>. As the Psmisc programs are often used in
bootscripts, they should be available also when the <filename>/usr</filename>
file system isn't mounted.</para></listitem>
@@ -34,7 +41,7 @@ file system isn't mounted.</para></listitem>
<screen><userinput>make</userinput></screen>
-<para>And install it:</para>
+<para>Now install it:</para>
<screen><userinput>make install</userinput></screen>
@@ -58,8 +65,34 @@ creating the following symlink:</para>
</sect2>
-&aa-psmisc-shortdesc;
-&aa-psmisc-desc;
-</sect1>
+<sect2 id="contents-psmisc"><title>Contents of Psmisc</title>
+
+<para><emphasis>Installed programs</emphasis>: fuser, killall, pstree and
+pstree.x11 (link to pstree)</para>
+
+</sect2>
+
+
+<sect2><title>Short descriptions</title>
+
+<indexterm zone="ch-system-psmisc fuser"><primary sortas="b-fuser">fuser</primary></indexterm>
+<para id="fuser"><command>fuser</command> reports the PIDs of processes that use
+the given files or file systems.</para>
+<indexterm zone="ch-system-psmisc killall"><primary sortas="b-killall">killall</primary></indexterm>
+<para id="killall"><command>killall</command> kills processes by name. It sends a signal
+to all processes running any of the given commands.</para>
+
+<indexterm zone="ch-system-psmisc pstree"><primary sortas="b-pstree">pstree</primary></indexterm>
+<para id="pstree"><command>pstree</command> displays running processes as a tree.</para>
+
+<indexterm zone="ch-system-psmisc pstree.x11"><primary sortas="b-pstree.x11">pstree.x11</primary></indexterm>
+<para id="pstree.x11"><command>pstree.x11</command> same as pstree except that it waits for
+confirmation before exiting.</para>
+
+</sect2>
+
+
+
+</sect1>
diff --git a/chapter06/pwdgroup.xml b/chapter06/pwdgroup.xml
new file mode 100644
index 000000000..a515de425
--- /dev/null
+++ b/chapter06/pwdgroup.xml
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+ <!ENTITY % general-entities SYSTEM "../general.ent">
+ %general-entities;
+]>
+<sect1 id="ch-system-pwdgroup">
+<title>Creating the passwd, group and log files</title>
+<?dbhtml filename="pwdgroup.html"?>
+
+<indexterm zone="ch-system-pwdgroup"><primary sortas="e-/etc/passwd">/etc/passwd</primary></indexterm>
+<indexterm zone="ch-system-pwdgroup"><primary sortas="e-/etc/group">/etc/group</primary></indexterm>
+<indexterm zone="ch-system-pwdgroup"><primary sortas="e-/var/run/utmp">/var/run/utmp</primary></indexterm>
+<indexterm zone="ch-system-pwdgroup"><primary sortas="e-/var/log/btmp">/var/log/btmp</primary></indexterm>
+<indexterm zone="ch-system-pwdgroup"><primary sortas="e-/var/log/lastlog">/var/log/lastlog</primary></indexterm>
+<indexterm zone="ch-system-pwdgroup"><primary sortas="e-/var/log/wtmp">/var/log/wtmp</primary></indexterm>
+
+<para>In order for <emphasis>root</emphasis> to be able to login and for the
+name <quote>root</quote> to be recognized, there need to be relevant entries in
+the <filename>/etc/passwd</filename> and <filename>/etc/group</filename> files.
+</para>
+
+<para>Create the <filename>/etc/passwd</filename> file by running the following
+command:</para>
+
+<screen><userinput>cat &gt; /etc/passwd &lt;&lt; "EOF"</userinput>
+root:x:0:0:root:/root:/bin/bash
+<userinput>EOF</userinput></screen>
+
+<para>The actual password for <emphasis>root</emphasis> (the <quote>x</quote>
+here is just a placeholder) will be set later.</para>
+
+<para>Create the <filename>/etc/group</filename> file by running the following
+command:</para>
+
+<screen><userinput>cat &gt; /etc/group &lt;&lt; "EOF"</userinput>
+root:x:0:
+bin:x:1:
+sys:x:2:
+kmem:x:3:
+tty:x:4:
+tape:x:5:
+daemon:x:6:
+floppy:x:7:
+disk:x:8:
+lp:x:9:
+dialout:x:10:
+audio:x:11:
+<userinput>EOF</userinput></screen>
+
+<para>The created groups aren't part of any standard -- they are some of the
+groups that the <command>make_devices</command> script in the next section
+uses. The LSB (<ulink url="http://www.linuxbase.org/">Linux Standard
+Base</ulink>) recommends only that, beside the group <quote>root</quote> with a
+GID of 0, a group <quote>bin</quote> with a GID of 1 be present. All other group
+names and GIDs can be chosen freely by the system administrator, since
+well-written packages don't depend on GID numbers but use the group's name.
+</para>
+
+<para>To get rid of the <quote>I have no name!</quote> prompt, we will start a
+new shell. Since we installed a full Glibc in
+<xref linkend="chapter-temporary-tools"/>, and have just created the
+<filename>/etc/passwd</filename> and <filename>/etc/group</filename> files,
+user name and group name resolution will now work.</para>
+
+<screen><userinput>exec /tools/bin/bash --login +h</userinput></screen>
+
+<para>Note the use of the <emphasis>+h</emphasis> directive. This tells
+<command>bash</command> not to use its internal path hashing. Without this
+directive, <command>bash</command> would remember the paths to binaries it
+has executed. Since we want to use our newly compiled binaries as soon as
+they are installed, we turn off this function for the duration of this
+chapter.</para>
+
+<para>The <command>login</command>, <command>agetty</command> and
+<command>init</command> programs (and some others) use a number of log
+files to record information such as who was logged into the system and when.
+These programs, however, won't write to the log files if they don't already
+exist. Initialize the log files and give them their proper permissions:</para>
+
+<screen><userinput>touch /var/run/utmp /var/log/{btmp,lastlog,wtmp}
+chmod 644 /var/run/utmp /var/log/{btmp,lastlog,wtmp}</userinput></screen>
+
+<para>The <filename>/var/run/utmp</filename> file records the users that are
+currently logged in. The <filename>/var/log/wtmp</filename> file records all
+logins and logouts. The <filename>/var/log/lastlog</filename> file records for
+each user when he or she last logged in. The <filename>/var/log/btmp</filename>
+file records the bad login attempts.</para>
+
+</sect1>
diff --git a/chapter06/readjusting.xml b/chapter06/readjusting.xml
new file mode 100644
index 000000000..48efb8805
--- /dev/null
+++ b/chapter06/readjusting.xml
@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+ <!ENTITY % general-entities SYSTEM "../general.ent">
+ %general-entities;
+]>
+<sect1 id="ch-system-readjusting">
+<title>Re-adjusting the toolchain</title>
+<?dbhtml filename="readjusting.html"?>
+
+<para>Now that the new and final C libraries have been installed, it's time to
+adjust our toolchain again. We'll adjust it so that it will link any newly
+compiled program against these new libraries. This is in fact the same thing we
+did in the <quote>Adjusting</quote> phase in the beginning of the previous
+chapter, even though it looks like the reverse: then we guided the chain from
+the host's <filename class="directory">/{,usr/}lib</filename> to the new
+<filename class="directory">/tools/lib</filename>, now we guide it from that
+same <filename class="directory">/tools/lib</filename> to the LFS's <filename
+class="directory">/{,usr/}lib</filename>.</para>
+
+<para>First we adjust the linker. For this we retained the
+source and build directories from the second pass over Binutils. Install the
+adjusted linker by running the following from within the
+<filename class="directory">binutils-build</filename> directory:</para>
+
+<screen><userinput>make -C ld INSTALL=/tools/bin/install install</userinput></screen>
+
+<note><para>If you somehow missed the earlier warning to retain the Binutils
+source and build directories from the second pass in
+<xref linkend="chapter-temporary-tools"/>, or otherwise accidentally deleted them or just
+don't have access to them, don't worry, all is not lost. Just ignore the above
+command. The result will be that the next package, Binutils, will link against
+the C libraries in <filename class="directory">/tools</filename> rather
+than in <filename class="directory">/{,usr/}lib</filename>. This is not ideal,
+however, our testing has shown that the resulting Binutils program binaries
+should be identical.</para></note>
+
+<para>From now on every compiled program will link <emphasis>only</emphasis>
+against the libraries in <filename>/usr/lib</filename> and
+<filename>/lib</filename>. The extra
+<emphasis>INSTALL=/tools/bin/install</emphasis> is needed because the Makefile
+created during the second pass still contains the reference to
+<filename>/usr/bin/install</filename>, which we obviously haven't installed yet.
+Some host distributions contain a <filename class="symlink">ginstall</filename>
+symbolic link which takes precedence in the Makefile and thus can cause a
+problem here. The above command takes care of this also.</para>
+
+<para>You can now remove the Binutils source and build directories.</para>
+
+<para>The next thing to do is to amend our GCC specs file so that it points
+to the new dynamic linker. Just like earlier on, we use a sed to accomplish
+this:</para>
+
+<!-- Ampersands are needed to allow cut and paste -->
+
+<screen><userinput>SPECFILE=/tools/lib/gcc-lib/*/*/specs &amp;&amp;
+sed -e 's@ /tools/lib/ld-linux.so.2@ /lib/ld-linux.so.2@g' \
+ $SPECFILE &gt; newspecfile &amp;&amp;
+mv -f newspecfile $SPECFILE &amp;&amp;
+unset SPECFILE</userinput></screen>
+
+<para>Again, cutting and pasting the above is recommended. And just like
+before, it is a good idea to visually inspect the specs file to verify the
+intended change was actually made.</para>
+
+<important><para>If you are working on a platform where the name of the dynamic
+linker is something other than <filename>ld-linux.so.2</filename>, you
+<emphasis>must</emphasis> substitute <filename>ld-linux.so.2</filename> with the
+name of your platform's dynamic linker in the above commands. Refer back to
+<xref linkend="ch-tools-toolchaintechnotes"/> if necessary.</para></important>
+
+
+<caution><para>It is imperative at this point to stop and ensure that the
+basic functions (compiling and linking) of the adjusted toolchain are working
+as expected. For this we are going to perform a simple sanity check:</para>
+
+<screen><userinput>echo 'main(){}' &gt; dummy.c
+cc dummy.c
+readelf -l a.out | grep ': /lib'</userinput></screen>
+
+<para>If everything is working correctly, there should be no errors, and the
+output of the last command will be (allowing for platform specific differences
+in dynamic linker name):</para>
+
+<blockquote><screen>[Requesting program interpreter: /lib/ld-linux.so.2]</screen></blockquote>
+
+<para>Note especially that <filename class="directory">/lib</filename> is now
+the prefix of our dynamic linker.</para>
+
+<para> If you did not receive the output
+as shown above, or received no output at all, then something is seriously wrong.
+You will need to investigate and retrace your steps to find out where the
+problem is and correct it. There is no point in continuing until this is done.
+Most likely something went wrong with the specs file amendment above.</para>
+
+<para>Once you are satisfied that all is well, clean up the test files:</para>
+
+<screen><userinput>rm dummy.c a.out</userinput></screen>
+</caution>
+
+
+</sect1>
diff --git a/chapter06/revisedchroot.xml b/chapter06/revisedchroot.xml
new file mode 100644
index 000000000..796fa80ee
--- /dev/null
+++ b/chapter06/revisedchroot.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+ <!ENTITY % general-entities SYSTEM "../general.ent">
+ %general-entities;
+]>
+<sect1 id="ch-system-revisedchroot">
+<title>Cleaning up</title>
+<?dbhtml filename="revisedchroot.html"?>
+
+<para>From now on, when you exit the chroot environment and wish to reenter
+it, you should use the following modified chroot command:</para>
+
+<screen><userinput>chroot "$LFS" /usr/bin/env -i \
+ HOME=/root TERM="$TERM" PS1='\u:\w\$ ' \
+ PATH=/bin:/usr/bin:/sbin:/usr/sbin \
+ /bin/bash --login</userinput></screen>
+
+<para>The reason for this is that, since the programs in <filename
+class="directory">/tools</filename> are no longer needed, you may want to
+delete the whole directory and regain the space. Before actually deleting the
+directory, exit from chroot and reenter it with the above command. Also, before
+removing <filename class="directory">/tools</filename>, you may want to tar it
+up and store it in a safe place, in case you want to build another LFS system
+soon.</para>
+
+<note><para>Removing <filename class="directory">/tools</filename> will also
+remove the temporary copies of Tcl, Expect and DejaGnu, which were used for
+running the toolchain tests. If you want to use these programs later on, you
+will need to recompile and re-install them. The installation instructions are
+the same as in <xref linkend="chapter-temporary-tools"/>, apart from changing
+the prefix from <emphasis>/tools</emphasis> to <emphasis>/usr</emphasis>. The
+BLFS book discusses a slightly different approach to installing Tcl, see
+<ulink url="&blfs-root;"/>.</para></note>
+
+<para>You may also want to move the packages and patches stored in <filename
+class="directory">/sources</filename> to a more usual location, such as
+<filename class="directory">/usr/src/packages</filename>, and remove the
+directory -- or simply delete the whole directory if you've burned its contents
+on a CD).</para>
+
+</sect1>
diff --git a/chapter06/sed.xml b/chapter06/sed.xml
index 705653686..2b32b6f42 100644
--- a/chapter06/sed.xml
+++ b/chapter06/sed.xml
@@ -1,16 +1,23 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+ <!ENTITY % general-entities SYSTEM "../general.ent">
+ %general-entities;
+]>
<sect1 id="ch-system-sed" xreflabel="Sed">
-<title>Installing Sed-&sed-version;</title>
-<?dbhtml filename="sed.html" dir="chapter06"?>
+<title>Sed-&sed-version;</title>
+<?dbhtml filename="sed.html"?>
+
+<indexterm zone="ch-system-sed"><primary sortas="a-Sed">Sed</primary></indexterm>
<para>The Sed package contains a stream editor.</para>
-<screen>&buildtime; &sed-time;
-&diskspace; &sed-compsize;</screen>
+<screen>&buildtime; 0.2 SBU
+&diskspace; 5.2 MB</screen>
+
+<para>Sed installation depends on: Bash, Binutils, Coreutils,
+Diffutils, GCC, Gettext, Glibc, Grep, Make, Texinfo.</para>
-&aa-sed-down;
-&aa-sed-dep;
-<sect2><title>&nbsp;</title><para>&nbsp;</para></sect2>
<sect2>
<title>Installation of Sed</title>
@@ -23,17 +30,31 @@
<screen><userinput>make</userinput></screen>
-<para>To have the results tested, issue:
+<para>To test the results, issue:
<userinput>make check</userinput>.</para>
-<para>And install the package:</para>
+<para>Now install the package:</para>
<screen><userinput>make install</userinput></screen>
</sect2>
-&aa-sed-shortdesc;
-&aa-sed-desc;
-</sect1>
+<sect2 id="contents-sed"><title>Contents of Sed</title>
+
+<para><emphasis>Installed program</emphasis>: sed</para>
+
+</sect2>
+
+<sect2><title>Short description</title>
+
+<indexterm zone="ch-system-sed sed"><primary sortas="b-sed">sed</primary></indexterm>
+<para id="sed"><command>sed</command> is used to filter and transform text files
+in a single pass.</para>
+
+</sect2>
+
+
+
+</sect1>
diff --git a/chapter06/shadow.xml b/chapter06/shadow.xml
index 714393c2a..76ea1f075 100644
--- a/chapter06/shadow.xml
+++ b/chapter06/shadow.xml
@@ -1,17 +1,24 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+ <!ENTITY % general-entities SYSTEM "../general.ent">
+ %general-entities;
+]>
<sect1 id="ch-system-shadow" xreflabel="Shadow">
-<title>Installing Shadow-&shadow-version;</title>
-<?dbhtml filename="shadow.html" dir="chapter06"?>
+<title>Shadow-&shadow-version;</title>
+<?dbhtml filename="shadow.html"?>
+
+<indexterm zone="ch-system-shadow"><primary sortas="a-Shadow">Shadow</primary></indexterm>
<para>The Shadow package contains programs for handling passwords in a secure
way.</para>
-<screen>&buildtime; &shadow-time;
-&diskspace; &shadow-compsize;</screen>
+<screen>&buildtime; 0.4 SBU
+&diskspace; 11 MB</screen>
+
+<para>Shadow installation depends on: Bash, Binutils, Bison, Coreutils,
+Diffutils, GCC, Gettext, Glibc, Grep, Make, Sed.</para>
-&aa-shadow-down;
-&aa-shadow-dep;
-<sect2><title>&nbsp;</title><para>&nbsp;</para></sect2>
<sect2>
<title>Installation of Shadow</title>
@@ -40,7 +47,7 @@ working:</para>
<screen><userinput>make</userinput></screen>
-<para>And install it:</para>
+<para>Then install it:</para>
<screen><userinput>make install</userinput></screen>
@@ -51,17 +58,17 @@ system. Install these two config files:</para>
<para>Instead of using the default <emphasis>crypt</emphasis> method, we want
to use the more secure <emphasis>MD5</emphasis> method of password encryption,
-which in addition allows passwords longer than 8 characters. We also need to
+which also allows passwords longer than 8 characters. We also need to
change the obsolete <filename class="directory">/var/spool/mail</filename>
-location for user mailboxes that Shadow uses by default to the <filename
-class="directory">/var/mail</filename> location used nowadays. We accomplish
+location for user mailboxes that Shadow uses by default to the <filename
+class="directory">/var/mail</filename> location used currently. We accomplish
both these things by changing the relevant configuration file while copying it
to its destination (it's probably better to cut-and-paste this rather than try
and type it all in):</para>
<screen><userinput>sed -e 's%#MD5_CRYPT_ENAB.no%MD5_CRYPT_ENAB yes%' \
-&nbsp;&nbsp;&nbsp;&nbsp;-e 's%/var/spool/mail%/var/mail%' \
-&nbsp;&nbsp;&nbsp;&nbsp;etc/login.defs.linux &gt; /etc/login.defs</userinput></screen>
+ -e 's%/var/spool/mail%/var/mail%' \
+ etc/login.defs.linux &gt; /etc/login.defs</userinput></screen>
<para>Move some misplaced symlinks to their proper locations:</para>
@@ -91,9 +98,11 @@ installed by Shadow:</para>
</sect2>
-<sect2><title>&nbsp;</title><para>&nbsp;</para></sect2>
-<sect2><title>Configuring Shadow</title>
+<sect2 id="conf-shadow"><title>Configuring Shadow</title>
+<indexterm zone="conf-shadow">
+<primary sortas="a-Shadow">Shadow</primary>
+<secondary>configuring</secondary></indexterm>
<para>This package contains utilities to add, modify and delete users and
groups, set and change their passwords, and other such administrative tasks.
@@ -108,7 +117,7 @@ need to be able to work with shadowed passwords.</para>
<screen><userinput>pwconv</userinput></screen>
-<para>And to enable shadowed group passwords, run:</para>
+<para>To enable shadowed group passwords, run:</para>
<screen><userinput>grpconv</userinput></screen>
@@ -119,7 +128,6 @@ any group passwords with the <command>gpasswd</command> command.</para>
</sect2>
-<sect2><title>&nbsp;</title><para>&nbsp;</para></sect2>
<sect2>
<title>Setting the root password</title>
@@ -130,8 +138,153 @@ any group passwords with the <command>gpasswd</command> command.</para>
</sect2>
-&aa-shadow-shortdesc;
-&aa-shadow-desc;
-</sect1>
+<sect2 id="contents-shadow"><title>Contents of Shadow</title>
+
+<para><emphasis>Installed programs</emphasis>: chage, chfn, chpasswd, chsh,
+dpasswd, expiry, faillog, gpasswd, groupadd, groupdel, groupmod, groups, grpck,
+grpconv, grpunconv, lastlog, login, logoutd, mkpasswd, newgrp, newusers,
+passwd, pwck, pwconv, pwunconv, sg (link to newgrp), useradd, userdel, usermod,
+vigr (link to vipw) and vipw</para>
+
+</sect2>
+
+<sect2><title>Short descriptions</title>
+
+<indexterm zone="ch-system-shadow chage"><primary sortas="b-chage">chage</primary></indexterm>
+<para id="chage"><command>chage</command> is used to change the maximum number of
+days between obligatory password changes.</para>
+
+<indexterm zone="ch-system-shadow chfn"><primary sortas="b-chfn">chfn</primary></indexterm>
+<para id="chfn"><command>chfn</command> is used to change a user's full name and
+some other info.</para>
+
+<indexterm zone="ch-system-shadow chpasswd"><primary sortas="b-chpasswd">chpasswd</primary></indexterm>
+<para id="chpasswd"><command>chpasswd</command> is used to update the passwords of a
+whole series of user accounts in one go.</para>
+
+<indexterm zone="ch-system-shadow chsh"><primary sortas="b-chsh">chsh</primary></indexterm>
+<para id="chsh"><command>chsh</command> is used to change a user's default
+ login shell.</para>
+
+<indexterm zone="ch-system-shadow dpasswd"><primary sortas="b-dpasswd">dpasswd</primary></indexterm>
+<para id="dpasswd"><command>dpasswd</command> is used to change dial-up passwords for
+user login shells.</para>
+
+<indexterm zone="ch-system-shadow expiry"><primary sortas="b-expiry">expiry</primary></indexterm>
+<para id="expiry"><command>expiry</command> checks and enforces the current password
+expiration policy.</para>
+
+<indexterm zone="ch-system-shadow faillog"><primary sortas="b-faillog">faillog</primary></indexterm>
+<para id="faillog"><command>faillog</command> is used to examine the log of login
+failures, to set a maximum number of failures before an account is blocked,
+or to reset the failure count.</para>
+
+<indexterm zone="ch-system-shadow gpasswd"><primary sortas="b-gpasswd">gpasswd</primary></indexterm>
+<para id="gpasswd"><command>gpasswd</command> is used to add and delete members and
+administrators to groups.</para>
+
+<indexterm zone="ch-system-shadow groupadd"><primary sortas="b-groupadd">groupadd</primary></indexterm>
+<para id="groupadd"><command>groupadd</command> creates a group with the given
+name.</para>
+
+<indexterm zone="ch-system-shadow groupdel"><primary sortas="b-groupdel">groupdel</primary></indexterm>
+<para id="groupdel"><command>groupdel</command> deletes the group with the given
+name.</para>
+
+<indexterm zone="ch-system-shadow groupmod"><primary sortas="b-groupmod">groupmod</primary></indexterm>
+<para id="groupmod"><command>groupmod</command> is used to modify the given group's
+name or GID.</para>
+
+<indexterm zone="ch-system-shadow groups"><primary sortas="b-groups">groups</primary></indexterm>
+<para id="groups"><command>groups</command> reports the groups of which the given
+users are members.</para>
+
+<indexterm zone="ch-system-shadow grpck"><primary sortas="b-grpck">grpck</primary></indexterm>
+<para id="grpck"><command>grpck</command> verifies the integrity of the group files,
+<filename>/etc/group</filename> and <filename>/etc/gshadow</filename>.</para>
+
+<indexterm zone="ch-system-shadow grpconv"><primary sortas="b-grpconv">grpconv</primary></indexterm>
+<para id="grpconv"><command>grpconv</command> creates or updates the shadow group file
+from the normal group file.</para>
+
+<indexterm zone="ch-system-shadow grpunconv"><primary sortas="b-grpunconv">grpunconv</primary></indexterm>
+<para id="grpunconv"><command>grpunconv</command> updates <filename>/etc/group</filename>
+from <filename>/etc/gshadow</filename> and then deletes the latter.</para>
+
+<indexterm zone="ch-system-shadow lastlog"><primary sortas="b-lastlog">lastlog</primary></indexterm>
+<para id="lastlog"><command>lastlog</command> reports the most recent login of all
+users, or of a given user.</para>
+<indexterm zone="ch-system-shadow login"><primary sortas="b-login">login</primary></indexterm>
+<para id="login"><command>login</command> is used by the system to let users sign on.</para>
+
+<indexterm zone="ch-system-shadow logoutd"><primary sortas="b-logoutd">logoutd</primary></indexterm>
+<para id="logoutd"><command>logoutd</command> is a daemon used to enforce restrictions
+on log-on time and ports.</para>
+
+<indexterm zone="ch-system-shadow mkpasswd"><primary sortas="b-mkpasswd">mkpasswd</primary></indexterm>
+<para id="mkpasswd"><command>mkpasswd</command> encrypts the given password using the
+also given perturbation.</para>
+
+<indexterm zone="ch-system-shadow newgrp"><primary sortas="b-newgrp">newgrp</primary></indexterm>
+<para id="newgrp"><command>newgrp</command> is used to change the current GID during
+a login session.</para>
+
+<indexterm zone="ch-system-shadow newusers"><primary sortas="b-newusers">newusers</primary></indexterm>
+<para id="newusers"><command>newusers</command> is used to create or update a whole
+series of user accounts in one go.</para>
+
+<indexterm zone="ch-system-shadow passwd"><primary sortas="b-passwd">passwd</primary></indexterm>
+<para id="passwd"><command>passwd</command> is used to change the password for a user
+or group account.</para>
+
+<indexterm zone="ch-system-shadow pwck"><primary sortas="b-pwck">pwck</primary></indexterm>
+<para id="pwck"><command>pwck</command> verifies the integrity of the password files,
+<filename>/etc/passwd</filename> and <filename>/etc/shadow</filename>.</para>
+
+<indexterm zone="ch-system-shadow pwconv"><primary sortas="b-pwconv">pwconv</primary></indexterm>
+<para id="pwconv"><command>pwconv</command> creates or updates the shadow password file
+from the normal password file.</para>
+
+<indexterm zone="ch-system-shadow pwunconv"><primary sortas="b-pwunconv">pwunconv</primary></indexterm>
+<para id="pwunconv"><command>pwunconv</command> updates <filename>/etc/passwd</filename>
+from <filename>/etc/shadow</filename> and then deletes the latter.</para>
+
+<indexterm zone="ch-system-shadow sg"><primary sortas="b-sg">sg</primary></indexterm>
+<para id="sg"><command>sg</command> executes a given command while the user's GID
+is set to that of the given group.</para>
+
+<indexterm zone="ch-system-shadow useradd"><primary sortas="b-useradd">useradd</primary></indexterm>
+<para id="useradd"><command>useradd</command> creates a new user with the given name,
+or updates the default new-user information.</para>
+
+<indexterm zone="ch-system-shadow userdel"><primary sortas="b-userdel">userdel</primary></indexterm>
+<para id="userdel"><command>userdel</command> deletes the given user account.</para>
+
+<indexterm zone="ch-system-shadow usermod"><primary sortas="b-usermod">usermod</primary></indexterm>
+<para id="usermod"><command>usermod</command> is used to modify the given user's
+login name, UID (User Identification), shell, initial group, home directory, and the like.</para>
+
+<indexterm zone="ch-system-shadow vigr"><primary sortas="b-vigr">vigr</primary></indexterm>
+<para id="vigr"><command>vigr</command> can be used to edit the
+<filename>/etc/group</filename> or <filename>/etc/gshadow</filename>
+files.</para>
+
+<indexterm zone="ch-system-shadow vipw"><primary sortas="b-vipw">vipw</primary></indexterm>
+<para id="vipw"><command>vipw</command> can be used to edit the
+<filename>/etc/passwd</filename> or <filename>/etc/shadow</filename>
+files.</para>
+
+<indexterm zone="ch-system-shadow libmisc"><primary sortas="c-libmisc">libmisc</primary></indexterm>
+<para id="libmisc"><command>libmisc</command>...</para>
+
+<indexterm zone="ch-system-shadow libshadow"><primary sortas="c-libshadow">libshadow</primary></indexterm>
+<para id="libshadow"><command>libshadow</command> contains functions used by most
+programs in this package.</para>
+
+</sect2>
+
+
+
+</sect1>
diff --git a/chapter06/sysklogd.xml b/chapter06/sysklogd.xml
index 9043544e8..1d85acec1 100644
--- a/chapter06/sysklogd.xml
+++ b/chapter06/sysklogd.xml
@@ -1,17 +1,23 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+ <!ENTITY % general-entities SYSTEM "../general.ent">
+ %general-entities;
+]>
<sect1 id="ch-system-sysklogd" xreflabel="Sysklogd">
-<title>Installing Sysklogd-&sysklogd-version;</title>
-<?dbhtml filename="sysklogd.html" dir="chapter06"?>
+<title>Sysklogd-&sysklogd-version;</title>
+<?dbhtml filename="sysklogd.html"?>
+
+<indexterm zone="ch-system-sysklogd"><primary sortas="a-Sysklogd">Sysklogd</primary></indexterm>
<para>The Sysklogd package contains programs for logging system messages, such
as those given by the kernel when unusual things happen.</para>
-<screen>&buildtime; &sysklogd-time;
-&diskspace; &sysklogd-compsize;</screen>
+<screen>&buildtime; 0.1 SBU
+&diskspace; 0.5 MB</screen>
+
+<para>Sysklogd installation depends on: Binutils, Coreutils, GCC, Glibc, Make.</para>
-&aa-sysklogd-down;
-&aa-sysklogd-dep;
-<sect2><title>&nbsp;</title><para>&nbsp;</para></sect2>
<sect2>
<title>Installation of Sysklogd</title>
@@ -20,15 +26,19 @@ as those given by the kernel when unusual things happen.</para>
<screen><userinput>make</userinput></screen>
-<para>And install it:</para>
+<para>Now install it:</para>
<screen><userinput>make install</userinput></screen>
</sect2>
-<sect2><title>&nbsp;</title><para>&nbsp;</para></sect2>
-<sect2><title>Configuring Sysklogd</title>
+<sect2 id="conf-sysklogd"><title>Configuring Sysklogd</title>
+<indexterm zone="conf-sysklogd">
+<primary sortas="a-Sysklogd">Sysklogd</primary>
+<secondary>configuring</secondary></indexterm>
+
+<indexterm zone="conf-sysklogd"><primary sortas="e-/etc/syslog.conf">/etc/syslog.conf</primary></indexterm>
<para>Create a new <filename>/etc/syslog.conf</filename> file by running the
following:</para>
@@ -49,8 +59,28 @@ user.* -/var/log/user.log
</sect2>
-&aa-sysklogd-shortdesc;
-&aa-sysklogd-desc;
-</sect1>
+<sect2 id="contents-sysklogd"><title>Contents of Sysklogd</title>
+
+<para><emphasis>Installed programs</emphasis>: klogd and syslogd</para>
+
+</sect2>
+
+<sect2><title>Short descriptions</title>
+
+<indexterm zone="ch-system-sysklogd klogd"><primary sortas="b-klogd">klogd</primary></indexterm>
+<para id="klogd"><command>klogd</command> is a system daemon for intercepting and
+logging kernel messages.</para>
+
+<indexterm zone="ch-system-sysklogd syslogd"><primary sortas="b-syslogd">syslogd</primary></indexterm>
+<para id="syslogd"><command>syslogd</command> logs the messages that system programs
+offer for logging. Every logged message contains at least a date stamp and a
+hostname, and normally the program's name too, but that depends on how
+trusting the logging daemon is told to be.</para>
+
+</sect2>
+
+
+
+</sect1>
diff --git a/chapter06/sysvinit.xml b/chapter06/sysvinit.xml
index 37e0046b5..48418db53 100644
--- a/chapter06/sysvinit.xml
+++ b/chapter06/sysvinit.xml
@@ -1,47 +1,56 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+ <!ENTITY % general-entities SYSTEM "../general.ent">
+ %general-entities;
+]>
<sect1 id="ch-system-sysvinit" xreflabel="Sysvinit">
-<title>Installing Sysvinit-&sysvinit-version;</title>
-<?dbhtml filename="sysvinit.html" dir="chapter06"?>
+<title>Sysvinit-&sysvinit-version;</title>
+<?dbhtml filename="sysvinit.html"?>
+
+<indexterm zone="ch-system-sysvinit"><primary sortas="a-Sysvinit">Sysvinit</primary></indexterm>
<para>The Sysvinit package contains programs for controlling the startup,
running, and shutdown of your system.</para>
-<screen>&buildtime; &sysvinit-time;
-&diskspace; &sysvinit-compsize;</screen>
+<screen>&buildtime; 0.1 SBU
+&diskspace; 0.9 MB</screen>
+
+<para>Sysvinit installation depends on: Binutils, Coreutils, GCC, Glibc, Make.</para>
-&aa-sysvinit-down;
-&aa-sysvinit-dep;
-<sect2><title>&nbsp;</title><para>&nbsp;</para></sect2>
<sect2>
<title>Installation of Sysvinit</title>
-<para>When runlevels are changed (for example, when halting the system),
-<command>init</command> sends termination signals to those processes that it
-itself started and that shouldn't be running in the new runlevel. While doing
-this, <command>init</command> outputs messages like "Sending processes the TERM
-signal" which seem to imply that it is sending these signals to all currently
-running processes. To avoid this misinterpretation, you can modify the source
-so that these messages read like "Sending processes started by init the TERM
-signal" instead:</para>
+<para>When run-levels are changed (for example, when halting the system),
+<command>init</command> sends termination signals to those processes that
+<command>init</command> itself started and that shouldn't be running in the new
+run-level. While doing this, <command>init</command> outputs messages like
+<quote>Sending processes the TERM signal</quote> which seem to imply that it is sending these signals to all currently running processes. To avoid this
+misinterpretation, you can modify the source so that these messages read like
+<quote>Sending processes started by init the TERM signal</quote> instead:</para>
<screen><userinput>cp src/init.c{,.backup}
sed 's/Sending processes/&amp; started by init/g' \
-&nbsp;&nbsp;&nbsp;&nbsp;src/init.c.backup &gt; src/init.c</userinput></screen>
+ src/init.c.backup &gt; src/init.c</userinput></screen>
<para>Compile Sysvinit:</para>
<screen><userinput>make -C src</userinput></screen>
-<para>And install it:</para>
+<para>Then install it:</para>
<screen><userinput>make -C src install</userinput></screen>
</sect2>
-<sect2><title>&nbsp;</title><para>&nbsp;</para></sect2>
-<sect2><title>Configuring Sysvinit</title>
+<sect2 id="conf-sysvinit"><title>Configuring Sysvinit</title>
+<indexterm zone="conf-sysvinit">
+<primary sortas="a-Sysvinit">Sysvinit</primary>
+<secondary>configuring</secondary></indexterm>
+
+<indexterm zone="conf-sysvinit"><primary sortas="e-/etc/inittab">/etc/inittab</primary></indexterm>
<para>Create a new <filename>/etc/inittab</filename> file by running the
following:</para>
@@ -77,8 +86,84 @@ su:S016:once:/sbin/sulogin
</sect2>
-&aa-sysvinit-shortdesc;
-&aa-sysvinit-desc;
-</sect1>
+<sect2 id="contents-sysvinit"><title>Contents of Sysvinit</title>
+
+<para><emphasis>Installed programs</emphasis>: halt, init, killall5, last,
+lastb (link to last), mesg, pidof (link to killall5), poweroff (link to halt),
+reboot (link to halt), runlevel, shutdown, sulogin, telinit (link to init),
+utmpdump and wall</para>
+
+</sect2>
+
+
+<sect2><title>Short descriptions</title>
+
+<indexterm zone="ch-system-sysvinit halt"><primary sortas="b-halt">halt</primary></indexterm>
+<para id="halt"><command>halt</command> normally invokes shutdown with the -h flag,
+except when already in run-level 0, then it tells the kernel to halt the system.
+But first it notes in the file <filename>/var/log/wtmp</filename> that the
+system is being brought down.</para>
+
+<indexterm zone="ch-system-sysvinit init"><primary sortas="b-init">init</primary></indexterm>
+<para id="init"><command>init</command> is the mother of all processes. It reads its
+commands from <filename>/etc/inittab</filename>, which normally tell it which
+scripts to run for which run-level, and how many gettys to spawn.</para>
+
+<indexterm zone="ch-system-sysvinit killall5"><primary sortas="b-killall5">killall5</primary></indexterm>
+<para id="killall5"><command>killall5</command> sends a signal to all processes, except
+the processes in its own session -- so it won't kill the shell running the
+script that called it.</para>
+
+<indexterm zone="ch-system-sysvinit last"><primary sortas="b-last">last</primary></indexterm>
+<para id="last"><command>last</command> shows which users last logged in (and out),
+searching back through the file <filename>/var/log/wtmp</filename>. It can
+also show system boots and shutdowns, and run-level changes.</para>
+
+<indexterm zone="ch-system-sysvinit lastb"><primary sortas="b-lastb">lastb</primary></indexterm>
+<para id="lastb"><command>lastb</command> shows the failed login attempts, as logged
+in <filename>/var/log/btmp</filename>.</para>
+
+<indexterm zone="ch-system-sysvinit mesg"><primary sortas="b-mesg">mesg</primary></indexterm>
+<para id="mesg"><command>mesg</command> controls whether other users can send
+messages to the current user's terminal.</para>
+<indexterm zone="ch-system-sysvinit pidof"><primary sortas="b-pidof">pidof</primary></indexterm>
+<para id="pidof"><command>pidof</command> reports the PIDs of the given programs.</para>
+
+<indexterm zone="ch-system-sysvinit poweroff"><primary sortas="b-poweroff">poweroff</primary></indexterm>
+<para id="poweroff"><command>poweroff</command> tells the kernel to halt the system and
+switch off the computer. But see halt.</para>
+
+<indexterm zone="ch-system-sysvinit reboot"><primary sortas="b-reboot">reboot</primary></indexterm>
+<para id="reboot"><command>reboot</command> tells the kernel to reboot the system.
+But see halt.</para>
+
+<indexterm zone="ch-system-sysvinit runlevel"><primary sortas="b-runlevel">runlevel</primary></indexterm>
+<para id="runlevel"><command>runlevel</command> reports the previous and the current
+run-level, as noted in the last run-level record in
+<filename>/var/run/utmp</filename>.</para>
+
+<indexterm zone="ch-system-sysvinit shutdown"><primary sortas="b-shutdown">shutdown</primary></indexterm>
+<para id="shutdown"><command>shutdown</command> brings the system down in a secure way,
+signaling all processes and notifying all logged-in users.</para>
+
+<indexterm zone="ch-system-sysvinit sulogin"><primary sortas="b-sulogin">sulogin</primary></indexterm>
+<para id="sulogin"><command>sulogin</command> allows the superuser to log in. It is
+normally invoked by init when the system goes into single user mode.</para>
+
+<indexterm zone="ch-system-sysvinit telinit"><primary sortas="b-telinit">telinit</primary></indexterm>
+<para id="telinit"><command>telinit</command> tells init which run-level to enter.</para>
+
+<indexterm zone="ch-system-sysvinit utmpdump"><primary sortas="b-utmpdump">utmpdump</primary></indexterm>
+<para id="utmpdump"><command>utmpdump</command> displays the content of the given login
+file in a friendlier format.</para>
+
+<indexterm zone="ch-system-sysvinit wall"><primary sortas="b-wall">wall</primary></indexterm>
+<para id="wall"><command>wall</command> writes a message to all logged-in users.</para>
+
+</sect2>
+
+
+
+</sect1>
diff --git a/chapter06/tar.xml b/chapter06/tar.xml
index 3c96fe1fe..089ab91e6 100644
--- a/chapter06/tar.xml
+++ b/chapter06/tar.xml
@@ -1,16 +1,23 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+ <!ENTITY % general-entities SYSTEM "../general.ent">
+ %general-entities;
+]>
<sect1 id="ch-system-tar" xreflabel="Tar">
-<title>Installing Tar-&tar-version;</title>
-<?dbhtml filename="tar.html" dir="chapter06"?>
+<title>Tar-&tar-version;</title>
+<?dbhtml filename="tar.html"?>
+
+<indexterm zone="ch-system-tar"><primary sortas="a-Tar">Tar</primary></indexterm>
<para>The Tar package contains an archiving program.</para>
-<screen>&buildtime; &tar-time;
-&diskspace; &tar-compsize;</screen>
+<screen>&buildtime; 0.2 SBU
+&diskspace; 10 MB</screen>
+
+<para>Tar installation depends on: Bash, Binutils, Coreutils,
+Diffutils, GCC, Gettext, Glibc, Grep, Make, Sed.</para>
-&aa-tar-down;
-&aa-tar-dep;
-<sect2><title>&nbsp;</title><para>&nbsp;</para></sect2>
<sect2>
<title>Installation of Tar</title>
@@ -23,17 +30,34 @@
<screen><userinput>make</userinput></screen>
-<para>To have the results tested, issue:
+<para>To test the results, issue:
<userinput>make check</userinput>.</para>
-<para>And install the package:</para>
+<para>Now install the package:</para>
<screen><userinput>make install</userinput></screen>
</sect2>
-&aa-tar-shortdesc;
-&aa-tar-desc;
-</sect1>
+<sect2 id="contents-tar"><title>Contents of Tar</title>
+
+<para><emphasis>Installed programs</emphasis>: rmt and tar</para>
+
+</sect2>
+
+<sect2><title>Short descriptions</title>
+<indexterm zone="ch-system-tar rmt"><primary sortas="b-rmt">rmt</primary></indexterm>
+<para id="rmt"><command>rmt</command> is used to remotely manipulate a magnetic
+tape drive, through an interprocess communication connection.</para>
+
+<indexterm zone="ch-system-tar tar"><primary sortas="b-tar">tar</primary></indexterm>
+<para id="tar"><command>tar</command> is used to create and extract files from
+archives, also known as tarballs.</para>
+
+</sect2>
+
+
+
+</sect1>
diff --git a/chapter06/texinfo.xml b/chapter06/texinfo.xml
index f9e8cff54..a2a672d84 100644
--- a/chapter06/texinfo.xml
+++ b/chapter06/texinfo.xml
@@ -1,17 +1,24 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+ <!ENTITY % general-entities SYSTEM "../general.ent">
+ %general-entities;
+]>
<sect1 id="ch-system-texinfo" xreflabel="Texinfo">
-<title>Installing Texinfo-&texinfo-version;</title>
-<?dbhtml filename="texinfo.html" dir="chapter06"?>
+<title>Texinfo-&texinfo-version;</title>
+<?dbhtml filename="texinfo.html"?>
+
+<indexterm zone="ch-system-texinfo"><primary sortas="a-Texinfo">Texinfo</primary></indexterm>
<para>The Texinfo package contains programs for reading, writing, and
converting Info documents.</para>
-<screen>&buildtime; &texinfo-time;
-&diskspace; &texinfo-compsize;</screen>
+<screen>&buildtime; 0.2 SBU
+&diskspace; 17 MB</screen>
+
+<para>Texinfo installation depends on: Bash, Binutils, Coreutils,
+Diffutils, GCC, Gettext, Glibc, Grep, Make, Ncurses, Sed.</para>
-&aa-texinfo-down;
-&aa-texinfo-dep;
-<sect2><title>&nbsp;</title><para>&nbsp;</para></sect2>
<sect2>
<title>Installation of Texinfo</title>
@@ -24,14 +31,14 @@ converting Info documents.</para>
<screen><userinput>make</userinput></screen>
-<para>To have the results tested, issue:
+<para>To test the results, issue:
<userinput>make check</userinput>.</para>
<para>Install the package:</para>
<screen><userinput>make install</userinput></screen>
-<para>And optionally install the components belonging in a TeX installation:</para>
+<para>Optionally install the components belonging in a TeX installation:</para>
<screen><userinput>make TEXMF=/usr/share/texmf install-tex</userinput></screen>
@@ -54,13 +61,47 @@ will accomplish the task:</para>
<screen><userinput>cd /usr/share/info
rm dir
for f in *
-do install-info $f dir 2>/dev/null
+do install-info $f dir 2&gt;/dev/null
done</userinput></screen>
</sect2>
-&aa-texinfo-shortdesc;
-&aa-texinfo-desc;
-</sect1>
+<sect2 id="contents-texinfo"><title>Contents of Texinfo</title>
+
+<para><emphasis>Installed programs</emphasis>: info, infokey, install-info,
+makeinfo, texi2dvi and texindex</para>
+
+</sect2>
+
+<sect2><title>Short descriptions</title>
+
+<indexterm zone="ch-system-texinfo info"><primary sortas="b-info">info</primary></indexterm>
+<para id="info"><command>info</command> is used to read Info documents. Info
+documents are a bit like man pages, but often go much deeper than just
+explaining all the flags. Compare for example man tar and info tar.</para>
+
+<indexterm zone="ch-system-texinfo infokey"><primary sortas="b-infokey">infokey</primary></indexterm>
+<para id="infokey"><command>infokey</command> compiles a source file containing Info
+customizations into a binary format.</para>
+<indexterm zone="ch-system-texinfo install-info"><primary sortas="b-install-info">install-info</primary></indexterm>
+<para id="install-info"><command>install-info</command> is used to install Info files. It
+updates entries in the Info index file.</para>
+
+<indexterm zone="ch-system-texinfo makeinfo"><primary sortas="b-makeinfo">makeinfo</primary></indexterm>
+<para id="makeinfo"><command>makeinfo</command> translates the given Texinfo source
+documents into various other formats: Info files, plain text, or HTML.</para>
+
+<indexterm zone="ch-system-texinfo texi2dvi"><primary sortas="b-texi2dvi">texi2dvi</primary></indexterm>
+<para id="texi2dvi"><command>texi2dvi</command> is used to format the given Texinfo
+document into a device-independent file that can be printed.</para>
+
+<indexterm zone="ch-system-texinfo texindex"><primary sortas="b-texindex">texindex</primary></indexterm>
+<para id="texindex"><command>texindex</command> is used to sort Texinfo index files.</para>
+
+</sect2>
+
+
+
+</sect1>
diff --git a/chapter06/util-linux.xml b/chapter06/util-linux.xml
new file mode 100644
index 000000000..38aa75a84
--- /dev/null
+++ b/chapter06/util-linux.xml
@@ -0,0 +1,314 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+ <!ENTITY % general-entities SYSTEM "../general.ent">
+ %general-entities;
+]>
+<sect1 id="ch-system-util-linux" xreflabel="Util-linux">
+<title>Util-linux-&util-linux-version;</title>
+<?dbhtml filename="util-linux.html"?>
+
+<indexterm zone="ch-system-util-linux"><primary sortas="a-Util-linux">Util-linux</primary></indexterm>
+
+<para>The Util-linux package contains miscellaneous utility programs. Among
+them are utilities for handling file systems, consoles, partitions, and
+messages.</para>
+
+<screen>&buildtime; 0.2 SBU
+&diskspace; 16 MB</screen>
+
+<para>Util-linux installation depends on: Bash, Binutils, Coreutils,
+Diffutils, GCC, Gettext, Glibc, Grep, Make, Ncurses, Sed, Zlib.</para>
+
+
+
+<sect2>
+<title>FHS compliance notes</title>
+
+<para>The FHS recommends that we use <filename>/var/lib/hwclock</filename>,
+instead of the usual <filename>/etc</filename>, as the location for the
+<filename>adjtime</filename> file. To make the <command>hwclock</command>
+program FHS-compliant, run the following:</para>
+
+<screen><userinput>cp hwclock/hwclock.c{,.backup}
+sed 's%etc/adjtime%var/lib/hwclock/adjtime%' \
+ hwclock/hwclock.c.backup &gt; hwclock/hwclock.c
+mkdir -p /var/lib/hwclock</userinput></screen>
+
+</sect2>
+
+<sect2>
+<title>Installation of Util-linux</title>
+
+<para>Prepare Util-linux for compilation:</para>
+
+<screen><userinput>./configure</userinput></screen>
+
+<para>Compile the package:</para>
+
+<screen><userinput>make HAVE_KILL=yes HAVE_SLN=yes</userinput></screen>
+
+<para>The meaning of the make parameters:</para>
+
+<itemizedlist>
+<listitem><para><userinput>HAVE_KILL=yes</userinput>: This prevents the
+<command>kill</command> program (already installed by Procps) from being
+built and installed again.</para></listitem>
+
+<listitem><para><userinput>HAVE_SLN=yes</userinput>: This prevents the
+<command>sln</command> program (a statically linked
+<command>ln</command> already installed by Glibc) from being built and
+installed again.</para></listitem>
+</itemizedlist>
+
+<para>Now install the package:</para>
+
+<screen><userinput>make HAVE_KILL=yes HAVE_SLN=yes install</userinput></screen>
+
+</sect2>
+
+
+<sect2 id="contents-utillinux"><title>Contents of Util-linux</title>
+
+<para><emphasis>Installed programs</emphasis>: agetty, arch, blockdev, cal,
+cfdisk, chkdupexe, col, colcrt, colrm, column, ctrlaltdel, cytune, ddate,
+dmesg, elvtune, fdformat, fdisk, fsck.cramfs, fsck.minix, getopt, hexdump,
+hwclock, ipcrm, ipcs, isosize, line, logger, look, losetup, mcookie, mkfs,
+mkfs.bfs, mkfs.cramfs, mkfs.minix, mkswap, more, mount, namei, pg, pivot_root,
+ramsize (link to rdev), raw, rdev, readprofile, rename, renice, rev, rootflags
+(link to rdev), script, setfdprm, setsid, setterm, sfdisk, swapoff (link to
+swapon), swapon, tunelp, ul, umount, vidmode (link to rdev), whereis and
+write</para>
+
+</sect2>
+
+<sect2><title>Short descriptions</title>
+
+<indexterm zone="ch-system-util-linux agetty"><primary sortas="b-agetty">agetty</primary></indexterm>
+<para id="agetty"><command>agetty</command> opens a tty port, prompts for a login name,
+and then invokes the login program.</para>
+
+<indexterm zone="ch-system-util-linux arch"><primary sortas="b-arch">arch</primary></indexterm>
+<para id="arch"><command>arch</command> reports the machine's architecture.</para>
+
+<indexterm zone="ch-system-util-linux blockdev"><primary sortas="b-blockdev">blockdev</primary></indexterm>
+<para id="blockdev"><command>blockdev</command> allows you to call block device ioctls
+from the command line.</para>
+
+<indexterm zone="ch-system-util-linux cal"><primary sortas="b-cal">cal</primary></indexterm>
+<para id="cal"><command>cal</command> displays a simple calendar.</para>
+
+<indexterm zone="ch-system-util-linux cfdisk"><primary sortas="b-cfdisk">cfdisk</primary></indexterm>
+<para id="cfdisk"><command>cfdisk</command> is used to manipulate the partition table
+of the given device.</para>
+
+<indexterm zone="ch-system-util-linux chkdupexe"><primary sortas="b-chkdupexe">chkdupexe</primary></indexterm>
+<para id="chkdupexe"><command>chkdupexe</command> finds duplicate executables.</para>
+
+<indexterm zone="ch-system-util-linux col"><primary sortas="b-col">col</primary></indexterm>
+<para id="col"><command>col</command> filters out reverse line feeds.</para>
+
+<indexterm zone="ch-system-util-linux colcrt"><primary sortas="b-colcrt">colcrt</primary></indexterm>
+<para id="colcrt"><command>colcrt</command> is used to filter nroff output for terminals
+that lack some capabilities such as overstriking and half-lines.</para>
+
+<indexterm zone="ch-system-util-linux colrm"><primary sortas="b-colrm">colrm</primary></indexterm>
+<para id="colrm"><command>colrm</command> filters out the given columns.</para>
+
+<indexterm zone="ch-system-util-linux column"><primary sortas="b-column">column</primary></indexterm>
+<para id="column"><command>column</command> formats a given file into multiple
+columns.</para>
+
+<indexterm zone="ch-system-util-linux ctrlaltdel"><primary sortas="b-ctrlaltdel">ctrlaltdel</primary></indexterm>
+<para id="ctrlaltdel"><command>ctrlaltdel</command> sets the function of the Ctrl+Alt+Del
+ key combination to a hard or a soft reset.</para>
+
+<indexterm zone="ch-system-util-linux cytune"><primary sortas="b-cytune">cytune</primary></indexterm>
+<para id="cytune"><command>cytune</command> was used to tune the parameters of the
+serial line drivers for Cyclades cards.</para>
+
+<indexterm zone="ch-system-util-linux ddate"><primary sortas="b-ddate">ddate</primary></indexterm>
+<para id="ddate"><command>ddate</command> gives the Discordian date, or converts the
+given Gregorian date to a Discordian one.</para>
+
+<indexterm zone="ch-system-util-linux dmesg"><primary sortas="b-dmesg">dmesg</primary></indexterm>
+<para id="dmesg"><command>dmesg</command> dumps the kernel boot messages.</para>
+
+<indexterm zone="ch-system-util-linux elvtune"><primary sortas="b-elvtune">elvtune</primary></indexterm>
+<para id="elvtune"><command>elvtune</command> can be used to tune the performance
+and interactivity of a block device.</para>
+
+<indexterm zone="ch-system-util-linux fdformat"><primary sortas="b-fdformat">fdformat</primary></indexterm>
+<para id="fdformat"><command>fdformat</command> low-level formats a floppy disk.</para>
+
+<indexterm zone="ch-system-util-linux fdisk"><primary sortas="b-fdisk">fdisk</primary></indexterm>
+<para id="fdisk"><command>fdisk</command> could be used to manipulate the partition
+table of the given device.</para>
+
+<indexterm zone="ch-system-util-linux fsck.cramfs"><primary sortas="b-fsck.cramfs">fsck.cramfs</primary></indexterm>
+<para id="fsck.cramfs"><command>fsck.cramfs</command> performs a consistency check on the
+Cramfs file system on the given device.</para>
+
+<indexterm zone="ch-system-util-linux fsck.minix"><primary sortas="b-fsck.minix">fsck.minix</primary></indexterm>
+<para id="fsck.minix"><command>fsck.minix</command> performs a consistency check on the
+Minix file system on the given device.</para>
+
+<indexterm zone="ch-system-util-linux getopt"><primary sortas="b-getopt">getopt</primary></indexterm>
+<para id="getopt"><command>getopt</command> parses options in the given command line.</para>
+
+<indexterm zone="ch-system-util-linux hexdump"><primary sortas="b-hexdump">hexdump</primary></indexterm>
+<para id="hexdump"><command>hexdump</command> dumps the given file in hexadecimal, or
+in another given format.</para>
+
+<indexterm zone="ch-system-util-linux hwclock"><primary sortas="b-hwclock">hwclock</primary></indexterm>
+<para id="hwclock"><command>hwclock</command> is used to read or set the system's
+hardware clock, also called the RTC (Real-Time Clock) or BIOS (Basic Input-Output System) clock.</para>
+
+<indexterm zone="ch-system-util-linux ipcrm"><primary sortas="b-ipcrm">ipcrm</primary></indexterm>
+<para id="ipcrm"><command>ipcrm</command> removes the given IPC resource.</para>
+
+<indexterm zone="ch-system-util-linux ipcs"><primary sortas="b-ipcs">ipcs</primary></indexterm>
+<para id="ipcs"><command>ipcs</command> provides IPC status information.</para>
+
+<indexterm zone="ch-system-util-linux isosize"><primary sortas="b-isosize">isosize</primary></indexterm>
+<para id="isosize"><command>isosize</command> reports the size of an iso9660
+file system.</para>
+
+<indexterm zone="ch-system-util-linux line"><primary sortas="b-line">line</primary></indexterm>
+<para id="line"><command>line</command> copies a single line.</para>
+
+<indexterm zone="ch-system-util-linux logger"><primary sortas="b-logger">logger</primary></indexterm>
+<para id="logger"><command>logger</command> enters the given message into the system
+log.</para>
+
+<indexterm zone="ch-system-util-linux look"><primary sortas="b-look">look</primary></indexterm>
+<para id="look"><command>look</command> displays lines that begin with the given
+string.</para>
+
+<indexterm zone="ch-system-util-linux losetup"><primary sortas="b-losetup">losetup</primary></indexterm>
+<para id="losetup"><command>losetup</command> is used to set up and control loop devices.</para>
+
+<indexterm zone="ch-system-util-linux mcookie"><primary sortas="b-mcookie">mcookie</primary></indexterm>
+<para id="mcookie"><command>mcookie</command> generates magic cookies, 128-bit random
+hexadecimal numbers, for xauth.</para>
+
+<indexterm zone="ch-system-util-linux mkfs"><primary sortas="b-mkfs">mkfs</primary></indexterm>
+<para id="mkfs"><command>mkfs</command> is used to build a file system on a device
+(usually a hard disk partition).</para>
+
+<indexterm zone="ch-system-util-linux mkfs.bfs"><primary sortas="b-mkfs.bfs">mkfs.bfs</primary></indexterm>
+<para id="mkfs.bfs"><command>mkfs.bfs</command> creates an SCO (Santa Cruz Operations) bfs file system.</para>
+
+<indexterm zone="ch-system-util-linux mkfs.cramfs"><primary sortas="b-mkfs.cramfs">mkfs.cramfs</primary></indexterm>
+<para id="mkfs.cramfs"><command>mkfs.cramfs</command> creates a cramfs file system.</para>
+
+<indexterm zone="ch-system-util-linux mkfs.minix"><primary sortas="b-mkfs.minix">mkfs.minix</primary></indexterm>
+<para id="mkfs.minix"><command>mkfs.minix</command> creates a Minix file system.</para>
+
+<indexterm zone="ch-system-util-linux mkswap"><primary sortas="b-mkswap">mkswap</primary></indexterm>
+<para id="mkswap"><command>mkswap</command> initializes the given device or file to be
+used as a swap area.</para>
+
+<indexterm zone="ch-system-util-linux more"><primary sortas="b-more">more</primary></indexterm>
+<para id="more"><command>more</command> is a filter for paging through text one
+screen full at a time. But less is much better.</para>
+
+<indexterm zone="ch-system-util-linux mount"><primary sortas="b-mount">mount</primary></indexterm>
+<para id="mount"><command>mount</command> attaches the file system on the given device
+to a specified directory (thus hiding the contents of that directory) in the file-system tree.</para>
+
+<indexterm zone="ch-system-util-linux namei"><primary sortas="b-namei">namei</primary></indexterm>
+<para id="namei"><command>namei</command> shows the symbolic links in the given
+pathnames.</para>
+
+<indexterm zone="ch-system-util-linux pg"><primary sortas="b-pg">pg</primary></indexterm>
+<para id="pg"><command>pg</command> displays a text file one screen full at a
+time.</para>
+
+<indexterm zone="ch-system-util-linux pivot_root"><primary sortas="b-pivot_root">pivot_root</primary></indexterm>
+<para id="pivot_root"><command>pivot_root</command> makes the given file system the new
+root file system of the current process.</para>
+
+<indexterm zone="ch-system-util-linux ramsize"><primary sortas="b-ramsize">ramsize</primary></indexterm>
+<para id="ramsize"><command>ramsize</command> is used to set the size of the
+RAM disk in a bootable image.</para>
+
+<indexterm zone="ch-system-util-linux rdev"><primary sortas="b-rdev">rdev</primary></indexterm>
+<para id="rdev"><command>rdev</command> is used to query and set the root
+device and other things in a bootable image.</para>
+
+<indexterm zone="ch-system-util-linux readprofile"><primary sortas="b-readprofile">readprofile</primary></indexterm>
+<para id="readprofile"><command>readprofile</command> reads kernel profiling information.</para>
+
+<indexterm zone="ch-system-util-linux rename"><primary sortas="b-rename">rename</primary></indexterm>
+<para id="rename"><command>rename</command> renames the given files, replacing a given
+string with another.</para>
+
+<indexterm zone="ch-system-util-linux renice"><primary sortas="b-renice">renice</primary></indexterm>
+<para id="renice"><command>renice</command> is used to alter the priority of running
+processes.</para>
+
+<indexterm zone="ch-system-util-linux rev"><primary sortas="b-rev">rev</primary></indexterm>
+<para id="rev"><command>rev</command> reverses the lines of a given file.</para>
+
+<indexterm zone="ch-system-util-linux rootflags"><primary sortas="b-rootflags">rootflags</primary></indexterm>
+<para id="rootflags"><command>rootflags</command> is used to set the rootflags
+in a bootable image.</para>
+
+<indexterm zone="ch-system-util-linux script"><primary sortas="b-script">script</primary></indexterm>
+<para id="script"><command>script</command> makes a typescript of a terminal
+session, of everything printed to the terminal.</para>
+
+<indexterm zone="ch-system-util-linux setfdprm"><primary sortas="b-setfdprm">setfdprm</primary></indexterm>
+<para id="setfdprm"><command>setfdprm</command> sets user-provided floppy disk
+parameters.</para>
+
+<indexterm zone="ch-system-util-linux setsid"><primary sortas="b-setsid">setsid</primary></indexterm>
+<para id="setsid"><command>setsid</command> runs the given program in a new session.</para>
+
+<indexterm zone="ch-system-util-linux setterm"><primary sortas="b-setterm">setterm</primary></indexterm>
+<para id="setterm"><command>setterm</command> is used to set terminal attributes.</para>
+
+<indexterm zone="ch-system-util-linux sfdisk"><primary sortas="b-sfdisk">sfdisk</primary></indexterm>
+<para id="sfdisk"><command>sfdisk</command> is a disk partition table manipulator.</para>
+
+<indexterm zone="ch-system-util-linux swapdev"><primary sortas="b-swapdev">swapdev</primary></indexterm>
+<para id="swapdev"><command>swapdev</command> is used to set the swap device
+in a bootable image.</para>
+
+<indexterm zone="ch-system-util-linux swapoff"><primary sortas="b-swapoff">swapoff</primary></indexterm>
+<para id="swapoff"><command>swapoff</command> disables devices and files for paging
+and swapping.</para>
+
+<indexterm zone="ch-system-util-linux swapon"><primary sortas="b-swapon">swapon</primary></indexterm>
+<para id="swapon"><command>swapon</command> enables devices and files for paging
+and swapping.</para>
+
+<indexterm zone="ch-system-util-linux tunelp"><primary sortas="b-tunelp">tunelp</primary></indexterm>
+<para id="tunelp"><command>tunelp</command> is used to tune the parameters of the
+line printer.</para>
+
+<indexterm zone="ch-system-util-linux ul"><primary sortas="b-ul">ul</primary></indexterm>
+<para id="ul"><command>ul</command> is a filter for translating underscores into
+escape sequences indicating underlining for the terminal in use.</para>
+
+<indexterm zone="ch-system-util-linux umount"><primary sortas="b-umount">umount</primary></indexterm>
+<para id="umount"><command>umount</command> disconnects a file system from the
+system's file tree.</para>
+
+<indexterm zone="ch-system-util-linux vidmode"><primary sortas="b-vidmode">vidmode</primary></indexterm>
+<para id="vidmode"><command>vidmode</command> could be used to set the video mode
+in a bootable image.</para>
+
+<indexterm zone="ch-system-util-linux whereis"><primary sortas="b-whereis">whereis</primary></indexterm>
+<para id="whereis"><command>whereis</command> reports the location of binary, the
+source, and the manual page for the given command.</para>
+
+<indexterm zone="ch-system-util-linux write"><primary sortas="b-write">write</primary></indexterm>
+<para id="write"><command>write</command> sends a message to the given user,
+<emphasis>if</emphasis> that user has not disabled such messages.</para>
+
+</sect2>
+
+
+
+</sect1>
diff --git a/chapter06/utillinux.xml b/chapter06/utillinux.xml
deleted file mode 100644
index fd543bdbb..000000000
--- a/chapter06/utillinux.xml
+++ /dev/null
@@ -1,66 +0,0 @@
-<sect1 id="ch-system-util-linux" xreflabel="Util-linux">
-<title>Installing Util-linux-&util-linux-version;</title>
-<?dbhtml filename="util-linux.html" dir="chapter06"?>
-
-<para>The Util-linux package contains miscellaneous utility programs. Among
-them are utilities for handling file systems, consoles, partitions, and
-messages.</para>
-
-<screen>&buildtime; &util-linux-time;
-&diskspace; &util-linux-compsize;</screen>
-
-&aa-utillinux-down;
-&aa-utillinux-dep;
-
-<sect2><title>&nbsp;</title><para>&nbsp;</para></sect2>
-
-<sect2>
-<title>FHS compliance notes</title>
-
-<para>The FHS recommends that we use <filename>/var/lib/hwclock</filename>,
-instead of the usual <filename>/etc</filename>, as the location for the
-<filename>adjtime</filename> file. To make the <command>hwclock</command>
-program FHS-compliant, run the following:</para>
-
-<screen><userinput>cp hwclock/hwclock.c{,.backup}
-sed 's%etc/adjtime%var/lib/hwclock/adjtime%' \
-&nbsp;&nbsp;&nbsp;&nbsp;hwclock/hwclock.c.backup &gt; hwclock/hwclock.c
-mkdir -p /var/lib/hwclock</userinput></screen>
-
-</sect2>
-
-<sect2>
-<title>Installation of Util-linux</title>
-
-<para>Prepare Util-linux for compilation:</para>
-
-<screen><userinput>./configure</userinput></screen>
-
-<para>Compile the package:</para>
-
-<screen><userinput>make HAVE_KILL=yes HAVE_SLN=yes</userinput></screen>
-
-<para>The meaning of the make parameters:</para>
-
-<itemizedlist>
-<listitem><para><userinput>HAVE_KILL=yes</userinput>: This prevents the
-<command>kill</command> program (already installed by Procps) from being
-built and installed again.</para></listitem>
-
-<listitem><para><userinput>HAVE_SLN=yes</userinput>: This prevents the
-<command>sln</command> program (a statically linked
-<command>ln</command>, already installed by Glibc) from being built and
-installed again.</para></listitem>
-</itemizedlist>
-
-<para>And install the package:</para>
-
-<screen><userinput>make HAVE_KILL=yes HAVE_SLN=yes install</userinput></screen>
-
-</sect2>
-
-&aa-utillinux-shortdesc;
-&aa-utillinux-desc;
-
-</sect1>
-
diff --git a/chapter06/vim.xml b/chapter06/vim.xml
index 272b1f4cf..a11a4dca9 100644
--- a/chapter06/vim.xml
+++ b/chapter06/vim.xml
@@ -1,16 +1,23 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+ <!ENTITY % general-entities SYSTEM "../general.ent">
+ %general-entities;
+]>
<sect1 id="ch-system-vim" xreflabel="Vim">
-<title>Installing Vim-&vim-version;</title>
-<?dbhtml filename="vim.html" dir="chapter06"?>
+<title>Vim-&vim-version;</title>
+<?dbhtml filename="vim.html"?>
+
+<indexterm zone="ch-system-vim"><primary sortas="a-Vim">Vim</primary></indexterm>
<para>The Vim package contains a powerful text editor.</para>
-<screen>&buildtime; &vim-time;
-&diskspace; &vim-compsize;</screen>
+<screen>&buildtime; 0.4 SBU
+&diskspace; 34 MB</screen>
+
+<para>Vim installation depends on: Bash, Binutils, Coreutils, Diffutils,
+GCC, Glibc, Grep, Make, Ncurses, Sed.</para>
-&aa-vim-down;
-&aa-vim-dep;
-<sect2><title>&nbsp;</title><para>&nbsp;</para></sect2>
<sect2>
<title>Alternatives to Vim</title>
@@ -19,14 +26,12 @@ have a look at <ulink url="&blfs-root;view/stable/postlfs/editors.html"/> for
suggested installation instructions.</para>
</sect2>
-<sect2><title>&nbsp;</title><para>&nbsp;</para></sect2>
<sect2>
<title>Installation of Vim</title>
<para>First change the default locations of the <filename>vimrc</filename> and
-<filename>gvimrc</filename> configuration files to <filename
-class="directory">/etc</filename>.</para>
+<filename>gvimrc</filename> configuration files to <filename class="directory">/etc</filename>.</para>
<screen><userinput>echo '#define SYS_VIMRC_FILE "/etc/vimrc"' &gt;&gt; src/feature.h
echo '#define SYS_GVIMRC_FILE "/etc/gvimrc"' &gt;&gt; src/feature.h</userinput></screen>
@@ -39,18 +44,19 @@ echo '#define SYS_GVIMRC_FILE "/etc/gvimrc"' &gt;&gt; src/feature.h</userinput><
<screen><userinput>make</userinput></screen>
-<para>To have the results tested, you can issue:
+<para>To test the results, you can issue:
<userinput>make check</userinput>. However, this test suite outputs a lot of
seemingly garbage characters to the screen, and this can wreak havoc with the
settings of the current terminal. Therefore the running of the test suite here
is strictly optional.</para>
-<para>And install the package:</para>
+<para>Now install the package:</para>
<screen><userinput>make install</userinput></screen>
-<para>When called as <command>vi</command>, <command>vim</command>
-will run in old-fashioned vi-mode. To allow this, create a symlink:</para>
+<para>Many users are used to using <command>vi</command>, instead of
+<command>vim</command>. To let them execute <command>vim</command> when
+they habitually enter <command>vi</command>, create a symlink:</para>
<screen><userinput>ln -s vim /usr/bin/vi</userinput></screen>
@@ -61,14 +67,18 @@ installed. For more information read the Vim documentation.</para>
</sect2>
-<sect2><title>&nbsp;</title><para>&nbsp;</para></sect2>
-<sect2><title>Configuring Vim</title>
+<sect2 id="conf-vim"><title>Configuring Vim</title>
+<indexterm zone="conf-vim"><primary sortas="e-/etc/vim">/etc/vim</primary></indexterm>
-<para>By default, <command>vim</command> runs in vi-compatible mode. Some
-people might like this, but we prefer to run <command>vim</command> in its
+<para>By default, <command>vim</command> runs in vi-incompatible mode. Some
+people might not like this, but we prefer to run <command>vim</command> in its
own mode (else we wouldn't have included it in this book, but the original
-<command>vi</command>). Create a default vim configuration file by running
+<command>vi</command>). We've included the setting of "nocompatible"
+below to high-light the fact that the new behavior is being used. It
+also reminds those who would change to "compatible" mode that it should
+appear first because it changes other settings and overrides must come
+after this setting. Create a default vim configuration file by running
the following:</para>
<screen><userinput>cat &gt; /etc/vimrc &lt;&lt; "EOF"</userinput>
@@ -81,17 +91,103 @@ syntax on
" End /etc/vimrc
<userinput>EOF</userinput></screen>
-<para>The <emphasis>set nocompatible</emphasis> will make
-<command>vim</command> behave in a more useful way than the default
-vi-compatible manner. The <emphasis>set backspace=2</emphasis> allows
-backspacing over line breaks, autoindent and the start of insert. And the
-<emphasis>syntax on</emphasis> switches on <command>vim</command>'s
-semantic colouring.</para>
+<para>The <emphasis>set nocompatible</emphasis> makes
+<command>vim</command> behave in a more useful way (the default) than the
+vi-compatible manner. Remove the "no" if you want the old <command>vi</command>
+behavior. The <emphasis>set backspace=2</emphasis> allows
+backspacing over line breaks, autoindents and the start of insert. The
+<emphasis>syntax on</emphasis> enables <command>vim</command>'s
+semantic coloring.</para>
</sect2>
-&aa-vim-shortdesc;
-&aa-vim-desc;
-</sect1>
+<sect2 id="contents-vim"><title>Contents of Vim</title>
+
+<para><emphasis>Installed programs</emphasis>: efm_filter.pl, efm_perl.pl, ex
+(link to vim), less.sh, mve.awk, pltags.pl, ref, rview (link to vim), rvim
+(link to vim), shtags.pl, tcltags, vi (link to vim), view (link to vim), vim,
+vim132, vim2html.pl, vimdiff (link to vim), vimm, vimspell.sh, vimtutor
+and xxd</para>
+
+</sect2>
+
+<sect2><title>Short descriptions</title>
+
+<indexterm zone="ch-system-vim efm_filter.pl"><primary sortas="b-efm_filter.pl">efm_filter.pl</primary></indexterm>
+<para id="efm_filter.pl"><command>efm_filter.pl</command> is a filter for creating an error
+file that can be read by vim.</para>
+
+<indexterm zone="ch-system-vim efm_perl.pl"><primary sortas="b-efm_perl.pl">efm_perl.pl</primary></indexterm>
+<para id="efm_perl.pl"><command>efm_perl.pl</command> reformats the error messages of the
+Perl interpreter for use with the <quote>quickfix</quote> mode of vim.</para>
+
+<indexterm zone="ch-system-vim ex"><primary sortas="b-ex">ex</primary></indexterm>
+<para id="ex"><command>ex</command> starts vim in ex mode.</para>
+
+<indexterm zone="ch-system-vim less.sh"><primary sortas="b-less.sh">less.sh</primary></indexterm>
+<para id="less.sh"><command>less.sh</command> is a script that starts vim with less.vim.</para>
+
+<indexterm zone="ch-system-vim mve.awk"><primary sortas="b-mve.awk">mve.awk</primary></indexterm>
+<para id="mve.awk"><command>mve.awk</command> processes vim errors.</para>
+
+<indexterm zone="ch-system-vim pltags.pl"><primary sortas="b-pltags.pl">pltags.pl</primary></indexterm>
+<para id="pltags.pl"><command>pltags.pl</command> creates a tags file for perl code,
+for use by vim.</para>
+
+<indexterm zone="ch-system-vim ref"><primary sortas="b-ref">ref</primary></indexterm>
+<para id="ref"><command>ref</command> checks the spelling of arguments.</para>
+
+<indexterm zone="ch-system-vim rview"><primary sortas="b-rview">rview</primary></indexterm>
+<para id="rview"><command>rview</command> is a restricted version of view: no shell
+commands can be started and view can't be suspended.</para>
+
+<indexterm zone="ch-system-vim rvim"><primary sortas="b-rvim">rvim</primary></indexterm>
+<para id="rvim"><command>rvim</command> is a restricted version of vim: no shell
+commands can be started and vim can't be suspended.</para>
+<indexterm zone="ch-system-vim shtags.pl"><primary sortas="b-shtags.pl">shtags.pl</primary></indexterm>
+<para id="shtags.pl"><command>shtags.pl</command> generates a tag file for perl scripts.</para>
+
+<indexterm zone="ch-system-vim tcltags"><primary sortas="b-tcltags">tcltags</primary></indexterm>
+<para id="tcltags"><command>tcltags</command> generates a tag file for TCL code.</para>
+
+<indexterm zone="ch-system-vim view"><primary sortas="b-view">view</primary></indexterm>
+<para id="view"><command>view</command> starts vim in read-only mode.</para>
+
+<indexterm zone="ch-system-vim vim"><primary sortas="b-vim">vim</primary></indexterm>
+<para id="vim"><command>vim</command> is the editor.</para>
+
+<indexterm zone="ch-system-vim vim132"><primary sortas="b-vim132">vim132</primary></indexterm>
+<para id="vim132"><command>vim132</command> starts vim with the terminal in
+132-column mode.</para>
+
+<indexterm zone="ch-system-vim vim2html.pl"><primary sortas="b-vim2html.pl">vim2html.pl</primary></indexterm>
+<para id="vim2html.pl"><command>vim2html.pl</command> converts vim documentation to
+HTML.</para>
+
+<indexterm zone="ch-system-vim vimdiff"><primary sortas="b-vimdiff">vimdiff</primary></indexterm>
+<para id="vimdiff"><command>vimdiff</command> edits two or three versions of a file with
+vim and show differences.</para>
+
+<indexterm zone="ch-system-vim vimm"><primary sortas="b-vimm">vimm</primary></indexterm>
+<para id="vimm"><command>vimm</command> enables the DEC locator input model on a
+remote terminal.</para>
+
+<indexterm zone="ch-system-vim vimspell.sh"><primary sortas="b-vimspell.sh">vimspell.sh</primary></indexterm>
+<para id="vimspell.sh"><command>vimspell.sh</command> is a script which spells a file and generates the syntax
+statements necessary to highlight in vim.</para>
+
+<indexterm zone="ch-system-vim vimtutor"><primary sortas="b-vimtutor">vimtutor</primary></indexterm>
+<para id="vimtutor"><command>vimtutor</command> teaches you the basic keys and commands
+of vim.</para>
+
+<indexterm zone="ch-system-vim xxd"><primary sortas="b-xxd">xxd</primary></indexterm>
+<para id="xxd"><command>xxd</command> makes a hex dump of the given file. It can
+also do the reverse, so it can be used for binary patching.</para>
+
+</sect2>
+
+
+
+</sect1>
diff --git a/chapter06/zlib.xml b/chapter06/zlib.xml
index 798f3cb1f..9059de651 100644
--- a/chapter06/zlib.xml
+++ b/chapter06/zlib.xml
@@ -1,17 +1,23 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+ <!ENTITY % general-entities SYSTEM "../general.ent">
+ %general-entities;
+]>
<sect1 id="ch-system-zlib" xreflabel="Zlib">
-<title>Installing Zlib-&zlib-version;</title>
-<?dbhtml filename="zlib.html" dir="chapter06"?>
+<title>Zlib-&zlib-version;</title>
+<?dbhtml filename="zlib.html"?>
-<para>The Zlib package contains compression and uncompression routines used by
+<indexterm zone="ch-system-zlib"><primary sortas="a-Zlib">Zlib</primary></indexterm>
+
+<para>The Zlib package contains compression and un-compression routines used by
some programs.</para>
-<screen>&buildtime; &zlib-time;
-&diskspace; &zlib-compsize;</screen>
+<screen>&buildtime; 0.1 SBU
+&diskspace; 1.5 MB</screen>
+
+<para>Zlib installation depends on: Binutils, Coreutils, GCC, Glibc, Make, Sed.</para>
-&aa-zlib-down;
-&aa-zlib-dep;
-<sect2><title>&nbsp;</title><para>&nbsp;</para></sect2>
<sect2>
<title>Installation of Zlib</title>
@@ -30,7 +36,7 @@ afterwards.</para></note>
<screen><userinput>make</userinput></screen>
-<para>To have the results tested, issue:
+<para>To test the results, issue:
<userinput>make check</userinput>.</para>
<para>Install the shared library:</para>
@@ -42,7 +48,7 @@ afterwards.</para></note>
./configure --prefix=/usr
make</userinput></screen>
-<para>To have the results tested again, issue:
+<para>To again test the results, issue:
<userinput>make check</userinput>.</para>
<para>Install the static library:</para>
@@ -75,8 +81,22 @@ because we just moved the file it points to:</para>
</sect2>
-&aa-zlib-shortdesc;
-&aa-zlib-desc;
-</sect1>
+<sect2 id="contents-zlib"><title>Contents of Zlib</title>
+
+<para><emphasis>Installed libraries</emphasis>: libz[a,so]</para>
+
+</sect2>
+
+<sect2><title>Short description</title>
+
+<indexterm zone="ch-system-zlib libz"><primary sortas="c-libz*">libz*</primary></indexterm>
+<para id="libz"><command>libz*</command> contains compression and un-compression
+functions used by some programs.</para>
+
+</sect2>
+
+
+
+</sect1>