aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGerard Beekmans <gerard@linuxfromscratch.org>2001-01-24 00:31:17 +0000
committerGerard Beekmans <gerard@linuxfromscratch.org>2001-01-24 00:31:17 +0000
commit6370fa6cff0ec2a8ac8d50d1595ec9500f6631c9 (patch)
treeb17c8cb0a839b76f4a7db0f771953caa11c3a04e
parent5c930fe6eb43d23cfa0de2451d9a905a8505f981 (diff)
Initial commit - LFS 2.4.4 files
git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@14 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
-rw-r--r--Attic/appendixc/appendixc.sgml7
-rw-r--r--Attic/appendixc/autoconf.sgml9
-rw-r--r--Attic/appendixc/automake.sgml9
-rw-r--r--Attic/appendixc/bash.sgml9
-rw-r--r--Attic/appendixc/bin86.sgml9
-rw-r--r--Attic/appendixc/binutils.sgml9
-rw-r--r--Attic/appendixc/bison.sgml9
-rw-r--r--Attic/appendixc/bzip2.sgml9
-rw-r--r--Attic/appendixc/consoledata.sgml9
-rw-r--r--Attic/appendixc/consoletools-patch.sgml9
-rw-r--r--Attic/appendixc/consoletools.sgml9
-rw-r--r--Attic/appendixc/diffutils.sgml8
-rw-r--r--Attic/appendixc/e2fsprogs.sgml9
-rw-r--r--Attic/appendixc/ed.sgml9
-rw-r--r--Attic/appendixc/file.sgml9
-rw-r--r--Attic/appendixc/fileutils.sgml9
-rw-r--r--Attic/appendixc/findutils-patch.sgml9
-rw-r--r--Attic/appendixc/findutils.sgml9
-rw-r--r--Attic/appendixc/flex.sgml9
-rw-r--r--Attic/appendixc/gcc.sgml9
-rw-r--r--Attic/appendixc/gettext.sgml9
-rw-r--r--Attic/appendixc/glibc-crypt.sgml9
-rw-r--r--Attic/appendixc/glibc-patch.sgml9
-rw-r--r--Attic/appendixc/glibc-threads.sgml9
-rw-r--r--Attic/appendixc/glibc.sgml9
-rw-r--r--Attic/appendixc/grep.sgml9
-rw-r--r--Attic/appendixc/groff.sgml9
-rw-r--r--Attic/appendixc/gzip.sgml9
-rw-r--r--Attic/appendixc/introduction.sgml7
-rw-r--r--Attic/appendixc/kernel.sgml9
-rw-r--r--Attic/appendixc/ldso.sgml7
-rw-r--r--Attic/appendixc/less.sgml9
-rw-r--r--Attic/appendixc/libtool.sgml9
-rw-r--r--Attic/appendixc/lilo.sgml8
-rw-r--r--Attic/appendixc/m4.sgml9
-rw-r--r--Attic/appendixc/make.sgml9
-rw-r--r--Attic/appendixc/makedev.sgml9
-rw-r--r--Attic/appendixc/man.sgml9
-rw-r--r--Attic/appendixc/manpages.sgml9
-rw-r--r--Attic/appendixc/mawk.sgml9
-rw-r--r--Attic/appendixc/modutils.sgml9
-rw-r--r--Attic/appendixc/ncurses.sgml9
-rw-r--r--Attic/appendixc/netkitbase.sgml9
-rw-r--r--Attic/appendixc/nettools.sgml9
-rw-r--r--Attic/appendixc/packages.sgml65
-rw-r--r--Attic/appendixc/patch.sgml9
-rw-r--r--Attic/appendixc/perl.sgml9
-rw-r--r--Attic/appendixc/procinfo.sgml9
-rw-r--r--Attic/appendixc/procps.sgml9
-rw-r--r--Attic/appendixc/psmisc.sgml9
-rw-r--r--Attic/appendixc/sed.sgml9
-rw-r--r--Attic/appendixc/shadowpwd.sgml9
-rw-r--r--Attic/appendixc/shellutils.sgml9
-rw-r--r--Attic/appendixc/sysklogd-patch.sgml9
-rw-r--r--Attic/appendixc/sysklogd.sgml9
-rw-r--r--Attic/appendixc/sysvinit-patch.sgml9
-rw-r--r--Attic/appendixc/sysvinit.sgml9
-rw-r--r--Attic/appendixc/tar-patch.sgml9
-rw-r--r--Attic/appendixc/tar.sgml9
-rw-r--r--Attic/appendixc/texinfo.sgml9
-rw-r--r--Attic/appendixc/textutils.sgml9
-rw-r--r--Attic/appendixc/toplevel.sgml16
-rw-r--r--Attic/appendixc/utillinux.sgml9
-rw-r--r--Attic/appendixc/vim.sgml16
-rw-r--r--appendixa/appendixa.sgml55
-rw-r--r--appendixa/autoconf-desc.sgml82
-rw-r--r--appendixa/autoconf.sgml7
-rw-r--r--appendixa/automake-desc.sgml42
-rw-r--r--appendixa/automake.sgml7
-rw-r--r--appendixa/bash-desc.sgml20
-rw-r--r--appendixa/bash.sgml7
-rw-r--r--appendixa/bin86-desc.sgml65
-rw-r--r--appendixa/bin86.sgml7
-rw-r--r--appendixa/binutils-desc.sgml156
-rw-r--r--appendixa/binutils.sgml7
-rw-r--r--appendixa/bison-desc.sgml67
-rw-r--r--appendixa/bison.sgml7
-rw-r--r--appendixa/bzip2-desc.sgml50
-rw-r--r--appendixa/bzip2.sgml7
-rw-r--r--appendixa/consoledata-desc.sgml10
-rw-r--r--appendixa/consoledata.sgml7
-rw-r--r--appendixa/consoletools-desc.sgml338
-rw-r--r--appendixa/consoletools.sgml7
-rw-r--r--appendixa/diffutils-desc.sgml39
-rw-r--r--appendixa/diffutils.sgml7
-rw-r--r--appendixa/e2fsprogs-desc.sgml123
-rw-r--r--appendixa/e2fsprogs.sgml7
-rw-r--r--appendixa/ed-desc.sgml19
-rw-r--r--appendixa/ed.sgml7
-rw-r--r--appendixa/file-desc.sgml20
-rw-r--r--appendixa/file.sgml7
-rw-r--r--appendixa/fileutils-desc.sgml186
-rw-r--r--appendixa/fileutils.sgml7
-rw-r--r--appendixa/findutils-desc.sgml61
-rw-r--r--appendixa/findutils.sgml7
-rw-r--r--appendixa/flex-desc.sgml22
-rw-r--r--appendixa/flex.sgml7
-rw-r--r--appendixa/gcc-desc.sgml50
-rw-r--r--appendixa/gcc.sgml7
-rw-r--r--appendixa/gettext-desc.sgml26
-rw-r--r--appendixa/gettext.sgml7
-rw-r--r--appendixa/glibc-desc.sgml33
-rw-r--r--appendixa/glibc.sgml7
-rw-r--r--appendixa/grep-desc.sgml40
-rw-r--r--appendixa/grep.sgml7
-rw-r--r--appendixa/groff-desc.sgml234
-rw-r--r--appendixa/groff.sgml7
-rw-r--r--appendixa/gzip-desc.sgml101
-rw-r--r--appendixa/gzip.sgml7
-rw-r--r--appendixa/introduction.sgml51
-rw-r--r--appendixa/kernel-desc.sgml22
-rw-r--r--appendixa/kernel.sgml7
-rw-r--r--appendixa/ldso-desc.sgml34
-rw-r--r--appendixa/ldso.sgml7
-rw-r--r--appendixa/less-desc.sgml24
-rw-r--r--appendixa/less.sgml7
-rw-r--r--appendixa/libtool-desc.sgml39
-rw-r--r--appendixa/libtool.sgml7
-rw-r--r--appendixa/lilo-desc.sgml18
-rw-r--r--appendixa/lilo.sgml7
-rw-r--r--appendixa/m4-desc.sgml23
-rw-r--r--appendixa/m4.sgml7
-rw-r--r--appendixa/make-desc.sgml17
-rw-r--r--appendixa/make.sgml7
-rw-r--r--appendixa/makedev-desc.sgml17
-rw-r--r--appendixa/makedev.sgml7
-rw-r--r--appendixa/man-desc.sgml54
-rw-r--r--appendixa/man.sgml7
-rw-r--r--appendixa/manpages-desc.sgml18
-rw-r--r--appendixa/manpages.sgml7
-rw-r--r--appendixa/mawk-desc.sgml22
-rw-r--r--appendixa/mawk.sgml7
-rw-r--r--appendixa/modutils-desc.sgml109
-rw-r--r--appendixa/modutils.sgml7
-rw-r--r--appendixa/ncurses-desc.sgml94
-rw-r--r--appendixa/ncurses.sgml7
-rw-r--r--appendixa/patch-desc.sgml26
-rw-r--r--appendixa/patch.sgml7
-rw-r--r--appendixa/perl-desc.sgml20
-rw-r--r--appendixa/perl.sgml7
-rw-r--r--appendixa/procinfo-desc.sgml18
-rw-r--r--appendixa/procinfo.sgml7
-rw-r--r--appendixa/procps-desc.sgml116
-rw-r--r--appendixa/procps.sgml7
-rw-r--r--appendixa/psmisc-desc.sgml39
-rw-r--r--appendixa/psmisc.sgml7
-rw-r--r--appendixa/sed-desc.sgml18
-rw-r--r--appendixa/sed.sgml7
-rw-r--r--appendixa/shadowpwd-desc.sgml273
-rw-r--r--appendixa/shadowpwd.sgml7
-rw-r--r--appendixa/shellutils-desc.sgml302
-rw-r--r--appendixa/shellutils.sgml7
-rw-r--r--appendixa/sysklogd-desc.sgml32
-rw-r--r--appendixa/sysklogd.sgml7
-rw-r--r--appendixa/sysvinit-desc.sgml160
-rw-r--r--appendixa/sysvinit.sgml7
-rw-r--r--appendixa/tar-desc.sgml32
-rw-r--r--appendixa/tar.sgml7
-rw-r--r--appendixa/texinfo-desc.sgml64
-rw-r--r--appendixa/texinfo.sgml7
-rw-r--r--appendixa/textutils-desc.sgml263
-rw-r--r--appendixa/textutils.sgml7
-rw-r--r--appendixa/utillinux-desc.sgml545
-rw-r--r--appendixa/utillinux.sgml7
-rw-r--r--appendixa/vim-desc.sgml136
-rw-r--r--appendixa/vim.sgml7
-rw-r--r--book/book.sgml7
-rw-r--r--book/part1.sgml7
-rw-r--r--book/part2.sgml12
-rw-r--r--book/part3.sgml9
-rw-r--r--bookinfo/abstract.sgml10
-rw-r--r--bookinfo/authorgroup.sgml8
-rw-r--r--bookinfo/bookinfo.sgml9
-rw-r--r--bookinfo/copyright.sgml9
-rw-r--r--bookinfo/legalnotice.sgml53
-rw-r--r--chapter01/acknowledgements.sgml84
-rw-r--r--chapter01/alfsdiscuss.sgml13
-rw-r--r--chapter01/alfsdocs.sgml10
-rw-r--r--chapter01/alfsipc.sgml9
-rw-r--r--chapter01/alfsprofile.sgml10
-rw-r--r--chapter01/changelog.sgml1041
-rw-r--r--chapter01/chapter1.sgml12
-rw-r--r--chapter01/contactinfo.sgml17
-rw-r--r--chapter01/how.sgml24
-rw-r--r--chapter01/introduction.sgml26
-rw-r--r--chapter01/lfsannounce.sgml15
-rw-r--r--chapter01/lfsapps.sgml10
-rw-r--r--chapter01/lfsdiscuss.sgml15
-rw-r--r--chapter01/lfssecurity.sgml11
-rw-r--r--chapter01/mailarchive.sgml13
-rw-r--r--chapter01/mlarchive.sgml58
-rw-r--r--chapter01/subscribe.sgml39
-rw-r--r--chapter01/unsubscribe.sgml39
-rw-r--r--chapter01/versions.sgml109
-rw-r--r--chapter02/aboutlfs.sgml51
-rw-r--r--chapter02/bootscripts.sgml19
-rw-r--r--chapter02/chapter2.sgml10
-rw-r--r--chapter02/commands.sgml31
-rw-r--r--chapter02/download.sgml30
-rw-r--r--chapter02/install.sgml102
-rw-r--r--chapter03/chapter4.sgml10
-rw-r--r--chapter03/creatingdirs.sgml66
-rw-r--r--chapter03/creatingfs.sgml18
-rw-r--r--chapter03/creatingpart.sgml26
-rw-r--r--chapter03/introduction.sgml13
-rw-r--r--chapter03/mounting.sgml47
-rw-r--r--chapter04/autoconf.sgml9
-rw-r--r--chapter04/automake.sgml9
-rw-r--r--chapter04/bash.sgml9
-rw-r--r--chapter04/bin86.sgml9
-rw-r--r--chapter04/binutils.sgml9
-rw-r--r--chapter04/bison.sgml9
-rw-r--r--chapter04/bzip2.sgml9
-rw-r--r--chapter04/chapter3.sgml7
-rw-r--r--chapter04/consoledata.sgml9
-rw-r--r--chapter04/consoletools-patch.sgml9
-rw-r--r--chapter04/consoletools.sgml9
-rw-r--r--chapter04/diffutils.sgml9
-rw-r--r--chapter04/e2fsprogs.sgml9
-rw-r--r--chapter04/ed.sgml9
-rw-r--r--chapter04/file.sgml9
-rw-r--r--chapter04/fileutils.sgml9
-rw-r--r--chapter04/findutils-patch.sgml9
-rw-r--r--chapter04/findutils.sgml9
-rw-r--r--chapter04/flex.sgml9
-rw-r--r--chapter04/gcc.sgml9
-rw-r--r--chapter04/gettext.sgml9
-rw-r--r--chapter04/glibc-crypt.sgml9
-rw-r--r--chapter04/glibc-patch.sgml9
-rw-r--r--chapter04/glibc-threads.sgml9
-rw-r--r--chapter04/glibc.sgml9
-rw-r--r--chapter04/grep.sgml9
-rw-r--r--chapter04/groff.sgml9
-rw-r--r--chapter04/gzip-patch.sgml9
-rw-r--r--chapter04/gzip.sgml9
-rw-r--r--chapter04/introduction.sgml35
-rw-r--r--chapter04/kernel.sgml9
-rw-r--r--chapter04/ldso.sgml9
-rw-r--r--chapter04/less.sgml9
-rw-r--r--chapter04/libtool.sgml9
-rw-r--r--chapter04/lilo.sgml8
-rw-r--r--chapter04/m4.sgml9
-rw-r--r--chapter04/make.sgml9
-rw-r--r--chapter04/makedev.sgml9
-rw-r--r--chapter04/man.sgml9
-rw-r--r--chapter04/manpages.sgml9
-rw-r--r--chapter04/mawk.sgml9
-rw-r--r--chapter04/modutils.sgml9
-rw-r--r--chapter04/ncurses.sgml9
-rw-r--r--chapter04/netkitbase.sgml9
-rw-r--r--chapter04/nettools.sgml9
-rw-r--r--chapter04/packages.sgml71
-rw-r--r--chapter04/patch.sgml9
-rw-r--r--chapter04/perl.sgml9
-rw-r--r--chapter04/procinfo.sgml9
-rw-r--r--chapter04/procps.sgml9
-rw-r--r--chapter04/psmisc.sgml9
-rw-r--r--chapter04/sed.sgml9
-rw-r--r--chapter04/shadowpwd.sgml9
-rw-r--r--chapter04/shellutils.sgml9
-rw-r--r--chapter04/sysklogd-patch.sgml9
-rw-r--r--chapter04/sysklogd.sgml9
-rw-r--r--chapter04/sysvinit-patch.sgml9
-rw-r--r--chapter04/sysvinit.sgml9
-rw-r--r--chapter04/tar-patch.sgml9
-rw-r--r--chapter04/tar.sgml9
-rw-r--r--chapter04/texinfo.sgml9
-rw-r--r--chapter04/textutils.sgml9
-rw-r--r--chapter04/toplevel.sgml9
-rw-r--r--chapter04/utillinux.sgml9
-rw-r--r--chapter04/vim.sgml17
-rw-r--r--chapter05/bash-static-exp.sgml55
-rw-r--r--chapter05/bash-static-inst.sgml42
-rw-r--r--chapter05/bash-static.sgml9
-rw-r--r--chapter05/binutils-static-exp.sgml28
-rw-r--r--chapter05/binutils-static-inst.sgml19
-rw-r--r--chapter05/binutils-static.sgml9
-rw-r--r--chapter05/bzip2-static-exp.sgml33
-rw-r--r--chapter05/bzip2-static-inst.sgml22
-rw-r--r--chapter05/bzip2-static.sgml9
-rw-r--r--chapter05/chapter5.sgml26
-rw-r--r--chapter05/diffutils-static-exp.sgml16
-rw-r--r--chapter05/diffutils-static-inst.sgml21
-rw-r--r--chapter05/diffutils-static.sgml9
-rw-r--r--chapter05/fileutils-static-exp.sgml12
-rw-r--r--chapter05/fileutils-static-inst.sgml21
-rw-r--r--chapter05/fileutils-static.sgml9
-rw-r--r--chapter05/gcc-local-exp.sgml31
-rw-r--r--chapter05/gcc-local-inst.sgml56
-rw-r--r--chapter05/gcc-local.sgml9
-rw-r--r--chapter05/gcc-static-exp.sgml24
-rw-r--r--chapter05/gcc-static-inst.sgml36
-rw-r--r--chapter05/gcc-static.sgml9
-rw-r--r--chapter05/glibc-exp.sgml29
-rw-r--r--chapter05/glibc-inst.sgml111
-rw-r--r--chapter05/glibc-nss.sgml38
-rw-r--r--chapter05/glibc.sgml9
-rw-r--r--chapter05/grep-static-inst.sgml21
-rw-r--r--chapter05/grep-static.sgml8
-rw-r--r--chapter05/gzip-static-inst.sgml22
-rw-r--r--chapter05/gzip-static.sgml8
-rw-r--r--chapter05/introduction.sgml55
-rw-r--r--chapter05/kernel-exp.sgml35
-rw-r--r--chapter05/kernel-inst.sgml49
-rw-r--r--chapter05/kernel.sgml9
-rw-r--r--chapter05/make-static-inst.sgml18
-rw-r--r--chapter05/make-static.sgml8
-rw-r--r--chapter05/proc.sgml23
-rw-r--r--chapter05/pwdgroup.sgml53
-rw-r--r--chapter05/sed-static-inst.sgml21
-rw-r--r--chapter05/sed-static.sgml8
-rw-r--r--chapter05/shellutils-static-inst.sgml21
-rw-r--r--chapter05/shellutils-static.sgml8
-rw-r--r--chapter05/tar-static-inst.sgml40
-rw-r--r--chapter05/tar-static.sgml8
-rw-r--r--chapter05/textutils-static-inst.sgml19
-rw-r--r--chapter05/textutils-static.sgml8
-rw-r--r--chapter06/aboutdebug.sgml69
-rw-r--r--chapter06/autoconf-inst.sgml17
-rw-r--r--chapter06/autoconf.sgml7
-rw-r--r--chapter06/automake-inst.sgml16
-rw-r--r--chapter06/automake.sgml7
-rw-r--r--chapter06/bash-inst.sgml33
-rw-r--r--chapter06/bash.sgml7
-rw-r--r--chapter06/bashprofile.sgml38
-rw-r--r--chapter06/bin86-inst.sgml16
-rw-r--r--chapter06/bin86.sgml7
-rw-r--r--chapter06/binutils-inst.sgml16
-rw-r--r--chapter06/binutils.sgml7
-rw-r--r--chapter06/bison-exp.sgml10
-rw-r--r--chapter06/bison-inst.sgml45
-rw-r--r--chapter06/bison.sgml9
-rw-r--r--chapter06/bzip2-exp.sgml12
-rw-r--r--chapter06/bzip2-inst.sgml40
-rw-r--r--chapter06/bzip2.sgml8
-rw-r--r--chapter06/chapter6.sgml62
-rw-r--r--chapter06/chroot.sgml32
-rw-r--r--chapter06/cofnig-ldso.sgml0
-rw-r--r--chapter06/config-glibc.sgml88
-rw-r--r--chapter06/config-ldso.sgml43
-rw-r--r--chapter06/config-lilo.sgml46
-rw-r--r--chapter06/config-shadowpwd.sgml34
-rw-r--r--chapter06/config-sysklogd.sgml27
-rw-r--r--chapter06/config-sysvinit.sgml43
-rw-r--r--chapter06/config-vim.sgml24
-rw-r--r--chapter06/configure.sgml19
-rw-r--r--chapter06/consoledata-inst.sgml24
-rw-r--r--chapter06/consoledata.sgml7
-rw-r--r--chapter06/consoletools-inst.sgml31
-rw-r--r--chapter06/consoletools.sgml7
-rw-r--r--chapter06/create-password.sgml16
-rw-r--r--chapter06/create-utmp.sgml28
-rw-r--r--chapter06/createdeventries.sgml36
-rw-r--r--chapter06/creatingdev.sgml10
-rw-r--r--chapter06/diffutils-inst.sgml17
-rw-r--r--chapter06/diffutils.sgml7
-rw-r--r--chapter06/e2fsprogs-inst.sgml24
-rw-r--r--chapter06/e2fsprogs.sgml7
-rw-r--r--chapter06/ed-inst.sgml18
-rw-r--r--chapter06/ed.sgml9
-rw-r--r--chapter06/file-inst.sgml18
-rw-r--r--chapter06/file.sgml8
-rw-r--r--chapter06/fileutils-inst.sgml19
-rw-r--r--chapter06/fileutils.sgml7
-rw-r--r--chapter06/findutils-inst.sgml23
-rw-r--r--chapter06/findutils.sgml8
-rw-r--r--chapter06/flex-inst.sgml17
-rw-r--r--chapter06/flex.sgml7
-rw-r--r--chapter06/gcc-inst.sgml25
-rw-r--r--chapter06/gcc.sgml8
-rw-r--r--chapter06/gettext-inst.sgml18
-rw-r--r--chapter06/gettext.sgml7
-rw-r--r--chapter06/grep-inst.sgml17
-rw-r--r--chapter06/grep.sgml7
-rw-r--r--chapter06/groff-inst.sgml17
-rw-r--r--chapter06/groff.sgml8
-rw-r--r--chapter06/gzip-inst.sgml24
-rw-r--r--chapter06/gzip.sgml7
-rw-r--r--chapter06/introduction.sgml14
-rw-r--r--chapter06/ldso-inst.sgml40
-rw-r--r--chapter06/ldso.sgml7
-rw-r--r--chapter06/less-inst.sgml17
-rw-r--r--chapter06/less.sgml8
-rw-r--r--chapter06/libtool-inst.sgml17
-rw-r--r--chapter06/libtool.sgml7
-rw-r--r--chapter06/lilo-inst.sgml30
-rw-r--r--chapter06/lilo.sgml7
-rw-r--r--chapter06/m4-inst.sgml57
-rw-r--r--chapter06/m4.sgml8
-rw-r--r--chapter06/make-inst.sgml17
-rw-r--r--chapter06/make.sgml7
-rw-r--r--chapter06/makedev-exp.sgml18
-rw-r--r--chapter06/makedev-inst.sgml16
-rw-r--r--chapter06/man-exp.sgml21
-rw-r--r--chapter06/man-inst.sgml22
-rw-r--r--chapter06/man.sgml9
-rw-r--r--chapter06/manpages-inst.sgml15
-rw-r--r--chapter06/manpages.sgml7
-rw-r--r--chapter06/mawk-inst.sgml21
-rw-r--r--chapter06/mawk.sgml8
-rw-r--r--chapter06/modutils-inst.sgml17
-rw-r--r--chapter06/modutils.sgml7
-rw-r--r--chapter06/ncurses-exp.sgml21
-rw-r--r--chapter06/ncurses-inst.sgml21
-rw-r--r--chapter06/ncurses.sgml9
-rw-r--r--chapter06/patch-inst.sgml17
-rw-r--r--chapter06/patch.sgml8
-rw-r--r--chapter06/perl-inst.sgml33
-rw-r--r--chapter06/perl.sgml8
-rw-r--r--chapter06/procinfo-exp.sgml14
-rw-r--r--chapter06/procinfo-inst.sgml17
-rw-r--r--chapter06/procinfo.sgml8
-rw-r--r--chapter06/procps-inst.sgml19
-rw-r--r--chapter06/procps.sgml7
-rw-r--r--chapter06/psmisc-inst.sgml17
-rw-r--r--chapter06/psmisc.sgml7
-rw-r--r--chapter06/removeoldnss.sgml17
-rw-r--r--chapter06/sed-inst.sgml17
-rw-r--r--chapter06/sed.sgml7
-rw-r--r--chapter06/shadowpwd-exp.sgml12
-rw-r--r--chapter06/shadowpwd-inst.sgml22
-rw-r--r--chapter06/shadowpwd.sgml8
-rw-r--r--chapter06/shellutils-inst.sgml20
-rw-r--r--chapter06/shellutils.sgml7
-rw-r--r--chapter06/sysklogd-inst.sgml18
-rw-r--r--chapter06/sysklogd.sgml7
-rw-r--r--chapter06/sysvinit-inst.sgml37
-rw-r--r--chapter06/sysvinit.sgml7
-rw-r--r--chapter06/tar-inst.sgml39
-rw-r--r--chapter06/tar.sgml7
-rw-r--r--chapter06/texinfo-inst.sgml17
-rw-r--r--chapter06/texinfo.sgml7
-rw-r--r--chapter06/textutils-inst.sgml18
-rw-r--r--chapter06/textutils.sgml7
-rw-r--r--chapter06/utillinux-exp.sgml14
-rw-r--r--chapter06/utillinux-inst.sgml23
-rw-r--r--chapter06/utillinux.sgml8
-rw-r--r--chapter06/vim-inst.sgml39
-rw-r--r--chapter06/vim.sgml7
-rw-r--r--chapter07/chapter7.sgml22
-rw-r--r--chapter07/checkfs.sgml116
-rw-r--r--chapter07/createdirs.sgml19
-rw-r--r--chapter07/fstab.sgml32
-rw-r--r--chapter07/functions.sgml451
-rw-r--r--chapter07/halt.sgml27
-rw-r--r--chapter07/introduction.sgml13
-rw-r--r--chapter07/loadkeys.sgml36
-rw-r--r--chapter07/mountfs.sgml110
-rw-r--r--chapter07/rc.sgml253
-rw-r--r--chapter07/rcS.sgml43
-rw-r--r--chapter07/reboot.sgml30
-rw-r--r--chapter07/sendsignals.sgml44
-rw-r--r--chapter07/setclock.sgml93
-rw-r--r--chapter07/symperm.sgml49
-rw-r--r--chapter07/sysklogd.sgml67
-rw-r--r--chapter07/template.sgml60
-rw-r--r--chapter08/chapter8.sgml9
-rw-r--r--chapter08/introduction.sgml11
-rw-r--r--chapter08/kernel.sgml34
-rw-r--r--chapter08/lilo.sgml36
-rw-r--r--chapter08/reboot.sgml19
-rw-r--r--dedication/dedicated.sgml7
-rw-r--r--dedication/dedication.sgml6
-rw-r--r--intel.sgml517
-rw-r--r--lfs.dsl39
-rw-r--r--preface/organization.sgml14
-rw-r--r--preface/organpart1.sgml13
-rw-r--r--preface/organpart2.sgml12
-rw-r--r--preface/organpart3.sgml9
-rw-r--r--preface/preface.sgml8
-rw-r--r--preface/whonotread.sgml32
-rw-r--r--preface/whoread.sgml35
472 files changed, 13829 insertions, 0 deletions
diff --git a/Attic/appendixc/appendixc.sgml b/Attic/appendixc/appendixc.sgml
new file mode 100644
index 000000000..6a93ee69d
--- /dev/null
+++ b/Attic/appendixc/appendixc.sgml
@@ -0,0 +1,7 @@
+<appendix id="appendixc">
+<title>Official download locations</title>
+
+&ac-introduction;
+&ac-packages;
+
+</appendix>
diff --git a/Attic/appendixc/autoconf.sgml b/Attic/appendixc/autoconf.sgml
new file mode 100644
index 000000000..b80a85e37
--- /dev/null
+++ b/Attic/appendixc/autoconf.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Autoconf (2.13):
+ <ulink
+url="ftp://ftp.gnu.org/gnu/autoconf/">
+ftp://ftp.gnu.org/gnu/autoconf/</ulink>
+
+</para></listitem>
+
diff --git a/Attic/appendixc/automake.sgml b/Attic/appendixc/automake.sgml
new file mode 100644
index 000000000..c31cb4239
--- /dev/null
+++ b/Attic/appendixc/automake.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Automake (1.4):
+ <ulink
+url="ftp://ftp.gnu.org/gnu/automake/">
+ftp://ftp.gnu.org/gnu/automake/</ulink>
+
+</para></listitem>
+
diff --git a/Attic/appendixc/bash.sgml b/Attic/appendixc/bash.sgml
new file mode 100644
index 000000000..ef046430e
--- /dev/null
+++ b/Attic/appendixc/bash.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Bash (2.04):
+ <ulink
+url="ftp://ftp.gnu.org/gnu/bash/">
+ftp://ftp.gnu.org/gnu/bash/</ulink>
+
+</para></listitem>
+
diff --git a/Attic/appendixc/bin86.sgml b/Attic/appendixc/bin86.sgml
new file mode 100644
index 000000000..1dfc52c5c
--- /dev/null
+++ b/Attic/appendixc/bin86.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Bin86 (0.15.4):
+ <ulink
+url="http://www.cix.co.uk/~mayday/">
+http://www.cix.co.uk/~mayday/</ulink>
+
+</para></listitem>
+
diff --git a/Attic/appendixc/binutils.sgml b/Attic/appendixc/binutils.sgml
new file mode 100644
index 000000000..f07f8c9d1
--- /dev/null
+++ b/Attic/appendixc/binutils.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Binutils (2.10.1):
+ <ulink
+url="ftp://ftp.gnu.org/gnu/binutils/">
+ftp://ftp.gnu.org/gnu/binutils/</ulink>
+
+</para></listitem>
+
diff --git a/Attic/appendixc/bison.sgml b/Attic/appendixc/bison.sgml
new file mode 100644
index 000000000..bf368be74
--- /dev/null
+++ b/Attic/appendixc/bison.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Bison (1.28):
+ <ulink
+url="ftp://ftp.gnu.org/gnu/bison/">
+ftp://ftp.gnu.org/gnu/bison/</ulink>
+
+</para></listitem>
+
diff --git a/Attic/appendixc/bzip2.sgml b/Attic/appendixc/bzip2.sgml
new file mode 100644
index 000000000..551d61b92
--- /dev/null
+++ b/Attic/appendixc/bzip2.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Bzip2 (1.0.1):
+ <ulink
+url="ftp://sourceware.cygnus.com/pub/bzip2/">
+ftp://sourceware.cygnus.com/pub/bzip2/</ulink>
+
+</para></listitem>
+
diff --git a/Attic/appendixc/consoledata.sgml b/Attic/appendixc/consoledata.sgml
new file mode 100644
index 000000000..33e061877
--- /dev/null
+++ b/Attic/appendixc/consoledata.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Console-data (1999.08.29):
+ <ulink
+url="ftp://metalab.unc.edu/pub/Linux/system/keyboards/">
+ftp://metalab.unc.edu/pub/Linux/system/keyboards/</ulink>
+
+</para></listitem>
+
diff --git a/Attic/appendixc/consoletools-patch.sgml b/Attic/appendixc/consoletools-patch.sgml
new file mode 100644
index 000000000..e3208d723
--- /dev/null
+++ b/Attic/appendixc/consoletools-patch.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Console-tools Patch (0.2.3):
+ <ulink
+url="ftp://packages.linuxfromscratch.org/pub/common-packages">
+ftp://packages.linuxfromscratch.org/pub/common-packages</ulink>
+
+</para></listitem>
+
diff --git a/Attic/appendixc/consoletools.sgml b/Attic/appendixc/consoletools.sgml
new file mode 100644
index 000000000..7b7cfd55b
--- /dev/null
+++ b/Attic/appendixc/consoletools.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Console-tools (0.2.3):
+ <ulink
+url="ftp://metalab.unc.edu/pub/Linux/system/keyboards/">
+ftp://metalab.unc.edu/pub/Linux/system/keyboards/</ulink>
+
+</para></listitem>
+
diff --git a/Attic/appendixc/diffutils.sgml b/Attic/appendixc/diffutils.sgml
new file mode 100644
index 000000000..611fa7416
--- /dev/null
+++ b/Attic/appendixc/diffutils.sgml
@@ -0,0 +1,8 @@
+<listitem><para>
+
+Diff Utils (2.7):
+ <ulink url="ftp://ftp.gnu.org/gnu/diffutils/">
+ftp://ftp.gnu.org/gnu/diffutils/</ulink>
+
+</para></listitem>
+
diff --git a/Attic/appendixc/e2fsprogs.sgml b/Attic/appendixc/e2fsprogs.sgml
new file mode 100644
index 000000000..45abb0b86
--- /dev/null
+++ b/Attic/appendixc/e2fsprogs.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+E2fsprogs (1.19):
+ <ulink
+url="ftp://download.sourceforge.net/pub/sourceforge/e2fsprogs/">
+ftp://download.sourceforge.net/pub/sourceforge/e2fsprogs/</ulink>
+
+</para></listitem>
+
diff --git a/Attic/appendixc/ed.sgml b/Attic/appendixc/ed.sgml
new file mode 100644
index 000000000..5859e93b4
--- /dev/null
+++ b/Attic/appendixc/ed.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Ed (0.2):
+ <ulink
+url="ftp://ftp.gnu.org/gnu/ed/">
+ftp://ftp.gnu.org/gnu/ed/</ulink>
+
+</para></listitem>
+
diff --git a/Attic/appendixc/file.sgml b/Attic/appendixc/file.sgml
new file mode 100644
index 000000000..d5a77c336
--- /dev/null
+++ b/Attic/appendixc/file.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+File (3.33):
+ <ulink
+url="ftp://ftp.gw.com/mirrors/pub/unix/file/">
+ftp://ftp.gw.com/mirrors/pub/unix/file/</ulink>
+
+</para></listitem>
+
diff --git a/Attic/appendixc/fileutils.sgml b/Attic/appendixc/fileutils.sgml
new file mode 100644
index 000000000..b1b36a651
--- /dev/null
+++ b/Attic/appendixc/fileutils.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+File Utils (4.0):
+ <ulink
+url="ftp://ftp.gnu.org/gnu/fileutils/">
+ftp://ftp.gnu.org/gnu/fileutils/</ulink>
+
+</para></listitem>
+
diff --git a/Attic/appendixc/findutils-patch.sgml b/Attic/appendixc/findutils-patch.sgml
new file mode 100644
index 000000000..c2662f287
--- /dev/null
+++ b/Attic/appendixc/findutils-patch.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Find Utils Patch (4.1):
+ <ulink
+url="ftp://packages.linuxfromscratch.org/pub/common-packages">
+ftp://packages.linuxfromscratch.org/pub/common-packages</ulink>
+
+</para></listitem>
+
diff --git a/Attic/appendixc/findutils.sgml b/Attic/appendixc/findutils.sgml
new file mode 100644
index 000000000..02db1bf05
--- /dev/null
+++ b/Attic/appendixc/findutils.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Find Utils (4.1):
+ <ulink
+url="ftp://ftp.gnu.org/gnu/findutils/">
+ftp://ftp.gnu.org/gnu/findutils/</ulink>
+
+</para></listitem>
+
diff --git a/Attic/appendixc/flex.sgml b/Attic/appendixc/flex.sgml
new file mode 100644
index 000000000..2a46caecb
--- /dev/null
+++ b/Attic/appendixc/flex.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Flex (2.5.4a):
+ <ulink
+url="ftp://ftp.gnu.org/non-gnu/flex/">
+ftp://ftp.gnu.org/non-gnu/flex/</ulink>
+
+</para></listitem>
+
diff --git a/Attic/appendixc/gcc.sgml b/Attic/appendixc/gcc.sgml
new file mode 100644
index 000000000..4a469b5d9
--- /dev/null
+++ b/Attic/appendixc/gcc.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+GCC (2.95.2):
+ <ulink
+url="ftp://ftp.gnu.org/gnu/gcc/">
+ftp://ftp.gnu.org/gnu/gcc/</ulink>
+
+</para></listitem>
+
diff --git a/Attic/appendixc/gettext.sgml b/Attic/appendixc/gettext.sgml
new file mode 100644
index 000000000..65895193f
--- /dev/null
+++ b/Attic/appendixc/gettext.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Gettext (0.10.35):
+ <ulink
+url="ftp://ftp.gnu.org/gnu/gettext/">
+ftp://ftp.gnu.org/gnu/gettext/</ulink>
+
+</para></listitem>
+
diff --git a/Attic/appendixc/glibc-crypt.sgml b/Attic/appendixc/glibc-crypt.sgml
new file mode 100644
index 000000000..66febf3e5
--- /dev/null
+++ b/Attic/appendixc/glibc-crypt.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Glibc-crypt (2.1.3):
+ <ulink
+url="ftp://ftp.gnu.org/gnu/glibc/">
+ftp://ftp.gnu.org/gnu/glibc/</ulink>
+
+</para></listitem>
+
diff --git a/Attic/appendixc/glibc-patch.sgml b/Attic/appendixc/glibc-patch.sgml
new file mode 100644
index 000000000..fb0ed1e7e
--- /dev/null
+++ b/Attic/appendixc/glibc-patch.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Glibc Patch (2.1.3):
+ <ulink
+url="ftp://packages.linuxfromscratch.org/pub/common-packages">
+ftp://packages.linuxfromscratch.org/pub/common-packages</ulink>
+
+</para></listitem>
+
diff --git a/Attic/appendixc/glibc-threads.sgml b/Attic/appendixc/glibc-threads.sgml
new file mode 100644
index 000000000..ec8f061b5
--- /dev/null
+++ b/Attic/appendixc/glibc-threads.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Glibc-linuxthreads (2.1.3):
+ <ulink
+url="ftp://ftp.gnu.org/gnu/glibc/">
+ftp://ftp.gnu.org/gnu/glibc/</ulink>
+
+</para></listitem>
+
diff --git a/Attic/appendixc/glibc.sgml b/Attic/appendixc/glibc.sgml
new file mode 100644
index 000000000..85c46fbf4
--- /dev/null
+++ b/Attic/appendixc/glibc.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Glibc (2.1.3):
+ <ulink
+url="ftp://ftp.gnu.org/gnu/glibc/">
+ftp://ftp.gnu.org/gnu/glibc/</ulink>
+
+</para></listitem>
+
diff --git a/Attic/appendixc/grep.sgml b/Attic/appendixc/grep.sgml
new file mode 100644
index 000000000..f56484223
--- /dev/null
+++ b/Attic/appendixc/grep.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Grep (2.4.2):
+ <ulink
+url="ftp://ftp.gnu.org/gnu/grep/">
+ftp://ftp.gnu.org/gnu/grep/</ulink>
+
+</para></listitem>
+
diff --git a/Attic/appendixc/groff.sgml b/Attic/appendixc/groff.sgml
new file mode 100644
index 000000000..5aa189164
--- /dev/null
+++ b/Attic/appendixc/groff.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Groff (1.16.1):
+ <ulink
+url="ftp://ftp.gnu.org/gnu/groff/">
+ftp://ftp.gnu.org/gnu/groff/</ulink>
+
+</para></listitem>
+
diff --git a/Attic/appendixc/gzip.sgml b/Attic/appendixc/gzip.sgml
new file mode 100644
index 000000000..784490f90
--- /dev/null
+++ b/Attic/appendixc/gzip.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Gzip (1.2.4a):
+ <ulink
+url="ftp://ftp.gnu.org/gnu/gzip/">
+ftp://ftp.gnu.org/gnu/gzip/</ulink>
+
+</para></listitem>
+
diff --git a/Attic/appendixc/introduction.sgml b/Attic/appendixc/introduction.sgml
new file mode 100644
index 000000000..91fb7e2e4
--- /dev/null
+++ b/Attic/appendixc/introduction.sgml
@@ -0,0 +1,7 @@
+<para>
+Below you find the list with packages from chapter 3 with their original
+download locations. This might help you to find a newer version of a
+package quicker.
+</para>
+
+
diff --git a/Attic/appendixc/kernel.sgml b/Attic/appendixc/kernel.sgml
new file mode 100644
index 000000000..9f49862b7
--- /dev/null
+++ b/Attic/appendixc/kernel.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Linux Kernel (2.2.18):
+ <ulink
+url="ftp://ftp.kernel.org/pub/linux/kernel/">
+ftp://ftp.kernel.org/pub/linux/kernel/</ulink>
+
+</para></listitem>
+
diff --git a/Attic/appendixc/ldso.sgml b/Attic/appendixc/ldso.sgml
new file mode 100644
index 000000000..f8fe775fc
--- /dev/null
+++ b/Attic/appendixc/ldso.sgml
@@ -0,0 +1,7 @@
+<listitem><para>
+Ld.so (1.9.9):
+ <ulink
+url="ftp://packages.linuxfromscratch.org/pub/common-packages">
+ ftp://packages.linuxfromscratch.org/pub/common-packages</ulink>
+</para></listitem>
+
diff --git a/Attic/appendixc/less.sgml b/Attic/appendixc/less.sgml
new file mode 100644
index 000000000..875bfc4ce
--- /dev/null
+++ b/Attic/appendixc/less.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Less (358):
+ <ulink
+url="ftp://ftp.gnu.org/gnu/less/">
+ftp://ftp.gnu.org/gnu/less/</ulink>
+
+</para></listitem>
+
diff --git a/Attic/appendixc/libtool.sgml b/Attic/appendixc/libtool.sgml
new file mode 100644
index 000000000..b946713b9
--- /dev/null
+++ b/Attic/appendixc/libtool.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Libtool (1.3.5):
+ <ulink
+url="ftp://ftp.gnu.org/gnu/libtool/">
+ftp://ftp.gnu.org/gnu/libtool/</ulink>
+
+</para></listitem>
+
diff --git a/Attic/appendixc/lilo.sgml b/Attic/appendixc/lilo.sgml
new file mode 100644
index 000000000..f6b7f19fe
--- /dev/null
+++ b/Attic/appendixc/lilo.sgml
@@ -0,0 +1,8 @@
+<listitem><para>
+Lilo (21.6):
+ <ulink
+url="ftp://brun.dyndns.org/pub/linux/lilo">
+ftp://brun.dyndns.org/pub/linux/lilo</ulink>
+
+</para></listitem>
+
diff --git a/Attic/appendixc/m4.sgml b/Attic/appendixc/m4.sgml
new file mode 100644
index 000000000..3a1db8ec0
--- /dev/null
+++ b/Attic/appendixc/m4.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+M4 (1.4):
+ <ulink
+url="ftp://ftp.gnu.org/gnu/m4/">
+ftp://ftp.gnu.org/gnu/m4/</ulink>
+
+</para></listitem>
+
diff --git a/Attic/appendixc/make.sgml b/Attic/appendixc/make.sgml
new file mode 100644
index 000000000..104b9095e
--- /dev/null
+++ b/Attic/appendixc/make.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Make (3.79.1):
+ <ulink
+url="ftp://ftp.gnu.org/gnu/make/">
+ftp://ftp.gnu.org/gnu/make/</ulink>
+
+</para></listitem>
+
diff --git a/Attic/appendixc/makedev.sgml b/Attic/appendixc/makedev.sgml
new file mode 100644
index 000000000..25bd6534c
--- /dev/null
+++ b/Attic/appendixc/makedev.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+MAKEDEV (2.5):
+ <ulink
+url="ftp://ftp.ihg.uni-duisburg.de/Linux/system/">
+ftp://ftp.ihg.uni-duisburg.de/Linux/system/</ulink>
+
+</para></listitem>
+
diff --git a/Attic/appendixc/man.sgml b/Attic/appendixc/man.sgml
new file mode 100644
index 000000000..38d5bc14e
--- /dev/null
+++ b/Attic/appendixc/man.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Man (1.5h1):
+ <ulink
+url="ftp://ftp.win.tue.nl/pub/linux-local/utils/man/">
+ftp://ftp.win.tue.nl/pub/linux-local/utils/man/</ulink>
+
+</para></listitem>
+
diff --git a/Attic/appendixc/manpages.sgml b/Attic/appendixc/manpages.sgml
new file mode 100644
index 000000000..28a922bb4
--- /dev/null
+++ b/Attic/appendixc/manpages.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Man-pages (1.33):
+ <ulink
+url="ftp://ftp.win.tue.nl/pub/linux-local/manpages/">
+ftp://ftp.win.tue.nl/pub/linux-local/manpages/</ulink>
+
+</para></listitem>
+
diff --git a/Attic/appendixc/mawk.sgml b/Attic/appendixc/mawk.sgml
new file mode 100644
index 000000000..f87166c73
--- /dev/null
+++ b/Attic/appendixc/mawk.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Mawk (1.3.3):
+ <ulink
+url="ftp://ftp.whidbey.net/pub/brennan/">
+ftp://ftp.whidbey.net/pub/brennan/</ulink>
+
+</para></listitem>
+
diff --git a/Attic/appendixc/modutils.sgml b/Attic/appendixc/modutils.sgml
new file mode 100644
index 000000000..081831e97
--- /dev/null
+++ b/Attic/appendixc/modutils.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Modutils (2.4.0):
+ <ulink
+url="ftp://ftp.kernel.org/pub/linux/utils/kernel/modutils">
+ftp://ftp.kernel.org/pub/linux/utils/kernel/modutils</ulink>
+
+</para></listitem>
+
diff --git a/Attic/appendixc/ncurses.sgml b/Attic/appendixc/ncurses.sgml
new file mode 100644
index 000000000..b30b198d1
--- /dev/null
+++ b/Attic/appendixc/ncurses.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Ncurses (5.2):
+ <ulink
+url="ftp://ftp.gnu.org/gnu/ncurses/">
+ftp://ftp.gnu.org/gnu/ncurses/</ulink>
+
+</para></listitem>
+
diff --git a/Attic/appendixc/netkitbase.sgml b/Attic/appendixc/netkitbase.sgml
new file mode 100644
index 000000000..8b2542d19
--- /dev/null
+++ b/Attic/appendixc/netkitbase.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Netkit-base (0.17):
+ <ulink
+url="ftp://ftp.uk.linux.org/pub/linux/Networking/netkit/">
+ftp://ftp.uk.linux.org/pub/linux/Networking/netkit/</ulink>
+
+</para></listitem>
+
diff --git a/Attic/appendixc/nettools.sgml b/Attic/appendixc/nettools.sgml
new file mode 100644
index 000000000..aa00c2cf7
--- /dev/null
+++ b/Attic/appendixc/nettools.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Net-tools (1.57):
+ <ulink
+url="http://www.tazenda.demon.co.uk/phil/net-tools/">
+http://www.tazenda.demon.co.uk/phil/net-tools/</ulink>
+
+</para></listitem>
+
diff --git a/Attic/appendixc/packages.sgml b/Attic/appendixc/packages.sgml
new file mode 100644
index 000000000..d81ded873
--- /dev/null
+++ b/Attic/appendixc/packages.sgml
@@ -0,0 +1,65 @@
+<itemizedlist>
+
+&ac-bash;
+&ac-binutils;
+&ac-bzip2;
+&ac-diffutils;
+&ac-fileutils;
+&ac-gcc;
+&ac-kernel;
+&ac-glibc;
+&ac-glibc-crypt;
+&ac-glibc-threads;
+&ac-glibc-patch;
+&ac-grep;
+&ac-gzip;
+&ac-make;
+&ac-sed;
+&ac-shellutils;
+&ac-tar;
+&ac-tar-patch;
+&ac-textutils;
+&ac-makedev;
+&ac-bison;
+&ac-mawk;
+&ac-patch;
+&ac-findutils;
+&ac-findutils-patch;
+&ac-ncurses;
+&ac-less;
+&ac-groff;
+&ac-man;
+&ac-perl;
+&ac-m4;
+&ac-texinfo;
+&ac-autoconf;
+&ac-automake;
+&ac-flex;
+&ac-file;
+&ac-libtool;
+&ac-bin86;
+&ac-gettext;
+&ac-consoletools;
+&ac-consoletools-patch;
+&ac-consoledata;
+&ac-e2fsprogs;
+&ac-ed;
+&ac-ldso;
+&ac-lilo;
+&ac-modutils;
+&ac-vim;
+&ac-procinfo;
+&ac-procps;
+&ac-psmisc;
+&ac-shadowpwd;
+&ac-sysklogd;
+&ac-sysklogd-patch;
+&ac-sysvinit;
+&ac-sysvinit-patch;
+&ac-utillinux;
+&ac-manpages;
+&ac-netkitbase;
+&ac-nettools;
+
+</itemizedlist>
+
diff --git a/Attic/appendixc/patch.sgml b/Attic/appendixc/patch.sgml
new file mode 100644
index 000000000..ee13d8d92
--- /dev/null
+++ b/Attic/appendixc/patch.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Patch (2.5.4):
+ <ulink
+url="ftp://ftp.gnu.org/gnu/patch/">
+ftp://ftp.gnu.org/gnu/patch/</ulink>
+
+</para></listitem>
+
diff --git a/Attic/appendixc/perl.sgml b/Attic/appendixc/perl.sgml
new file mode 100644
index 000000000..42cabfc4e
--- /dev/null
+++ b/Attic/appendixc/perl.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Perl (5.6.0):
+ <ulink
+url="http://www.perl.com">
+http://www.perl.com</ulink>
+
+</para></listitem>
+
diff --git a/Attic/appendixc/procinfo.sgml b/Attic/appendixc/procinfo.sgml
new file mode 100644
index 000000000..ce1188a4e
--- /dev/null
+++ b/Attic/appendixc/procinfo.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Procinfo (17):
+ <ulink
+url="ftp://ftp.cistron.nl/pub/people/svm/">
+ftp://ftp.cistron.nl/pub/people/svm/</ulink>
+
+</para></listitem>
+
diff --git a/Attic/appendixc/procps.sgml b/Attic/appendixc/procps.sgml
new file mode 100644
index 000000000..58b526bee
--- /dev/null
+++ b/Attic/appendixc/procps.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Procps (2.0.7):
+ <ulink
+url="ftp://people.redhat.com/johnsonm/procps/">
+ftp://people.redhat.com/johnsonm/procps/</ulink>
+
+</para></listitem>
+
diff --git a/Attic/appendixc/psmisc.sgml b/Attic/appendixc/psmisc.sgml
new file mode 100644
index 000000000..a2e1a6b55
--- /dev/null
+++ b/Attic/appendixc/psmisc.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Psmisc (19):
+ <ulink
+url="ftp://lrcftp.epfl.ch/pub/linux/local/psmisc/">
+ftp://lrcftp.epfl.ch/pub/linux/local/psmisc/</ulink>
+
+</para></listitem>
+
diff --git a/Attic/appendixc/sed.sgml b/Attic/appendixc/sed.sgml
new file mode 100644
index 000000000..cc6e14f99
--- /dev/null
+++ b/Attic/appendixc/sed.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Sed (3.02):
+ <ulink
+url="ftp://ftp.gnu.org/gnu/sed/">
+ftp://ftp.gnu.org/gnu/sed/</ulink>
+
+</para></listitem>
+
diff --git a/Attic/appendixc/shadowpwd.sgml b/Attic/appendixc/shadowpwd.sgml
new file mode 100644
index 000000000..bd89de909
--- /dev/null
+++ b/Attic/appendixc/shadowpwd.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Shadow Password Suite (20000902):
+ <ulink
+url="ftp://ftp.ists.pwr.wroc.pl/pub/linux/shadow/">
+ftp://ftp.ists.pwr.wroc.pl/pub/linux/shadow/</ulink>
+
+</para></listitem>
+
diff --git a/Attic/appendixc/shellutils.sgml b/Attic/appendixc/shellutils.sgml
new file mode 100644
index 000000000..d2f1c8617
--- /dev/null
+++ b/Attic/appendixc/shellutils.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Sh-utils (2.0):
+ <ulink
+url="ftp://ftp.gnu.org/gnu/sh-utils/">
+ftp://ftp.gnu.org/gnu/sh-utils/</ulink>
+
+</para></listitem>
+
diff --git a/Attic/appendixc/sysklogd-patch.sgml b/Attic/appendixc/sysklogd-patch.sgml
new file mode 100644
index 000000000..4405d535a
--- /dev/null
+++ b/Attic/appendixc/sysklogd-patch.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Sysklogd Patch (1.4):
+ <ulink
+url="ftp://packages.linuxfromscratch.org/pub/common-packages/">
+ftp://packages.linuxfromscratch.org/pub/common-packages/</ulink>
+
+</para></listitem>
+
diff --git a/Attic/appendixc/sysklogd.sgml b/Attic/appendixc/sysklogd.sgml
new file mode 100644
index 000000000..7caaf2e82
--- /dev/null
+++ b/Attic/appendixc/sysklogd.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Sysklogd (1.4):
+ <ulink
+url="ftp://sunsite.unc.edu/pub/Linux/system/daemons/">
+ftp://sunsite.unc.edu/pub/Linux/system/daemons/</ulink>
+
+</para></listitem>
+
diff --git a/Attic/appendixc/sysvinit-patch.sgml b/Attic/appendixc/sysvinit-patch.sgml
new file mode 100644
index 000000000..b3f9b5f12
--- /dev/null
+++ b/Attic/appendixc/sysvinit-patch.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Sysvinit Patch (2.78):
+ <ulink
+url="ftp://packages.linuxfromscratch.org/pub/common-packages/">
+ftp://packages.linuxfromscratch.org/pub/common-packages/</ulink>
+
+</para></listitem>
+
diff --git a/Attic/appendixc/sysvinit.sgml b/Attic/appendixc/sysvinit.sgml
new file mode 100644
index 000000000..479e96817
--- /dev/null
+++ b/Attic/appendixc/sysvinit.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Sysvinit (2.78):
+ <ulink
+url="ftp://ftp.cistron.nl/pub/people/miquels/sysvinit/">
+ftp://ftp.cistron.nl/pub/people/miquels/sysvinit/</ulink>
+
+</para></listitem>
+
diff --git a/Attic/appendixc/tar-patch.sgml b/Attic/appendixc/tar-patch.sgml
new file mode 100644
index 000000000..45bed7974
--- /dev/null
+++ b/Attic/appendixc/tar-patch.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Tar Patch (1.13):
+ <ulink
+url="http://sourceware.cygnus.com/bzip2/">
+http://sourceware.cygnus.com/bzip2/</ulink>
+
+</para></listitem>
+
diff --git a/Attic/appendixc/tar.sgml b/Attic/appendixc/tar.sgml
new file mode 100644
index 000000000..e2ac336ab
--- /dev/null
+++ b/Attic/appendixc/tar.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Tar (1.13):
+ <ulink
+url="ftp://ftp.gnu.org/gnu/tar/">
+ftp://ftp.gnu.org/gnu/tar/</ulink>
+
+</para></listitem>
+
diff --git a/Attic/appendixc/texinfo.sgml b/Attic/appendixc/texinfo.sgml
new file mode 100644
index 000000000..8e09e80c8
--- /dev/null
+++ b/Attic/appendixc/texinfo.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Texinfo (4.0):
+ <ulink
+url="ftp://ftp.gnu.org/gnu/texinfo/">
+ftp://ftp.gnu.org/gnu/texinfo/</ulink>
+
+</para></listitem>
+
diff --git a/Attic/appendixc/textutils.sgml b/Attic/appendixc/textutils.sgml
new file mode 100644
index 000000000..ab6a19c1c
--- /dev/null
+++ b/Attic/appendixc/textutils.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Text Utils (2.0):
+ <ulink
+url="ftp://ftp.gnu.org/gnu/textutils/">
+ftp://ftp.gnu.org/gnu/textutils/</ulink>
+
+</para></listitem>
+
diff --git a/Attic/appendixc/toplevel.sgml b/Attic/appendixc/toplevel.sgml
new file mode 100644
index 000000000..fd03dbf4e
--- /dev/null
+++ b/Attic/appendixc/toplevel.sgml
@@ -0,0 +1,16 @@
+<listitem><para>
+
+Browse FTP:
+ <ulink
+url="ftp://ftp.linuxfromscratch.org/">ftp://ftp.linuxfromscratch.org</ulink>
+
+</para></listitem>
+
+<listitem><para>
+
+Browse HTTP:
+ <ulink
+url="http://ftp.linuxfromscratch.org/">http://ftp.linuxfromscratch.org</ulink>
+
+</para></listitem>
+
diff --git a/Attic/appendixc/utillinux.sgml b/Attic/appendixc/utillinux.sgml
new file mode 100644
index 000000000..ddc020ed2
--- /dev/null
+++ b/Attic/appendixc/utillinux.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Util Linux (2.10r):
+ <ulink
+url="ftp://ftp.win.tue.nl/pub/linux-local/utils/util-linux/">
+ftp://ftp.win.tue.nl/pub/linux-local/utils/util-linux/</ulink>
+
+</para></listitem>
+
diff --git a/Attic/appendixc/vim.sgml b/Attic/appendixc/vim.sgml
new file mode 100644
index 000000000..9b3dd2bb0
--- /dev/null
+++ b/Attic/appendixc/vim.sgml
@@ -0,0 +1,16 @@
+<listitem><para>
+
+Vim-rt (5.7) 1,073 KB:
+ <ulink
+url="ftp://ftp.vim.org/pub/editors/vim/unix/">
+ftp://ftp.vim.org/pub/editors/vim/unix/</ulink>
+
+</para></listitem>
+
+<listitem><para>
+Vim-src (5.7) 1,202 KB:
+ <ulink
+url="ftp://ftp.vim.org/pub/editors/vim/unix/">
+ftp://ftp.vim.org/pub/editors/vim/unix/</ulink>
+
+</para></listitem>
diff --git a/appendixa/appendixa.sgml b/appendixa/appendixa.sgml
new file mode 100644
index 000000000..258303dfa
--- /dev/null
+++ b/appendixa/appendixa.sgml
@@ -0,0 +1,55 @@
+<appendix id="appendixa">
+<title>Package descriptions</title>
+
+&aa-introduction;
+&aa-glibc;
+&aa-kernel;
+&aa-ed;
+&aa-patch;
+&aa-gcc;
+&aa-bison;
+&aa-mawk;
+&aa-findutils;
+&aa-ncurses;
+&aa-less;
+&aa-groff;
+&aa-man;
+&aa-perl;
+&aa-m4;
+&aa-texinfo;
+&aa-autoconf;
+&aa-automake;
+&aa-bash;
+&aa-flex;
+&aa-binutils;
+&aa-bzip2;
+&aa-diffutils;
+&aa-e2fsprogs;
+&aa-file;
+&aa-fileutils;
+&aa-gettext;
+&aa-grep;
+&aa-gzip;
+&aa-ldso;
+&aa-libtool;
+&aa-bin86;
+&aa-lilo;
+&aa-make;
+&aa-shellutils;
+&aa-shadowpwd;
+&aa-modutils;
+&aa-procinfo;
+&aa-procps;
+&aa-vim;
+&aa-psmisc;
+&aa-sed;
+&aa-sysklogd;
+&aa-sysvinit;
+&aa-tar;
+&aa-textutils;
+&aa-utillinux;
+&aa-consoletools;
+&aa-consoledata;
+&aa-manpages;
+
+</appendix>
diff --git a/appendixa/autoconf-desc.sgml b/appendixa/autoconf-desc.sgml
new file mode 100644
index 000000000..b6d2f3554
--- /dev/null
+++ b/appendixa/autoconf-desc.sgml
@@ -0,0 +1,82 @@
+<sect2>
+<title>Contents</title>
+
+<para>
+The Autoconf package contains the autoconf, autoheader, autoreconf,
+autoscan, autoupdate and ifnames programs
+</para>
+
+</sect2>
+
+<sect2><title>Description</title>
+
+<sect3><title>autoconf</title>
+
+<para>
+Autoconf 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 produced by Autoconf are
+independent of Autoconf when they are run, so their users do not need to
+have Autoconf.
+</para>
+
+</sect3>
+
+<sect3><title>autoheader</title>
+
+<para>
+The autoheader program can create a template file of C #define
+statements for configure to use
+</para>
+
+</sect3>
+
+<sect3><title>autoreconf</title>
+
+<para>
+If you have a lot of Autoconf-generated configure scripts, the
+autoreconf program can save you some work. It runs autoconf (and
+autoheader, where appropriate) repeatedly to remake the Autoconf
+configure scripts and configuration header templates in the directory
+tree rooted at the current directory.
+</para>
+
+</sect3>
+
+<sect3><title>autoscan</title>
+
+<para>
+The autoscan program can help you create a configure.in file for
+a software package. autoscan examines source files in the directory
+tree rooted at a directory given as a command line argument, or the
+current directory if none is given. It searches the source files for
+common portability problems and creates a file configure.scan which
+is a preliminary configure.in for that package.
+</para>
+
+</sect3>
+
+<sect3><title>autoupdate</title>
+
+<para>
+The autoupdate program updates a configure.in file that calls
+Autoconf macros by their old names to use the current macro names.
+</para>
+
+</sect3>
+
+<sect3><title>ifnames</title>
+
+<para>
+ifnames can help when writing a configure.in for a software
+package. It prints the identifiers that the package already uses in C
+preprocessor conditionals. If a package has already been set up to
+have some portability, this program can help you figure out what its
+configure needs to check for. It may help fill in some gaps in a
+configure.in generated by autoscan.
+</para>
+
+</sect3>
+
+</sect2>
+
diff --git a/appendixa/autoconf.sgml b/appendixa/autoconf.sgml
new file mode 100644
index 000000000..f9c765090
--- /dev/null
+++ b/appendixa/autoconf.sgml
@@ -0,0 +1,7 @@
+<sect1 id="aa-autoconf">
+<title>Autoconf</title>
+
+&aa-autoconf-desc;
+
+</sect1>
+
diff --git a/appendixa/automake-desc.sgml b/appendixa/automake-desc.sgml
new file mode 100644
index 000000000..97cc37327
--- /dev/null
+++ b/appendixa/automake-desc.sgml
@@ -0,0 +1,42 @@
+<sect2>
+<title>Contents</title>
+
+<para>
+The Automake package contains the aclocal and automake programs
+</para>
+
+</sect2>
+
+<sect2><title>Description</title>
+
+<sect3><title>aclocal</title>
+
+<para>
+Automake includes a number of Autoconf macros which can be used in
+your package; some of them are actually required by Automake in certain
+situations. These macros must be defined in your aclocal.m4;
+otherwise they will not be seen by autoconf.
+</para>
+
+<para>
+The aclocal program will automatically generate aclocal.m4 files
+based on the contents of configure.in. This provides a convenient
+way to get Automake-provided macros, without having to search around.
+Also, the aclocal mechanism is extensible for use by other packages.
+</para>
+
+</sect3>
+
+<sect3><title>automake</title>
+
+<para>
+To create all the Makefile.in's for a package, run the automake
+program in the top level directory, with no arguments. automake will
+automatically find each appropriate Makefile.am (by scanning
+configure.in) and generate the corresponding Makefile.in.
+</para>
+
+</sect3>
+
+</sect2>
+
diff --git a/appendixa/automake.sgml b/appendixa/automake.sgml
new file mode 100644
index 000000000..aa27054fb
--- /dev/null
+++ b/appendixa/automake.sgml
@@ -0,0 +1,7 @@
+<sect1 id="aa-automake">
+<title>Automake</title>
+
+&aa-automake-desc;
+
+</sect1>
+
diff --git a/appendixa/bash-desc.sgml b/appendixa/bash-desc.sgml
new file mode 100644
index 000000000..6c1a7e225
--- /dev/null
+++ b/appendixa/bash-desc.sgml
@@ -0,0 +1,20 @@
+<sect2>
+<title>Contents</title>
+
+<para>
+The Bash package contains the bash program
+</para>
+
+</sect2>
+
+<sect2><title>Description</title>
+
+<para>
+Bash is the Bourne-Again SHell, which is a widely used command
+interpreter on Unix systems. Bash is a program that reads from standard
+input, the keyboard. You type something and the program will evaluate
+what you have typed and do something with it, like running a program.
+</para>
+
+</sect2>
+
diff --git a/appendixa/bash.sgml b/appendixa/bash.sgml
new file mode 100644
index 000000000..410711ac4
--- /dev/null
+++ b/appendixa/bash.sgml
@@ -0,0 +1,7 @@
+<sect1 id="aa-bash">
+<title>Bash</title>
+
+&aa-bash-desc;
+
+</sect1>
+
diff --git a/appendixa/bin86-desc.sgml b/appendixa/bin86-desc.sgml
new file mode 100644
index 000000000..6c5aa8b64
--- /dev/null
+++ b/appendixa/bin86-desc.sgml
@@ -0,0 +1,65 @@
+<sect2>
+<title>Contents</title>
+
+<para>
+The Bin86 contains the as86, as86_encap, ld86, objdump86, nm86 and
+size86 programs.
+</para>
+
+</sect2>
+
+<sect2><title>Description</title>
+
+<sect3><title>as86</title>
+
+<para>
+as86 is an assembler for the 8086...80386 processors.
+</para>
+
+</sect3>
+
+<sect3><title>as86_encap</title>
+
+<para>
+as86_encap is a shell script to call as86 and convert the created binary
+into a C file prog.v to be included in or linked with programs like boot
+block installers.
+</para>
+
+</sect3>
+
+<sect3><title>ld86</title>
+
+<para>
+ld86 understands only the object files produced by the as86 assembler, it
+can link them into either an impure or a separate I&amp;D executable.
+</para>
+
+</sect3>
+
+<sect3><title>objdump86</title>
+
+<para>
+No description available.
+</para>
+
+</sect3>
+
+<sect3><title>nm86</title>
+
+<para>
+No description available.
+</para>
+
+</sect3>
+
+<sect3><title>size86</title>
+
+<para>
+No description available.
+</para>
+
+</sect3>
+
+</sect2>
+
diff --git a/appendixa/bin86.sgml b/appendixa/bin86.sgml
new file mode 100644
index 000000000..0da345b10
--- /dev/null
+++ b/appendixa/bin86.sgml
@@ -0,0 +1,7 @@
+<sect1 id="aa-bin86">
+<title>Bin86</title>
+
+&aa-bin86-desc;
+
+</sect1>
+
diff --git a/appendixa/binutils-desc.sgml b/appendixa/binutils-desc.sgml
new file mode 100644
index 000000000..6211265cf
--- /dev/null
+++ b/appendixa/binutils-desc.sgml
@@ -0,0 +1,156 @@
+<sect2>
+<title>Description</title>
+
+<para>
+The Binutils package contains the ld, as, ar, nm, objcopy, objdump,
+ranlib, size, strings, strip, c++filt, addr2line and nlmconv programs
+</para>
+
+</sect2>
+
+<sect2><title>Description</title>
+
+<sect3><title>ld</title>
+
+<para>
+ld combines a number of object and archive files, relocates their data
+and ties up symbol references. Often the last step in building a new compiled
+program to run is a call to ld.
+</para>
+
+</sect3>
+
+<sect3><title>as</title>
+
+<para>
+as is primarily intended to assemble the output of the GNU C compiler gcc
+for use by the linker ld.
+</para>
+
+</sect3>
+
+<sect3><title>ar</title>
+
+<para>
+The ar program 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>
+
+</sect3>
+
+<sect3><title>nm</title>
+
+<para>
+nm lists the symbols from object files.
+</para>
+
+</sect3>
+
+<sect3><title>objcopy</title>
+
+<para>
+objcopy utility copies the contents of an object file to another. objcopy
+uses the GNU BFD Library to read and write the object files. It can write
+the destination object file in a format different from that of the source
+object file.
+</para>
+
+</sect3>
+
+<sect3><title>objdump</title>
+
+<para>
+objdump displays information about one or more object files. The options
+control what particular information to display. This information is mostly
+useful to programmers who are working on the compilation tools, as opposed to
+programmers who just want their program to compile and work.
+</para>
+
+</sect3>
+
+<sect3><title>ranlib</title>
+
+<para>
+ranlib generates an index to the contents of an archive, and stores it in
+the archive. The index lists each symbol defined by a member of an archive
+that is a relocatable object file.
+</para>
+
+</sect3>
+
+<sect3><title>size</title>
+
+<para>
+size lists the section sizes --and the total size-- for each of the object
+files objfile in its argument list. By default, one line of output is
+generated for each object file or each module in an archive.
+</para>
+
+</sect3>
+
+<sect3><title>strings</title>
+
+<para>
+For each file given, strings prints the printable character sequences
+that are at least 4 characters long (or the number specified with an
+option to the program) and are followed by an unprintable character. By
+default, it only prints the strings from the initialized and loaded
+sections of object files; for other types of files, it prints the strings
+from the whole file.
+</para>
+
+<para>
+strings is mainly useful for determining the contents of non-text files.
+</para>
+
+</sect3>
+
+<sect3><title>strip</title>
+
+<para>
+strip discards all or specific symbols from object files. The list of
+object files may include archives. At least one object file must be
+given. strip modifies the files named in its argument, rather than writing
+modified copies under different names.
+</para>
+
+</sect3>
+
+<sect3><title>c++filt</title>
+
+<para>
+The C++ language provides function overloading, which means that you can
+write many functions with the same name (providing each takes parameters
+of different types). All C++ function names are encoded into a low-level
+assembly label (this process is known as mangling). The c++filt program
+does the inverse mapping: it decodes (demangles) low-level names into
+user-level names so that the linker can keep these overloaded functions
+from clashing.
+</para>
+
+</sect3>
+
+<sect3><title>addr2line</title>
+
+<para>
+addr2line translates program addresses into file names and line numbers.
+Given an address and an executable, it uses the debugging information in
+the executable to figure out which file name and line number are associated
+with a given address.
+</para>
+
+</sect3>
+
+<sect3><title>nlmconv</title>
+
+<para>
+nlmconv converts relocatable object files into the NetWare Loadable Module
+files, optionally reading header files for NLM header information.
+</para>
+
+</sect3>
+
+</sect2>
+
diff --git a/appendixa/binutils.sgml b/appendixa/binutils.sgml
new file mode 100644
index 000000000..9eae1e4a6
--- /dev/null
+++ b/appendixa/binutils.sgml
@@ -0,0 +1,7 @@
+<sect1 id="aa-binutils">
+<title>Binutils</title>
+
+&aa-binutils-desc;
+
+</sect1>
+
diff --git a/appendixa/bison-desc.sgml b/appendixa/bison-desc.sgml
new file mode 100644
index 000000000..7e3fff7e9
--- /dev/null
+++ b/appendixa/bison-desc.sgml
@@ -0,0 +1,67 @@
+<sect2>
+<title>Contents</title>
+
+<para>
+The Bison package contains the bison program.
+</para>
+
+</sect2>
+
+<sect2><title>Description</title>
+
+<para>
+Bison is a parser generator, a replacement for YACC. YACC stands for Yet
+Another Compiler Compiler. What is Bison then? It is a program that
+generates a program that analyses the structure of a textfile. Instead
+of
+writing the actual program you specify how things should be connected
+and with
+those rules a program is constructed that analyses the textfile.
+</para>
+
+<para>
+There are alot of examples where structure is needed and one of them is
+the
+calculator.
+</para>
+
+<para>
+Given the string :
+</para>
+
+<blockquote><literallayout>
+ 1 + 2 * 3
+</literallayout></blockquote>
+
+<para>
+You can easily come to the result 7. Why ? Because of the structure. You
+know
+how to interpretet the string. The computer doesn't know that and Bison
+is a
+tool to help it understand by presenting the string in the following way
+to the compiler:
+</para>
+
+<blockquote><literallayout>
+
+ +
+ / \
+ * 1
+ / \
+ 2 3
+</literallayout></blockquote>
+
+<para>
+You start at the bottom of a tree and you come across the numbers 2 and
+3 which are joined by the multiplication symbol, so the computers
+multiplies 2 and 3. The result of that multiplication is remembered and
+the next thing that the computer sees is the result of 2*3 and the
+number 1 which are joined by the add symbol. Adding 1 to the previous
+result makes 7. In calculating the most complex calculations can be
+broken down in this tree format and the computer just starts at the
+bottom and works it's way up to the top and comes with the correct
+answer. Of course, Bison isn't only used for calculators alone.
+</para>
+
+</sect2>
+
diff --git a/appendixa/bison.sgml b/appendixa/bison.sgml
new file mode 100644
index 000000000..afa11bc1d
--- /dev/null
+++ b/appendixa/bison.sgml
@@ -0,0 +1,7 @@
+<sect1 id="aa-bison">
+<title>Bison</title>
+
+&aa-bison-desc;
+
+</sect1>
+
diff --git a/appendixa/bzip2-desc.sgml b/appendixa/bzip2-desc.sgml
new file mode 100644
index 000000000..1bda00d6f
--- /dev/null
+++ b/appendixa/bzip2-desc.sgml
@@ -0,0 +1,50 @@
+<sect2>
+<title>Contents</title>
+
+<para>
+The Bzip2 packages contains the bzip2, bunzip2, bzcat and bzip2recover
+programs.
+</para>
+
+</sect2>
+
+<sect2><title>Description</title>
+
+<sect3><title>Bzip2</title>
+
+<para>
+bzip2 compresses files using the Burrows-Wheeler block sorting text
+compression algorithm, and Huffman coding. Compression is generally
+considerably better than that achieved by more conventional LZ77/LZ78-based
+compressors, and approaches the performance of the PPM family of statistical
+compressors.
+</para>
+
+</sect3>
+
+<sect3><title>Bunzip2</title>
+
+<para>
+Bunzip2 decompresses files that are compressed with bzip2.
+</para>
+
+</sect3>
+
+<sect3><title>bzcat</title>
+
+<para>
+bzcat (or bzip2 -dc) decompresses all specified files to the standard output.
+</para>
+
+</sect3>
+
+<sect3><title>bzip2recover</title>
+
+<para>
+bzip2recover recovers data from damaged bzip2 files.
+</para>
+
+</sect3>
+
+</sect2>
+
diff --git a/appendixa/bzip2.sgml b/appendixa/bzip2.sgml
new file mode 100644
index 000000000..17b6a0d1f
--- /dev/null
+++ b/appendixa/bzip2.sgml
@@ -0,0 +1,7 @@
+<sect1 id="aa-bzip2">
+<title>Bzip2</title>
+
+&aa-bzip2-desc;
+
+</sect1>
+
diff --git a/appendixa/consoledata-desc.sgml b/appendixa/consoledata-desc.sgml
new file mode 100644
index 000000000..d4a110a46
--- /dev/null
+++ b/appendixa/consoledata-desc.sgml
@@ -0,0 +1,10 @@
+<sect2>
+<title>Contents</title>
+
+<para>
+The console-data package contains the data files that are used and
+needed by the console-tools package.
+</para>
+
+</sect2>
+
diff --git a/appendixa/consoledata.sgml b/appendixa/consoledata.sgml
new file mode 100644
index 000000000..d024c2f0e
--- /dev/null
+++ b/appendixa/consoledata.sgml
@@ -0,0 +1,7 @@
+<sect1 id="aa-console-data">
+<title>Console-data</title>
+
+&aa-consoledata-desc;
+
+</sect1>
+
diff --git a/appendixa/consoletools-desc.sgml b/appendixa/consoletools-desc.sgml
new file mode 100644
index 000000000..0071e2d07
--- /dev/null
+++ b/appendixa/consoletools-desc.sgml
@@ -0,0 +1,338 @@
+<sect2>
+<title>Contents</title>
+
+<para>
+The Console-tools package contains the charset, chvt, consolechars,
+deallocvt, dumpkeys, fgconsole, fix_bs_and_del, font2psf, getkeycodes,
+kbd_mode, loadkeys, loadunimap, mapscrn, mk_modmap, openvt, psfaddtable,
+psfgettable, psfstriptable, resizecons, saveunimap, screendump, setfont,
+setkeycodes, setleds, setmetamode, setvesablank, showcfont, showkey,
+splitfont, unicode_start, unicode_stop, vcstime, vt-is-URF8, writevt
+</para>
+
+</sect2>
+
+<sect2>
+<title>Description</title>
+
+<sect3>
+<title>charset</title>
+
+<para>
+charset sets an ACM for use in one of the G0/G1 charsets slots.
+</para>
+
+</sect3>
+
+<sect3>
+<title>chvt</title>
+
+<para>
+chvt changes foreground virtual terminal.
+</para>
+
+</sect3>
+
+<sect3>
+<title>codepage</title>
+
+<para>
+No description available.
+</para>
+
+</sect3>
+
+<sect3>
+<title>consolechars</title>
+
+<para>
+consolechars loads EGA/VGA console screen fonts, screen font maps and/or
+application-charset maps.
+</para>
+
+</sect3>
+
+<sect3>
+<title>deallocvt</title>
+
+<para>
+deallocvt deallocates unused virtual terminals.
+</para>
+
+</sect3>
+
+<sect3>
+<title>dumpkeys</title>
+
+<para>
+dumpkeys dumps keyboard translation tables.
+</para>
+
+</sect3>
+
+<sect3>
+<title>fgconsole</title>
+
+<para>
+fgconsole prints the number of the active virtual terminal.
+</para>
+
+</sect3>
+
+<sect3>
+<title>fix_bs_and_del</title>
+
+<para>
+No description available.
+</para>
+
+</sect3>
+
+<sect3>
+<title>font2psf</title>
+
+<para>
+No description available.
+</para>
+
+</sect3>
+
+<sect3>
+<title>getkeycodes</title>
+
+<para>
+getkeycodes prints the kernel scancode-to-keycode mapping table.
+</para>
+
+</sect3>
+
+<sect3>
+<title>kbd_mode</title>
+
+<para>
+kbd_mode reports or sets the keyboard mode.
+</para>
+
+</sect3>
+
+<sect3>
+<title>loadkeys</title>
+
+<para>
+loadkeys loads keyboard translation tables.
+</para>
+
+</sect3>
+
+<sect3>
+<title>loadunimap</title>
+
+<para>
+No description available.
+</para>
+
+</sect3>
+
+<sect3>
+<title>mapscrn</title>
+
+<para>
+No description available.
+</para>
+
+</sect3>
+
+<sect3>
+<title>mk_modmap</title>
+
+<para>
+No description available.
+</para>
+
+</sect3>
+
+<sect3>
+<title>openvt</title>
+
+<para>
+openvt starts a program on a new virtual terminal.
+</para>
+
+</sect3>
+
+<sect3>
+<title>psfaddtable</title>
+
+<para>
+psfaddtable adds a Unicode character table to a console font.
+</para>
+
+</sect3>
+
+<sect3>
+<title>psfgettable</title>
+
+<para>
+psfgettable extracts the embedded Unicode character table from a console
+font.
+</para>
+
+</sect3>
+
+<sect3>
+<title>psfstriptable</title>
+
+<para>
+psfstriptable removes the embedded Unicode character table from a
+console font.
+</para>
+
+</sect3>
+
+<sect3>
+<title>resizecons</title>
+
+<para>
+resizecons changes the kernel idea of the console size.
+</para>
+
+</sect3>
+
+<sect3>
+<title>saveunimap</title>
+
+<para>
+No description available.
+</para>
+
+</sect3>
+
+<sect3>
+<title>screendump</title>
+
+<para>
+No description available.
+</para>
+
+</sect3>
+
+<sect3>
+<title>setfont</title>
+
+<para>
+No description available.
+</para>
+
+</sect3>
+
+<sect3>
+<title>setkeycodes</title>
+
+<para>
+setkeycodes loads kernel scancode-to-keycode mapping table entries.
+</para>
+
+</sect3>
+
+<sect3>
+<title>setleds</title>
+
+<para>
+setleds sets the keyboard leds.
+</para>
+
+</sect3>
+
+<sect3>
+<title>setmetamode</title>
+
+<para>
+setmetamode defines the keyboard meta key handling.
+</para>
+
+</sect3>
+
+<sect3>
+<title>setvesablank</title>
+
+<para>
+No description available.
+</para>
+
+</sect3>
+
+<sect3>
+<title>showcfont</title>
+
+<para>
+showcfont displays all character in the current screenfont.
+</para>
+
+</sect3>
+
+<sect3>
+<title>showkey</title>
+
+<para>
+showkey examines the scancodes and keycodes sent by the keyboard.
+</para>
+
+</sect3>
+
+<sect3>
+<title>splitfont</title>
+
+<para>
+No description available.
+</para>
+
+</sect3>
+
+<sect3>
+<title>unicode_start</title>
+
+<para>
+unicode_start puts the console in Unicode mode.
+</para>
+
+</sect3>
+
+<sect3>
+<title>unicode_stop</title>
+
+<para>
+No description available.
+</para>
+
+</sect3>
+
+<sect3>
+<title>vcstime</title>
+
+<para>
+No description available.
+</para>
+
+</sect3>
+
+<sect3>
+<title>vt-is-UTF8</title>
+
+<para>
+vt-is-UTF8 checks whether the current virtual terminal is in UTF8- or
+byte-mode.
+</para>
+
+</sect3>
+
+<sect3>
+<title>writevt</title>
+
+<para>
+No description available.
+</para>
+
+</sect3>
+
+</sect2>
+
diff --git a/appendixa/consoletools.sgml b/appendixa/consoletools.sgml
new file mode 100644
index 000000000..e4b1fa6b2
--- /dev/null
+++ b/appendixa/consoletools.sgml
@@ -0,0 +1,7 @@
+<sect1 id="aa-console-tools">
+<title>Console-tools</title>
+
+&aa-consoletools-desc;
+
+</sect1>
+
diff --git a/appendixa/diffutils-desc.sgml b/appendixa/diffutils-desc.sgml
new file mode 100644
index 000000000..74b887a89
--- /dev/null
+++ b/appendixa/diffutils-desc.sgml
@@ -0,0 +1,39 @@
+<sect2>
+<title>Contents</title>
+
+<para>
+The Diffutils package contains the cmp, diff, diff3 and sdiff programs.
+</para>
+
+</sect2>
+
+<sect2><title>Description</title>
+
+<sect3><title>cmp and diff</title>
+
+<para>
+cmp and diff both compare two files and report their differences. Both
+programs have extra options which compare files in different situations.
+</para
+
+</sect3>
+
+<sect3><title>diff3</title>
+
+<para>
+The difference between diff and diff3 is that diff comprares 2 files,
+diff3 compares 3 files.
+</para>
+
+</sect3>
+
+<sect3><title>sdiff</title>
+
+<para>
+sdiff merges two two files and interactively outputs the results.
+</para>
+
+</sect3>
+
+</sect2>
+
diff --git a/appendixa/diffutils.sgml b/appendixa/diffutils.sgml
new file mode 100644
index 000000000..089dbc318
--- /dev/null
+++ b/appendixa/diffutils.sgml
@@ -0,0 +1,7 @@
+<sect1 id="aa-diffutils">
+<title>Diffutils</title>
+
+&aa-diffutils-desc;
+
+</sect1>
+
diff --git a/appendixa/e2fsprogs-desc.sgml b/appendixa/e2fsprogs-desc.sgml
new file mode 100644
index 000000000..52618e3ef
--- /dev/null
+++ b/appendixa/e2fsprogs-desc.sgml
@@ -0,0 +1,123 @@
+<sect2>
+<title>Contents</title>
+
+<para>
+The e2fsprogs package contains the chattr, lsattr, uuidgen, badblocks,
+debugfs, dumpe2fs, e2fsck, e2label, fsck, fsck.ext2, mke2fs, mkfs.ext2,
+mklost+found and tune2fs programs.
+</para>
+
+</sect2>
+
+<sect2><title>Description</title>
+
+<sect3><title>chattr</title>
+
+<para>
+chattr changes the file attributes on a Linux second extended file system.
+</para>
+
+</sect3>
+
+<sect3><title>lsattr</title>
+
+<para>
+lsattr lists the file attributes on a second extended file system.
+</para>
+
+</sect3>
+
+<sect3><title>uuidgen</title>
+
+<para>
+The uuidgen program creates a new universally unique identifier (UUID)
+using the libuuid library. The new UUID can reasonably be considered unique
+among all UUIDs created on the local system, and among UUIDs created on other
+systems in the past and in the future.
+</para>
+
+</sect3>
+
+<sect3><title>badblocks</title>
+
+<para>
+badblocks is used to search for bad blocks on a device (usually a disk
+partition).
+</para>
+
+</sect3>
+
+<sect3><title>debugfs</title>
+
+<para>
+The debugfs program is a file system debugger. It can be used to examine
+and change the state of an ext2 file system.
+</para>
+
+</sect3>
+
+<sect3><title>dumpe2fs</title>
+
+<para>
+dumpe2fs prints the super block and blocks group information for the
+filesystem present on a specified device.
+</para>
+
+</sect3>
+
+<sect3><title>e2fsck and fsck.ext2</title>
+
+<para>
+e2fsck is used to check a Linux second extended file system. fsck.ext2
+does the same as e2fsck.
+</para>
+
+</sect3>
+
+<sect3><title>e2label</title>
+
+<para>
+e2label will display or change the filesystem label on the ext2 filesystem
+located on the specified device.
+</para>
+
+</sect3>
+
+<sect3><title>fsck</title>
+
+<para>
+fsck is used to check and optionally repair a Linux file system.
+</para>
+
+</sect3>
+
+<sect3><title>mke2fs and mkfs.ext2</title>
+
+<para>
+mke2fs is used to create a Linux second extended file system on a device
+(usually a disk partition). mkfs.ext2 does the same as mke2fs.
+</para>
+
+</sect3>
+
+<sect3><title>mklost+found</title>
+
+<para>
+mklost+found is used to create a lost+found directory in the current
+working directory on a Linux second extended file system. mklost+found
+pre-allocates disk blocks to the directory to make it usable by e2fsck.
+</para>
+
+</sect3>
+
+<sect3><title>tune2fs</title>
+
+<para>
+tune2fs adjusts tunable filesystem parameters on a Linux second extended
+filesystem.
+</para>
+
+</sect3>
+
+</sect2>
+
diff --git a/appendixa/e2fsprogs.sgml b/appendixa/e2fsprogs.sgml
new file mode 100644
index 000000000..5dd9cd6e5
--- /dev/null
+++ b/appendixa/e2fsprogs.sgml
@@ -0,0 +1,7 @@
+<sect1 id="aa-e2fsprogs">
+<title>E2fsprogs</title>
+
+&aa-e2fsprogs-desc;
+
+</sect1>
+
diff --git a/appendixa/ed-desc.sgml b/appendixa/ed-desc.sgml
new file mode 100644
index 000000000..6cc438ae9
--- /dev/null
+++ b/appendixa/ed-desc.sgml
@@ -0,0 +1,19 @@
+<sect2>
+<title>Contents</title>
+
+<para>
+The Ed package contains the ed program.
+</para>
+
+</sect2>
+
+<sect2><title>Description</title>
+
+<para>
+Ed is a line-oriented text editor. It is used to create, display,
+modify and
+otherwise manipulate text files.
+</para>
+
+</sect2>
+
diff --git a/appendixa/ed.sgml b/appendixa/ed.sgml
new file mode 100644
index 000000000..2d7a0a596
--- /dev/null
+++ b/appendixa/ed.sgml
@@ -0,0 +1,7 @@
+<sect1 id="aa-ed">
+<title>Ed</title>
+
+&aa-ed-desc;
+
+</sect1>
+
diff --git a/appendixa/file-desc.sgml b/appendixa/file-desc.sgml
new file mode 100644
index 000000000..b93a53355
--- /dev/null
+++ b/appendixa/file-desc.sgml
@@ -0,0 +1,20 @@
+<sect2>
+<title>Contents</title>
+
+<para>
+The File package contains the file program.
+</para>
+
+</sect2>
+
+<sect2><title>Description</title>
+
+<para>
+File tests each specified file in an attempt to classify it. There are
+three sets of tests, performed in this order: filesystem tests,
+magic number tests, and language tests. The first test that succeeds
+causes the file type to be printed.
+</para>
+
+</sect2>
+
diff --git a/appendixa/file.sgml b/appendixa/file.sgml
new file mode 100644
index 000000000..f607ec4e9
--- /dev/null
+++ b/appendixa/file.sgml
@@ -0,0 +1,7 @@
+<sect1 id="aa-file">
+<title>File</title>
+
+&aa-file-desc;
+
+</sect1>
+
diff --git a/appendixa/fileutils-desc.sgml b/appendixa/fileutils-desc.sgml
new file mode 100644
index 000000000..e22f2045c
--- /dev/null
+++ b/appendixa/fileutils-desc.sgml
@@ -0,0 +1,186 @@
+<sect2>
+<title>Contents</title>
+
+<para>
+The Fileutils package contains the chgrp, chmod, chown, cp, dd, df, dir,
+dircolors, du, install, ln, ls, mkdir, mkfifo, mknod, mv, rm, rmdir,
+sync, touch and vdir programs.
+</para>
+
+</sect2>
+
+<sect2><title>Description</title>
+
+<sect3><title>chgrp</title>
+
+<para>
+chgrp changes the group ownership of each given file to the named group,
+which can be either a group name or a numeric group ID.
+</para>
+
+</sect3>
+
+<sect3><title>chmod</title>
+
+<para>
+chmod changes the permissions of each given file according to mode, which
+can be either a symbolic representation of changes to make, or an octal
+number representing the bit pattern for the new permissions.
+</para>
+
+</sect3>
+
+<sect3><title>chown</title>
+
+<para>
+chown changes the user and/or group ownership of each given file.
+</para>
+
+</sect3>
+
+<sect3><title>cp</title>
+
+<para>
+cp copies files from one place to another.
+</para>
+
+</sect3>
+
+<sect3><title>dd</title>
+
+<para>
+dd copies a file (from the standard input to the standard output, by default)
+with a user-selectable blocksize, while optionally performing conversions
+on it.
+</para>
+
+</sect3>
+
+<sect3><title>df</title>
+
+<para>
+df displays the amount of disk space available on the filesystem
+containing each file name argument. If no file name is given, the space
+available on all currently mounted filesystems is shown.
+</para>
+
+</sect3>
+
+<sect3><title>ls, dir and vdir</title>
+
+<para>
+dir and vdir are versions of ls with different default output formats.
+These programs list each given file or directory name. Directory contents
+are sorted alphabetically. For ls, files are by default listed in columns,
+sorted vertically, if the standard output is a terminal; otherwise they
+are listed one per line. For dir, files are by default listed in columns,
+sorted vertically. For vdir, files are by default listed in long format.
+</para>
+
+</sect3>
+
+<sect3><title>dircolors</title>
+
+<para>
+dircolors outputs commands to set the LS_COLOR environment variable.
+The LS_COLOR variable is use to change the default color scheme used by
+ls and related utilities.
+</para>
+
+</sect3>
+
+<sect3><title>du</title>
+
+<para>
+du displays the amount of disk space used by each argument and for each
+subdirectory of directory arguments.
+</para>
+
+</sect3>
+
+<sect3><title>install</title>
+
+<para>
+install copies files and sets their permission modes and, if possible,
+their owner and group.
+</para>
+
+</sect3>
+
+<sect3><title>ln</title>
+
+<para>
+ln makes hard or soft (symbolic) links between files.
+</para>
+
+</sect3>
+
+<sect3><title>mkdir</title>
+
+<para>
+mkdir creates directories with a given name.
+</para>
+
+</sect3>
+
+<sect3><title>mkfifo</title>
+
+<para>
+mkfifo creates a FIFO with each given name.
+</para>
+
+</sect3>
+
+<sect3><title>mknod</title>
+
+<para>
+mknod creates a FIFO, character special file, or block special file with the
+given file name.
+</para>
+
+</sect3>
+
+<sect3><title>mv</title>
+
+<para>
+mv moves files from one directory to another or renames files, depending
+on the arguments given to mv.
+</para>
+
+</sect3>
+
+<sect3><title>rm</title>
+
+<para>
+rm removes files or directories.
+</para>
+
+</sect3>
+
+<sect3><title>rmdir</title>
+
+<para>
+rmdir removes directories, if they are empty.
+</para>
+
+</sect3>
+
+<sect3><title>sync</title>
+
+<para>
+sync forces changed blocks to disk and updates the super block.
+</para>
+
+</sect3>
+
+<sect3><title>touch</title>
+
+<para>
+touch changes the access and modification times of each given file to the
+current time. Files that do not exist are created empty.
+</para>
+
+</sect3>
+
+</sect2>
+
diff --git a/appendixa/fileutils.sgml b/appendixa/fileutils.sgml
new file mode 100644
index 000000000..5b147068e
--- /dev/null
+++ b/appendixa/fileutils.sgml
@@ -0,0 +1,7 @@
+<sect1 id="aa-fileutils">
+<title>Fileutils</title>
+
+&aa-fileutils-desc;
+
+</sect1>
+
diff --git a/appendixa/findutils-desc.sgml b/appendixa/findutils-desc.sgml
new file mode 100644
index 000000000..4aaa829c4
--- /dev/null
+++ b/appendixa/findutils-desc.sgml
@@ -0,0 +1,61 @@
+<sect2>
+<title>Contents</title>
+
+<para>
+The Findutils package contains the find, locate, updatedb and xargs
+programs.
+</para>
+
+</sect2>
+
+<sect2><title>Description</title>
+
+<sect3><title>Find</title>
+
+<para>
+The find program searches for files in a directory hierarchy which match
+a certain criteria. If no criteria is given, it lists all files in the
+current directory and it's subdirectories.
+</para>
+
+</sect3>
+
+<sect3><title>Locate</title>
+
+<para>
+Locate scans a database which contain all files and directories on a
+filesystem. This program lists the files and directories in this
+database matching a certain criteria. If you're looking for a file this
+program will scan the database and tell you exactly where the files you
+requested are located. This only makes sense if your locate database is
+fairly up-to-date else it will provide you with out-of-date information.
+</para>
+
+</sect3>
+
+<sect3><title>Updatedb</title>
+
+<para>
+The updatedb program updates the locate database. It scans the entire
+file system (including other file system that are currently mounted
+unless you specify it not to) and puts every directory and file it finds
+into the database that's used by the locate program which retrieves this
+information. It's a good practice to update this database once a day so
+that you are ensured of a database that is up-to-date.
+</para>
+
+</sect3>
+
+<sect3><title>Xargs</title>
+
+<para>
+The xargs command applies a command to a list of files. If you need to
+perform the same command on multiple files, you can create a file that
+contains all these files (one per line) and use xargs to perform that
+command on the list.
+</para>
+
+</sect3>
+
+</sect2>
+
diff --git a/appendixa/findutils.sgml b/appendixa/findutils.sgml
new file mode 100644
index 000000000..b5963f755
--- /dev/null
+++ b/appendixa/findutils.sgml
@@ -0,0 +1,7 @@
+<sect1 id="aa-findutils">
+<title>Findutils</title>
+
+&aa-findutils-desc;
+
+</sect1>
+
diff --git a/appendixa/flex-desc.sgml b/appendixa/flex-desc.sgml
new file mode 100644
index 000000000..f62592463
--- /dev/null
+++ b/appendixa/flex-desc.sgml
@@ -0,0 +1,22 @@
+<sect2>
+<title>Contents</title>
+
+<para>
+The Flex package contains the flex program
+</para>
+
+</sect2>
+
+<sect2><title>Description</title>
+
+<para>
+Flex is a tool for generating programs which regognize patterns in text.
+Pattern recognition is very useful in many applications. You set up rules
+what to look for and flex will make a program that looks for those
+patterns. The reason people use flex is that it is much easier to set up
+rules for what to look for than to write the actual program that finds
+the text.
+</para>
+
+</sect2>
+
diff --git a/appendixa/flex.sgml b/appendixa/flex.sgml
new file mode 100644
index 000000000..78b4e7490
--- /dev/null
+++ b/appendixa/flex.sgml
@@ -0,0 +1,7 @@
+<sect1 id="aa-flex">
+<title>Flex</title>
+
+&aa-flex-desc;
+
+</sect1>
+
diff --git a/appendixa/gcc-desc.sgml b/appendixa/gcc-desc.sgml
new file mode 100644
index 000000000..cff8315fe
--- /dev/null
+++ b/appendixa/gcc-desc.sgml
@@ -0,0 +1,50 @@
+<sect2>
+<title>Contents</title>
+
+<para>
+The GCC package contains compilers, preprocessors and the GNU C++
+Library.
+</para>
+
+</sect2>
+
+<sect2><title>Description</title>
+
+<sect3><title>Compiler</title>
+
+<para>
+A compiler translates source code in text format to a format
+that a computer understands. After a source code file is compiled into
+an object file, a linker will create an executable file from one or more
+of these compiler generated object files.
+</para>
+
+</sect3>
+
+<sect3><title>Pre-processor</title>
+
+<para>
+A pre-processor pre-processes a source file, such as including
+the contents of header files into the source file. You generally don't
+do this yourself to save yourself a lot of time. You just insert a line
+like #include &lt;filename&gt;. The pre-processor file insert the
+contents of that file into the source file. That's one of the things a
+pre-processor does.
+</para>
+
+</sect3>
+
+<sect3><title>C++ Library</title>
+
+<para>
+The C++ library is used by C++ programs. The C++ library contains
+functions that are frequently used in C++ programs. This way the
+programmer doesn't have to write certain functions (such as writing a
+string of text to the screen) from scratch every time he creates a
+program.
+</para>
+
+</sect3>
+
+</sect2>
+
diff --git a/appendixa/gcc.sgml b/appendixa/gcc.sgml
new file mode 100644
index 000000000..274e25d27
--- /dev/null
+++ b/appendixa/gcc.sgml
@@ -0,0 +1,7 @@
+<sect1 id="aa-gcc">
+<title>GCC</title>
+
+&aa-gcc-desc;
+
+</sect1>
+
diff --git a/appendixa/gettext-desc.sgml b/appendixa/gettext-desc.sgml
new file mode 100644
index 000000000..bc8102d97
--- /dev/null
+++ b/appendixa/gettext-desc.sgml
@@ -0,0 +1,26 @@
+<sect2>
+<title>Contents</title>
+
+<para>
+The gettext package contains the gettext, gettextize, msgcmp, msgcomm,
+msgfmt, msgmerge, msgunfmt and xgettext programs.
+</para>
+
+</sect2>
+
+<sect2><title>Description</title>
+
+<sect3><title>gettext</title>
+
+<para>
+The gettext package is used for internationalization (also known as
+i18n) and for localization (also known as l10n). Programs can be
+compiled with Native Language Support (NLS) which enable them to output
+messages in your native language rather than in the default English
+language.
+</para>
+
+</sect3>
+
+</sect2>
+
diff --git a/appendixa/gettext.sgml b/appendixa/gettext.sgml
new file mode 100644
index 000000000..a3ab61c61
--- /dev/null
+++ b/appendixa/gettext.sgml
@@ -0,0 +1,7 @@
+<sect1 id="aa-gettext">
+<title>Gettext</title>
+
+&aa-gettext-desc;
+
+</sect1>
+
diff --git a/appendixa/glibc-desc.sgml b/appendixa/glibc-desc.sgml
new file mode 100644
index 000000000..b7d3a7ed3
--- /dev/null
+++ b/appendixa/glibc-desc.sgml
@@ -0,0 +1,33 @@
+<sect2>
+<title>Contents</title>
+
+<para>
+The Glibc package contains the GNU C Library.
+</para>
+
+</sect2>
+
+<sect2><title>Description</title>
+
+<para>
+The C Library is a collection of commonly used functions in programs.
+This way a programmer doens't need to create his own functions for every
+single task. The most common things like writing a string to your screen
+are already present and at the disposal of the programmer.
+</para>
+
+<para>
+The C library (actually almost every library) come in two flavours:
+dynamic ones and static ones. In short when a program uses a static C
+library, the code from the C library will be copied into the executable
+file. When a program uses a dynamic library, that executable will not
+contain the code from the C library, but instead a routine that loads
+the functions from the library at the time the program is run. This
+means a significant decrease in the file size of a program. If you don't
+understand this concept, you better read the documentation that comes
+with the C Library as it is too complicated to explain here in one or
+two lines.
+</para>
+
+</sect2>
+
diff --git a/appendixa/glibc.sgml b/appendixa/glibc.sgml
new file mode 100644
index 000000000..bc79e78f9
--- /dev/null
+++ b/appendixa/glibc.sgml
@@ -0,0 +1,7 @@
+<sect1 id="aa-glibc">
+<title>Glibc</title>
+
+&aa-glibc-desc;
+
+</sect1>
+
diff --git a/appendixa/grep-desc.sgml b/appendixa/grep-desc.sgml
new file mode 100644
index 000000000..ae0500583
--- /dev/null
+++ b/appendixa/grep-desc.sgml
@@ -0,0 +1,40 @@
+<sect2>
+<title>Contents</title>
+
+<para>
+The grep package contains the egrep, fgrep and grep programs.
+</para>
+
+</sect2>
+
+<sect2><title>Description</title>
+
+<sect3><title>egrep</title>
+
+<para>
+egrep prints lines from files matching an extended regular expression
+pattern.
+</para>
+
+</sect3>
+
+<sect3><title>fgrep</title>
+
+<para>
+fgrep prints lines from files matching a list of fixed strings,
+separated by newlines, any of which is to be matched.
+</para>
+
+</sect3>
+
+<sect3><title>grep</title>
+
+<para>
+grep prints lines from files matching a basic regular expression
+pattern.
+</para>
+
+</sect3>
+
+</sect2>
+
diff --git a/appendixa/grep.sgml b/appendixa/grep.sgml
new file mode 100644
index 000000000..e454dd114
--- /dev/null
+++ b/appendixa/grep.sgml
@@ -0,0 +1,7 @@
+<sect1 id="aa-grep">
+<title>Grep</title>
+
+&aa-grep-desc;
+
+</sect1>
+
diff --git a/appendixa/groff-desc.sgml b/appendixa/groff-desc.sgml
new file mode 100644
index 000000000..21629cfe5
--- /dev/null
+++ b/appendixa/groff-desc.sgml
@@ -0,0 +1,234 @@
+<sect2>
+<title>Contents</title>
+
+<para>
+The Groff packages contains the addftinfo, afmtodit, eqn, grodvi, groff,
+grog, grohtml, grolj4, grops, grotty, hpftodit, indxbib, lkbib, lookbib,
+neqn, nroff, pfbtops, pic, psbb, refer, soelim, tbl, tfmtodit and troff
+programs.
+</para>
+
+</sect2>
+
+<sect2><title>Description</title>
+
+<sect3><title>addftinfo</title>
+
+<para>
+addftinfo reads a troff font file and adds some additional font-metric
+information that is used by the groff system.
+</para>
+
+</sect3>
+
+<sect3><title>afmtodit</title>
+
+<para>
+afmtodit creates a font file for use with groff and grops.
+</para>
+
+</sect3>
+
+<sect3><title>eqn</title>
+
+<para>
+eqn compiles descriptions of equations embedded within troff input files
+into commands that are understood by troff.
+</para>
+
+</sect3>
+
+<sect3><title>grodvi</title>
+
+<para>
+grodvi is a driver for groff that produces TeX dvi format.
+</para>
+
+</sect3>
+
+<sect3><title>groff</title>
+
+<para>
+groff is a front-end to the groff document formatting system. Normally it
+runs the troff program and a postprocessor appropriate for the selected
+device.
+</para>
+
+</sect3>
+
+<sect3><title>grog</title>
+
+<para>
+grog reads files and guesses which of the groff options -e, -man, -me, -mm,
+-ms, -p, -s, and -t are required for printing files, and prints the groff
+command including those options on the standard output.
+</para>
+
+</sect3>
+
+<sect3><title>grohtml</title>
+
+<para>
+grohtml translates the output of GNU troff to html
+</para>
+
+</sect3>
+
+<sect3><title>grolj4</title>
+
+<para>
+grolj4 is a driver for groff that produces output in PCL5 format suitable
+for an HP Laserjet 4 printer.
+</para>
+
+</sect3>
+
+<sect3><title>grops</title>
+
+<para>
+grops translates the output of GNU troff to PostScript.
+</para>
+
+</sect3>
+
+<sect3><title>grotty</title>
+
+<para>
+grotty translates the output of GNU troff into a form suitable for
+typewriter-like devices.
+</para>
+
+</sect3>
+
+<sect3><title>hpftodit</title>
+
+<para>
+hpftodit creates a font file for use with groff -Tlj4 from an HP
+tagged font metric file.
+</para>
+
+</sect3>
+
+<sect3><title>indxbib</title>
+
+<para>
+indxbib makes an inverted index for the bibliographic databases a
+specified file for use with refer, lookbib, and lkbib.
+</para>
+
+</sect3>
+
+<sect3><title>lkbib</title>
+
+<para>
+lkbib searches bibliographic databases for references that contain
+specified keys and prints any references found on the standard output.
+</para>
+
+</sect3>
+
+<sect3><title>lookbib</title>
+
+<para>
+lookbib 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>
+
+</sect3>
+
+<sect3><title>neqn</title>
+
+<para>
+It is currently not known what neqn is and what it does.
+</para>
+
+</sect3>
+
+<sect3><title>nroff</title>
+
+<para>
+The nroff script emulates the nroff command using groff.
+</para>
+
+</sect3>
+
+<sect3><title>pfbtops</title>
+
+<para>
+pfbtops translates a PostScript font in .pfb format to ASCII.
+</para>
+
+</sect3>
+
+<sect3><title>pic</title>
+
+<para>
+pic compiles descriptions of pictures embedded within troff or TeX input
+files into commands that are understood by TeX or troff.
+</para>
+
+</sect3>
+
+<sect3><title>psbb</title>
+
+<para>
+psbb reads a file which should be a PostScript document conforming to the
+Document Structuring conventions and looks for a %%BoundingBox comment.
+</para>
+
+</sect3>
+
+<sect3><title>refer</title>
+
+<para>
+refer 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>
+
+</sect3>
+
+<sect3><title>soelim</title>
+
+<para>
+soelim reads files and replaces lines of the form
+<emphasis>.so file</emphasis> by the contents of
+<emphasis>file</emphasis>.
+</para>
+
+</sect3>
+
+<sect3><title>tbl</title>
+
+<para>
+tbl compiles descriptions of tables embedded within troff input files
+into commands that are understood by troff.
+</para>
+
+</sect3>
+
+<sect3><title>tfmtodit</title>
+
+<para>
+tfmtodit creates a font file for use with <userinput>groff
+-Tdvi</userinput>
+</para>
+
+</sect3>
+
+<sect3><title>troff</title>
+
+<para>
+troff is highly compatible with Unix troff. Usually it should be invoked
+using the groff command, which will also run preprocessors and
+postprocessors in the appropriate order and with the appropriate options.
+</para>
+
+</sect3>
+
+</sect2>
+
diff --git a/appendixa/groff.sgml b/appendixa/groff.sgml
new file mode 100644
index 000000000..9edac1e33
--- /dev/null
+++ b/appendixa/groff.sgml
@@ -0,0 +1,7 @@
+<sect1 id="aa-groff">
+<title>Groff</title>
+
+&aa-groff-desc;
+
+</sect1>
+
diff --git a/appendixa/gzip-desc.sgml b/appendixa/gzip-desc.sgml
new file mode 100644
index 000000000..98398fd63
--- /dev/null
+++ b/appendixa/gzip-desc.sgml
@@ -0,0 +1,101 @@
+<sect2>
+<title>Contents</title>
+
+<para>
+The Gzip package contains the compress, gunzip, gzexe, gzip, uncompress,
+zcat, zcmp, zdiff, zforece, zgrep, zmore and znew programs.
+</para>
+
+</sect2>
+
+<sect2><title>Description</title>
+
+<sect3><title>gunzip</title>
+
+<para>
+gunzip decompresses files that are compressed with gzip.
+</para>
+
+</sect3>
+
+<sect3><title>gzexe</title>
+
+<para>
+gzexe allows you to compress executables in place and have them
+automatically uncompress and execute when you run them (at a penalty in
+performance).
+</para>
+
+</sect3>
+
+<sect3><title>gzip</title>
+
+<para>
+gzip reduces the size of the named files using Lempel-Ziv coding (LZ77).
+</para>
+
+</sect3>
+
+<sect3><title>zcat</title>
+
+<para>
+zcat uncompresses either a list of files on the command line or its
+standard input and writes the uncompressed data on standard output
+</para>
+
+</sect3>
+
+<sect3><title>zcmp</title>
+
+<para>
+zcmp invokes the cmp program on compressed files.
+</para>
+
+</sect3>
+
+<sect3><title>zdiff</title>
+
+<para>
+zdiff invokes the diff program on compressed files.
+</para>
+
+</sect3>
+
+<sect3><title>zforce</title>
+
+<para>
+zforce forces a .gz extension on all gzip files so that gzip will not
+compress them twice. This can be useful for files with names truncated
+after a file transfer.
+</para>
+
+</sect3>
+
+<sect3><title>zgrep</title>
+
+<para>
+zgrep invokes the grep program on compressed files.
+</para>
+
+</sect3>
+
+<sect3><title>zmore</title>
+
+<para>
+Zmore is a filter which allows examination of compressed or plain text
+files one screenful at a time on a soft-copy terminal (similar to the
+more program).
+</para>
+
+</sect3>
+
+<sect3><title>znew</title>
+
+<para>
+Znew recompresses files from .Z (compress) format to .gz (gzip) format.
+</para>
+
+</sect3>
+
+</sect2>
+
diff --git a/appendixa/gzip.sgml b/appendixa/gzip.sgml
new file mode 100644
index 000000000..52baf9dc7
--- /dev/null
+++ b/appendixa/gzip.sgml
@@ -0,0 +1,7 @@
+<sect1 id="aa-gzip">
+<title>Gzip</title>
+
+&aa-gzip-desc;
+
+</sect1>
+
diff --git a/appendixa/introduction.sgml b/appendixa/introduction.sgml
new file mode 100644
index 000000000..a8d2d5087
--- /dev/null
+++ b/appendixa/introduction.sgml
@@ -0,0 +1,51 @@
+<sect1 id="aa-intro">
+<title>Introduction</title>
+
+
+<para>
+This appendix describes the following aspect of each and every package
+that is installed in this book:
+</para>
+
+<itemizedlist>
+
+<listitem><para>
+ What every package contains
+</para></listitem>
+
+<listitem><para>
+ What every program from a package does
+</para></listitem>
+
+</itemizedlist>
+
+<para>
+The packages are listed in the same order as they are installed in
+chapter 5 (Intel system) or chapter 11 (PPC systems).
+</para>
+
+<para>
+Most information about these packages (especially the descriptions of
+it) come from the man pages from those packages. I'm not going to print
+the entire man page, just the core elements to make you understand what
+a program does. If you want to know full details on a program, I suggest
+you start by reading the complete man page in addition to this appendix.
+</para>
+
+<para>
+You will also find that certain packages are documented more in depth
+than others. The reason is that I just happen to know more about certain
+packages than I know about others. If you have anything to add on the
+following descriptions, please don't hesitate to email me. This list is
+going to contain an in depth description of every package installed, but
+I can't do this on my own. I have had help from various people but more
+help is needed.
+</para>
+
+<para>
+Please note that currently only what a package does is described and not
+why you need to install it. That will be added later.
+</para>
+
+</sect1>
+
diff --git a/appendixa/kernel-desc.sgml b/appendixa/kernel-desc.sgml
new file mode 100644
index 000000000..48b240640
--- /dev/null
+++ b/appendixa/kernel-desc.sgml
@@ -0,0 +1,22 @@
+<sect2><title>Contents</title>
+
+<para>
+The Linux kernel package contains the Linux kernel.
+</para>
+
+</sect2>
+
+<sect2><title>Description</title>
+
+<para>
+The Linux kernel is at the core of every Linux system. It's what makes
+Linux tick. When you turn on your computer and boot a Linux system, the
+very first piece of Linux software that gets loaded is the kernel. The
+kernel initializes the system's hardware components such as serial
+ports, parallel ports, sound cards, network cards, IDE controllers, SCSI
+controllers and a lot more. In a nutshell the kernel makes the hardware
+available so that the software can run.
+</para>
+
+</sect2>
+
diff --git a/appendixa/kernel.sgml b/appendixa/kernel.sgml
new file mode 100644
index 000000000..c964dc6db
--- /dev/null
+++ b/appendixa/kernel.sgml
@@ -0,0 +1,7 @@
+<sect1 id="aa-kernel">
+<title>Linux kernel</title>
+
+&aa-kernel-desc;
+
+</sect1>
+
diff --git a/appendixa/ldso-desc.sgml b/appendixa/ldso-desc.sgml
new file mode 100644
index 000000000..6b16c09dc
--- /dev/null
+++ b/appendixa/ldso-desc.sgml
@@ -0,0 +1,34 @@
+<sect2><title>Contents</title>
+
+<para>
+From the Ld.so package we're using the ldconfig and ldd programs.
+</para>
+
+</sect2>
+
+<sect2><title>Description</title>
+
+<sect3><title>ldconfig</title>
+
+<para>
+ldconfig creates the necessary links and cache (for use by the run-time
+linker, ld.so) to the most recent shared libraries found in the directories
+specified on the command line, in the file /etc/ld.so.conf, and in the trusted
+directories (/usr/lib and /lib). ldconfig checks the header and file names
+of the libraries it encounters when determining which versions should
+have their links updated.
+</para>
+
+</sect3>
+
+<sect3><title>ldd</title>
+
+<para>
+ldd prints the shared libraries required by each program or shared library
+specified on the command line.
+</para>
+
+</sect3>
+
+</sect2>
+
diff --git a/appendixa/ldso.sgml b/appendixa/ldso.sgml
new file mode 100644
index 000000000..60c1fdb7d
--- /dev/null
+++ b/appendixa/ldso.sgml
@@ -0,0 +1,7 @@
+<sect1 id="aa-ldso">
+<title>Ld.so</title>
+
+&aa-ldso-desc;
+
+</sect1>
+
diff --git a/appendixa/less-desc.sgml b/appendixa/less-desc.sgml
new file mode 100644
index 000000000..260e97b28
--- /dev/null
+++ b/appendixa/less-desc.sgml
@@ -0,0 +1,24 @@
+<sect2><title>Contents</title>
+
+<para>
+The Less package contains the less program
+</para>
+
+</sect2>
+
+<sect2><title>Description</title>
+
+<para>
+The less program is a file pager (or text viewer). It displays the
+contents
+of a file with the ability to scroll. Less is an improvement on the
+common
+pager called <quote>more</quote>. Less has the ability to scroll
+backwards
+through files as well and it doesn't need to read the entire file when
+it
+starts, which makes it faster when you are reading large files.
+</para>
+
+</sect2>
+
diff --git a/appendixa/less.sgml b/appendixa/less.sgml
new file mode 100644
index 000000000..e2710fc2b
--- /dev/null
+++ b/appendixa/less.sgml
@@ -0,0 +1,7 @@
+<sect1 id="aa-less">
+<title>Less</title>
+
+&aa-less-desc;
+
+</sect1>
+
diff --git a/appendixa/libtool-desc.sgml b/appendixa/libtool-desc.sgml
new file mode 100644
index 000000000..a28179380
--- /dev/null
+++ b/appendixa/libtool-desc.sgml
@@ -0,0 +1,39 @@
+<sect2<title>Contents</title>
+
+<para>
+The Libtool package contains the libtool and libtoolize programs. It
+also contains the ltdl library.
+</para>
+
+</sect2>
+
+<sect2><title>Description</title>
+
+<sect3><title>libtool</title>
+
+<para>
+Libtool provides generalized library-building support services.
+</para>
+
+</sect3>
+
+<sect3><title>libtoolize</title>
+
+<para>
+libtoolize provides a standard way to add libtool support to your
+package.
+</para>
+
+</sect3>
+
+<sect3><title>ltdl library</title>
+
+<para>
+Libtool provides a small library, called `libltdl', that aims at hiding
+the various difficulties of dlopening libraries from programmers.
+</para>
+
+</sect3>
+
+</sect2>
+
diff --git a/appendixa/libtool.sgml b/appendixa/libtool.sgml
new file mode 100644
index 000000000..3c63a2f26
--- /dev/null
+++ b/appendixa/libtool.sgml
@@ -0,0 +1,7 @@
+<sect1 id="aa-libtool">
+<title>Libtool</title>
+
+&aa-libtool-desc;
+
+</sect1>
+
diff --git a/appendixa/lilo-desc.sgml b/appendixa/lilo-desc.sgml
new file mode 100644
index 000000000..016bffb9f
--- /dev/null
+++ b/appendixa/lilo-desc.sgml
@@ -0,0 +1,18 @@
+<sect2>
+<title>Contents</title>
+
+<para>
+The Lilo package contains the lilo program.
+</para>
+
+</sect2>
+
+<sect2><title>Description</title>
+
+<para>
+lilo installs the Linux boot loader which is used to start a Linux
+system.
+</para>
+
+</sect2>
+
diff --git a/appendixa/lilo.sgml b/appendixa/lilo.sgml
new file mode 100644
index 000000000..fa9939eed
--- /dev/null
+++ b/appendixa/lilo.sgml
@@ -0,0 +1,7 @@
+<sect1 id="aa-lilo">
+<title>Lilo</title>
+
+&aa-lilo-desc;
+
+</sect1>
+
diff --git a/appendixa/m4-desc.sgml b/appendixa/m4-desc.sgml
new file mode 100644
index 000000000..94f57ef58
--- /dev/null
+++ b/appendixa/m4-desc.sgml
@@ -0,0 +1,23 @@
+<sect2>
+<title>Contents</title>
+
+<para>
+The M4 package contains the M4 processor
+</para>
+
+</sect2>
+
+<sect2>
+<title>Description</title>
+
+<para>
+M4 is a macro processor. It copies input to output expanding macros as it
+goes. Macros are either builtin or user-defined and can take any number
+of arguments. Besides just doing macro expansion m4 has builtin functions
+for including named files, running UNIX commands, doing integer arithmetic,
+manipulating text in various ways, recursion, etc. M4 can be used either
+as a front-end to a compiler or as a macro processor in its own right.
+</para>
+
+</sect2>
+
diff --git a/appendixa/m4.sgml b/appendixa/m4.sgml
new file mode 100644
index 000000000..fccac6958
--- /dev/null
+++ b/appendixa/m4.sgml
@@ -0,0 +1,7 @@
+<sect1 id="aa-m4">
+<title>M4</title>
+
+&aa-m4-desc;
+
+</sect1>
+
diff --git a/appendixa/make-desc.sgml b/appendixa/make-desc.sgml
new file mode 100644
index 000000000..a6ca78cc7
--- /dev/null
+++ b/appendixa/make-desc.sgml
@@ -0,0 +1,17 @@
+<sect2><title>Contents</title>
+
+<para>
+The Make package contains the make program.
+</para>
+
+</sect2>
+
+<sect2><title>Description</title>
+
+<para>
+make determine automatically which pieces of a large program need to be
+recompiled, and issue the commands to recompile them.
+</para>
+
+</sect2>
+
diff --git a/appendixa/make.sgml b/appendixa/make.sgml
new file mode 100644
index 000000000..273c5774f
--- /dev/null
+++ b/appendixa/make.sgml
@@ -0,0 +1,7 @@
+<sect1 id="aa-make">
+<title>Make</title>
+
+&aa-make-desc;
+
+</sect1>
+
diff --git a/appendixa/makedev-desc.sgml b/appendixa/makedev-desc.sgml
new file mode 100644
index 000000000..f2c52bc13
--- /dev/null
+++ b/appendixa/makedev-desc.sgml
@@ -0,0 +1,17 @@
+<sect2><title>Contents</title>
+
+<para>
+The MAKEDEV package contains the MAKEDEV script.
+</para>
+
+</sect2>
+
+<sect2><title>Description</title>
+
+<para>
+MAKEDEV is a script that can aid you in creating the necesarry static
+device files that usually reside in the /dev directory.
+</para>
+
+</sect2>
+
diff --git a/appendixa/makedev.sgml b/appendixa/makedev.sgml
new file mode 100644
index 000000000..821d4a083
--- /dev/null
+++ b/appendixa/makedev.sgml
@@ -0,0 +1,7 @@
+<sect1 id="aa-makedev">
+<title>MAKEDEV</title>
+
+&aa-makedev-desc;
+
+</sect1>
+
diff --git a/appendixa/man-desc.sgml b/appendixa/man-desc.sgml
new file mode 100644
index 000000000..b79360bf7
--- /dev/null
+++ b/appendixa/man-desc.sgml
@@ -0,0 +1,54 @@
+<sect2><title>Contents</title>
+
+<para>
+The Man package contains the man, apropos whatis and makewhatis
+programs.
+</para>
+
+</sect2>
+
+<sect2><title>Description</title>
+
+<sect3><title>man</title>
+
+<para>
+man formats and displays the on-line manual pages.
+</para>
+
+</sect3>
+
+<sect3><title>apropos</title>
+
+<para>
+apropos searches a set of database files containing short descriptions
+of system commands for keywords and displays the result on the standard
+output.
+</para>
+
+</sect3>
+
+<sect3><title>whatis</title>
+
+<para>
+whatis searches a set of database files containing short descriptions
+of system commands for keywords and displays the result on the standard
+output. Only complete word matches are displayed.
+</para>
+
+</sect3>
+
+<sect3><title>makewhatis</title>
+
+<para>
+makewhatis reads all the manual pages contained in given sections of
+manpath or the preformatted pages contained in the given sections of
+catpath. For each page, it writes a line in the whatis database; each
+line consists of the name of the page and a short description,
+separated by a dash. The description is extracted using the content of
+the NAME section of the manual page.
+</para>
+
+</sect3>
+
+</sect2>
+
diff --git a/appendixa/man.sgml b/appendixa/man.sgml
new file mode 100644
index 000000000..ce124555e
--- /dev/null
+++ b/appendixa/man.sgml
@@ -0,0 +1,7 @@
+<sect1 id="aa-man">
+<title>Man</title>
+
+&aa-man-desc;
+
+</sect1>
+
diff --git a/appendixa/manpages-desc.sgml b/appendixa/manpages-desc.sgml
new file mode 100644
index 000000000..2fa30e7bf
--- /dev/null
+++ b/appendixa/manpages-desc.sgml
@@ -0,0 +1,18 @@
+<sect2><title>Contents</title>
+
+<para>
+The Man-pages package contains various manual pages that don't come with
+the packages.
+</para>
+
+</sect2>
+
+<sect2><title>Description</title>
+
+<para>
+Examples of provided manual pages are the manual pages describing all
+the C and C++ functions, few important /dev/ files and more.
+</para>
+
+</sect2>
+
diff --git a/appendixa/manpages.sgml b/appendixa/manpages.sgml
new file mode 100644
index 000000000..6a00aefe7
--- /dev/null
+++ b/appendixa/manpages.sgml
@@ -0,0 +1,7 @@
+<sect1 id="aa-man-pages">
+<title>Man-pages</title>
+
+&aa-manpages-desc;
+
+</sect1>
+
diff --git a/appendixa/mawk-desc.sgml b/appendixa/mawk-desc.sgml
new file mode 100644
index 000000000..216f05f7e
--- /dev/null
+++ b/appendixa/mawk-desc.sgml
@@ -0,0 +1,22 @@
+<sect2><title>Contents</title>
+
+<para>
+The Mawk package contains the mawk program.
+</para>
+
+</sect2>
+
+<sect2><title>Description</title>
+
+<sect3><title>mawk</title>
+
+<para>
+Mawk is an interpreter for the AWK Programming Language. The AWK
+language is useful for manipulation of data files, text retrieval and
+processing, and for prototyping and experimenting with algorithms.
+</para>
+
+</sect3>
+
+</sect2>
+
diff --git a/appendixa/mawk.sgml b/appendixa/mawk.sgml
new file mode 100644
index 000000000..af21dd2b7
--- /dev/null
+++ b/appendixa/mawk.sgml
@@ -0,0 +1,7 @@
+<sect1 id="aa-mawk">
+<title>Mawk</title>
+
+&aa-mawk-desc;
+
+</sect1>
+
diff --git a/appendixa/modutils-desc.sgml b/appendixa/modutils-desc.sgml
new file mode 100644
index 000000000..cf0fb85fe
--- /dev/null
+++ b/appendixa/modutils-desc.sgml
@@ -0,0 +1,109 @@
+<sect2>
+<title>Contents</title>
+
+<para>
+The Modutils package contains the depmod, genksyms, insmod,
+insmod_ksymoops_clean, kerneld, kernelversion, ksyms, lsmod, modinfo,
+modprobe and rmmod programs.
+</para>
+
+</sect2>
+
+<sect2><title>Description</title>
+
+<sect3><title>depmod</title>
+
+<para>
+depmod handles dependency descriptions for loadable kernel modules.
+</para>
+
+</sect3>
+
+<sect3><title>genksyms</title>
+
+<para>
+genksyms reads (on standard input) the output from gcc -E source.c
+and generates a file containing version information.
+</para>
+
+</sect3>
+
+<sect3><title>insmod</title>
+
+<para>
+insmod installs a loadable module in the running kernel.
+</para>
+
+</sect3>
+
+<sect3><title>insmod_ksymoops_clean</title>
+
+<para>
+insmod_ksymoops_clean deletes saved ksyms and modules not accessed in
+2 days.
+</para>
+
+</sect3>
+
+<sect3><title>kerneld</title>
+
+<para>
+kerneld performs kernel action in user space (such as on-demand loading of
+modules)
+</para>
+
+</sect3>
+
+<sect3><title>kernelversion</title>
+
+<para>
+kernelversion reports the major version of the running kernel.
+</para>
+
+</sect3>
+
+<sect3><title>ksyms</title>
+
+<para>
+ksyms displays exported kernel symbols.
+</para>
+
+</sect3>
+
+<sect3><title>lsmod</title>
+
+<para>
+lsmod shows information about all loaded modules.
+</para>
+
+</sect3>
+
+<sect3><title>modinfo</title>
+
+<para>
+modinfo examines an object file associated with a kernel module and
+displays any information that it can glean.
+</para>
+
+</sect3>
+
+<sect3><title>modprobe</title>
+
+<para>
+Modprobe uses a Makefile-like dependency file, created by depmod,
+to automatically load the relevant module(s) from the set of modules
+available in predefined directory trees.
+</para>
+
+</sect3>
+
+<sect3><title>rmmod</title>
+
+<para>
+rmmod unloads loadable modules from the running kernel.
+</para>
+
+</sect3>
+
+</sect2>
+
diff --git a/appendixa/modutils.sgml b/appendixa/modutils.sgml
new file mode 100644
index 000000000..17b1548d1
--- /dev/null
+++ b/appendixa/modutils.sgml
@@ -0,0 +1,7 @@
+<sect1 id="aa-modutils">
+<title>Modutils</title>
+
+&aa-modutils-desc;
+
+</sect1>
+
diff --git a/appendixa/ncurses-desc.sgml b/appendixa/ncurses-desc.sgml
new file mode 100644
index 000000000..b1746faf5
--- /dev/null
+++ b/appendixa/ncurses-desc.sgml
@@ -0,0 +1,94 @@
+<sect2>
+<title>Contents</title>
+
+<para>
+The Ncurses package contains the ncurses, panel, menu and form
+libraries. It also contains the tic, infocmp, clear, tput, toe and tset
+programs.
+</para>
+
+</sect2>
+
+<sect2><title>Description</title>
+
+<sect3><title>The libraries</title>
+
+<para>
+The libraries that make up the Ncurses library are used to display text
+(often in a fancy way) on your screen. An example where ncurses is used
+is in the kernel's <quote>make menuconfig</quote> process. The libraries
+contain routines to create panels, menu's, form and general text display
+routines.
+</para>
+
+</sect3>
+
+<sect3><title>Tic</title>
+
+<para>
+Tic is the terminfo entry-description compiler. The program translates a
+terminfo file from source format into the binary format for use with the
+ncurses library routines. Terminfo files contain information about the
+capabilities of your terminal.
+</para>
+
+</sect3>
+
+<sect3><title>Infocmp</title>
+
+<para>
+The infocmp program can be used to compare a binary terminfo entry with
+other
+terminfo entries, rewrite a terminfo description to take advantage of
+the
+use= terminfo field, or print out a terminfo description from the
+binary
+file (term) in a variety of formats (the opposite of what tic does).
+</para>
+
+</sect3>
+
+<sect3><title>clear</title>
+
+<para>
+The clear program clears your screen if this is possible. It looks in
+the environment for the terminal type and then in the terminfo database
+to
+figure out how to clear the screen.
+</para>
+
+</sect3>
+
+<sect3><title>tput</title>
+
+<para>
+The tput program uses the terminfo database to make the values of
+terminal-dependent capabilities and information available to the shell,
+to
+initialize or reset the terminal, or return the long name of the
+requested
+terminal type.
+</para>
+
+</sect3>
+
+<sect3><title>toe</title>
+
+<para>
+The toe program lists all available terminal types by primary name with
+descriptions.
+</para>
+
+</sect3>
+
+<sect3><title>tset</title>
+
+<para>
+The Tset program initializes terminals so they can be used, but it's not
+widely used anymore. It's provided for 4.4BSD compatibility.
+</para>
+
+</sect3>
+
+</sect2>
+
diff --git a/appendixa/ncurses.sgml b/appendixa/ncurses.sgml
new file mode 100644
index 000000000..6b73dbee4
--- /dev/null
+++ b/appendixa/ncurses.sgml
@@ -0,0 +1,7 @@
+<sect1 id="aa-ncurses">
+<title>Ncurses</title>
+
+&aa-ncurses-desc;
+
+</sect1>
+
diff --git a/appendixa/patch-desc.sgml b/appendixa/patch-desc.sgml
new file mode 100644
index 000000000..410df67d2
--- /dev/null
+++ b/appendixa/patch-desc.sgml
@@ -0,0 +1,26 @@
+<sect2>
+<title>Contents</title>
+
+<para>
+The Patch package contains the patch program.
+</para>
+
+</sect2>
+
+<sect2><title>Description</title>
+
+<para>
+The patch program modifies a file according to a patch file. A patch
+file usually is a list created by the diff program that contains
+instructions on how an original file needs to be modified. Patch is used
+a lot for source code patches since it saves time and space. Imagine
+you have a package that is 1MB in size. The next version of that package
+only has changes in two files of the first version. You can ship an
+entirely new package of 1MB or provide a patch file of 1KB which will
+update the first version to make it identical to the second version. So
+if you have downloaded the first version already, a patch file can
+save you a second large download.
+</para>
+
+</sect2>
+
diff --git a/appendixa/patch.sgml b/appendixa/patch.sgml
new file mode 100644
index 000000000..4a305f8e7
--- /dev/null
+++ b/appendixa/patch.sgml
@@ -0,0 +1,7 @@
+<sect1 id="aa-patch">
+<title>Patch</title>
+
+&aa-patch-desc;
+
+</sect1>
+
diff --git a/appendixa/perl-desc.sgml b/appendixa/perl-desc.sgml
new file mode 100644
index 000000000..52eaac0c2
--- /dev/null
+++ b/appendixa/perl-desc.sgml
@@ -0,0 +1,20 @@
+<sect2>
+<title>Contents</title>
+
+<para>
+The Perl package contains Perl - Practical Extraction and Report
+Language
+</para>
+
+</sect2>
+
+<sect2>
+<title>Description</title>
+
+<para>
+Perl combines the features and capabilities of C, awk, sed and sh into
+one powerful programming language.
+</para>
+
+</sect2>
+
diff --git a/appendixa/perl.sgml b/appendixa/perl.sgml
new file mode 100644
index 000000000..e639d73ba
--- /dev/null
+++ b/appendixa/perl.sgml
@@ -0,0 +1,7 @@
+<sect1 id="aa-perl">
+<title>Perl</title>
+
+&aa-perl-desc;
+
+</sect1>
+
diff --git a/appendixa/procinfo-desc.sgml b/appendixa/procinfo-desc.sgml
new file mode 100644
index 000000000..8c6ff015c
--- /dev/null
+++ b/appendixa/procinfo-desc.sgml
@@ -0,0 +1,18 @@
+<sect2>
+<title>Contents</title>
+
+<para>
+The Procinfo package contains the procinfo program.
+</para>
+
+</sect2>
+
+<sect2><title>Description</title>
+
+<para>
+procinfo gathers some system data from the /proc directory
+and prints it nicely formatted on the standard output device.
+</para>
+
+</sect2>
+
diff --git a/appendixa/procinfo.sgml b/appendixa/procinfo.sgml
new file mode 100644
index 000000000..74a89ad7c
--- /dev/null
+++ b/appendixa/procinfo.sgml
@@ -0,0 +1,7 @@
+<sect1 id="aa-procinfo">
+<title>Procinfo</title>
+
+&aa-procinfo-desc;
+
+</sect1>
+
diff --git a/appendixa/procps-desc.sgml b/appendixa/procps-desc.sgml
new file mode 100644
index 000000000..8c31cbcd2
--- /dev/null
+++ b/appendixa/procps-desc.sgml
@@ -0,0 +1,116 @@
+<sect2>
+<title>Contents</title>
+
+<para>
+The Procps package contains the free, kill, oldps, ps, skill, snice,
+sysctl, tload, top, uptime, vmstat, w and watch programs.
+</para>
+
+</sect2>
+
+<sect2><title>Description</title>
+
+<sect3><title>free</title>
+
+<para>
+free displays the total amount of free and used physical and swap memory
+in the system, as well as the shared memory and buffers used by the kernel.
+</para>
+
+</sect3>
+
+<sect3><title>kill</title>
+
+<para>
+kills sends signals to processes.
+</para>
+
+</sect3>
+
+<sect3><title>oldps and ps</title>
+
+<para>
+ps gives a snapshot of the current processes.
+</para>
+
+</sect3>
+
+<sect3><title>skill</title>
+
+<para>
+skill sends signals to process matching a criteria.
+</para>
+
+</sect3>
+
+<sect3><title>snice</title>
+
+<para>
+snice changes the scheduling priority for process matching a criteria.
+</para>
+
+</sect3>
+
+<sect3><title>sysctl</title>
+
+<para>
+sysctl modifies kernel parameters at runtime.
+</para>
+
+</sect3>
+
+<sect3><title>tload</title>
+
+<para>
+tload prints a graph of the current system load average to the specified
+tty (or the tty of the tload process if none is specified).
+</para>
+
+</sect3>
+
+<sect3><title>top</title>
+
+<para>
+top provides an ongoing look at processor activity in real time.
+</para>
+
+</sect3>
+
+<sect3><title>uptime</title>
+
+<para>
+uptime gives a one line display of the following information: the current
+time, how long the system has been running, how many users are currently
+logged on, and the system load averages for the past 1, 5, and 15 minutes.
+</para>
+
+</sect3>
+
+<sect3><title>vmstat</title>
+
+<para>
+vmstat reports information about processes, memory, paging, block IO,
+traps, and cpu activity.
+</para>
+
+</sect3>
+
+<sect3><title>w</title>
+
+<para>
+w displays information about the users currently on the machine, and
+their processes.
+</para>
+
+</sect3>
+
+<sect3><title>watch</title>
+
+<para>
+watch runs command repeatedly, displaying its output (the first screenfull).
+</para>
+
+</sect3>
+
+</sect2>
+
diff --git a/appendixa/procps.sgml b/appendixa/procps.sgml
new file mode 100644
index 000000000..168a6756b
--- /dev/null
+++ b/appendixa/procps.sgml
@@ -0,0 +1,7 @@
+<sect1 id="aa-procps">
+<title>Procps</title>
+
+&aa-procps-desc;
+
+</sect1>
+
diff --git a/appendixa/psmisc-desc.sgml b/appendixa/psmisc-desc.sgml
new file mode 100644
index 000000000..a8cd4fe56
--- /dev/null
+++ b/appendixa/psmisc-desc.sgml
@@ -0,0 +1,39 @@
+<sect2>
+<title>Contents</title>
+
+<para>
+The Psmisc package contains the fuser, killall and pstree programs.
+</para>
+
+</sect2>
+
+<sect2><title>Description</title>
+
+<sect3><title>fuser</title>
+
+<para>
+fuser displays the PIDs of processes using the specified files or file
+systems.
+</para>
+
+</sect3>
+
+<sect3><title>killall</title>
+
+<para>
+killall sends a signal to all processes running any of the specified
+commands.
+</para>
+
+</sect3>
+
+<sect3><title>pstree</title>
+
+<para>
+pstree shows running processes as a tree.
+</para>
+
+</sect3>
+
+</sect2>
+
diff --git a/appendixa/psmisc.sgml b/appendixa/psmisc.sgml
new file mode 100644
index 000000000..0fff9ad0c
--- /dev/null
+++ b/appendixa/psmisc.sgml
@@ -0,0 +1,7 @@
+<sect1 id="aa-psmisc">
+<title>Psmisc</title>
+
+&aa-psmisc-desc;
+
+</sect1>
+
diff --git a/appendixa/sed-desc.sgml b/appendixa/sed-desc.sgml
new file mode 100644
index 000000000..401fa9a82
--- /dev/null
+++ b/appendixa/sed-desc.sgml
@@ -0,0 +1,18 @@
+<sect2>
+<title>Contents</title>
+
+<para>
+The Sed package contains the sed program.
+</para>
+
+</sect2>
+
+<sect2><title>Description</title>
+
+<para>
+sed is a stream editor. A stream editor is used to perform basic text
+transformations on an input stream (a file or input from a pipeline).
+</para>
+
+</sect2>
+
diff --git a/appendixa/sed.sgml b/appendixa/sed.sgml
new file mode 100644
index 000000000..c2cfe9844
--- /dev/null
+++ b/appendixa/sed.sgml
@@ -0,0 +1,7 @@
+<sect1 id="aa-sed">
+<title>Sed</title>
+
+&aa-sed-desc;
+
+</sect1>
+
diff --git a/appendixa/shadowpwd-desc.sgml b/appendixa/shadowpwd-desc.sgml
new file mode 100644
index 000000000..22cb73916
--- /dev/null
+++ b/appendixa/shadowpwd-desc.sgml
@@ -0,0 +1,273 @@
+<sect2>
+<title>Contents</title>
+
+<para>
+The Shadow Password Suite contains the chage, chfn, chsh, expiry,
+faillog, gpasswd, lastlog, login, newgrp, passwd, sg, su, chpasswd,
+dpasswd, groupadd, groupdel, groupmod, grpck, grpconv, grpunconv, logoutd,
+mkpasswd, newusers, pwck, pwconv, pwunconv, useradd, userdel, usermod
+and vipw programs.
+</para>
+
+</sect2>
+
+<sect2><title>Description</title>
+
+<sect3><title>chage</title>
+
+<para>
+chage changes the number of days between password changes and the date of
+the last password change.
+</para>
+
+</sect3>
+
+<sect3><title>chfn</title>
+
+<para>
+chfn changes user fullname, office number, office extension, and home
+phone number information for a user's account.
+</para>
+
+</sect3>
+
+<sect3><title>chsh</title>
+
+<para>
+chsh changes the user login shell.
+</para>
+
+</sect3>
+
+<sect3><title>expiry</title>
+
+<para>
+It's currently unknown what this program is for.
+</para>
+
+</sect3>
+
+<sect3><title>faillog</title>
+
+<para>
+faillog formats the contents of the failure log,/var/log/faillog, and
+maintains failure counts and limits.
+</para>
+
+</sect3>
+
+<sect3><title>gpasswd</title>
+
+<para>
+gpasswd is used to administer the /etc/group file
+</para>
+
+</sect3>
+
+<sect3><title>lastlog</title>
+
+<para>
+lastlog formats and prints the contents of the last login log,
+/var/log/lastlog. The login-name, port, and last login time will be printed.
+</para>
+
+</sect3>
+
+<sect3><title>login</title>
+
+<para>
+login is used to establish a new session with the system.
+</para>
+
+</sect3>
+
+<sect3><title>newgrp</title>
+
+<para>
+newgrp is used to change the current group ID during a login session.
+</para>
+
+</sect3>
+
+<sect3><title>passwd</title>
+
+<para>
+passwd changes passwords for user and group accounts.
+</para>
+
+</sect3>
+
+<sect3><title>sg</title>
+
+<para>
+sg executes command as a different group ID.
+</para>
+
+</sect3>
+
+<sect3><title>su</title>
+
+<para>
+Change the effective user id and group id to that of a user. This
+replaces the su programs that's installed from the Shellutils package.
+</para>
+
+</sect3>
+
+<sect3><title>chpasswd</title>
+
+<para>
+chpasswd reads a file of user name and password pairs from standard
+input and uses this information to update a group of existing users.
+</para>
+
+</sect3>
+
+<sect3><title>dpasswd</title>
+
+<para>
+dpasswd adds, deletes, and updates dialup passwords for user login shells.
+</para>
+
+</sect3>
+
+<sect3><title>groupadd</title>
+
+<para>
+The groupadd command creates a new group account using the values
+specified on the command line and the default values from the system.
+</para>
+
+</sect3>
+
+<sect3><title>groupdel</title>
+
+<para>
+The groupdel command modifies the system account files, deleting all
+entries that refer to group.
+</para>
+
+</sect3>
+
+<sect3><title>groupmod</title>
+
+<para>
+The groupmod command modifies the system account files to reflect the
+changes that are specified on the command line.
+</para>
+
+</sect3>
+
+<sect3><title>grpck</title>
+
+<para>
+grpck verifies the integrity of the system authentication information.
+</para>
+
+</sect3>
+
+<sect3><title>grpconv</title>
+
+<para>
+grpunconv converts to shadow group files from normal group files.
+</para>
+
+</sect3>
+
+<sect3><title>grpunconv</title>
+
+<para>
+grpunconv converts from shadow group files to normal group files.
+</para>
+
+</sect3>
+
+<sect3><title>logoutd</title>
+
+<para>
+logoutd enforces the login time and port restrictions specified in
+/etc/porttime.
+</para>
+
+</sect3>
+
+<sect3><title>mkpasswd</title>
+
+<para>
+mkpasswd reads a file in the format given by the flags and converts it
+to the corresponding database file format.
+</para>
+
+</sect3>
+
+<sect3><title>newusers</title>
+
+<para>
+newusers reads a file of user name and cleartext password pairs and uses
+this information to update a group of existing users or to create new users.
+</para>
+
+</sect3>
+
+<sect3><title>pwck</title>
+
+<para>
+pwck verifies the integrity of the system authentication information.
+</para>
+
+</sect3>
+
+<sect3><title>pwconv</title>
+
+<para>
+pwconv converts to shadow passwd files from normal passwd files.
+</para>
+
+</sect3>
+
+<sect3><title>pwunconv</title>
+
+<para>
+pwunconv converts from shadow passwd files to normal files.
+</para>
+
+</sect3>
+
+<sect3><title>useradd</title>
+
+<para>
+useradd creates a new user or update default new user information.
+</para>
+
+</sect3>
+
+<sect3><title>userdel</title>
+
+<para>
+userdel modifies the system account files, deleting all entries that
+refer to a specified login name.
+</para>
+
+</sect3>
+
+<sect3><title>usermod</title>
+
+<para>
+usermod modifies the system account files to reflect the changes that
+are specified on the command line.
+</para>
+
+</sect3>
+
+<sect3><title>vipw and vigr</title>
+
+<para>
+vipw and vigr will edit the files /etc/passwd and /etc/group,
+respectively. With the -s flag, they will edit the shadow versions of
+those files, /etc/shadow and /etc/gshadow, respectively.
+</para>
+
+</sect3>
+
+</sect2>
+
diff --git a/appendixa/shadowpwd.sgml b/appendixa/shadowpwd.sgml
new file mode 100644
index 000000000..9d337f3f4
--- /dev/null
+++ b/appendixa/shadowpwd.sgml
@@ -0,0 +1,7 @@
+<sect1 id="aa-shadow">
+<title>Shadow Password Suite</title>
+
+&aa-shadowpwd-desc;
+
+</sect1>
+
diff --git a/appendixa/shellutils-desc.sgml b/appendixa/shellutils-desc.sgml
new file mode 100644
index 000000000..7a7b19c76
--- /dev/null
+++ b/appendixa/shellutils-desc.sgml
@@ -0,0 +1,302 @@
+<sect2>
+<title>Contents</title>
+
+<para>
+The Shellutils package contains the basename, chroot, date, dirname,
+echo, env, expr, factor, false, groups, hostid, hostname, id, logname,
+nice, nohup, pathchk, pinky, printenv, printf, pwd, seq, sleep, stty,
+su, tee, test, true, tty, uname, uptime, users, who, whoami and yes
+programs.
+</para>
+
+</sect2>
+
+<sect2><title>Description</title>
+
+<sect3><title>basename</title>
+
+<para>
+basename strips directory and suffixes from filenames.
+</para>
+
+</sect3>
+
+<sect3><title>chroot</title>
+
+<para>
+chroot runs a command or interactive shell with special root directory.
+</para>
+
+</sect3>
+
+<sect3><title>date</title>
+
+<para>
+date displays the current time in a specified format, or sets the system
+date.
+</para>
+
+</sect3>
+
+<sect3><title>dirname</title>
+
+<para>
+dirname strips non-directory suffixes from file name.
+</para>
+
+</sect3>
+
+<sect3><title>echo</title>
+
+<para>
+echo displays a line of text.
+</para>
+
+</sect3>
+
+<sect3><title>env</title>
+
+<para>
+env runs a program in a modified environment.
+</para>
+
+</sect3>
+
+<sect3><title>expr</title>
+
+<para>
+expr evaluates expressions.
+</para>
+
+</sect3>
+
+<sect3><title>factor</title>
+
+<para>
+factor prints the prime factors of all specified integer numbers.
+</para>
+
+</sect3>
+
+<sect3><title>false</title>
+
+<para>
+false always exits with a status code indicating failure.
+</para>
+
+</sect3>
+
+<sect3><title>groups</title>
+
+<para>
+groups prints the groups a user is in.
+</para>
+
+</sect3>
+
+<sect3><title>hostid</title>
+
+<para>
+hostid prints the numeric identifier (in hexadecimal) for the current
+host.
+</para>
+
+</sect3>
+
+<sect3><title>hostname</title>
+
+<para>
+hostname sets or prints the name of the current host system
+</para>
+
+</sect3>
+
+<sect3><title>id</title>
+
+<para>
+id prints the real and effective UIDs and GIDs of a user or the current
+user.
+</para>
+
+</sect3>
+
+<sect3><title>logname</title>
+
+<para>
+logname prints the current user's login name.
+</para>
+
+</sect3>
+
+<sect3><title>nice</title>
+
+<para>
+nice runs a program with modified scheduling priority.
+</para>
+
+</sect3>
+
+<sect3><title>nohup</title>
+
+<para>
+nohup runs a command immune to hangups, with output to a non-tty
+</para>
+
+</sect3>
+
+<sect3><title>pathchk</title>
+
+<para>
+pathchk checks whether file names are valid or portable.
+</para>
+
+</sect3>
+
+<sect3><title>pinky</title>
+
+<para>
+pinky is a lightweight finger utility which retrieves information about
+a certain user
+</para>
+
+</sect3>
+
+<sect3><title>printenv</title>
+
+<para>
+printenv prints all or part of the environment.
+</para>
+
+</sect3>
+
+<sect3><title>printf</title>
+
+<para>
+printf formats and print data (the same as the printf C function).
+</para>
+
+</sect3>
+
+<sect3><title>pwd</title>
+
+<para>
+pwd prints the name of the current/working directory
+</para>
+
+</sect3>
+
+<sect3><title>seq</title>
+
+<para>
+seq prints numbers in a certain range with a certain increment.
+</para>
+
+</sect3>
+
+<sect3><title>sleep</title>
+
+<para>
+sleep delays for a specified amount of time.
+</para>
+
+</sect3>
+
+<sect3><title>stty</title>
+
+<para>
+stty changes and prints terminal line settings.
+</para>
+
+</sect3>
+
+<sect3><title>su</title>
+
+<para>
+su runs a shell with substitute user and group IDs
+</para>
+
+</sect3>
+
+<sect3><title>tee</title>
+
+<para>
+tee reads from standard input and write to standard output and files.
+</para>
+
+</sect3>
+
+<sect3><title>test</title>
+
+<para>
+test checks file types and compares values.
+</para>
+
+</sect3>
+
+<sect3><title>true</title>
+
+<para>
+True always exitx with a status code indicating success.
+</para>
+
+</sect3>
+
+<sect3><title>tty</title>
+
+<para>
+tty prints the file name of the terminal connected to standard input.
+</para>
+
+</sect3>
+
+<sect3><title>uname</title>
+
+<para>
+uname prints system information.
+</para>
+
+</sect3>
+
+<sect3><title>uptime</title>
+
+<para>
+uptime tells how long the system has been running.
+</para>
+
+</sect3>
+
+<sect3><title>users</title>
+
+<para>
+users prints the user names of users currently logged in to the
+current host.
+</para>
+
+</sect3>
+
+<sect3><title>who</title>
+
+<para>
+who shows who is logged on.
+</para>
+
+</sect3>
+
+<sect3><title>whoami</title>
+
+<para>
+whoami prints your effective userid.
+</para>
+
+</sect3>
+
+<sect3><title>yes</title>
+
+<para>
+yes outputs a string repeatedly until killed.
+</para>
+
+</sect3>
+
+</sect2>
+
diff --git a/appendixa/shellutils.sgml b/appendixa/shellutils.sgml
new file mode 100644
index 000000000..90f016af5
--- /dev/null
+++ b/appendixa/shellutils.sgml
@@ -0,0 +1,7 @@
+<sect1 id="aa-shutils">
+<title>Shellutils</title>
+
+&aa-shellutils-desc;
+
+</sect1>
+
diff --git a/appendixa/sysklogd-desc.sgml b/appendixa/sysklogd-desc.sgml
new file mode 100644
index 000000000..b6ecc5ae3
--- /dev/null
+++ b/appendixa/sysklogd-desc.sgml
@@ -0,0 +1,32 @@
+<sect2>
+<title>Contents</title>
+
+<para>
+The Sysklogd package contains the klogd and syslogd programs.
+</para>
+
+</sect2>
+
+<sect2><title>Description</title>
+
+<sect3><title>klogd</title>
+
+<para>
+klogd is a system daemon which intercepts and logs Linux kernel messages.
+</para>
+
+</sect3>
+
+<sect3><title>syslogd</title>
+
+<para>
+Syslogd provides a kind of logging that many modern programs use. Every
+logged message contains at least a time and a hostname field, normally a
+program name field, too, but that depends on how trusty the logging
+program is.
+</para>
+
+</sect3>
+
+</sect2>
+
diff --git a/appendixa/sysklogd.sgml b/appendixa/sysklogd.sgml
new file mode 100644
index 000000000..8bcf312a9
--- /dev/null
+++ b/appendixa/sysklogd.sgml
@@ -0,0 +1,7 @@
+<sect1 id="aa-sysklogd">
+<title>Sysklogd</title>
+
+&aa-sysklogd-desc;
+
+</sect1>
+
diff --git a/appendixa/sysvinit-desc.sgml b/appendixa/sysvinit-desc.sgml
new file mode 100644
index 000000000..4f8603ab2
--- /dev/null
+++ b/appendixa/sysvinit-desc.sgml
@@ -0,0 +1,160 @@
+<sect2>
+<title>Contents</title>
+
+<para>
+The Sysvinit package contains the pidof, last, lastb, mesg, utmpdump,
+wall, halt, init, killall5, poweroff, reboot, runlevel, shutdown,
+sulogin and telinit programs.
+</para>
+
+</sect2>
+
+<sect2><title>Description</title>
+
+<sect3><title>pidof</title>
+
+<para>
+Pidof finds the process id's (pids) of the named programs and prints
+those id's on standard output.
+</para>
+
+</sect3>
+
+<sect3><title>last</title>
+
+<para>
+last searches back through the file /var/log/wtmp (or the file designated
+by the -f flag) and displays a list of all users logged in (and out)
+since that file was created.
+</para>
+
+</sect3>
+
+<sect3><title>lastb</title>
+
+<para>
+lastb is the same as last, except that by default it shows a log of the
+file /var/log/btmp, which contains all the bad login attempts.
+
+</para>
+
+</sect3>
+
+<sect3><title>mesg</title>
+
+<para>
+Mesg controls the access to your terminal by others. It's typically
+used to allow or disallow other users to write to your terminal.
+</para>
+
+</sect3>
+
+<sect3><title>utmpdump</title>
+
+<para>
+utmpdumps prints the content of a file (usually /var/run/utmp) on
+standard output in a user friendly format.
+</para>
+
+</sect3>
+
+<sect3><title>wall</title>
+
+<para>
+Wall sends a message to everybody logged in with their mesg permission
+set to yes.
+</para>
+
+</sect3>
+
+<sect3><title>halt</title>
+
+<para>
+Halt notes that the system is being brought down in the file
+/var/log/wtmp, and then either tells the kernel to halt, reboot or
+poweroff the system. If halt or reboot is called when the system is not
+in runlevel 0 or 6, shutdown will be invoked instead (with the flag -h or -r).
+</para>
+
+</sect3>
+
+<sect3><title>init</title>
+
+<para>
+Init is the parent of all processes. Its primary role is to create
+processes from a script stored in the file /etc/inittab. This
+file usually has entries which cause init to spawn gettys on each line that
+users can log in. It also controls autonomous processes required by any
+particular system.
+</para>
+
+</sect3>
+
+<sect3><title>killall5</title>
+
+<para>
+killall5 is the SystemV killall command. It sends a signal to all
+processes except the processes in its own session, so it won't kill the
+shell that is running the script it was called from.
+</para>
+
+</sect3>
+
+<sect3><title>poweroff</title>
+
+<para>
+poweroff is equivalent to shutdown -h -p now. It halts the computer and
+switches off the computer (when using an APM compliant BIOS and APM is
+enabled in the kernel).
+</para>
+
+</sect3>
+
+<sect3><title>reboot</title>
+
+<para>
+reboot is equivalent to shutdown -r now. It reboots the computer.
+</para>
+
+</sect3>
+
+<sect3><title>runlevel</title>
+
+<para>
+Runlevel reads the system utmp file (typically /var/run/utmp) to locate
+the runlevel record, and then prints the previous and current system
+runlevel on its standard output, separated by a single space.
+</para>
+
+</sect3>
+
+<sect3><title>shutdown</title>
+
+<para>
+shutdown brings the system down in a secure way. All logged-in users are
+notified that the system is going down, and login is blocked.
+</para>
+
+</sect3>
+
+<sect3><title>sulogin</title>
+
+<para>
+sulogin is invoked by init when the system goes into single user mode
+(this is done through an entry in /etc/inittab). Init also tries to
+execute sulogin when it is passed the -b flag from the bootmonitor (eg, LILO).
+</para>
+
+</sect3>
+
+<sect3><title>telinit</title>
+
+<para>
+telinit sends appropriate signals to init, telling it which runlevel to
+change to.
+</para>
+
+</sect3>
+
+</sect2>
+
diff --git a/appendixa/sysvinit.sgml b/appendixa/sysvinit.sgml
new file mode 100644
index 000000000..5aad28186
--- /dev/null
+++ b/appendixa/sysvinit.sgml
@@ -0,0 +1,7 @@
+<sect1 id="aa-sysvinit">
+<title>Sysvinit</title>
+
+&aa-sysvinit-desc;
+
+</sect1>
+
diff --git a/appendixa/tar-desc.sgml b/appendixa/tar-desc.sgml
new file mode 100644
index 000000000..b10ef2309
--- /dev/null
+++ b/appendixa/tar-desc.sgml
@@ -0,0 +1,32 @@
+<sect2>
+<title>Contents</title>
+
+<para>
+The tar package contains the tar and rmt programs.
+</para>
+
+</sect2>
+
+<sect2><title>Description</title>
+
+<sect3><title>tar</title>
+
+<para>
+tar is an archiving program designed to store and extract files from
+an archive file known as a tarfile.
+</para>
+
+</sect3>
+
+<sect3><title>rmt</title>
+
+<para>
+rmt is a program used by the remote dump and restore programs in
+manipulating a magnetic tape drive through an interprocess communication
+connection.
+</para>
+
+</sect3>
+
+</sect2>
+
diff --git a/appendixa/tar.sgml b/appendixa/tar.sgml
new file mode 100644
index 000000000..9bc6707df
--- /dev/null
+++ b/appendixa/tar.sgml
@@ -0,0 +1,7 @@
+<sect1 id="aa-tar">
+<title>Tar</title>
+
+&aa-tar-desc;
+
+</sect1>
+
diff --git a/appendixa/texinfo-desc.sgml b/appendixa/texinfo-desc.sgml
new file mode 100644
index 000000000..4cd7c9836
--- /dev/null
+++ b/appendixa/texinfo-desc.sgml
@@ -0,0 +1,64 @@
+<sect2>
+<title>Contents</title>
+
+<para>
+The Texinfo package contains the info, install-info, makeinfo, texi2dvi
+and texindex programs
+</para>
+
+</sect2>
+
+<sect2>
+<title>Description</title>
+
+<sect3><title>info</title>
+
+<para>
+The info program reads Info documents, usually contained in your
+/usr/doc/info directory. Info documents are like man(ual) pages, but
+they tend to be more in depth than just explaining the options to a
+program.
+</para>
+
+</sect3>
+
+<sect3><title>install-info</title>
+
+<para>
+The install-info program updates the info entries. When you run the info
+program a list with available topics (ie: available info documents) will
+be presented. The install-info program is used to maintain this list of
+available topics. If you decice to remove info files manually, you need
+to delete the topic in the index file as well. This program is used for
+that. It also works the other way around when you add info documents.
+</para>
+
+</sect3>
+
+<sect3><title>makeinfo</title>
+
+<para>
+The makeinfo program translates Texinfo source documents into various formats.
+Available formats are: info files, plain text and HTML.
+</para>
+
+</sect3>
+
+<sect3><title>texi2dvi</title>
+
+<para>
+The texi2dvi program prints Texinfo documents
+</para>
+
+</sect3>
+
+<sect3><title>texindex</title>
+
+<para>
+The texindex program is used to sort Texinfo index files.
+</para>
+
+</sect3>
+
+</sect2>
+
diff --git a/appendixa/texinfo.sgml b/appendixa/texinfo.sgml
new file mode 100644
index 000000000..c5bc55132
--- /dev/null
+++ b/appendixa/texinfo.sgml
@@ -0,0 +1,7 @@
+<sect1 id="aa-texinfo">
+<title>Texinfo</title>
+
+&aa-texinfo-desc;
+
+</sect1>
+
diff --git a/appendixa/textutils-desc.sgml b/appendixa/textutils-desc.sgml
new file mode 100644
index 000000000..4c619e47d
--- /dev/null
+++ b/appendixa/textutils-desc.sgml
@@ -0,0 +1,263 @@
+<sect2>
+<title>Contents</title>
+
+<para>
+The Textutils package contains the cat, cksum, comm, split, cut, expand,
+fmt, fold, head, join, md5sum, nl, od, paste, pr, ptx, sort, split, sum,
+tac, tail, tr, tsort, unexpand, uniq and wc programs.
+</para>
+
+</sect2>
+
+<sect2>
+<title>Description</title>
+
+<sect3>
+<title>cat</title>
+
+<para>
+cat concatenates file(s) or standard input to standard output.
+</para>
+
+</sect3>
+
+<sect3>
+<title>cksum</title>
+
+<para>
+cksum prints CRC checksum and byte counts of each specified file.
+</para>
+
+</sect3>
+
+<sect3>
+<title>comm</title>
+
+<para>
+comm compares two sorted files line by line.
+</para>
+
+</sect3>
+
+<sect3>
+<title>csplit</title>
+
+<para>
+cplit outputs pieces of a file separated by (a) pattern(s) to files
+xx01, xx02, ..., and outputs byte counts of each piece to standard output.
+</para>
+
+</sect3>
+
+<sect3>
+<title>cut</title>
+
+<para>
+cut prints selected parts of lines from specified files to standard output.
+</para>
+
+</sect3>
+
+<sect3>
+<title>expand</title>
+
+<para>
+expand converts tabs in files to spaces, writing to standard output.
+</para>
+
+</sect3>
+
+<sect3>
+<title>fmt</title>
+
+<para>
+fmt reformats each paragraph in the specified file(s), writing to standard
+output.
+</para>
+
+</sect3>
+
+<sect3>
+<title>fold</title>
+
+<para>
+fold wraps input lines in each specified file (standard input by default),
+writing to standard output.
+</para>
+
+</sect3>
+
+<sect3>
+<title>head</title>
+
+<para>
+Print first xx (10 by default) lines of each specified file to standard
+output.
+</para>
+
+</sect3>
+
+<sect3>
+<title>join</title>
+
+<para>
+join joins lines of two files on a common field.
+</para>
+
+</sect3>
+
+<sect3>
+<title>md5sum</title>
+
+<para>
+md5sum prints or checks MD5 checksums.
+</para>
+
+</sect3>
+
+<sect3>
+<title>nl</title>
+
+<para>
+nl writes each specified file to standard output, with line numbers
+added.
+</para>
+
+</sect3>
+
+<sect3>
+<title>od</title>
+
+<para>
+od writes an unambiguous representation, octal bytes by default, of a
+specified file to standard output.
+</para>
+
+</sect3>
+
+<sect3>
+<title>paste</title>
+
+<para>
+paste writes lines consisting of the sequentially corresponding
+lines from each specified file, separated by TABs, to standard output.
+</para>
+
+</sect3>
+
+<sect3>
+<title>pr</title>
+
+<para>
+pr paginates or columnates files for printing.
+</para>
+
+</sect3>
+
+<sect3>
+<title>ptx</title>
+
+<para>
+ptx produces a permuted index of file contents.
+</para>
+
+</sect3>
+
+<sect3>
+<title>sort</title>
+
+<para>
+sort writes sorted concatenation of files to standard output.
+</para>
+
+</sect3>
+
+<sect3>
+<title>split</title>
+
+<para>
+split outputs fixed-size pieces of an input file to PREFIXaa, PREFIXab, ...
+</para>
+
+</sect3>
+
+<sect3>
+<title>sum</title>
+
+<para>
+sum prints checksum and block counts for each specified file.
+</para>
+
+</sect3>
+
+<sect3>
+<title>tac</title>
+
+<para>
+tac writes each specified file to standard output, last line first.
+</para>
+
+</sect3>
+
+<sect3>
+<title>tail</title>
+
+<para>
+tail print the last xx (10 by default) lines of each specified file to
+standard output.
+</para>
+
+</sect3>
+
+<sect3>
+<title>tr</title>
+
+<para>
+tr translates, squeezes, and/or deletes characters from standard
+input, writing to standard output.
+</para>
+
+</sect3>
+
+<sect3>
+<title>tsort</title>
+
+<para>
+tsort writes totally ordered lists consistent with the partial ordering
+in specified files.
+</para>
+
+</sect3>
+
+<sect3>
+<title>unexpand</title>
+
+<para>
+unexpand converts spaces in each file to tabs, writing to standard
+output.
+</para>
+
+</sect3>
+
+<sect3>
+<title>uniq</title>
+
+<para>
+uniq discards all but one of successive identical lines from files or
+standard input and writes to files or standard output.
+</para>
+
+</sect3>
+
+<sect3>
+<title>wc</title>
+
+<para>
+wc prints line, word, and byte counts for each specified file, and a
+total line if more than one file is specified.
+</para>
+
+</sect3>
+
+</sect2>
+
diff --git a/appendixa/textutils.sgml b/appendixa/textutils.sgml
new file mode 100644
index 000000000..fba03c603
--- /dev/null
+++ b/appendixa/textutils.sgml
@@ -0,0 +1,7 @@
+<sect1 id="aa-textutils">
+<title>Textutils</title>
+
+&aa-textutils-desc;
+
+</sect1>
+
diff --git a/appendixa/utillinux-desc.sgml b/appendixa/utillinux-desc.sgml
new file mode 100644
index 000000000..5b546c88a
--- /dev/null
+++ b/appendixa/utillinux-desc.sgml
@@ -0,0 +1,545 @@
+<sect2>
+<title>Contents</title>
+
+<para>
+The Util-linux package contains the arch, dmesg, kill, more,
+mount, umount, agetty, blockdev, cfdisk, ctrlaltdel, elvtune, fdisk,
+fsck.minix, hwclock, kbdrate, losetup, mkfs, mkfs.bfs, mkfs.minix,
+mkswap, sfdisk, swapoff, swapon, cal, chkdupexe, col, colcrt, colrm,
+column, cytune, ddate, fdformat, getopt, hexdump, ipcrm, ipcs, logger,
+look, mcookie, namei, rename, renice, rev, script, setfdprm, setsid,
+setterm, ul, whereis, write, ramsize, rdev, readprofile, rootflags,
+swapdev, tunelp and vidmode programs.
+</para>
+
+</sect2>
+
+<sect2>
+<title>Description</title>
+
+<sect3>
+<title>arch</title>
+
+<para>
+arch prints the machine architecture.
+</para>
+
+</sect3>
+
+<sect3>
+<title>dmesg</title>
+
+<para>
+dmesg is used to examine or control the kernel ring buffer (boot
+messages from the kernel).
+</para>
+
+</sect3>
+
+<sect3>
+<title>kill</title>
+
+<para>
+kill sends a specified signal to the specified process.
+</para>
+
+</sect3>
+
+<sect3>
+<title>more</title>
+
+<para>
+more is a filter for paging through text one screenful at a time.
+</para>
+
+</sect3>
+
+<sect3>
+<title>mount</title>
+
+<para>
+mount mounts a filesystem from a device to a directory (mount point).
+</para>
+
+</sect3>
+
+<sect3>
+<title>umount</title>
+
+<para>
+umount unmounts a mounted filesystem.
+</para>
+
+</sect3>
+
+<sect3>
+<title>agetty</title>
+
+<para>
+agetty opens a tty port, prompts for a login name and invokes the
+/bin/login command.
+</para>
+
+</sect3>
+
+<sect3>
+<title>blockdev</title>
+
+<para>
+blockdev allows you to call block device ioctls from the command line
+</para>
+
+</sect3>
+
+<sect3>
+<title>cfdisk</title>
+
+<para>
+cfdisk is an libncurses based disk partition table manipulator.
+</para>
+
+</sect3>
+
+<sect3>
+<title>ctrlaltdel</title>
+
+<para>
+ctrlaltdel sets the function of the CTRL+ALT+DEL key combination (hard
+or soft reset).
+</para>
+
+</sect3>
+
+<sect3>
+<title>elvtune</title>
+
+<para>
+elvtune allows to tune the I/O elevator per blockdevice queue basis.
+</para>
+
+</sect3>
+
+<sect3>
+<title>fdisk</title>
+
+<para>
+fdisk is a disk partition table manipulator.
+</para>
+
+</sect3>
+
+<sect3>
+<title>fsck.minix</title>
+
+<para>
+fsck.minix performs a consistency check for the Linux MINIX filesystem.
+</para>
+
+</sect3>
+
+<sect3>
+<title>hwclock</title>
+
+<para>
+hwclock queries and sets the hardware clock (Also called the RTC or BIOS
+clock).
+</para>
+
+</sect3>
+
+<sect3>
+<title>kbdrate</title>
+
+<para>
+kbdrate resets the keyboard repeat rate and delay time.
+</para>
+
+</sect3>
+
+<sect3>
+<title>losetup</title>
+
+<para>
+losetup sets up and controls loop devices.
+</para>
+
+</sect3>
+
+<sect3>
+<title>mkfs</title>
+
+<para>
+mkfs builds a Linux filesystem on a device, usually a harddisk
+partition.
+</para>
+
+</sect3>
+
+<sect3>
+<title>mkfs.bfs</title>
+
+<para>
+mkfs.bfs creates a SCO bfs file system on a device, usually a harddisk
+partition.
+</para>
+
+</sect3>
+
+<sect3>
+<title>mkfs.minix</title>
+
+<para>
+mkfs.minix creates a Linux MINIX filesystem on a device, usually a
+harddisk partition.
+</para>
+
+</sect3>
+
+<sect3>
+<title>mkswap</title>
+
+<para>
+mkswap sets up a Linux swap area on a device or in a file.
+</para>
+
+</sect3>
+
+<sect3>
+<title>sfdisk</title>
+
+<para>
+sfdisk is a disk partition table manipulator.
+</para>
+
+</sect3>
+
+<sect3>
+<title>swapoff</title>
+
+<para>
+swapoff disables devices and files for paging an swapping.
+</para>
+
+</sect3>
+
+<sect3>
+<title>swapon</title>
+
+<para>
+swapon enables devices and files for paging and swapping.
+</para>
+
+</sect3>
+
+<sect3>
+<title>cal</title>
+
+<para>
+cal displays a simple calender.
+</para>
+
+</sect3>
+
+<sect3>
+<title>chkdupexe</title>
+
+<para>
+chkdupexe finds duplicate executables.
+</para>
+
+</sect3>
+
+<sect3>
+<title>col</title>
+
+<para>
+col filters reverse line feeds from input.
+</para>
+
+</sect3>
+
+<sect3>
+<title>colcrt</title>
+
+<para>
+colcrt filters nroff output for CRT previewing.
+</para>
+
+</sect3>
+
+<sect3>
+<title>colrm</title>
+
+<para>
+colrm removes columns from a file.
+</para>
+
+</sect3>
+
+<sect3>
+<title>column</title>
+
+<para>
+column columnates lists.
+</para>
+
+</sect3>
+
+<sect3>
+<title>cytune</title>
+
+<para>
+cytune queries and modifies the interruption threshold for the Cyclades
+driver.
+</para>
+
+</sect3>
+
+<sect3>
+<title>ddate</title>
+
+<para>
+ddate converts Gregorian dates to Discordian dates.
+</para>
+
+</sect3>
+
+<sect3>
+<title>fdformat</title>
+
+<para>
+fdformat low-level formats a floppy disk.
+</para>
+
+</sect3>
+
+<sect3>
+<title>getopt</title>
+
+<para>
+getops parses command options the same way as the getopt C command.
+</para>
+
+</sect3>
+
+<sect3>
+<title>hexdump</title>
+
+<para>
+hexdump displays specified files, or standard input, in a user specified
+format (ascii, decimal, hexadecimal, octal).
+</para>
+
+</sect3>
+
+<sect3>
+<title>ipcrm</title>
+
+<para>
+ipcrm removes a specified resource.
+</para>
+
+</sect3>
+
+<sect3>
+<title>ipcs</title>
+
+<para>
+ipcs provides information on ipc facilities.
+</para>
+
+</sect3>
+
+<sect3>
+<title>logger</title>
+
+<para>
+logger makes entries in the system log.
+</para>
+
+</sect3>
+
+<sect3>
+<title>look</title>
+
+<para>
+look displays lines beginning with a given string.
+</para>
+
+</sect3>
+
+<sect3>
+<title>mcookie</title>
+
+<para>
+mcookie generates magic cookies for xauth.
+</para>
+
+</sect3>
+
+<sect3>
+<title>namei</title>
+
+<para>
+namei follows a pathname until a terminal point is found.
+</para>
+
+</sect3>
+
+<sect3>
+<title>rename</title>
+
+<para>
+rename renames files.
+</para>
+
+</sect3>
+
+<sect3>
+<title>renice</title>
+
+<para>
+renice alters priority of running processes.
+</para>
+
+</sect3>
+
+<sect3>
+<title>rev</title>
+
+<para>
+rev reverses lines of a file.
+</para>
+
+</sect3>
+
+<sect3>
+<title>script</title>
+
+<para>
+script makes typescript of terminal session.
+</para>
+
+</sect3>
+
+<sect3>
+<title>setfdprm</title>
+
+<para>
+setfdprm sets user-provides floppy disk parameters.
+</para>
+
+</sect3>
+
+<sect3>
+<title>setsid</title>
+
+<para>
+setsid runs programs in a new session.
+</para>
+
+</sect3>
+
+<sect3>
+<title>setterm</title>
+
+<para>
+setterm sets terminal attributes.
+</para>
+
+</sect3>
+
+<sect3>
+<title>ul</title>
+
+<para>
+ul reads a file and translates occurences of underscores to the sequence
+which indicates underlining for the terminal in use.
+</para>
+
+</sect3>
+
+<sect3>
+<title>whereis</title>
+
+<para>
+whereis locates a binary, source and manual page for a command.
+</para>
+
+</sect3>
+
+<sect3>
+<title>write</title>
+
+<para>
+write sends a message to another user.
+</para>
+
+</sect3>
+
+<sect3>
+<title>ramsize</title>
+
+<para>
+ramsize queries and sets RAM disk size.
+</para>
+
+</sect3>
+
+<sect3>
+<title>rdev</title>
+
+<para>
+rdev queries and sets image root device, swap device, RAM disk size, or
+video mode.
+</para>
+
+</sect3>
+
+<sect3>
+<title>readprofile</title>
+
+<para>
+readprofile reads kernel profiling information.
+</para>
+
+</sect3>
+
+<sect3>
+<title>rootflags</title>
+
+<para>
+rootflags queries and sets extra information used when mounting root.
+</para>
+
+</sect3>
+
+<sect3>
+<title>swapdev</title>
+
+<para>
+swapdev queries and sets swap device.
+</para>
+
+</sect3>
+
+<sect3>
+<title>tunelp</title>
+
+<para>
+tunelp sets various paramters for the lp device.
+</para>
+
+</sect3>
+
+<sect3>
+<title>vidmode</title>
+
+<para>
+vidmode queries and sets the video mode.
+</para>
+
+</sect3>
+
+</sect2>
+
diff --git a/appendixa/utillinux.sgml b/appendixa/utillinux.sgml
new file mode 100644
index 000000000..e83630b6c
--- /dev/null
+++ b/appendixa/utillinux.sgml
@@ -0,0 +1,7 @@
+<sect1 id="aa-utillinux">
+<title>Util Linux</title>
+
+&aa-utillinux-desc;
+
+</sect1>
+
diff --git a/appendixa/vim-desc.sgml b/appendixa/vim-desc.sgml
new file mode 100644
index 000000000..4470954c5
--- /dev/null
+++ b/appendixa/vim-desc.sgml
@@ -0,0 +1,136 @@
+<sect2>
+<title>Contents</title>
+
+<para>
+The Vim package contains the ctags, etags, ex, gview, gvim, rgview,
+rgvim, rview, rvim, view, vim, vimtutor and xxd programs.
+</para>
+
+</sect2>
+
+<sect2>
+<title>Description</title>
+
+<sect3>
+<title>ctags</title>
+
+<para>
+ctags generate tag files for source code.
+</para>
+
+</sect3>
+
+<sect3>
+<title>etags</title>
+
+<para>
+etags does the same as ctags but it can generate cross reference files
+which list information about the various source objects found in a set
+of lanugage files.
+</para>
+
+</sect3>
+
+<sect3>
+<title>ex</title>
+
+<para>
+ex starts vim in Ex mode.
+</para>
+
+</sect3>
+
+<sect3>
+<title>gview</title>
+
+<para>
+gview is the GUI version of view.
+</para>
+
+</sect3>
+
+<sect3>
+<title>gvim</title>
+
+<para>
+gvim is the GUI version of vim.
+</para>
+
+</sect3>
+
+<sect3>
+<title>rgview</title>
+
+<para>
+rgview is teh GUI version of rview.
+</para>
+
+</sect3>
+
+<sect3>
+<title>rgvim</title>
+
+<para>
+rgvim is the GUI version of rvim.
+</para>
+
+</sect3>
+
+<sect3>
+<title>rview</title>
+
+<para>
+rview is a restricted version of view. No shell commands can be started
+and Vim can't be suspended.
+</para>
+
+</sect3>
+
+<sect3>
+<title>rvim</title>
+
+<para>
+rvim is the restricted version of vim. No shell commands can be started
+and Vim can't be suspended.
+</para>
+
+</sect3>
+
+<sect3>
+<title>view</title>
+
+<para>
+view starts vim in read-only mode.
+</para>
+
+</sect3>
+
+<sect3>
+<title>vim</title>
+
+<para>
+vim starts vim in the normal, default way.
+</para>
+
+</sect3>
+
+<sect3>
+<title>vimtutor</title>
+
+<para>
+vimtutor starts the Vim tutor.
+</para>
+
+</sect3>
+
+<sect3>
+<title>xxd</title>
+
+<para>
+xxd makes a hexdump or does the reverse.
+</para>
+
+</sect3>
+
+</sect2>
+
diff --git a/appendixa/vim.sgml b/appendixa/vim.sgml
new file mode 100644
index 000000000..0682a017e
--- /dev/null
+++ b/appendixa/vim.sgml
@@ -0,0 +1,7 @@
+<sect1 id="aa-vim">
+<title>Vim</title>
+
+&aa-vim-desc;
+
+</sect1>
+
diff --git a/book/book.sgml b/book/book.sgml
new file mode 100644
index 000000000..eca386feb
--- /dev/null
+++ b/book/book.sgml
@@ -0,0 +1,7 @@
+&bookinfo;
+&dedication;
+&preface;
+
+&part1;
+&part2;
+&part3;
diff --git a/book/part1.sgml b/book/part1.sgml
new file mode 100644
index 000000000..31c377a09
--- /dev/null
+++ b/book/part1.sgml
@@ -0,0 +1,7 @@
+<part id="part1">
+<title>Part I - Introduction</title>
+
+&chapter1;
+&chapter2;
+
+</part>
diff --git a/book/part2.sgml b/book/part2.sgml
new file mode 100644
index 000000000..c8ebcc95f
--- /dev/null
+++ b/book/part2.sgml
@@ -0,0 +1,12 @@
+<part id="part2">
+<title>Part II - Installing the LFS system</title>
+
+&chapter3;
+&chapter4;
+&chapter5;
+&chapter6;
+&chapter7;
+&chapter8;
+&chapter9;
+
+</part>
diff --git a/book/part3.sgml b/book/part3.sgml
new file mode 100644
index 000000000..c9e4a3f4b
--- /dev/null
+++ b/book/part3.sgml
@@ -0,0 +1,9 @@
+<part id="part3">
+<title>Part III - Appendixes</title>
+
+&appendixa;
+&appendixb;
+&appendixc;
+
+</part>
+
diff --git a/bookinfo/abstract.sgml b/bookinfo/abstract.sgml
new file mode 100644
index 000000000..6d3c43dd0
--- /dev/null
+++ b/bookinfo/abstract.sgml
@@ -0,0 +1,10 @@
+<abstract>
+
+<para>
+This book describes the process of creating your own Linux system
+from scratch from an already installed Linux distribution, using nothing but
+the sources of software that are needed.
+</para>
+
+</abstract>
+
diff --git a/bookinfo/authorgroup.sgml b/bookinfo/authorgroup.sgml
new file mode 100644
index 000000000..3bdc9f028
--- /dev/null
+++ b/bookinfo/authorgroup.sgml
@@ -0,0 +1,8 @@
+<authorgroup>
+
+<author>
+ <firstname>Gerard</firstname><surname>Beekmans</surname>
+</author>
+
+</authorgroup>
+
diff --git a/bookinfo/bookinfo.sgml b/bookinfo/bookinfo.sgml
new file mode 100644
index 000000000..863122d07
--- /dev/null
+++ b/bookinfo/bookinfo.sgml
@@ -0,0 +1,9 @@
+<bookinfo>
+<title>Linux From Scratch</title>
+
+&bi-authorgroup;
+&bi-copyright;
+&bi-legalnotice;
+&bi-abstract;
+
+</bookinfo>
diff --git a/bookinfo/copyright.sgml b/bookinfo/copyright.sgml
new file mode 100644
index 000000000..d0bb15c69
--- /dev/null
+++ b/bookinfo/copyright.sgml
@@ -0,0 +1,9 @@
+<copyright id="copyright">
+
+ <year>1999</year>
+ <year>2000</year>
+ <year>2001</year>
+ <holder>Gerard Beekmans</holder>
+
+</copyright>
+
diff --git a/bookinfo/legalnotice.sgml b/bookinfo/legalnotice.sgml
new file mode 100644
index 000000000..4d708abf6
--- /dev/null
+++ b/bookinfo/legalnotice.sgml
@@ -0,0 +1,53 @@
+<legalnotice>
+
+<para>
+Copyright (c) 1999-2001, Gerard Beekmans
+</para>
+
+<para>
+All rights reserved.
+</para>
+
+<para>
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+</para>
+
+<itemizedlist>
+
+<listitem><para>
+Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+</para></listitem>
+
+<listitem><para>
+Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+</para></listitem>
+
+<listitem><para>
+Neither the name of LinuxFromScratch nor the names of its contributors
+may be used to endorse or promote products derived from this software
+without specific prior written permission.
+</para></listitem>
+
+</itemizedlist>
+
+<para>
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
+IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR
+CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+</para>
+
+</legalnotice>
+
diff --git a/chapter01/acknowledgements.sgml b/chapter01/acknowledgements.sgml
new file mode 100644
index 000000000..1055d57e8
--- /dev/null
+++ b/chapter01/acknowledgements.sgml
@@ -0,0 +1,84 @@
+<sect1 id="ch01-acknowledgements">
+<title>Acknowledgements</title>
+
+<para>
+I would like to thank the following people and organizations for their
+contributions towards the LinuxFromScratch project:
+</para>
+
+<itemizedlist>
+
+<listitem><para>
+<ulink url="mailto:bdumm@boddy.bcpub.com">Bryan Dumm</ulink> for providing
+the hardware to run linuxfromscratch.org and for providing
+<ulink url="http://www.bcpub.com">http://www.bcpub.com</ulink> as the
+lfs.bcpub.com mirror
+</para></listitem>
+
+<listitem><para>
+<ulink url="http://www.dreamwvr.com/services">DREAMWVR.COM</ulink> for
+their ongoing sponsorhip by donating various resources to the LFS and
+related sub projects.
+</para></listitem>
+
+<listitem><para>
+<ulink url="mailto:jan.niemann@tu-bs.de">Jan Niemann</ulink> for providing
+<ulink url="http://helga.lk.etc.tu-bs.de">
+http://helga.lk.etc.tu-bs.de</ulink> as the 134.169.139.209 mirror
+</para></listitem>
+
+<listitem><para>
+<ulink url="mailto:johanlenglet@linuxfromscratch.org">Johan Lenglet</ulink> for
+running the French translation project at <ulink
+url="http://www.fr.linuxfromscratch.org">
+http://www.fr.linuxfromscratch.org</ulink>
+</para></listitem>
+
+<listitem><para>
+<ulink url="mailto:mpeters@mac.com">Michael Peters</ulink> for
+contributing the Apple PowerPC modifications
+</para></listitem>
+
+<listitem><para>
+<ulink url="http://www.valinux.com">VA Linux Systems</ulink> who, on
+behalf of <ulink url="http://www.linux.com">Linux.com</ulink>, donated a
+VA Linux 420 (formerly StartX SP2) workstation towards this project
+</para></listitem>
+
+<listitem><para>
+<ulink url="mailto:highos@highos.com">Jesse Tie Ten Quee</ulink> who
+donated a Yamaha CDRW 8824E CD-RW.
+</para></listitem>
+
+<listitem><para>
+<ulink url="mailto:highos@highos.com">Jesse Tie Ten Quee</ulink> for
+providing quasar.highos.com as the www.ca.linuxfromscratch.org
+mirror.
+</para></listitem>
+
+<listitem><para>
+<ulink url="http://www.oreilly.com">O'Reilly</ulink> for donating books
+on SQL and PHP.
+</para></listitem>
+
+<listitem><para>
+Robert Briggs for donating the linuxfromscratch.org and
+linuxfromscratch.com domain names.
+</para></listitem>
+
+<listitem><para>
+<ulink url="mailto:westermann@linux-provider.net">Torsten
+Westermann</ulink> for running the lfs.linux-provider.net http and ftp
+mirror sites.
+</para></listitem>
+
+<listitem><para>
+Countless other people from the various LFS mailinglists who are making
+this book happen by making suggestions, testing and submitting bug
+reports.
+</para></listitem>
+
+</itemizedlist>
+
+</sect1>
+
diff --git a/chapter01/alfsdiscuss.sgml b/chapter01/alfsdiscuss.sgml
new file mode 100644
index 000000000..4994c945f
--- /dev/null
+++ b/chapter01/alfsdiscuss.sgml
@@ -0,0 +1,13 @@
+<sect2>
+<title>alfs-discuss</title>
+
+<para>
+The alfs-discuss list discusses the development of ALFS which stands for
+Automated LinuxFromScratch. The goal of this project is to develop an
+installation tool that can install an LFS system automatically for you.
+It's main goal is to speed up compilation by taking away your need to
+manually enter the commands to configure, compile and install packages.
+</para>
+
+</sect2>
+
diff --git a/chapter01/alfsdocs.sgml b/chapter01/alfsdocs.sgml
new file mode 100644
index 000000000..8128ac309
--- /dev/null
+++ b/chapter01/alfsdocs.sgml
@@ -0,0 +1,10 @@
+<sect2>
+<title>alfs-docs</title>
+
+<para>
+ALFS-docs is the ALFS documentation project which creates and maintains
+all of the ALFS documentation.
+</para>
+
+</sect2>
+
diff --git a/chapter01/alfsipc.sgml b/chapter01/alfsipc.sgml
new file mode 100644
index 000000000..493163830
--- /dev/null
+++ b/chapter01/alfsipc.sgml
@@ -0,0 +1,9 @@
+<sect2>
+<title>alfs-ipc</title>
+
+<para>
+The alfs-ipc list discusses the ALFS InterProcess Communication issues.
+</para>
+
+</sect2>
+
diff --git a/chapter01/alfsprofile.sgml b/chapter01/alfsprofile.sgml
new file mode 100644
index 000000000..96efae918
--- /dev/null
+++ b/chapter01/alfsprofile.sgml
@@ -0,0 +1,10 @@
+<sect2>
+<title>alfs-profile</title>
+
+<para>
+The alfs-profile list discusses the development of the ALFS XML profile
+and DTD.
+</para>
+
+</sect2>
+
diff --git a/chapter01/changelog.sgml b/chapter01/changelog.sgml
new file mode 100644
index 000000000..08cbec8a9
--- /dev/null
+++ b/chapter01/changelog.sgml
@@ -0,0 +1,1041 @@
+<sect1 id="ch01-changelog">
+<title>Changelog</title>
+
+<para>
+If, for example, a change is listed for chapter 5 it (usually) means the
+same change has been made in the chapters for the other architectures.
+</para>
+
+<para>
+&version; - &releasedate;
+</para>
+
+<itemizedlist>
+
+<listitem><para>
+Chapter 1: Added the lfs-security list to the list of available
+mailinglists.
+</para></listitem>
+
+<listitem><para>
+Chapter 1: Updated the mirror sites list.
+</para></listitem>
+
+<listitem><para>
+Chapter 5: Bash still had the --with-ncurses option which is a bogus
+option (it may as well have said --with-foo-bar). It has been changed
+into --with-curses (like it was already done in chapter 6)
+</para></listitem>
+
+<listitem><para>
+Chapter 5: Instead of CPPFLAGS=-Dvar=value ./configure during the
+installation of diffutils, grep and sed, we now use export
+CPPFLAGS=-Dvar=value && ./configure && unset CPPFLAGS. This was done to
+get things working on some systems that don't work well with that
+construction.
+</para></listitem>
+
+<listitem><para>
+Chapter 5 + 6: Added the --libexecdir parameter to fileutile's configure
+command. This was done to avoid the creation of the $LFS/usr/libexec directory.
+</para></listitem>
+
+<listitem><para>
+Chapter 5 + 6: Added the --libexecdir parameter to tar's configure command. This
+was done to avoid the creation of the $LFS/usr/libexec directory.
+</para></listitem>
+
+<listitem><para>
+Chapter 6: Moved the installation of the man-pages packages as the very
+first package. This way we don't have to worry about files being
+overwritten by this package's make install. It will install all the man
+pages it has and as we install packages in chapter 6 those packages will
+install their own man pages replacing the files from man-pages.
+</para></listitem>
+
+<listitem><para>
+Chapter 6: Added the copying of the man pages after console-tools has
+been installed.
+</para></listitem>
+
+<listitem><para>
+Chapter 6: Provided a patch to sysvinit. Read the installation notes
+what the patch is for.
+</para></listitem>
+
+<listitem><para>
+Chapter 6: Removed compiler optimization from the book. Thomas "Balu"
+Walter has transformed it into an LFS-Hint.
+</para></listitem>
+
+<listitem><para>
+Chapter 6: Removed running of localedef. This apparently isn't needed.
+</para></listitem>
+
+<listitem><para>
+Chapter 6: Added the compress and uncompress symlinks to the
+installation of gzip.
+</para></listitem>
+
+<listitem><para>
+Chapter 6: When entering chroot environment use absolute paths to the
+env and bash programs instead of relying on $PATH to be set properly.
+</para></listitem>
+
+<listitem><para>
+Chapter 6: Override libexecdir's variable during the installation of
+findutils. As findutils' configure script doesn't recognize the
+libexecdir parameter, we'll override the variable during the make
+install phase.
+</para></listitem>
+
+<listitem><para>
+Chapter 6: Instead of sed'ing the Makefile file during the installations
+of procinfo, procps and psmisc, we pipe the output of sed to make and
+build the packages that way. This is more effecient.
+</para></listitem>
+
+<listitem><para>
+Chapter 6: Use sed to modify the MCONFIG file.
+</para></listitem>
+
+<listitem><para>
+Chapter 6: Instead of using cp -avi to copy the files from the man-pages
+package, we use cp -dRiv now. This is almost the same as -avi, it just
+won't preserve the file attributes. The files from the packages would
+otherwise be installed not owned by user root but with userid 1000 which
+wasn't a good thing.
+</para></listitem>
+
+<listitem><para>
+Chapter 6: Mentioned the LFS-Hints' editor's section containing
+alternatives to vim in case you don't want vim installed on your system.
+</para></listitem>
+
+<listitem><para>
+Chapter 6: Added the sysklogd-1.4 patch. Sysklogd out of the box comes
+with a broken klogd - it's not able to intercept kernel messages. This
+patch fixes this.
+</para></listitem>
+
+<listitem><para>
+Chapter 6: Instead of having two seperate fallthrough lines in the
+inittab file (f1:0:... and f2:6:....) these are merged into one line
+(ft:06:respawn:/sbin/sulogin).
+</para></listitem>
+
+<listitem><para>
+Chapter 7: Added comments to the boot scripts.
+</para></listitem>
+
+<listitem><para>
+Chapter 7: Modified the startup function in the rc script. No need to
+distinguish between files that have an .sh extension or not. Also
+removed the stty onlcr command. This one doesn't seem to be needed
+anymore either.
+</para></listitem>
+
+<listitem><para>
+Chapter 7: When something is killed using the killproc function in the
+functions script, sleep for 2 seconds before continuing to allow the
+kill to be completed (sometimes it takes a little while before all
+processes are terminated).
+</para></listitem>
+
+<listitem><para>
+Chapter 7: When the print_status function in the functions script is
+called without a parameter don't abort the entire calling script, just
+return an error value of 1. This function is non-essential so it won't
+really affect anything when it doesn't run properly.
+</para></listitem>
+
+<listitem><para>
+Chapter 7: Merged the umountfs script with the mountfs script.
+</para></listitem>
+
+<listitem><para>
+Chapter 7: Fixed minor bug in the statusproc function in the functions
+script. It read "$i is not running" - should be "$1 is not running".
+</para></listitem>
+
+<listitem><para>
+Chapter 7: The print_error_msg function in the rc script now asks the
+user to press a key before continueing. This way the user is able to
+write down certain information before it's potentially all lost.
+</para></listitem>
+
+<listitem><para>
+Chapter 7 + 9: Moved the boot script symlinks from including two digits
+to three digits. This makes it easier to add scripts before and after
+other scripts.
+</para></listitem>
+
+<listitem><para>
+Chapter 9: Split up the network boot scripts page over multiple pages
+like the way the boot scripts are arranged in chapter 7.
+</para></listitem>
+
+<listitem><para>
+Chapter 9: Added a GATEWAY check to the ethnet script. If the GATEWAY
+variable is set, the default gateway will be setup.
+</para></listitem>
+
+<listitem><para>
+Chapter 9: Added the restart option to the localnet and ethnet scripts.
+</para></listitem>
+
+<listitem><para>
+Chapter 9: Removed the ethnet K script when rebooting or halting. The
+halt and reboot programs are called with the -i parameter which shut
+down all network interfaces just before halt or reboot.
+</para></listitem>
+
+<listitem><para>
+Chapter 9: Removed --prefix=/usr from netkit-base. It doesn't do
+anything useful.
+</para></listitem>
+
+<listitem><para>
+Appendix A: Added a description for blockdev from the util-linux
+package.
+</para></listitem>
+
+<listitem><para>
+Appendix C: Updated the util-linux official download site link.
+</para></listitem>
+
+<listitem><para>
+Appendix C: Updated the man-pages official download site link.
+</para></listitem>
+
+</itemizedlist>
+
+<para>
+2.4.3 - November 21st, 2000
+</para>
+
+<itemizedlist>
+
+<listitem><para>
+The LFS FTP archive has been moved to a new server which is reachable
+under the name packages.linuxfromscratch.org. The reason for the move is
+that this new server sits on a link with a lot more bandwidth to spare.
+</para></listitem>
+
+<listitem><para>
+Instead of having the reader create files by running vim or some editor,
+the reader can now simply copy and paste a command that creates the file
+in the form of <quote>cat &gt; outputfile &lt;&lt; EOF</quote> followed
+by the text to put in the file and when a single line containing EOF is
+read by cat, it stops reading and writes the file (not including the
+EOF). This will be handy to put in scripts so you can make LFS
+installations fully automatic.
+</para></listitem>
+
+<listitem><para>
+Added explanations on the commands being executed to make it clearer why
+and what is being done to install the packages.
+</para></listitem>
+
+<listitem><para>
+Chapter 1: Updated the HTTP mirror list and added the FTP mirror list.
+This list is up-to-date as of November 14th, 2000.
+</para></listitem>
+
+<listitem><para>
+Chapter 5: In the Bash installation changed the --with-curses configure
+option to --with-ncurses. This seems to fix bash compilations on
+distribution that don't have ncurses properly installed.
+</para></listitem>
+
+<listitem><para>
+Chapter 5: Instead of having the user replace &lt;host&gt; in the gcc
+installation by whatever appears in $LFS/usr/lib/gcc-lib you can use a
+*. This won't be a problem because the * will expand in only one
+directory so the 'ln' command won't complain about it. This makes it
+easier to automate as well.
+</para></listitem>
+
+<listitem><para>
+Chapter 6: Mentioned the -e parameter to perl's Configure script that
+makes the script not ask you anything after it has created the config.sh
+script.
+</para></listitem>
+
+<listitem><para>
+Chapter 6: Removed the creation of the /usr/bin/install symlink - this
+symlink was already created earier in chapter 5
+</para></listitem>
+
+<listitem><para>
+Chapter 6: Added the creation of /var/log/lastlog where utmp, btmp and
+wtmp are created.
+</para></listitem>
+
+<listitem><para>
+Chapter 6: When the yacc script is created in the Bison section, execute
+a chmod 755 on it so we can execute the script.
+</para></listitem>
+
+<listitem><para>
+Chapter 6: Cosmetic change to the inittab file. Instead of using
+/dev/tty[1-6] as parameters to agetty we now use just 'dev[1-6]'. This
+generates a nicer output from commands like 'w'.
+</para></listitem>
+
+<listitem><para>
+Chapter 7: Modified all scripts to use absolute paths instead of relying
+on $PATH to be set.
+</para></listitem>
+
+<listitem><para>
+Chapter 7: In fstab changed <quote>none /proc proc defaults 0 0</quote>
+to <quote>proc /proc proc defaults 0 0</quote>. Upon mount problems you
+could get "none: device or resource busy" instead of "proc: device or
+resourced busy".
+</para></listitem>
+
+<listitem><para>
+Appendix C: Fixed a couple of broken links.
+</para></listitem>
+
+</itemizedlist>
+
+<para>
+2.4.2 - October 11th, 2000
+</para>
+
+<itemizedlist>
+
+<listitem><para>
+Chapter 3: Newer verions were mentioned, but the links were still
+pointing to the older versions. Besides that I forgot to put the newer
+package versions in the ftp archive. Both have been fixed now.
+</para></listitem>
+
+<listitem><para>
+Chapter 5: Instead of looking at the filename of the C library files to
+determine which C library your starting Linux system uses we'll obtain
+it by running <quote>strings /lib/libc* | grep "release version"</quote>
+instead.
+</para></listitem>
+
+<listitem><para>
+Chapter 5+6: The proc file system must be mounted in chapter 5 before we
+enter the chroot'ed environment since after chroot the mount program
+will not be available yet.
+</para></listitem>
+
+<listitem><para>
+Chapter 6: Fixed a HTML bug in the GCC installation which caused a CR
+character to appear in certain browser.
+</para></listitem>
+
+</itemizedlist>
+
+<para>
+2.4.1 - October 10th, 2000
+</para>
+
+<itemizedlist>
+
+<listitem><para>
+Removed the bash prompts from the commands. This will make it much
+easier to copy &amp; paste the commands from the book onto the command
+line. Typing them all out is great for the first few times, but it tends
+to get tedious after a while. You can of course use scripts to do this
+all, but that's not the goal of this book. That's part of a different
+project (alfs.linuxfromscratch.org).
+</para></listitem>
+
+<listitem><para>
+Swapped chapters 8 and 9. Now we first reboot and then setup networking.
+If done the other way around, networking programs won't work unless both
+the normal system and the LFS system are going to run the same kernel
+version, which often is not the case. Swapping the chapters eliminates
+that possible problem.
+</para></listitem>
+
+<listitem><para>
+Chapter 3: All packages have been moved to download.linuxfromscratch.org and
+the links are updated accordingly. The official download sites for all
+the packages are listed in Appendix C.
+</para></listitem>
+
+<listitem><para>
+Chapter 5+6: Moved the execution of localedef after Glibc in chapter 5
+to after you entered chroot in chapter 6. It was a mistake (the only
+real bug in 2.4) to put it in chapter 5.
+</para></listitem>
+
+<listitem><para>
+Chapter 6: Installing Vim as the first program. In case you need to edit
+something you an editor available right away. This also caused a couple
+of other packages to be moved to satisfy depencies.
+</para></listitem>
+
+<listitem><para>
+Chapter 6: When we use sed to modify a Makefile file we now run make as
+<quote>make -f Makefile2</quote> instead of <quote>mv Makefile2 Makefile
+&amp;&amp; make</quote>.
+</para></listitem>
+
+<listitem><para>
+Chapter 6: Added the <quote>publickey: files</quote> line to the
+nsswitch.conf file. This is needed when you run a 2.4 kernel to login
+properly.
+</para></listitem>
+
+<listitem><para>
+Chapter 6: Added the /usr/bin/yacc script that runs bison with the -y
+switch to emulate yacc's output file name conventions. This is done
+because there are a few packages out there that rely on yacc and can't
+work with bison (yet).
+</para></listitem>
+
+<listitem><para>
+Chapter 6: Modified the /usr/sbin/makewhatis script after the
+installation of the man package. The /usr/sbin/makewhatis script needs
+the AWK= variable defined to /usr/bin/mawk.
+</para></listitem>
+
+<listitem><para>
+Chapter 7: Added the template script. This way you can easily add new
+bootscripts without having to write them from scratch.
+</para></listitem>
+
+</itemizedlist>
+
+<para>
+2.4 - August 28th, 2000
+</para>
+
+<itemizedlist>
+
+<listitem><para>
+Split the book up into two differnet books for Intel and PPC.
+</para></listitem>
+
+<listitem><para>
+Chapter 4: Added the mail and dev/pts directories to the
+<quote>Creating directories</quote> section.
+</para></listitem>
+
+<listitem><para>
+Chapter 5: Everything from chroot and after has been put in a new
+chapter.
+</para></listitem>
+
+<listitem><para>
+Chapter 6: Moved the optimization part to the point just before you
+enter the chroot'ed environment. It's a waste to use compiler
+optimizations for the static packages since they will be replaced
+anyways.
+</para></listitem>
+
+<listitem><para>
+Chapter 6: To enter chroot we first cd to the $LFS/root directory. Some
+older chroot programs have problems when you enter chroot when your
+starting directory isn't inside the chroot environment. Also we don't
+execute bash directly in the chroot'ed environment, but we start the
+<quote>env</quote> program so we can enter with a clean environment that
+only has CFLAGS and CXXFLAGS set.
+</para></listitem>
+
+<listitem><para>
+Chapter 6: A few people have had problems compiling M4 in the chroot'ed
+enviroment. Instructions are provided how to install this package
+statically for the affected users.
+</para></listitem>
+
+<listitem><para>
+Chapter 6: We can't move the 'mv' program during the dynamic
+installation of the fileutils package with the mv program. So we copy
+it to /bin first, then remove the /usr/bin/mv one.
+</para></listitem>
+
+<listitem><para>
+Chapter 5: Added 'make localedata/install-locales' to the Glibc
+installation. This installs the locale files that various applications
+use (most notable GDK applications) if you have an NLS capable system
+(which LFS is, but with missing locales it's almost useless)
+</para></listitem>
+
+<listitem><para>
+Chapter 6: Moved vim's installation before Lilo since you might want to
+edit Lilo's Makefile file to add compiler optimization.
+</para></listitem>
+
+<listitem><para>
+Chapter 6: Moved the installatin of shadow password suit after sh-utils.
+Else sh-utils replaces the <quote>su</quote> version from shadow
+password with it's own version which shouldn't happen.
+</para></listitem>
+
+<listitem><para>
+Chapter 6: Changed the way we enter the chroot'ed environment. We use
+the <quote>env</quote> to create an empty enviroment so that enviroment
+variables from the normal Linux system won't interfer in the chroot
+enviroment. The only variable set when entering the chroot'ed
+environment is the HOME variable.
+</para></listitem>
+
+<listitem><para>
+Chapter 6: Because of the new way we enter chroot, the
+$LFS/root/.bash_profile file has been created that sets a few variables
+like TERM, CFLAGS, CXXFLAGS and whatever you deem necesarry.
+</para></listitem>
+
+</itemizedlist>
+
+<para>
+2.3.7 - August 3rd, 2000
+</para>
+
+<itemizedlist>
+
+<listitem><para>
+All chapters: Removed the &lt;blockquote&gt; SGML tags so that the contents of
+files isn't indented anymore. This improves the easy of copy and pasting
+from the book into your files without needing to manually reformat the
+files to get rid of the indentations.
+</para></listitem>
+
+<listitem><para>
+Chapter 4: Added var/tmp to the <quote>chmod 1777 tmp usr/tmp</quote>
+command.
+</para></listitem>
+
+<listitem><para>
+Chapter 4: Made mkdir commands less repetitive by putting the creation
+of the directories in $LFS/usr and $LFS/usr/local in a for-loop.
+</para></listitem>
+
+<listitem><para>
+Chapter 5: Moved the chmod 754 command for MAKEDEV after the sed
+operation.
+</para></listitem>
+
+<listitem><para>
+Chapter 5: Changed the order in which packages are installed to conform
+more to a alphabetically ordering.
+</para></listitem>
+
+<listitem><para>
+Chapter 5: After console-tools has been installed the
+/usr/share/defkeymap.kmap.gz file is created which will be used by the
+loadkeys script.
+</para></listitem>
+
+<listitem><para>
+Chapter 5: Removed <quote>gcc -c watch.c</quote> from <quote>Installing
+Procps</quote>. Please let us know if this is still needed on certain
+hardware.
+</para></listitem>
+
+<listitem><para>
+Chapter 5: Added the /usr/bin/install symbolic link as it seems that at
+least one package (sysklogd) has the install location hard coded in it's
+Makefile file.
+</para></listitem>
+
+<listitem><para>
+Chapter 5: After gettext has been installed, we have a file /po-mode.el.
+This file will be moved to /usr/share/gettext where it probably belongs.
+</para></listitem>
+
+<listitem><para>
+Chapter 5: Instead of passing --with-root-prefix=/ to e2fsprogs'
+configure script, we now pass --with-root-prefix=
+</para></listitem>
+
+<listitem><para>
+Chapter 5: When gzip is installed and the files moved to /bin the hard
+link between the files is removed. So we just move gzip to /bin and create
+a symlink between gzip and gunzip.
+</para></listitem>
+
+<listitem><para>
+Chapter 5: In the chroot environment: changed the installation order of
+a few packages who's dependencies have changed over time.
+</para></listitem>
+
+<listitem><para>
+Chapter 5: inittab file has been slightly updated to better support the
+single user run level. When you change to run level S, s or 1 it will do
+it's job properly now.
+</para></listitem>
+
+<listitem><para>
+Chapter 6: Fixed typo in the rc script (! -f sysinit_start -&gt; ! -f
+$sysinit_start).
+</para></listitem>
+
+<listitem><para>
+Chapter 6: Changed the loadkeys command in the loadkeys script. New
+command is: loadkeys -d which loads the
+/usr/share/keymaps/defkeymap.kmap.gz file.
+</para></listitem>
+
+<listitem><para>
+Chapter 6: Changed <quote>. /etc/init.d/functions</quote> into
+<quote>source /etc/init.d/functions</quote>.
+</para></listitem>
+
+<listitem><para>
+Chapter 6: Removed the <quote>rm /fastboot</quote> command from the
+checkfs script.
+</para></listitem>
+
+</itemizedlist>
+
+<para>
+2.3.6 - July 19th, 2000
+</para>
+
+<itemizedlist>
+
+<listitem><para>
+Chapter 3: Re-ordered the software download list so it once again matches
+the order in which packages are used (the first package listed in the
+list is the first package that we will be using in the book, the second
+listed package will be the second package used in the book, etc).
+</para></listitem>
+
+<listitem><para>
+Chapter 3: Added the file sizes of the packages you have to download.
+</para></listitem>
+
+<listitem><para>
+Chapter 3: Removed the start-stop-daemon package.
+</para></listitem>
+
+<listitem><para>
+Chapter 3: Added the findutils and glibc patches to the package list.
+</para></listitem>
+
+<listitem><para>
+Chapter 3: Added the man-pages package to the package list.
+</para></listitem>
+
+<listitem><para>
+Chapter 4: Moved the creation of the $LFS/dev/ files to chapter 5 after
+we have entered the chroot environment. This is done because GID's on
+normal system and LFS system might differ and the MAKEDEV script depends
+on the GID's.
+</para></listitem>
+
+<listitem><para>
+Chapter 5: Added the installation of the man-pages package.
+</para></listitem>
+
+<listitem><para>
+Chapter 5: Added a few commonly used groups to the /etc/group file when
+it is created (these are the groups needed by the MAKEDEV script).
+</para></listitem>
+
+<listitem><para>
+Chapter 5: The /proc/devices file is copied to $LFS/proc for the benefit
+of the MAKEDEV script. The presence of this file ensures the proper
+creation of the device files.
+</para></listitem>
+
+<listitem><para>
+Chapter 5: Layout changes. Every package installation has it's own page
+now. Also the text from appendixa for every package is included with the
+installation instructions so you can read what a package is about during
+(or after or before) the installation of it.
+</para></listitem>
+
+<listitem><para>
+Chapter 5: Removed the patches for diffutils, grep, gzip and sed that
+used to fix static link problems. The problems can be fixed by
+passing compile arguments to the C pre-processor (cpp) instead.
+</para></listitem>
+
+<listitem><para>
+Chapter 5: Added the --disable-termcap option to configure to disable
+termcap backward compatibility (if you want to know why termcap isn't used
+anymore, please read the INSTALL file that comes with the Ncurses
+package).
+</para></listitem>
+
+<listitem><para>
+Chapter 5: Added a few missing files from the fileutils package to the
+<quote>mv</quote> commands.
+</para></listitem>
+
+<listitem><para>
+Chapter 5: Removed the installation of the start-stop-daemon package.
+</para></listitem>
+
+<listitem><para>
+Chapter 5: Removed the -e parameters from the make command lines.
+</para></listitem>
+
+<listitem><para>
+Chapter 5: Instead of editing the procinfo, procps and psmisc Makefile
+files with a text editor, the sed command it used.
+</para></listitem>
+
+<listitem><para>
+Chapter 6: Added the setclock script in case your hardware clock isn't
+set to GMT.
+</para></listitem>
+
+<listitem><para>
+Chapter 6: Removed the use of the start-stop-daemon program and replaced
+them with custom functions that use programs like pidof and kill to
+accomplish the same tasks but with more control over what happens.
+</para></listitem>
+
+<listitem><para>
+Chapter 6: Added the loadproc and killproc functions to the
+/etc/init.d/functions file that take over the functions
+the start-stop-daemon program used to perform.
+</para></listitem>
+
+<listitem><para>
+Chapter 6: When the checkfs script runs without errors it now prints a
+green OK.
+</para></listitem>
+
+<listitem><para>
+Chapter 6: When /fastboot or /forcefsck exist, they won't be deleted
+from within the checkfs script but from within the mountfs script as
+soon as the root partition has been remounted in read-write mode.
+</para></listitem>
+
+<listitem><para>
+Chapter 6 & 7: Instead of sourcing a file with <quote>.
+/etc/init.d/functions</quote>, <quote>source /etc/init.d/functions</quote>
+is now used. This makes it easier to read and is clearer for persons who
+don't know much about scripting.
+</para></listitem>
+
+<listitem><para>
+Appendix A: removed start-stop-daemon.
+</para></listitem>
+
+<listitem><para>
+Appendix B: Removed a few unrelated items from the book and howto
+sections (the references to Sendmail and ISP-Hookup-HOWTO).
+</para></listitem>
+
+</itemizedlist>
+
+<para>
+2.3.5 - June 19th, 2000
+</para>
+
+<itemizedlist>
+
+<listitem><para>
+Chapter 3: Updated LILO download location
+</para></listitem>
+
+<listitem><para>
+Chapter 3: Updated Shadow Password Suite download location
+</para></listitem>
+
+<listitem><para>
+Chapter 3: Updated the Flex download location
+</para></listitem>
+
+<listitem><para>
+Chapter 3: Updated the File download location
+</para></listitem>
+
+<listitem><para>
+Chapter 3: Added netkit-base and net-tools to the mandatory packages
+section
+</para></listitem>
+
+<listitem><para>
+Chapter 5: A glibc-2.1.3 patch is available if you have problems
+compiling glibc on a bash-2.04 machine.
+</para></listitem>
+
+<listitem><para>
+Chapter 5: Added compiler optimization
+</para></listitem>
+
+<listitem><para>
+Chapter 5: Added the creation of the root password to
+<quote>Configuring essential software</quote>
+</para></listitem>
+
+<listitem><para>
+Chapter 5: The Linux86 package has been replaced by the Bin86
+package.
+</para></listitem>
+
+<listitem><para>
+Chapter 5: Included information on how to optimize compilations.
+</para></listitem>
+
+<listitem><para>
+Chapter 5: Moved installation of Groff and Man before Perl. This
+way Perl known how to install man pages and where to install them.
+</para></listitem>
+
+<listitem><para>
+Chapter 5: Changed GCC's local-prefix option to /usr/local instead
+of /usr (this was still a residue from the time where /usr/local was a
+symbolic link to /usr)
+</para></listitem>
+
+<listitem><para>
+Chaper 5: Fixed the commands when a patch is used and the patch
+filename contained the .gz suffix.
+</para></listitem>
+
+<listitem><para>
+Chapter 5: Added --disable-nls to every configure command in the
+<quote>Perparing the LFS system...</quote> section which didn't have it yet.
+</para></listitem>
+
+<listitem><para>
+Chapter 5: Added the installation of bash-2.03 so you have a shell
+that can be used to compile packages that violate POSIX standards
+regarding valid characters in variable names
+</para></listitem>
+
+<listitem><para>
+Chapter 5: Added the installation of console-tools and console-data
+for people who have non-US keyboards
+</para></listitem>
+
+<listitem><para>
+Chapter 5: Moved the ed program to the /bin directory conforming
+the FHS standard
+</para></listitem>
+
+<listitem><para>
+Chapter 6 & 7: Implemented LSB recommended run level scheme.
+</para></listitem>
+
+<listitem><para>
+Chapter 6 & 7: Implemented <quote>fancy bootscripts</quote>. When
+something fails in a bootscript it still says FAILED but the text red.
+When something succeeded it still will print OK but the text is green.
+</para></listitem>
+
+<listitem><para>
+Chater 6: Added the loadkeys scripts for people with non-US
+keyboards
+</para></listitem>
+
+<listitem><para>
+Chapter 6: Added the /etc/sysconfig directory to "Creating directories"
+</para></listitem>
+
+<listitem><para>
+Chapter 6: Renamed the checkroot boot script into checkfs. The
+script also checks other file systems now.
+</para></listitem>
+
+<listitem><para>
+Chapter 6: Updated the mountfs boot script to mount all file
+systems that are mentioned in the /etc/fstab file and don't have the
+noauto option set.
+</para></listitem>
+
+<listitem><para>
+Chapter 6: After checkfs evaluated the existence of /fastboot or
+/forcecheck it will remove those files.
+</para></listitem>
+
+<listitem><para>
+Chapter 6 & 7: Changed the mode of the boot scripts from 755 to
+754
+</para></listitem>
+
+<listitem><para>
+Chapter 7: Moved system specific information for hostname and ethernet
+configuration to the /etc/sysconfig/network file
+</para></listitem>
+
+<listitem><para>
+Chapter 7: Removed the default gateway command
+</para></listitem>
+
+<listitem><para>
+Chapter 7: Fixed the typo in the ethnet script (NETMAKSK ->
+NETMASK)
+</para></listitem>
+
+<listitem><para>
+Chapter 7: A net-tools patch is available to fix a minor bug in the
+package (illegal variable names that bash-2.04 will complain about)
+</para></listitem>
+
+</itemizedlist>
+
+<para>
+2.3.4 - June 5th, 2000
+</para>
+
+<itemizedlist>
+
+<listitem><para>
+Chapter 5: Fixed the kernel header files configuration
+</para></listitem>
+
+<listitem><para>
+Chapter 5: Fixed the lilo configuration
+</para></listitem>
+
+</itemizedlist>
+
+<para>
+2.3.3 - May 15th, 2000
+</para>
+
+<itemizedlist>
+
+<listitem><para>
+Changed the default mount point from /mnt/xxx to /mnt/lfs (where xxx used
+to be the partition's designation like hda5, sda5 and others). The
+reason for the change is to make cross-platform instructions easier.
+</para></listitem>
+
+<listitem><para>
+Chapter 4: Changed the default modes for the $LFS/root and $LFS/tmp
+directory to respectively 0750 and 1777.
+</para></listitem>
+
+<listitem><para>
+Chapter 5: Removed the encoded password from the passwd file. Instead a
+file with no set password is created. The root password can be set by
+the user when the system is rebooted into the LFS system (after chapter
+8).
+</para></listitem>
+
+<listitem><para>
+Chapter 5: Fixed the procps compile command for watch.c. It should
+compile properly now.
+</para></listitem>
+
+<listitem><para>
+Chapter 5: Fixed gzip patch installation (used the wrong filename in the
+patch command
+</para></listitem>
+
+<listitem><para>
+Chapter 5: Changed 'entering the chroot'ed environment' to make bash a
+login shell.
+</para></listitem>
+
+<listitem><para>
+Chapter 5: Configuring the kernel has been moved to this chapter because
+it needs to be done before programs like e2fsprogs and lilo are
+compiled.
+</para></listitem>
+
+<listitem><para>
+Chapter 6: Fixed the rc script. It now checks to see if the previous
+run level starts a service before attempting to stop it in the new
+run level. Also, if a service is already started in the previous run
+level it won't attempt to start the service in the new run level again.
+Thanks to Jason Pearce for providing this fixed script.
+</para></listitem>
+
+<listitem><para>
+Chapter 7: Fixed the ethnet script - removed paratheses from the
+environment variables and removed the command to add a route. The
+ifconfig command used to bring the eth device up already sets this route.
+</para></listitem>
+
+</itemizedlist>
+
+<para>
+2.3.2 - April 18th, 2000
+</para>
+
+<itemizedlist>
+
+<listitem><para>
+Chapter 4.7: Change only the owner of the $LFS/dev/* files
+</para></listitem>
+
+<listitem><para>
+Fixed a large amount of typo's that occured during the transistion from
+the LinuxDoc DTD (2.2 and lower) to the DocBook DTD (2.3.1 and higher).
+</para></listitem>
+
+<listitem><para>
+Moved chapters around quite a bit and applied a new structure in the book.
+Installations for Intel, Apple PowerPC and future systems will be put in
+their own dedicated part of the book.
+</para></listitem>
+
+<listitem><para>
+After the system is prepared to install the basic system software, we no
+longer reboot the system but instead we setup a chroot'ed environment. This
+will have the same effect without having to reboot.
+</para></listitem>
+
+<listitem><para>
+Apple PowerPC has it's own dedicated chapters now. This should increase
+readability a lot
+</para></listitem>
+
+<listitem><para>
+All optional chapters have been removed. LFS follows a <quote>we provide
+the foundation, it's up to you to build the rest of the house</quote>
+philosophy.
+</para></listitem>
+
+<listitem><para>
+Replaced the fixed packages by patch files. This way you can see what needs
+to be changed in a package in order to get it to compile properly.
+</para></listitem>
+
+</itemizedlist>
+
+<para>
+2.3.1 - April 12th, 2000
+</para>
+
+<itemizedlist>
+
+<listitem><para>
+Chapter 4.4: Added the $LFS/usr/info symlink which points to
+$LFS/usr/share/info
+</para></listitem>
+
+<listitem><para>
+Chapter 7.3.1: Added a second variation to a 'swap-line' in a fstab file.
+</para></listitem>
+
+<listitem><para>
+Chapter 7.3.2: Removed $LFS from the commands.
+</para></listitem>
+
+<listitem><para>
+Chapter 7.4.43: Added the vi symlink
+</para></listitem>
+
+<listitem><para>
+Chapter 9.2.5: Improved ethnet script to include routing information
+</para></listitem>
+
+<listitem><para>
+Chapter 10.1.2: Fixed missing subdirectory 'mqueue' in mkdir /var/spool -&gt;
+/mkdir /var/spool/mqueue
+</para></listitem>
+
+<listitem><para>
+Chapter 10.1.4: Updated the sendmail configuration file with a few necessary
+options
+</para></listitem>
+
+<listitem><para>
+Chapter 10.1.7: Fixed wrong directory path /etc/init.d/rc2.d -&gt; /etc/rc2.d
+</para></listitem>
+
+</itemizedlist>
+
+</sect1>
+
diff --git a/chapter01/chapter1.sgml b/chapter01/chapter1.sgml
new file mode 100644
index 000000000..7541e6129
--- /dev/null
+++ b/chapter01/chapter1.sgml
@@ -0,0 +1,12 @@
+<chapter id="chapter01">
+<title>Introduction</title>
+
+&c1-introduction;
+&c1-how;
+&c1-versions;
+&c1-acknowledgements;
+&c1-changelog;
+&c1-mlarchive;
+&c1-contactinfo;
+
+</chapter>
diff --git a/chapter01/contactinfo.sgml b/chapter01/contactinfo.sgml
new file mode 100644
index 000000000..172eb2092
--- /dev/null
+++ b/chapter01/contactinfo.sgml
@@ -0,0 +1,17 @@
+<sect1 id="ch01-contactinfo">
+<title>Contact information</title>
+
+<para>
+Direct all your emails to the
+<ulink url="mailto:lfs-discuss@linuxfromscratch.org">lfs-discuss
+</ulink> mailinglist preferably.
+</para>
+
+<para>
+If you need to reach Gerard Beekmans personally, send an email to
+<ulink url="mailto:gerard@linuxfromscratch.org">
+gerard@linuxfromscratch.org</ulink>
+</para>
+
+</sect1>
+
diff --git a/chapter01/how.sgml b/chapter01/how.sgml
new file mode 100644
index 000000000..cd3ff1b1b
--- /dev/null
+++ b/chapter01/how.sgml
@@ -0,0 +1,24 @@
+<sect1 id="ch01-how">
+<title>How things are going to be done</title>
+
+<para>
+We are going to build the LFS system by using an already installed Linux
+distribution such as Debian, SuSe, Slackware, Mandrake, RedHat, etc. You
+don't need to have any kind of bootdisk. We will use an existing Linux
+system as the base (since we need a compiler, linker, text editor and other
+tools).
+</para>
+
+<para>
+If you don't have Linux installed yet, you won't be able to put this
+book to use right away. I suggest you first install a Linux
+distribution. It really doesn't matter which one you install. It also
+doesn't need to be the latest version, though it shouldn't be a too old one.
+If it is about a year old or newer it should do just fine. You will save
+yourself a lot of trouble if your normal system uses glibc-2.1 or newer.
+Libc5 isn't supported by this book, though it isn't impossible to use a
+libc5 system if you have no choice.
+</para>
+
+</sect1>
+
diff --git a/chapter01/introduction.sgml b/chapter01/introduction.sgml
new file mode 100644
index 000000000..94e5b1998
--- /dev/null
+++ b/chapter01/introduction.sgml
@@ -0,0 +1,26 @@
+<sect1 id="ch01-intro">
+<title>Introduction</title>
+
+<para>
+Having used a number of different Linux distributions, I was never fully
+satisfied with any of those. I didn't like the way the bootscripts were
+arranged, or I didn't like the way certain programs were configured by
+default and more of those things. I came to realize that when I want to
+be totally satisfied with a Linux system, I have to build my own Linux
+system from scratch, ideally only using the source code. Not using
+pre-compiled packages of any kind. No help from some sort of cdrom or
+bootdisk that would install some basic utilities. You would use your current
+Linux system and use that one to build your own.
+</para>
+
+<para>
+This, at one time, wild idea seemed very difficult and at times almost
+impossible. The reason for most problems were due to my lack of knowledge
+about certain programs and procedures. After sorting out all kinds of
+dependency problems, compilation problems, etcetera, a custom built Linux
+system was created and fully operational. I called this system an LFS
+system, which stands for LinuxFromScratch.
+</para>
+
+</sect1>
+
diff --git a/chapter01/lfsannounce.sgml b/chapter01/lfsannounce.sgml
new file mode 100644
index 000000000..c82c623a1
--- /dev/null
+++ b/chapter01/lfsannounce.sgml
@@ -0,0 +1,15 @@
+<sect2>
+<title>lfs-announce</title>
+
+<para>
+The lfs-announce list is a moderated list. You can subscribe to it, but
+you can't post any messages to this list. This list is used to announce
+new stable releases. If you want to be informed about development
+releases as well then you'll have to join the lfs-discuss list. If
+you're already on the lfs-discuss list there's little use subscribing to
+this list as well because everything that is posted to the lfs-announce
+list will be posted to the lfs-discuss list as well.
+</para>
+
+</sect2>
+
diff --git a/chapter01/lfsapps.sgml b/chapter01/lfsapps.sgml
new file mode 100644
index 000000000..be8da7f9f
--- /dev/null
+++ b/chapter01/lfsapps.sgml
@@ -0,0 +1,10 @@
+<sect2>
+<title>lfs-apps</title>
+
+<para>
+The lfs-apps list deals with everything that does not fit on the
+lfs-discuss list.
+</para>
+
+</sect2>
+
diff --git a/chapter01/lfsdiscuss.sgml b/chapter01/lfsdiscuss.sgml
new file mode 100644
index 000000000..7fb452038
--- /dev/null
+++ b/chapter01/lfsdiscuss.sgml
@@ -0,0 +1,15 @@
+<sect2>
+<title>lfs-discuss</title>
+
+<para>
+The lfs-discuss mailinglist discusses matters strictly related to the
+LFS-BOOK. If you have problems with the book, want to report a bug or
+two or have suggestions to improve the book, use this mailinglist.
+</para>
+
+<para>
+Any other mail is to be posted on the lfs-apps list.
+</para>
+
+</sect2>
+
diff --git a/chapter01/lfssecurity.sgml b/chapter01/lfssecurity.sgml
new file mode 100644
index 000000000..99cb72756
--- /dev/null
+++ b/chapter01/lfssecurity.sgml
@@ -0,0 +1,11 @@
+<sect2>
+<title>lfs-security</title>
+
+<para>
+The lfs-security mailinglist discusses security related matters. If you
+have security concerns or have heard about a package used by LFS that
+has known security problems, you can address that on this list.
+</para>
+
+</sect2>
+
diff --git a/chapter01/mailarchive.sgml b/chapter01/mailarchive.sgml
new file mode 100644
index 000000000..be5e21638
--- /dev/null
+++ b/chapter01/mailarchive.sgml
@@ -0,0 +1,13 @@
+<sect2>
+<title>Mail archives</title>
+
+<para>
+Every publically available mailinglist has a mailinglist archive
+you can access to find information on subjects already posted to
+this list. You can find them at
+<ulink url="http://archive.linuxfromscratch.org/mail-archives">
+http://archive.linuxfromscratch.org/mail-archives</ulink>
+</para>
+
+</sect2>
+
diff --git a/chapter01/mlarchive.sgml b/chapter01/mlarchive.sgml
new file mode 100644
index 000000000..06ac6b51c
--- /dev/null
+++ b/chapter01/mlarchive.sgml
@@ -0,0 +1,58 @@
+<sect1 id="ch01-mlarchives">
+<title>Mailinglists and archives</title>
+
+<para>
+The linuxfromscratch.org server is hosting the following public accessible
+mailinglists:
+</para>
+
+<itemizedlist>
+
+<listitem><para>
+ lfs-discuss
+</para></listitem>
+
+<listitem><para>
+ lfs-apps
+</para></listitem>
+
+<listitem><para>
+ lfs-announce
+</para></listitem>
+
+<listitem><para>
+ lfs-security
+</para></listitem>
+
+<listitem><para>
+ alfs-discuss
+</para></listitem>
+
+<listitem><para>
+ alfs-docs
+</para></listitem>
+
+<listitem><para>
+ alfs-ipc
+</para></listitem>
+
+<listitem><para>
+ alfs-profile
+</para></listitem>
+
+</itemizedlist>
+
+&c1-ma-lfsdiscuss;
+&c1-ma-lfsapps;
+&c1-ma-lfsannounce;
+&c1-ma-lfssecurity;
+&c1-ma-alfsdiscuss;
+&c1-ma-alfsdocs;
+&c1-ma-alfsipc;
+&c1-ma-alfsprofile;
+&c1-ma-subscribe;
+&c1-ma-unsubscribe;
+&c1-ma-mailarchive;
+
+</sect1>
+
diff --git a/chapter01/subscribe.sgml b/chapter01/subscribe.sgml
new file mode 100644
index 000000000..ceb4d4968
--- /dev/null
+++ b/chapter01/subscribe.sgml
@@ -0,0 +1,39 @@
+<sect2>
+<title>How to subscribe?</title>
+
+<para>
+You can subscribe to any of the above mentioned mailinglists by sending
+an email to <ulink url="mailto:listar@linuxfromscratch.org">
+listar@linuxfromscratch.org</ulink> and write <emphasis>subscribe
+listname</emphasis> in the subject line of the message.
+</para>
+
+<para>
+You can, if you want, subscribe to multiple lists at the same time using
+one email. If you want to do so, write some junk in the subject
+line, something that isn't a valid command like "hello". Then write
+the subscribe commands in the body of the message. The email will look
+like:
+</para>
+
+<blockquote><literallayout>
+
+To: listar@linuxfromscratch.org
+Subject: hello
+
+subscribe lfs-discuss
+subscribe lfs-apps
+subscribe alfs-discuss
+
+</literallayout></blockquote>
+
+<para>
+After you have sent the email, the Listar program will send you an
+email back requesting a confirmation of your subscription request. After
+you have sent back this confirmation email, Majordomo will send you an
+email again with the message that you have been subscribed to the
+list(s) along with an introduction message for that particulair list.
+</para>
+
+</sect2>
+
diff --git a/chapter01/unsubscribe.sgml b/chapter01/unsubscribe.sgml
new file mode 100644
index 000000000..584c7c95f
--- /dev/null
+++ b/chapter01/unsubscribe.sgml
@@ -0,0 +1,39 @@
+<sect2>
+<title>How to unsubscribe?</title>
+
+<para>
+To unsubscribe from a list, send an email to
+<ulink url="mailto:listar@linuxfromscratch.org">
+listar@linuxfromscratch.org</ulink> and write <emphasis>unsubscribe
+listname</emphasis> in the subject line of the message.
+</para>
+
+<para>
+
+You can, if you want, unsubscribe from multiple lists at the same time
+using one email. If you want to do so, write some junk in the
+subject line, something that isn't a valid command like "hello". Then
+write the unsubscribe commands in the body of the message. The email
+will look like:
+</para>
+
+<blockquote><literallayout>
+
+To: listar@linuxfromscratch.org
+Subject: hello
+
+unsubscribe lfs-discuss
+unsubscribe lfs-apps
+unsubscribe alfs-discuss
+</literallayout></blockquote>
+
+<para>
+After you have sent the email, the Listar program will send you an
+email back requesting a confirmation of your unsubscription
+request. After you have sent back this confirmation email, Listar will
+send you an email again with the message that you have been unsubscribed
+from the list(s).
+</para>
+
+</sect2>
+
diff --git a/chapter01/versions.sgml b/chapter01/versions.sgml
new file mode 100644
index 000000000..bdfe7c8df
--- /dev/null
+++ b/chapter01/versions.sgml
@@ -0,0 +1,109 @@
+<sect1 id="ch01-versions">
+<title>Book versions</title>
+
+<para>
+This is LFS-BOOK-&type; version &version; version dated &releasedate;. If this
+version is older than a month you definitely want to take a look at our
+website and check if there is a newer version available for download.
+</para>
+
+<para>
+Below you will find a list of our current HTTP and FTP mirror sites as
+of December 19th, 2000. This list might not be accurate anymore. For
+the latest info check our website at
+<ulink url="http://www.linuxfromscratch.org">
+http://www.linuxfromscratch.org</ulink>
+</para>
+
+<sect2>
+<title>HTTP Mirrors</title>
+
+<itemizedlist>
+
+<listitem><para>
+Columbus, Ohio, United States - <ulink
+url="http://www.linuxfromscratch.org/intro/">
+http://www.linuxfromscratch.org/intro/</ulink>
+</para></listitem>
+
+<listitem><para>
+United States - <ulink
+url="http://lfs.sourceforge.net/intro/">
+http://lfs.sourceforge.net/intro/</ulink>
+</para></listitem>
+
+<listitem><para>
+Canmore, Alberta, Canada - <ulink
+url="http://www.ca.linuxfromscratch.org/intro/">
+http://www.ca.linuxfromscratch.org/intro/</ulink>
+</para></listitem>
+
+<listitem><para>
+Braunschweig, Niedersachsen, Germany - <ulink
+url="http://www.de.linuxfromscratch.org/intro/">
+http://www.de.linuxfromscratch.org/intro/</ulink>
+</para></listitem>
+
+<listitem><para>
+Mainz, Germany, Europe - <ulink
+url="http://lfs.linux-provider.net/intro/">
+http://lfs.linux-provider.net/intro/</ulink>
+</para></listitem>
+
+<listitem><para>
+Australia (accessible from within AU/NZ only) - <ulink
+url="http://lfs.mirror.aarnet.edu.au/intro/">
+http://lfs.mirror.aarnet.edu.au/intro/</ulink>
+</para></listitem>
+
+</itemizedlist>
+
+</sect2>
+
+<sect2>
+<title>FTP Mirrors</title>
+
+<itemizedlist>
+
+<listitem><para>
+Columbus, Ohio, USA - <ulink
+url="ftp://packages.linuxfromscratch.org">
+ftp://packages.linuxfromscratch.org</ulink>
+</para></listitem>
+
+<listitem><para>
+Canmore, Alberta, Canada [FTP interface to FTP archive] - <ulink
+url="ftp://ftp.ca.linuxfromscratch.org">
+ftp://ftp.ca.linuxfromscratch.org</ulink>
+</para></listitem>
+
+<listitem><para>
+Canmore, Alberta, Canada [HTTP inteface to FTP archive] - <ulink
+url="http://ftp.ca.linuxfromscratch.org">
+http://ftp.ca.linuxfromscratch.org</ulink>
+</para></listitem>
+
+<listitem><para>
+Mainz, Germany, Europe [FTP interface to FTP archive] - <ulink
+url="ftp://ftp.linux-provider.net/pub/lfs/">
+ftp://ftp.linux-provider.net/pub/lfs/</ulink>
+</para></listitem>
+
+<listitem><para>
+Mainz, Germany, Europe [HTTP interface to FTP archive] - <ulink
+url="http://ftp.linux-provider.net/lfs/">
+http://ftp.linux-provider.net/lfs/</ulink>
+</para></listitem>
+
+<listitem><para>
+Australia (accessible from within AU/NZ only) - <ulink
+url="ftp://mirror.aarnet.edu.au/pub/pub/lfs/">
+ftp://mirror.aarnet.edu.au/pub/lfs/</ulink>
+</para></listitem>
+
+</itemizedlist>
+
+</sect2>
+
+</sect1>
+
diff --git a/chapter02/aboutlfs.sgml b/chapter02/aboutlfs.sgml
new file mode 100644
index 000000000..44675577c
--- /dev/null
+++ b/chapter02/aboutlfs.sgml
@@ -0,0 +1,51 @@
+<sect1 id="ch02-aboutlfs">
+<title>About $LFS</title>
+
+<para>
+Please read the following carefully: throughout this book you will
+frequently see the variable name $LFS. $LFS must at all times be
+replaced by the directory where the partition that contains the LFS system
+is mounted. How to create and where to mount the partition will be
+explaind in full detail later on in chapter 4. In my case the LFS
+partition is mounted on /mnt/lfs. If I read this book myself and I see
+$LFS somewhere, I will pretend that I read /mnt/lfs. If I read that
+I have to run this command: cp inittab $LFS/etc I actually will run this:
+cp inittab /mnt/lfs/etc
+</para>
+
+<para>
+It's important that you do this no matter where you read it; be it in
+commands you enter on the prompt, or in a file you edit or create.
+</para>
+
+<para>
+If you want, you can set the environment variable LFS. This way you can
+literally enter $LFS instead of replacing it by something like
+/mnt/lfs. This is accomplished by running: export LFS=/mnt/lfs
+</para>
+
+<para>
+If I read cp inittab $LFS/etc, I literally can type cp inittab $LFS/etc
+and the shell will replace this command by cp inittab /mnt/lfs/etc
+automatically.
+</para>
+
+<para>
+Do not forget to set the $LFS variable at all times. If you haven't set
+the variable and you use it in a command, $LFS will be ignored and whatever
+is left will be executed. The command cp inittab $LFS/etc without the $LFS
+variable set, will result in copying the inittab file to the /etc
+directory which will overwrite your system's inittab. A file like inittab
+isn't that big a problem as it can easily be restored, but if you would
+make this mistake during the installation of the C Library, you can
+damage things.
+</para>
+
+<para>
+One way to make sure that $LFS is set at all times you could add it to
+your /root/.bash_profile and/or /root/.bashrc file(s) so everytime you
+'su' to user too as to install LFS, the $LFS variable is set for you.
+</para>
+
+</sect1>
+
diff --git a/chapter02/bootscripts.sgml b/chapter02/bootscripts.sgml
new file mode 100644
index 000000000..f1595b152
--- /dev/null
+++ b/chapter02/bootscripts.sgml
@@ -0,0 +1,19 @@
+<sect1 id="ch02-bootscripts">
+<title>Download the bootscripts</title>
+
+<para>
+Typing out all the bootscripts in chapters 7 and 9 can be a long tedious
+process, not to mention very error prone.
+</para>
+
+<para>
+To save you guys and girls some time, you can download the bootscripts
+from <ulink
+url="http://download.linuxfromscratch.org/bootscripts/">
+http://download.linuxfromscratch.org/bootscripts/</ulink> or <ulink
+url="ftp://download.linuxfromscratch.org/bootscripts/">
+ftp://download.linuxfromscratch.org/bootscripts/</ulink>
+</para>
+
+</sect1>
+
diff --git a/chapter02/chapter2.sgml b/chapter02/chapter2.sgml
new file mode 100644
index 000000000..e58f87cee
--- /dev/null
+++ b/chapter02/chapter2.sgml
@@ -0,0 +1,10 @@
+<chapter id="chapter02">
+<title>Important information</title>
+
+&c2-aboutlfs;
+&c2-download;
+&c2-install;
+&c2-bootscripts;
+&c2-commands;
+
+</chapter>
diff --git a/chapter02/commands.sgml b/chapter02/commands.sgml
new file mode 100644
index 000000000..3c64b2f76
--- /dev/null
+++ b/chapter02/commands.sgml
@@ -0,0 +1,31 @@
+<sect1 id="ch02-commands">
+<title>Download the LFS Commands</title>
+
+<para>
+LFS Commands is a tarball containing files which list the installation
+commands for the packages installed in this book. These files can be
+used to dump to your shell and install the packages, though some files
+need to be modified (for example when you install the console-tools
+package you need to select your keyboard layout file which can't be guessed).
+</para>
+
+<para>
+These files can be used to quickly find out which commands have been
+changed between the different LFS versions as well. You can download the
+lfs-commands tarball for this book version and the previous book version
+and run a diff on the files. That way you can see which package have
+updated installation instructions so you can modify your own scripts, or
+reinstall a package if you deem necessary.
+</para>
+
+<para>
+The lfscommands can be downloaded from <ulink
+url="http://download.linuxfromscratch.org/lfs-commands/">
+http://download.linuxfromscratch.org/lfs-commands/</ulink> or <ulink
+url="ftp://download.linuxfromscratch.org/lfs-commands/">
+ftp://download.linuxfromscratch.org/lfs-commands/</ulink>
+</para>
+
+</sect1>
+
+
diff --git a/chapter02/download.sgml b/chapter02/download.sgml
new file mode 100644
index 000000000..c939473f2
--- /dev/null
+++ b/chapter02/download.sgml
@@ -0,0 +1,30 @@
+<sect1 id="ch02-download">
+<title>How to download the software</title>
+
+<para>
+Throughout this document I will assume that you have stored all the
+packages you have downloaded somewhere in $LFS/usr/src.
+</para>
+
+<para>
+I use the convention of having a $LFS/usr/src/sources directory.
+Under sources you'll find the directory 0-9 and the directories a
+through z. A package as sysvinit-2.78.tar.gz is stored under
+$LFS/usr/src/sources/s/ A package as bash-2.04.tar.gz is stored under
+$LFS/usr/src/sources/b/ and so forth. You don't have to follow this
+convention of course, I was just giving an example. It's better to keep
+the packages out of $LFS/usr/src and move them to a subdirectory, so
+we'll have a clean $LFS/usr/src directory in which we will unpack the
+packages and work with them.
+</para>
+
+<para>
+The next chapter contains the list of all the packages you need to download,
+but the partition that is going to contain our LFS system isn't created yet.
+Therefore store the files temporarily somewhere where you want and remember
+to copy them to $LFS/usr/src/ when you have finished the chapter in which
+you prepare a new partition (chapter 4).
+</para>
+
+</sect1>
+
diff --git a/chapter02/install.sgml b/chapter02/install.sgml
new file mode 100644
index 000000000..37fdbbb36
--- /dev/null
+++ b/chapter02/install.sgml
@@ -0,0 +1,102 @@
+<sect1 id="ch02-install">
+<title>How to install the software</title>
+
+<para>
+Before you can actually start doing something with a package, you need
+to unpack it first. Often you will find the package files being tar'ed and
+gzip'ed (you can determind this by looking at the extension of the file.
+tar'ed and gzip'ed archives have a .tar.gz or .tgz extension for
+example)). I'm not going to write down every time how to ungzip and how
+to untar an archive. I will tell you how to do that once, in this paragraph.
+There is also the possibility that you have the ability of downloading
+a .tar.bz2 file. Such a file is tar'ed and compressed with the bzip2 program.
+Bzip2 achieves a better compression than the commonly used gzip does. In
+order to use bz2 archives you need to have the bzip2 program installed.
+Most if not every distribution comes with this program so chances are
+high it is already installed on your system. If not, install it using
+your distribution's installation tool.
+</para>
+
+<para>
+To start with, change to the $LFS/usr/src directory by running:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>cd $LFS/usr/src</userinput>
+
+</literallayout></blockquote>
+
+<para>
+When you have a file that is tar'ed and gzip'ed, you unpack it by
+running either one of the following two commands, depending on the
+filename format:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>tar xvzf filename.tar.gz</userinput>
+ <userinput>tar xvzf filename.tgz</userinput>
+
+</literallayout></blockquote>
+
+
+<para>
+When you have a file that is tar'ed and bzip'ed, you unpack it by
+running:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>bzcat filename.tar.bz2 | tar xv</userinput>
+
+</literallayout></blockquote>
+
+<para>
+Some tar programs (most of them nowadays but not all of them) are
+slightly modified to be able to use bzip2 files directly using either
+the I or the y tar parameter which works the same as the z tar parameter
+to handle gzip archives.
+</para>
+
+<para>
+When you have a file that is tar'ed, you unpack it by running:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>tar xvf filename.tar</userinput>
+
+</literallayout></blockquote>
+
+<para>
+When the archive is unpacked a new directory will be created under the
+current directory (and this document assumes that you unpack the archives
+under the $LFS/usr/src directory). You have to enter that new directory
+before you continue with the installation instructions. So everytime the
+book is going to install a program, it's up to you to unpack the source
+archive.
+</para>
+
+<para>
+After you have installed a package you can do two things with it. You can
+either delete the directory that contains the sources or you can keep it.
+If you decide to keep it, that's fine by me. But if you need the same package
+again in a later chapter you need to delete the directory first before using
+it again. If you don't do this, you might end up in trouble because old
+settings will be used (settings that apply to your normal Linux system but
+which don't always apply to your LFS system). Doing a simple make clean
+or make distclean does not always guarantee a totally clean source tree.
+The configure script can also have files lying around in various
+subdirectories which aren't always removed by a make clean process.
+</para>
+
+<para>
+There is on exception to that rule: don't remove the linux kernel source
+tree. A lot of programs need the kernel headers, so that's the only
+directory you don't want to remove, unless you are not going to
+compile any software anymore.
+</para>
+
+</sect1>
+
diff --git a/chapter03/chapter4.sgml b/chapter03/chapter4.sgml
new file mode 100644
index 000000000..afba440da
--- /dev/null
+++ b/chapter03/chapter4.sgml
@@ -0,0 +1,10 @@
+<chapter id="chapter04">
+<title>Preparing a new partition</title>
+
+&c4-introduction;
+&c4-creatingpart;
+&c4-creatingfs;
+&c4-mounting;
+&c4-creatingdirs;
+
+</chapter>
diff --git a/chapter03/creatingdirs.sgml b/chapter03/creatingdirs.sgml
new file mode 100644
index 000000000..4bc44e3e9
--- /dev/null
+++ b/chapter03/creatingdirs.sgml
@@ -0,0 +1,66 @@
+<sect1 id="ch04-creatingdirs">
+<title>Creating directories</title>
+
+<para>
+Let's create the directory tree on the LFS partition according to the FHS
+standard which can be found at <ulink
+url="http://www.pathname.com/fhs/">http://www.pathname.com/fhs/</ulink>.
+Issuing the following commands will create the necessary directories:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>cd $LFS</userinput>
+ <userinput>mkdir bin boot dev dev/pts etc home lib mnt proc root sbin tmp
+ var</userinput>
+ <userinput>for dirname in $LFS/usr $LFS/usr/local</userinput>
+ <userinput><literal>&nbsp;&nbsp;&nbsp;do</literal></userinput>
+ <userinput>&nbsp;&nbsp;&nbsp;mkdir $dirname</userinput>
+ <userinput>&nbsp;&nbsp;&nbsp;cd $dirname</userinput>
+ <userinput>&nbsp;&nbsp;&nbsp;mkdir bin etc include lib sbin share
+ src tmp var</userinput>
+ <userinput>&nbsp;&nbsp;&nbsp;ln -s share/man man</userinput>
+ <userinput>&nbsp;&nbsp;&nbsp;ln -s share/doc doc</userinput>
+ <userinput>&nbsp;&nbsp;&nbsp;ln -s share/info info</userinput>
+ <userinput>&nbsp;&nbsp;&nbsp;cd $dirname/share</userinput>
+ <userinput>&nbsp;&nbsp;&nbsp;mkdir dict doc info locale man nls misc
+ terminfo zoneinfo</userinput>
+ <userinput>&nbsp;&nbsp;&nbsp;cd $dirname/share/man</userinput>
+ <userinput>&nbsp;&nbsp;&nbsp;mkdir man1 man2 man3 man4 man5 man6 man7
+ man8</userinput>
+ <userinput>done</userinput>
+ <userinput>cd $LFS/var</userinput>
+ <userinput>mkdir lock log mail run spool tmp</userinput>
+
+</literallayout></blockquote>
+
+<para>
+Normally directories are created with permission mode 755, which isn't
+desired for all directories. I haven't checked the FHS if they suggest
+default modes for certain directories, so I'll just change the modes for
+a few directories that make sense to change. The first change is a mode
+0750 for the $LFS/root directory. This is to make sure that not just
+everybody can enter the /root directory (the same you would do with
+/home/username directories). The second change is a mode 1777 for the tmp
+directories. This way every user can write stuff to the /tmp directory if
+they need to. The sticky (1) bit makes sure users can't delete other
+user's file which they normally can do because the directory is set in
+such a way that every body (owner, group, world) can write to that directory.
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>cd $LFS &amp;&amp;</userinput>
+ <userinput>chmod 0750 root &amp;&amp;</userinput>
+ <userinput>chmod 1777 tmp usr/tmp var/tmp</userinput>
+
+</literallayout></blockquote>
+
+<para>
+Now that the directories are created, copy the source files you have
+downloaded in chapter 3 to some subdirectory under $LFS/usr/src (you will
+need to create this subdirectory yourself).
+</para>
+
+</sect1>
+
diff --git a/chapter03/creatingfs.sgml b/chapter03/creatingfs.sgml
new file mode 100644
index 000000000..76bbe247f
--- /dev/null
+++ b/chapter03/creatingfs.sgml
@@ -0,0 +1,18 @@
+<sect1 id="ch04-creatingfs">
+<title>Creating a ext2 file system on the new partition</title>
+
+<para>
+Once the partition is created, we have to create a new ext2 file system on
+that partition. To create a new ext2 file system we use the mke2fs command.
+Enter the new partition as the only option and the file system will be
+created. If your partition is hda11, you would run:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>mke2fs /dev/hda11</userinput>
+
+</literallayout></blockquote>
+
+</sect1>
+
diff --git a/chapter03/creatingpart.sgml b/chapter03/creatingpart.sgml
new file mode 100644
index 000000000..7cd7c9ea6
--- /dev/null
+++ b/chapter03/creatingpart.sgml
@@ -0,0 +1,26 @@
+<sect1 id="ch04-creatingpart">
+<title>Creating a new partition</title>
+
+<para>
+Before we can build our new Linux system, we need to have an empty Linux
+partition on which we can build our new system. I recommend a partition size
+of around 750 MB. This gives you enough space to store all the tarballs and
+to compile all packages without worrying running out of the necessary
+temporary disk space. If you already have a Linux Native partition available,
+you can skip this subsection.
+</para>
+
+<para>
+Start the fdisk program (or another fdisk program you prefer) with the
+appropriate hard disk as the option (like /dev/hda if you want to create a
+new partition on the primary master IDE disk). Create a Linux Native
+partition, write the partition table and exit the fdisk program. If you get
+the message that you need to reboot your system to ensure that the partition
+table is updated, then please reboot your system now before continuing.
+Remember what your new partition's designation is. It could be something
+like hda11 (as it is in my case). This newly created partition will be
+referred to as the LFS partition in this book.
+</para>
+
+</sect1>
+
diff --git a/chapter03/introduction.sgml b/chapter03/introduction.sgml
new file mode 100644
index 000000000..b19076cf8
--- /dev/null
+++ b/chapter03/introduction.sgml
@@ -0,0 +1,13 @@
+<sect1 id="ch04-introduction">
+<title>Introduction</title>
+
+<para>
+In this chapter the partition that is going to host the LFS system is
+going to be prepared. A new partition will be created, an ext2 file
+system will be created on it and the directory structure will be
+created. When this is done, we can move on to the next chapter and start
+building a new Linux system from scratch.
+</para>
+
+</sect1>
+
diff --git a/chapter03/mounting.sgml b/chapter03/mounting.sgml
new file mode 100644
index 000000000..00b836156
--- /dev/null
+++ b/chapter03/mounting.sgml
@@ -0,0 +1,47 @@
+<sect1 id="ch04-mountingpart">
+<title>Mounting the new partition</title>
+
+<para>
+Now that we have created the ext2 file system, it is ready for use. All we have
+to do to be able to access it (as in reading from and writing date to it) is
+mounting it. If you mount it under /mnt/lfs, you can access this partition
+by going to the /mnt/lfs directory and then do whatever you need to do. This
+book will assume that you have mounted the partition on a subdirectory
+under /mnt. It doesn't matter which directory you choose, just make sure
+you remember what you chose.
+</para>
+
+<para>
+Create the /mnt/lfs directory by runnning:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>mkdir -p /mnt/lfs</userinput>
+
+</literallayout></blockquote>
+
+<para>
+Now mount the LFS partition by running:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>mount /dev/xxx /mnt/lfs</userinput>
+
+</literallayout></blockquote>
+
+<para>
+Replace <quote>xxx</quote> by your partition's designation.
+</para>
+
+<para>
+This directory (/mnt/lfs) is the $LFS variable you have read about earlier.
+So if you read somewhere to "cp inittab $LFS/etc" you actually will type
+<quote>cp inittab /mnt/lfs/etc</quote>. Or if you want to use the $LFS
+environment variable, execute <userinput>export LFS=/mnt/lfs</userinput>
+now.
+</para>
+
+</sect1>
+
diff --git a/chapter04/autoconf.sgml b/chapter04/autoconf.sgml
new file mode 100644
index 000000000..7257670a5
--- /dev/null
+++ b/chapter04/autoconf.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Autoconf (2.13) 333 KB:
+ <ulink
+url="ftp://packages.linuxfromscratch.org/pub/common-packages/autoconf-2.13.tar.bz2">
+ftp://packages.linuxfromscratch.org/pub/common-packages/autoconf-2.13.tar.bz2</ulink>
+
+</para></listitem>
+
diff --git a/chapter04/automake.sgml b/chapter04/automake.sgml
new file mode 100644
index 000000000..b8c984712
--- /dev/null
+++ b/chapter04/automake.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Automake (1.4) 277 KB:
+ <ulink
+url="ftp://packages.linuxfromscratch.org/pub/common-packages/automake-1.4.tar.bz2">
+ftp://packages.linuxfromscratch.org/pub/common-packages/automake-1.4.tar.bz2</ulink>
+
+</para></listitem>
+
diff --git a/chapter04/bash.sgml b/chapter04/bash.sgml
new file mode 100644
index 000000000..45c089856
--- /dev/null
+++ b/chapter04/bash.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Bash (2.04) - 1,307 KB:
+ <ulink
+url="ftp://packages.linuxfromscratch.org/pub/common-packages/bash-2.04.tar.bz2">
+ftp://packages.linuxfromscratch.org/pub/common-packages/bash-2.04.tar.bz2</ulink>
+
+</para></listitem>
+
diff --git a/chapter04/bin86.sgml b/chapter04/bin86.sgml
new file mode 100644
index 000000000..a3db51efe
--- /dev/null
+++ b/chapter04/bin86.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Bin86 (0.15.4) 111 KB:
+ <ulink
+url="ftp://packages.linuxfromscratch.org/pub/common-packages/bin86-0.15.4.tar.bz2">
+ftp://packages.linuxfromscratch.org/pub/common-packages/bin86-0.15.4.tar.bz2</ulink>
+
+</para></listitem>
+
diff --git a/chapter04/binutils.sgml b/chapter04/binutils.sgml
new file mode 100644
index 000000000..60e8b6228
--- /dev/null
+++ b/chapter04/binutils.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Binutils (2.10.1) 5,523 KB:
+ <ulink
+url="ftp://packages.linuxfromscratch.org/pub/common-packages/binutils-2.10.1.tar.bz2">
+ftp://packages.linuxfromscratch.org/pub/common-packages/binutils-2.10.1.tar.bz2</ulink>
+
+</para></listitem>
+
diff --git a/chapter04/bison.sgml b/chapter04/bison.sgml
new file mode 100644
index 000000000..59b27ca46
--- /dev/null
+++ b/chapter04/bison.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Bison (1.28) 321 KB:
+ <ulink
+url="ftp://packages.linuxfromscratch.org/pub/common-packages/bison-1.28.tar.bz2">
+ftp://packages.linuxfromscratch.org/pub/common-packages/bison-1.28.tar.bz2</ulink>
+
+</para></listitem>
+
diff --git a/chapter04/bzip2.sgml b/chapter04/bzip2.sgml
new file mode 100644
index 000000000..9608a21a4
--- /dev/null
+++ b/chapter04/bzip2.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Bzip2 (1.0.1) 454 KB:
+ <ulink
+url="ftp://packages.linuxfromscratch.org/pub/common-packages/bzip2-1.0.1.tar.gz">
+ftp://packages.linuxfromscratch.org/pub/common-packages/bzip2-1.0.1.tar.gz</ulink>
+
+</para></listitem>
+
diff --git a/chapter04/chapter3.sgml b/chapter04/chapter3.sgml
new file mode 100644
index 000000000..17532763b
--- /dev/null
+++ b/chapter04/chapter3.sgml
@@ -0,0 +1,7 @@
+<chapter id="chapter03">
+<title>Packages you need to download</title>
+
+&c3-introduction;
+&c3-packages;
+
+</chapter>
diff --git a/chapter04/consoledata.sgml b/chapter04/consoledata.sgml
new file mode 100644
index 000000000..761bcf8d6
--- /dev/null
+++ b/chapter04/consoledata.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Console-data (1999.08.29) 418 KB:
+ <ulink
+url="ftp://packages.linuxfromscratch.org/pub/common-packages/console-data-1999.08.29.tar.bz2">
+ftp://packages.linuxfromscratch.org/pub/common-packages/console-data-1999.08.29.tar.bz2</ulink>
+
+</para></listitem>
+
diff --git a/chapter04/consoletools-patch.sgml b/chapter04/consoletools-patch.sgml
new file mode 100644
index 000000000..e7e27ef3b
--- /dev/null
+++ b/chapter04/consoletools-patch.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Console-tools (0.2.3) Patch: 4 KB:
+ <ulink
+url="ftp://packages.linuxfromscratch.org/pub/common-packages/console-tools-0.2.3.patch.gz">
+ftp://packages.linuxfromscratch.org/pub/common-packages/console-tools-0.2.3.patch.gz</ulink>
+
+</para></listitem>
+
diff --git a/chapter04/consoletools.sgml b/chapter04/consoletools.sgml
new file mode 100644
index 000000000..d0d6e2bcb
--- /dev/null
+++ b/chapter04/consoletools.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Console-tools (0.2.3) 490 KB:
+ <ulink
+url="ftp://packages.linuxfromscratch.org/pub/common-packages/console-tools-0.2.3.tar.bz2">
+ftp://packages.linuxfromscratch.org/pub/common-packages/console-tools-0.2.3.tar.bz2</ulink>
+
+</para></listitem>
+
diff --git a/chapter04/diffutils.sgml b/chapter04/diffutils.sgml
new file mode 100644
index 000000000..1b73a2ff9
--- /dev/null
+++ b/chapter04/diffutils.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Diff Utils (2.7) 247 KB:
+ <ulink
+url="ftp://packages.linuxfromscratch.org/pub/common-packages/diffutils-2.7.tar.bz2">
+ftp://packages.linuxfromscratch.org/pub/common-packages/diffutils-2.7.tar.bz2</ulink>
+
+</para></listitem>
+
diff --git a/chapter04/e2fsprogs.sgml b/chapter04/e2fsprogs.sgml
new file mode 100644
index 000000000..f0c907eaa
--- /dev/null
+++ b/chapter04/e2fsprogs.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+E2fsprogs (1.19) 808 KB:
+ <ulink
+url="ftp://packages.linuxfromscratch.org/pub/common-packages/e2fsprogs-1.19.tar.bz2">
+ftp://packages.linuxfromscratch.org/pub/common-packages/e2fsprogs-1.19.tar.bz2</ulink>
+
+</para></listitem>
+
diff --git a/chapter04/ed.sgml b/chapter04/ed.sgml
new file mode 100644
index 000000000..3ff062b88
--- /dev/null
+++ b/chapter04/ed.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Ed (0.2) 158 KB:
+ <ulink
+url="ftp://packages.linuxfromscratch.org/pub/common-packages/ed-0.2.tar.bz2">
+ftp://packages.linuxfromscratch.org/pub/common-packages/ed-0.2.tar.bz2</ulink>
+
+</para></listitem>
+
diff --git a/chapter04/file.sgml b/chapter04/file.sgml
new file mode 100644
index 000000000..95a4dcab3
--- /dev/null
+++ b/chapter04/file.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+File (3.33) 126 KB:
+ <ulink
+url="ftp://packages.linuxfromscratch.org/pub/common-packages/file-3.33.tar.bz2">
+ftp://packages.linuxfromscratch.org/pub/common-packages/file-3.33.tar.bz2</ulink>
+
+</para></listitem>
+
diff --git a/chapter04/fileutils.sgml b/chapter04/fileutils.sgml
new file mode 100644
index 000000000..7e8420ca6
--- /dev/null
+++ b/chapter04/fileutils.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+File Utils (4.0) 801 KB:
+ <ulink
+url="ftp://packages.linuxfromscratch.org/pub/common-packages/fileutils-4.0.tar.bz2">
+ftp://packages.linuxfromscratch.org/pub/common-packages/fileutils-4.0.tar.bz2</ulink>
+
+</para></listitem>
+
diff --git a/chapter04/findutils-patch.sgml b/chapter04/findutils-patch.sgml
new file mode 100644
index 000000000..5f945f28b
--- /dev/null
+++ b/chapter04/findutils-patch.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Find Utils Patch (4.1) 1 KB:
+ <ulink
+url="ftp://packages.linuxfromscratch.org/pub/common-packages/findutils-4.1.patch.gz">
+ftp://packages.linuxfromscratch.org/pub/common-packages/findutils-4.1.patch.gz</ulink>
+
+</para></listitem>
+
diff --git a/chapter04/findutils.sgml b/chapter04/findutils.sgml
new file mode 100644
index 000000000..ea88054ca
--- /dev/null
+++ b/chapter04/findutils.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Find Utils (4.1) 226 KB:
+ <ulink
+url="ftp://packages.linuxfromscratch.org/pub/common-packages/findutils-4.1.tar.bz2">
+ftp://packages.linuxfromscratch.org/pub/common-packages/findutils-4.1.tar.bz2</ulink>
+
+</para></listitem>
+
diff --git a/chapter04/flex.sgml b/chapter04/flex.sgml
new file mode 100644
index 000000000..60601e25c
--- /dev/null
+++ b/chapter04/flex.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Flex (2.5.4a) 278 KB:
+ <ulink
+url="ftp://packages.linuxfromscratch.org/pub/common-packages/flex-2.5.4a.tar.bz2">
+ftp://packages.linuxfromscratch.org/pub/common-packages/flex-2.5.4a.tar.bz2</ulink>
+
+</para></listitem>
+
diff --git a/chapter04/gcc.sgml b/chapter04/gcc.sgml
new file mode 100644
index 000000000..02099f3a9
--- /dev/null
+++ b/chapter04/gcc.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+GCC (2.95.2) 9,555 KB:
+ <ulink
+url="ftp://packages.linuxfromscratch.org/pub/common-packages/gcc-2.95.2.tar.bz2">
+ftp://packages.linuxfromscratch.org/pub/common-packages/gcc-2.95.2.tar.bz2</ulink>
+
+</para></listitem>
+
diff --git a/chapter04/gettext.sgml b/chapter04/gettext.sgml
new file mode 100644
index 000000000..6c6caac1a
--- /dev/null
+++ b/chapter04/gettext.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Gettext (0.10.35) 525 KB:
+ <ulink
+url="ftp://packages.linuxfromscratch.org/pub/common-packages/gettext-0.10.35.tar.bz2">
+ftp://packages.linuxfromscratch.org/pub/common-packages/gettext-0.10.35.tar.bz2</ulink>
+
+</para></listitem>
+
diff --git a/chapter04/glibc-crypt.sgml b/chapter04/glibc-crypt.sgml
new file mode 100644
index 000000000..4856f8aaa
--- /dev/null
+++ b/chapter04/glibc-crypt.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Glibc-crypt (2.1) 36 KB:
+ <ulink
+url="ftp://packages.linuxfromscratch.org/pub/common-packages/glibc-crypt-2.1.tar.bz2">
+ftp://packages.linuxfromscratch.org/pub/common-packages/glibc-crypt-2.1.tar.bz2</ulink>
+
+</para></listitem>
+
diff --git a/chapter04/glibc-patch.sgml b/chapter04/glibc-patch.sgml
new file mode 100644
index 000000000..a4bbf27f8
--- /dev/null
+++ b/chapter04/glibc-patch.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Glibc Patch (2.1.3) - 1 KB:
+ <ulink
+url="ftp://packages.linuxfromscratch.org/pub/common-packages/glibc-2.1.3.patch.gz">
+ftp://packages.linuxfromscratch.org/pub/common-packages/glibc-2.1.3.patch.gz</ulink>
+
+</para></listitem>
+
diff --git a/chapter04/glibc-threads.sgml b/chapter04/glibc-threads.sgml
new file mode 100644
index 000000000..dbea8be24
--- /dev/null
+++ b/chapter04/glibc-threads.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Glibc-linuxthreads (2.1.3) 112 KB:
+ <ulink
+url="ftp://packages.linuxfromscratch.org/pub/common-packages/glibc-linuxthreads-2.1.3.tar.bz2">
+ftp://packages.linuxfromscratch.org/pub/common-packages/glibc-linuxthreads-2.1.3.tar.bz2</ulink>
+
+</para></listitem>
+
diff --git a/chapter04/glibc.sgml b/chapter04/glibc.sgml
new file mode 100644
index 000000000..8bd118da1
--- /dev/null
+++ b/chapter04/glibc.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Glibc (2.1.3) 6,308 KB:
+ <ulink
+url="ftp://packages.linuxfromscratch.org/pub/common-packages/glibc-2.1.3.tar.bz2">
+ftp://packages.linuxfromscratch.org/pub/common-packages/glibc-2.1.3.tar.bz2</ulink>
+
+</para></listitem>
+
diff --git a/chapter04/grep.sgml b/chapter04/grep.sgml
new file mode 100644
index 000000000..3669fb711
--- /dev/null
+++ b/chapter04/grep.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Grep (2.4.2) 382 KB:
+ <ulink
+url="ftp://packages.linuxfromscratch.org/pub/common-packages/grep-2.4.2.tar.bz2">
+ftp://packages.linuxfromscratch.org/pub/common-packages/grep-2.4.2.tar.bz2</ulink>
+
+</para></listitem>
+
diff --git a/chapter04/groff.sgml b/chapter04/groff.sgml
new file mode 100644
index 000000000..a404dfc85
--- /dev/null
+++ b/chapter04/groff.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Groff (1.16.1) 1,173 KB:
+ <ulink
+url="ftp://packages.linuxfromscratch.org/pub/common-packages/groff-1.16.1.tar.bz2">
+ftp://packages.linuxfromscratch.org/pub/common-packages/groff-1.16.1.tar.bz2</ulink>
+
+</para></listitem>
+
diff --git a/chapter04/gzip-patch.sgml b/chapter04/gzip-patch.sgml
new file mode 100644
index 000000000..ffe167ab2
--- /dev/null
+++ b/chapter04/gzip-patch.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Gzip Patch (1.2.4a) 1 KB:
+ <ulink
+url="ftp://packages.linuxfromscratch.org/pub/common-packages/gzip-1.2.4a.patch.gz">
+ftp://packages.linuxfromscratch.org/pub/common-packages/gzip-1.2.4a.patch.gz</ulink>
+
+</para></listitem>
+
diff --git a/chapter04/gzip.sgml b/chapter04/gzip.sgml
new file mode 100644
index 000000000..6d0d7695d
--- /dev/null
+++ b/chapter04/gzip.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Gzip (1.2.4a) 178 KB:
+ <ulink
+url="ftp://packages.linuxfromscratch.org/pub/common-packages/gzip-1.2.4a.tar.bz2">
+ftp://packages.linuxfromscratch.org/pub/common-packages/gzip-1.2.4a.tar.bz2</ulink>
+
+</para></listitem>
+
diff --git a/chapter04/introduction.sgml b/chapter04/introduction.sgml
new file mode 100644
index 000000000..83e561961
--- /dev/null
+++ b/chapter04/introduction.sgml
@@ -0,0 +1,35 @@
+<para>
+Below is a list of all the packages you need to download for building
+the basic system. The version numbers printed correspond to versions of
+the software that is known to work and which this book is based on. If you
+experience problems which you can't solve yourself, download the version that
+is assumed in this book (in case you downloaded a newer version).
+</para>
+
+<para>
+If the packages.linuxfromscratch.org server isn't allowing connections
+anymore try one of our mirror sites. The addresses of the mirror sites
+can be found in <ulink url="ch01-versions.html">Chapter 1 - Book
+Versions</ulink>
+</para>
+
+<para>
+We have provided a list of official download sites of the packages below
+in <ulink url="appendixc.html">Appendix C - Official download locations
+</ulink>. The LFS FTP archive only contains the versions of packages
+that are recommended for use in this book. If you're looking
+for newer versions than the ones listed here you can have a look in
+Appendix C.
+</para>
+
+<para>
+Please note that all files downloaded from the LFS FTP archive are files
+compressed with bzip2 instead of gz. If you don't know how to handle bz2
+files, please read <ulink url="ch02-install.html">Chapter 2 - How to install
+the software</ulink>.
+</para>
+
+<para>
+The list below is current as of January 5th, 2001
+</para>
+
diff --git a/chapter04/kernel.sgml b/chapter04/kernel.sgml
new file mode 100644
index 000000000..fdb1f416b
--- /dev/null
+++ b/chapter04/kernel.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Linux Kernel (2.2.18) 14,921 KB:
+ <ulink
+url="ftp://packages.linuxfromscratch.org/pub/common-packages/linux-2.2.18.tar.bz2">
+ftp://packages.linuxfromscratch.org/pub/common-packages/linux-2.2.18.tar.bz2</ulink>
+
+</para></listitem>
+
diff --git a/chapter04/ldso.sgml b/chapter04/ldso.sgml
new file mode 100644
index 000000000..2b0c7bf6d
--- /dev/null
+++ b/chapter04/ldso.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Ld.so (1.9.9) 280 KB:
+ <ulink
+url="ftp://packages.linuxfromscratch.org/pub/common-packages/ld.so-1.9.9.tar.bz2">
+ftp://packages.linuxfromscratch.org/pub/common-packages/ld.so-1.9.9.tar.bz2</ulink>
+
+</para></listitem>
+
diff --git a/chapter04/less.sgml b/chapter04/less.sgml
new file mode 100644
index 000000000..5bca37c22
--- /dev/null
+++ b/chapter04/less.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Less (358) 178 KB:
+ <ulink
+url="ftp://packages.linuxfromscratch.org/pub/common-packages/less-358.tar.bz2">
+ftp://packages.linuxfromscratch.org/pub/common-packages/less-358.tar.bz2</ulink>
+
+</para></listitem>
+
diff --git a/chapter04/libtool.sgml b/chapter04/libtool.sgml
new file mode 100644
index 000000000..5aee212c1
--- /dev/null
+++ b/chapter04/libtool.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Libtool (1.3.5) 361 KB:
+ <ulink
+url="ftp://packages.linuxfromscratch.org/pub/common-packages/libtool-1.3.5.tar.bz2">
+ftp://packages.linuxfromscratch.org/pub/common-packages/libtool-1.3.5.tar.bz2</ulink>
+
+</para></listitem>
+
diff --git a/chapter04/lilo.sgml b/chapter04/lilo.sgml
new file mode 100644
index 000000000..139fc746f
--- /dev/null
+++ b/chapter04/lilo.sgml
@@ -0,0 +1,8 @@
+<listitem><para>
+Lilo (21.6) 172 KB:
+ <ulink
+url="ftp://packages.linuxfromscratch.org/pub/intel-packages/lilo-21.6.tar.bz2">
+ftp://packages.linuxfromscratch.org/pub/intel-packages/lilo-21.6.tar.bz2</ulink>
+
+</para></listitem>
+
diff --git a/chapter04/m4.sgml b/chapter04/m4.sgml
new file mode 100644
index 000000000..11d9bc9e0
--- /dev/null
+++ b/chapter04/m4.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+M4 (1.4) 249 KB:
+ <ulink
+url="ftp://packages.linuxfromscratch.org/pub/common-packages/m4-1.4.tar.bz2">
+ftp://packages.linuxfromscratch.org/pub/common-packages/m4-1.4.tar.bz2</ulink>
+
+</para></listitem>
+
diff --git a/chapter04/make.sgml b/chapter04/make.sgml
new file mode 100644
index 000000000..88ae6adf1
--- /dev/null
+++ b/chapter04/make.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Make (3.79.1) 749 KB:
+ <ulink
+url="ftp://packages.linuxfromscratch.org/pub/common-packages/make-3.79.1.tar.bz2">
+ftp://packages.linuxfromscratch.org/pub/common-packages/make-3.79.1.tar.bz2</ulink>
+
+</para></listitem>
+
diff --git a/chapter04/makedev.sgml b/chapter04/makedev.sgml
new file mode 100644
index 000000000..7ec636d63
--- /dev/null
+++ b/chapter04/makedev.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+MAKEDEV (2.5) - 11 KB:
+ <ulink
+url="ftp://packages.linuxfromscratch.org/pub/common-packages/MAKEDEV-2.5.tar.bz2">
+ftp://packages.linuxfromscratch.org/pub/common-packages/MAKEDEV-2.5.tar.bz2</ulink>
+
+</para></listitem>
+
diff --git a/chapter04/man.sgml b/chapter04/man.sgml
new file mode 100644
index 000000000..6fa61acc1
--- /dev/null
+++ b/chapter04/man.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Man (1.5h1) 156 KB:
+ <ulink
+url="ftp://packages.linuxfromscratch.org/pub/common-packages/man-1.5h1.tar.bz2">
+ftp://packages.linuxfromscratch.org/pub/common-packages/man-1.5h1.tar.bz2</ulink>
+
+</para></listitem>
+
diff --git a/chapter04/manpages.sgml b/chapter04/manpages.sgml
new file mode 100644
index 000000000..7611c179d
--- /dev/null
+++ b/chapter04/manpages.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Man-pages (1.33) 475 KB:
+ <ulink
+url="ftp://packages.linuxfromscratch.org/pub/common-packages/man-pages-1.33.tar.bz2">
+ftp://packages.linuxfromscratch.org/pub/common-packages/man-pages-1.33.tar.bz2</ulink>
+
+</para></listitem>
+
diff --git a/chapter04/mawk.sgml b/chapter04/mawk.sgml
new file mode 100644
index 000000000..5570b2ce4
--- /dev/null
+++ b/chapter04/mawk.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Mawk (1.3.3) 168 KB:
+ <ulink
+url="ftp://packages.linuxfromscratch.org/pub/common-packages/mawk1.3.3.tar.bz2">
+ftp://packages.linuxfromscratch.org/pub/common-packages/mawk1.3.3.tar.bz2</ulink>
+
+</para></listitem>
+
diff --git a/chapter04/modutils.sgml b/chapter04/modutils.sgml
new file mode 100644
index 000000000..817c464c5
--- /dev/null
+++ b/chapter04/modutils.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Modutils (2.4.0) 195 KB:
+ <ulink
+url="ftp://packages.linuxfromscratch.org/pub/common-packages/modutils-2.4.0.tar.bz2">
+ftp://packages.linuxfromscratch.org/pub/common-packages/modutils-2.4.0.tar.bz2</ulink>
+
+</para></listitem>
+
diff --git a/chapter04/ncurses.sgml b/chapter04/ncurses.sgml
new file mode 100644
index 000000000..f7b97ac6d
--- /dev/null
+++ b/chapter04/ncurses.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Ncurses (5.2) 1,307 KB:
+ <ulink
+url="ftp://packages.linuxfromscratch.org/pub/intel-packages/ncurses-5.2.tar.bz2">
+ftp://packages.linuxfromscratch.org/pub/intel-packages/ncurses-5.2.tar.bz2</ulink>
+
+</para></listitem>
+
diff --git a/chapter04/netkitbase.sgml b/chapter04/netkitbase.sgml
new file mode 100644
index 000000000..51b965226
--- /dev/null
+++ b/chapter04/netkitbase.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Netkit-base (0.17) 49 KB:
+ <ulink
+url="ftp://packages.linuxfromscratch.org/pub/common-packages/netkit-base-0.17.tar.bz2">
+ftp://packages.linuxfromscratch.org/pub/common-packages/netkit-base-0.17.tar.bz2</ulink>
+
+</para></listitem>
+
diff --git a/chapter04/nettools.sgml b/chapter04/nettools.sgml
new file mode 100644
index 000000000..57a2eb0c4
--- /dev/null
+++ b/chapter04/nettools.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Net-tools (1.57) 187 KB:
+ <ulink
+url="ftp://packages.linuxfromscratch.org/pub/common-packages/net-tools-1.57.tar.bz2">
+ftp://packages.linuxfromscratch.org/pub/common-packages/net-tools-1.57.tar.bz2</ulink>
+
+</para></listitem>
+
diff --git a/chapter04/packages.sgml b/chapter04/packages.sgml
new file mode 100644
index 000000000..8cba44851
--- /dev/null
+++ b/chapter04/packages.sgml
@@ -0,0 +1,71 @@
+<itemizedlist>
+
+&c3-pg-toplevel;
+&c3-pg-bash;
+&c3-pg-binutils;
+&c3-pg-bzip2;
+&c3-pg-diffutils;
+&c3-pg-fileutils;
+&c3-pg-gcc;
+&c3-pg-kernel;
+&c3-pg-glibc;
+&c3-pg-glibc-crypt;
+&c3-pg-glibc-threads;
+&c3-pg-glibc-patch;
+&c3-pg-grep;
+&c3-pg-gzip;
+&c3-pg-gzip-patch;
+&c3-pg-make;
+&c3-pg-sed;
+&c3-pg-shellutils;
+&c3-pg-tar;
+&c3-pg-tar-patch;
+&c3-pg-textutils;
+&c3-pg-makedev;
+&c3-pg-bison;
+&c3-pg-mawk;
+&c3-pg-patch;
+&c3-pg-findutils;
+&c3-pg-findutils-patch;
+&c3-pg-ncurses;
+&c3-pg-less;
+&c3-pg-groff;
+&c3-pg-man;
+&c3-pg-perl;
+&c3-pg-m4;
+&c3-pg-texinfo;
+&c3-pg-autoconf;
+&c3-pg-automake;
+&c3-pg-flex;
+&c3-pg-file;
+&c3-pg-libtool;
+&c3-pg-bin86;
+&c3-pg-gettext;
+&c3-pg-consoletools;
+&c3-pg-consoletools-patch;
+&c3-pg-consoledata;
+&c3-pg-e2fsprogs;
+&c3-pg-ed;
+&c3-pg-ldso;
+&c3-pg-lilo;
+&c3-pg-modutils;
+&c3-pg-vim;
+&c3-pg-procinfo;
+&c3-pg-procps;
+&c3-pg-psmisc;
+&c3-pg-shadowpwd;
+&c3-pg-sysklogd;
+&c3-pg-sysklogd-patch;
+&c3-pg-sysvinit;
+&c3-pg-sysvinit-patch;
+&c3-pg-utillinux;
+&c3-pg-manpages;
+&c3-pg-netkitbase;
+&c3-pg-nettools;
+
+<listitem><para>
+Total size of all intel-packages: 61,377 KB (59,94 MB)
+</para></listitem>
+
+</itemizedlist>
+
diff --git a/chapter04/patch.sgml b/chapter04/patch.sgml
new file mode 100644
index 000000000..8f0b887f8
--- /dev/null
+++ b/chapter04/patch.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Patch (2.5.4) 149 KB:
+ <ulink
+url="ftp://packages.linuxfromscratch.org/pub/common-packages/patch-2.5.4.tar.bz2">
+ftp://packages.linuxfromscratch.org/pub/common-packages/patch-2.5.4.tar.bz2</ulink>
+
+</para></listitem>
+
diff --git a/chapter04/perl.sgml b/chapter04/perl.sgml
new file mode 100644
index 000000000..6936a175d
--- /dev/null
+++ b/chapter04/perl.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Perl (5.6.0) 4,327 KB:
+ <ulink
+url="ftp://packages.linuxfromscratch.org/pub/common-packages/perl-5.6.0.tar.bz2">
+ftp://packages.linuxfromscratch.org/pub/common-packages/perl-5.6.0.tar.bz2</ulink>
+
+</para></listitem>
+
diff --git a/chapter04/procinfo.sgml b/chapter04/procinfo.sgml
new file mode 100644
index 000000000..394faa3de
--- /dev/null
+++ b/chapter04/procinfo.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Procinfo (17) 21 KB:
+ <ulink
+url="ftp://packages.linuxfromscratch.org/pub/common-packages/procinfo-17.tar.bz2">
+ftp://packages.linuxfromscratch.org/pub/common-packages/procinfo-17.tar.bz2</ulink>
+
+</para></listitem>
+
diff --git a/chapter04/procps.sgml b/chapter04/procps.sgml
new file mode 100644
index 000000000..7152d267e
--- /dev/null
+++ b/chapter04/procps.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Procps (2.0.7) 153 KB:
+ <ulink
+url="ftp://packages.linuxfromscratch.org/pub/common-packages/procps-2.0.7.tar.bz2">
+ftp://packages.linuxfromscratch.org/pub/common-packages/procps-2.0.7.tar.bz2</ulink>
+
+</para></listitem>
+
diff --git a/chapter04/psmisc.sgml b/chapter04/psmisc.sgml
new file mode 100644
index 000000000..4b17654ca
--- /dev/null
+++ b/chapter04/psmisc.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Psmisc (19) 20 KB:
+ <ulink
+url="ftp://packages.linuxfromscratch.org/pub/common-packages/psmisc-19.tar.bz2">
+ftp://packages.linuxfromscratch.org/pub/common-packages/psmisc-19.tar.bz2</ulink>
+
+</para></listitem>
+
diff --git a/chapter04/sed.sgml b/chapter04/sed.sgml
new file mode 100644
index 000000000..1a763af05
--- /dev/null
+++ b/chapter04/sed.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Sed (3.02) 221 KB:
+ <ulink
+url="ftp://packages.linuxfromscratch.org/pub/common-packages/sed-3.02.tar.bz2">
+ftp://packages.linuxfromscratch.org/pub/common-packages/sed-3.02.tar.bz2</ulink>
+
+</para></listitem>
+
diff --git a/chapter04/shadowpwd.sgml b/chapter04/shadowpwd.sgml
new file mode 100644
index 000000000..e0c7cf817
--- /dev/null
+++ b/chapter04/shadowpwd.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Shadow Password Suite (20000902) 557 KB:
+ <ulink
+url="ftp://packages.linuxfromscratch.org/pub/common-packages/shadow-20000902.tar.bz2">
+ftp://packages.linuxfromscratch.org/pub/common-packages/shadow-20000902.tar.bz2</ulink>
+
+</para></listitem>
+
diff --git a/chapter04/shellutils.sgml b/chapter04/shellutils.sgml
new file mode 100644
index 000000000..0c0af8edd
--- /dev/null
+++ b/chapter04/shellutils.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Sh-utils (2.0) 824 KB:
+ <ulink
+url="ftp://packages.linuxfromscratch.org/pub/common-packages/sh-utils-2.0.tar.bz2">
+ftp://packages.linuxfromscratch.org/pub/common-packages/sh-utils-2.0.tar.bz2</ulink>
+
+</para></listitem>
+
diff --git a/chapter04/sysklogd-patch.sgml b/chapter04/sysklogd-patch.sgml
new file mode 100644
index 000000000..1797f5d84
--- /dev/null
+++ b/chapter04/sysklogd-patch.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Sysklogd Patch (1.4) 0.5 KB:
+ <ulink
+url="ftp://packages.linuxfromscratch.org/pub/common-packages/sysklogd-1.4.patch">
+ftp://packages.linuxfromscratch.org/pub/common-packages/sysklogd-1.4.patch</ulink>
+
+</para></listitem>
+
diff --git a/chapter04/sysklogd.sgml b/chapter04/sysklogd.sgml
new file mode 100644
index 000000000..9aa8ccfb0
--- /dev/null
+++ b/chapter04/sysklogd.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Sysklogd (1.4) 67 KB:
+ <ulink
+url="ftp://packages.linuxfromscratch.org/pub/common-packages/sysklogd-1.4.tar.bz2">
+ftp://packages.linuxfromscratch.org/pub/common-packages/sysklogd-1.4.tar.bz2</ulink>
+
+</para></listitem>
+
diff --git a/chapter04/sysvinit-patch.sgml b/chapter04/sysvinit-patch.sgml
new file mode 100644
index 000000000..977ba7527
--- /dev/null
+++ b/chapter04/sysvinit-patch.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Sysvinit Patch (2.78) 1 KB:
+ <ulink
+url="ftp://packages.linuxfromscratch.org/pub/common-packages/sysvinit-2.78.patch">
+ftp://packages.linuxfromscratch.org/pub/common-packages/sysvinit-2.78.patch</ulink>
+
+</para></listitem>
+
diff --git a/chapter04/sysvinit.sgml b/chapter04/sysvinit.sgml
new file mode 100644
index 000000000..3c03f6ba3
--- /dev/null
+++ b/chapter04/sysvinit.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Sysvinit (2.78) 90 KB:
+ <ulink
+url="ftp://packages.linuxfromscratch.org/pub/common-packages/sysvinit-2.78.tar.bz2">
+ftp://packages.linuxfromscratch.org/pub/common-packages/sysvinit-2.78.tar.bz2</ulink>
+
+</para></listitem>
+
diff --git a/chapter04/tar-patch.sgml b/chapter04/tar-patch.sgml
new file mode 100644
index 000000000..d190cf6c8
--- /dev/null
+++ b/chapter04/tar-patch.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Tar Patch (1.13) 2 KB:
+ <ulink
+url="ftp://packages.linuxfromscratch.org/pub/common-packages/gnutarpatch.txt">
+ftp://packages.linuxfromscratch.org/pub/common-packages/gnutarpatch.txt</ulink>
+
+</para></listitem>
+
diff --git a/chapter04/tar.sgml b/chapter04/tar.sgml
new file mode 100644
index 000000000..c133ad9c2
--- /dev/null
+++ b/chapter04/tar.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Tar (1.13) 730 KB:
+ <ulink
+url="ftp://packages.linuxfromscratch.org/pub/common-packages/tar-1.13.tar.bz2">
+ftp://packages.linuxfromscratch.org/pub/common-packages/tar-1.13.tar.bz2</ulink>
+
+</para></listitem>
+
diff --git a/chapter04/texinfo.sgml b/chapter04/texinfo.sgml
new file mode 100644
index 000000000..c4ae44f18
--- /dev/null
+++ b/chapter04/texinfo.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Texinfo (4.0) 812 KB:
+ <ulink
+url="ftp://packages.linuxfromscratch.org/pub/common-packages/texinfo-4.0.tar.bz2">
+ftp://packages.linuxfromscratch.org/pub/common-packages/texinfo-4.0.tar.bz2</ulink>
+
+</para></listitem>
+
diff --git a/chapter04/textutils.sgml b/chapter04/textutils.sgml
new file mode 100644
index 000000000..4c4b92067
--- /dev/null
+++ b/chapter04/textutils.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Text Utils (2.0) 1,040 KB:
+ <ulink
+url="ftp://packages.linuxfromscratch.org/pub/common-packages/textutils-2.0.tar.bz2">
+ftp://packages.linuxfromscratch.org/pub/common-packages/textutils-2.0.tar.bz2</ulink>
+
+</para></listitem>
+
diff --git a/chapter04/toplevel.sgml b/chapter04/toplevel.sgml
new file mode 100644
index 000000000..17a50b17d
--- /dev/null
+++ b/chapter04/toplevel.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Browse FTP:
+ <ulink
+url="ftp://packages.linuxfromscratch.org/">
+ftp://packages.linuxfromscratch.org</ulink>
+
+</para></listitem>
+
diff --git a/chapter04/utillinux.sgml b/chapter04/utillinux.sgml
new file mode 100644
index 000000000..2ffcb979a
--- /dev/null
+++ b/chapter04/utillinux.sgml
@@ -0,0 +1,9 @@
+<listitem><para>
+
+Util Linux (2.10r) 883 KB:
+ <ulink
+url="ftp://packages.linuxfromscratch.org/pub/common-packages/util-linux-2.10r.tar.bz2">
+ftp://packages.linuxfromscratch.org/pub/common-packages/util-linux-2.10r.tar.bz2</ulink>
+
+</para></listitem>
+
diff --git a/chapter04/vim.sgml b/chapter04/vim.sgml
new file mode 100644
index 000000000..c142d899e
--- /dev/null
+++ b/chapter04/vim.sgml
@@ -0,0 +1,17 @@
+<listitem><para>
+
+Vim-rt (5.7) 905 KB:
+ <ulink
+url="ftp://packages.linuxfromscratch.org/pub/common-packages/vim-5.7-rt.tar.bz2">
+ftp://packages.linuxfromscratch.org/pub/common-packages/vim-5.7-rt.tar.bz2</ulink>
+
+</para></listitem>
+
+<listitem><para>
+
+Vim-src (5.7) 963 KB:
+ <ulink
+url="ftp://packages.linuxfromscratch.org/pub/common-packages/vim-5.7-src.tar.bz2">
+ftp://packages.linuxfromscratch.org/pub/common-packages/vim-5.7-src.tar.bz2</ulink>
+
+</para></listitem>
diff --git a/chapter05/bash-static-exp.sgml b/chapter05/bash-static-exp.sgml
new file mode 100644
index 000000000..8d627237e
--- /dev/null
+++ b/chapter05/bash-static-exp.sgml
@@ -0,0 +1,55 @@
+<sect2>
+<title>Command explanations</title>
+
+<para>
+<userinput>--enable-static-link:</userinput> This configure
+option causes Bash to be linked statically
+</para>
+
+<para>
+<userinput>--prefix=$LFS/usr:</userinput> This configure option installs
+all of Bash's files under the $LFS/usr directory, which becomes the /usr
+directory after you chroot into $LFS or when you reboot the system into LFS.
+</para>
+
+<para>
+<userinput>--bindir=$LFS/bin:</userinput> This installs the executable
+files in $LFS/bin. We do this because we want bash to be in /bin, not in
+/usr/bin. One reason being: your /usr partition might be on a seperate
+partition which has to be mounted at some point. Before that partition is
+mounted you need and will want to have bash available (it will be hard to
+execute the boot scripts without a shell for instance).
+</para>
+
+<para>
+<userinput>--disable-nls:</userinput> This disables the build of NLS
+(National Language Support). It's only a waste of time for now as Bash
+will be reinstalled in the next chapter.
+</para>
+
+<para>
+<userinput>--with-curses:</userinput> This causes Bash to be linked
+against the curses library instead of the default termcap library which
+is becoming obsolete.
+</para>
+
+<para>
+<userinput>ln -s bash sh:</userinput> This command creates the sh
+symlink that points to bash. Most scripts run themselves via 'sh'; sh
+being a symlink to the default system shell. Because programs and
+scripts don't know what shell you use by default (could be bash, ksh,
+korn, tch, csh and others) they use the common symlink sh which, if the
+system is properly setup, always points to the system's default shell.
+</para>
+
+<para>
+The <userinput>&amp;&amp;</userinput>'s at the end of every line cause
+the next command only to be executed when the previous command exists
+with a return value of 0 indicating success. In case you copy&amp;paste
+all of these commands on the shell you want to be ensured that if
+./configure fails, make isn't being executed and likewise if make fails
+that make install isn't being executed, and so forth.
+</para>
+
+</sect2>
+
diff --git a/chapter05/bash-static-inst.sgml b/chapter05/bash-static-inst.sgml
new file mode 100644
index 000000000..8c9115709
--- /dev/null
+++ b/chapter05/bash-static-inst.sgml
@@ -0,0 +1,42 @@
+<sect2>
+<title>Installation of Bash</title>
+
+<para>
+Install Bash by running the following commands:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>./configure --enable-static-link --prefix=$LFS/usr \</userinput>
+ <userinput>&nbsp;&nbsp;&nbsp;--bindir=$LFS/bin --disable-nls
+ --with-curses &amp;&amp;</userinput>
+ <userinput>make &amp;&amp;</userinput>
+ <userinput>make install &amp;&amp;</userinput>
+ <userinput>cd $LFS/bin &amp;&amp;</userinput>
+ <userinput>ln -s bash sh</userinput>
+
+</literallayout></blockquote>
+
+<para>
+If you get errors when compiling bash that tell you about not being able to
+find <quote>-lcurses</quote> run these two commands to create the
+missing symlink (so far we have not enountered one distribution that has
+this libncurses symlink setup properly, except for LFS systems where it
+is setup properly):
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>cd /usr/lib &amp;&amp;</userinput>
+ <userinput>ln -s libncurses.a libcurses.a</userinput>
+
+</literallayout></blockquote>
+
+<para>
+Note: Normally the libncurses.a file resides in the /usr/lib directory
+but it might reside in /lib (like it does on LFS systems). So check to
+make sure whether you should run the ln command in /usr/lib or in /lib
+</para>
+
+</sect2>
+
diff --git a/chapter05/bash-static.sgml b/chapter05/bash-static.sgml
new file mode 100644
index 000000000..a6b668eb0
--- /dev/null
+++ b/chapter05/bash-static.sgml
@@ -0,0 +1,9 @@
+<sect1 id="ch05-bash">
+<title>Installing Bash</title>
+
+&c5-pp-bash-inst;
+&c5-pp-bash-exp;
+&aa-bash-desc;
+
+</sect1>
+
diff --git a/chapter05/binutils-static-exp.sgml b/chapter05/binutils-static-exp.sgml
new file mode 100644
index 000000000..71370de2a
--- /dev/null
+++ b/chapter05/binutils-static-exp.sgml
@@ -0,0 +1,28 @@
+<sect2>
+<title>Command explanations</title>
+
+<para>
+<userinput>make -e:</userinput> The -e paramater tells make that
+environment variables take precedence over variables defined in the
+Makefile file(s). This is needed in order to successfully link binutils
+statically.
+</para>
+
+<para>
+<userinput>LDFLAGS=-all-static:</userinput> Setting the variable LDFLAGS
+to the value -all-static causes binutils to be linked statically.
+</para>
+
+<para>
+<userinput>tooldir=$LFS/usr:</userinput> Normally the tooldir (the
+directory where the executables from binutils end up in) is set to
+$(exec_prefix)/$(target_alias) which expands into, for example,
+/usr/i686-pc-linux-gnu. Since we only build for our own system we don't
+need this target specific directory in $LFS/usr. You would use that
+setup if you use your system to cross-compile (for example you would
+compile a package on your Intel machine that generates code that can be
+executed on Apple PowerPC machines).
+</para>
+
+</sect2>
+
diff --git a/chapter05/binutils-static-inst.sgml b/chapter05/binutils-static-inst.sgml
new file mode 100644
index 000000000..f08640f42
--- /dev/null
+++ b/chapter05/binutils-static-inst.sgml
@@ -0,0 +1,19 @@
+<sect2>
+<title>Installation of Binutils</title>
+
+<para>
+Install Binutils by running the following commands:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>./configure --prefix=$LFS/usr --disable-nls
+ &amp;&amp;</userinput>
+ <userinput>make -e LDFLAGS=-all-static tooldir=$LFS/usr
+ &amp;&amp;</userinput>
+ <userinput>make -e tooldir=$LFS/usr install</userinput>
+
+</literallayout></blockquote>
+
+</sect2>
+
diff --git a/chapter05/binutils-static.sgml b/chapter05/binutils-static.sgml
new file mode 100644
index 000000000..fd13dfd20
--- /dev/null
+++ b/chapter05/binutils-static.sgml
@@ -0,0 +1,9 @@
+<sect1 id="ch05-binutils">
+<title>Installing Binutils</title>
+
+&c5-pp-binutils-inst;
+&c5-pp-binutils-exp;
+&aa-binutils-desc;
+
+</sect1>
+
diff --git a/chapter05/bzip2-static-exp.sgml b/chapter05/bzip2-static-exp.sgml
new file mode 100644
index 000000000..788de4298
--- /dev/null
+++ b/chapter05/bzip2-static-exp.sgml
@@ -0,0 +1,33 @@
+<sect2>
+<title>Command explanations</title>
+
+<para>
+<userinput>sed: </userinput> The sed command here searches for the
+string "$(CC) $(CFLAGS) -o" and replaced it by "$(CC) $(CFLAGS)
+$(LDFLAGS) -o" in the Makefile file. We make that modification so it
+will be easier to link bzip2 statically.
+</para>
+
+<para>
+<userinput>...Makefile | make -f -:</userinput> Makefile
+is the last parameter of the sed command which indicates the file to
+search and replace in. sed normally sends the modified file to stdout
+(standard output) which will be your console. With the construction we
+use, sed's output will be piped to the make program. Normally when make
+is started it tries to find a number of files like Makefile. But we have
+modified the Makefile file so we don't want make to use it. The "-f -"
+parameter tells make to read it's input from another file, or from stdin
+(standard input) which the dash (-) implies. This is one way to do it.
+Another way would be to have sed write the output to a different file
+and tell make with the -f parameter to read that alternate file.
+</para>
+
+<para>
+<userinput>LDFLAGS=-static:</userinput> This is the second way we use to
+link a package statically. This is also the most common way. As you'll
+notice, the -all-static value is only used with the binutils package and
+won't be used throughout the rest of this book.
+</para>
+
+</sect2>
+
diff --git a/chapter05/bzip2-static-inst.sgml b/chapter05/bzip2-static-inst.sgml
new file mode 100644
index 000000000..277ee2f5e
--- /dev/null
+++ b/chapter05/bzip2-static-inst.sgml
@@ -0,0 +1,22 @@
+<sect2>
+<title>Installation of Bzip2</title>
+
+<para>
+Install Bzip2 by running the following commands:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>sed \</userinput>
+ <userinput>&nbsp;&nbsp;&nbsp;s/"\$(CC) \$(CFLAGS) -o"/"\$(CC) \$(CFLAGS)
+ \$(LDFLAGS) -o"/ \</userinput>
+ <userinput>&nbsp;&nbsp;&nbsp;Makefile | make -f -
+ LDFLAGS=-static &amp;&amp;</userinput>
+ <userinput>make PREFIX=$LFS/usr install &amp;&amp;</userinput>
+ <userinput>cd $LFS/usr/bin &amp;&amp;</userinput>
+ <userinput>mv bzcat bunzip2 bzip2 bzip2recover $LFS/bin</userinput>
+
+</literallayout></blockquote>
+
+</sect2>
+
diff --git a/chapter05/bzip2-static.sgml b/chapter05/bzip2-static.sgml
new file mode 100644
index 000000000..1cf203aed
--- /dev/null
+++ b/chapter05/bzip2-static.sgml
@@ -0,0 +1,9 @@
+<sect1 id="ch05-bzip2">
+<title>Installing Bzip2</title>
+
+&c5-pp-bzip2-inst;
+&c5-pp-bzip2-exp;
+&aa-bzip2-desc;
+
+</sect1>
+
diff --git a/chapter05/chapter5.sgml b/chapter05/chapter5.sgml
new file mode 100644
index 000000000..a5e82ebc6
--- /dev/null
+++ b/chapter05/chapter5.sgml
@@ -0,0 +1,26 @@
+<chapter id="chapter05">
+<title>Preparing the LFS system</title>
+
+&c5-introduction;
+
+&c5-pp-bash;
+&c5-pp-binutils;
+&c5-pp-bzip2;
+&c5-pp-diffutils;
+&c5-pp-fileutils;
+&c5-pp-gcc-local;
+&c5-pp-gcc;
+&c5-pp-kernel;
+&c5-pp-glibc;
+&c5-pp-grep;
+&c5-pp-gzip;
+&c5-pp-make;
+&c5-pp-sed;
+&c5-pp-shellutils;
+&c5-pp-tar;
+&c5-pp-textutils;
+&c5-pp-pwdgroup;
+&c5-pp-proc;
+
+</chapter>
+
diff --git a/chapter05/diffutils-static-exp.sgml b/chapter05/diffutils-static-exp.sgml
new file mode 100644
index 000000000..5c8261459
--- /dev/null
+++ b/chapter05/diffutils-static-exp.sgml
@@ -0,0 +1,16 @@
+<sect2>
+<title>Command explanations</title>
+
+<para>
+<userinput>CPPFLAGS=-Dre_max_failures=re_max_failures2:</userinput> The
+CPPFLAGS variable is a variable that's read by the cpp program (C
+PreProcessor). The value of this variable tells the preprocessor to
+replace every instance of re_max_failures it finds by re_max_failures2
+before handing the souce file to the compiler itself for compilation. This
+package has problems linking statically on certain platforms (depending
+on the Glibc version used on that system) and this construction fixes
+that problem.
+</para>
+
+</sect2>
+
diff --git a/chapter05/diffutils-static-inst.sgml b/chapter05/diffutils-static-inst.sgml
new file mode 100644
index 000000000..60874c3f9
--- /dev/null
+++ b/chapter05/diffutils-static-inst.sgml
@@ -0,0 +1,21 @@
+<sect2>
+<title>Installation of Diffutils</title>
+
+<para>
+Install Diffutils by running the following commands:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>export CPPFLAGS=-Dre_max_failures=re_max_failures2
+ &amp;&amp;</userinput>
+ <userinput>./configure --prefix=$LFS/usr --disable-nls
+ &amp;&amp;</userinput>
+ <userinput>unset CPPFLAGS &amp;&amp;</userinput>
+ <userinput>make LDFLAGS=-static &amp;&amp;</userinput>
+ <userinput>make install</userinput>
+
+</literallayout></blockquote>
+
+</sect2>
+
diff --git a/chapter05/diffutils-static.sgml b/chapter05/diffutils-static.sgml
new file mode 100644
index 000000000..c56846bf4
--- /dev/null
+++ b/chapter05/diffutils-static.sgml
@@ -0,0 +1,9 @@
+<sect1 id="ch05-diffutils">
+<title>Installing Diffutils</title>
+
+&c5-pp-diffutils-inst;
+&c5-pp-diffutils-exp;
+&aa-diffutils-desc;
+
+</sect1>
+
diff --git a/chapter05/fileutils-static-exp.sgml b/chapter05/fileutils-static-exp.sgml
new file mode 100644
index 000000000..c4cc59b1a
--- /dev/null
+++ b/chapter05/fileutils-static-exp.sgml
@@ -0,0 +1,12 @@
+<sect2>
+<title>Command explanations</title>
+
+<para>
+<userinput>--libexecdir=$LFS/bin:</userinput> This configure option will
+set the program executable directory to $LFS/bin. This is normally set
+to /usr/libexec, but nothing is placed in it. Changing it just prevents
+that directory from being created.
+</para>
+
+</sect2>
+
diff --git a/chapter05/fileutils-static-inst.sgml b/chapter05/fileutils-static-inst.sgml
new file mode 100644
index 000000000..f3e3553d6
--- /dev/null
+++ b/chapter05/fileutils-static-inst.sgml
@@ -0,0 +1,21 @@
+<sect2>
+<title>Installation of Fileutils</title>
+
+<para>
+Install Fileutils by running the following commands:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>./configure --disable-nls \</userinput>
+ <userinput>--prefix=$LFS/usr --libexecdir=$LFS/bin
+ --bindir=$LFS/bin &amp;&amp;</userinput>
+ <userinput>make LDFLAGS=-static &amp;&amp;</userinput>
+ <userinput>make install &amp;&amp;</userinput>
+ <userinput>cd $LFS/usr/bin &amp;&amp;</userinput>
+ <userinput>ln -s ../../bin/install install</userinput>
+
+</literallayout></blockquote>
+
+</sect2>
+
diff --git a/chapter05/fileutils-static.sgml b/chapter05/fileutils-static.sgml
new file mode 100644
index 000000000..6ca75bf0b
--- /dev/null
+++ b/chapter05/fileutils-static.sgml
@@ -0,0 +1,9 @@
+<sect1 id="ch05-fileutils">
+<title>Installing Fileutils</title>
+
+&c5-pp-fileutils-inst;
+&c5-pp-fileutils-exp;
+&aa-fileutils-desc;
+
+</sect1>
+
diff --git a/chapter05/gcc-local-exp.sgml b/chapter05/gcc-local-exp.sgml
new file mode 100644
index 000000000..0de2e3737
--- /dev/null
+++ b/chapter05/gcc-local-exp.sgml
@@ -0,0 +1,31 @@
+<sect2>
+<title>Command explanations</title>
+
+<para>
+<userinput>--with-local-prefix:</userinput> GCC installs a number of
+files in /usr/local even when --prefix is set to something else. We
+don't want that to happen in this case so that's why we use the
+--with-local-prefix option to change that path.
+</para>
+
+<para>
+<userinput>--with-gxx-include-dir:</userinput> GCC installs the C++
+header files in /usr/include/g++ by default. Again, in this case we
+don't want that to happen, we want this GCC version to be installed
+completely under /usr/local/gcc2952.
+</para>
+
+<para>
+<userinput>make bootstrap:</userinput> Compile GCC by bootstrapping it.
+Here that means the compiler will be built three times in total. First
+it is compiled with your system's default compiler (which will usually
+be a gcc or egcs compiler). This is stage 1 compiler. Then GCC will re-compile
+itself but instead of using your system's compiler it will use itself to
+compile itself again. This is the stage 2 compiler. Then it will compile
+itself a second time with the stage 2 compiler and compares the second
+and the third build to see if they are identical. If so, the
+compilation was a success.
+</para>
+
+</sect2>
+
diff --git a/chapter05/gcc-local-inst.sgml b/chapter05/gcc-local-inst.sgml
new file mode 100644
index 000000000..c98ab6e0f
--- /dev/null
+++ b/chapter05/gcc-local-inst.sgml
@@ -0,0 +1,56 @@
+<sect2>
+<title>Installation of GCC on the normal system if necessary</title>
+
+<para>
+In order to compile Glibc-2.1.3 later on you need to have gcc-2.95.2
+installed. Although any GCC version above 2.8 would do, 2.95.2 is the
+highly
+recommended version to use. egcs-2.91.x is also known to work. If you
+don't have gcc-2.95.x or egcs-2.91.x you need to install gcc-2.95.2 on
+your normal sytem before you can compile Glibc later in this chapter.
+</para>
+
+<para>
+To find out which compiler version your systems has, run the
+following command:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>gcc --version</userinput>
+
+</literallayout></blockquote>
+
+<para>
+If you normal Linux system does not have gcc-2.95.x or egcs-2.91.x
+installed you need to install it now. We won't replace the current
+compiler on your system, but instead we will install gcc in a separate
+directory (/usr/local/gcc2952). This way no binaries or header files will be
+replaced.
+</para>
+
+<para>
+After you unpacked the gcc-2.95.2 archive don't enter the newly created
+gcc-2.95.2 directory but stay in the $LFS/usr/src directory. Install GCC by
+running the following commands:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>mkdir $LFS/usr/src/gcc-build &amp;&amp;</userinput>
+ <userinput>cd $LFS/usr/src/gcc-build &amp;&amp;</userinput>
+ <userinput>../gcc-2.95.2/configure \</userinput>
+ <userinput>&nbsp;&nbsp;&nbsp;--prefix=/usr/local/gcc2952 \</userinput>
+ <userinput>&nbsp;&nbsp;&nbsp;--with-local-prefix=/usr/local/gcc2952
+ \</userinput>
+ <userinput>&nbsp;&nbsp;
+ --with-gxx-include-dir=/usr/local/gcc2952/include/g++ \</userinput>
+ <userinput>&nbsp;&nbsp;&nbsp;--enable-shared --enable-languages=c,c++
+ &amp;&amp;</userinput>
+ <userinput>make bootstrap &amp;&amp;</userinput>
+ <userinput>make install</userinput>
+
+</literallayout></blockquote>
+
+</sect2>
+
diff --git a/chapter05/gcc-local.sgml b/chapter05/gcc-local.sgml
new file mode 100644
index 000000000..91b02f55a
--- /dev/null
+++ b/chapter05/gcc-local.sgml
@@ -0,0 +1,9 @@
+<sect1 id="ch05-gcclocal">
+<title>Installing GCC on the normal system if necessary</title>
+
+&c5-pp-gcc-local-inst;
+&c5-pp-gcc-local-exp;
+&aa-gcc-desc;
+
+</sect1>
+
diff --git a/chapter05/gcc-static-exp.sgml b/chapter05/gcc-static-exp.sgml
new file mode 100644
index 000000000..62639d914
--- /dev/null
+++ b/chapter05/gcc-static-exp.sgml
@@ -0,0 +1,24 @@
+<sect2>
+<title>Command explanations</title>
+
+<para>
+<userinput>--enable-languages=c,c++:</userinput> This only builds the C
+and C++ compilers and not the other available compilers as they are, on
+the average, not often used. If you do need those other compilers don't
+use the --enable-languages parameter.
+</para>
+
+<para>
+<userinput>ln -s ../usr/lib/gcc-lib/*/2.95.2/cpp cpp:</userinput> This
+creates the $LFS/lib/cpp symlink. Some packages explicitely try to find
+cpp in /lib.
+</para>
+
+<para>
+<userinput>ln -s ../usr/lib/gcc-lib/*/2.95.2/cpp cpp:</userinput> This
+creates the $LFS/usr/lib/cpp symlink as there are packages that expect
+cpp to be in /usr/lib.
+</para>
+
+</sect2>
+
diff --git a/chapter05/gcc-static-inst.sgml b/chapter05/gcc-static-inst.sgml
new file mode 100644
index 000000000..fce53546a
--- /dev/null
+++ b/chapter05/gcc-static-inst.sgml
@@ -0,0 +1,36 @@
+<sect2>
+<title>Installation of GCC on the LFS system</title>
+
+<para>
+After you unpacked the gcc-2.95.2 archive don't enter the newly created
+gcc-2.95.2 directory but stay in the $LFS/usr/src directory. Install GCC by
+running the following commands:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>mkdir $LFS/usr/src/gcc-build &amp;&amp;</userinput>
+ <userinput>cd $LFS/usr/src/gcc-build &amp;&amp;</userinput>
+ <userinput>../gcc-2.95.2/configure --prefix=/usr \</userinput>
+ <userinput>&nbsp;&nbsp;&nbsp;--with-gxx-include-dir=/usr/include/g++
+ \</userinput>
+ <userinput>&nbsp;&nbsp;&nbsp;--enable-languages=c,c++ --disable-nls
+ &amp;&amp;</userinput>
+ <userinput>make -e LDFLAGS=-static bootstrap &amp;&amp;</userinput>
+ <userinput>make prefix=$LFS/usr local_prefix=$LFS/usr/local
+ \</userinput>
+ <userinput>&nbsp;&nbsp;&nbsp;gxx_include_dir=$LFS/usr/include/g++
+ install &amp;&amp;</userinput>
+ <userinput>cd $LFS/lib &amp;&amp;</userinput>
+ <userinput>ln -s ../usr/lib/gcc-lib/*/2.95.2/cpp cpp
+ &amp;&amp;</userinput>
+ <userinput>cd $LFS/usr/lib &amp;&amp;</userinput>
+ <userinput>ln -s gcc-lib/*/2.95.2/cpp cpp
+ &amp;&amp;</userinput>
+ <userinput>cd $LFS/usr/bin &amp;&amp;</userinput>
+ <userinput>ln -s gcc cc</userinput>
+
+</literallayout></blockquote>
+
+</sect2>
+
diff --git a/chapter05/gcc-static.sgml b/chapter05/gcc-static.sgml
new file mode 100644
index 000000000..813257ca0
--- /dev/null
+++ b/chapter05/gcc-static.sgml
@@ -0,0 +1,9 @@
+<sect1 id="ch05-gcc">
+<title>Installing GCC on the LFS system</title>
+
+&c5-pp-gcc-inst;
+&c5-pp-gcc-exp;
+&aa-gcc-desc;
+
+</sect1>
+
diff --git a/chapter05/glibc-exp.sgml b/chapter05/glibc-exp.sgml
new file mode 100644
index 000000000..b325b739d
--- /dev/null
+++ b/chapter05/glibc-exp.sgml
@@ -0,0 +1,29 @@
+<sect2>
+<title>Command explanations</title>
+
+<para>
+<userinput>patch -Np1 -i ../glibc-2.1.3.patch:</userinput> This applies
+a patch that fixes a minor bug in Glibc. Glibc defines a few variables
+names with illegal characters in the name. Bash-2.03 and older don't
+complain about that but Bash-2.04 does and won't compile Glibc properly.
+</para>
+
+<para>
+<userinput>--enable-add-ons:</userinput> This enabled the add-ons that
+we install with Glibc: linuxthreads and crypt.
+</para>
+
+<para>
+<userinput>--with-headers=$LFS/usr/include:</userinput> This makes Glibc
+use the kernel header files on our LFS system and not the kernel header
+files from your starting distribution which may be out-of-date or
+modified.
+</para>
+
+<para>
+<userinput>make install_root=$LFS:</userinput> This is the Glibc way to
+specify the equivalent of --prefix=.
+</para>
+
+</sect2>
+
diff --git a/chapter05/glibc-inst.sgml b/chapter05/glibc-inst.sgml
new file mode 100644
index 000000000..122f37ac2
--- /dev/null
+++ b/chapter05/glibc-inst.sgml
@@ -0,0 +1,111 @@
+<sect2>
+<title>Installation of Glibc</title>
+
+<para>
+Unpack the glibc-crypt and glibc-linuxthreads in the glibc-2.1.3
+directory, not in $LFS/usr/src. Don't enter the created directories. Just
+unpack them and leave it with that.
+</para>
+
+<para>
+A few default parameters of Glibc need to be changed, such as the
+directory where the shared libraries are supposed to be installed in and
+the directory that contains the system configuration files. For this
+purpose you need to create the <filename class="directory">
+$LFS/usr/src/glibc-build</filename> directory and cd into that directory
+with:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>mkdir $LFS/usr/src/glibc-build &amp;&amp;</userinput>
+ <userinput>cd $LFS/usr/src/glibc-build</userinput>
+
+</literallayout></blockquote>
+
+<para>
+In that directory you create a new file <filename>configparms</filename>
+by running the following:
+</para>
+
+<literallayout>
+
+<userinput>cat &gt; configparms &lt;&lt; "EOF"</userinput>
+# Begin configparms
+
+slibdir=/lib
+sysconfdir=/etc
+
+# End configparms
+<userinput>EOF</userinput>
+
+</literallayout>
+
+<para>
+Before we actually install Glibc you need to unpack the Glibc patch
+file.
+</para>
+
+<para>
+Please note that the configure script of Glibc may complain about
+certain files in the /usr/include directory being too old and will be
+replaced, or that some symlink is not supposed to be there anymore (like
+the /usr/include/scsi symlink that's present on older Linux systems). If
+it asks you to move a symlink like scsi out of the way, please do so. If
+it says it will replace old files by the newer Glibc files you can
+ignore that. Glibc does not know that it will end up on $LFS when the
+configure script is run.
+</para>
+
+<para>
+If your system had already a suitable GCC version installed, change to the
+<filename class="directory">$LFS/usr/src/glibc-build</filename>
+directory and install Glibc by running the following
+commands:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>cd ../glibc-2.1.3 &amp;&amp;</userinput>
+ <userinput>patch -Np1 -i ../glibc-2.1.3.patch &amp;&amp;</userinput>
+ <userinput>cd $LFS/usr/src/glibc-build &amp;&amp;</userinput>
+ <userinput>../glibc-2.1.3/configure \</userinput>
+ <userinput>&nbsp;&nbsp;&nbsp;--prefix=/usr --enable-add-ons
+ \</userinput>
+ <userinput>&nbsp;&nbsp;&nbsp;--with-headers=$LFS/usr/include
+ \</userinput>
+ <userinput>&nbsp;&nbsp;&nbsp;--libexecdir=/usr/bin &amp;&amp;
+ </userinput>
+ <userinput>make &amp;&amp;</userinput>
+ <userinput>make install_root=$LFS install &amp;&amp;</userinput>
+ <userinput>make install_root=$LFS localedata/install-locales</userinput>
+
+</literallayout></blockquote>
+
+<para>
+If your system didn't have a suitable GCC version installed, change to the
+<filename class="directory">$LFS/usr/src/glibc-build</filename>
+directory and install Glibc using the gcc-2.95.2 you just installed by
+running the following commands:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>cd ../glibc-2.1.3 &amp;&amp;</userinput>
+ <userinput>patch -Np1 -i ../glibc-2.1.3.patch &amp;&amp;</userinput>
+ <userinput>cd $LFS/usr/src/glibc-build &amp;&amp;</userinput>
+ <userinput>CC=/usr/local/gcc2952/bin/gcc \</userinput>
+ <userinput>&nbsp;&nbsp;&nbsp;../glibc-2.1.3/configure --prefix=/usr
+ --enable-add-ons \</userinput>
+ <userinput>&nbsp;&nbsp;&nbsp;--with-headers=$LFS/usr/include \
+ </userinput>
+ <userinput>&nbsp;&nbsp;&nbsp;--libexecdir=/usr/bin &amp;&amp;
+ </userinput>
+ <userinput>make &amp;&amp;</userinput>
+ <userinput>make install_root=$LFS install &amp;&amp;</userinput>
+ <userinput>make install_root=$LFS localedata/install-locales</userinput>
+
+</literallayout></blockquote>
+
+</sect2>
+
diff --git a/chapter05/glibc-nss.sgml b/chapter05/glibc-nss.sgml
new file mode 100644
index 000000000..a281e60c9
--- /dev/null
+++ b/chapter05/glibc-nss.sgml
@@ -0,0 +1,38 @@
+<sect2>
+<title>Copying old NSS library files</title>
+
+<para>
+If your normal Linux system runs glibc-2.0, you need to copy the NSS
+library files to the LFS partition. Certain statically linked programs
+still depend on the NSS library, especially programs that need to lookup
+usernames,userid's and groupid's. You can check which C library version
+your normal Linux system uses by running:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>strings /lib/libc* | grep "release version"</userinput>
+
+</literallayout></blockquote>
+
+<para>
+The output of that command should tell you something like this:
+</para>
+
+<blockquote><literallayout>
+ GNU C Library stable release version 2.1.3, by Roland McGrath et al.
+</literallayout></blockquote>
+
+<para>
+If you have Glibc-2.0.x installed on your starting distribution, copy
+the NSS library files by running:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>cp -av /lib/libnss* $LFS/lib</userinput>
+
+</literallayout></blockquote>
+
+</sect2>
+
diff --git a/chapter05/glibc.sgml b/chapter05/glibc.sgml
new file mode 100644
index 000000000..5c03144a9
--- /dev/null
+++ b/chapter05/glibc.sgml
@@ -0,0 +1,9 @@
+<sect1 id="ch05-glibc">
+<title>Installing Glibc</title>
+
+&c5-pp-glibc-inst;
+&c5-pp-glibc-nss;
+&c5-pp-glibc-exp;
+&aa-glibc-desc;
+
+</sect1>
diff --git a/chapter05/grep-static-inst.sgml b/chapter05/grep-static-inst.sgml
new file mode 100644
index 000000000..ecf2051ee
--- /dev/null
+++ b/chapter05/grep-static-inst.sgml
@@ -0,0 +1,21 @@
+<sect2>
+<title>Installation of Grep</title>
+
+<para>
+Install Grep by running the following commands:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>export CPPFLAGS=-Dre_max_failures=re_max_failures2
+ &amp;&amp;</userinput>
+ <userinput>./configure --prefix=$LFS/usr --disable-nls
+ &amp;&amp;</userinput>
+ <userinput>unset CPPFLAGS &amp;&amp;</userinput>
+ <userinput>make LDFLAGS=-static &amp;&amp;</userinput>
+ <userinput>make install</userinput>
+
+</literallayout></blockquote>
+
+</sect2>
+
diff --git a/chapter05/grep-static.sgml b/chapter05/grep-static.sgml
new file mode 100644
index 000000000..5887148af
--- /dev/null
+++ b/chapter05/grep-static.sgml
@@ -0,0 +1,8 @@
+<sect1 id="ch05-grep">
+<title>Installing Grep</title>
+
+&c5-pp-grep-inst;
+&aa-grep-desc;
+
+</sect1>
+
diff --git a/chapter05/gzip-static-inst.sgml b/chapter05/gzip-static-inst.sgml
new file mode 100644
index 000000000..0b9c58409
--- /dev/null
+++ b/chapter05/gzip-static-inst.sgml
@@ -0,0 +1,22 @@
+<sect2>
+<title>Installation of Gzip</title>
+
+<para>
+Before you install Gzip you have to unpack the gzip patch file.
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>patch -Np1 -i ../gzip-1.2.4a.patch &amp;&amp;</userinput>
+ <userinput>./configure --prefix=$LFS/usr --disable-nls
+ &amp;&amp;</userinput>
+ <userinput>make LDFLAGS=-static &amp;&amp;</userinput>
+ <userinput>make install &amp;&amp;</userinput>
+ <userinput>cp $LFS/usr/bin/gunzip $LFS/usr/bin/gzip
+ $LFS/bin &amp;&amp;</userinput>
+ <userinput>rm $LFS/usr/bin/gunzip $LFS/usr/bin/gzip</userinput>
+
+</literallayout></blockquote>
+
+</sect2>
+
diff --git a/chapter05/gzip-static.sgml b/chapter05/gzip-static.sgml
new file mode 100644
index 000000000..0737c6728
--- /dev/null
+++ b/chapter05/gzip-static.sgml
@@ -0,0 +1,8 @@
+<sect1 id="ch05-gzip">
+<title>Installing Gzip</title>
+
+&c5-pp-gzip-inst;
+&aa-gzip-desc;
+
+</sect1>
+
diff --git a/chapter05/introduction.sgml b/chapter05/introduction.sgml
new file mode 100644
index 000000000..881a7e9ed
--- /dev/null
+++ b/chapter05/introduction.sgml
@@ -0,0 +1,55 @@
+<sect1 id="ch05-introduction">
+<title>Introduction</title>
+
+<para>
+In the following chapters we will install all the software that belongs to
+a basic Linux system. After you're done with this chapter you have a
+fully working Linux system. The remaining chapters deal with setting up
+networking, creating the boot scripts and adding an entry to lilo.conf so
+that you can boot your LFS system.
+</para>
+
+<para>
+The software in this chapter will be linked statically. These programs
+will be re-installed in the next chapter and linked dynamically. The
+reason for the static version first is that there is a chance that our
+normal Linux system and your LFS system aren't using the same C
+Library versions. If the programs in the first part are linked against
+an older C library version, those programs might not work well on the
+LFS system.
+</para>
+
+<para>
+The key to learn what makes Linux tick is to know exactly what packages
+are used for and why you or the system needs them. Descriptions
+of the package content are provided after the Installation subsection of each
+package and in Appendix A as well.
+</para>
+
+<para>
+We're about to start with installing the first set of packages. These
+packages will be, as previously explained, linked statically.
+</para>
+
+<para>
+During the installation of various packages you will most likely see
+compiler warnings scrolling by on your screen. These are normal and can
+be safely ignored. They are just that, warnings (mostly about improper
+use of the C or C++ syntax, but not illegal use. It's just that often C
+standards changed and packages still use the old standard which is not a
+problem).
+</para>
+
+<para>
+Before we start, make sure you have the LFS environment variable setup
+if you plan on using it, by running the following command:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>echo $LFS</userinput>
+
+</literallayout></blockquote>
+
+</sect1>
+
diff --git a/chapter05/kernel-exp.sgml b/chapter05/kernel-exp.sgml
new file mode 100644
index 000000000..1ff6f17ee
--- /dev/null
+++ b/chapter05/kernel-exp.sgml
@@ -0,0 +1,35 @@
+<sect2>
+<title>Command explanations</title>
+
+<para>
+<userinput>yes "" | make config:</userinput> This runs make config and
+answers "Y" to every question the config script asks the user. We're not
+configuring the real kernel here, we just need to have some sort of
+configure file created so that we can run make dep next that will create
+a few files in $LFS/usr/src/linux/include/linux like version.h among
+others that we will need to compilg Glibc and other packages later in
+chroot.
+</para>
+
+<para>
+<userinput>make dep:</userinput> make dep checks dependencies and sets
+up the dependencies file. We don't really care about the dependency
+checks, but what we do care about is that make dep creates those
+aforementioned files in $LFS/usr/src/linux/include/linux we will be
+needing later on.
+</para>
+
+<para>
+<userinput>ln -s ../src/linux/include/linux linux</userinput> and
+<userinput>ln -s ../src/linux/include/asm asm:</userinput> These
+commands create the linux and asm symlinks in the $LFS/usr/include
+directory that point to the proper directories in the Linux source tree.
+Packages that need kernel headers include them with lines like #include
+&lt;linux/errno.h&gt;. These paths are relative to the /usr/include
+directory so the /usr/include/linux link points to the directory
+containing the Linux kernel header files. The same goes for the asm
+symlink.
+</para>
+
+</sect2>
+
diff --git a/chapter05/kernel-inst.sgml b/chapter05/kernel-inst.sgml
new file mode 100644
index 000000000..0d36fa1af
--- /dev/null
+++ b/chapter05/kernel-inst.sgml
@@ -0,0 +1,49 @@
+<sect2>
+<title>Installation of Linux Kernel</title>
+
+<para>
+We won't be compiling a new kernel image yet. We'll do that after we
+have finished the installation of the basic system software in this
+chapter. But because certain software need the kernel header files, we're
+going to unpack the kernel archive now and set it up so that we can
+compile package that need the kernel.
+</para>
+
+<para>
+Create the kernel configuration file by running the following command:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>yes "" | make config</userinput>
+
+</literallayout></blockquote>
+
+<para>
+Ignore the warning <emphasis>Broken pipe</emphasis> you might see at the
+end. Now run the following commands to set up all the dependencies correctly:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>make dep</userinput>
+
+</literallayout></blockquote>
+
+<para>
+Now that that's done, we need to create the <filename class="symlink">
+$LFS/usr/include/linux</filename> and the <filename class="symlink">
+$LFS/usr/include/asm</filename> symlinks. Create them by running the
+following commands:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>cd $LFS/usr/include &amp;&amp;</userinput>
+ <userinput>ln -s ../src/linux/include/linux linux &amp;&amp;</userinput>
+ <userinput>ln -s ../src/linux/include/asm asm</userinput>
+
+</literallayout></blockquote>
+
+</sect2>
+
diff --git a/chapter05/kernel.sgml b/chapter05/kernel.sgml
new file mode 100644
index 000000000..be1bf3b45
--- /dev/null
+++ b/chapter05/kernel.sgml
@@ -0,0 +1,9 @@
+<sect1 id="ch05-kernel">
+<title>Installing Linux Kernel</title>
+
+&c5-pp-kernel-inst;
+&c5-pp-kernel-exp;
+&aa-kernel-desc;
+
+</sect1>
+
diff --git a/chapter05/make-static-inst.sgml b/chapter05/make-static-inst.sgml
new file mode 100644
index 000000000..74fee7dea
--- /dev/null
+++ b/chapter05/make-static-inst.sgml
@@ -0,0 +1,18 @@
+<sect2>
+<title>Installation of Make</title>
+
+<para>
+Install Make by running the following commands:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>./configure --prefix=$LFS/usr
+ --disable-nls &amp;&amp;</userinput>
+ <userinput>make LDFLAGS=-static &amp;&amp;</userinput>
+ <userinput>make install</userinput>
+
+</literallayout></blockquote>
+
+</sect2>
+
diff --git a/chapter05/make-static.sgml b/chapter05/make-static.sgml
new file mode 100644
index 000000000..9380ad1c5
--- /dev/null
+++ b/chapter05/make-static.sgml
@@ -0,0 +1,8 @@
+<sect1 id="ch05-make">
+<title>Installing Make</title>
+
+&c5-pp-make-inst;
+&aa-make-desc;
+
+</sect1>
+
diff --git a/chapter05/proc.sgml b/chapter05/proc.sgml
new file mode 100644
index 000000000..044ccd6c6
--- /dev/null
+++ b/chapter05/proc.sgml
@@ -0,0 +1,23 @@
+<sect1 id="ch05-proc">
+<title>Mounting $LFS/proc file system</title>
+
+<para>
+In order for certain programs to function properly the proc file system
+must be mounted and available from within the chroot'ed environment as
+well. It's not a problem to mount the proc file system twice
+or even more than that, since it's a virtual file system maintained by
+the kernel itself.
+</para>
+
+<para>
+Mount the proc file system under $LFS/proc by running the following command:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>mount proc $LFS/proc -t proc</userinput>
+
+</literallayout></blockquote>
+
+</sect1>
+
diff --git a/chapter05/pwdgroup.sgml b/chapter05/pwdgroup.sgml
new file mode 100644
index 000000000..db7343aa6
--- /dev/null
+++ b/chapter05/pwdgroup.sgml
@@ -0,0 +1,53 @@
+<sect1 id="ch05-pwdgroup">
+<title>Creating passwd and group files</title>
+
+<para>
+In order for user and group root to be recognized and to be able to logon
+it needs an entry in the /etc/passwd and /etc/group file. Besides the
+group root a couple of other groups are recommended and needed by
+packages. The groups with their GID's below aren't part of any standard.
+The LSB only recommends besides a group root a group bin to be present
+with GID 1. Other group names and GID's can be chosen by yourself. Well
+written packages don't depend on GID numbers but just use the group
+name, it doesn't matter all that much what GID a group has. Since there
+aren't any standards for groups I won't follow any conventions used by
+Debian, RedHat and others. The groups added here are the groups the
+MAKEDEV script (the script that creates the device files in the /dev
+directory) mentions.
+</para>
+
+<para>
+Create a new file <filename>$LFS/etc/passwd</filename> by running the
+following command:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>echo "root:x:0:0:root:/root:/bin/bash" &gt;
+ $LFS/etc/passwd</userinput>
+
+</literallayout></blockquote>
+
+<para>
+Create a new file <filename>$LFS/etc/group</filename> by running the
+following:
+</para>
+
+<literallayout>
+
+<userinput>cat &gt; $LFS/etc/group &lt;&lt; "EOF"</userinput>
+ root:x:0:
+ bin:x:1:
+ sys:x:2:
+ kmem:x:3:
+ tty:x:4:
+ uucp:x:5:
+ daemon:x:6:
+ floppy:x:7:
+ disk:x:8:
+<userinput>EOF</userinput>
+
+</literallayout>
+
+</sect1>
+
diff --git a/chapter05/sed-static-inst.sgml b/chapter05/sed-static-inst.sgml
new file mode 100644
index 000000000..701fbcf1b
--- /dev/null
+++ b/chapter05/sed-static-inst.sgml
@@ -0,0 +1,21 @@
+<sect2>
+<title>Installation of Sed</title>
+
+<para>
+Install Sed by running the following commands:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>export CPPFLAGS=-Dre_max_failures=re_max_failures2
+ &amp;&amp;</userinput>
+ <userinput>./configure --prefix=$LFS/usr
+ --disable-nls --bindir=$LFS/bin &amp;&amp;</userinput>
+ <userinput>unset CPPFLAGS &amp;&amp;</userinput>
+ <userinput>make LDFLAGS=-static &amp;&amp;</userinput>
+ <userinput>make install</userinput>
+
+</literallayout></blockquote>
+
+</sect2>
+
diff --git a/chapter05/sed-static.sgml b/chapter05/sed-static.sgml
new file mode 100644
index 000000000..91cfdb6b9
--- /dev/null
+++ b/chapter05/sed-static.sgml
@@ -0,0 +1,8 @@
+<sect1 id="ch05-sed">
+<title>Installing Sed</title>
+
+&c5-pp-sed-inst;
+&aa-sed-desc;
+
+</sect1>
+
diff --git a/chapter05/shellutils-static-inst.sgml b/chapter05/shellutils-static-inst.sgml
new file mode 100644
index 000000000..5c65eefc7
--- /dev/null
+++ b/chapter05/shellutils-static-inst.sgml
@@ -0,0 +1,21 @@
+<sect2>
+<title>Installation of Sh-utils</title>
+
+<para>
+Install Shellutils by running the following commands:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>./configure --prefix=$LFS/usr
+ --disable-nls &amp;&amp;</userinput>
+ <userinput>make LDFLAGS=-static &amp;&amp;</userinput>
+ <userinput>make install &amp;&amp;</userinput>
+ <userinput>cd $LFS/usr/bin &amp;&amp;</userinput>
+ <userinput>mv date echo false pwd stty $LFS/bin &amp;&amp;</userinput>
+ <userinput>mv su true uname hostname $LFS/bin</userinput>
+
+</literallayout></blockquote>
+
+</sect2>
+
diff --git a/chapter05/shellutils-static.sgml b/chapter05/shellutils-static.sgml
new file mode 100644
index 000000000..59b371b04
--- /dev/null
+++ b/chapter05/shellutils-static.sgml
@@ -0,0 +1,8 @@
+<sect1 id="ch05-shutils">
+<title>Installing Shellutils</title>
+
+&c5-pp-shellutils-inst;
+&aa-shellutils-desc;
+
+</sect1>
+
diff --git a/chapter05/tar-static-inst.sgml b/chapter05/tar-static-inst.sgml
new file mode 100644
index 000000000..4a811c8cf
--- /dev/null
+++ b/chapter05/tar-static-inst.sgml
@@ -0,0 +1,40 @@
+<sect2>
+<title>Installation of Tar</title>
+
+<para>
+If you want to be able to directly use bzip2 files with tar, use the tar
+patch avaiable from the LFS FTP site. This patch will add the -y option
+to tar which works the same as the -z option to tar (which you can use
+for gzip files).
+</para>
+
+<para>
+Apply the patch by running the following command:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>cd src &amp;&amp;</userinput>
+ <userinput>patch -i ../../gnutarpatch.txt &amp;&amp;</userinput>
+ <userinput>cd ..</userinput>
+
+</literallayout></blockquote>
+
+<para>
+Install Tar by running the following commands:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>./configure --prefix=$LFS/usr
+ --disable-nls \</userinput>
+ <userinput>&nbsp;&nbsp;&nbsp;--libexecdir=$LFS/usr/bin &amp;&amp;
+ </userinput>
+ <userinput>make LDFLAGS=-static &amp;&amp;</userinput>
+ <userinput>make prefix=$LFS/usr install &amp;&amp;</userinput>
+ <userinput>mv $LFS/usr/bin/tar $LFS/bin</userinput>
+
+</literallayout></blockquote>
+
+</sect2>
+
diff --git a/chapter05/tar-static.sgml b/chapter05/tar-static.sgml
new file mode 100644
index 000000000..17ca6b885
--- /dev/null
+++ b/chapter05/tar-static.sgml
@@ -0,0 +1,8 @@
+<sect1 id="ch05-tar">
+<title>Installing Tar</title>
+
+&c5-pp-tar-inst;
+&aa-tar-desc;
+
+</sect1>
+
diff --git a/chapter05/textutils-static-inst.sgml b/chapter05/textutils-static-inst.sgml
new file mode 100644
index 000000000..2fe91620c
--- /dev/null
+++ b/chapter05/textutils-static-inst.sgml
@@ -0,0 +1,19 @@
+<sect2>
+<title>Installation of Textutils</title>
+
+<para>
+Install Textutils by running the following commands:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>./configure --prefix=$LFS/usr
+ --disable-nls &amp;&amp;</userinput>
+ <userinput>make LDFLAGS=-static &amp;&amp;</userinput>
+ <userinput>make install &amp;&amp;</userinput>
+ <userinput>mv $LFS/usr/bin/cat $LFS/bin</userinput>
+
+</literallayout></blockquote>
+
+</sect2>
+
diff --git a/chapter05/textutils-static.sgml b/chapter05/textutils-static.sgml
new file mode 100644
index 000000000..2870918e9
--- /dev/null
+++ b/chapter05/textutils-static.sgml
@@ -0,0 +1,8 @@
+<sect1 id="ch05-textutils">
+<title>Installing Textutils</title>
+
+&c5-pp-textutils-inst;
+&aa-textutils-desc;
+
+</sect1>
+
diff --git a/chapter06/aboutdebug.sgml b/chapter06/aboutdebug.sgml
new file mode 100644
index 000000000..5bd7a671e
--- /dev/null
+++ b/chapter06/aboutdebug.sgml
@@ -0,0 +1,69 @@
+<sect1 id="ch06-aboutdebug">
+<title>About debugging symbols</title>
+
+<para>
+Most programs and libraries by default are compiled with debugging
+symbols and optimizing level 2 (gcc options -g and -O2) and are compiled
+for a specific CPU. On Intel platforms software is compiled for i386
+processors by default. If you don't wish to run software on other
+machines other than your own, you might want to change the default
+compiler options so that they will be compiled with a higher
+optimization level, no debugging symbols and generate code for your
+specific architecture. Let me first explain what debugging symbols
+are.
+</para>
+
+<para>
+A program compiled with debugging symbols means you can run a program or
+library through a debugger and the debugger's output will be user friendlier.
+These debugging symbols also enlarge the program or library significantly.
+</para>
+
+<para>
+To remove debugging symbols from a binary (must be an a.out or ELF binary)
+run <userinput>strip --strip-debug filename</userinput> You can use wild cards
+if you need to strip debugging symbols from multiple files (use something like
+strip --strip-debug $LFS/usr/bin/*). Another, easier, options is just
+not to compile programs with debugging symbols. Most people will probably
+never use a debugger on software, so by leaving those symbols out you
+can save a lot of diskspace.
+</para>
+
+<para>
+Before you wonder if these debugging symbols would make a big difference,
+here are some statistics:
+</para>
+
+<itemizedlist>
+
+<listitem><para>
+ A dynamic Bash binary with debugging symbols: 1.2MB
+</para></listitem>
+
+<listitem><para>
+ A dynamic Bash binary without debugging symbols: 478KB
+</para></listitem>
+
+<listitem><para>
+ /lib and /usr/lib (glibc and gcc files) with debugging
+ symbols: 87MB
+</para></listitem>
+
+<listitem><para>
+ /lib and /usr/lib (glibc and gcc files) without
+ debugging symbols: 16MB
+</para></listitem>
+
+</itemizedlist>
+
+<para>
+Sizes may vary depending on which compiler was used and which C library
+version was used to link dynamic programs against, but your results will be
+similar if you compare programs with and without debugging symbols. After
+I was done with this chapter and stripped all debugging symbols from all LFS
+binaries and libraries I regained a little over 102 MB of disk space. Quite
+the difference.
+</para>
+
+</sect1>
+
diff --git a/chapter06/autoconf-inst.sgml b/chapter06/autoconf-inst.sgml
new file mode 100644
index 000000000..6d66859a3
--- /dev/null
+++ b/chapter06/autoconf-inst.sgml
@@ -0,0 +1,17 @@
+<sect2>
+<title>Installation of Autoconf</title>
+
+<para>
+Install Autoconf by running the following commands:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>./configure --prefix=/usr &amp;&amp;</userinput>
+ <userinput>make &amp;&amp;</userinput>
+ <userinput>make install</userinput>
+
+</literallayout></blockquote>
+
+</sect2>
+
diff --git a/chapter06/autoconf.sgml b/chapter06/autoconf.sgml
new file mode 100644
index 000000000..5a02716d9
--- /dev/null
+++ b/chapter06/autoconf.sgml
@@ -0,0 +1,7 @@
+<sect1 id="ch06-autoconf">
+<title>Installing Autoconf</title>
+
+&c6-in-autoconf-inst;
+&aa-autoconf-desc;
+
+</sect1>
diff --git a/chapter06/automake-inst.sgml b/chapter06/automake-inst.sgml
new file mode 100644
index 000000000..a15fd7f82
--- /dev/null
+++ b/chapter06/automake-inst.sgml
@@ -0,0 +1,16 @@
+<sect2>
+<title>Installation of Automake</title>
+
+<para>
+Install Automake by running the following commands:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>./configure --prefix=/usr &amp;&amp;</userinput>
+ <userinput>make install</userinput>
+
+</literallayout></blockquote>
+
+</sect2>
+
diff --git a/chapter06/automake.sgml b/chapter06/automake.sgml
new file mode 100644
index 000000000..f916b4f52
--- /dev/null
+++ b/chapter06/automake.sgml
@@ -0,0 +1,7 @@
+<sect1 id="ch06-automake">
+<title>Installing Automake</title>
+
+&c6-in-automake-inst;
+&aa-automake-desc;
+
+</sect1>
diff --git a/chapter06/bash-inst.sgml b/chapter06/bash-inst.sgml
new file mode 100644
index 000000000..790ea5344
--- /dev/null
+++ b/chapter06/bash-inst.sgml
@@ -0,0 +1,33 @@
+<sect2>
+<title>Installation of Bash</title>
+
+<para>
+Install Bash by running the following commands:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>./configure --prefix=/usr --with-curses
+ &amp;&amp;</userinput>
+ <userinput>make &amp;&amp;</userinput>
+ <userinput>make install &amp;&amp;</userinput>
+ <userinput>logout</userinput>
+
+</literallayout></blockquote>
+
+<para>
+Replace the static bash with the dynamic bash and re-enter the chroot'ed
+environment by running:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>mv $LFS/usr/bin/bash $LFS/usr/bin/bashbug
+ $LFS/bin &amp;&amp;</userinput>
+ <userinput>chroot $LFS /usr/bin/env -i HOME=/root /bin/bash
+ --login</userinput>
+
+</literallayout></blockquote>
+
+</sect2>
+
diff --git a/chapter06/bash.sgml b/chapter06/bash.sgml
new file mode 100644
index 000000000..490355fa7
--- /dev/null
+++ b/chapter06/bash.sgml
@@ -0,0 +1,7 @@
+<sect1 id="ch06-bash">
+<title>Installing Bash</title>
+
+&c6-in-bash-inst;
+&aa-bash-desc;
+
+</sect1>
diff --git a/chapter06/bashprofile.sgml b/chapter06/bashprofile.sgml
new file mode 100644
index 000000000..f34ae8251
--- /dev/null
+++ b/chapter06/bashprofile.sgml
@@ -0,0 +1,38 @@
+<sect1 id="ch06-bashprofile">
+<title>Creating $LFS/root/.bash_profile</title>
+
+<para>
+When we have entered the chroot'ed environment in the next section we
+want to export a couple of environment variables in that shell such as
+PS1, PATH and others variables you want to have set. For that purpose we'll
+create the $LFS/root/.bash_profile file which will be read by bash when we
+enter the chroot environment.
+</para>
+
+<para>
+Create a new file <filename>$LFS/root/.bash_profile</filename>
+by running the following.
+</para>
+
+<literallayout>
+
+<userinput>cat &gt; $LFS/root/.bash_profile &lt;&lt; "EOF"</userinput>
+# Begin /root/.bash_profile
+
+PS1='\u:\w\$ '
+PATH=/bin:/usr/bin:/sbin:/usr/sbin
+
+export PS1 PATH
+
+# End /root/.bash_profile
+<userinput>EOF</userinput>
+
+</literallayout>
+
+<para>
+You can add more environment variables,aliases and whatever else you
+need/want at your own discretion as you deem them necessary.
+</para>
+
+</sect1>
+
diff --git a/chapter06/bin86-inst.sgml b/chapter06/bin86-inst.sgml
new file mode 100644
index 000000000..0f5abe4e2
--- /dev/null
+++ b/chapter06/bin86-inst.sgml
@@ -0,0 +1,16 @@
+<sect2>
+<title>Installation of Bin86</title>
+
+<para>
+Install Linux86 by running the following commands:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>make &amp;&amp;</userinput>
+ <userinput>make PREFIX=/usr install</userinput>
+
+</literallayout></blockquote>
+
+</sect2>
+
diff --git a/chapter06/bin86.sgml b/chapter06/bin86.sgml
new file mode 100644
index 000000000..d3d41ceeb
--- /dev/null
+++ b/chapter06/bin86.sgml
@@ -0,0 +1,7 @@
+<sect1 id="ch06-bin86">
+<title>Installing Bin86</title>
+
+&c6-in-bin86-inst;
+&aa-bin86-desc;
+
+</sect1>
diff --git a/chapter06/binutils-inst.sgml b/chapter06/binutils-inst.sgml
new file mode 100644
index 000000000..ed32aab18
--- /dev/null
+++ b/chapter06/binutils-inst.sgml
@@ -0,0 +1,16 @@
+<sect2><title>Installation of Binutils</title>
+
+<para>
+Install Binutils by running the following commands:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>./configure --prefix=/usr --enable-shared &amp;&amp;</userinput>
+ <userinput>make -e tooldir=/usr &amp;&amp;</userinput>
+ <userinput>make -e tooldir=/usr install</userinput>
+
+</literallayout></blockquote>
+
+</sect2>
+
diff --git a/chapter06/binutils.sgml b/chapter06/binutils.sgml
new file mode 100644
index 000000000..da8ae86b7
--- /dev/null
+++ b/chapter06/binutils.sgml
@@ -0,0 +1,7 @@
+<sect1 id="ch06-binutils">
+<title>Installing Binutils</title>
+
+&c6-in-binutils-inst;
+&aa-binutils-desc;
+
+</sect1>
diff --git a/chapter06/bison-exp.sgml b/chapter06/bison-exp.sgml
new file mode 100644
index 000000000..427d991a3
--- /dev/null
+++ b/chapter06/bison-exp.sgml
@@ -0,0 +1,10 @@
+<sect2>
+<title>Command explanations</title>
+
+<para>
+<userinput>--datadir=/usr/share/bison:</userinput> This install the
+bison grammar files in /usr/share/bison rather than /usr/share.
+</para>
+
+</sect2>
+
diff --git a/chapter06/bison-inst.sgml b/chapter06/bison-inst.sgml
new file mode 100644
index 000000000..51c2231e4
--- /dev/null
+++ b/chapter06/bison-inst.sgml
@@ -0,0 +1,45 @@
+<sect2>
+<title>Installation of Bison</title>
+
+<para>
+Install Bison by running the following commands:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>./configure --prefix=/usr \</userinput>
+ <userinput>&nbsp;&nbsp;&nbsp;--datadir=/usr/share/bison
+ &amp;&amp;</userinput>
+ <userinput>make &amp;&amp;</userinput>
+ <userinput>make install</userinput>
+
+</literallayout></blockquote>
+
+<para>
+Some programs don't know about bison and try to find the yacc program
+(bison is a (better) alternative for yacc). So to please those few
+programs out there we'll create a yacc script that calls bison and have
+it emulate yacc's output file name conventions).
+</para>
+
+<para>
+Create a new file <filename>/usr/bin/yacc</filename> by running the
+following:
+</para>
+
+<literallayout>
+
+<userinput>cat &gt; /usr/bin/yacc &lt;&lt; "EOF"</userinput>
+#!/bin/sh
+# Begin /usr/bin/yacc
+
+/usr/bin/bison -y $*
+
+# End /usr/bin/yacc
+<userinput>EOF</userinput>
+<userinput>chmod 755 /usr/bin/yacc</userinput>
+
+</literallayout>
+
+</sect2>
+
diff --git a/chapter06/bison.sgml b/chapter06/bison.sgml
new file mode 100644
index 000000000..cc30f0862
--- /dev/null
+++ b/chapter06/bison.sgml
@@ -0,0 +1,9 @@
+<sect1 id="ch06-bison">
+<title>Installing Bison</title>
+
+&c6-in-bison-inst;
+&c6-in-bison-exp;
+&aa-bison-desc;
+
+</sect1>
+
diff --git a/chapter06/bzip2-exp.sgml b/chapter06/bzip2-exp.sgml
new file mode 100644
index 000000000..10e4129e4
--- /dev/null
+++ b/chapter06/bzip2-exp.sgml
@@ -0,0 +1,12 @@
+<sect2>
+<title>Command explanations</title>
+
+<para>
+<userinput>make -f Makefile-libbz2_so:</userinput> This will cause bzip2
+to be build using a different Makefile file, in this case the
+Makefile-libbz2_so file which creates a dynamic libbz2.so library and
+links the bzip2 utilities against it.
+</para>
+
+</sect2>
+
diff --git a/chapter06/bzip2-inst.sgml b/chapter06/bzip2-inst.sgml
new file mode 100644
index 000000000..1e244d197
--- /dev/null
+++ b/chapter06/bzip2-inst.sgml
@@ -0,0 +1,40 @@
+<sect2>
+<title>Installation of Bzip2</title>
+
+<para>
+Install Bzip2 by running the following commands:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>make -f Makefile-libbz2_so &amp;&amp;</userinput>
+ <userinput>make bzip2recover libbz2.a &amp;&amp;</userinput>
+ <userinput>cp bzip2-shared /bin/bzip2 &amp;&amp;</userinput>
+ <userinput>cp bzip2recover /bin &amp;&amp;</userinput>
+ <userinput>cp bzip2.1 /usr/share/man/man1 &amp;&amp;</userinput>
+ <userinput>cp bzlib.h /usr/include &amp;&amp;</userinput>
+ <userinput>cp -a libbz2.so* libbz2.a /lib &amp;&amp;</userinput>
+ <userinput>rm /usr/lib/libbz2.a &amp;&amp;</userinput>
+ <userinput>cd /bin &amp;&amp;</userinput>
+ <userinput>rm bunzip2 && ln -s bzip2 bunzip2 &amp;&amp;</userinput>
+ <userinput>rm bzcat && ln -s bzip2 bzcat &amp;&amp;</userinput>
+ <userinput>cd /usr/share/man/man1 &amp;&amp;</userinput>
+ <userinput>ln -s bzip2.1 bunzip2.1 &amp;&amp;</userinput>
+ <userinput>ln -s bzip2.1 bzcat.1 &amp;&amp;</userinput>
+ <userinput>ln -s bzip2.1 bzip2recover.1</userinput>
+
+</literallayout></blockquote>
+
+<para>
+Although it's not strictly a part of a basic LFS system it's worth
+mentioning that you can download a patch for Tar which enables the tar
+program to compress and uncompress using bzip2/bunzip2 easily. With a
+plain tar you'll have to use constructions like bzcat file.tar.bz|tar
+xv or tar --use-compress-prog=bunzip2 -xvf file.tar.bz2 to use bzip2 and
+bunzip2 with tar. This patch gives you the -y option so you can unpack a
+Bzip2 archive with tar xvfy file.tar.bz2. Applying this patch will be
+mentioned later on when you re-install the Tar package.
+</para>
+
+</sect2>
+
diff --git a/chapter06/bzip2.sgml b/chapter06/bzip2.sgml
new file mode 100644
index 000000000..bf623846f
--- /dev/null
+++ b/chapter06/bzip2.sgml
@@ -0,0 +1,8 @@
+<sect1 id="ch06-bzip2">
+<title>Installing Bzip2</title>
+
+&c6-in-bzip2-inst;
+&c6-in-bzip2-exp;
+&aa-bzip2-desc;
+
+</sect1>
diff --git a/chapter06/chapter6.sgml b/chapter06/chapter6.sgml
new file mode 100644
index 000000000..28942d01c
--- /dev/null
+++ b/chapter06/chapter6.sgml
@@ -0,0 +1,62 @@
+<chapter id="chapter06">
+<title>Installing basic system software</title>
+
+&c6-introduction;
+&c6-aboutdebug;
+&c6-bashprofile;
+&c6-in-chroot;
+
+&c6-in-creatingdev;
+&c6-in-manpages;
+&c6-in-ed;
+&c6-in-patch;
+&c6-in-findutils;
+&c6-in-mawk;
+&c6-in-ncurses;
+&c6-in-vim;
+&c6-in-gcc;
+&c6-in-bison;
+&c6-in-less;
+&c6-in-groff;
+&c6-in-man;
+&c6-in-perl;
+&c6-in-m4;
+&c6-in-texinfo;
+&c6-in-autoconf;
+&c6-in-automake;
+&c6-in-bash;
+&c6-in-flex;
+&c6-in-file;
+&c6-in-libtool;
+&c6-in-bin86;
+&c6-in-binutils;
+&c6-in-bzip2;
+&c6-in-gettext;
+&c6-in-consoletools;
+&c6-in-consoledata;
+&c6-in-diffutils;
+&c6-in-e2fsprogs;
+&c6-in-fileutils;
+&c6-in-grep;
+&c6-in-gzip;
+&c6-in-ldso;
+&c6-in-lilo;
+&c6-in-make;
+&c6-in-modutils;
+&c6-in-procinfo;
+&c6-in-procps;
+&c6-in-psmisc;
+&c6-in-sed;
+&c6-in-shellutils;
+&c6-in-shadowpwd;
+&c6-in-sysklogd;
+&c6-in-sysvinit;
+&c6-in-tar;
+&c6-in-textutils;
+&c6-in-utillinux;
+
+&c6-nssremove;
+&c6-configure;
+
+</chapter>
+
diff --git a/chapter06/chroot.sgml b/chapter06/chroot.sgml
new file mode 100644
index 000000000..911f7a39d
--- /dev/null
+++ b/chapter06/chroot.sgml
@@ -0,0 +1,32 @@
+<sect1 id="ch06-chroot">
+<title>Entering the chroot'ed environment</title>
+
+<para>
+It's time to enter our chroot'ed environment in order to install the
+rest of the software we need.
+</para>
+
+<para>
+Enter the following command to enter the chroot'ed environment. From
+this point on there's no need to use the $LFS variable anymore, because
+everything you do will be restricted to the LFS partition (since / is
+actually /mnt/lfs but the shell doesn't know that).
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>cd $LFS &amp;&amp;</userinput>
+ <userinput>chroot $LFS /usr/bin/env -i HOME=/root /bin/bash
+ --login</userinput>
+
+</literallayout></blockquote>
+
+<para>
+Now that we are inside a chroot'ed environment, we can continue to
+install all the basic system software. Make sure you execute all the
+following commands in this chapter from within the chroot'ed
+environment.
+</para>
+
+</sect1>
+
diff --git a/chapter06/cofnig-ldso.sgml b/chapter06/cofnig-ldso.sgml
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/chapter06/cofnig-ldso.sgml
diff --git a/chapter06/config-glibc.sgml b/chapter06/config-glibc.sgml
new file mode 100644
index 000000000..5272c536e
--- /dev/null
+++ b/chapter06/config-glibc.sgml
@@ -0,0 +1,88 @@
+<sect2><title>Configuring Glibc</title>
+
+<para>
+We need to create the /etc/nsswitch.conf file. Although glibc should provide
+defaults when this file is missing or corrupt, it's defaults don't work work
+well with networking which will be dealt with in a later chapter. Also, our
+timezone needs to be setup.
+</para>
+
+<para>
+Create a new file <filename>/etc/nsswitch.conf</filename> by running the
+following:
+</para>
+
+<literallayout>
+
+<userinput>cat &gt; /etc/nsswitch.conf &lt;&lt; "EOF"</userinput>
+# Begin /etc/nsswitch.conf
+
+passwd: files
+group: files
+shadow: files
+
+publickey: files
+
+hosts: files dns
+networks: files
+
+protocols: db files
+services: db files
+ethers: db files
+rpc: db files
+
+netgroup: db files
+
+# End /etc/nsswitch.conf
+<userinput>EOF</userinput>
+
+</literallayout>
+
+<para>
+Run the <userinput>tzselect</userinput> script and answer the questions
+regarding your timezone. When you're done, the script will give you the
+location of the timezone file you need.
+</para>
+
+<para>
+Create the <filename class="directory">/etc/localtime</filename> symlink
+by running:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>cd /etc &amp;&amp;</userinput>
+ <userinput>rm localtime &amp;&amp;</userinput>
+ <userinput>ln -s ../usr/share/zoneinfo/&lt;tzselect's output&gt;
+ localtime</userinput>
+
+</literallayout></blockquote>
+
+<para>
+tzselect's output can be something like <emphasis>EST5EDT</emphasis> or
+<emphasis>Canada/Eastern</emphasis>.
+</para>
+
+<para>
+The symlink you would create with that information would be:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>ln -s ../usr/share/zoneinfo/EST5EDT localtime</userinput>
+
+</literallayout></blockquote>
+
+<para>
+Or:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>ln -s ../usr/share/zoneinfo/Canada/Eastern localtime
+ </userinput>
+
+</literallayout></blockquote>
+
+</sect2>
+
diff --git a/chapter06/config-ldso.sgml b/chapter06/config-ldso.sgml
new file mode 100644
index 000000000..c340db151
--- /dev/null
+++ b/chapter06/config-ldso.sgml
@@ -0,0 +1,43 @@
+<sect2>
+<title>Configuring Dynamic Loader</title>
+
+<para>
+By default the dynamic loader searches a few default paths for dynamic
+libraries, so there normally isn't a need for the
+<filename>/etc/ld.so.conf</filename> file unless you have extra
+directories in which you want the system to search for paths. The
+<filename class="directory">/usr/local/lib</filename> directory isn't
+searched through for dynamic libraries by default, so we want to add
+this path so when you install software you won't be suprised by them not
+running for some reason.
+</para>
+
+<para>
+Create a new file <filename>/etc/ld.so.conf</filename> by running the
+following:
+</para>
+
+<literallayout>
+
+<userinput>cat &gt; /etc/ld.so.conf &lt;&lt; "EOF"</userinput>
+# Begin /etc/ld.so.conf
+
+/lib
+/usr/lib
+/usr/local/lib
+
+# End /etc/ld.so.conf
+<userinput>EOF</userinput>
+
+</literallayout>
+
+<para>
+Although it's not necessary to add the
+<filename class="directory">/lib</filename> and
+<filename class="directory">/usr/lib</filename> directories it doesn't
+hurt. This way you see right away what's being searched and don't have
+to remeber the default search paths if you don't want to.
+</para>
+
+</sect2>
+
diff --git a/chapter06/config-lilo.sgml b/chapter06/config-lilo.sgml
new file mode 100644
index 000000000..1e61cc9f1
--- /dev/null
+++ b/chapter06/config-lilo.sgml
@@ -0,0 +1,46 @@
+<sect2>
+<title>Configuring Lilo</title>
+
+<para>
+We're not going to create lilo's configuration file from scratch, but we'll
+use the file from your normal Linux system. This file is different on every
+machine and thus I can't create it here. Since you would want to have the
+same options regarding lilo as you have when you're using your normal Linux
+system you would create the file exactly as it is on the normal system.
+</para>
+
+<para>
+Copy the Lilo configuration file and kernel images that Lilo uses by
+running the following commands from a shell on your normal Linux system.
+Don't execute these commands from your chroot'ed shell.
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>cp /etc/lilo.conf $LFS/etc</userinput>
+ <userinput>cp /boot/&lt;kernel images&gt; $LFS/boot</userinput>
+
+</literallayout></blockquote>
+
+<para>
+Before you can execute the second command you need to know the names of
+the kernel images. You can't just copy all files from the /boot
+directory. The /etc/lilo.conf file contains the names of the kernel
+images you're using. Open the file and look for lines like this:
+</para>
+
+<blockquote><literallayout>
+
+ image=/boot/vmlinuz
+
+</literallayout></blockquote>
+
+<para>
+Look for all <emphasis>image</emphasis> variables and their values
+represent the name and location of the image files. These files will
+usually be in /boot but they might be in other directories as well,
+depending on your distribution's conventions.
+</para>
+
+</sect2>
+
diff --git a/chapter06/config-shadowpwd.sgml b/chapter06/config-shadowpwd.sgml
new file mode 100644
index 000000000..ba63621f8
--- /dev/null
+++ b/chapter06/config-shadowpwd.sgml
@@ -0,0 +1,34 @@
+<sect2><title>Configuring Shadow Password Suite</title>
+
+<para>
+This package contains the utilities to modify user's passwords, add new
+users/groups, delete users/groups and more. I'm not going to explain to you
+what 'password shadowing' means. You can read all about that in the doc/HOWTO
+file within the unpacked shadow password suite's source tree. There's one
+thing you should keep in mind, if you decide to use shadow support, that
+programs that need to verify passwords (examples are xdm, ftp daemons,
+pop3 daemons, etc) need to be 'shadow-compliant', eg. they need to
+be able to work with shadow'ed passwords.
+</para>
+
+<para>
+Shadow'ed passwords are not enabled by default. Simply installing the
+shadow password suite does not enable shadow'ed passwords.
+</para>
+
+<para>
+Now is a very good moment to read chapter 5 of the doc/HOWTO file. You can
+read how you can enable shadow'ed passwords, how to test whether shadowing
+works and if not, how to disable it again.
+</para>
+
+<para>
+The documentation mentions something about the creastion of npasswd and
+nshadow after you run pwconv. This is an error in the documentation.
+Those two files will be be created. After you run pwconv, /etc/passwd
+will no longer contain the passwords and /etc/shadow will. You don't
+need to rename the npasswd and nshadow files yourself.
+</para>
+
+</sect2>
+
diff --git a/chapter06/config-sysklogd.sgml b/chapter06/config-sysklogd.sgml
new file mode 100644
index 000000000..12a12563b
--- /dev/null
+++ b/chapter06/config-sysklogd.sgml
@@ -0,0 +1,27 @@
+<sect2><title>Configuring Sysklogd</title>
+
+<para>
+Create a new file <filename>/etc/syslog.conf</filename> by running the
+following:
+</para>
+
+<literallayout>
+
+<userinput>cat &gt; /etc/syslog.conf &lt;&lt; "EOF"</userinput>
+# Begin /etc/syslog.conf
+
+auth,authpriv.* -/var/log/auth.log
+*.*;auth,authpriv.none -/var/log/sys.log
+daemon.* -/var/log/daemon.log
+kern.* -/var/log/kern.log
+mail.* -/var/log/mail.log
+user.* -/var/log/user.log
+*.emerg *
+
+# End /etc/syslog.conf
+<userinput>EOF</userinput>
+
+</literallayout>
+
+</sect2>
+
diff --git a/chapter06/config-sysvinit.sgml b/chapter06/config-sysvinit.sgml
new file mode 100644
index 000000000..ada018f9d
--- /dev/null
+++ b/chapter06/config-sysvinit.sgml
@@ -0,0 +1,43 @@
+<sect2><title>Configuring Sysvinit</title>
+
+<para>
+Create a new file <filename>/etc/inittab</filename> by running the
+following:
+</para>
+
+<literallayout>
+
+<userinput>cat &gt; /etc/inittab &lt;&lt; "EOF"</userinput>
+# Begin /etc/inittab
+
+id:3:initdefault:
+
+si::sysinit:/etc/init.d/rcS
+
+l0:0:wait:/etc/init.d/rc 0
+l1:S1:wait:/etc/init.d/rc 1
+l2:2:wait:/etc/init.d/rc 2
+l3:3:wait:/etc/init.d/rc 3
+l4:4:wait:/etc/init.d/rc 4
+l5:5:wait:/etc/init.d/rc 5
+l6:6:wait:/etc/init.d/rc 6
+
+ft:06:respawn:/sbin/sulogin
+
+ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
+
+su:S1:respawn:/sbin/sulogin
+1:2345:respawn:/sbin/agetty tty1 9600
+2:2345:respawn:/sbin/agetty tty2 9600
+3:2345:respawn:/sbin/agetty tty3 9600
+4:2345:respawn:/sbin/agetty tty4 9600
+5:2345:respawn:/sbin/agetty tty5 9600
+6:2345:respawn:/sbin/agetty tty6 9600
+
+# End /etc/inittab
+<userinput>EOF</userinput>
+
+</literallayout>
+
+</sect2>
+
diff --git a/chapter06/config-vim.sgml b/chapter06/config-vim.sgml
new file mode 100644
index 000000000..4e8146aa1
--- /dev/null
+++ b/chapter06/config-vim.sgml
@@ -0,0 +1,24 @@
+<sect2><title>Configuring Vim</title>
+
+<para>
+By default Vim runs in vi compatible mode. Some people might like this,
+but I have a high preference to run vim in vim mode (else I wouldn't
+have included Vim in this book but the original Vi). Create the
+<filename>/root/.vimrc</filename> by running the following:
+</para>
+
+<literallayout>
+
+<userinput>cat &gt; /root/.vimrc &lt;&lt; "EOF"</userinput>
+" Begin /root/.vimrc
+
+set nocompatible
+set bs=2
+
+" End /root/.vimrc
+<userinput>EOF</userinput>
+
+</literallayout>
+
+</sect2>
+
diff --git a/chapter06/configure.sgml b/chapter06/configure.sgml
new file mode 100644
index 000000000..b3478066c
--- /dev/null
+++ b/chapter06/configure.sgml
@@ -0,0 +1,19 @@
+<sect1 id="ch06-configure">
+<title>Configuring essential software</title>
+
+<para>
+Now that all software is installed, all that we need to do to get a few
+programs running properly is to create their configuration files.
+</para>
+
+&c6-cf-vim;
+&c6-cf-glibc;
+&c6-cf-ldso;
+&c6-cf-lilo;
+&c6-cf-sysklogd;
+&c6-cf-shadowpwd;
+&c6-cf-sysvinit;
+&c6-cf-utmp;
+&c6-cf-password;
+
+</sect1>
diff --git a/chapter06/consoledata-inst.sgml b/chapter06/consoledata-inst.sgml
new file mode 100644
index 000000000..382be9e93
--- /dev/null
+++ b/chapter06/consoledata-inst.sgml
@@ -0,0 +1,24 @@
+<sect2>
+<title>Installation of Console-data</title>
+
+<para>
+Replace &lt;path-to-kmap-file&gt; below with the correct path to the
+desired kmap.gz file. An example could be i386/qwerty/us.kmap.gz
+</para>
+
+<para>
+Install Console-data by running the following commands:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>./configure --prefix=/usr &amp;&amp;</userinput>
+ <userinput>make &amp;&amp;</userinput>
+ <userinput>make install &amp;&amp;</userinput>
+ <userinput>cd /usr/share/keymaps &amp;&amp;</userinput>
+ <userinput>ln -s &lt;path-to-kmap-file&gt; defkeymap.kmap.gz</userinput>
+
+</literallayout></blockquote>
+
+</sect2>
+
diff --git a/chapter06/consoledata.sgml b/chapter06/consoledata.sgml
new file mode 100644
index 000000000..34cb0f36d
--- /dev/null
+++ b/chapter06/consoledata.sgml
@@ -0,0 +1,7 @@
+<sect1 id="ch06-consoledata">
+<title>Installing Consoledata</title>
+
+&c6-in-consoledata-inst;
+&aa-consoledata-desc;
+
+</sect1>
diff --git a/chapter06/consoletools-inst.sgml b/chapter06/consoletools-inst.sgml
new file mode 100644
index 000000000..364f065b7
--- /dev/null
+++ b/chapter06/consoletools-inst.sgml
@@ -0,0 +1,31 @@
+<sect2>
+<title>Installation of Console-tools</title>
+
+<para>
+Before you start installing Console-tools you have to unpack the
+console-tools-0.2.3.patch file.
+</para>
+
+<para>
+Install Console-tools by running the following commands:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>patch -Np1 -i ../console-tools-0.2.3.patch
+ &amp;&amp;</userinput>
+ <userinput>./configure --prefix=/usr &amp;&amp;</userinput>
+ <userinput>make &amp;&amp;</userinput>
+ <userinput>make install &amp;&amp;</userinput>
+ <userinput>cd doc/man &amp;&amp;</userinput>
+ <userinput>mv consolechars.8.in consolechars.8
+ &amp;&amp;</userinput>
+ <userinput>cp *.1 /usr/share/man/man1 &amp;&amp;</userinput>
+ <userinput>cp *.4 /usr/share/man/man4 &amp;&amp;</userinput>
+ <userinput>cp *.5 /usr/share/man/man5 &amp;&amp;</userinput>
+ <userinput>cp *.8 /usr/share/man/man8</userinput>
+
+</literallayout></blockquote>
+
+</sect2>
+
diff --git a/chapter06/consoletools.sgml b/chapter06/consoletools.sgml
new file mode 100644
index 000000000..819efbe58
--- /dev/null
+++ b/chapter06/consoletools.sgml
@@ -0,0 +1,7 @@
+<sect1 id="ch06-consoletools">
+<title>Installing Consoletools</title>
+
+&c6-in-consoletools-inst;
+&aa-consoletools-desc;
+
+</sect1>
diff --git a/chapter06/create-password.sgml b/chapter06/create-password.sgml
new file mode 100644
index 000000000..4c2aee8ab
--- /dev/null
+++ b/chapter06/create-password.sgml
@@ -0,0 +1,16 @@
+<sect2>
+<title>Creating root password</title>
+
+<para>
+Choose a password for user root and create it by running the following
+command:
+</para>
+
+<blockquote><literallayout>
+
+<userinput>passwd root</userinput>
+
+</literallayout></blockquote>
+
+</sect2>
+
diff --git a/chapter06/create-utmp.sgml b/chapter06/create-utmp.sgml
new file mode 100644
index 000000000..fad585278
--- /dev/null
+++ b/chapter06/create-utmp.sgml
@@ -0,0 +1,28 @@
+<sect2>
+<title>Creating the /var/run/utmp, /var/log/wtmp and /var/log/btmp
+files</title>
+
+<para>
+Programs like login, shutdown, uptime and others want to read from and write
+to the /var/run/utmp /var/log/btmp and /var/log/wtmp. These files contain
+information about who is currently logged in. It also contains information
+on when the computer was last booted and shutdown and a record of the
+bad login attemps.
+</para>
+
+<para>
+Create these files with their proper permissions by running the
+following commands:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>touch /var/run/utmp /var/log/wtmp /var/log/btmp
+ /var/log/lastlog &amp;&amp;</userinput>
+ <userinput>chmod 644 /var/run/utmp /var/log/wtmp /var/log/btmp
+ /var/log/lastlog</userinput>
+
+</literallayout></blockquote>
+
+</sect2>
+
diff --git a/chapter06/createdeventries.sgml b/chapter06/createdeventries.sgml
new file mode 100644
index 000000000..f67390dd7
--- /dev/null
+++ b/chapter06/createdeventries.sgml
@@ -0,0 +1,36 @@
+<sect2>
+<title>Creating the /dev entries</title>
+
+<para>
+Create the device files by running the following commands:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>cd /dev &amp;&amp;</userinput>
+ <userinput>./MAKEDEV -v generic</userinput>
+
+</literallayout></blockquote>
+
+<para>
+The <quote>generic</quote> parameter passed to the MAKEDEV script
+doesn't create all the devices you might need, such as audio devices,
+hdc, hdd and ohters. If you seem to be missing something tell MAKEDEV to
+create it. To create hdc replace generic with hdc. You can also add hdc
+to generic, so you would execute <userinput>./MAKEDEV -v generic
+hdc</userinput> to create the generic set of devices files, plus the
+files you need to be able to access hdc (and hdc1, hdc2, etc)
+</para>
+
+<para>
+Please note that this script dates back from 1997 and therefore can be
+outdated and not support newer hardware. If you need device files which
+aren't known by this script please read the Documentation/devices.txt
+file in a Linux source tree. This file lists all the major and minor
+numbers for all the device files that the kernel knows about. With this
+list you can create such device files yourself. See the mknod man page
+for more information on how to make device files yourself.
+</para>
+
+</sect2>
+
diff --git a/chapter06/creatingdev.sgml b/chapter06/creatingdev.sgml
new file mode 100644
index 000000000..8ae652d64
--- /dev/null
+++ b/chapter06/creatingdev.sgml
@@ -0,0 +1,10 @@
+<sect1 id="ch06-createdev">
+<title>Creating device files</title>
+
+&c6-in-makedev-inst;
+&c6-in-createdeventries;
+&c6-in-makedev-exp;
+&aa-makedev-desc;
+
+</sect1>
+
diff --git a/chapter06/diffutils-inst.sgml b/chapter06/diffutils-inst.sgml
new file mode 100644
index 000000000..9b2dd5587
--- /dev/null
+++ b/chapter06/diffutils-inst.sgml
@@ -0,0 +1,17 @@
+<sect2>
+<title>Installation of Diffutils</title>
+
+<para>
+Install Diffutils by running the following commands:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>./configure --prefix=/usr &amp;&amp;</userinput>
+ <userinput>make &amp;&amp;</userinput>
+ <userinput>make install</userinput>
+
+</literallayout></blockquote>
+
+</sect2>
+
diff --git a/chapter06/diffutils.sgml b/chapter06/diffutils.sgml
new file mode 100644
index 000000000..dab50cf84
--- /dev/null
+++ b/chapter06/diffutils.sgml
@@ -0,0 +1,7 @@
+<sect1 id="diffutils">
+<title>Installing Diffutils</title>
+
+&c6-in-diffutils-inst;
+&aa-diffutils-desc;
+
+</sect1>
diff --git a/chapter06/e2fsprogs-inst.sgml b/chapter06/e2fsprogs-inst.sgml
new file mode 100644
index 000000000..ca3324ce7
--- /dev/null
+++ b/chapter06/e2fsprogs-inst.sgml
@@ -0,0 +1,24 @@
+<sect2>
+<title>Installation of E2fsprogs</title>
+
+<para>
+Install E2fsprogs by running the following commands:
+</para>
+
+<para>
+Please note that the empty --with-root-prefix= option below is supposed
+to be like this. I did not forget to supply a value there.
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>./configure --prefix=/usr --with-root-prefix= \</userinput>
+ <userinput>&nbsp;&nbsp;&nbsp;--enable-elf-shlibs &amp;&amp;</userinput>
+ <userinput>make &amp;&amp;</userinput>
+ <userinput>make install &amp;&amp;</userinput>
+ <userinput>make install-libs</userinput>
+
+</literallayout></blockquote>
+
+</sect2>
+
diff --git a/chapter06/e2fsprogs.sgml b/chapter06/e2fsprogs.sgml
new file mode 100644
index 000000000..880c3c524
--- /dev/null
+++ b/chapter06/e2fsprogs.sgml
@@ -0,0 +1,7 @@
+<sect1 id="ch06-e2fsprogs">
+<title>Installing E2fsprogs</title>
+
+&c6-in-e2fsprogs-inst;
+&aa-e2fsprogs-desc;
+
+</sect1>
diff --git a/chapter06/ed-inst.sgml b/chapter06/ed-inst.sgml
new file mode 100644
index 000000000..9e846d210
--- /dev/null
+++ b/chapter06/ed-inst.sgml
@@ -0,0 +1,18 @@
+<sect2>
+<title>Installation of Ed</title>
+
+<para>
+Install Ed by running the following commands:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>./configure --prefix=/usr &amp;&amp;</userinput>
+ <userinput>make &amp;&amp;</userinput>
+ <userinput>make install &amp;&amp;</userinput>
+ <userinput>mv /usr/bin/ed /usr/bin/red /bin</userinput>
+
+</literallayout></blockquote>
+
+</sect2>
+
diff --git a/chapter06/ed.sgml b/chapter06/ed.sgml
new file mode 100644
index 000000000..776296b75
--- /dev/null
+++ b/chapter06/ed.sgml
@@ -0,0 +1,9 @@
+<sect1 id="ch06-ed">
+<title>Installing Ed</title>
+
+&c6-in-ed-inst;
+&aa-ed-desc;
+
+</sect1>
+
+
diff --git a/chapter06/file-inst.sgml b/chapter06/file-inst.sgml
new file mode 100644
index 000000000..bcfc90cf1
--- /dev/null
+++ b/chapter06/file-inst.sgml
@@ -0,0 +1,18 @@
+<sect2>
+<title>Installation of File</title>
+
+<para>
+Install File by running the following commands:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>./configure --prefix=/usr
+ --datadir=/usr/share/misc &amp;&amp;</userinput>
+ <userinput>make &amp;&amp;</userinput>
+ <userinput>make install</userinput>
+
+</literallayout></blockquote>
+
+</sect2>
+
diff --git a/chapter06/file.sgml b/chapter06/file.sgml
new file mode 100644
index 000000000..f1aa45af5
--- /dev/null
+++ b/chapter06/file.sgml
@@ -0,0 +1,8 @@
+<sect1 id="ch06-file">
+<title>Installing File</title>
+
+&c6-in-file-inst;
+&aa-file-desc;
+
+</sect1>
+
diff --git a/chapter06/fileutils-inst.sgml b/chapter06/fileutils-inst.sgml
new file mode 100644
index 000000000..d75acf173
--- /dev/null
+++ b/chapter06/fileutils-inst.sgml
@@ -0,0 +1,19 @@
+<sect2>
+<title>Installation of Fileutils</title>
+
+<para>
+Install Fileutils by running the following commands:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>./configure --prefix=/usr --bindir=/bin \</userinput>
+ <userinput>&nbsp;&nbsp;&nbsp;--libexecdir=/usr/bin
+ &amp;&amp;</userinput>
+ <userinput>make &amp;&amp;</userinput>
+ <userinput>make install</userinput>
+
+</literallayout></blockquote>
+
+</sect2>
+
diff --git a/chapter06/fileutils.sgml b/chapter06/fileutils.sgml
new file mode 100644
index 000000000..5d07c2b6f
--- /dev/null
+++ b/chapter06/fileutils.sgml
@@ -0,0 +1,7 @@
+<sect1 id="ch06-fileutils">
+<title>Installing Fileutils</title>
+
+&c6-in-fileutils-inst;
+&aa-fileutils-desc;
+
+</sect1>
diff --git a/chapter06/findutils-inst.sgml b/chapter06/findutils-inst.sgml
new file mode 100644
index 000000000..860c0d5b1
--- /dev/null
+++ b/chapter06/findutils-inst.sgml
@@ -0,0 +1,23 @@
+<sect2>
+<title>Installing Findutils</title>
+
+<para>
+Before you install Findutils you have to unpack the findutils patch
+file.
+</para>
+
+<para>
+Install Findutils by running the following commands:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>patch -Np1 -i ../findutils-4.1.patch &amp;&amp;</userinput>
+ <userinput>./configure --prefix=/usr &amp;&amp;</userinput>
+ <userinput>make &amp;&amp;</userinput>
+ <userinput>make libexecdir=/usr/bin install</userinput>
+
+</literallayout></blockquote>
+
+</sect2>
+
diff --git a/chapter06/findutils.sgml b/chapter06/findutils.sgml
new file mode 100644
index 000000000..bb2ea9d7a
--- /dev/null
+++ b/chapter06/findutils.sgml
@@ -0,0 +1,8 @@
+<sect1 id="ch06-findutils">
+<title>Installing Findutils</title>
+
+&c6-in-findutils-inst;
+&aa-findutils-desc;
+
+</sect1>
+
diff --git a/chapter06/flex-inst.sgml b/chapter06/flex-inst.sgml
new file mode 100644
index 000000000..4daaa3794
--- /dev/null
+++ b/chapter06/flex-inst.sgml
@@ -0,0 +1,17 @@
+<sect2>
+<title>Installation of Flex</title>
+
+<para>
+Install Flex by running the following commands:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>./configure --prefix=/usr &amp;&amp;</userinput>
+ <userinput>make &amp;&amp;</userinput>
+ <userinput>make install</userinput>
+
+</literallayout></blockquote>
+
+</sect2>
+
diff --git a/chapter06/flex.sgml b/chapter06/flex.sgml
new file mode 100644
index 000000000..adbbec451
--- /dev/null
+++ b/chapter06/flex.sgml
@@ -0,0 +1,7 @@
+<sect1 id="ch06-flex">
+<title>Installing Flex</title>
+
+&c6-in-flex-inst;
+&aa-flex-desc;
+
+</sect1>
diff --git a/chapter06/gcc-inst.sgml b/chapter06/gcc-inst.sgml
new file mode 100644
index 000000000..6014560a1
--- /dev/null
+++ b/chapter06/gcc-inst.sgml
@@ -0,0 +1,25 @@
+<sect2>
+<title>Installation of GCC</title>
+
+<para>
+After you unpacked the gcc-2.95.2 archive don't enter the newly created
+gcc-2.95.2 directory but stay in the /usr/src directory. Install GCC by
+running the following commands:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>mkdir /usr/src/gcc-build &amp;&amp;</userinput>
+ <userinput>cd /usr/src/gcc-build &amp;&amp;</userinput>
+ <userinput>../gcc-2.95.2/configure --prefix=/usr \</userinput>
+ <userinput>&nbsp;&nbsp;&nbsp;--with-gxx-include-dir=/usr/include/g++
+ \</userinput>
+ <userinput>&nbsp;&nbsp;&nbsp;--enable-shared
+ --enable-languages=c,c++ &amp;&amp;</userinput>
+ <userinput>make bootstrap &amp;&amp;</userinput>
+ <userinput>make install</userinput>
+
+</literallayout></blockquote>
+
+</sect2>
+
diff --git a/chapter06/gcc.sgml b/chapter06/gcc.sgml
new file mode 100644
index 000000000..08a1d3ec2
--- /dev/null
+++ b/chapter06/gcc.sgml
@@ -0,0 +1,8 @@
+<sect1 id="ch06-gcc">
+<title>Installing GCC</title>
+
+&c6-in-gcc-inst;
+&aa-gcc-desc;
+
+</sect1>
+
diff --git a/chapter06/gettext-inst.sgml b/chapter06/gettext-inst.sgml
new file mode 100644
index 000000000..aaa3bc125
--- /dev/null
+++ b/chapter06/gettext-inst.sgml
@@ -0,0 +1,18 @@
+<sect2>
+<title>Installation of Gettext</title>
+
+<para>
+Install Gettext by running the following commands:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>./configure --prefix=/usr &amp;&amp;</userinput>
+ <userinput>make &amp;&amp;</userinput>
+ <userinput>make install &amp;&amp;</userinput>
+ <userinput>mv /po-mode.el /usr/share/gettext</userinput>
+
+</literallayout></blockquote>
+
+</sect2>
+
diff --git a/chapter06/gettext.sgml b/chapter06/gettext.sgml
new file mode 100644
index 000000000..ff63d451e
--- /dev/null
+++ b/chapter06/gettext.sgml
@@ -0,0 +1,7 @@
+<sect1 id="ch06-gettext">
+<title>Installing Gettext</title>
+
+&c6-in-gettext-inst;
+&aa-gettext-desc;
+
+</sect1>
diff --git a/chapter06/grep-inst.sgml b/chapter06/grep-inst.sgml
new file mode 100644
index 000000000..d461dc799
--- /dev/null
+++ b/chapter06/grep-inst.sgml
@@ -0,0 +1,17 @@
+<sect2>
+<title>Installation of Grep</title>
+
+<para>
+Install Grep by running the following commands:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>./configure --prefix=/usr &amp;&amp;</userinput>
+ <userinput>make &amp;&amp;</userinput>
+ <userinput>make install</userinput>
+
+</literallayout></blockquote>
+
+</sect2>
+
diff --git a/chapter06/grep.sgml b/chapter06/grep.sgml
new file mode 100644
index 000000000..b658c5447
--- /dev/null
+++ b/chapter06/grep.sgml
@@ -0,0 +1,7 @@
+<sect1 id="ch06-grep">
+<title>Installing Grep</title>
+
+&c6-in-grep-inst;
+&aa-grep-desc;
+
+</sect1>
diff --git a/chapter06/groff-inst.sgml b/chapter06/groff-inst.sgml
new file mode 100644
index 000000000..62cff4745
--- /dev/null
+++ b/chapter06/groff-inst.sgml
@@ -0,0 +1,17 @@
+<sect2>
+<title>Installation of Groff</title>
+
+<para>
+Install Groff by running the following commands:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>./configure --prefix=/usr &amp;&amp;</userinput>
+ <userinput>make &amp;&amp;</userinput>
+ <userinput>make install</userinput>
+
+</literallayout></blockquote>
+
+</sect2>
+
diff --git a/chapter06/groff.sgml b/chapter06/groff.sgml
new file mode 100644
index 000000000..89c9d70cb
--- /dev/null
+++ b/chapter06/groff.sgml
@@ -0,0 +1,8 @@
+<sect1 id="ch06-groff">
+<title>Installing Groff</title>
+
+&c6-in-groff-inst;
+&aa-groff-desc;
+
+</sect1>
+
diff --git a/chapter06/gzip-inst.sgml b/chapter06/gzip-inst.sgml
new file mode 100644
index 000000000..9eb3acdeb
--- /dev/null
+++ b/chapter06/gzip-inst.sgml
@@ -0,0 +1,24 @@
+<sect2>
+<title>Installation of Gzip</title>
+
+<para>
+Install Gzip by running the following commands:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>./configure --prefix=/usr &amp;&amp;</userinput>
+ <userinput>make &amp;&amp;</userinput>
+ <userinput>make install &amp;&amp;</userinput>
+ <userinput>cd /usr/bin &amp;&amp;</userinput>
+ <userinput>mv gzip /bin &amp;&amp;</userinput>
+ <userinput>rm gunzip /bin/gunzip &amp;&amp;</userinput>
+ <userinput>cd /bin &amp;&amp;</userinput>
+ <userinput>ln -s gzip gunzip &amp;&amp;</userinput>
+ <userinput>ln -s gzip compress &amp;&amp;</userinput>
+ <userinput>ln -s gunzip uncompress</userinput>
+
+</literallayout></blockquote>
+
+</sect2>
+
diff --git a/chapter06/gzip.sgml b/chapter06/gzip.sgml
new file mode 100644
index 000000000..ad4a5d939
--- /dev/null
+++ b/chapter06/gzip.sgml
@@ -0,0 +1,7 @@
+<sect1 id="ch06-gzip">
+<title>Installing Gzip</title>
+
+&c6-in-gzip-inst;
+&aa-gzip-desc;
+
+</sect1>
diff --git a/chapter06/introduction.sgml b/chapter06/introduction.sgml
new file mode 100644
index 000000000..016a6d9c1
--- /dev/null
+++ b/chapter06/introduction.sgml
@@ -0,0 +1,14 @@
+<sect1 id="ch06-introduction">
+<title>Introduction</title>
+
+<para>
+The installation of all the software is pretty straightforward and
+you'll think it's so much easier and shorter to give the generic
+installation instructions for each package and only explain how to
+install something if a certain package requires an alternate installation
+method. Although I agree with you on that, I, however, choose to give the
+full instructions for each and every package. This is simply to avoid any
+possible confusion and errors.
+</para>
+
+</sect1>
diff --git a/chapter06/ldso-inst.sgml b/chapter06/ldso-inst.sgml
new file mode 100644
index 000000000..a452716d7
--- /dev/null
+++ b/chapter06/ldso-inst.sgml
@@ -0,0 +1,40 @@
+<sect2>
+<title>Installation of Ld.so</title>
+
+<para>
+Install Ld.so by running the following commands:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>cd util &amp;&amp;</userinput>
+ <userinput>make ldd ldconfig &amp;&amp;</userinput>
+ <userinput>cp ldd /bin &amp;&amp;</userinput>
+ <userinput>cp ldconfig /sbin &amp;&amp;</userinput>
+ <userinput>cd ../man &amp;&amp;</userinput>
+ <userinput>cp ldd.1 /usr/share/man/man1 &amp;&amp;</userinput>
+ <userinput>cp *.8 /usr/share/man/man8 &amp;&amp;</userinput>
+ <userinput>rm /usr/bin/ldd &amp;&amp;</userinput>
+ <userinput>hash -r</userinput>
+
+</literallayout></blockquote>
+
+<para>
+The <quote>hash -r</quote> command is to make bash forget about the
+locations of previously executed commands. If you have executed ldd
+before, bash expects it to be found in /usr/bin. Since we moved it to
+/bin, the cache needs to be purged so bash can find it in /bin when you
+want to execute it again.
+</para>
+
+<para>
+You might have noticed that we don't use the compiler optimizations for
+this package. The reason is that overriding the CFLAGS variable causes
+compilation problems. You would have to edit the Config.mk file and add
+the proper values to the CFLAGS variable and then compile the package.
+If you want to do that it's up to you. I don't think it's worth the
+trouble though. The ld and ldd programs usually are only rarely used.
+</para>
+
+</sect2>
+
diff --git a/chapter06/ldso.sgml b/chapter06/ldso.sgml
new file mode 100644
index 000000000..adc561d71
--- /dev/null
+++ b/chapter06/ldso.sgml
@@ -0,0 +1,7 @@
+<sect1 id="ch06-ldso">
+<title>Installing Ldso</title>
+
+&c6-in-ldso-inst;
+&aa-ldso-desc;
+
+</sect1>
diff --git a/chapter06/less-inst.sgml b/chapter06/less-inst.sgml
new file mode 100644
index 000000000..6deacf428
--- /dev/null
+++ b/chapter06/less-inst.sgml
@@ -0,0 +1,17 @@
+<sect2>
+<title>Installation of Less</title>
+
+<para>
+Install Less by running the following commands:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>./configure --prefix=/usr --bindir=/bin &amp;&amp;</userinput>
+ <userinput>make &amp;&amp;</userinput>
+ <userinput>make install</userinput>
+
+</literallayout></blockquote>
+
+</sect2>
+
diff --git a/chapter06/less.sgml b/chapter06/less.sgml
new file mode 100644
index 000000000..021f5746a
--- /dev/null
+++ b/chapter06/less.sgml
@@ -0,0 +1,8 @@
+<sect1 id="ch06-less">
+<title>Installing Less</title>
+
+&c6-in-less-inst;
+&aa-less-desc;
+
+</sect1>
+
diff --git a/chapter06/libtool-inst.sgml b/chapter06/libtool-inst.sgml
new file mode 100644
index 000000000..1a651a38b
--- /dev/null
+++ b/chapter06/libtool-inst.sgml
@@ -0,0 +1,17 @@
+<sect2>
+<title>Installation of Libtool</title>
+
+<para>
+Install Libtool by running the following commands:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>./configure --prefix=/usr &amp;&amp;</userinput>
+ <userinput>make &amp;&amp;</userinput>
+ <userinput>make install</userinput>
+
+</literallayout></blockquote>
+
+</sect2>
+
diff --git a/chapter06/libtool.sgml b/chapter06/libtool.sgml
new file mode 100644
index 000000000..36f65b72e
--- /dev/null
+++ b/chapter06/libtool.sgml
@@ -0,0 +1,7 @@
+<sect1 id="ch06-libtool">
+<title>Installing Libtool</title>
+
+&c6-in-libtool-inst;
+&aa-libtool-desc;
+
+</sect1>
diff --git a/chapter06/lilo-inst.sgml b/chapter06/lilo-inst.sgml
new file mode 100644
index 000000000..7777ab547
--- /dev/null
+++ b/chapter06/lilo-inst.sgml
@@ -0,0 +1,30 @@
+<sect2>
+<title>Installation of Lilo</title>
+
+<para>
+Install Lilo by running the following commands:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>make &amp;&amp;</userinput>
+ <userinput>make install</userinput>
+
+</literallayout></blockquote>
+
+<para>
+It appears that compilation of this package fails on certain machines
+when the -g compiler flag is being used. If you can't compile Lilo at
+all, please try removing the -g value from the CFLAGS variable in the
+<filename>Makefile</filename> file.
+</para>
+
+<para>
+At the end of the installation the make install process will print a
+message stating that you have to execute /sbin/lilo to complete the
+update. Don't do this as it has no use. The /etc/lilo.conf isn't present
+yet. We will complete the installation of lilo in chapter 8.
+</para>
+
+</sect2>
+
diff --git a/chapter06/lilo.sgml b/chapter06/lilo.sgml
new file mode 100644
index 000000000..363cae699
--- /dev/null
+++ b/chapter06/lilo.sgml
@@ -0,0 +1,7 @@
+<sect1 id="ch06-lilo">
+<title>Installing Lilo</title>
+
+&c6-in-lilo-inst;
+&aa-lilo-desc;
+
+</sect1>
diff --git a/chapter06/m4-inst.sgml b/chapter06/m4-inst.sgml
new file mode 100644
index 000000000..ef29a5d65
--- /dev/null
+++ b/chapter06/m4-inst.sgml
@@ -0,0 +1,57 @@
+<sect2>
+<title>Installation of M4</title>
+
+<para>
+Install M4 by running the following commands:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>./configure --prefix=/usr &amp;&amp;</userinput>
+ <userinput>make &amp;&amp;</userinput>
+ <userinput>make install</userinput>
+
+</literallayout></blockquote>
+
+<para>
+If you're base system is running a 2.0 kernel and your Glibc version is
+2.1 then you will most likely get problems executing M4 in the
+chroot'ed environment due to incompatibilities between the M4 program,
+Glibc-2.1 and the running 2.0 kernel. If you have problems executing the
+m4 program in the chroot'ed environment (for example when you install
+the autoconf and automake packages) you'll have to exit the chroot'ed
+environment and compile M4 statically. This way the binary is linked
+against Glibc 2.0 (if you run kernel 2.0 you're Glibc version is 2.0 as
+well on a decent system. Kernel 2.0 and Glibc-2.1 don't mix very well)
+and won't give you any problems.
+</para>
+
+<para>
+To create a statically linked version of M4, execute the following
+commands:
+</para>
+
+<blockquote><literallayout>
+
+<userinput>logout</userinput>
+<userinput>cd $LFS/usr/src/m4-1.4</userinput>
+<userinput>./configure --prefix=/usr --disable-nls</userinput>
+<userinput>make LDFLAGS=-static</userinput>
+<userinput>make prefix=$LFS/usr install</userinput>
+
+</literallayout></blockquote>
+
+<para>
+Now you can re-enter the chroot'ed environment and continue with the
+next package. If you wish to recompile M4 dynamically, you can do that
+after you have rebooted into the LFS system rather than chroot'ed into it.
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>chroot $LFS env -i HOME=/root bash --login</userinput>
+
+</literallayout></blockquote>
+
+</sect2>
+
diff --git a/chapter06/m4.sgml b/chapter06/m4.sgml
new file mode 100644
index 000000000..9dd46d242
--- /dev/null
+++ b/chapter06/m4.sgml
@@ -0,0 +1,8 @@
+<sect1 id="ch06-m4">
+<title>Installing M4</title>
+
+&c6-in-m4-inst;
+&aa-m4-desc;
+
+</sect1>
+
diff --git a/chapter06/make-inst.sgml b/chapter06/make-inst.sgml
new file mode 100644
index 000000000..1f7e4e3d0
--- /dev/null
+++ b/chapter06/make-inst.sgml
@@ -0,0 +1,17 @@
+<sect2>
+<title>Installation of Make</title>
+
+<para>
+Install Make by running the following commands:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>./configure --prefix=/usr &amp;&amp;</userinput>
+ <userinput>make &amp;&amp;</userinput>
+ <userinput>make install</userinput>
+
+</literallayout></blockquote>
+
+</sect2>
+
diff --git a/chapter06/make.sgml b/chapter06/make.sgml
new file mode 100644
index 000000000..f69b8ce19
--- /dev/null
+++ b/chapter06/make.sgml
@@ -0,0 +1,7 @@
+<sect1 id="ch06-make">
+<title>Installing Make</title>
+
+&c6-in-make-inst;
+&aa-make-desc;
+
+</sect1>
diff --git a/chapter06/makedev-exp.sgml b/chapter06/makedev-exp.sgml
new file mode 100644
index 000000000..f3d4ff980
--- /dev/null
+++ b/chapter06/makedev-exp.sgml
@@ -0,0 +1,18 @@
+<sect2>
+<title>Command explanations</title>
+
+<para>
+<userinput>sed "s/# 9/9/" MAKEDEV &gt;/dev/MAKEDEV:</userinput> By
+default the Makedev script only creates the hda1-hda8 and hdb1-hdb8
+devices. By replacing "# 9" by "9"'s in the MAKEDEV script, it will
+create hda1-hda20, hdb1-hdb20 and possible others (like hdc and hdd)
+</para>
+
+<para>
+<userinput>chmod 754 /dev/MAKEDEV:</userinput> This sets the permissions
+of the MAKEDEV script to mode 754 which makes it executable only for
+owner and group and readable by everybody.
+</para>
+
+</sect2>
+
diff --git a/chapter06/makedev-inst.sgml b/chapter06/makedev-inst.sgml
new file mode 100644
index 000000000..582598dbc
--- /dev/null
+++ b/chapter06/makedev-inst.sgml
@@ -0,0 +1,16 @@
+<sect2>
+<title>Installation of MAKEDEV</title>
+
+<para>
+Install MAKEDEV by running the following commands:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>sed "s/# 9/9/" MAKEDEV &gt;/dev/MAKEDEV &amp;&amp;</userinput>
+ <userinput>chmod 754 /dev/MAKEDEV</userinput>
+
+</literallayout></blockquote>
+
+</sect2>
+
diff --git a/chapter06/man-exp.sgml b/chapter06/man-exp.sgml
new file mode 100644
index 000000000..396c47b6d
--- /dev/null
+++ b/chapter06/man-exp.sgml
@@ -0,0 +1,21 @@
+<sect2>
+<title>Command explanations</title>
+
+<para>
+<userinput>-default:</userinput> This configures the man package with
+default settings.
+</para>
+
+<para>
+<userinput>sed s/AWK=/"AWK=\/usr\/bin\/mawk"/ /usr/sbin/makewhatis &gt;
+makewhatis-new:</userinput> This modifies /usr/sbin/makewhatis's AWK
+variable and fills in the location of the mawk program.
+</para>
+
+<para>
+<userinput>chmod 755 /usr/sbin/makewhatis:</userinput> This makes the
+makewhatis script executable again.
+</para>
+
+</sect2>
+
diff --git a/chapter06/man-inst.sgml b/chapter06/man-inst.sgml
new file mode 100644
index 000000000..f2f3b3b63
--- /dev/null
+++ b/chapter06/man-inst.sgml
@@ -0,0 +1,22 @@
+<sect2>
+<title>Installation of Man</title>
+
+<para>
+Install Man by running the following commands:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>./configure -default &amp;&amp;</userinput>
+ <userinput>make &amp;&amp;</userinput>
+ <userinput>make install &amp;&amp;</userinput>
+ <userinput>sed s/AWK=/"AWK=\/usr\/bin\/mawk"/ /usr/sbin/makewhatis
+ &gt; makewhatis-new &amp;&amp;</userinput>
+ <userinput>mv makewhatis-new /usr/sbin/makewhatis &amp;&amp;
+ </userinput>
+ <userinput>chmod 755 /usr/sbin/makewhatis</userinput>
+
+</literallayout></blockquote>
+
+</sect2>
+
diff --git a/chapter06/man.sgml b/chapter06/man.sgml
new file mode 100644
index 000000000..ad1c1b563
--- /dev/null
+++ b/chapter06/man.sgml
@@ -0,0 +1,9 @@
+<sect1 id="ch06-man">
+<title>Installing Man</title>
+
+&c6-in-man-inst;
+&c6-in-man-exp;
+&aa-man-desc;
+
+</sect1>
+
diff --git a/chapter06/manpages-inst.sgml b/chapter06/manpages-inst.sgml
new file mode 100644
index 000000000..9a03eb9d1
--- /dev/null
+++ b/chapter06/manpages-inst.sgml
@@ -0,0 +1,15 @@
+<sect2>
+<title>Installation of Man-pages</title>
+
+<para>
+Install Man-pages by running the following commands:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>make install</userinput>
+
+</literallayout></blockquote>
+
+</sect2>
+
diff --git a/chapter06/manpages.sgml b/chapter06/manpages.sgml
new file mode 100644
index 000000000..b86139c43
--- /dev/null
+++ b/chapter06/manpages.sgml
@@ -0,0 +1,7 @@
+<sect1 id="ch06-manpages">
+<title>Installing Man-pages</title>
+
+&c6-in-manpages-inst;
+&aa-manpages-desc;
+
+</sect1>
diff --git a/chapter06/mawk-inst.sgml b/chapter06/mawk-inst.sgml
new file mode 100644
index 000000000..735294010
--- /dev/null
+++ b/chapter06/mawk-inst.sgml
@@ -0,0 +1,21 @@
+<sect2>
+<title>Installation of Mawk</title>
+
+<para>
+Install Mawk by running the following commands:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>./configure &amp;&amp;</userinput>
+ <userinput>make &amp;&amp;</userinput>
+ <userinput>make BINDIR=/usr/bin \</userinput>
+ <userinput>&nbsp;&nbsp;&nbsp;MANDIR=/usr/share/man/man1 install
+ &amp;&amp;</userinput>
+ <userinput>cd /usr/bin &amp;&amp;</userinput>
+ <userinput>ln -s mawk awk</userinput>
+
+</literallayout></blockquote>
+
+</sect2>
+
diff --git a/chapter06/mawk.sgml b/chapter06/mawk.sgml
new file mode 100644
index 000000000..10e478342
--- /dev/null
+++ b/chapter06/mawk.sgml
@@ -0,0 +1,8 @@
+<sect1 id="ch06-mawk">
+<title>Installing Mawk</title>
+
+&c6-in-mawk-inst;
+&aa-mawk-desc;
+
+</sect1>
+
diff --git a/chapter06/modutils-inst.sgml b/chapter06/modutils-inst.sgml
new file mode 100644
index 000000000..d682fd2ab
--- /dev/null
+++ b/chapter06/modutils-inst.sgml
@@ -0,0 +1,17 @@
+<sect2>
+<title>Installation of Modutils</title>
+
+<para>
+Install Modutils by running the following commands:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>./configure &amp;&amp;</userinput>
+ <userinput>make &amp;&amp;</userinput>
+ <userinput>make install</userinput>
+
+</literallayout></blockquote>
+
+</sect2>
+
diff --git a/chapter06/modutils.sgml b/chapter06/modutils.sgml
new file mode 100644
index 000000000..dbf94efd9
--- /dev/null
+++ b/chapter06/modutils.sgml
@@ -0,0 +1,7 @@
+<sect1 id="ch06-modutils">
+<title>Installing Modutils</title>
+
+&c6-in-modutils-inst;
+&aa-modutils-desc;
+
+</sect1>
diff --git a/chapter06/ncurses-exp.sgml b/chapter06/ncurses-exp.sgml
new file mode 100644
index 000000000..c9dc1c85a
--- /dev/null
+++ b/chapter06/ncurses-exp.sgml
@@ -0,0 +1,21 @@
+<sect2>
+<title>Command explanations</title>
+
+<para>
+<userinput>--with-shared:</userinput> This enables the build of the
+shared ncurses library files.
+</para>
+
+<para>
+<userinput>--disable-termcap:</userinput> Disabled the compilation of
+termcap fallback support.
+</para>
+
+<para>
+<userinput>ln -s libncurses.a libcurses.a:</userinput> This creates the
+/lib/libcurses.a symlink that for some reason isn't created during the
+libncurses installation.
+</para>
+
+</sect2>
+
diff --git a/chapter06/ncurses-inst.sgml b/chapter06/ncurses-inst.sgml
new file mode 100644
index 000000000..4dd204e30
--- /dev/null
+++ b/chapter06/ncurses-inst.sgml
@@ -0,0 +1,21 @@
+<sect2>
+<title>Installation of Ncurses</title>
+
+<para>
+Install Ncurses by running the following commands:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>./configure --prefix=/usr --libdir=/lib \</userinput>
+ <userinput>&nbsp;&nbsp;&nbsp;--with-shared
+ --disable-termcap &amp;&amp;</userinput>
+ <userinput>make &amp;&amp;</userinput>
+ <userinput>make install &amp;&amp;</userinput>
+ <userinput>cd /lib &amp;&amp;</userinput>
+ <userinput>ln -s libncurses.a libcurses.a</userinput>
+
+</literallayout></blockquote>
+
+</sect2>
+
diff --git a/chapter06/ncurses.sgml b/chapter06/ncurses.sgml
new file mode 100644
index 000000000..2add05899
--- /dev/null
+++ b/chapter06/ncurses.sgml
@@ -0,0 +1,9 @@
+<sect1 id="ch06-ncurses">
+<title>Installing Ncurses</title>
+
+&c6-in-ncurses-inst;
+&c6-in-ncurses-exp;
+&aa-ncurses-desc;
+
+</sect1>
+
diff --git a/chapter06/patch-inst.sgml b/chapter06/patch-inst.sgml
new file mode 100644
index 000000000..a63f77030
--- /dev/null
+++ b/chapter06/patch-inst.sgml
@@ -0,0 +1,17 @@
+<sect2>
+<title>Installation of Patch</title>
+
+<para>
+Install Patch by running the following commands:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>./configure --prefix=/usr &amp;&amp;</userinput>
+ <userinput>make &amp;&amp;</userinput>
+ <userinput>make install</userinput>
+
+</literallayout></blockquote>
+
+</sect2>
+
diff --git a/chapter06/patch.sgml b/chapter06/patch.sgml
new file mode 100644
index 000000000..682e14915
--- /dev/null
+++ b/chapter06/patch.sgml
@@ -0,0 +1,8 @@
+<sect1 id="ch06-patch">
+<title>Installing Patch</title>
+
+&c6-in-patch-inst;
+&aa-patch-desc;
+
+</sect1>
+
diff --git a/chapter06/perl-inst.sgml b/chapter06/perl-inst.sgml
new file mode 100644
index 000000000..ba8df4e61
--- /dev/null
+++ b/chapter06/perl-inst.sgml
@@ -0,0 +1,33 @@
+<sect2>
+<title>Installation of Perl</title>
+
+<para>
+Install Perl by running the following commands:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>./Configure -Dprefix=/usr &amp;&amp;</userinput>
+ <userinput>make &amp;&amp;</userinput>
+ <userinput>make install</userinput>
+
+</literallayout></blockquote>
+
+<para>
+If you don't want to answer all those questions Perl asks you, you can
+add the -d option to the configure script and Perl will use all the
+default settings. To avoid the Configure script asking you questions
+after the config.sh file has been created you can pass the -e parameter
+to perl as well. The commands with these parameters included will be:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>./Configure -Dprefix=/usr -d -e &amp;&amp;</userinput>
+ <userinput>make &amp;&amp;</userinput>
+ <userinput>make install</userinput>
+
+</literallayout></blockquote>
+
+</sect2>
+
diff --git a/chapter06/perl.sgml b/chapter06/perl.sgml
new file mode 100644
index 000000000..f85fbd948
--- /dev/null
+++ b/chapter06/perl.sgml
@@ -0,0 +1,8 @@
+<sect1 id="ch06-perl">
+<title>Installing Perl</title>
+
+&c6-in-perl-inst;
+&aa-perl-desc;
+
+</sect1>
+
diff --git a/chapter06/procinfo-exp.sgml b/chapter06/procinfo-exp.sgml
new file mode 100644
index 000000000..f08fe8383
--- /dev/null
+++ b/chapter06/procinfo-exp.sgml
@@ -0,0 +1,14 @@
+<sect2>
+<title>Command explanations</title>
+
+<para>
+<userinput>sed "s/XConsole/#XConsole/" Makefile | make -f -:</userinput>
+This will comment out the XConsole variable in the Makefile and pipe the
+output of sed (the modified Makefile) directly to the make program. This
+is an alternate and more efficient way to direct the output to a file
+and tell make to use that alternate file. The XConsole build is disabled
+because it can't be build yet because we don't have X installed yet.
+</para>
+
+</sect2>
+
diff --git a/chapter06/procinfo-inst.sgml b/chapter06/procinfo-inst.sgml
new file mode 100644
index 000000000..e491563e8
--- /dev/null
+++ b/chapter06/procinfo-inst.sgml
@@ -0,0 +1,17 @@
+<sect2>
+<title>Installation of Procinfo</title>
+
+<para>
+Install Procinfo by running the following commands:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>sed "s/-ltermcap/-lncurses/" Makefile | make -f -
+ &amp;&amp;</userinput>
+ <userinput>make install</userinput>
+
+</literallayout></blockquote>
+
+</sect2>
+
diff --git a/chapter06/procinfo.sgml b/chapter06/procinfo.sgml
new file mode 100644
index 000000000..ebd030d9c
--- /dev/null
+++ b/chapter06/procinfo.sgml
@@ -0,0 +1,8 @@
+<sect1 id="ch06-procinfo">
+<title>Installing Procinfo</title>
+
+&c6-in-procinfo-inst;
+&c6-in-procinfo-exp;
+&aa-procinfo-desc;
+
+</sect1>
diff --git a/chapter06/procps-inst.sgml b/chapter06/procps-inst.sgml
new file mode 100644
index 000000000..917def8c5
--- /dev/null
+++ b/chapter06/procps-inst.sgml
@@ -0,0 +1,19 @@
+<sect2>
+<title>Installation of Procps</title>
+
+<para>
+Install Procps by running the following commands:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>sed "s/XConsole/#XConsole/" Makefile | make -f -
+ &amp;&amp;</userinput>
+ <userinput>sed "s/XConsole/#XConsole/" Makefile | make -f - install
+ &amp;&amp;</userinput>
+ <userinput>mv /usr/bin/kill /bin</userinput>
+
+</literallayout></blockquote>
+
+</sect2>
+
diff --git a/chapter06/procps.sgml b/chapter06/procps.sgml
new file mode 100644
index 000000000..188ce8a2a
--- /dev/null
+++ b/chapter06/procps.sgml
@@ -0,0 +1,7 @@
+<sect1 id="ch06-procps">
+<title>Installing Procps</title>
+
+&c6-in-procps-inst;
+&aa-procps-desc;
+
+</sect1>
diff --git a/chapter06/psmisc-inst.sgml b/chapter06/psmisc-inst.sgml
new file mode 100644
index 000000000..bb827be7f
--- /dev/null
+++ b/chapter06/psmisc-inst.sgml
@@ -0,0 +1,17 @@
+<sect2>
+<title>Installation of Psmisc</title>
+
+<para>
+Install Psmisc by running the following commands:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>sed "s/-ltermcap/-lncurses/" Makefile | make -f -
+ &amp;&amp;</userinput>
+ <userinput>make install</userinput>
+
+</literallayout></blockquote>
+
+</sect2>
+
diff --git a/chapter06/psmisc.sgml b/chapter06/psmisc.sgml
new file mode 100644
index 000000000..fd01ed448
--- /dev/null
+++ b/chapter06/psmisc.sgml
@@ -0,0 +1,7 @@
+<sect1 id="ch06-psmisc">
+<title>Installing Psmisc</title>
+
+&c6-in-psmisc-inst;
+&aa-psmisc-desc;
+
+</sect1>
diff --git a/chapter06/removeoldnss.sgml b/chapter06/removeoldnss.sgml
new file mode 100644
index 000000000..2a78aa25d
--- /dev/null
+++ b/chapter06/removeoldnss.sgml
@@ -0,0 +1,17 @@
+<sect1 id="ch06-removeoldnss">
+<title>Removing old NSS library files</title>
+
+<para>
+If you have copied the NSS Library files from your normal Linux system to the
+LFS system (because your normal system runs glibc-2.0) it's time to remove
+them now by running:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>rm /lib/libnss*.so.1 /lib/libnss*2.0*</userinput>
+
+</literallayout></blockquote>
+
+</sect1>
+
diff --git a/chapter06/sed-inst.sgml b/chapter06/sed-inst.sgml
new file mode 100644
index 000000000..ef0146123
--- /dev/null
+++ b/chapter06/sed-inst.sgml
@@ -0,0 +1,17 @@
+<sect2>
+<title>Installation of Sed</title>
+
+<para>
+Install Sed by running the following commands:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>./configure --prefix=/usr --bindir=/bin &amp;&amp;</userinput>
+ <userinput>make &amp;&amp;</userinput>
+ <userinput>make install</userinput>
+
+</literallayout></blockquote>
+
+</sect2>
+
diff --git a/chapter06/sed.sgml b/chapter06/sed.sgml
new file mode 100644
index 000000000..6de99ba4c
--- /dev/null
+++ b/chapter06/sed.sgml
@@ -0,0 +1,7 @@
+<sect1 id="ch06-sed">
+<title>Installing Sed</title>
+
+&c6-in-sed-inst;
+&aa-sed-desc;
+
+</sect1>
diff --git a/chapter06/shadowpwd-exp.sgml b/chapter06/shadowpwd-exp.sgml
new file mode 100644
index 000000000..6db3fe8d4
--- /dev/null
+++ b/chapter06/shadowpwd-exp.sgml
@@ -0,0 +1,12 @@
+<sect2>
+<title>Command explanations</title>
+
+<para>
+<userinput>cp limits login.access and others:</userinput> These files
+were not installed during the installation of the package so we copy
+them manually as those files are used to configure authentication
+details on your system.
+</para>
+
+</sect2>
+
diff --git a/chapter06/shadowpwd-inst.sgml b/chapter06/shadowpwd-inst.sgml
new file mode 100644
index 000000000..60650a5dd
--- /dev/null
+++ b/chapter06/shadowpwd-inst.sgml
@@ -0,0 +1,22 @@
+<sect2>
+<title>Installation of Shadow Password Suite</title>
+
+<para>
+Install the Shadow Password Suite by running the following commands:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>./configure --prefix=/usr &amp;&amp;</userinput>
+ <userinput>make &amp;&amp;</userinput>
+ <userinput>make install &amp;&amp;</userinput>
+ <userinput>cd etc &amp;&amp;</userinput>
+ <userinput>cp limits login.access \</userinput>
+ <userinput>&nbsp;&nbsp;&nbsp;login.defs.linux shells suauth
+ /etc &amp;&amp;</userinput>
+ <userinput>mv /etc/login.defs.linux /etc/login.defs</userinput>
+
+</literallayout></blockquote>
+
+</sect2>
+
diff --git a/chapter06/shadowpwd.sgml b/chapter06/shadowpwd.sgml
new file mode 100644
index 000000000..6f2f7d658
--- /dev/null
+++ b/chapter06/shadowpwd.sgml
@@ -0,0 +1,8 @@
+<sect1 id="ch06-shadow">
+<title>Installing Shadowpwd</title>
+
+&c6-in-shadowpwd-inst;
+&c6-in-shadowpwd-exp;
+&aa-shadowpwd-desc;
+
+</sect1>
diff --git a/chapter06/shellutils-inst.sgml b/chapter06/shellutils-inst.sgml
new file mode 100644
index 000000000..c3aa812f6
--- /dev/null
+++ b/chapter06/shellutils-inst.sgml
@@ -0,0 +1,20 @@
+<sect2>
+<title>Installation of Sh-utils</title>
+
+<para>
+Install Shellutils by running the following commands:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>./configure --prefix=/usr &amp;&amp;</userinput>
+ <userinput>make &amp;&amp;</userinput>
+ <userinput>make install &amp;&amp;</userinput>
+ <userinput>cd /usr/bin &amp;&amp;</userinput>
+ <userinput>mv date echo false pwd stty /bin &amp;&amp;</userinput>
+ <userinput>mv su true uname hostname /bin</userinput>
+
+</literallayout></blockquote>
+
+</sect2>
+
diff --git a/chapter06/shellutils.sgml b/chapter06/shellutils.sgml
new file mode 100644
index 000000000..7fa710e07
--- /dev/null
+++ b/chapter06/shellutils.sgml
@@ -0,0 +1,7 @@
+<sect1 id="ch06-shutils">
+<title>Installing Shellutils</title>
+
+&c6-in-shellutils-inst;
+&aa-shellutils-desc;
+
+</sect1>
diff --git a/chapter06/sysklogd-inst.sgml b/chapter06/sysklogd-inst.sgml
new file mode 100644
index 000000000..8cab2809b
--- /dev/null
+++ b/chapter06/sysklogd-inst.sgml
@@ -0,0 +1,18 @@
+<sect2>
+<title>Installation of Sysklogd</title>
+
+<para>
+Install Sysklogd by running the following commands:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>patch -Np1 -i ../sysklogd-1.4.patch
+ &amp;&amp;</userinput>
+ <userinput>make &amp;&amp;</userinput>
+ <userinput>make install</userinput>
+
+</literallayout></blockquote>
+
+</sect2>
+
diff --git a/chapter06/sysklogd.sgml b/chapter06/sysklogd.sgml
new file mode 100644
index 000000000..aabe1cb32
--- /dev/null
+++ b/chapter06/sysklogd.sgml
@@ -0,0 +1,7 @@
+<sect1 id="ch06-sysklogd">
+<title>Installing Sysklogd</title>
+
+&c6-in-sysklogd-inst;
+&aa-sysklogd-desc;
+
+</sect1>
diff --git a/chapter06/sysvinit-inst.sgml b/chapter06/sysvinit-inst.sgml
new file mode 100644
index 000000000..c8c581e95
--- /dev/null
+++ b/chapter06/sysvinit-inst.sgml
@@ -0,0 +1,37 @@
+<sect2>
+<title>Installation of Sysvinit</title>
+
+<para>
+When you change run levels (for example when you are going to shutdown
+your system) the init program is going to send the TERM and KILL signals
+to all the processes that init started. But init prints a message to the
+screen saying "sending all processes the TERM signal" and the same for the
+KILL signal. This implies that init sends this signal to all the currently
+running processes, which isn't the case. To avoid this confusion you can
+apply the sysvinit patch found on the LFS FTP site to sysvinit that changes
+the sentence in the shutdown.c file and have it print "sending all
+processes started by init the TERM signal".
+</para>
+
+<para>
+Apply the patch by running the following command:
+</para>
+
+<blockquote><literallayout>
+ <userinput>patch -Np1 -i ../sysvinit-2.78.patch</userinput>
+</literallayout></blockquote>
+
+<para>
+Install Sysvinit by running the following commands:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>cd src &amp;&amp;</userinput>
+ <userinput>make &amp;&amp;</userinput>
+ <userinput>make install</userinput>
+
+</literallayout></blockquote>
+
+</sect2>
+
diff --git a/chapter06/sysvinit.sgml b/chapter06/sysvinit.sgml
new file mode 100644
index 000000000..c0b834d02
--- /dev/null
+++ b/chapter06/sysvinit.sgml
@@ -0,0 +1,7 @@
+<sect1 id="ch06-sysvinit">
+<title>Installing Sysvinit</title>
+
+&c6-in-sysvinit-inst;
+&aa-sysvinit-desc;
+
+</sect1>
diff --git a/chapter06/tar-inst.sgml b/chapter06/tar-inst.sgml
new file mode 100644
index 000000000..32ed15cd1
--- /dev/null
+++ b/chapter06/tar-inst.sgml
@@ -0,0 +1,39 @@
+<sect2>
+<title>Installation of Tar</title>
+
+<para>
+If you want to be able to directly use bzip2 files with tar, use the tar
+patch avaiable from the LFS FTP site. This patch will add the -y option
+to tar which works the same as the -z option to tar (which you can use
+for gzip files).
+</para>
+
+<para>
+Apply the patch by running the following command:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>cd src &amp;&amp;</userinput>
+ <userinput>patch -i ../../gnutarpatch.txt &amp;&amp;</userinput>
+ <userinput>cd ..</userinput>
+
+</literallayout></blockquote>
+
+<para>
+Install Tar by running the following commands from the toplevel
+directory:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>./configure --prefix=/usr --libexecdir=/usr/bin
+ &amp;&amp;</userinput>
+ <userinput>make &amp;&amp;</userinput>
+ <userinput>make install &amp;&amp;</userinput>
+ <userinput>mv /usr/bin/tar /bin</userinput>
+
+</literallayout></blockquote>
+
+</sect2>
+
diff --git a/chapter06/tar.sgml b/chapter06/tar.sgml
new file mode 100644
index 000000000..d35c925ba
--- /dev/null
+++ b/chapter06/tar.sgml
@@ -0,0 +1,7 @@
+<sect1 id="ch06-tar">
+<title>Installing Tar</title>
+
+&c6-in-tar-inst;
+&aa-tar-desc;
+
+</sect1>
diff --git a/chapter06/texinfo-inst.sgml b/chapter06/texinfo-inst.sgml
new file mode 100644
index 000000000..540f438a5
--- /dev/null
+++ b/chapter06/texinfo-inst.sgml
@@ -0,0 +1,17 @@
+<sect2>
+<title>Installation of Texinfo</title>
+
+<para>
+Install Texinfo by running the following commands:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>./configure --prefix=/usr &amp;&amp;</userinput>
+ <userinput>make &amp;&amp;</userinput>
+ <userinput>make install</userinput>
+
+</literallayout></blockquote>
+
+</sect2>
+
diff --git a/chapter06/texinfo.sgml b/chapter06/texinfo.sgml
new file mode 100644
index 000000000..77486cfdd
--- /dev/null
+++ b/chapter06/texinfo.sgml
@@ -0,0 +1,7 @@
+<sect1 id="ch06-texinfo">
+<title>Installing Texinfo</title>
+
+&c6-in-texinfo-inst;
+&aa-texinfo-desc;
+
+</sect1>
diff --git a/chapter06/textutils-inst.sgml b/chapter06/textutils-inst.sgml
new file mode 100644
index 000000000..5ab867a01
--- /dev/null
+++ b/chapter06/textutils-inst.sgml
@@ -0,0 +1,18 @@
+<sect2>
+<title>Installation of Textutils</title>
+
+<para>
+Install Textutuils by running the following commands:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>./configure --prefix=/usr &amp;&amp;</userinput>
+ <userinput>make &amp;&amp;</userinput>
+ <userinput>make install &amp;&amp;</userinput>
+ <userinput>mv /usr/bin/cat /bin</userinput>
+
+</literallayout></blockquote>
+
+</sect2>
+
diff --git a/chapter06/textutils.sgml b/chapter06/textutils.sgml
new file mode 100644
index 000000000..16a4f328f
--- /dev/null
+++ b/chapter06/textutils.sgml
@@ -0,0 +1,7 @@
+<sect1 id="ch06-textutils">
+<title>Installing Textutils</title>
+
+&c6-in-textutils-inst;
+&aa-textutils-desc;
+
+</sect1>
diff --git a/chapter06/utillinux-exp.sgml b/chapter06/utillinux-exp.sgml
new file mode 100644
index 000000000..98633466e
--- /dev/null
+++ b/chapter06/utillinux-exp.sgml
@@ -0,0 +1,14 @@
+<sect2>
+<title>Command explanations</title>
+
+<para>
+<userinput>HAVE_SLN=yes:</userinput> We don't build this program because
+it already was installed by Glibc.
+</para>
+
+<para><userinput>HAVE_TSORT=yes:</userinput> We don't build this program
+either becuase it already was installed by Textutils.
+</para>
+
+</sect2>
+
diff --git a/chapter06/utillinux-inst.sgml b/chapter06/utillinux-inst.sgml
new file mode 100644
index 000000000..d75e3387f
--- /dev/null
+++ b/chapter06/utillinux-inst.sgml
@@ -0,0 +1,23 @@
+<sect2>
+<title>Installation of Util-Linux</title>
+
+<para>
+Install Util-Linux by running the following commands:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>sed -e s/HAVE_SLN=no/HAVE_SLN=yes/ \</userinput>
+ <userinput>&nbsp;&nbsp;&nbsp;-e s/HAVE_TSORT=no/HAVE_TSORT=yes/
+ \</userinput>
+ <userinput>&nbsp;&nbsp;&nbsp;MCONFIG &gt; MCONFIG~
+ &amp;&amp;</userinput>
+ <userinput>mv MCONFIG~ MCONFIG &amp;&amp;</userinput>
+ <userinput>./configure &amp;&amp;</userinput>
+ <userinput>make &amp;&amp;</userinput>
+ <userinput>make install</userinput>
+
+</literallayout></blockquote>
+
+</sect2>
+
diff --git a/chapter06/utillinux.sgml b/chapter06/utillinux.sgml
new file mode 100644
index 000000000..cef9a71e5
--- /dev/null
+++ b/chapter06/utillinux.sgml
@@ -0,0 +1,8 @@
+<sect1 id="ch06-utillinux">
+<title>Installing Utillinux</title>
+
+&c6-in-utillinux-inst;
+&c6-in-utillinux-exp;
+&aa-utillinux-desc;
+
+</sect1>
diff --git a/chapter06/vim-inst.sgml b/chapter06/vim-inst.sgml
new file mode 100644
index 000000000..15e8158eb
--- /dev/null
+++ b/chapter06/vim-inst.sgml
@@ -0,0 +1,39 @@
+<sect2>
+<title>Installation of Vim</title>
+
+<para>
+If you don't like vim to be installed as an editor on your LFS system,
+you may want to download an alternative and install an editor you
+prefer. There are a few hints how to install different editors
+available at <ulink
+url="http://cvs.linuxfromscratch.org/index.cgi/hints/editors/">
+http://cvs.linuxfromscratch.org/index.cgi/hints/editors/</ulink>
+</para>
+
+<para>
+You need to unpack both the vim-rt and vim-src packages to install Vim.
+Both packages will unpack their files into the vim-5.7 directory. This
+won't overwrite any files from the other package. So it doesn't mattter
+in which order you do it. Install Vim by running the following commands:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>./configure --prefix=/usr &amp;&amp;</userinput>
+ <userinput>make &amp;&amp;</userinput>
+ <userinput>make install &amp;&amp;</userinput>
+ <userinput>cd /usr/bin &amp;&amp;</userinput>
+ <userinput>ln -s vim vi</userinput>
+
+</literallayout></blockquote>
+
+<para>
+If you are planning on installing the X Window system on your LFS
+system, you might want to re-compile Vim after you have installed X. Vim
+comes with a nice GUI version of the editor which requires X and a few
+other libraries to be installed. For more information read the Vim
+documentation.
+</para>
+
+</sect2>
+
diff --git a/chapter06/vim.sgml b/chapter06/vim.sgml
new file mode 100644
index 000000000..4d20df4c3
--- /dev/null
+++ b/chapter06/vim.sgml
@@ -0,0 +1,7 @@
+<sect1 id="ch06-vim">
+<title>Installing Vim</title>
+
+&c6-in-vim-inst;
+&aa-vim-desc;
+
+</sect1>
diff --git a/chapter07/chapter7.sgml b/chapter07/chapter7.sgml
new file mode 100644
index 000000000..ab3625579
--- /dev/null
+++ b/chapter07/chapter7.sgml
@@ -0,0 +1,22 @@
+<chapter id="chapter07">
+<title>Creating system boot scripts</title>
+
+&c7-introduction;
+&c7-createdirs;
+&c7-rc;
+&c7-rcS;
+&c7-functions;
+&c7-checkfs;
+&c7-halt;
+&c7-loadkeys;
+&c7-mountfs;
+&c7-reboot;
+&c7-sendsignals;
+&c7-setclock;
+&c7-sysklogd;
+&c7-template;
+&c7-symperm;
+&c7-fstab;
+
+</chapter>
+
diff --git a/chapter07/checkfs.sgml b/chapter07/checkfs.sgml
new file mode 100644
index 000000000..2350a0056
--- /dev/null
+++ b/chapter07/checkfs.sgml
@@ -0,0 +1,116 @@
+<sect1 id="ch07-checkfs">
+<title>Creating the checkfs script</title>
+
+<para>
+Create a new file <filename>/etc/init.d/checkfs</filename> containing
+the following:
+</para>
+
+<literallayout>
+
+<userinput>cat &gt; checkfs &lt;&lt; "EOF"</userinput>
+#!/bin/sh
+# Begin /etc/init.d/checkfs
+
+#
+# Include the functions declared in the /etc/init.d/functions file
+#
+
+source /etc/init.d/functions
+
+#
+# Activate all the swap partitions declared in the /etc/fstab file
+#
+
+echo -n "Activating swap..."
+/sbin/swapon -a
+evaluate_retval
+
+#
+# If the /fastboot file exists we don't want to run the partition checks
+#
+
+if [ -f /fastboot ]
+then
+ echo "Fast boot, no file system check"
+else
+
+#
+# Mount the root partition read-only (just in case the kernel mounts it
+# read-write and we don't want to run fsck on a read-write mounted
+# partition).
+#
+
+ /bin/mount -n -o remount,ro /
+ if [ $? = 0 ]
+ then
+
+#
+# If the /forcefsck file exists we want to force a partition check even
+# if the partition was unmounted cleanly the last time
+#
+
+ if [ -f /forcefsck ]
+ then
+ echo -n "/forcefsck exists, forcing "
+ echo "file system check"
+ force="-f"
+ else
+ force=""
+ fi
+
+#
+# Check all the file systems mentioned in /etc/fstab that have the
+# fs_passno value set to 1 or 2 (the 6th field. See man fstab for more
+# info)
+#
+
+ echo "Checking file systems..."
+ /sbin/fsck $force -a -A -C -T
+
+#
+# If something went wrong during the checks of one of the partitions,
+# fsck will exit with a return value greater than 1. If this is
+# the case we start sulogin so you can repair the damage manually
+#
+
+ if [ $? -gt 1 ]
+ then
+ $FAILURE
+ echo
+ echo -n "fsck failed. Please repair your file "
+ echo "systems manually by running /sbin/fsck"
+ echo "without the -a option"
+ echo
+ echo -n "Please note that the root file system "
+ echo "is currently mounted in read-only mode."
+ echo
+ echo -n "I will start sulogin now. When you "
+ echo "logout I will reboot your system."
+ echo
+ $NORMAL
+ /sbin/sulogin
+ /sbin/reboot -f
+ else
+ print_status success
+ fi
+
+ else
+
+#
+# If the remount to read-only mode didn't work abort the fsck and print
+# an error
+#
+
+ echo -n "Cannot check root file system because it "
+ echo "could not be mounted in read-only mode."
+ fi
+fi
+
+# End /etc/init.d/checkfs
+<userinput>EOF</userinput>
+
+</literallayout>
+
+</sect1>
+
diff --git a/chapter07/createdirs.sgml b/chapter07/createdirs.sgml
new file mode 100644
index 000000000..0831e7874
--- /dev/null
+++ b/chapter07/createdirs.sgml
@@ -0,0 +1,19 @@
+<sect1 id="ch07-createdirs">
+<title>Creating directories</title>
+
+<para>
+We need to start by creating a few extra directories that are used by
+the boot scripts. Create these directories by running:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>cd /etc &amp;&amp;</userinput>
+ <userinput>mkdir sysconfig rc0.d rc1.d rc2.d rc3.d &amp;&amp;</userinput>
+ <userinput>mkdir rc4.d rc5.d rc6.d init.d rcS.d &amp;&amp;</userinput>
+ <userinput>cd init.d</userinput>
+
+</literallayout></blockquote>
+
+</sect1>
+
diff --git a/chapter07/fstab.sgml b/chapter07/fstab.sgml
new file mode 100644
index 000000000..1c0be5826
--- /dev/null
+++ b/chapter07/fstab.sgml
@@ -0,0 +1,32 @@
+<sect1 id="ch07-fstab">
+<title>Creating the /etc/fstab file</title>
+
+<para>
+In order for certain programs to be able to determine where certain
+partitions are supposed to be mounted by default, the /etc/fstab file is
+used. Create a new file <filename>/etc/fstab</filename> containing the
+following:
+</para>
+
+<literallayout>
+
+<userinput>cat &gt; /etc/fstab &lt;&lt; "EOF"</userinput>
+# Begin /etc/fstab
+
+/dev/&lt;LFS-partition designation&gt; / ext2 defaults 1 1
+/dev/&lt;swap-partition designation&gt; swap swap defaults 0 0
+proc /proc proc defaults 0 0
+
+# End /etc/fstab
+<userinput>EOF</userinput>
+
+</literallayout>
+
+<para>
+Replace &lt;LFS-partition designation&gt; and &lt;swap-partition
+designation&gt; with the appropriate devices (/dev/hda5 and /dev/hda6 in my
+case).
+</para>
+
+</sect1>
+
diff --git a/chapter07/functions.sgml b/chapter07/functions.sgml
new file mode 100644
index 000000000..e46522c0f
--- /dev/null
+++ b/chapter07/functions.sgml
@@ -0,0 +1,451 @@
+<sect1 id="ch07-functions">
+<title>Creating the functions script</title>
+
+<para>
+Create a new file <filename>/etc/init.d/functions</filename> containing
+the following:
+</para>
+
+<literallayout>
+
+<userinput>cat &gt; functions &lt;&lt; "EOF"</userinput>
+#!/bin/sh
+# Begin /etc/init.d/functions
+
+#
+# Set a few variables that influence the text that's printed on the
+# screen. The SET_COL variable starts the text in column number 70 (as
+# defined by the COL variable). NORMAL prints text in normal mode.
+# SUCCESS prints text in a green colour and FAILURE prints text in a red
+# colour
+#
+
+COL=70
+SET_COL="echo -en \\033[${COL}G"
+NORMAL="echo -en \\033[0;39m"
+SUCCESS="echo -en \\033[1;32m"
+FAILURE="echo -en \\033[1;31m"
+
+#
+# The evaluate_retval function evaluates the return value of the process
+# that was run just before this function was called. If the return value
+# was 0, indicating success, the print_status function is called with
+# the 'success' parameter. Otherwise the print_status function is called
+# with the failure parameter.
+#
+
+evaluate_retval()
+{
+ if [ $? = 0 ]
+ then
+ print_status success
+ else
+ print_status failure
+ fi
+}
+
+#
+# The print_status prints [ OK ] or [FAILED] to the screen. OK appears
+# in the colour defined by the SUCCESS variable and FAILED appears in
+# the colour defined by the FAILURE variable. Both are printed starting
+# in the colomn defined by the COL variable.
+#
+
+print_status()
+{
+
+#
+# If no parameters are given to the print_status function, print usage
+# information.
+#
+
+ if [ $# = 0 ]
+ then
+ echo "Usage: print_status {success|failure}"
+ return 1
+ fi
+
+ case "$1" in
+ success)
+ $SET_COL
+ echo -n "[ "
+ $SUCCESS
+ echo -n "OK"
+ $NORMAL
+ echo " ]"
+ ;;
+ failure)
+ $SET_COL
+ echo -n "["
+ $FAILURE
+ echo -n "FAILED"
+ $NORMAL
+ echo "]"
+ ;;
+ esac
+
+}
+
+#
+# The loadproc function starts a process (often a daemon) with
+# proper error checking
+#
+
+loadproc()
+{
+
+#
+# If no parameters are given to the print_status function, print usage
+# information.
+
+#
+
+ if [ $# = 0 ]
+ then
+ echo "Usage: loadproc {program}"
+ exit 1
+ fi
+#
+# Find the basename of the first parameter (the daemon's name without
+# the path
+# that was provided so /usr/sbin/syslogd becomes plain 'syslogd' after
+# basename ran)
+#
+
+ base=$(/usr/bin/basename $1)
+#
+# the pidlist variable will contains the output of the pidof command.
+# pidof will try to find the PID's that belong to a certain string;
+# $base in this case
+#
+
+ pidlist=$(/bin/pidof -o $$ -o $PPID -o %PPID -x $base)
+
+ pid=""
+
+ for apid in $pidlist
+ do
+ if [ -d /proc/$apid ]
+ then
+ pid="$pid $apid"
+ fi
+ done
+#
+# If the $pid variable contains anything (from the previous for loop) it
+# means the daemon is already running
+#
+
+ if [ ! -n "$pid" ]
+ then
+#
+# Empty $pid variable means it's not running, so we run $* (all
+# parameters giving to this function from the script) and then check the
+# return value
+#
+ $*
+ evaluate_retval
+ else
+#
+# The variable $pid was not empty, meaning it was already running. We
+# print [FAILED] now
+#
+ print_status failure
+ fi
+
+}
+
+#
+# The killproc function kills a process with proper error checking
+#
+
+killproc()
+{
+
+#
+# If no parameters are given to the print_status function, print usage
+# information.
+
+#
+
+ if [ $# = 0 ]
+ then
+ echo "Usage: killproc {program} [signal]"
+ exit 1
+ fi
+
+#
+# Find the basename of the first parameter (the daemon's name without
+# the path
+# that was provided so /usr/sbin/syslogd becomes plain 'syslogd' after
+# basename ran)
+#
+
+ base=$(/usr/bin/basename $1)
+
+#
+# Check if we gave a signal to kill the process with (like -HUP, -TERM,
+# -KILL, etc) to this function (the second parameter). If no second
+# parameter was provided set the nolevel variable. Else set the
+# killlevel variable to the value of $2 (the second parameter)
+#
+
+ if [ "$2" != "" ]
+ then
+ killlevel=-$2
+ else
+ nolevel=1
+ fi
+
+#
+# the pidlist variable will contains the output of the pidof command.
+# pidof will try to find the PID's that belong to a certain string;
+# $base in this case
+
+ pidlist=$(/bin/pidof -o $$ -o $PPID -o %PPID -x $base)
+
+ pid=""
+
+ for apid in $pidlist
+ do
+ if [ -d /proc/$apid ]
+ then
+ pid="$pid $apid"
+ fi
+ done
+
+#
+# If $pid contains something from the previous for loop it means one or
+
+# more PID's were found that belongs to the processes to be killed
+#
+ if [ -n "$pid" ]
+ then
+#
+# If no kill level was specified we'll try -TERM first and then sleep
+# for 2 seconds to allow the kill to be completed
+#
+ if [ "$nolevel" = 1 ]
+ then
+ /bin/kill -TERM $pid
+/usr/bin/sleep 2
+#
+# If after -TERM the PID still exists we'll try killing it with -KILL
+# and wait for 2 seconds again to allow the kill to be completed
+#
+
+ if ps h $pid >/dev/null 2>&1
+ then
+ /bin/kill -KILL $pid
+/usr/bin/sleep 2
+ fi
+ /bin/ps h $pid >/dev/null 2>&1
+ if [ $? = 0 ]
+ then
+#
+# If after the -KILL it still exists it can't be killed for some reason
+# and we'll print [FAILED]
+#
+ print_status failure
+ else
+#
+# It was killed, remove possible stale PID file in /var/run and
+# print [ OK ]
+#
+ /bin/rm -f /var/run/$base.pid
+ print_status success
+ fi
+ else
+#
+# A kill level was provided. Kill with the provided kill level and wait
+# for 2 seconds to allow the kill to be completed
+
+#
+ /bin/kill $killlevel $pid
+/usr/bin/sleep 2
+ /bin/ps h $pid >/dev/null 2>&1
+ if [ $? = 0 ]
+ then
+#
+# If ps' return value is 0 it means it ran ok which indicates that the
+# PID still exists. This means the process wasn't killed properly with
+# the signal provided. Print [FAILED]
+#
+ print_status failure
+ else
+#
+# If the return value was 1 or higher it means the PID didn't exist
+# anymore which means it was killed successfully. Remove possible stale
+# PID file and print [ OK ]
+#
+ /bin/rm -f /var/run/$base.pid
+ print_status success
+ fi
+ fi
+ else
+#
+# The PID didn't exist so we can't attempt to kill it. Print [FAILED]
+#
+ print_status failure
+ fi
+}
+
+#
+# The reloadproc functions sends a signal to a daemon telling it to
+# reload it's configuration file. This is almost identical to the
+# killproc function with the exception that it won't try to kill it with
+# a -KILL signal (aka -9)
+#
+
+reloadproc()
+{
+
+#
+# If no parameters are given to the print_status function, print usage
+# information.
+
+#
+
+ if [ $# = 0 ]
+ then
+ echo "Usage: reloadproc {program} [signal]"
+ exit 1
+ fi
+
+#
+# Find the basename of the first parameter (the daemon's name without
+# the path
+# that was provided so /usr/sbin/syslogd becomes plain 'syslogd' after
+# basename ran)
+#
+
+ base=$(/usr/bin/basename $1)
+
+#
+# Check if we gave a signal to send to the process (like -HUP)
+# to this function (the second parameter). If no second
+# parameter was provided set the nolevel variable. Else set the
+# killlevel variable to the value of $2 (the second parameter)
+#
+
+
+ if [ -n "$2" ]
+ then
+ killlevel=-$2
+ else
+ nolevel=1
+ fi
+
+#
+# the pidlist variable will contains the output of the pidof command.
+# pidof will try to find the PID's that belong to a certain string;
+# $base in this case
+
+#
+
+ pidlist=$(/bin/pidof -o $$ -o $PPID -o %PPID -x $base)
+
+ pid=""
+
+ for apid in $pidlist
+ do
+ if [ -d /proc/$apid ]
+ then
+ pid="$pid $apid"
+ fi
+ done
+
+#
+# If $pid contains something from the previous for loop it means one or
+# more PID's were found that belongs to the processes to be reloaded
+#
+
+ if [ -n "$pid" ]
+ then
+
+#
+# If nolevel was set we will use the default reload signal SIGHUP.
+#
+
+ if [ "$nolevel" = 1 ]
+ then
+ /bin/kill -SIGHUP $pid
+ evaluate_retval
+ else
+#
+# Else we will use the provided signal
+#
+
+ /bin/kill $killlevel $pid
+ evaluate_retval
+ fi
+ else
+#
+# If $pid is empty no PID's have been found that belong to the process
+# and print [FAILED]
+#
+
+ print_status failure
+ fi
+}
+
+#
+# The statusproc function will try to find out if a process is running
+# or not
+#
+
+statusproc()
+{
+
+#
+# If no parameters are given to the print_status function, print usage
+# information.
+
+#
+
+ if [ $# = 0 ]
+ then
+ echo "Usage: status {program}"
+ return 1
+ fi
+
+#
+# $pid will contain a list of PID's that belong to a process
+#
+
+ pid=$(/bin/pidof -o $$ -o $PPID -o %PPID -x $1)
+ if [ -n "$pid" ]
+ then
+#
+# If $pid contains something, the process is running, print the contents
+# of the $pid variable
+#
+ echo "$1 running with Process ID $pid"
+ return 0
+ fi
+
+#
+# If $pid doesn't contain it check if a PID file exists and inform the
+# user about this stale file.
+#
+
+ if [ -f /var/run/$1.pid ]
+ then
+ pid=$(/usr/bin/head -1 /var/run/$1.pid)
+ if [ -n "$pid" ]
+ then
+ echo "$1 not running but /var/run/$1.pid exists"
+ return 1
+ fi
+ else
+ echo "$1 is not running"
+ fi
+
+}
+
+# End /etc/init.d/functions
+<userinput>EOF</userinput>
+
+</literallayout>
+
+</sect1>
+
diff --git a/chapter07/halt.sgml b/chapter07/halt.sgml
new file mode 100644
index 000000000..f7849ad0b
--- /dev/null
+++ b/chapter07/halt.sgml
@@ -0,0 +1,27 @@
+<sect1 id="ch07-halt">
+<title>Creating the halt script</title>
+
+<para>
+Create a new file <filename>/etc/init.d/halt</filename> containing the
+following:
+</para>
+
+<literallayout>
+
+<userinput>cat &gt; halt &lt;&lt; "EOF"</userinput>
+#!/bin/sh
+# Begin /etc/init.d/halt
+
+#
+# Call halt. See man halt for the meaning of the parameters
+#
+
+/sbin/halt -d -f -i -p
+
+# End /etc/init.d/halt
+<userinput>EOF</userinput>
+
+</literallayout>
+
+</sect1>
+
diff --git a/chapter07/introduction.sgml b/chapter07/introduction.sgml
new file mode 100644
index 000000000..5f1bea0b0
--- /dev/null
+++ b/chapter07/introduction.sgml
@@ -0,0 +1,13 @@
+<sect1 id="ch07-introduction">
+<title>Introduction</title>
+
+<para>
+This chapter will create the necessary scripts that are run at boottime.
+These scripts perform tasks such as remounting the root file system
+mounted read-only by the kernel into read-write mode, activiating the swap
+partition(s), running a check on the root file system to make sure it's
+intact and starting the daemons that the system uses.
+</para>
+
+</sect1>
+
diff --git a/chapter07/loadkeys.sgml b/chapter07/loadkeys.sgml
new file mode 100644
index 000000000..bc17fd19d
--- /dev/null
+++ b/chapter07/loadkeys.sgml
@@ -0,0 +1,36 @@
+<sect1 id="ch07-loadkeys">
+<title>Creating the loadkeys script</title>
+
+<para>
+You only need to create this script if you don't have a default 101 keys
+US keyboard layout. Create a new file
+<filename>/etc/init.d/loadkeys</filename> containing the following:
+</para>
+
+<literallayout>
+
+<userinput>cat &gt; loadkeys &lt;&lt; "EOF"</userinput>
+#!/bin/sh
+# Begin /etc/init.d/loadkeys
+
+#
+# Include the functions declared in the /etc/init.d/functions file
+#
+
+source /etc/init.d/functions
+
+#
+# Load the default keymap file
+#
+
+echo -n "Loading keymap..."
+/usr/bin/loadkeys -d >/dev/null
+evaluate_retval
+
+# End /etc/init.d/loadkeys
+<userinput>EOF</userinput>
+
+</literallayout>
+
+</sect1>
+
diff --git a/chapter07/mountfs.sgml b/chapter07/mountfs.sgml
new file mode 100644
index 000000000..f0fdf7a78
--- /dev/null
+++ b/chapter07/mountfs.sgml
@@ -0,0 +1,110 @@
+<sect1 id="ch07-mountfs">
+<title>Creating the mountfs script</title>
+
+<para>
+Create a new file <filename>/etc/init.d/mountfs</filename> containing
+the following:
+</para>
+
+<literallayout>
+
+<userinput>cat &gt; mountfs &lt;&lt; "EOF"</userinput>
+#!/bin/sh
+# Begin /etc/init.d/mountfs
+
+#
+# Include the functions declared in the /etc/init.d/functions file
+#
+
+source /etc/init.d/functions
+
+case "$1" in
+ start)
+
+ #
+ # Remount the root partition in read-write mode. -n tells mount
+ # not to
+ # write to the /etc/mtab file (because it can't do this. The
+ # root
+ # partition is most likely still mounted in read-only mode
+ #
+
+ echo -n "Remounting root file system in read-write mode..."
+ /bin/mount -n -o remount,rw /
+ evaluate_retval
+
+ #
+ # First empty the /etc/mtab file. Then remount root partition
+ # in read-write
+ # mode again but pass -f to mount. This way mount does
+ # everything
+ # except the mount itself. This is needed for it to write to the
+ # mtab
+ # file which contains a list of currently mounted file systems.
+ #
+
+ echo > /etc/mtab
+ /bin/mount -f -o remount,rw /
+
+ #
+ # Remove the possible /fastboot and /forcefsck files. they are
+ # only
+ # supposed to be used during the next reboot's checkfs wich just
+ # happened. If you want to fastboot or forcefsck again you'll
+ # have to
+ # recreate the files
+ #
+
+ /bin/rm -f /fastboot /forcefsck
+
+ #
+ # Walk through /etc/fstab and mount all file systems that don't
+ # have the noauto option set in the fs_mntops field (the 4th
+ # field.
+ # See man fstab for more info)
+ #
+
+ echo -n "Mounting other file systems..."
+ /bin/mount -a
+ evaluate_retval
+ ;;
+
+ stop)
+
+ #
+ # Deactive all the swap partitions
+ #
+
+ echo -n "Deactivating swap..."
+ /sbin/swapoff -a
+ evaluate_retval
+
+ #
+ # And unmount all the file systems, mounting the root file
+ # system
+ # read-only (all are unmounted but because root can't be
+ # unmounted
+ # at this point mount will automatically mount it read-only
+ # which
+ # is what supposed to happen. This way no data can be written
+ # anymore from disk)
+ #
+
+ echo -n "Unmounting file systems..."
+ /bin/umount -a -r
+ evaluate_retval
+ ;;
+
+ *)
+ echo "Usage: $0 {start|stop}"
+ exit 1
+ ;;
+esac
+
+# End /etc/init.d/mountfs
+<userinput>EOF</userinput>
+
+</literallayout>
+
+</sect1>
+
diff --git a/chapter07/rc.sgml b/chapter07/rc.sgml
new file mode 100644
index 000000000..3aba51da3
--- /dev/null
+++ b/chapter07/rc.sgml
@@ -0,0 +1,253 @@
+<sect1 id="ch07-rc">
+<title>Creating the rc script</title>
+
+<para>
+The first main bootscript is the <filename>/etc/init.d/rc</filename> script.
+Create a new file <filename>/etc/init.d/rc</filename> containing the
+following: </para>
+
+<literallayout>
+
+<userinput>cat &gt; rc &lt;&lt; "EOF"</userinput>
+#!/bin/sh
+# Begin /etc/init.d/rc
+#
+# By Jason Pearce - jason.pearce@linux.org
+# Modified by Gerard Beekmans - gerard@linuxfromscratch.org
+# print_error_msg based on ideas by Simon Perreault - nomis80@yahoo.com
+
+#
+# Include the functions declared in the /etc/init.d/functions file
+#
+
+source /etc/init.d/functions
+
+#
+# The print_error_msg function prints an error message when an unforseen
+# error occured that wasn't trapped for some reason by a evaluate_retval
+# call or error checking in different ways.
+
+print_error_msg()
+{
+
+ echo
+ $FAILURE
+ echo -n "You should not read this error message. It means "
+ echo "that an unforseen error "
+ echo -n "took place and subscript $i exited with "
+ echo "a return value "
+ echo -n "of $error_value for an unknown reason. If you're able "
+ echo "to trace this error down "
+ echo -n "to a bug in one of the files provided by this book, "
+ echo "please be so kind to "
+ echo -n "inform us at lfs-discuss@linuxfromscratch.org"
+ $NORMAL
+ echo
+ echo
+ echo "Press a key to continue..."
+ read
+}
+
+#
+# If you uncomment the debug variable below none of the scripts will be
+# executed, just the script name and parameters will be echo'ed to the
+# screen so you can see how the scripts are called by rc.
+#
+
+# Un-comment the following for debugging.
+# debug=echo
+
+#
+# Start script or program.
+#
+startup() {
+
+$debug $*
+
+}
+
+#
+# Ignore CTRL-C only in this shell, so we can interrupt subprocesses.
+#
+
+trap ":" INT QUIT TSTP
+
+#
+# Now find out what the current and what the previous runlevel are. The
+# $RUNLEVEL variable is set by init for all it's children. This script
+# runs as a child of init.
+#
+
+runlevel=$RUNLEVEL
+
+#
+# Get first argument. Set new runlevel to this argument. If no runlevel
+# was passed to this script we won't change runlevels.
+#
+
+[ "$1" != "" ] && runlevel=$1
+if [ "$runlevel" = "" ]
+then
+ echo "Usage: $0 &lt;runlevel&gt;" &gt;&2
+ exit 1
+fi
+
+#
+# The same goes for $PREVLEVEL (see above for $RUNLEVEL). previous will
+# be set to the previous run level. If $PREVLEVEL is not set it means
+# that there is no previous runlevel and we'll set previous to N.
+#
+
+previous=$PREVLEVEL
+[ "$previous" = "" ] && previous=N
+
+export runlevel previous
+
+#
+# Is there an rc directory for the new runlevel?
+#
+
+if [ -d /etc/rc$runlevel.d ]
+
+then
+
+#
+# If so, first collect all the K* scripts in the new run level.
+#
+
+ if [ $previous != N ]
+ then
+ for i in /etc/rc$runlevel.d/K*
+ do
+ [ ! -f $i ] && continue
+
+#
+# the suffix variable will contain the script name without the leading
+# Kxxx
+#
+
+ suffix=${i#/etc/rc$runlevel.d/K[0-9][0-9][0-9]}
+#
+# If there is a start script for this K script in the previous runlevel
+# determine what it's full path is
+#
+ previous_start=/etc/rc$previous.d/S[0-9][0-9][0-9]$suffix
+#
+# If there was no previous run level it could be that something was
+# started in rcS.d (sysinit level) so we'll determine the path for that
+# possibility as well.
+#
+
+ sysinit_start=/etc/rcS.d/S[0-9][0-9][0-9]$suffix
+
+#
+# Stop the service if there is a start script in the previous run level
+# or in the sysinit level. If previous_start or sysinit_start do not
+# exist the 'continue' command is run which causes the script to abort
+# this iteration of the for loop and continue with the next iteration.
+# This boils down to that it won't run the commands after the next two
+# lines and start over from the top of this for loop. See man bash for
+# more info on this.
+#
+
+ [ ! -f $previous_start ] &&
+ [ ! -f $sysinit_start ] && continue
+
+#
+# If we found previous_start or sysinit_start, run the K script
+#
+
+ startup $i stop
+ error_value=$?
+#
+# If the return value of the script is not 0, something went wrong with
+# error checking inside the script. the print_error_msg function will be
+# called and the message plus the return value of the K script will be
+# printed to the screen
+
+#
+
+ if [ $error_value != 0 ]
+ then
+ print_error_msg
+ fi
+
+ done
+ fi
+
+#
+# Now run the START scripts for this runlevel.
+#
+
+ for i in /etc/rc$runlevel.d/S*
+ do
+ [ ! -f $i ] && continue
+
+ if [ $previous != N ]
+ then
+#
+# Find start script in previous runlevel and stop script in this
+# runlevel.
+#
+
+ suffix=${i#/etc/rc$runlevel.d/S[0-9][0-9][0-9]}
+ stop=/etc/rc$runlevel.d/K[0-9][0-9][0-9]$suffix
+ previous_start=/etc/rc$previous.d/S[0-9][0-9][0-9]$suffix
+#
+# If there is a start script in the previous level and no stop script in
+# this level, we don't have to re-start the service; abort this
+# iteration and start the next one.
+#
+
+ [ -f $previous_start ] && [ ! -f $stop ] &&
+ continue
+ fi
+
+ case "$runlevel" in
+ 0|6)
+
+#
+# levels 0 and 6 are halt and reboot levels. We don't really start
+# anything here so we call with the 'stop' parameter
+#
+
+ startup $i stop
+ error_value=$?
+#
+# If the return value of the script is not 0, something went wrong with
+# error checking inside the script. the print_error_msg function will be
+# called and the message plus the return value of the K script will be
+# printed to the screen
+#
+
+ if [ $error_value != 0 ]
+ then
+ print_error_msg
+ fi
+ ;;
+ *)
+ startup $i start
+ error_value=$?
+#
+# If the return value of the script is not 0, something went wrong with
+# error checking inside the script. the print_error_msg function will be
+# called and the message plus the return value of the K script will be
+# printed to the screen
+#
+
+ if [ $error_value != 0 ]
+ then
+ print_error_msg
+ fi
+ ;;
+ esac
+ done
+fi
+
+# End /etc/init.d/rc
+<userinput>EOF</userinput>
+
+</literallayout>
+
+</sect1>
+
diff --git a/chapter07/rcS.sgml b/chapter07/rcS.sgml
new file mode 100644
index 000000000..908059d04
--- /dev/null
+++ b/chapter07/rcS.sgml
@@ -0,0 +1,43 @@
+<sect1 id="ch07-rcS">
+<title>Creating the rcS script</title>
+
+<para>
+The second main bootscript is the <filename>rcS</filename> script. Create a
+new file <filename>/etc/init.d/rcS</filename> containing the following:
+</para>
+
+<literallayout>
+
+<userinput>cat &gt; rcS &lt;&lt; "EOF"</userinput>
+#!/bin/sh
+# Begin /etc/init.d/rcS
+
+#
+# See the rc script for the extensive comments on the constructions
+# used here
+#
+
+runlevel=S
+prevlevel=N
+umask 022
+export runlevel prevlevel
+
+trap ":" INT QUIT TSTP
+
+#
+# Collect all the S scripts in /etc/rcS.d and execute them in the same
+#
+
+for i in /etc/rcS.d/S??*
+do
+ [ ! -f "$i" ] && continue;
+ $i start
+done
+
+# End /etc/init.d/rcS
+<userinput>EOF</userinput>
+
+</literallayout>
+
+</sect1>
+
diff --git a/chapter07/reboot.sgml b/chapter07/reboot.sgml
new file mode 100644
index 000000000..e57410c48
--- /dev/null
+++ b/chapter07/reboot.sgml
@@ -0,0 +1,30 @@
+<sect1 id="ch07-reboot">
+<title>Creating the reboot script</title>
+
+<para>
+Create a new file <filename>/etc/init.d/reboot</filename> containing the
+following:
+</para>
+
+<literallayout>
+
+<userinput>cat &gt; reboot &lt;&lt; "EOF"</userinput>
+#!/bin/sh
+# Begin /etc/init.d/reboot
+
+#
+# Call reboot. See man halt for the meaning of the parameters
+#
+
+
+echo "System reboot in progress..."
+
+/sbin/reboot -d -f -i
+
+# End /etc/init.d/reboot
+<userinput>EOF</userinput>
+
+</literallayout>
+
+</sect1>
+
diff --git a/chapter07/sendsignals.sgml b/chapter07/sendsignals.sgml
new file mode 100644
index 000000000..3aff74996
--- /dev/null
+++ b/chapter07/sendsignals.sgml
@@ -0,0 +1,44 @@
+<sect1 id="ch07-sendsignals">
+<title>Creating the sendsignals script</title>
+
+<para>
+Create a new file <filename>/etc/init.d/sendsignals</filename>
+containing the following:
+</para>
+
+<literallayout>
+
+<userinput>cat &gt; sendsignals &lt;&lt; "EOF"</userinput>
+#!/bin/sh
+# Begin /etc/init.d/sendsignals
+
+#
+# Include the functions declared in the /etc/init.d/functions file
+#
+
+source /etc/init.d/functions
+
+#
+# Send all the remaining processes the TERM signal
+#
+
+echo -n "Sending all processes the TERM signal..."
+/sbin/killall5 -15
+evaluate_retval
+
+#
+# Send all the remaining process (after sending them the TERM signal
+# before) the KILL signal.
+#
+
+echo -n "Sending all processes the KILL signal..."
+/sbin/killall5 -9
+evaluate_retval
+
+# End /etc/init.d/sendsignals
+<userinput>EOF</userinput>
+
+</literallayout>
+
+</sect1>
+
diff --git a/chapter07/setclock.sgml b/chapter07/setclock.sgml
new file mode 100644
index 000000000..9e5992c39
--- /dev/null
+++ b/chapter07/setclock.sgml
@@ -0,0 +1,93 @@
+<sect1 id="ch07-setclock">
+<title>Creating the setclock script</title>
+
+<para>
+The following script is only for real use when your hardware clock (also
+known as BIOS or CMOS clock) isn't set to GMT time. The recommended
+setup is setting your hardware clock to GMT and have the time converted
+to localtime using the /etc/localtime symbolic link. But if you run an
+OS that doesn't understand a clock set to GMT (most notable are
+Microsoft OS'es) you might want to set your clock to localtime so that
+the time is properly displayed on those OS'es. This script will reset
+the kernel time to the hardware clock without converting the time using
+the /etc/localtime symlink.
+</para>
+
+<para>
+If you want to use this script on your system even if you have your
+hardware clock set to GMT, then change the UTC variable below to the
+value of <emphasis>1</emphasis>.
+</para>
+
+<literallayout>
+
+<userinput>cat &gt; setclock &lt;&lt; "EOF"</userinput>
+#!/bin/sh
+# Begin /etc/init.d/setclock
+
+#
+# Include the functions declared in the /etc/init.d/functions file
+# and include the variables from the /etc/sysconfig/clock file
+#
+
+source /etc/init.d/functions
+source /etc/sysconfig/clock
+
+#
+# Right now we want to set the kernel clock according to the hardware
+# clock, so we use the -hctosys parameter.
+#
+
+CLOCKPARAMS="--hctosys"
+
+#
+# If the UTC variable is set in the /etc/sysconfig/clock file, add the
+# -u parameter as well which tells hwclock that the hardware clock is
+# set to UTC time instead of local time.
+#
+
+case "$UTC" in
+ yes|true|1)
+ CLOCKPARAMS="$CLOCKPARAMS -u"
+ ;;
+esac
+
+echo -n "Setting clock..."
+/sbin/hwclock $CLOCKPARAMS
+evaluate_retval
+
+# End /etc/init.d/setclock
+<userinput>EOF</userinput>
+
+</literallayout>
+
+<sect2>
+<title>Creating the /etc/sysconfig/clock file</title>
+
+<para>
+Create a new file <filename>/etc/sysconfig/clock</filename> by running
+the following:
+</para>
+
+<literallayout>
+
+<userinput>cat &gt; /etc/sysconfig/clock &lt;&lt; "EOF"</userinput>
+# Begin /etc/sysconfig/clock
+
+UTC=1
+
+# End /etc/sysconfig/clock
+<userinput>EOF</userinput>
+
+</literallayout>
+
+<para>
+If your hardware clock (also known as BIOS or CMOS clock) is not set to
+GMT time, than set the UTC variable in the /etc/sysconfig/clock file to
+the value <emphasis>0</emphasis> (zero).
+</para>
+
+</sect2>
+
+</sect1>
+
diff --git a/chapter07/symperm.sgml b/chapter07/symperm.sgml
new file mode 100644
index 000000000..044f29d7a
--- /dev/null
+++ b/chapter07/symperm.sgml
@@ -0,0 +1,49 @@
+<sect1 id="ch07-symperm">
+<title>Setting up symlinks and permissions</title>
+
+<para>
+Give these files the proper permissions and create the necessary symlinks
+by running the following commands. If you did not create the loadkeys
+and setclock scripts, make sure you don't type them in the commands
+below.
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>cd /etc/init.d &amp;&amp;</userinput>
+ <userinput>chmod 754 rc rcS functions checkfs halt loadkeys mountfs
+ reboot &amp;&amp;</userinput>
+ <userinput>chmod 754 sendsignals setclock sysklogd template
+ &amp;&amp;</userinput>
+ <userinput>cd ../rc0.d &amp;&amp;</userinput>
+ <userinput>ln -s ../init.d/sysklogd K900sysklogd &amp;&amp;</userinput>
+ <userinput>ln -s ../init.d/sendsignals S800sendsignals &amp;&amp;
+ </userinput>
+ <userinput>ln -s ../init.d/mountfs S900mountfs &amp;&amp;</userinput>
+ <userinput>ln -s ../init.d/halt S999halt &amp;&amp;</userinput>
+ <userinput>cd ../rc6.d &amp;&amp;</userinput>
+ <userinput>ln -s ../init.d/sysklogd K900sysklogd &amp;&amp;</userinput>
+ <userinput>ln -s ../init.d/sendsignals S800sendsignals &amp;&amp;
+ </userinput>
+ <userinput>ln -s ../init.d/mountfs S900mountfs &amp;&amp;</userinput>
+ <userinput>ln -s ../init.d/reboot S999reboot &amp;&amp;</userinput>
+ <userinput>cd ../rcS.d &amp;&amp;</userinput>
+ <userinput>ln -s ../init.d/checkfs S200checkfs &amp;&amp;</userinput>
+ <userinput>ln -s ../init.d/mountfs S300mountfs &amp;&amp;</userinput>
+ <userinput>ln -s ../init.d/setclock S400setclock &amp;&amp;</userinput>
+ <userinput>ln -s ../init.d/loadkeys S500loadkeys &amp;&amp;</userinput>
+ <userinput>cd ../rc1.d &amp;&amp;</userinput>
+ <userinput>ln -s ../init.d/sysklogd K900sysklogd &amp;&amp;</userinput>
+ <userinput>cd ../rc2.d &amp;&amp;</userinput>
+ <userinput>ln -s ../init.d/sysklogd S100sysklogd &amp;&amp;</userinput>
+ <userinput>cd ../rc3.d &amp;&amp;</userinput>
+ <userinput>ln -s ../init.d/sysklogd S100sysklogd &amp;&amp;</userinput>
+ <userinput>cd ../rc4.d &amp;&amp;</userinput>
+ <userinput>ln -s ../init.d/sysklogd S100sysklogd &amp;&amp;</userinput>
+ <userinput>cd ../rc5.d &amp;&amp;</userinput>
+ <userinput>ln -s ../init.d/sysklogd S100sysklogd</userinput>
+
+</literallayout></blockquote>
+
+</sect1>
+
diff --git a/chapter07/sysklogd.sgml b/chapter07/sysklogd.sgml
new file mode 100644
index 000000000..74e8b9d6d
--- /dev/null
+++ b/chapter07/sysklogd.sgml
@@ -0,0 +1,67 @@
+<sect1 id="ch07-sysklogd">
+<title>Creating the sysklogd script</title>
+
+<para>
+Create a new file <filename>/etc/init.d/sysklogd</filename> containing
+the following:
+</para>
+
+<literallayout>
+
+<userinput>cat &gt; sysklogd &lt;&lt; "EOF"</userinput>
+#!/bin/sh
+# Begin /etc/init.d/sysklogd
+
+#
+# Include the functions declared in the /etc/init.d/functions file
+#
+
+source /etc/init.d/functions
+
+case "$1" in
+ start)
+ echo -n "Starting system log daemon..."
+ loadproc /usr/sbin/syslogd -m 0
+
+ echo -n "Starting kernel log daemon..."
+ loadproc /usr/sbin/klogd
+ ;;
+
+ stop)
+ echo -n "Stopping kernel log daemon..."
+ killproc klogd
+
+ echo -n "Stopping system log daemon..."
+ killproc syslogd
+ ;;
+
+ reload)
+ echo -n "Reloading system log daemon configuration file..."
+ reloadproc syslogd 1
+ ;;
+
+ restart)
+ $0 stop
+ /usr/bin/sleep 1
+ $0 start
+ ;;
+
+ status)
+ statusproc /usr/sbin/syslogd
+ statusproc /usr/sbin/klogd
+ ;;
+
+ *)
+ echo "Usage: $0 {start|stop|reload|restart|status}"
+ exit 1
+ ;;
+
+esac
+
+# End /etc/init.d/sysklogd
+<userinput>EOF</userinput>
+
+</literallayout>
+
+</sect1>
+
diff --git a/chapter07/template.sgml b/chapter07/template.sgml
new file mode 100644
index 000000000..0c062ca30
--- /dev/null
+++ b/chapter07/template.sgml
@@ -0,0 +1,60 @@
+<sect1 id="ch07-template">
+<title>Creating the template script</title>
+
+<para>
+Create a new file <filename>/etc/init.d/template</filename> containing
+the following:
+</para>
+
+<literallayout>
+
+<userinput>cat &gt; template &lt;&lt; "EOF"</userinput>
+#!/bin/sh
+# Begin /etc/init.d/
+
+#
+# Include the functions declared in the /etc/init.d/functions file
+#
+
+source /etc/init.d/functions
+
+case "$1" in
+ start)
+ echo -n "Starting ..."
+ loadproc
+ ;;
+
+ stop)
+ echo -n "Stopping ..."
+ killproc
+ ;;
+
+ reload)
+ echo -n "Reloading ..."
+ reloadproc
+ ;;
+
+ restart)
+ $0 stop
+ /usr/bin/sleep 1
+ $0 start
+ ;;
+
+ status)
+ statusproc
+ ;;
+
+ *)
+ echo "Usage: $0 {start|stop|reload|restart|status}"
+ exit 1
+ ;;
+
+esac
+
+# End /etc/init.d/
+<userinput>EOF</userinput>
+
+</literallayout>
+
+</sect1>
+
diff --git a/chapter08/chapter8.sgml b/chapter08/chapter8.sgml
new file mode 100644
index 000000000..be5f0ae05
--- /dev/null
+++ b/chapter08/chapter8.sgml
@@ -0,0 +1,9 @@
+<chapter id="chapter08">
+<title>Making the LFS system bootable</title>
+
+&c8-introduction;
+&c8-kernel;
+&c8-lilo;
+&c8-reboot;
+
+</chapter>
diff --git a/chapter08/introduction.sgml b/chapter08/introduction.sgml
new file mode 100644
index 000000000..e64986577
--- /dev/null
+++ b/chapter08/introduction.sgml
@@ -0,0 +1,11 @@
+<sect1 id="ch08-introduction">
+<title>Introduction</title>
+
+<para>
+This chapter will make LFS bootable. This chapter deals with building a
+new kernel for our new LFS system and adding the proper entries to LILO
+so that you can select to boot the LFS system at the LILO: prompt.
+</para>
+
+</sect1>
+
diff --git a/chapter08/kernel.sgml b/chapter08/kernel.sgml
new file mode 100644
index 000000000..77db00cda
--- /dev/null
+++ b/chapter08/kernel.sgml
@@ -0,0 +1,34 @@
+<sect1 id="ch08-kernel">
+<title>Installing a kernel</title>
+
+<para>
+A kernel is the heart of a Linux system. We could use the kernel image
+from our normal system, but we might as well compile a new kernel from
+the most recent kernel sources available.
+</para>
+
+<para>
+Building the kernel involves a few steps: configuring it and compiling
+it. There are a few ways to configure the kernel. If you don't like the
+way this book does it, read the <filename>README</filename> file and find out
+what your other options are. Run the following commands to build the
+kernel:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>cd /usr/src/linux &amp;&amp;</userinput>
+ <userinput>make mrproper &amp;&amp;</userinput>
+ <userinput>make menuconfig &amp;&amp;</userinput>
+ <userinput>make dep &amp;&amp;</userinput>
+ <userinput>make bzImage &amp;&amp;</userinput>
+ <userinput>make modules &amp;&amp;</userinput>
+ <userinput>make modules_install &amp;&amp;</userinput>
+ <userinput>cp arch/i386/boot/bzImage /boot/lfskernel &amp;&amp;
+ </userinput>
+ <userinput>cp System.map /boot</userinput>
+
+</literallayout></blockquote>
+
+</sect1>
+
diff --git a/chapter08/lilo.sgml b/chapter08/lilo.sgml
new file mode 100644
index 000000000..381f2dc56
--- /dev/null
+++ b/chapter08/lilo.sgml
@@ -0,0 +1,36 @@
+<sect1 id="ch08-lilo">
+<title>Adding an entry to LILO</title>
+
+<para>
+In order to being able to boot from this partition, we need to update our
+/etc/lilo.conf file. Add the following lines to lilo.conf by running:
+</para>
+
+<literallayout>
+
+<userinput>cat &gt;&gt; /etc/lilo.conf &lt;&lt; "EOF"</userinput>
+image=/boot/lfskernel
+ label=lfs
+ root=&lt;partition&gt;
+ read-only
+<userinput>EOF</userinput>
+
+</literallayout>
+
+<para>
+&lt;partition&gt; must be replaced by your partition's designation (which
+would be /dev/hda5 in my case).
+</para>
+
+<para>
+Now update the boot loader by running:
+</para>
+
+<blockquote><literallayout>
+
+ <userinput>/sbin/lilo</userinput>
+
+</literallayout></blockquote>
+
+</sect1>
+
diff --git a/chapter08/reboot.sgml b/chapter08/reboot.sgml
new file mode 100644
index 000000000..4ced41b8f
--- /dev/null
+++ b/chapter08/reboot.sgml
@@ -0,0 +1,19 @@
+<sect1 id="ch08-reboot">
+<title>Rebooting the system</title>
+
+<para>
+Now that all software has been installed, bootscripts have been created,
+it's time for you to reboot your computer. Shutdown your system with
+shutdown -r now and reboot into LFS. After the reboot you will have a normal
+login prompt like you have on your normal Linux system (unless you use XDM or
+some sort of other Display Manger (like KDM - KDE's version of XDM).
+</para>
+
+<para>
+One thing remains to be done and that's setting up networking. After you
+rebooted and finished the next chapter of this book your LFS system is
+ready for use and you can do with it whatever you want.
+</para>
+
+</sect1>
+
diff --git a/dedication/dedicated.sgml b/dedication/dedicated.sgml
new file mode 100644
index 000000000..638cdcbfe
--- /dev/null
+++ b/dedication/dedicated.sgml
@@ -0,0 +1,7 @@
+<para>
+
+This book is dedicated to my loving and supportive wife
+<emphasis>Beverly Beekmans</emphasis>.
+
+</para>
+
diff --git a/dedication/dedication.sgml b/dedication/dedication.sgml
new file mode 100644
index 000000000..dae8f2e84
--- /dev/null
+++ b/dedication/dedication.sgml
@@ -0,0 +1,6 @@
+<dedication>
+<title>Dedication</title>
+
+&dc-dedicated;
+
+</dedication>
diff --git a/intel.sgml b/intel.sgml
new file mode 100644
index 000000000..7acb31b1d
--- /dev/null
+++ b/intel.sgml
@@ -0,0 +1,517 @@
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V3.1//EN" [
+
+<!ENTITY book SYSTEM "intel/book/book.sgml">
+
+<!ENTITY version "2.4.4">
+<!ENTITY releasedate "January 23rd, 2001">
+<!ENTITY type "INTEL">
+
+<!ENTITY part1 SYSTEM "intel/book/part1.sgml">
+<!ENTITY part2 SYSTEM "intel/book/part2.sgml">
+<!ENTITY part3 SYSTEM "intel/book/part3.sgml">
+
+<!ENTITY bookinfo SYSTEM "intel/bookinfo/bookinfo.sgml">
+<!ENTITY bi-authorgroup SYSTEM "intel/bookinfo/authorgroup.sgml">
+<!ENTITY bi-copyright SYSTEM "intel/bookinfo/copyright.sgml">
+<!ENTITY bi-legalnotice SYSTEM "intel/bookinfo/legalnotice.sgml">
+<!ENTITY bi-abstract SYSTEM "intel/bookinfo/abstract.sgml">
+
+<!ENTITY dedication SYSTEM "intel/dedication/dedication.sgml">
+<!ENTITY dc-dedicated SYSTEM "intel/dedication/dedicated.sgml">
+
+<!ENTITY preface SYSTEM "intel/preface/preface.sgml">
+<!ENTITY pf-whoread SYSTEM "intel/preface/whoread.sgml">
+<!ENTITY pf-whonotread SYSTEM "intel/preface/whonotread.sgml">
+<!ENTITY pf-organization SYSTEM "intel/preface/organization.sgml">
+<!ENTITY pf-oz-organpart1 SYSTEM "intel/preface/organpart1.sgml">
+<!ENTITY pf-oz-organpart2 SYSTEM "intel/preface/organpart2.sgml">
+<!ENTITY pf-oz-organpart3 SYSTEM "intel/preface/organpart3.sgml">
+
+<!ENTITY chapter1 SYSTEM "intel/chapter1/chapter1.sgml">
+<!ENTITY c1-introduction SYSTEM "intel/chapter1/introduction.sgml">
+<!ENTITY c1-how SYSTEM "intel/chapter1/how.sgml">
+<!ENTITY c1-versions SYSTEM "intel/chapter1/versions.sgml">
+<!ENTITY c1-acknowledgements SYSTEM "intel/chapter1/acknowledgements.sgml">
+<!ENTITY c1-changelog SYSTEM "intel/chapter1/changelog.sgml">
+<!ENTITY c1-mlarchive SYSTEM "intel/chapter1/mlarchive.sgml">
+<!ENTITY c1-ma-lfsdiscuss SYSTEM "intel/chapter1/lfsdiscuss.sgml">
+<!ENTITY c1-ma-lfsapps SYSTEM "intel/chapter1/lfsapps.sgml">
+<!ENTITY c1-ma-lfsannounce SYSTEM "intel/chapter1/lfsannounce.sgml">
+<!ENTITY c1-ma-lfssecurity SYSTEM "intel/chapter1/lfssecurity.sgml">
+<!ENTITY c1-ma-alfsdiscuss SYSTEM "intel/chapter1/alfsdiscuss.sgml">
+<!ENTITY c1-ma-alfsdocs SYSTEM "intel/chapter1/alfsdocs.sgml">
+<!ENTITY c1-ma-alfsipc SYSTEM "intel/chapter1/alfsipc.sgml">
+<!ENTITY c1-ma-alfsprofile SYSTEM "intel/chapter1/alfsprofile.sgml">
+<!ENTITY c1-ma-subscribe SYSTEM "intel/chapter1/subscribe.sgml">
+<!ENTITY c1-ma-unsubscribe SYSTEM "intel/chapter1/unsubscribe.sgml">
+<!ENTITY c1-ma-mailarchive SYSTEM "intel/chapter1/mailarchive.sgml">
+<!ENTITY c1-contactinfo SYSTEM "intel/chapter1/contactinfo.sgml">
+
+<!ENTITY chapter2 SYSTEM "intel/chapter2/chapter2.sgml">
+<!ENTITY c2-aboutlfs SYSTEM "intel/chapter2/aboutlfs.sgml">
+<!ENTITY c2-download SYSTEM "intel/chapter2/download.sgml">
+<!ENTITY c2-install SYSTEM "intel/chapter2/install.sgml">
+<!ENTITY c2-bootscripts SYSTEM "intel/chapter2/bootscripts.sgml">
+<!ENTITY c2-commands SYSTEM "intel/chapter2/commands.sgml">
+
+<!ENTITY chapter3 SYSTEM "intel/chapter3/chapter3.sgml">
+<!ENTITY c3-introduction SYSTEM "intel/chapter3/introduction.sgml">
+<!ENTITY c3-packages SYSTEM "intel/chapter3/packages.sgml">
+<!ENTITY c3-pg-toplevel SYSTEM "intel/chapter3/toplevel.sgml">
+<!ENTITY c3-pg-makedev SYSTEM "intel/chapter3/makedev.sgml">
+<!ENTITY c3-pg-bash SYSTEM "intel/chapter3/bash.sgml">
+<!ENTITY c3-pg-binutils SYSTEM "intel/chapter3/binutils.sgml">
+<!ENTITY c3-pg-bzip2 SYSTEM "intel/chapter3/bzip2.sgml">
+<!ENTITY c3-pg-diffutils SYSTEM "intel/chapter3/diffutils.sgml">
+<!ENTITY c3-pg-fileutils SYSTEM "intel/chapter3/fileutils.sgml">
+<!ENTITY c3-pg-gcc SYSTEM "intel//chapter3/gcc.sgml">
+<!ENTITY c3-pg-kernel SYSTEM "intel/chapter3/kernel.sgml">
+<!ENTITY c3-pg-glibc SYSTEM "intel/chapter3/glibc.sgml">
+<!ENTITY c3-pg-glibc-crypt SYSTEM "intel/chapter3/glibc-crypt.sgml">
+<!ENTITY c3-pg-glibc-threads SYSTEM "intel/chapter3/glibc-threads.sgml">
+<!ENTITY c3-pg-glibc-patch SYSTEM "intel/chapter3/glibc-patch.sgml">
+<!ENTITY c3-pg-grep SYSTEM "intel/chapter3/grep.sgml">
+<!ENTITY c3-pg-gzip SYSTEM "intel/chapter3/gzip.sgml">
+<!ENTITY c3-pg-gzip-patch SYSTEM "intel/chapter3/gzip-patch.sgml">
+<!ENTITY c3-pg-make SYSTEM "intel/chapter3/make.sgml">
+<!ENTITY c3-pg-sed SYSTEM "intel/chapter3/sed.sgml">
+<!ENTITY c3-pg-shellutils SYSTEM "intel/chapter3/shellutils.sgml">
+<!ENTITY c3-pg-tar SYSTEM "intel/chapter3/tar.sgml">
+<!ENTITY c3-pg-tar-patch SYSTEM "intel/chapter3/tar-patch.sgml">
+<!ENTITY c3-pg-textutils SYSTEM "intel/chapter3/textutils.sgml">
+<!ENTITY c3-pg-ed SYSTEM "intel/chapter3/ed.sgml">
+<!ENTITY c3-pg-patch SYSTEM "intel/chapter3/patch.sgml">
+<!ENTITY c3-pg-bison SYSTEM "intel/chapter3/bison.sgml">
+<!ENTITY c3-pg-mawk SYSTEM "intel/chapter3/mawk.sgml">
+<!ENTITY c3-pg-findutils SYSTEM "intel/chapter3/findutils.sgml">
+<!ENTITY c3-pg-findutils-patch SYSTEM "intel/chapter3/findutils-patch.sgml">
+<!ENTITY c3-pg-ncurses SYSTEM "intel/chapter3/ncurses.sgml">
+<!ENTITY c3-pg-less SYSTEM "intel/chapter3/less.sgml">
+<!ENTITY c3-pg-groff SYSTEM "intel/chapter3/groff.sgml">
+<!ENTITY c3-pg-man SYSTEM "intel/chapter3/man.sgml">
+<!ENTITY c3-pg-perl SYSTEM "intel/chapter3/perl.sgml">
+<!ENTITY c3-pg-m4 SYSTEM "intel/chapter3/m4.sgml">
+<!ENTITY c3-pg-texinfo SYSTEM "intel/chapter3/texinfo.sgml">
+<!ENTITY c3-pg-autoconf SYSTEM "intel/chapter3/autoconf.sgml">
+<!ENTITY c3-pg-automake SYSTEM "intel/chapter3/automake.sgml">
+<!ENTITY c3-pg-flex SYSTEM "intel/chapter3/flex.sgml">
+<!ENTITY c3-pg-file SYSTEM "intel/chapter3/file.sgml">
+<!ENTITY c3-pg-e2fsprogs SYSTEM "intel/chapter3/e2fsprogs.sgml">
+<!ENTITY c3-pg-gettext SYSTEM "intel/chapter3/gettext.sgml">
+<!ENTITY c3-pg-ldso SYSTEM "intel/chapter3/ldso.sgml">
+<!ENTITY c3-pg-libtool SYSTEM "intel/chapter3/libtool.sgml">
+<!ENTITY c3-pg-bin86 SYSTEM "intel/chapter3/bin86.sgml">
+<!ENTITY c3-pg-lilo SYSTEM "intel/chapter3/lilo.sgml">
+<!ENTITY c3-pg-shadowpwd SYSTEM "intel/chapter3/shadowpwd.sgml">
+<!ENTITY c3-pg-modutils SYSTEM "intel/chapter3/modutils.sgml">
+<!ENTITY c3-pg-procinfo SYSTEM "intel/chapter3/procinfo.sgml">
+<!ENTITY c3-pg-procps SYSTEM "intel/chapter3/procps.sgml">
+<!ENTITY c3-pg-vim SYSTEM "intel/chapter3/vim.sgml">
+<!ENTITY c3-pg-psmisc SYSTEM "intel/chapter3/psmisc.sgml">
+<!ENTITY c3-pg-sysklogd SYSTEM "intel/chapter3/sysklogd.sgml">
+<!ENTITY c3-pg-sysklogd-patch SYSTEM "intel/chapter3/sysklogd-patch.sgml">
+<!ENTITY c3-pg-sysvinit SYSTEM "intel/chapter3/sysvinit.sgml">
+<!ENTITY c3-pg-sysvinit-patch SYSTEM "intel/chapter3/sysvinit-patch.sgml">
+<!ENTITY c3-pg-utillinux SYSTEM "intel/chapter3/utillinux.sgml">
+<!ENTITY c3-pg-consoletools SYSTEM "intel/chapter3/consoletools.sgml">
+<!ENTITY c3-pg-consoletools-patch SYSTEM "intel/chapter3/consoletools-patch.sgml">
+<!ENTITY c3-pg-consoledata SYSTEM "intel/chapter3/consoledata.sgml">
+<!ENTITY c3-pg-manpages SYSTEM "intel/chapter3/manpages.sgml">
+<!ENTITY c3-pg-netkitbase SYSTEM "intel/chapter3/netkitbase.sgml">
+<!ENTITY c3-pg-nettools SYSTEM "intel/chapter3/nettools.sgml">
+
+<!ENTITY chapter4 SYSTEM "intel/chapter4/chapter4.sgml">
+<!ENTITY c4-introduction SYSTEM "intel/chapter4/introduction.sgml">
+<!ENTITY c4-creatingpart SYSTEM "intel/chapter4/creatingpart.sgml">
+<!ENTITY c4-creatingfs SYSTEM "intel/chapter4/creatingfs.sgml">
+<!ENTITY c4-mounting SYSTEM "intel/chapter4/mounting.sgml">
+<!ENTITY c4-creatingdirs SYSTEM "intel/chapter4/creatingdirs.sgml">
+
+<!ENTITY chapter5 SYSTEM "intel/chapter5/chapter5.sgml">
+<!ENTITY c5-introduction SYSTEM "intel/chapter5/introduction.sgml">
+
+<!ENTITY c5-pp-bash SYSTEM "intel/chapter5/bash-static.sgml">
+<!ENTITY c5-pp-bash-inst SYSTEM "intel/chapter5/bash-static-inst.sgml">
+<!ENTITY c5-pp-bash-exp SYSTEM "intel/chapter5/bash-static-exp.sgml">
+<!ENTITY c5-pp-binutils SYSTEM "intel/chapter5/binutils-static.sgml">
+<!ENTITY c5-pp-binutils-inst SYSTEM "intel/chapter5/binutils-static-inst.sgml">
+<!ENTITY c5-pp-binutils-exp SYSTEM "intel/chapter5/binutils-static-exp.sgml">
+<!ENTITY c5-pp-bzip2 SYSTEM "intel/chapter5/bzip2-static.sgml">
+<!ENTITY c5-pp-bzip2-inst SYSTEM "intel/chapter5/bzip2-static-inst.sgml">
+<!ENTITY c5-pp-bzip2-exp SYSTEM "intel/chapter5/bzip2-static-exp.sgml">
+<!ENTITY c5-pp-diffutils SYSTEM "intel/chapter5/diffutils-static.sgml">
+<!ENTITY c5-pp-diffutils-inst SYSTEM "intel/chapter5/diffutils-static-inst.sgml">
+<!ENTITY c5-pp-diffutils-exp SYSTEM "intel/chapter5/diffutils-static-exp.sgml">
+<!ENTITY c5-pp-fileutils SYSTEM "intel/chapter5/fileutils-static.sgml">
+<!ENTITY c5-pp-fileutils-inst SYSTEM "intel/chapter5/fileutils-static-inst.sgml">
+<!ENTITY c5-pp-fileutils-exp SYSTEM "intel/chapter5/fileutils-static-exp.sgml">
+<!ENTITY c5-pp-gcc-local SYSTEM "intel/chapter5/gcc-local.sgml">
+<!ENTITY c5-pp-gcc-local-inst SYSTEM "intel/chapter5/gcc-local-inst.sgml">
+<!ENTITY c5-pp-gcc-local-exp SYSTEM "intel/chapter5/gcc-local-exp.sgml">
+<!ENTITY c5-pp-gcc SYSTEM "intel/chapter5/gcc-static.sgml">
+<!ENTITY c5-pp-gcc-inst SYSTEM "intel/chapter5/gcc-static-inst.sgml">
+<!ENTITY c5-pp-gcc-exp SYSTEM "intel/chapter5/gcc-static-exp.sgml">
+<!ENTITY c5-pp-kernel SYSTEM "intel/chapter5/kernel.sgml">
+<!ENTITY c5-pp-kernel-inst SYSTEM "intel/chapter5/kernel-inst.sgml">
+<!ENTITY c5-pp-kernel-exp SYSTEM "intel/chapter5/kernel-exp.sgml">
+<!ENTITY c5-pp-glibc SYSTEM "intel/chapter5/glibc.sgml">
+<!ENTITY c5-pp-glibc-inst SYSTEM "intel/chapter5/glibc-inst.sgml">
+<!ENTITY c5-pp-glibc-exp SYSTEM "intel/chapter5/glibc-exp.sgml">
+<!ENTITY c5-pp-glibc-nss SYSTEM "intel/chapter5/glibc-nss.sgml">
+<!ENTITY c5-pp-grep SYSTEM "intel/chapter5/grep-static.sgml">
+<!ENTITY c5-pp-grep-inst SYSTEM "intel/chapter5/grep-static-inst.sgml">
+<!ENTITY c5-pp-gzip SYSTEM "intel/chapter5/gzip-static.sgml">
+<!ENTITY c5-pp-gzip-inst SYSTEM "intel/chapter5/gzip-static-inst.sgml">
+<!ENTITY c5-pp-make SYSTEM "intel/chapter5/make-static.sgml">
+<!ENTITY c5-pp-make-inst SYSTEM "intel/chapter5/make-static-inst.sgml">
+<!ENTITY c5-pp-sed SYSTEM "intel/chapter5/sed-static.sgml">
+<!ENTITY c5-pp-sed-inst SYSTEM "intel/chapter5/sed-static-inst.sgml">
+<!ENTITY c5-pp-shellutils SYSTEM "intel/chapter5/shellutils-static.sgml">
+<!ENTITY c5-pp-shellutils-inst SYSTEM "intel/chapter5/shellutils-static-inst.sgml">
+<!ENTITY c5-pp-tar SYSTEM "intel/chapter5/tar-static.sgml">
+<!ENTITY c5-pp-tar-inst SYSTEM "intel/chapter5/tar-static-inst.sgml">
+<!ENTITY c5-pp-textutils SYSTEM "intel/chapter5/textutils-static.sgml">
+<!ENTITY c5-pp-textutils-inst SYSTEM "intel/chapter5/textutils-static-inst.sgml">
+<!ENTITY c5-pp-pwdgroup SYSTEM "intel/chapter5/pwdgroup.sgml">
+<!ENTITY c5-pp-proc SYSTEM "intel/chapter5/proc.sgml">
+
+<!ENTITY chapter6 SYSTEM "intel/chapter6/chapter6.sgml">
+<!ENTITY c6-introduction SYSTEM "intel/chapter6/introduction.sgml">
+<!ENTITY c6-aboutdebug SYSTEM "intel/chapter6/aboutdebug.sgml">
+<!ENTITY c6-bashprofile SYSTEM "intel/chapter6/bashprofile.sgml">
+<!ENTITY c6-in-chroot SYSTEM "intel/chapter6/chroot.sgml">
+<!ENTITY c6-in-creatingdev SYSTEM "intel/chapter6/creatingdev.sgml">
+<!ENTITY c6-in-makedev-inst SYSTEM "intel/chapter6/makedev-inst.sgml">
+<!ENTITY c6-in-makedev-exp SYSTEM "intel/chapter6/makedev-exp.sgml">
+<!ENTITY c6-in-createdeventries SYSTEM "intel/chapter6/createdeventries.sgml">
+<!ENTITY c6-in-ed SYSTEM "intel/chapter6/ed.sgml">
+<!ENTITY c6-in-ed-inst SYSTEM "intel/chapter6/ed-inst.sgml">
+<!ENTITY c6-in-patch SYSTEM "intel/chapter6/patch.sgml">
+<!ENTITY c6-in-patch-inst SYSTEM "intel/chapter6/patch-inst.sgml">
+<!ENTITY c6-in-gcc SYSTEM "intel/chapter6/gcc.sgml">
+<!ENTITY c6-in-gcc-inst SYSTEM "intel/chapter6/gcc-inst.sgml">
+<!ENTITY c6-in-bison SYSTEM "intel/chapter6/bison.sgml">
+<!ENTITY c6-in-bison-inst SYSTEM "intel/chapter6/bison-inst.sgml">
+<!ENTITY c6-in-bison-exp SYSTEM "intel/chapter6/bison-exp.sgml">
+<!ENTITY c6-in-mawk SYSTEM "intel/chapter6/mawk.sgml">
+<!ENTITY c6-in-mawk-inst SYSTEM "intel/chapter6/mawk-inst.sgml">
+<!ENTITY c6-in-findutils SYSTEM "intel/chapter6/findutils.sgml">
+<!ENTITY c6-in-findutils-inst SYSTEM "intel/chapter6/findutils-inst.sgml">
+<!ENTITY c6-in-ncurses SYSTEM "intel/chapter6/ncurses.sgml">
+<!ENTITY c6-in-ncurses-inst SYSTEM "intel/chapter6/ncurses-inst.sgml">
+<!ENTITY c6-in-ncurses-exp SYSTEM "intel/chapter6/ncurses-exp.sgml">
+<!ENTITY c6-in-less SYSTEM "intel/chapter6/less.sgml">
+<!ENTITY c6-in-less-inst SYSTEM "intel/chapter6/less-inst.sgml">
+<!ENTITY c6-in-perl SYSTEM "intel/chapter6/perl.sgml">
+<!ENTITY c6-in-perl-inst SYSTEM "intel/chapter6/perl-inst.sgml">
+<!ENTITY c6-in-m4 SYSTEM "intel/chapter6/m4.sgml">
+<!ENTITY c6-in-m4-inst SYSTEM "intel/chapter6/m4-inst.sgml">
+<!ENTITY c6-in-texinfo SYSTEM "intel/chapter6/texinfo.sgml">
+<!ENTITY c6-in-texinfo-inst SYSTEM "intel/chapter6/texinfo-inst.sgml">
+<!ENTITY c6-in-autoconf SYSTEM "intel/chapter6/autoconf.sgml">
+<!ENTITY c6-in-autoconf-inst SYSTEM "intel/chapter6/autoconf-inst.sgml">
+<!ENTITY c6-in-automake SYSTEM "intel/chapter6/automake.sgml">
+<!ENTITY c6-in-automake-inst SYSTEM "intel/chapter6/automake-inst.sgml">
+<!ENTITY c6-in-bash SYSTEM "intel/chapter6/bash.sgml">
+<!ENTITY c6-in-bash-inst SYSTEM "intel/chapter6/bash-inst.sgml">
+<!ENTITY c6-in-flex SYSTEM "intel/chapter6/flex.sgml">
+<!ENTITY c6-in-flex-inst SYSTEM "intel/chapter6/flex-inst.sgml">
+<!ENTITY c6-in-binutils SYSTEM "intel/chapter6/binutils.sgml">
+<!ENTITY c6-in-binutils-inst SYSTEM "intel/chapter6/binutils-inst.sgml">
+<!ENTITY c6-in-bzip2 SYSTEM "intel/chapter6/bzip2.sgml">
+<!ENTITY c6-in-bzip2-inst SYSTEM "intel/chapter6/bzip2-inst.sgml">
+<!ENTITY c6-in-bzip2-exp SYSTEM "intel/chapter6/bzip2-exp.sgml">
+<!ENTITY c6-in-diffutils SYSTEM "intel/chapter6/diffutils.sgml">
+<!ENTITY c6-in-diffutils-inst SYSTEM "intel/chapter6/diffutils-inst.sgml">
+<!ENTITY c6-in-e2fsprogs SYSTEM "intel/chapter6/e2fsprogs.sgml">
+<!ENTITY c6-in-e2fsprogs-inst SYSTEM "intel/chapter6/e2fsprogs-inst.sgml">
+<!ENTITY c6-in-file SYSTEM "intel/chapter6/file.sgml">
+<!ENTITY c6-in-file-inst SYSTEM "intel/chapter6/file-inst.sgml">
+<!ENTITY c6-in-fileutils SYSTEM "intel/chapter6/fileutils.sgml">
+<!ENTITY c6-in-fileutils-inst SYSTEM "intel/chapter6/fileutils-inst.sgml">
+<!ENTITY c6-in-gettext SYSTEM "intel/chapter6/gettext.sgml">
+<!ENTITY c6-in-gettext-inst SYSTEM "intel/chapter6/gettext-inst.sgml">
+<!ENTITY c6-in-grep SYSTEM "intel/chapter6/grep.sgml">
+<!ENTITY c6-in-grep-inst SYSTEM "intel/chapter6/grep-inst.sgml">
+<!ENTITY c6-in-groff SYSTEM "intel/chapter6/groff.sgml">
+<!ENTITY c6-in-groff-inst SYSTEM "intel/chapter6/groff-inst.sgml">
+<!ENTITY c6-in-gzip SYSTEM "intel/chapter6/gzip.sgml">
+<!ENTITY c6-in-gzip-inst SYSTEM "intel/chapter6/gzip-inst.sgml">
+<!ENTITY c6-in-ldso SYSTEM "intel/chapter6/ldso.sgml">
+<!ENTITY c6-in-ldso-inst SYSTEM "intel/chapter6/ldso-inst.sgml">
+<!ENTITY c6-in-libtool SYSTEM "intel/chapter6/libtool.sgml">
+<!ENTITY c6-in-libtool-inst SYSTEM "intel/chapter6/libtool-inst.sgml">
+<!ENTITY c6-in-bin86 SYSTEM "intel/chapter6/bin86.sgml">
+<!ENTITY c6-in-bin86-inst SYSTEM "intel/chapter6/bin86-inst.sgml">
+<!ENTITY c6-in-lilo SYSTEM "intel/chapter6/lilo.sgml">
+<!ENTITY c6-in-lilo-inst SYSTEM "intel/chapter6/lilo-inst.sgml">
+<!ENTITY c6-in-make SYSTEM "intel/chapter6/make.sgml">
+<!ENTITY c6-in-make-inst SYSTEM "intel/chapter6/make-inst.sgml">
+<!ENTITY c6-in-shellutils SYSTEM "intel/chapter6/shellutils.sgml">
+<!ENTITY c6-in-shellutils-inst SYSTEM "intel/chapter6/shellutils-inst.sgml">
+<!ENTITY c6-in-shadowpwd SYSTEM "intel/chapter6/shadowpwd.sgml">
+<!ENTITY c6-in-shadowpwd-inst SYSTEM "intel/chapter6/shadowpwd-inst.sgml">
+<!ENTITY c6-in-shadowpwd-exp SYSTEM "intel/chapter6/shadowpwd-exp.sgml">
+<!ENTITY c6-in-man SYSTEM "intel/chapter6/man.sgml">
+<!ENTITY c6-in-man-inst SYSTEM "intel/chapter6/man-inst.sgml">
+<!ENTITY c6-in-man-exp SYSTEM "intel/chapter6/man-exp.sgml">
+<!ENTITY c6-in-modutils SYSTEM "intel/chapter6/modutils.sgml">
+<!ENTITY c6-in-modutils-inst SYSTEM "intel/chapter6/modutils-inst.sgml">
+<!ENTITY c6-in-procinfo SYSTEM "intel/chapter6/procinfo.sgml">
+<!ENTITY c6-in-procinfo-exp SYSTEM "intel/chapter6/procinfo-exp.sgml">
+<!ENTITY c6-in-procinfo-inst SYSTEM "intel/chapter6/procinfo-inst.sgml">
+<!ENTITY c6-in-procps SYSTEM "intel/chapter6/procps.sgml">
+<!ENTITY c6-in-procps-inst SYSTEM "intel/chapter6/procps-inst.sgml">
+<!ENTITY c6-in-psmisc SYSTEM "intel/chapter6/psmisc.sgml">
+<!ENTITY c6-in-psmisc-inst SYSTEM "intel/chapter6/psmisc-inst.sgml">
+<!ENTITY c6-in-sed SYSTEM "intel/chapter6/sed.sgml">
+<!ENTITY c6-in-sed-inst SYSTEM "intel/chapter6/sed-inst.sgml">
+<!ENTITY c6-in-sysklogd SYSTEM "intel/chapter6/sysklogd.sgml">
+<!ENTITY c6-in-sysklogd-inst SYSTEM "intel/chapter6/sysklogd-inst.sgml">
+<!ENTITY c6-in-sysvinit SYSTEM "intel/chapter6/sysvinit.sgml">
+<!ENTITY c6-in-sysvinit-inst SYSTEM "intel/chapter6/sysvinit-inst.sgml">
+<!ENTITY c6-in-tar SYSTEM "intel/chapter6/tar.sgml">
+<!ENTITY c6-in-tar-inst SYSTEM "intel/chapter6/tar-inst.sgml">
+<!ENTITY c6-in-textutils SYSTEM "intel/chapter6/textutils.sgml">
+<!ENTITY c6-in-textutils-inst SYSTEM "intel/chapter6/textutils-inst.sgml">
+<!ENTITY c6-in-vim SYSTEM "intel/chapter6/vim.sgml">
+<!ENTITY c6-in-vim-inst SYSTEM "intel/chapter6/vim-inst.sgml">
+<!ENTITY c6-in-utillinux SYSTEM "intel/chapter6/utillinux.sgml">
+<!ENTITY c6-in-utillinux-inst SYSTEM "intel/chapter6/utillinux-inst.sgml">
+<!ENTITY c6-in-utillinux-exp SYSTEM "intel/chapter6/utillinux-exp.sgml">
+<!ENTITY c6-in-consoletools SYSTEM "intel/chapter6/consoletools.sgml">
+<!ENTITY c6-in-consoletools-inst SYSTEM "intel/chapter6/consoletools-inst.sgml">
+<!ENTITY c6-in-consoledata SYSTEM "intel/chapter6/consoledata.sgml">
+<!ENTITY c6-in-consoledata-inst SYSTEM "intel/chapter6/consoledata-inst.sgml">
+<!ENTITY c6-in-manpages SYSTEM "intel/chapter6/manpages.sgml">
+<!ENTITY c6-in-manpages-inst SYSTEM "intel/chapter6/manpages-inst.sgml">
+<!ENTITY c6-nssremove SYSTEM "intel/chapter6/removeoldnss.sgml">
+<!ENTITY c6-configure SYSTEM "intel/chapter6/configure.sgml">
+<!ENTITY c6-cf-glibc SYSTEM "intel/chapter6/config-glibc.sgml">
+<!ENTITY c6-cf-ldso SYSTEM "intel/chapter6/config-ldso.sgml">
+<!ENTITY c6-cf-lilo SYSTEM "intel/chapter6/config-lilo.sgml">
+<!ENTITY c6-cf-sysklogd SYSTEM "intel/chapter6/config-sysklogd.sgml">
+<!ENTITY c6-cf-shadowpwd SYSTEM "intel/chapter6/config-shadowpwd.sgml">
+<!ENTITY c6-cf-sysvinit SYSTEM "intel/chapter6/config-sysvinit.sgml">
+<!ENTITY c6-cf-utmp SYSTEM "intel/chapter6/create-utmp.sgml">
+<!ENTITY c6-cf-vim SYSTEM "intel/chapter6/config-vim.sgml">
+<!ENTITY c6-cf-password SYSTEM "intel/chapter6/create-password.sgml">
+
+<!ENTITY chapter7 SYSTEM "intel/chapter7/chapter7.sgml">
+<!ENTITY c7-introduction SYSTEM "intel/chapter7/introduction.sgml">
+<!ENTITY c7-createdirs SYSTEM "intel/chapter7/createdirs.sgml">
+<!ENTITY c7-rc SYSTEM "intel/chapter7/rc.sgml">
+<!ENTITY c7-rcS SYSTEM "intel/chapter7/rcS.sgml">
+<!ENTITY c7-functions SYSTEM "intel/chapter7/functions.sgml">
+<!ENTITY c7-reboot SYSTEM "intel/chapter7/reboot.sgml">
+<!ENTITY c7-halt SYSTEM "intel/chapter7/halt.sgml">
+<!ENTITY c7-mountfs SYSTEM "intel/chapter7/mountfs.sgml">
+<!ENTITY c7-sendsignals SYSTEM "intel/chapter7/sendsignals.sgml">
+<!ENTITY c7-checkfs SYSTEM "intel/chapter7/checkfs.sgml">
+<!ENTITY c7-sysklogd SYSTEM "intel/chapter7/sysklogd.sgml">
+<!ENTITY c7-template SYSTEM "intel/chapter7/template.sgml">
+<!ENTITY c7-loadkeys SYSTEM "intel/chapter7/loadkeys.sgml">
+<!ENTITY c7-setclock SYSTEM "intel/chapter7/setclock.sgml">
+<!ENTITY c7-symperm SYSTEM "intel/chapter7/symperm.sgml">
+<!ENTITY c7-fstab SYSTEM "intel/chapter7/fstab.sgml">
+
+<!ENTITY chapter8 SYSTEM "intel/chapter8/chapter8.sgml">
+<!ENTITY c8-introduction SYSTEM "intel/chapter8/introduction.sgml">
+<!ENTITY c8-kernel SYSTEM "intel/chapter8/kernel.sgml">
+<!ENTITY c8-lilo SYSTEM "intel/chapter8/lilo.sgml">
+<!ENTITY c8-reboot SYSTEM "intel/chapter8/reboot.sgml">
+
+<!ENTITY chapter9 SYSTEM "intel/chapter9/chapter9.sgml">
+<!ENTITY c9-introduction SYSTEM "intel/chapter9/introduction.sgml">
+<!ENTITY c9-networksoftware SYSTEM "intel/chapter9/networksoftware.sgml">
+<!ENTITY c9-ns-netkitbase SYSTEM "intel/chapter9/netkitbase.sgml">
+<!ENTITY c9-ns-nettools SYSTEM "intel/chapter9/nettools.sgml">
+<!ENTITY c9-localnet SYSTEM "intel/chapter9/localnet.sgml">
+<!ENTITY c9-localnet-symperm SYSTEM "intel/chapter9/localnet-symperm.sgml">
+<!ENTITY c9-network SYSTEM "intel/chapter9/network.sgml">
+<!ENTITY c9-hosts SYSTEM "intel/chapter9/hosts.sgml">
+<!ENTITY c9-ethnet SYSTEM "intel/chapter9/ethnet.sgml">
+<!ENTITY c9-ethnet-symperm SYSTEM "intel/chapter9/ethnet-symperm.sgml">
+
+<!ENTITY appendixa SYSTEM "intel/appendixa/appendixa.sgml">
+<!ENTITY aa-introduction SYSTEM "intel/appendixa/introduction.sgml">
+<!ENTITY aa-makedev SYSTEM "intel/appendixa/makedev.sgml">
+<!ENTITY aa-makedev-desc SYSTEM "intel/appendixa/makedev-desc.sgml">
+<!ENTITY aa-glibc SYSTEM "intel/appendixa/glibc.sgml">
+<!ENTITY aa-glibc-desc SYSTEM "intel/appendixa/glibc-desc.sgml">
+<!ENTITY aa-ed SYSTEM "intel/appendixa/ed.sgml">
+<!ENTITY aa-ed-desc SYSTEM "intel/appendixa/ed-desc.sgml">
+<!ENTITY aa-patch SYSTEM "intel/appendixa/patch.sgml">
+<!ENTITY aa-patch-desc SYSTEM "intel/appendixa/patch-desc.sgml">
+<!ENTITY aa-gcc SYSTEM "intel/appendixa/gcc.sgml">
+<!ENTITY aa-gcc-desc SYSTEM "intel/appendixa/gcc-desc.sgml">
+<!ENTITY aa-bison SYSTEM "intel/appendixa/bison.sgml">
+<!ENTITY aa-bison-desc SYSTEM "intel/appendixa/bison-desc.sgml">
+<!ENTITY aa-mawk SYSTEM "intel/appendixa/mawk.sgml">
+<!ENTITY aa-mawk-desc SYSTEM "intel/appendixa/mawk-desc.sgml">
+<!ENTITY aa-findutils SYSTEM "intel/appendixa/findutils.sgml">
+<!ENTITY aa-findutils-desc SYSTEM "intel/appendixa/findutils-desc.sgml">
+<!ENTITY aa-ncurses SYSTEM "intel/appendixa/ncurses.sgml">
+<!ENTITY aa-ncurses-desc SYSTEM "intel/appendixa/ncurses-desc.sgml">
+<!ENTITY aa-less SYSTEM "intel/appendixa/less.sgml">
+<!ENTITY aa-less-desc SYSTEM "intel/appendixa/less-desc.sgml">
+<!ENTITY aa-perl SYSTEM "intel/appendixa/perl.sgml">
+<!ENTITY aa-perl-desc SYSTEM "intel/appendixa/perl-desc.sgml">
+<!ENTITY aa-m4 SYSTEM "intel/appendixa/m4.sgml">
+<!ENTITY aa-m4-desc SYSTEM "intel/appendixa/m4-desc.sgml">
+<!ENTITY aa-texinfo SYSTEM "intel/appendixa/texinfo.sgml">
+<!ENTITY aa-texinfo-desc SYSTEM "intel/appendixa/texinfo-desc.sgml">
+<!ENTITY aa-autoconf SYSTEM "intel/appendixa/autoconf.sgml">
+<!ENTITY aa-autoconf-desc SYSTEM "intel/appendixa/autoconf-desc.sgml">
+<!ENTITY aa-automake SYSTEM "intel/appendixa/automake.sgml">
+<!ENTITY aa-automake-desc SYSTEM "intel/appendixa/automake-desc.sgml">
+<!ENTITY aa-bash SYSTEM "intel/appendixa/bash.sgml">
+<!ENTITY aa-bash-desc SYSTEM "intel/appendixa/bash-desc.sgml">
+<!ENTITY aa-flex SYSTEM "intel/appendixa/flex.sgml">
+<!ENTITY aa-flex-desc SYSTEM "intel/appendixa/flex-desc.sgml">
+<!ENTITY aa-binutils SYSTEM "intel/appendixa/binutils.sgml">
+<!ENTITY aa-binutils-desc SYSTEM "intel/appendixa/binutils-desc.sgml">
+<!ENTITY aa-bzip2 SYSTEM "intel/appendixa/bzip2.sgml">
+<!ENTITY aa-bzip2-desc SYSTEM "intel/appendixa/bzip2-desc.sgml">
+<!ENTITY aa-diffutils SYSTEM "intel/appendixa/diffutils.sgml">
+<!ENTITY aa-diffutils-desc SYSTEM "intel/appendixa/diffutils-desc.sgml">
+<!ENTITY aa-kernel SYSTEM "intel/appendixa/kernel.sgml">
+<!ENTITY aa-kernel-desc SYSTEM "intel/appendixa/kernel-desc.sgml">
+<!ENTITY aa-e2fsprogs SYSTEM "intel/appendixa/e2fsprogs.sgml">
+<!ENTITY aa-e2fsprogs-desc SYSTEM "intel/appendixa/e2fsprogs-desc.sgml">
+<!ENTITY aa-file SYSTEM "intel/appendixa/file.sgml">
+<!ENTITY aa-file-desc SYSTEM "intel/appendixa/file-desc.sgml">
+<!ENTITY aa-fileutils SYSTEM "intel/appendixa/fileutils.sgml">
+<!ENTITY aa-fileutils-desc SYSTEM "intel/appendixa/fileutils-desc.sgml">
+<!ENTITY aa-gettext SYSTEM "intel/appendixa/gettext.sgml">
+<!ENTITY aa-gettext-desc SYSTEM "intel/appendixa/gettext-desc.sgml">
+<!ENTITY aa-grep SYSTEM "intel/appendixa/grep.sgml">
+<!ENTITY aa-grep-desc SYSTEM "intel/appendixa/grep-desc.sgml">
+<!ENTITY aa-groff SYSTEM "intel/appendixa/groff.sgml">
+<!ENTITY aa-groff-desc SYSTEM "intel/appendixa/groff-desc.sgml">
+<!ENTITY aa-gzip SYSTEM "intel/appendixa/gzip.sgml">
+<!ENTITY aa-gzip-desc SYSTEM "intel/appendixa/gzip-desc.sgml">
+<!ENTITY aa-ldso SYSTEM "intel/appendixa/ldso.sgml">
+<!ENTITY aa-ldso-desc SYSTEM "intel/appendixa/ldso-desc.sgml">
+<!ENTITY aa-libtool SYSTEM "intel/appendixa/libtool.sgml">
+<!ENTITY aa-libtool-desc SYSTEM "intel/appendixa/libtool-desc.sgml">
+<!ENTITY aa-bin86 SYSTEM "intel/appendixa/bin86.sgml">
+<!ENTITY aa-bin86-desc SYSTEM "intel/appendixa/bin86-desc.sgml">
+<!ENTITY aa-lilo SYSTEM "intel/appendixa/lilo.sgml">
+<!ENTITY aa-lilo-desc SYSTEM "intel/appendixa/lilo-desc.sgml">
+<!ENTITY aa-make SYSTEM "intel/appendixa/make.sgml">
+<!ENTITY aa-make-desc SYSTEM "intel/appendixa/make-desc.sgml">
+<!ENTITY aa-shellutils SYSTEM "intel/appendixa/shellutils.sgml">
+<!ENTITY aa-shellutils-desc SYSTEM "intel/appendixa/shellutils-desc.sgml">
+<!ENTITY aa-shadowpwd SYSTEM "intel/appendixa/shadowpwd.sgml">
+<!ENTITY aa-shadowpwd-desc SYSTEM "intel/appendixa/shadowpwd-desc.sgml">
+<!ENTITY aa-man SYSTEM "intel/appendixa/man.sgml">
+<!ENTITY aa-man-desc SYSTEM "intel/appendixa/man-desc.sgml">
+<!ENTITY aa-modutils SYSTEM "intel/appendixa/modutils.sgml">
+<!ENTITY aa-modutils-desc SYSTEM "intel/appendixa/modutils-desc.sgml">
+<!ENTITY aa-procinfo SYSTEM "intel/appendixa/procinfo.sgml">
+<!ENTITY aa-procinfo-desc SYSTEM "intel/appendixa/procinfo-desc.sgml">
+<!ENTITY aa-procps SYSTEM "intel/appendixa/procps.sgml">
+<!ENTITY aa-procps-desc SYSTEM "intel/appendixa/procps-desc.sgml">
+<!ENTITY aa-psmisc SYSTEM "intel/appendixa/psmisc.sgml">
+<!ENTITY aa-psmisc-desc SYSTEM "intel/appendixa/psmisc-desc.sgml">
+<!ENTITY aa-sed SYSTEM "intel/appendixa/sed.sgml">
+<!ENTITY aa-sed-desc SYSTEM "intel/appendixa/sed-desc.sgml">
+<!ENTITY aa-ssd SYSTEM "intel/appendixa/ssd.sgml">
+<!ENTITY aa-vim SYSTEM "intel/appendixa/vim.sgml">
+<!ENTITY aa-vim-desc SYSTEM "intel/appendixa/vim-desc.sgml">
+<!ENTITY aa-sysklogd SYSTEM "intel/appendixa/sysklogd.sgml">
+<!ENTITY aa-sysklogd-desc SYSTEM "intel/appendixa/sysklogd-desc.sgml">
+<!ENTITY aa-sysvinit SYSTEM "intel/appendixa/sysvinit.sgml">
+<!ENTITY aa-sysvinit-desc SYSTEM "intel/appendixa/sysvinit-desc.sgml">
+<!ENTITY aa-tar SYSTEM "intel/appendixa/tar.sgml">
+<!ENTITY aa-tar-desc SYSTEM "intel/appendixa/tar-desc.sgml">
+<!ENTITY aa-textutils SYSTEM "intel/appendixa/textutils.sgml">
+<!ENTITY aa-textutils-desc SYSTEM "intel/appendixa/textutils-desc.sgml">
+<!ENTITY aa-utillinux SYSTEM "intel/appendixa/utillinux.sgml">
+<!ENTITY aa-utillinux-desc SYSTEM "intel/appendixa/utillinux-desc.sgml">
+<!ENTITY aa-consoletools SYSTEM "intel/appendixa/consoletools.sgml">
+<!ENTITY aa-consoletools-desc SYSTEM "intel/appendixa/consoletools-desc.sgml">
+<!ENTITY aa-consoledata SYSTEM "intel/appendixa/consoledata.sgml">
+<!ENTITY aa-consoledata-desc SYSTEM "intel/appendixa/consoledata-desc.sgml">
+<!ENTITY aa-manpages SYSTEM "intel/appendixa/manpages.sgml">
+<!ENTITY aa-manpages-desc SYSTEM "intel/appendixa/manpages-desc.sgml">
+
+<!ENTITY appendixb SYSTEM "intel/appendixb/appendixb.sgml">
+<!ENTITY ab-introduction SYSTEM "intel/appendixb/introduction.sgml">
+<!ENTITY ab-books SYSTEM "intel/appendixb/books.sgml">
+<!ENTITY ab-howtoguides SYSTEM "intel/appendixb/howtoguides.sgml">
+<!ENTITY ab-other SYSTEM "intel/appendixb/other.sgml">
+
+<!ENTITY appendixc SYSTEM "intel/appendixc/appendixc.sgml">
+<!ENTITY ac-introduction SYSTEM "intel/appendixc/introduction.sgml">
+<!ENTITY ac-packages SYSTEM "intel/appendixc/packages.sgml">
+<!ENTITY ac-toplevel SYSTEM "intel/appendixc/toplevel.sgml">
+<!ENTITY ac-makedev SYSTEM "intel/appendixc/makedev.sgml">
+<!ENTITY ac-bash SYSTEM "intel/appendixc/bash.sgml">
+<!ENTITY ac-binutils SYSTEM "intel/appendixc/binutils.sgml">
+<!ENTITY ac-bzip2 SYSTEM "intel/appendixc/bzip2.sgml">
+<!ENTITY ac-diffutils SYSTEM "intel/appendixc/diffutils.sgml">
+<!ENTITY ac-fileutils SYSTEM "intel/appendixc/fileutils.sgml">
+<!ENTITY ac-gcc SYSTEM "intel/appendixc/gcc.sgml">
+<!ENTITY ac-kernel SYSTEM "intel/appendixc/kernel.sgml">
+<!ENTITY ac-glibc SYSTEM "intel/appendixc/glibc.sgml">
+<!ENTITY ac-glibc-crypt SYSTEM "intel/appendixc/glibc-crypt.sgml">
+<!ENTITY ac-glibc-threads SYSTEM "intel/appendixc/glibc-threads.sgml">
+<!ENTITY ac-glibc-patch SYSTEM "intel/appendixc/glibc-patch.sgml">
+<!ENTITY ac-grep SYSTEM "intel/appendixc/grep.sgml">
+<!ENTITY ac-gzip SYSTEM "intel/appendixc/gzip.sgml">
+<!ENTITY ac-make SYSTEM "intel/appendixc/make.sgml">
+<!ENTITY ac-sed SYSTEM "intel/appendixc/sed.sgml">
+<!ENTITY ac-shellutils SYSTEM "intel/appendixc/shellutils.sgml">
+<!ENTITY ac-tar SYSTEM "intel/appendixc/tar.sgml">
+<!ENTITY ac-tar-patch SYSTEM "intel/appendixc/tar-patch.sgml">
+<!ENTITY ac-textutils SYSTEM "intel/appendixc/textutils.sgml">
+<!ENTITY ac-ed SYSTEM "intel/appendixc/ed.sgml">
+<!ENTITY ac-patch SYSTEM "intel/appendixc/patch.sgml">
+<!ENTITY ac-bison SYSTEM "intel/appendixc/bison.sgml">
+<!ENTITY ac-mawk SYSTEM "intel/appendixc/mawk.sgml">
+<!ENTITY ac-findutils SYSTEM "intel/appendixc/findutils.sgml">
+<!ENTITY ac-findutils-patch SYSTEM "intel/appendixc/findutils-patch.sgml">
+<!ENTITY ac-ncurses SYSTEM "intel/appendixc/ncurses.sgml">
+<!ENTITY ac-less SYSTEM "intel/appendixc/less.sgml">
+<!ENTITY ac-groff SYSTEM "intel/appendixc/groff.sgml">
+<!ENTITY ac-man SYSTEM "intel/appendixc/man.sgml">
+<!ENTITY ac-perl SYSTEM "intel/appendixc/perl.sgml">
+<!ENTITY ac-m4 SYSTEM "intel/appendixc/m4.sgml">
+<!ENTITY ac-texinfo SYSTEM "intel/appendixc/texinfo.sgml">
+<!ENTITY ac-autoconf SYSTEM "intel/appendixc/autoconf.sgml">
+<!ENTITY ac-automake SYSTEM "intel/appendixc/automake.sgml">
+<!ENTITY ac-flex SYSTEM "intel/appendixc/flex.sgml">
+<!ENTITY ac-file SYSTEM "intel/appendixc/file.sgml">
+<!ENTITY ac-e2fsprogs SYSTEM "intel/appendixc/e2fsprogs.sgml">
+<!ENTITY ac-gettext SYSTEM "intel/appendixc/gettext.sgml">
+<!ENTITY ac-ldso SYSTEM "intel/appendixc/ldso.sgml">
+<!ENTITY ac-libtool SYSTEM "intel/appendixc/libtool.sgml">
+<!ENTITY ac-bin86 SYSTEM "intel/appendixc/bin86.sgml">
+<!ENTITY ac-lilo SYSTEM "intel/appendixc/lilo.sgml">
+<!ENTITY ac-shadowpwd SYSTEM "intel/appendixc/shadowpwd.sgml">
+<!ENTITY ac-modutils SYSTEM "intel/appendixc/modutils.sgml">
+<!ENTITY ac-procinfo SYSTEM "intel/appendixc/procinfo.sgml">
+<!ENTITY ac-procps SYSTEM "intel/appendixc/procps.sgml">
+<!ENTITY ac-vim SYSTEM "intel/appendixc/vim.sgml">
+<!ENTITY ac-psmisc SYSTEM "intel/appendixc/psmisc.sgml">
+<!ENTITY ac-sysklogd SYSTEM "intel/appendixc/sysklogd.sgml">
+<!ENTITY ac-sysklogd-patch SYSTEM "intel/appendixc/sysklogd-patch.sgml">
+<!ENTITY ac-sysvinit SYSTEM "intel/appendixc/sysvinit.sgml">
+<!ENTITY ac-sysvinit-patch SYSTEM "intel/appendixc/sysvinit-patch.sgml">
+<!ENTITY ac-utillinux SYSTEM "intel/appendixc/utillinux.sgml">
+<!ENTITY ac-consoletools SYSTEM "intel/appendixc/consoletools.sgml">
+<!ENTITY ac-consoletools-patch SYSTEM "intel/appendixc/consoletools-patch.sgml">
+<!ENTITY ac-consoledata SYSTEM "intel/appendixc/consoledata.sgml">
+<!ENTITY ac-manpages SYSTEM "intel/appendixc/manpages.sgml">
+<!ENTITY ac-netkitbase SYSTEM "intel/appendixc/netkitbase.sgml">
+<!ENTITY ac-nettools SYSTEM "intel/appendixc/nettools.sgml">
+
+]>
+
+<book>
+
+&book;
+
+</book>
diff --git a/lfs.dsl b/lfs.dsl
new file mode 100644
index 000000000..fb8006aca
--- /dev/null
+++ b/lfs.dsl
@@ -0,0 +1,39 @@
+<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [
+<!ENTITY docbook.dsl SYSTEM "docbook.dsl" CDATA dsssl>
+]>
+
+<style-sheet>
+
+<style-specification use="docbook">
+<style-specification-body>
+
+(define %generate-legalnotice-link%
+#t)
+
+(define ($legalnotice-link-file$ legalnotice)
+(string-append "legalnotice"%html-ext%))
+
+(define %html-ext%
+".html")
+
+(define %root-filename%
+"index")
+
+(define %use-id-as-filename%
+#t)
+
+(define %body-attr%
+ (list
+ (list "BGCOLOR" "#FFFFFF")
+ (list "TEXT" "#000000")
+ (list "LINK" "#0000FF")
+ (list "VLINK" "#840084")
+ (list "ALINK" "#006000")))
+
+</style-specification-body>
+</style-specification>
+
+<external-specification id="docbook" document="docbook.dsl">
+
+</style-sheet>
+
diff --git a/preface/organization.sgml b/preface/organization.sgml
new file mode 100644
index 000000000..f04ac14fb
--- /dev/null
+++ b/preface/organization.sgml
@@ -0,0 +1,14 @@
+<sect1 id="pre-organization">
+<title>Organization</title>
+
+<para>
+This book is divided into the following parts. Although there is a lot
+of duplicate information in certain parts, it's the easiest way to read it
+and not to mention the easiest way for me to maintain the book.
+</para>
+
+&pf-oz-organpart1;
+&pf-oz-organpart2;
+&pf-oz-organpart3;
+
+</sect1>
diff --git a/preface/organpart1.sgml b/preface/organpart1.sgml
new file mode 100644
index 000000000..a4a09921d
--- /dev/null
+++ b/preface/organpart1.sgml
@@ -0,0 +1,13 @@
+<sect2 id="pre-organ1">
+<title>Part I - Introduction</title>
+
+<para>
+Part One gives you general information about this book (versions, where
+to get it, changelog, mailinglists and how to get in touch with me).
+It also explains a few important aspects you really want and need to
+read
+before you start building an LFS system.
+</para>
+
+</sect2>
+
diff --git a/preface/organpart2.sgml b/preface/organpart2.sgml
new file mode 100644
index 000000000..2ed37a45d
--- /dev/null
+++ b/preface/organpart2.sgml
@@ -0,0 +1,12 @@
+<sect2 id="pre-organ2">
+<title>Part II - Installation of the LFS system</title>
+
+<para>
+Part Two guides you through the installation of the LFS system which will
+be the foundation for the rest of the system. Whatever you
+choose to do with your brand new LFS system, it will be built on the
+foundation that's installed in this part.
+</para>
+
+</sect2>
+
diff --git a/preface/organpart3.sgml b/preface/organpart3.sgml
new file mode 100644
index 000000000..fcc7cc7e6
--- /dev/null
+++ b/preface/organpart3.sgml
@@ -0,0 +1,9 @@
+<sect2 id="pre-organ3">
+<title>Part III - Appendixes</title>
+
+<para>
+Part Three contains various Appendixes.
+</para>
+
+</sect2>
+
diff --git a/preface/preface.sgml b/preface/preface.sgml
new file mode 100644
index 000000000..37db6bafa
--- /dev/null
+++ b/preface/preface.sgml
@@ -0,0 +1,8 @@
+<preface id="preface">
+<title>Preface</title>
+
+&pf-whoread;
+&pf-whonotread;
+&pf-organization;
+
+</preface>
diff --git a/preface/whonotread.sgml b/preface/whonotread.sgml
new file mode 100644
index 000000000..b54344783
--- /dev/null
+++ b/preface/whonotread.sgml
@@ -0,0 +1,32 @@
+<sect1 id="pre-whonotread">
+<title>Who would not want to read this book</title>
+
+<para>
+Users who don't want to build an entire Linux system from scratch
+probably don't want to read this book. If you, however, do want to learn
+more about what happens behind the scenes, in particular what happens
+between turning on your computer and seeing the command prompt, you want
+to read the <quote>From Power Up To Bash Prompt</quote> (P2B) HOWTO.
+This HOWTO builds a bare system, in a similar way as this book does, but it
+focusses more on just installing a bootable system instead of a complete
+system.
+</para>
+
+<para>
+To decide whether you want to read this book or the P2B HOWTO, you could
+ask yourself this question: Is my main objective to get a working Linux
+system that I'm going to build myself and along the way learn and
+learn what every component of a system is for, or is just the learning
+part your main objective. If you want to build and learn, read this
+book. If you just want to learn, then the P2B HOWTO is probably better
+material to read.
+</para>
+
+<para>
+The <quote>From Power Up To Bash Prompt</quote> HOWTO can be downloaded
+from <ulink url="http://www.netspace.net.au/~gok/power2bash/">
+http://www.netspace.net.au/~gok/power2bash/</ulink>
+</para>
+
+</sect1>
+
diff --git a/preface/whoread.sgml b/preface/whoread.sgml
new file mode 100644
index 000000000..36394ebdf
--- /dev/null
+++ b/preface/whoread.sgml
@@ -0,0 +1,35 @@
+<sect1 id="pre-whoread">
+<title>Who would want to read this book</title>
+
+<para>
+This book is intended for Linux users who want to learn more about the
+inner workings of Linux and how the various pieces of the Operating
+System fit together. This book will guide you step-by-step in creating
+your own custom build Linux system from scratch, using the source code of
+the software that we need.
+</para>
+
+<para>
+This book is also intended for Linux users who want to get away from the
+existing commercial and free distributions that are often too bloated.
+Using existing distributions also forces you to use the file system
+structure, boot script structure, etc. that they choose to use. With
+this book you can create your own structures and methods in exactly the
+way you like them (which can be based on the ones this book provides)
+</para>
+
+<para>
+Also, if you have security concerns, you don't want to rely on
+pre-compiled packages. So instead, you want to compile all programs
+from scratch and install them yourself. That could be another reason why
+you would want to build a custom made Linux system.
+</para>
+
+<para>
+Those are just a few out of many reasons why people want to build their
+own Linux system. If you're one of those people, this book is meant for
+you.
+</para>
+
+</sect1>
+