From 9c0eb8f8f78200e16eb48057f79bb884eeb5f9af Mon Sep 17 00:00:00 2001 From: gferg <> Date: Tue, 25 May 2004 13:56:52 +0000 Subject: [PATCH] *** empty log message *** --- .../LFS/appendixa/autoconf-shortdesc.xml | 11 + .../LFS/appendixa/automake-shortdesc.xml | 12 + .../docbook/LFS/appendixa/bash-shortdesc.xml | 15 ++ .../LFS/appendixa/binutils-shortdesc.xml | 17 ++ .../docbook/LFS/appendixa/bison-shortdesc.xml | 13 + .../LFS/appendixa/bootscripts-shortdesc.xml | 15 ++ .../docbook/LFS/appendixa/bzip2-shortdesc.xml | 17 ++ .../docbook/LFS/appendixa/coreutils-dep.xml | 12 + .../docbook/LFS/appendixa/coreutils-desc.xml | 242 ++++++++++++++++++ .../docbook/LFS/appendixa/coreutils-down.xml | 12 + .../LFS/appendixa/coreutils-shortdesc.xml | 18 ++ LDP/guide/docbook/LFS/appendixa/coreutils.xml | 13 + .../docbook/LFS/appendixa/dejagnu-dep.xml | 12 + .../docbook/LFS/appendixa/dejagnu-desc.xml | 8 + .../docbook/LFS/appendixa/dejagnu-down.xml | 6 + .../LFS/appendixa/dejagnu-shortdesc.xml | 10 + LDP/guide/docbook/LFS/appendixa/dejagnu.xml | 13 + .../LFS/appendixa/diffutils-shortdesc.xml | 12 + .../LFS/appendixa/e2fsprogs-shortdesc.xml | 19 ++ .../docbook/LFS/appendixa/ed-shortdesc.xml | 10 + .../docbook/LFS/appendixa/expect-dep.xml | 12 + .../docbook/LFS/appendixa/expect-desc.xml | 8 + .../docbook/LFS/appendixa/expect-down.xml | 9 + .../LFS/appendixa/expect-shortdesc.xml | 13 + LDP/guide/docbook/LFS/appendixa/expect.xml | 13 + .../docbook/LFS/appendixa/file-shortdesc.xml | 12 + .../LFS/appendixa/findutils-shortdesc.xml | 14 + .../docbook/LFS/appendixa/flex-shortdesc.xml | 14 + .../docbook/LFS/appendixa/gawk-shortdesc.xml | 11 + .../docbook/LFS/appendixa/gcc-shortdesc.xml | 15 ++ .../LFS/appendixa/gettext-shortdesc.xml | 19 ++ .../docbook/LFS/appendixa/glibc-shortdesc.xml | 23 ++ .../docbook/LFS/appendixa/grep-shortdesc.xml | 12 + .../docbook/LFS/appendixa/groff-shortdesc.xml | 17 ++ LDP/guide/docbook/LFS/appendixa/grub-dep.xml | 12 + LDP/guide/docbook/LFS/appendixa/grub-desc.xml | 18 ++ LDP/guide/docbook/LFS/appendixa/grub-down.xml | 9 + .../docbook/LFS/appendixa/grub-shortdesc.xml | 10 + LDP/guide/docbook/LFS/appendixa/grub.xml | 13 + .../docbook/LFS/appendixa/gzip-shortdesc.xml | 12 + .../docbook/LFS/appendixa/inetutils-dep.xml | 12 + .../docbook/LFS/appendixa/inetutils-desc.xml | 23 ++ .../docbook/LFS/appendixa/inetutils-down.xml | 9 + .../LFS/appendixa/inetutils-shortdesc.xml | 10 + LDP/guide/docbook/LFS/appendixa/inetutils.xml | 12 + .../docbook/LFS/appendixa/kbd-shortdesc.xml | 15 ++ .../LFS/appendixa/kernel-shortdesc.xml | 16 ++ .../docbook/LFS/appendixa/less-shortdesc.xml | 13 + .../docbook/LFS/appendixa/lfs-utils-dep.xml | 8 + .../docbook/LFS/appendixa/lfs-utils-desc.xml | 20 ++ .../docbook/LFS/appendixa/lfs-utils-down.xml | 9 + .../LFS/appendixa/lfs-utils-shortdesc.xml | 14 + LDP/guide/docbook/LFS/appendixa/lfs-utils.xml | 13 + .../LFS/appendixa/libtool-shortdesc.xml | 14 + .../docbook/LFS/appendixa/m4-shortdesc.xml | 15 ++ .../docbook/LFS/appendixa/make-shortdesc.xml | 11 + .../LFS/appendixa/makedev-shortdesc.xml | 13 + .../docbook/LFS/appendixa/man-shortdesc.xml | 11 + .../LFS/appendixa/manpages-shortdesc.xml | 13 + .../LFS/appendixa/modutils-shortdesc.xml | 14 + .../LFS/appendixa/ncurses-shortdesc.xml | 16 ++ .../LFS/appendixa/nettools-shortdesc.xml | 14 + .../docbook/LFS/appendixa/patch-shortdesc.xml | 12 + .../docbook/LFS/appendixa/perl-shortdesc.xml | 17 ++ .../LFS/appendixa/procinfo-shortdesc.xml | 13 + .../LFS/appendixa/procps-shortdesc.xml | 15 ++ .../LFS/appendixa/psmisc-shortdesc.xml | 11 + .../docbook/LFS/appendixa/sed-shortdesc.xml | 12 + .../LFS/appendixa/shadowpwd-shortdesc.xml | 14 + .../LFS/appendixa/sysklogd-shortdesc.xml | 11 + .../LFS/appendixa/sysvinit-shortdesc.xml | 14 + .../docbook/LFS/appendixa/tar-shortdesc.xml | 10 + LDP/guide/docbook/LFS/appendixa/tcl-dep.xml | 12 + LDP/guide/docbook/LFS/appendixa/tcl-desc.xml | 9 + LDP/guide/docbook/LFS/appendixa/tcl-down.xml | 7 + .../docbook/LFS/appendixa/tcl-shortdesc.xml | 13 + LDP/guide/docbook/LFS/appendixa/tcl.xml | 13 + .../LFS/appendixa/texinfo-shortdesc.xml | 12 + .../LFS/appendixa/utillinux-shortdesc.xml | 20 ++ .../docbook/LFS/appendixa/vim-shortdesc.xml | 14 + .../docbook/LFS/appendixa/zlib-shortdesc.xml | 11 + LDP/guide/docbook/LFS/book.xml | 36 +++ LDP/guide/docbook/LFS/bookinfo.xml | 60 +++++ .../LFS/chapter02/aboutdependencies.xml | 57 +++++ .../docbook/LFS/chapter02/abouttestsuites.xml | 32 +++ .../docbook/LFS/chapter03/creatingfs.xml | 29 +++ .../docbook/LFS/chapter03/creatingpart.xml | 40 +++ LDP/guide/docbook/LFS/chapter03/mounting.xml | 46 ++++ .../docbook/LFS/chapter05/adding-user.xml | 36 +++ .../docbook/LFS/chapter05/binutils-pass1.xml | 118 +++++++++ .../docbook/LFS/chapter05/binutils-pass2.xml | 78 ++++++ LDP/guide/docbook/LFS/chapter05/coreutils.xml | 46 ++++ .../LFS/chapter05/creatingstage1dir.xml | 38 +++ LDP/guide/docbook/LFS/chapter05/dejagnu.xml | 27 ++ LDP/guide/docbook/LFS/chapter05/expect.xml | 69 +++++ LDP/guide/docbook/LFS/chapter05/gcc-pass1.xml | 101 ++++++++ LDP/guide/docbook/LFS/chapter05/gcc-pass2.xml | 174 +++++++++++++ LDP/guide/docbook/LFS/chapter05/gettext.xml | 41 +++ LDP/guide/docbook/LFS/chapter05/glibc.xml | 181 +++++++++++++ .../docbook/LFS/chapter05/kernelheaders.xml | 58 +++++ .../docbook/LFS/chapter05/lockingglibc.xml | 97 +++++++ LDP/guide/docbook/LFS/chapter05/ncurses.xml | 55 ++++ LDP/guide/docbook/LFS/chapter05/perl.xml | 41 +++ .../LFS/chapter05/setting-environment.xml | 58 +++++ LDP/guide/docbook/LFS/chapter05/tcl.xml | 69 +++++ .../LFS/chapter05/toolchaintechnotes.xml | 200 +++++++++++++++ .../LFS/chapter06/adjustingtoolchain.xml | 96 +++++++ LDP/guide/docbook/LFS/chapter06/coreutils.xml | 90 +++++++ LDP/guide/docbook/LFS/chapter06/gcc-2953.xml | 61 +++++ LDP/guide/docbook/LFS/chapter06/grub.xml | 53 ++++ LDP/guide/docbook/LFS/chapter06/inetutils.xml | 63 +++++ LDP/guide/docbook/LFS/chapter06/lfs-utils.xml | 36 +++ .../docbook/LFS/chapter06/revisedchroot.xml | 19 ++ LDP/guide/docbook/LFS/chapter08/grub.xml | 118 +++++++++ .../docbook/LFS/chapter08/kernel-inst.xml | 91 +++++++ LDP/guide/docbook/LFS/chapter09/whatnow.xml | 40 +++ LDP/guide/docbook/LFS/entities/autoconf.ent | 17 ++ LDP/guide/docbook/LFS/entities/automake.ent | 17 ++ LDP/guide/docbook/LFS/entities/bash.ent | 25 ++ LDP/guide/docbook/LFS/entities/binutils.ent | 26 ++ LDP/guide/docbook/LFS/entities/bison.ent | 20 ++ .../docbook/LFS/entities/book-structure.xml | 75 ++++++ .../docbook/LFS/entities/bootscripts.ent | 17 ++ LDP/guide/docbook/LFS/entities/bzip2.ent | 22 ++ LDP/guide/docbook/LFS/entities/coreutils.ent | 27 ++ LDP/guide/docbook/LFS/entities/dejagnu.ent | 17 ++ LDP/guide/docbook/LFS/entities/diffutils.ent | 22 ++ LDP/guide/docbook/LFS/entities/e2fsprogs.ent | 17 ++ LDP/guide/docbook/LFS/entities/ed.ent | 20 ++ LDP/guide/docbook/LFS/entities/expect.ent | 20 ++ LDP/guide/docbook/LFS/entities/file.ent | 17 ++ LDP/guide/docbook/LFS/entities/findutils.ent | 22 ++ LDP/guide/docbook/LFS/entities/flex.ent | 17 ++ LDP/guide/docbook/LFS/entities/gawk.ent | 25 ++ LDP/guide/docbook/LFS/entities/gcc-2953.ent | 24 ++ LDP/guide/docbook/LFS/entities/gcc.ent | 37 +++ LDP/guide/docbook/LFS/entities/gettext.ent | 22 ++ LDP/guide/docbook/LFS/entities/glibc.ent | 29 +++ LDP/guide/docbook/LFS/entities/grep.ent | 22 ++ LDP/guide/docbook/LFS/entities/groff.ent | 17 ++ LDP/guide/docbook/LFS/entities/grub.ent | 20 ++ LDP/guide/docbook/LFS/entities/gzip.ent | 22 ++ LDP/guide/docbook/LFS/entities/inetutils.ent | 17 ++ LDP/guide/docbook/LFS/entities/kbd.ent | 20 ++ LDP/guide/docbook/LFS/entities/kernel.ent | 29 +++ LDP/guide/docbook/LFS/entities/less.ent | 17 ++ LDP/guide/docbook/LFS/entities/lfs-utils.ent | 17 ++ LDP/guide/docbook/LFS/entities/libtool.ent | 20 ++ LDP/guide/docbook/LFS/entities/m4.ent | 17 ++ LDP/guide/docbook/LFS/entities/make.ent | 22 ++ LDP/guide/docbook/LFS/entities/makedev.ent | 16 ++ LDP/guide/docbook/LFS/entities/man.ent | 25 ++ LDP/guide/docbook/LFS/entities/manpages.ent | 17 ++ LDP/guide/docbook/LFS/entities/modutils.ent | 17 ++ LDP/guide/docbook/LFS/entities/ncurses.ent | 27 ++ LDP/guide/docbook/LFS/entities/nettools.ent | 20 ++ LDP/guide/docbook/LFS/entities/patch.ent | 22 ++ LDP/guide/docbook/LFS/entities/perl.ent | 25 ++ LDP/guide/docbook/LFS/entities/procinfo.ent | 17 ++ LDP/guide/docbook/LFS/entities/procps.ent | 20 ++ LDP/guide/docbook/LFS/entities/psmisc.ent | 17 ++ LDP/guide/docbook/LFS/entities/sed.ent | 22 ++ LDP/guide/docbook/LFS/entities/shadow.ent | 21 ++ LDP/guide/docbook/LFS/entities/sysklogd.ent | 20 ++ LDP/guide/docbook/LFS/entities/sysvinit.ent | 18 ++ LDP/guide/docbook/LFS/entities/tar.ent | 22 ++ LDP/guide/docbook/LFS/entities/tcl.ent | 17 ++ LDP/guide/docbook/LFS/entities/texinfo.ent | 22 ++ LDP/guide/docbook/LFS/entities/utillinux.ent | 22 ++ LDP/guide/docbook/LFS/entities/vim.ent | 18 ++ LDP/guide/docbook/LFS/entities/zlib.ent | 20 ++ LDP/guide/docbook/LFS/preface/audience.xml | 91 +++++++ .../docbook/LFS/preface/prerequisites.xml | 33 +++ 173 files changed, 5066 insertions(+) create mode 100644 LDP/guide/docbook/LFS/appendixa/autoconf-shortdesc.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/automake-shortdesc.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/bash-shortdesc.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/binutils-shortdesc.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/bison-shortdesc.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/bootscripts-shortdesc.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/bzip2-shortdesc.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/coreutils-dep.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/coreutils-desc.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/coreutils-down.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/coreutils-shortdesc.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/coreutils.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/dejagnu-dep.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/dejagnu-desc.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/dejagnu-down.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/dejagnu-shortdesc.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/dejagnu.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/diffutils-shortdesc.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/e2fsprogs-shortdesc.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/ed-shortdesc.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/expect-dep.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/expect-desc.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/expect-down.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/expect-shortdesc.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/expect.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/file-shortdesc.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/findutils-shortdesc.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/flex-shortdesc.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/gawk-shortdesc.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/gcc-shortdesc.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/gettext-shortdesc.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/glibc-shortdesc.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/grep-shortdesc.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/groff-shortdesc.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/grub-dep.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/grub-desc.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/grub-down.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/grub-shortdesc.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/grub.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/gzip-shortdesc.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/inetutils-dep.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/inetutils-desc.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/inetutils-down.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/inetutils-shortdesc.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/inetutils.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/kbd-shortdesc.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/kernel-shortdesc.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/less-shortdesc.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/lfs-utils-dep.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/lfs-utils-desc.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/lfs-utils-down.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/lfs-utils-shortdesc.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/lfs-utils.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/libtool-shortdesc.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/m4-shortdesc.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/make-shortdesc.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/makedev-shortdesc.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/man-shortdesc.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/manpages-shortdesc.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/modutils-shortdesc.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/ncurses-shortdesc.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/nettools-shortdesc.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/patch-shortdesc.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/perl-shortdesc.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/procinfo-shortdesc.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/procps-shortdesc.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/psmisc-shortdesc.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/sed-shortdesc.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/shadowpwd-shortdesc.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/sysklogd-shortdesc.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/sysvinit-shortdesc.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/tar-shortdesc.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/tcl-dep.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/tcl-desc.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/tcl-down.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/tcl-shortdesc.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/tcl.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/texinfo-shortdesc.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/utillinux-shortdesc.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/vim-shortdesc.xml create mode 100644 LDP/guide/docbook/LFS/appendixa/zlib-shortdesc.xml create mode 100644 LDP/guide/docbook/LFS/book.xml create mode 100644 LDP/guide/docbook/LFS/bookinfo.xml create mode 100644 LDP/guide/docbook/LFS/chapter02/aboutdependencies.xml create mode 100644 LDP/guide/docbook/LFS/chapter02/abouttestsuites.xml create mode 100644 LDP/guide/docbook/LFS/chapter03/creatingfs.xml create mode 100644 LDP/guide/docbook/LFS/chapter03/creatingpart.xml create mode 100644 LDP/guide/docbook/LFS/chapter03/mounting.xml create mode 100644 LDP/guide/docbook/LFS/chapter05/adding-user.xml create mode 100644 LDP/guide/docbook/LFS/chapter05/binutils-pass1.xml create mode 100644 LDP/guide/docbook/LFS/chapter05/binutils-pass2.xml create mode 100644 LDP/guide/docbook/LFS/chapter05/coreutils.xml create mode 100644 LDP/guide/docbook/LFS/chapter05/creatingstage1dir.xml create mode 100644 LDP/guide/docbook/LFS/chapter05/dejagnu.xml create mode 100644 LDP/guide/docbook/LFS/chapter05/expect.xml create mode 100644 LDP/guide/docbook/LFS/chapter05/gcc-pass1.xml create mode 100644 LDP/guide/docbook/LFS/chapter05/gcc-pass2.xml create mode 100644 LDP/guide/docbook/LFS/chapter05/gettext.xml create mode 100644 LDP/guide/docbook/LFS/chapter05/glibc.xml create mode 100644 LDP/guide/docbook/LFS/chapter05/kernelheaders.xml create mode 100644 LDP/guide/docbook/LFS/chapter05/lockingglibc.xml create mode 100644 LDP/guide/docbook/LFS/chapter05/ncurses.xml create mode 100644 LDP/guide/docbook/LFS/chapter05/perl.xml create mode 100644 LDP/guide/docbook/LFS/chapter05/setting-environment.xml create mode 100644 LDP/guide/docbook/LFS/chapter05/tcl.xml create mode 100644 LDP/guide/docbook/LFS/chapter05/toolchaintechnotes.xml create mode 100644 LDP/guide/docbook/LFS/chapter06/adjustingtoolchain.xml create mode 100644 LDP/guide/docbook/LFS/chapter06/coreutils.xml create mode 100644 LDP/guide/docbook/LFS/chapter06/gcc-2953.xml create mode 100644 LDP/guide/docbook/LFS/chapter06/grub.xml create mode 100644 LDP/guide/docbook/LFS/chapter06/inetutils.xml create mode 100644 LDP/guide/docbook/LFS/chapter06/lfs-utils.xml create mode 100644 LDP/guide/docbook/LFS/chapter06/revisedchroot.xml create mode 100644 LDP/guide/docbook/LFS/chapter08/grub.xml create mode 100644 LDP/guide/docbook/LFS/chapter08/kernel-inst.xml create mode 100644 LDP/guide/docbook/LFS/chapter09/whatnow.xml create mode 100644 LDP/guide/docbook/LFS/entities/autoconf.ent create mode 100644 LDP/guide/docbook/LFS/entities/automake.ent create mode 100644 LDP/guide/docbook/LFS/entities/bash.ent create mode 100644 LDP/guide/docbook/LFS/entities/binutils.ent create mode 100644 LDP/guide/docbook/LFS/entities/bison.ent create mode 100644 LDP/guide/docbook/LFS/entities/book-structure.xml create mode 100644 LDP/guide/docbook/LFS/entities/bootscripts.ent create mode 100644 LDP/guide/docbook/LFS/entities/bzip2.ent create mode 100644 LDP/guide/docbook/LFS/entities/coreutils.ent create mode 100644 LDP/guide/docbook/LFS/entities/dejagnu.ent create mode 100644 LDP/guide/docbook/LFS/entities/diffutils.ent create mode 100644 LDP/guide/docbook/LFS/entities/e2fsprogs.ent create mode 100644 LDP/guide/docbook/LFS/entities/ed.ent create mode 100644 LDP/guide/docbook/LFS/entities/expect.ent create mode 100644 LDP/guide/docbook/LFS/entities/file.ent create mode 100644 LDP/guide/docbook/LFS/entities/findutils.ent create mode 100644 LDP/guide/docbook/LFS/entities/flex.ent create mode 100644 LDP/guide/docbook/LFS/entities/gawk.ent create mode 100644 LDP/guide/docbook/LFS/entities/gcc-2953.ent create mode 100644 LDP/guide/docbook/LFS/entities/gcc.ent create mode 100644 LDP/guide/docbook/LFS/entities/gettext.ent create mode 100644 LDP/guide/docbook/LFS/entities/glibc.ent create mode 100644 LDP/guide/docbook/LFS/entities/grep.ent create mode 100644 LDP/guide/docbook/LFS/entities/groff.ent create mode 100644 LDP/guide/docbook/LFS/entities/grub.ent create mode 100644 LDP/guide/docbook/LFS/entities/gzip.ent create mode 100644 LDP/guide/docbook/LFS/entities/inetutils.ent create mode 100644 LDP/guide/docbook/LFS/entities/kbd.ent create mode 100644 LDP/guide/docbook/LFS/entities/kernel.ent create mode 100644 LDP/guide/docbook/LFS/entities/less.ent create mode 100644 LDP/guide/docbook/LFS/entities/lfs-utils.ent create mode 100644 LDP/guide/docbook/LFS/entities/libtool.ent create mode 100644 LDP/guide/docbook/LFS/entities/m4.ent create mode 100644 LDP/guide/docbook/LFS/entities/make.ent create mode 100644 LDP/guide/docbook/LFS/entities/makedev.ent create mode 100644 LDP/guide/docbook/LFS/entities/man.ent create mode 100644 LDP/guide/docbook/LFS/entities/manpages.ent create mode 100644 LDP/guide/docbook/LFS/entities/modutils.ent create mode 100644 LDP/guide/docbook/LFS/entities/ncurses.ent create mode 100644 LDP/guide/docbook/LFS/entities/nettools.ent create mode 100644 LDP/guide/docbook/LFS/entities/patch.ent create mode 100644 LDP/guide/docbook/LFS/entities/perl.ent create mode 100644 LDP/guide/docbook/LFS/entities/procinfo.ent create mode 100644 LDP/guide/docbook/LFS/entities/procps.ent create mode 100644 LDP/guide/docbook/LFS/entities/psmisc.ent create mode 100644 LDP/guide/docbook/LFS/entities/sed.ent create mode 100644 LDP/guide/docbook/LFS/entities/shadow.ent create mode 100644 LDP/guide/docbook/LFS/entities/sysklogd.ent create mode 100644 LDP/guide/docbook/LFS/entities/sysvinit.ent create mode 100644 LDP/guide/docbook/LFS/entities/tar.ent create mode 100644 LDP/guide/docbook/LFS/entities/tcl.ent create mode 100644 LDP/guide/docbook/LFS/entities/texinfo.ent create mode 100644 LDP/guide/docbook/LFS/entities/utillinux.ent create mode 100644 LDP/guide/docbook/LFS/entities/vim.ent create mode 100644 LDP/guide/docbook/LFS/entities/zlib.ent create mode 100644 LDP/guide/docbook/LFS/preface/audience.xml create mode 100644 LDP/guide/docbook/LFS/preface/prerequisites.xml diff --git a/LDP/guide/docbook/LFS/appendixa/autoconf-shortdesc.xml b/LDP/guide/docbook/LFS/appendixa/autoconf-shortdesc.xml new file mode 100644 index 00000000..8826aeea --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/autoconf-shortdesc.xml @@ -0,0 +1,11 @@ +Contents of Autoconf + + + +Autoconf produces shell scripts which automatically configure source +code. + +Installed programs: autoconf, autoheader, autom4te, +autoreconf, autoscan, autoupdate and ifnames + + diff --git a/LDP/guide/docbook/LFS/appendixa/automake-shortdesc.xml b/LDP/guide/docbook/LFS/appendixa/automake-shortdesc.xml new file mode 100644 index 00000000..b81651a0 --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/automake-shortdesc.xml @@ -0,0 +1,12 @@ +Contents of Automake + + + +Automake generates Makefile.in files, intended for use with Autoconf. + +Installed programs: acinstall, aclocal, +aclocal-1.7, automake, automake-1.7, compile, config.guess, config.sub, +depcomp, elisp-comp, install-sh, mdate-sh, missing, mkinstalldirs, py-compile, +ylwrap + + diff --git a/LDP/guide/docbook/LFS/appendixa/bash-shortdesc.xml b/LDP/guide/docbook/LFS/appendixa/bash-shortdesc.xml new file mode 100644 index 00000000..ec8aac8e --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/bash-shortdesc.xml @@ -0,0 +1,15 @@ +Contents of Bash + + + +bash is the Bourne-Again SHell, which is a widely used command +interpreter on Unix systems. The bash program reads from standard +input (the keyboard). A user types something and the program will evaluate +what he has typed and do something with it, like running a +program. + +Installed programs: bash, sh (link to bash) and +bashbug + + + diff --git a/LDP/guide/docbook/LFS/appendixa/binutils-shortdesc.xml b/LDP/guide/docbook/LFS/appendixa/binutils-shortdesc.xml new file mode 100644 index 00000000..23635f98 --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/binutils-shortdesc.xml @@ -0,0 +1,17 @@ +Contents of Binutils + + + +Binutils is a collection of software development tools containing a +linker, assembler and other tools to work with object files and +archives. + +Installed programs: addr2line, ar, as, c++filt, +gprof, ld, nm, objcopy, objdump, ranlib, readelf, size, strings and +strip + +Installed libraries: libiberty.a, libbfd.[a,so] and +libopcodes.[a,so] + + + diff --git a/LDP/guide/docbook/LFS/appendixa/bison-shortdesc.xml b/LDP/guide/docbook/LFS/appendixa/bison-shortdesc.xml new file mode 100644 index 00000000..6bd85e32 --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/bison-shortdesc.xml @@ -0,0 +1,13 @@ +Contents of Bison + + + +Bison is a parser generator, a replacement for yacc. Bison +generates a program that analyzes the structure of a text file. + +Installed programs: bison and yacc + +Installed library: liby.a + + + diff --git a/LDP/guide/docbook/LFS/appendixa/bootscripts-shortdesc.xml b/LDP/guide/docbook/LFS/appendixa/bootscripts-shortdesc.xml new file mode 100644 index 00000000..aad9081d --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/bootscripts-shortdesc.xml @@ -0,0 +1,15 @@ +Contents of LFS-bootscripts + + + +The LFS-Bootscripts package contains SysV init style shell +scripts. These scripts do various tasks such as check filesystem +integrity during boot, load keymaps, set up networks and halt +processes at shutdown. + +Installed scripts: checkfs, cleanfs, functions, +halt, ifdown, ifup, loadkeys, localnet, mountfs, mountproc, network, rc, +reboot, sendsignals, setclock, swap, sysklogd and template + + + diff --git a/LDP/guide/docbook/LFS/appendixa/bzip2-shortdesc.xml b/LDP/guide/docbook/LFS/appendixa/bzip2-shortdesc.xml new file mode 100644 index 00000000..b0047715 --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/bzip2-shortdesc.xml @@ -0,0 +1,17 @@ +Contents of Bzip2 + + + +Bzip2 is a block-sorting file compressor which generally achieves a +better compression than the traditional gzip +does. + +Installed programs: bunzip2 (link to bzip2), bzcat +(link to bzip2), bzcmp, bzdiff, bzegrep, bzfgrep, bzgrep, bzip2, bzip2recover, +bzless and bzmore + +Installed libraries: libbz2.a, libbz2.so (link to +libbz2.so.1.0), libbz2.so.1.0 (link to libbz2.so.1.0.2) and +libbz2.so.1.0.2 + + diff --git a/LDP/guide/docbook/LFS/appendixa/coreutils-dep.xml b/LDP/guide/docbook/LFS/appendixa/coreutils-dep.xml new file mode 100644 index 00000000..6993b53f --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/coreutils-dep.xml @@ -0,0 +1,12 @@ +   + + +Coreutils Installation Dependencies + + + +Coreutils depends on: Bash, Binutils, Coreutils, Diffutils, GCC, +Gettext, Glibc, Grep, Make, Perl, Sed. + + + diff --git a/LDP/guide/docbook/LFS/appendixa/coreutils-desc.xml b/LDP/guide/docbook/LFS/appendixa/coreutils-desc.xml new file mode 100644 index 00000000..80e6602e --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/coreutils-desc.xml @@ -0,0 +1,242 @@ +   + +Short descriptions + +basename strips any path and a given suffix from +the given file name. + +cat concatenates files to standard output. + +chgrp changes the group ownership of each given +file to the given group. The group can be either given a a name or a numeric +ID. + +chmod changes the permissions of each given file +to the given mode. The mode can be either a symbolic representation of the +changes to make, or an octal number representing the new permissions. + +chown changes the user and/or group ownership of +each given file to the given user:group pair. + +chroot runs a given command with the specified +directory as the / directory. The given command can be an +interactive shell. On most systems only root can do +this. + +cksum prints the CRC checksum and the byte +counts of each specified file. + +comm compares two sorted files, outputting in +three columns the lines that are unique, and the lines that are common. + +cp copies files. + +csplit splits a given file into several new files, +separating them according to given patterns or line numbers, and outputting +the byte count of each new file. + +cut prints parts of lines, selecting the parts +according to given fields or positions. + +date displays the current time in the given +format, or sets the system date. + +dd copies a file using the given blocksize and +count, while optionally performing conversions on it. + +df reports the amount of disk space available +(and used) on all mounted filesystems, or only on the filesystems holding the +given files. + +dir is the same as ls. + +dircolors outputs commands to set the LS_COLOR +environment variable, to change the color scheme used by ls. + +dirname strips the non-directory suffix from +a given file name. + +du reports the amount of disk space used by the +current directory, or by each of the given directories including all their +subdirectories, or by each of the given files. + +echo displays the given strings. + +env runs a command in a modified environment. + +expand converts tabs to spaces. + +expr evaluates expressions. + +factor prints the prime factors of all specified +integer numbers. + +false does nothing, unsuccessfully. It always +exits with a status code indicating failure. + +fmt reformats the paragraphs in the given files. + +fold wraps the lines in the given files. + +groups reports a user's group memberships. + +head prints the first ten lines (or the given +number of lines) of each given file. + +hostid reports the numeric identifier +(in hexadecimal) of the host. + +hostname reports or sets the name of the +host. + +id reports the effective user ID, group ID, and +group memberships of the current user, or of a given user. + +install copies files while setting their +permission modes and, if possible, their owner and group. + +join joins from two files the lines that have +identical join fields. + +kill terminates the given process. + +link creates a hard link with the given name +to the given file. + +ln makes hard links or soft links between files. + +logname reports the current user's login name. + +ls lists the contents of each given directory. +By default it orders the files and subdirectories alphabetically. + +md5sum reports or checks MD5 checksums. + +mkdir creates directories with the given names. + +mkfifo creates FIFOs with the given names. + +mknod creates device nodes with the given names. +A device node is a character special file, or a block special file, or a FIFO. + +mv moves or renames files or directories. + +nice runs a program with modified scheduling priority. + +nl numbers the lines from the given files. + +nohup runs a command immune to hangups, with +output redirected to a log file. + +od dumps files in octal and other formats. + +paste merges the given files, joining +sequentially corresponding lines side by side, separated by TABs. + +pathchk checks whether file names are valid +or portable. + +pinky is a lightweight finger. It reports +some information about the given users. + +pr paginates and columnates files for printing. + +printenv prints the environment. + +printf prints the given arguments according to the +given format -- much like the C printf function. + +ptx produces from the contents of the given files +a permuted index, with each keyword in its context. + +pwd reports the name of the current directory. + +readlink reports the value of the given symbolic +link. + +rm removes files or directories. + +rmdir removes directories, if they are empty. + +seq prints a sequence of numbers, within a given +range and with a given increment. + +sha1sum prints or checks 160-bit SHA1 +checksums. + +shred overwrites the given files repeatedly with +strange patterns, to make it real hard to recover the data. + +sleep pauses for the given amount of time. + +sort sorts the lines from the given files. + +split splits the given file into pieces, by size +or by number of lines. + +stty sets or reports terminal line settings. + +su runs a shell with substitute user and group IDs. + +sum prints checksum and block counts for each +given file. + +sync flushes filesystem buffers. It forces +changed blocks to disk and updates the super block. + +tac concatenates the given files in reverse. + +tail prints the last ten lines (or the given +number of lines) of each given file. + +tee reads from standard input while writing both +to standard output and to the given files. + +test compares values and checks file types. + +touch changes file timestamps, setting the access +and modification times of the given files to the current time. Files that do +not exist are created with zero length. + +tr translates, squeezes, and deletes the given +characters from standard input. + +true does nothing, successfully. It always exits +with a status code indicating success. + +tsort performs a topological sort. It writes a +totally ordered list according to the partial ordering in a given file. + +tty reports the file name of the terminal +connected to standard input. + +uname reports system information. + +unexpand converts spaces to tabs. + +uniq discards all but one of successive +identical lines. + +unlink removes the given file. + +uptime reports how long the system has been +running, how many users are logged on, and the system load averages. + +users reports the names of the users currently +logged on. + +vdir is the same as ls -l. + +wc reports the number of lines, words, and bytes +for each given file, and a total line when more than one file is given. + +who reports who is logged on. + +whoami reports the user name associated with the +current effective user ID. + +yes outputs 'y' or a given string repeatedly, +until killed. + + + diff --git a/LDP/guide/docbook/LFS/appendixa/coreutils-down.xml b/LDP/guide/docbook/LFS/appendixa/coreutils-down.xml new file mode 100644 index 00000000..41ebbb9a --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/coreutils-down.xml @@ -0,0 +1,12 @@ + +Official Download Location + +Coreutils (&coreutils-version;): + + +Coreutils Hostname Patch: + + +Coreutils Uname Patch: + + diff --git a/LDP/guide/docbook/LFS/appendixa/coreutils-shortdesc.xml b/LDP/guide/docbook/LFS/appendixa/coreutils-shortdesc.xml new file mode 100644 index 00000000..0fba0d93 --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/coreutils-shortdesc.xml @@ -0,0 +1,18 @@ +Contents of Coreutils + +The Coreutils package contains a whole series of basic shell utilities. + + + +Installed programs: basename, cat, chgrp, chmod, +chown, chroot, cksum, comm, cp, csplit, cut, date, dd, df, dir, dircolors, +dirname, du, echo, env, expand, expr, factor, false, fmt, fold, groups, head, +hostid, hostname, id, install, join, kill, link, ln, logname, ls, md5sum, +mkdir, mkfifo, mknod, mv, nice, nl, nohup, od, paste, pathchk, pinky, pr, +printenv, printf, ptx, pwd, readlink, rm, rmdir, seq, sha1sum, shred, sleep, +sort, split, stat, stty, su, sum, sync, tac, tail, tee, test, touch, tr, true, +tsort, tty, uname, unexpand, uniq, unlink, uptime, users, vdir, wc, who, +whoami and yes + + + diff --git a/LDP/guide/docbook/LFS/appendixa/coreutils.xml b/LDP/guide/docbook/LFS/appendixa/coreutils.xml new file mode 100644 index 00000000..a104bbc5 --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/coreutils.xml @@ -0,0 +1,13 @@ + +Coreutils + + +For installation instructions see . + +&aa-coreutils-down; +&aa-coreutils-shortdesc; +&aa-coreutils-desc; +&aa-coreutils-dep; + + + diff --git a/LDP/guide/docbook/LFS/appendixa/dejagnu-dep.xml b/LDP/guide/docbook/LFS/appendixa/dejagnu-dep.xml new file mode 100644 index 00000000..0cd972d9 --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/dejagnu-dep.xml @@ -0,0 +1,12 @@ +   + + +DejaGnu Installation Dependencies + + + +Dejagnu depends on: Bash, Binutils, Coreutils, Diffutils, +GCC, Glibc, Grep, Make, Sed. + + + diff --git a/LDP/guide/docbook/LFS/appendixa/dejagnu-desc.xml b/LDP/guide/docbook/LFS/appendixa/dejagnu-desc.xml new file mode 100644 index 00000000..9cd020d8 --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/dejagnu-desc.xml @@ -0,0 +1,8 @@ +   + +Short description + +runtest is the wrapper script that finds the proper +expect shell and then runs DejaGnu. + + diff --git a/LDP/guide/docbook/LFS/appendixa/dejagnu-down.xml b/LDP/guide/docbook/LFS/appendixa/dejagnu-down.xml new file mode 100644 index 00000000..dac71702 --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/dejagnu-down.xml @@ -0,0 +1,6 @@ + +Official Download Location + +DejaGnu (&dejagnu-version;): + + diff --git a/LDP/guide/docbook/LFS/appendixa/dejagnu-shortdesc.xml b/LDP/guide/docbook/LFS/appendixa/dejagnu-shortdesc.xml new file mode 100644 index 00000000..b6ca52fa --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/dejagnu-shortdesc.xml @@ -0,0 +1,10 @@ +Contents of DejaGnu + + + +The DejaGnu package contains a framework for testing other programs. + +Installed program: runtest + + + diff --git a/LDP/guide/docbook/LFS/appendixa/dejagnu.xml b/LDP/guide/docbook/LFS/appendixa/dejagnu.xml new file mode 100644 index 00000000..59cadabc --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/dejagnu.xml @@ -0,0 +1,13 @@ + +DejaGnu + + +For installation instructions see . + +&aa-dejagnu-down; +&aa-dejagnu-shortdesc; +&aa-dejagnu-desc; +&aa-dejagnu-dep; + + + diff --git a/LDP/guide/docbook/LFS/appendixa/diffutils-shortdesc.xml b/LDP/guide/docbook/LFS/appendixa/diffutils-shortdesc.xml new file mode 100644 index 00000000..17d3de72 --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/diffutils-shortdesc.xml @@ -0,0 +1,12 @@ +Contents of Diffutils + + + +The programs from this package show you the differences between two +files or directories. It's most common use is to create software +patches. + +Installed programs: cmp, diff, diff3 and sdiff + + + diff --git a/LDP/guide/docbook/LFS/appendixa/e2fsprogs-shortdesc.xml b/LDP/guide/docbook/LFS/appendixa/e2fsprogs-shortdesc.xml new file mode 100644 index 00000000..219886ac --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/e2fsprogs-shortdesc.xml @@ -0,0 +1,19 @@ +Contents of E2fsprogs + + + +E2fsprogs provides the filesystem utilities for use with the + ext2 filesystem. It also supports the ext3 filesystem with journaling + support. + +Installed programs: badblocks, blkid, chattr, +compile_et, debugfs, dumpe2fs, e2fsck, e2image, e2label, findfs, fsck, +fsck.ext2, fsck.ext3, logsave, lsattr, mk_cmds, mke2fs, mkfs.ext2, mkfs.ext3, +mklost+found, resize2fs, tune2fs and uuidgen. + +Installed libraries: libblkid.[a,so], +libcom_err.[a,so], libe2p.[a,so], libext2fs.[a,so], libss.[a,so] and +libuuid.[a,so] + + + diff --git a/LDP/guide/docbook/LFS/appendixa/ed-shortdesc.xml b/LDP/guide/docbook/LFS/appendixa/ed-shortdesc.xml new file mode 100644 index 00000000..ab799205 --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/ed-shortdesc.xml @@ -0,0 +1,10 @@ +Contents of Ed + + + +GNU ed is an 8-bit clean, POSIX-compliant line editor. + +Installed programs: ed and red (link to ed) + + + diff --git a/LDP/guide/docbook/LFS/appendixa/expect-dep.xml b/LDP/guide/docbook/LFS/appendixa/expect-dep.xml new file mode 100644 index 00000000..f5037ff9 --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/expect-dep.xml @@ -0,0 +1,12 @@ +   + + +Expect Installation Dependencies + + + +Expect depends on: Bash, Binutils, Coreutils, Diffutils, +GCC, Glibc, Grep, Make, Sed, Tcl. + + + diff --git a/LDP/guide/docbook/LFS/appendixa/expect-desc.xml b/LDP/guide/docbook/LFS/appendixa/expect-desc.xml new file mode 100644 index 00000000..ea80526f --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/expect-desc.xml @@ -0,0 +1,8 @@ +   + +Short description + +expect "talks" to other interactive programs according +to a script. + + diff --git a/LDP/guide/docbook/LFS/appendixa/expect-down.xml b/LDP/guide/docbook/LFS/appendixa/expect-down.xml new file mode 100644 index 00000000..2ace7935 --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/expect-down.xml @@ -0,0 +1,9 @@ + +Official Download Location + +Expect (&expect-version;): + + +Expect Spawn Patch: + + diff --git a/LDP/guide/docbook/LFS/appendixa/expect-shortdesc.xml b/LDP/guide/docbook/LFS/appendixa/expect-shortdesc.xml new file mode 100644 index 00000000..faf6f6b0 --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/expect-shortdesc.xml @@ -0,0 +1,13 @@ +Contents of Expect + + + +The Expect package provides a program that performs programmed dialogue +with other interactive programs. + +Installed program: expect + +Installed library: libexpect5.39.a + + + diff --git a/LDP/guide/docbook/LFS/appendixa/expect.xml b/LDP/guide/docbook/LFS/appendixa/expect.xml new file mode 100644 index 00000000..661a5c1e --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/expect.xml @@ -0,0 +1,13 @@ + +Expect + + +For installation instructions see . + +&aa-expect-down; +&aa-expect-shortdesc; +&aa-expect-desc; +&aa-expect-dep; + + + diff --git a/LDP/guide/docbook/LFS/appendixa/file-shortdesc.xml b/LDP/guide/docbook/LFS/appendixa/file-shortdesc.xml new file mode 100644 index 00000000..7b8c70fa --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/file-shortdesc.xml @@ -0,0 +1,12 @@ +Contents of File + + + +File is a utility used to determine file types. + +Installed program: file + +Installed library: libmagic.[a,so] + + + diff --git a/LDP/guide/docbook/LFS/appendixa/findutils-shortdesc.xml b/LDP/guide/docbook/LFS/appendixa/findutils-shortdesc.xml new file mode 100644 index 00000000..594edfd7 --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/findutils-shortdesc.xml @@ -0,0 +1,14 @@ +Contents of Findutils + + + +The Findutils package contains programs to find files, either +on-the-fly (by doing a live recursive search through directories and only +showing files that match the specifications) or by searching through a +database. + +Installed programs: bigram, code, find, frcode, +locate, updatedb and xargs + + + diff --git a/LDP/guide/docbook/LFS/appendixa/flex-shortdesc.xml b/LDP/guide/docbook/LFS/appendixa/flex-shortdesc.xml new file mode 100644 index 00000000..df31f0ff --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/flex-shortdesc.xml @@ -0,0 +1,14 @@ +Contents of Flex + + + +The Flex package is used to generate programs which recognize +patterns in text. + +Installed programs: flex, flex++ (link to flex) +and lex + +Installed library: libfl.a + + + diff --git a/LDP/guide/docbook/LFS/appendixa/gawk-shortdesc.xml b/LDP/guide/docbook/LFS/appendixa/gawk-shortdesc.xml new file mode 100644 index 00000000..dacf494c --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/gawk-shortdesc.xml @@ -0,0 +1,11 @@ +Contents of Gawk + + + +Gawk is an awk implementation that is used to manipulate text +files. + +Installed programs: awk (link to gawk), gawk, +gawk-&gawk-version;, grcat, igawk, pgawk, pgawk-&gawk-version; and pwcat + + diff --git a/LDP/guide/docbook/LFS/appendixa/gcc-shortdesc.xml b/LDP/guide/docbook/LFS/appendixa/gcc-shortdesc.xml new file mode 100644 index 00000000..a2eb9293 --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/gcc-shortdesc.xml @@ -0,0 +1,15 @@ +Contents of GCC + + + +The GCC package contains the GNU compiler collection, including +the C and C++ compilers. + +Installed programs: c++, cc (link to gcc), +cc1, cc1plus, collect2, cpp, g++, gcc, gccbug, and gcov + +Installed libraries: libgcc.a, libgcc_eh.a, +libgcc_s.so, libstdc++.[a,so] and libsupc++.a + + + diff --git a/LDP/guide/docbook/LFS/appendixa/gettext-shortdesc.xml b/LDP/guide/docbook/LFS/appendixa/gettext-shortdesc.xml new file mode 100644 index 00000000..07dfd694 --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/gettext-shortdesc.xml @@ -0,0 +1,19 @@ +Contents of Gettext + + + +The Gettext package is used for internationalization and +localization. Programs can be compiled with Native Language Support +(NLS) which enable them to output messages in the user's native +language. + +Installed programs: autopoint, config.charset, +config.rpath, gettext, gettextize, hostname, msgattrib, msgcat, msgcmp, +msgcomm, msgconv, msgen, msgexec, msgfilter, msgfmt, msggrep, msginit, +msgmerge, msgunfmt, msguniq, ngettext, project-id, team-address, trigger, +urlget, user-email and xgettext + +Installed libraries: libasprintf[a,so], +libgettextlib[a,so], libgettextpo[a,so] and libgettextsrc[a,so] + + diff --git a/LDP/guide/docbook/LFS/appendixa/glibc-shortdesc.xml b/LDP/guide/docbook/LFS/appendixa/glibc-shortdesc.xml new file mode 100644 index 00000000..bee9a145 --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/glibc-shortdesc.xml @@ -0,0 +1,23 @@ +Contents of Glibc + + + +Glibc is the C library that provides the system calls and basic +functions such as open, malloc, printf, etc. The C library is used by all +dynamically linked programs. + +Installed programs: catchsegv, gencat, getconf, +getent, glibcbug, iconv, iconvconfig, ldconfig, ldd, lddlibc4, locale, +localedef, mtrace, nscd, nscd_nischeck, pcprofiledump, pt_chown, rpcgen, +rpcinfo, sln, sprof, tzselect, xtrace, zdump and zic + +Installed libraries: ld.so, libBrokenLocale.[a,so], +libSegFault.so, libanl.[a,so], libbsd-compat.a, libc.[a,so], libc_nonshared.a, +libcrypt.[a,so], libdl.[a,so], libg.a, libieee.a, libm.[a,so], libmcheck.a, +libmemusage.so, libnsl.a, libnss_compat.so, libnss_dns.so, libnss_files.so, +libnss_hesiod.so, libnss_nis.so, libnss_nisplus.so, libpcprofile.so, +libpthread.[a,so], libresolv.[a,so], librpcsvc.a, librt.[a,so], libthread_db.so +and libutil.[a,so] + + + diff --git a/LDP/guide/docbook/LFS/appendixa/grep-shortdesc.xml b/LDP/guide/docbook/LFS/appendixa/grep-shortdesc.xml new file mode 100644 index 00000000..257d16c9 --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/grep-shortdesc.xml @@ -0,0 +1,12 @@ +Contents of Grep + + + +Grep is a program used to print lines from a file matching a +specified pattern. + +Installed programs: egrep (link to grep), fgrep +(link to grep) and grep + + + diff --git a/LDP/guide/docbook/LFS/appendixa/groff-shortdesc.xml b/LDP/guide/docbook/LFS/appendixa/groff-shortdesc.xml new file mode 100644 index 00000000..160994e9 --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/groff-shortdesc.xml @@ -0,0 +1,17 @@ +Contents of Groff + + + +The Groff package includes several text processing programs +for text formatting. Groff translates standard text and special +commands into formatted output, such as what you see in a manual +page. + +Installed programs: addftinfo, afmtodit, eqn, +eqn2graph, geqn (link to eqn), grn, grodvi, groff, groffer, grog, grolbp, +grolj4, grops, grotty, gtbl (link to tbl), hpftodit, indxbib, lkbib, +lookbib, mmroff, neqn, nroff, pfbtops, pic, pic2graph, post-grohtml, +pre-grohtml, refer, soelim, tbl, tfmtodit, troff and zsoelim (link to +soelim) + + diff --git a/LDP/guide/docbook/LFS/appendixa/grub-dep.xml b/LDP/guide/docbook/LFS/appendixa/grub-dep.xml new file mode 100644 index 00000000..dd861006 --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/grub-dep.xml @@ -0,0 +1,12 @@ +   + + +Grub Installation Dependencies + + + +Grub depends on: Bash, Binutils, Coreutils, Diffutils, +GCC, Glibc, Grep, Make, Ncurses, Sed. + + + diff --git a/LDP/guide/docbook/LFS/appendixa/grub-desc.xml b/LDP/guide/docbook/LFS/appendixa/grub-desc.xml new file mode 100644 index 00000000..38c0dfc9 --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/grub-desc.xml @@ -0,0 +1,18 @@ +   + +Short descriptions + +grub is the GRand Unified Bootloader's command +shell. + +grub-install installs GRUB on the given device. + +grub-md5-crypt encrypts a password in MD5 +format. + +grub-terminfo generates a terminfo command from a +terminfo name. It can be used if you have an uncommon terminal. + +mbchk checks the format of a multiboot kernel. + + diff --git a/LDP/guide/docbook/LFS/appendixa/grub-down.xml b/LDP/guide/docbook/LFS/appendixa/grub-down.xml new file mode 100644 index 00000000..180f7e1e --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/grub-down.xml @@ -0,0 +1,9 @@ + +Official Download Location + +Grub (&grub-version;): + + +Grub Gcc33 Patch: + + diff --git a/LDP/guide/docbook/LFS/appendixa/grub-shortdesc.xml b/LDP/guide/docbook/LFS/appendixa/grub-shortdesc.xml new file mode 100644 index 00000000..cbe9eb8e --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/grub-shortdesc.xml @@ -0,0 +1,10 @@ +Contents of Grub + + + +The Grub package contains a bootloader. + +Installed programs: grub, grub-install, +grub-md5-crypt, grub-terminfo and mbchk + + diff --git a/LDP/guide/docbook/LFS/appendixa/grub.xml b/LDP/guide/docbook/LFS/appendixa/grub.xml new file mode 100644 index 00000000..1d109a7a --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/grub.xml @@ -0,0 +1,13 @@ + +Grub + + +For installation instructions see . + +&aa-grub-down; +&aa-grub-shortdesc; +&aa-grub-desc; +&aa-grub-dep; + + + diff --git a/LDP/guide/docbook/LFS/appendixa/gzip-shortdesc.xml b/LDP/guide/docbook/LFS/appendixa/gzip-shortdesc.xml new file mode 100644 index 00000000..1f1ae2a9 --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/gzip-shortdesc.xml @@ -0,0 +1,12 @@ +Contents of Gzip + + + +The Gzip package contains programs to compress and decompress files +using the Lempel-Ziv coding (LZ77). + +Installed programs: gunzip (link to gzip), gzexe, +gzip, uncompress (link to gunzip), zcat (link to gzip), zcmp, zdiff, +zegrep, zfgrep, zforce, zgrep, zless, zmore and znew + + diff --git a/LDP/guide/docbook/LFS/appendixa/inetutils-dep.xml b/LDP/guide/docbook/LFS/appendixa/inetutils-dep.xml new file mode 100644 index 00000000..ad4250d0 --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/inetutils-dep.xml @@ -0,0 +1,12 @@ +   + + +Inetutils Installation Dependencies + + + +Inetutils depends on: Bash, Binutils, Coreutils, +Diffutils, GCC, Glibc, Grep, Make, Ncurses, Sed. + + + diff --git a/LDP/guide/docbook/LFS/appendixa/inetutils-desc.xml b/LDP/guide/docbook/LFS/appendixa/inetutils-desc.xml new file mode 100644 index 00000000..7da0f5cf --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/inetutils-desc.xml @@ -0,0 +1,23 @@ +   + +Short descriptions + +ftp is the ARPANET file transfer program. + +ping sends echo-request packets and reports how +long the replies take. + +rcp does remote file copy. + +rlogin does remote login. + +rsh runs a remote shell. + +talk is used to chat up another user. + +telnet is an interface to the TELNET protocol. + +tftp is a trivial file transfer program. + + + diff --git a/LDP/guide/docbook/LFS/appendixa/inetutils-down.xml b/LDP/guide/docbook/LFS/appendixa/inetutils-down.xml new file mode 100644 index 00000000..978bf398 --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/inetutils-down.xml @@ -0,0 +1,9 @@ +   + + +Official Download Location + +Inetutils (&inetutils-version;): + + + diff --git a/LDP/guide/docbook/LFS/appendixa/inetutils-shortdesc.xml b/LDP/guide/docbook/LFS/appendixa/inetutils-shortdesc.xml new file mode 100644 index 00000000..af921f4e --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/inetutils-shortdesc.xml @@ -0,0 +1,10 @@ +Contents of Inetutils + + + +The Inetutils package contains network clients and servers. + +Installed programs: ftp, ping, rcp, rlogin, rsh, +talk, telnet and tftp + + diff --git a/LDP/guide/docbook/LFS/appendixa/inetutils.xml b/LDP/guide/docbook/LFS/appendixa/inetutils.xml new file mode 100644 index 00000000..c935ba9f --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/inetutils.xml @@ -0,0 +1,12 @@ + +Inetutils + + +For installation instructions see . + +&aa-inetutils-down; +&aa-inetutils-shortdesc; +&aa-inetutils-desc; +&aa-inetutils-dep; + + diff --git a/LDP/guide/docbook/LFS/appendixa/kbd-shortdesc.xml b/LDP/guide/docbook/LFS/appendixa/kbd-shortdesc.xml new file mode 100644 index 00000000..014179a7 --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/kbd-shortdesc.xml @@ -0,0 +1,15 @@ +Contents of Kbd + + + +Kbd contains keytable files and keyboard utilities. + +Installed programs: chvt, deallocvt, dumpkeys, +fgconsole, getkeycodes, getunimap, kbd_mode, kbdrate, loadkeys, loadunimap, +mapscrn, openvt, psfaddtable (link to psfxtable), psfgettable (link to +psfxtable), psfstriptable (link to psfxtable), psfxtable, resizecons, +setfont, setkeycodes, setleds, setlogcons, setmetamode, setvesablank, +showconsolefont, showkey, unicode_start and unicode_stop + + + diff --git a/LDP/guide/docbook/LFS/appendixa/kernel-shortdesc.xml b/LDP/guide/docbook/LFS/appendixa/kernel-shortdesc.xml new file mode 100644 index 00000000..e9b64cc4 --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/kernel-shortdesc.xml @@ -0,0 +1,16 @@ +Contents of Linux + + + +The Linux kernel is at the core of every Linux system. It's what makes +Linux tick. When a computer is turned on and boots a Linux system, the +very first piece of Linux software that gets loaded is the kernel. The +kernel initializes the system's hardware components: 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. + +Installed files: the kernel and the kernel +headers + + diff --git a/LDP/guide/docbook/LFS/appendixa/less-shortdesc.xml b/LDP/guide/docbook/LFS/appendixa/less-shortdesc.xml new file mode 100644 index 00000000..eab51f55 --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/less-shortdesc.xml @@ -0,0 +1,13 @@ +Contents of Less + + + +Less is a file pager, or text viewer. It displays the contents +of a file, or stream, and has the ability to scroll. Less has a few +features not included in the more pager, +such as the ability to scroll backwards. + +Installed programs: less, lessecho and lesskey + + + diff --git a/LDP/guide/docbook/LFS/appendixa/lfs-utils-dep.xml b/LDP/guide/docbook/LFS/appendixa/lfs-utils-dep.xml new file mode 100644 index 00000000..8bd14fd0 --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/lfs-utils-dep.xml @@ -0,0 +1,8 @@ +   + + +Lfs-Utils Installation Dependencies + +(No dependencies checked yet.) + + diff --git a/LDP/guide/docbook/LFS/appendixa/lfs-utils-desc.xml b/LDP/guide/docbook/LFS/appendixa/lfs-utils-desc.xml new file mode 100644 index 00000000..17161f53 --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/lfs-utils-desc.xml @@ -0,0 +1,20 @@ +   + +Short descriptions + +mktemp creates temporary files in a secure manner. +It is used in scripts. + +tempfile creates temporary files in a less secure +manner than mktemp. It is installed for +backwards-compatibility. + +The http-get script takes advantage of a little known +feature of bash called "net redirection". It is used to +download from websites without using any other programs. + +iana-net uses the http-get +script to simplify the process of procuring IANA's services and protocols +configuration files. + + diff --git a/LDP/guide/docbook/LFS/appendixa/lfs-utils-down.xml b/LDP/guide/docbook/LFS/appendixa/lfs-utils-down.xml new file mode 100644 index 00000000..cd72a208 --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/lfs-utils-down.xml @@ -0,0 +1,9 @@ +   + + +Official Download Location + +Lfs-utils (&lfs-utils-version;): + + + diff --git a/LDP/guide/docbook/LFS/appendixa/lfs-utils-shortdesc.xml b/LDP/guide/docbook/LFS/appendixa/lfs-utils-shortdesc.xml new file mode 100644 index 00000000..14cb5053 --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/lfs-utils-shortdesc.xml @@ -0,0 +1,14 @@ +Contents of Lfs-Utils + + + +The Lfs-Utils package contains some miscellaneous programs used by +various packages, but are not large enough to warrant their own +individual package. + +Installed programs: mktemp, tempfile, http-get +and iana-net + +Installed files: protocols, services + + diff --git a/LDP/guide/docbook/LFS/appendixa/lfs-utils.xml b/LDP/guide/docbook/LFS/appendixa/lfs-utils.xml new file mode 100644 index 00000000..d2b9c94a --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/lfs-utils.xml @@ -0,0 +1,13 @@ + +Lfs-Utils + + +For installation instructions see . + +&aa-lfs-utils-down; +&aa-lfs-utils-shortdesc; +&aa-lfs-utils-desc; +&aa-lfs-utils-dep; + + + diff --git a/LDP/guide/docbook/LFS/appendixa/libtool-shortdesc.xml b/LDP/guide/docbook/LFS/appendixa/libtool-shortdesc.xml new file mode 100644 index 00000000..a8feb625 --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/libtool-shortdesc.xml @@ -0,0 +1,14 @@ +Contents of Libtool + + + +GNU libtool is a generic library support script. Libtool hides + the complexity of using shared libraries behind a consistent, + portable interface. + +Installed programs: libtool and libtoolize + +Installed libraries: libltdl.[a,so]. + + + diff --git a/LDP/guide/docbook/LFS/appendixa/m4-shortdesc.xml b/LDP/guide/docbook/LFS/appendixa/m4-shortdesc.xml new file mode 100644 index 00000000..7cf572dd --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/m4-shortdesc.xml @@ -0,0 +1,15 @@ +Contents of M4 + + + +M4 is a macro processor. It copies input to output, expanding +macros as it goes. Macros are either built-in or user-defined and can +take any number of arguments. Besides just doing macro expansion, m4 +has built-in functions for including named files, running Unix +commands, doing integer arithmetic, manipulating text in various ways, +recursion, etc. The m4 program can be used either as a front-end to a +compiler or as a macro processor in its own right. + +Installed program: m4 + + diff --git a/LDP/guide/docbook/LFS/appendixa/make-shortdesc.xml b/LDP/guide/docbook/LFS/appendixa/make-shortdesc.xml new file mode 100644 index 00000000..c30061dc --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/make-shortdesc.xml @@ -0,0 +1,11 @@ +Contents of Make + + + +Make determines, automatically, which pieces of a large program need +to be recompiled and issues the commands to recompile them. + +Installed program: make + + + diff --git a/LDP/guide/docbook/LFS/appendixa/makedev-shortdesc.xml b/LDP/guide/docbook/LFS/appendixa/makedev-shortdesc.xml new file mode 100644 index 00000000..c77310bd --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/makedev-shortdesc.xml @@ -0,0 +1,13 @@ +Contents of MAKEDEV + + + +The MAKEDEV script creates the static device nodes which +usually reside in the /dev +directory. Detailed information about device nodes may be found +in the Documentation/devices.txt file under +the Linux kernel source tree. + +Installed script: MAKEDEV + + diff --git a/LDP/guide/docbook/LFS/appendixa/man-shortdesc.xml b/LDP/guide/docbook/LFS/appendixa/man-shortdesc.xml new file mode 100644 index 00000000..bd631b85 --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/man-shortdesc.xml @@ -0,0 +1,11 @@ +Contents of Man + + + +Man is a man pager. + +Installed programs: apropos, makewhatis, man, +man2dvi, man2html and whatis + + + diff --git a/LDP/guide/docbook/LFS/appendixa/manpages-shortdesc.xml b/LDP/guide/docbook/LFS/appendixa/manpages-shortdesc.xml new file mode 100644 index 00000000..bb8b0579 --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/manpages-shortdesc.xml @@ -0,0 +1,13 @@ +Contents of Man-pages + + + +The Man-pages package contains over 1200 manual pages. This +documentation details the C and C++ functions, describes a few +important device files and provides documents which would otherwise +be missing from other packages. + +Installed files: various manual pages + + + diff --git a/LDP/guide/docbook/LFS/appendixa/modutils-shortdesc.xml b/LDP/guide/docbook/LFS/appendixa/modutils-shortdesc.xml new file mode 100644 index 00000000..6fd5849a --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/modutils-shortdesc.xml @@ -0,0 +1,14 @@ +Contents of Modutils + + + +The Modutils package contains programs that you can use to work with +kernel modules. + +Installed programs: depmod, genksyms, insmod, +insmod_ksymoops_clean, kallsyms (link to insmod), kernelversion, ksyms +(link to insmod), lsmod (link to insmod), modinfo, modprobe (link to insmod) +and rmmod (link to insmod) + + + diff --git a/LDP/guide/docbook/LFS/appendixa/ncurses-shortdesc.xml b/LDP/guide/docbook/LFS/appendixa/ncurses-shortdesc.xml new file mode 100644 index 00000000..217148d2 --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/ncurses-shortdesc.xml @@ -0,0 +1,16 @@ +Contents of Ncurses + + + +The Ncurses package provides character and terminal handling +libraries, including panels and menus. + +Installed programs: captoinfo (link to tic), clear, +infocmp, infotocap (link to tic), reset (link to tset), tack, tic, toe, tput +and tset + +Installed libraries: libcurses.[a,so] (link to +libncurses.[a,so]), libform.[a,so], libmenu.[a,so], libncurses++.a, +libncurses.[a,so], libpanel.[a,so] + + diff --git a/LDP/guide/docbook/LFS/appendixa/nettools-shortdesc.xml b/LDP/guide/docbook/LFS/appendixa/nettools-shortdesc.xml new file mode 100644 index 00000000..c11e3e90 --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/nettools-shortdesc.xml @@ -0,0 +1,14 @@ +Contents of Net-tools + + + +The Net-tools package contains a collection of programs +which form the base of Linux networking. + +Installed programs: arp, dnsdomainname (link to +hostname), domainname (link to hostname), hostname, ifconfig, nameif, netstat, +nisdomainname (link to hostname), plipconfig, rarp, route, slattach and +ypdomainname (link to hostname) + + + diff --git a/LDP/guide/docbook/LFS/appendixa/patch-shortdesc.xml b/LDP/guide/docbook/LFS/appendixa/patch-shortdesc.xml new file mode 100644 index 00000000..7308fdec --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/patch-shortdesc.xml @@ -0,0 +1,12 @@ +Contents of Patch + + + +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. + +Installed program: patch + + + diff --git a/LDP/guide/docbook/LFS/appendixa/perl-shortdesc.xml b/LDP/guide/docbook/LFS/appendixa/perl-shortdesc.xml new file mode 100644 index 00000000..a3bdd9bf --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/perl-shortdesc.xml @@ -0,0 +1,17 @@ +Contents of Perl + + + +The Perl package contains perl, the Practical Extraction +and Report Language. Perl combines some of the best features of C, +sed, awk and sh into one powerful language. + +Installed programs: a2p, c2ph, dprofpp, enc2xs, +find2perl, h2ph, h2xs, libnetcfg, perl, perl&perl-version; (link to perl), +perlbug, perlcc, perldoc, perlivp, piconv, pl2pm, pod2html, pod2latex, pod2man, +pod2text, pod2usage, podchecker, podselect, psed (link to s2p), pstruct (link +to c2ph), s2p, splain and xsubpp + +Installed libraries: (too many to name) + + diff --git a/LDP/guide/docbook/LFS/appendixa/procinfo-shortdesc.xml b/LDP/guide/docbook/LFS/appendixa/procinfo-shortdesc.xml new file mode 100644 index 00000000..55d7c2e2 --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/procinfo-shortdesc.xml @@ -0,0 +1,13 @@ +Contents of Procinfo + + + +The procinfo program gathers system data, such as memory +usage and IRQ numbers, from the /proc +directory and formats this data in a meaningful way. + +Installed programs: lsdev, procinfo and +socklist + + + diff --git a/LDP/guide/docbook/LFS/appendixa/procps-shortdesc.xml b/LDP/guide/docbook/LFS/appendixa/procps-shortdesc.xml new file mode 100644 index 00000000..33141ed5 --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/procps-shortdesc.xml @@ -0,0 +1,15 @@ +Contents of Procps + + + +The Procps package provides programs to monitor and +halt system processes. Procps gathers information about +processes via the /proc directory. + +Installed programs: free, kill, pgrep, pkill, +pmap, ps, skill, snice, sysctl, tload, top, uptime, vmstat, w and watch + +Installed library: libproc.so + + + diff --git a/LDP/guide/docbook/LFS/appendixa/psmisc-shortdesc.xml b/LDP/guide/docbook/LFS/appendixa/psmisc-shortdesc.xml new file mode 100644 index 00000000..3a9526cb --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/psmisc-shortdesc.xml @@ -0,0 +1,11 @@ +Contents of Psmisc + + + +The Psmisc package contains three programs which help +manage the /proc directory. + +Installed programs: fuser, killall and pstree + + + diff --git a/LDP/guide/docbook/LFS/appendixa/sed-shortdesc.xml b/LDP/guide/docbook/LFS/appendixa/sed-shortdesc.xml new file mode 100644 index 00000000..f5654660 --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/sed-shortdesc.xml @@ -0,0 +1,12 @@ +Contents of Sed + + + +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). + +Installed program: sed + + + diff --git a/LDP/guide/docbook/LFS/appendixa/shadowpwd-shortdesc.xml b/LDP/guide/docbook/LFS/appendixa/shadowpwd-shortdesc.xml new file mode 100644 index 00000000..b44a5c9c --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/shadowpwd-shortdesc.xml @@ -0,0 +1,14 @@ +Contents of Shadow + + + +The Shadow package was created to strengthen the security +of system passwords. + +Installed programs: chage, chfn, chpasswd, chsh, +dpasswd, expiry, faillog, gpasswd, groupadd, groupdel, groupmod, groups, grpck, +grpconv, grpunconv, lastlog, login, logoutd, mkpasswd, newgrp, newusers, +passwd, pwck, pwconv, pwunconv, sg (link to newgrp), useradd, userdel, usermod, +vigr (link to vipw) and vipw + + diff --git a/LDP/guide/docbook/LFS/appendixa/sysklogd-shortdesc.xml b/LDP/guide/docbook/LFS/appendixa/sysklogd-shortdesc.xml new file mode 100644 index 00000000..4e4f9cd4 --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/sysklogd-shortdesc.xml @@ -0,0 +1,11 @@ +Contents of Sysklogd + + + +The Sysklogd package contains programs for recording +system log messages, such as those reported by the kernel. + +Installed programs: klogd and syslogd + + + diff --git a/LDP/guide/docbook/LFS/appendixa/sysvinit-shortdesc.xml b/LDP/guide/docbook/LFS/appendixa/sysvinit-shortdesc.xml new file mode 100644 index 00000000..95464553 --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/sysvinit-shortdesc.xml @@ -0,0 +1,14 @@ +Contents of Sysvinit + + + +The Sysvinit package contains programs to control the +startup, running and shutdown of all other programs. + +Installed programs: halt, init, killall5, last, +lastb (link to last), mesg, pidof (link to killall5), poweroff (link to halt), +reboot (link to halt), runlevel, shutdown, sulogin, telinit (link to init), +utmpdump and wall + + + diff --git a/LDP/guide/docbook/LFS/appendixa/tar-shortdesc.xml b/LDP/guide/docbook/LFS/appendixa/tar-shortdesc.xml new file mode 100644 index 00000000..ab20a022 --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/tar-shortdesc.xml @@ -0,0 +1,10 @@ +Contents of Tar + + + +Tar is an archiving program designed to store and extract +files from an archive file known as a tar file. + +Installed programs: rmt and tar + + diff --git a/LDP/guide/docbook/LFS/appendixa/tcl-dep.xml b/LDP/guide/docbook/LFS/appendixa/tcl-dep.xml new file mode 100644 index 00000000..65abadd5 --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/tcl-dep.xml @@ -0,0 +1,12 @@ +   + + +Tcl Installation Dependencies + + + +Tcl depends on: Bash, Binutils, Coreutils, Diffutils, +GCC, Glibc, Grep, Make, Sed. + + + diff --git a/LDP/guide/docbook/LFS/appendixa/tcl-desc.xml b/LDP/guide/docbook/LFS/appendixa/tcl-desc.xml new file mode 100644 index 00000000..166f49cf --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/tcl-desc.xml @@ -0,0 +1,9 @@ +   + +Short description + +tclsh8.4 is the Tcl command shell. + +libtcl8.4.so is the Tcl library. + + diff --git a/LDP/guide/docbook/LFS/appendixa/tcl-down.xml b/LDP/guide/docbook/LFS/appendixa/tcl-down.xml new file mode 100644 index 00000000..4eb5864a --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/tcl-down.xml @@ -0,0 +1,7 @@ + +Official Download Location + +Tcl (&tcl-version;): + + + diff --git a/LDP/guide/docbook/LFS/appendixa/tcl-shortdesc.xml b/LDP/guide/docbook/LFS/appendixa/tcl-shortdesc.xml new file mode 100644 index 00000000..bfe6ed2b --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/tcl-shortdesc.xml @@ -0,0 +1,13 @@ +Contents of Tcl + + + +The Tcl package contains the Tool Command Language. + +Installed programs: tclsh (link to tclsh8.4), +tclsh8.4 + +Installed library: libtcl8.4.so + + + diff --git a/LDP/guide/docbook/LFS/appendixa/tcl.xml b/LDP/guide/docbook/LFS/appendixa/tcl.xml new file mode 100644 index 00000000..ca0445c0 --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/tcl.xml @@ -0,0 +1,13 @@ + +Tcl + + +For installation instructions see . + +&aa-tcl-down; +&aa-tcl-shortdesc; +&aa-tcl-desc; +&aa-tcl-dep; + + + diff --git a/LDP/guide/docbook/LFS/appendixa/texinfo-shortdesc.xml b/LDP/guide/docbook/LFS/appendixa/texinfo-shortdesc.xml new file mode 100644 index 00000000..c8a7e98f --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/texinfo-shortdesc.xml @@ -0,0 +1,12 @@ +Contents of Texinfo + + + +The Texinfo package contains programs used for reading, +writing and converting Info documents, which provide system +documentation. + +Installed programs: info, infokey, install-info, +makeinfo, texi2dvi and texindex + + diff --git a/LDP/guide/docbook/LFS/appendixa/utillinux-shortdesc.xml b/LDP/guide/docbook/LFS/appendixa/utillinux-shortdesc.xml new file mode 100644 index 00000000..255742eb --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/utillinux-shortdesc.xml @@ -0,0 +1,20 @@ +Contents of Util-linux + + + +The Util-linux package contains a number of miscellaneous +utility programs. Some of the more prominent utilities are used +to mount, unmount, format, partition and manage disk drives, +open tty ports and fetch kernel messages. + +Installed programs: agetty, arch, blockdev, cal, +cfdisk, chkdupexe, col, colcrt, colrm, column, ctrlaltdel, cytune, ddate, +dmesg, elvtune, fdformat, fdisk, fsck.cramfs, fsck.minix, getopt, hexdump, +hwclock, ipcrm, ipcs, isosize, kill, line, logger, look, losetup, mcookie, mkfs, +mkfs.bfs, mkfs.cramfs, mkfs.minix, mkswap, more, mount, namei, parse.bash, +parse.tcsh, pg, pivot_root, ramsize (link to rdev), raw, rdev, readprofile, +rename, renice, rev, rootflags (link to rdev), script, setfdprm, setsid, +setterm, sfdisk, swapoff (link to swapon), swapon, test.bash, test.tcsh, +tunelp, ul, umount, vidmode (link to rdev), whereis and write + + diff --git a/LDP/guide/docbook/LFS/appendixa/vim-shortdesc.xml b/LDP/guide/docbook/LFS/appendixa/vim-shortdesc.xml new file mode 100644 index 00000000..5e00b9b4 --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/vim-shortdesc.xml @@ -0,0 +1,14 @@ +Contents of Vim + + + +The Vim package contains a configurable text editor built to +enable efficient text editing. + +Installed programs: efm_filter.pl, efm_perl.pl, ex +(link to vim), less.sh, mve.awk, pltags.pl, ref, rview (link to vim), rvim +(link to vim), shtags.pl, tcltags, vi (link to vim), view (link to vim), vim, +vim132, vim2html.pl, vimdiff (link to vim), vimm, vimspell.sh, vimtutor +and xxd + + diff --git a/LDP/guide/docbook/LFS/appendixa/zlib-shortdesc.xml b/LDP/guide/docbook/LFS/appendixa/zlib-shortdesc.xml new file mode 100644 index 00000000..aeb804e8 --- /dev/null +++ b/LDP/guide/docbook/LFS/appendixa/zlib-shortdesc.xml @@ -0,0 +1,11 @@ +Contents of Zlib + + + +The Zlib package contains the libz library, which is used by some +programs for its compression and uncompression functions. + +Installed libraries: libz[a,so] + + + diff --git a/LDP/guide/docbook/LFS/book.xml b/LDP/guide/docbook/LFS/book.xml new file mode 100644 index 00000000..c8e2c9af --- /dev/null +++ b/LDP/guide/docbook/LFS/book.xml @@ -0,0 +1,36 @@ +&bookinfo; + + +Dedication +This book is dedicated to my loving and supportive wife +Beverly Beekmans. + + +&preface; + + +Part I - Introduction +&chapter01; +&chapter02; + + + +Part II - Preparing for the build +&chapter03; +&chapter04; +&chapter05; + + + +Part III - Building the LFS system +&chapter06; +&chapter07; +&chapter08; +&chapter09; + + + +Part IV - Appendices +&appendixa; +&appendixb; + diff --git a/LDP/guide/docbook/LFS/bookinfo.xml b/LDP/guide/docbook/LFS/bookinfo.xml new file mode 100644 index 00000000..b7ea0297 --- /dev/null +++ b/LDP/guide/docbook/LFS/bookinfo.xml @@ -0,0 +1,60 @@ + +Linux From Scratch +Version &version; + + + +GerardBeekmans + + + + + 1999-2003 + Gerard Beekmans + + + + +This book describes the process of creating a Linux system from +scratch, using nothing but the sources of the required software. + + + + +Copyright (c) 1999-2003, Gerard Beekmans + +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + + +Redistributions in any form must retain the above copyright +notice, this list of conditions and the following disclaimer. + +Neither the name of "Linux From Scratch" nor the names of +its contributors may be used to endorse or promote products derived from +this material without specific prior written permission. + +Any material derived from Linux From Scratch must contain +a reference to the "Linux From Scratch" project. + + + +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. + + + + diff --git a/LDP/guide/docbook/LFS/chapter02/aboutdependencies.xml b/LDP/guide/docbook/LFS/chapter02/aboutdependencies.xml new file mode 100644 index 00000000..4a2ea74b --- /dev/null +++ b/LDP/guide/docbook/LFS/chapter02/aboutdependencies.xml @@ -0,0 +1,57 @@ + +About dependencies + + + + +There are a few ways to compile a list of a package's installation +dependencies. What we consider the best way is using the +strace program available at . + +strace is a program that provides a trace of all +system calls made by another program. One of the most useful system calls +to trace when figuring out dependencies is the execve(2) +system call, which is used to execute programs (see its man page for +all the details). Whenever you run a program, be it from a shell or via a +configure script or Makefile file, the execve call is made. If you trace +these calls, you will know what programs were executed behind the +scenes. + +Here is a line of output from running a configure script: + +19580 execve("/bin/rm", ["rm", "-f", "conf19538", "conf19538.exe", "conf19538.file"], [/* 26 vars */]) = 0 + +This line tells us that the /bin/rm program was +run with a PID of 19580, which command line parameters it was given (rm -f +conf195838 conf19538.exe conf19538.file) and its exit value (0). + +For dependency purposes all we care about is that +/bin/rm was run during the configure script, so this is +an installation dependency. Without rm, the script +wouldn't be able to run properly. + +Unfortunately, this method is not foolproof. Configure scripts check +for the presense of many programs, but not all of them are considered real +dependencies. For instance, configure scripts may check for the presence of +the autoconf program. It will be listed in the strace +output, but it's not a real installation dependency. A package will in most +if not all cases install just fine without that program. There are other +such false positives. + +This means automatic dependency gathering is never accurate. You will +always need to validate the list and figure out the false positives. In +some (rare) cases autoconf might be a real dependency, so you +can't simply ignore all autoconf entries. A manual validation really is a +requirement for an accurate list. + +This book is not so verbose as to list exactly which program from which +package is required for a successful installation (we used to, but it had +become too much work to maintain it). The book will contain simply the +names of packages you need to have installed. If you need the verbosity +in the form of "package a needs file b and c from package d", have a look +at <enter URL when it's available>. + + + diff --git a/LDP/guide/docbook/LFS/chapter02/abouttestsuites.xml b/LDP/guide/docbook/LFS/chapter02/abouttestsuites.xml new file mode 100644 index 00000000..9cf6b3a9 --- /dev/null +++ b/LDP/guide/docbook/LFS/chapter02/abouttestsuites.xml @@ -0,0 +1,32 @@ + +About the test suites + + +Most packages provide a test suite. Running the test suite for a newly +built package is generally a good idea as it can provide a nice sanity check +that everything compiled correctly. A test suite that passes its set of +checks usually proves that the package is functioning mostly as the developer +intended. It does not, however, guarantee that the package is totally bug +free. + +Some test suites are more important than others. For example, the test +suites for the core toolchain packages -- GCC, Binutils, and Glibc (the C +library) -- are of the utmost importance due to their central role in a +properly functioning system. But be warned, the test suites for GCC and Glibc +can take a very long period of time to complete, especially on slower +hardware. + +As you progress through the book and encounter the build commands to +run the various test suites, we'll guide you on the relative importance of +the test suite in question so that you can decide for yourself whether to +run it or not. + +A common problem when running the test suites for Binutils and GCC +is running out of pseudo terminals (PTYs for short). The symptom is an unusually +high number of failing tests. This can happen for any number of reasons. Most +likely is that the host system doesn't have the devpts file +system set up correctly. We'll discuss this in more detail later on in Chapter +5. + + + diff --git a/LDP/guide/docbook/LFS/chapter03/creatingfs.xml b/LDP/guide/docbook/LFS/chapter03/creatingfs.xml new file mode 100644 index 00000000..f2cb6889 --- /dev/null +++ b/LDP/guide/docbook/LFS/chapter03/creatingfs.xml @@ -0,0 +1,29 @@ + +Creating a file system on the new partition + + +Now that we have a blank partition, we can create a file system on it. +Most widely used in the Linux world is the second extended file system (ext2), +but with the high-capacity hard disks of today the so-called journaling file +systems are becoming increasingly popular. Here we will create an ext2 file +system, but build instructions for other file systems can be found at . + +To create an ext2 file system on the LFS partition run the following: + +mke2fs /dev/xxx + +Replace xxx with the name of the LFS partition +(something like hda5). + +If you created a (new) swap partition you need to initialize it as a +swap partition too (also known as formatting, like you did above with +mke2fs) by running: + +mkswap /dev/yyy + +Replace yyy with the name of the swap +partition. + + + diff --git a/LDP/guide/docbook/LFS/chapter03/creatingpart.xml b/LDP/guide/docbook/LFS/chapter03/creatingpart.xml new file mode 100644 index 00000000..f60d7489 --- /dev/null +++ b/LDP/guide/docbook/LFS/chapter03/creatingpart.xml @@ -0,0 +1,40 @@ + +Creating a new partition + + +In order to build our new Linux system, we will need some space: +an empty disk partition. If you don't have a free partition, and no room +on any of your hard disks to make one, then you could build LFS on the +same partition as the one on which your current distribution is installed. +This procedure is not recommended for your first LFS install, but if you +are short on disk space, and you feel brave, take a look at the hint at +. + +For a minimal system you will need a partition of around 1.2 GB. +This is enough to store all the source tarballs and compile all the packages. +But if you intend to use the LFS system as your primary Linux system, you +will probably want to install additional software, and will need more space +than this, probably around 2 or 3 GB. + +As we almost never have enough RAM in our box, it is a good idea to +use a small disk partition as swap space -- this space is used by the kernel +to store seldom-used data to make room in memory for more urgent stuff. +The swap partition for your LFS system can be the same one as for your host +system, so you won't have to create another if your host system already uses +a swap partition. + +Start a disk partitioning program such as cfdisk +or fdisk with an argument naming the hard disk upon +which the new partition must be created -- for example +/dev/hda for the primary IDE disk. Create a Linux native +partition and a swap partition, if needed. Please refer to the man pages of +cfdisk or fdisk if you don't yet +know how to use the programs. + +Remember the designation of your new partition -- something like +hda5. This book will refer to it as the LFS partition. +If you (now) also have a swap partition, remember its designation too. These +names will later be needed for the /etc/fstab file. + + + diff --git a/LDP/guide/docbook/LFS/chapter03/mounting.xml b/LDP/guide/docbook/LFS/chapter03/mounting.xml new file mode 100644 index 00000000..f29c49c1 --- /dev/null +++ b/LDP/guide/docbook/LFS/chapter03/mounting.xml @@ -0,0 +1,46 @@ + +Mounting the new partition + + +Now that we've created a file system, we want to be able to access +the partition. For that, we need to mount it, and have to choose a mount +point. In this book we assume that the file system is mounted under +/mnt/lfs, but it doesn't matter what directory +you choose. + +Choose a mount point and assign it to the LFS environment variable +by running: + +export LFS=/mnt/lfs + +Now create the mount point and mount the LFS file system by running: + +mkdir -p $LFS +mount /dev/xxx $LFS + +Replace xxx with the designation of the LFS +partition. + +If you have decided to use multiple partitions for LFS (say one for +/ and another for /usr), mount +them like this: + +mkdir -p $LFS +mount /dev/xxx $LFS +mkdir $LFS/usr +mount /dev/yyy $LFS/usr + +Of course, replace xxx and yyy +with the appropriate partition names. + +You should also ensure that this new partition is not mounted with +permissions that are too restrictive (such as the nosuid, nodev or noatime +options). You can run the mount command without any +parameters to see with what options the LFS partition is mounted. If +you see nosuid, nodev or noatime, you will need to remount it. + +Now that we've made ourselves a place to work in, we're ready to download +the packages. + + + diff --git a/LDP/guide/docbook/LFS/chapter05/adding-user.xml b/LDP/guide/docbook/LFS/chapter05/adding-user.xml new file mode 100644 index 00000000..4f6f487c --- /dev/null +++ b/LDP/guide/docbook/LFS/chapter05/adding-user.xml @@ -0,0 +1,36 @@ + +Adding the user lfs + + +When logged in as root, making a single mistake +can damage or even wreck your system. Therefore we recommend that you +build the packages in this chapter as an unprivileged user. You could +of course use your own user name, but to make it easier to set up a clean +work environment we'll create a new user lfs and +use this one during the installation process. As root, +issue the following commands to add the new user: + +useradd -s /bin/bash -m lfs +passwd lfs + +Now grant this new user lfs full access to +$LFS/tools by giving it ownership +of the directory: + +chown lfs $LFS/tools + +If you made a separate working directory as suggested, give user +lfs ownership of this directory too: + +chown lfs $LFS/sources + +Next, login as user lfs. This can be done via a +virtual console, through a display manager, or with the following substitute +user command: + +su - lfs + +The "-" instructs su to +start a new, clean shell. + + diff --git a/LDP/guide/docbook/LFS/chapter05/binutils-pass1.xml b/LDP/guide/docbook/LFS/chapter05/binutils-pass1.xml new file mode 100644 index 00000000..2e2e46ba --- /dev/null +++ b/LDP/guide/docbook/LFS/chapter05/binutils-pass1.xml @@ -0,0 +1,118 @@ + +Installing Binutils-&binutils-version; - Pass 1 + + +Estimated build time: &binutils-time-tools-pass1; +Estimated required disk space: &binutils-compsize-tools-pass1; + +&aa-binutils-shortdesc; +&aa-binutils-dep; + +   + + +Installation of Binutils + +It is important that Binutils be the first package to get compiled, +because both Glibc and GCC perform various tests on the available linker and +assembler to determine which of their own features to enable. + +Even though Binutils is an important toolchain package, we are not +going to run the test suite at this early stage. First, the test suite framework +is not yet in place and second, the programs from this first pass will soon be +overwritten by those installed in the second pass. + +This package is known to behave badly when you have changed its default +optimization flags (including the -march and -mcpu options). Therefore, if +you have defined any environment variables that override default +optimizations, such as CFLAGS and CXXFLAGS, we recommend unsetting or +modifying them when building Binutils. + +The Binutils documentation recommends building Binutils outside of the +source directory in a dedicated build directory: + +mkdir ../binutils-build +cd ../binutils-build + +If you want the SBU values listed in the rest of the book to be of +any use, you will have to measure the time it takes to build this package. To +achieve this easily, you could do something like: +time { ./configure ... && ... && ... && make install; }. + +Now prepare Binutils for compilation: + +../binutils-&binutils-version;/configure \ +    --prefix=/tools --disable-nls + +The meaning of the configure options: + + +--prefix=/tools: This tells the +configure script to prepare to install the Binutils programs in the +/tools directory. + +--disable-nls: This disables +internationalization (a word often shortened to i18n). We don't need this +for our static programs and nls often causes problems +when linking statically. + + +Continue with compiling the package: + +make configure-host +make LDFLAGS="-all-static" + +The meaning of the make parameters: + + +configure-host: This forces all the +subdirectories to be configured immediately. A statically linked build will +fail without it. We therefore use this option to work around the +problem. + +LDFLAGS="-all-static": This tells the +linker that all the Binutils programs should be linked statically. However, +strictly speaking, "-all-static" is first passed to the +libtool program which then passes +"-static" on to the linker. + + +And install the package: + +make install + +Now prepare the linker for the "locking in" of Glibc later on: + +make -C ld clean +make -C ld LDFLAGS="-all-static" LIB_PATH=/tools/lib + +The meaning of the make parameters: + + +-C ld clean: This tells the make program +to remove all the compiled files, but only in the ld +subdirectory. + +-C ld LDFLAGS="-all-static" LIB_PATH=/tools/lib: +This option rebuilds everything in the ld subdirectory. +Specifying the LIB_PATH makefile variable on the command line allows us to +override the default value and have it point to our temporary tools location. +The value of this variable specifies the linker's default library search path. +You'll see how this preparation is used later on in the +chapter. + + + + + +Do not yet remove the Binutils build and source directories. You +will need them again in their current state a bit further on in this +chapter. + + + + + + + + diff --git a/LDP/guide/docbook/LFS/chapter05/binutils-pass2.xml b/LDP/guide/docbook/LFS/chapter05/binutils-pass2.xml new file mode 100644 index 00000000..3bc4ffe2 --- /dev/null +++ b/LDP/guide/docbook/LFS/chapter05/binutils-pass2.xml @@ -0,0 +1,78 @@ + +Installing Binutils-&binutils-version; - Pass 2 + + +Estimated build time: &binutils-time-tools-pass2; +Estimated required disk space: &binutils-compsize-tools-pass2; + + +   + + +Re-installation of Binutils + +Create a separate build directory again: + +mkdir ../binutils-build +cd ../binutils-build + +Now prepare Binutils for compilation: + +../binutils-&binutils-version;/configure --prefix=/tools \ +    --enable-shared --with-lib-path=/tools/lib + +The meaning of the new configure option: + + +--with-lib-path=/tools/lib: This tells +the configure script to specify the default library search path. We don't want +the library search path to contain library directories from the host +system. + + +Before starting to build Binutils, remember to unset any environment +variables that override the default optimization flags. + +Compile the package: + +make + +It's worth pointing out that running the Binutils test suite here +is considered not as important as running it in +. + +Test the results (there should be no unexpected failures here, expected +failures are fine): + +make check + +Unfortunately, there is no easy way to view the test results summary like +there was for the previous GCC package. However, if a failure occurs here, it +should be easy to spot. The output shown will contain something like: + +
make[1]: *** [check-binutils] Error 2
+ +And install the package: + +make install + +Now prepare Binutils for the re-adjusting of the toolchain in the next +chapter: + +make -C ld clean +make -C ld LIB_PATH=/usr/lib:/lib + + + + +Do not yet remove the Binutils source and build directories. +We'll need these directories again in the next chapter in the state they are in +now. + + + + +
+ +
+ diff --git a/LDP/guide/docbook/LFS/chapter05/coreutils.xml b/LDP/guide/docbook/LFS/chapter05/coreutils.xml new file mode 100644 index 00000000..f0a1eb7f --- /dev/null +++ b/LDP/guide/docbook/LFS/chapter05/coreutils.xml @@ -0,0 +1,46 @@ + +Installing Coreutils-&coreutils-version; + + +Estimated build time: &coreutils-time-tools; +Estimated required disk space: &coreutils-compsize-tools; + +&aa-coreutils-shortdesc; +&aa-coreutils-dep; + +   + + +Installation of Coreutils + +Prepare Coreutils for compilation: + +./configure --prefix=/tools + +Compile the package: + +make + +This package has a test suite available which can perform a number of +checks to ensure it built correctly. Should you choose to run it, the +following command will do so: + +make RUN_EXPENSIVE_TESTS=yes check + +The meaning of the make parameter: + + +RUN_EXPENSIVE_TESTS=yes: This tells the +test suite to run several additional tests that are considered relatively +expensive on some platforms. However, they are generally not a problem on +Linux. + + +And install the package: + +make install + + + + + diff --git a/LDP/guide/docbook/LFS/chapter05/creatingstage1dir.xml b/LDP/guide/docbook/LFS/chapter05/creatingstage1dir.xml new file mode 100644 index 00000000..2621ec6b --- /dev/null +++ b/LDP/guide/docbook/LFS/chapter05/creatingstage1dir.xml @@ -0,0 +1,38 @@ + +Creating the $LFS/tools directory + + +All programs compiled in this chapter will be installed under $LFS/tools to keep them separate from the +programs compiled in the next chapter. The programs compiled here are only +temporary tools and won't be a part of the final LFS system and by keeping them +in a separate directory, we can later easily throw them away. + +If later you wish to search through the binaries of your system to see +what files they make use of or link against, then to make this searching easier +you may want to choose a unique name. Instead of the simple "tools" you could +use something like "tools-for-lfs". + +Create the required directory by running the following: + +mkdir $LFS/tools + +The next step is to create a /tools symlink on +your host system. It will point to the directory we just created on the LFS +partition: + +ln -s $LFS/tools / + +This symlink enables us to compile our toolchain so that it always +refers to /tools, meaning that the compiler, assembler +and linker will work both in this chapter (when we are still using some tools +from the host) and in the next (when we are chrooted to +the LFS partition). + +Study the above command closely. It can be confusing at first +glance. The ln command has several syntax variations, +so be sure to check the ln man page before reporting what you may think is an +error. + + + diff --git a/LDP/guide/docbook/LFS/chapter05/dejagnu.xml b/LDP/guide/docbook/LFS/chapter05/dejagnu.xml new file mode 100644 index 00000000..dc37b94d --- /dev/null +++ b/LDP/guide/docbook/LFS/chapter05/dejagnu.xml @@ -0,0 +1,27 @@ + +Installing DejaGnu-&dejagnu-version; + + +Estimated build time: &dejagnu-time-tools; +Estimated required disk space: &dejagnu-compsize-tools; + +&aa-dejagnu-shortdesc; +&aa-dejagnu-dep; + +   + + +Installation of DejaGnu + +Prepare DejaGnu for compilation: + +./configure --prefix=/tools + +Build and install the package: + +make install + + + + + diff --git a/LDP/guide/docbook/LFS/chapter05/expect.xml b/LDP/guide/docbook/LFS/chapter05/expect.xml new file mode 100644 index 00000000..f2505d1a --- /dev/null +++ b/LDP/guide/docbook/LFS/chapter05/expect.xml @@ -0,0 +1,69 @@ + +Installing Expect-&expect-version; + + +Estimated build time: &expect-time-tools; +Estimated required disk space: &expect-compsize-tools; + +&aa-expect-shortdesc; +&aa-expect-dep; + +   + + +Installation of Expect + +First apply a patch: + +patch -Np1 -i ../&expect-patch; + +This fixes a bug in Expect that can result in bogus failures during the +GCC test suite run. + +Now prepare Expect for compilation: + +./configure --prefix=/tools --with-tcl=/tools/lib --with-x=no + +The meaning of the configure options: + + +--with-tcl=/tools/lib: This ensures that +the configure script finds the Tcl installation in our temporary tools location. +We don't want it to find an existing one that may possibly reside on the host +system. + +--with-x=no: This tells the configure +script not to search for Tk (the Tcl GUI component) or the X Window System +libraries, both of which may possibly reside on the host system. + + +Build the package: + +make + +This package has a test suite available which can perform a number of +checks to ensure it built correctly. However, the Expect test suite here in +Chapter 5 is known to experience failures under certain host conditions that +are not fully understood. Therefore, test suite failures here are not +surprising, but are not considered critical. Should you choose to run the test +suite, the following command will do so: + +make test + +And install: + +make SCRIPTS="" install + +The meaning of the make parameter: + + +SCRIPTS="": This prevents installation of +the supplementary expect scripts which are not needed. + + +You can now remove the source directories of both Tcl and Expect. + + + + + diff --git a/LDP/guide/docbook/LFS/chapter05/gcc-pass1.xml b/LDP/guide/docbook/LFS/chapter05/gcc-pass1.xml new file mode 100644 index 00000000..226b6733 --- /dev/null +++ b/LDP/guide/docbook/LFS/chapter05/gcc-pass1.xml @@ -0,0 +1,101 @@ + +Installing GCC-&gcc-version; - Pass 1 + + +Estimated build time: &gcc-time-tools-pass1; +Estimated required disk space: &gcc-compsize-tools-pass1; + +&aa-gcc-shortdesc; +&aa-gcc-dep; + +   + + +Installation of GCC + +Unpack only the GCC-core tarball, as we won't be needing a C++ compiler +for the moment. + +Even though GCC is an important toolchain package, we are not +going to run the test suite at this early stage. First, the test suite framework +is not yet in place and second, the programs from this first pass will soon be +overwritten by those installed in the second pass. + +This package is known to behave badly when you have changed its +default optimization flags (including the -march and -mcpu options). +Therefore, if you have defined any environment variables that override +default optimizations, such as CFLAGS and CXXFLAGS, we recommend unsetting +or modifying them when building GCC. + +The GCC documentation recommends building GCC outside of the source +directory in a dedicated build directory: + +mkdir ../gcc-build +cd ../gcc-build + +Prepare GCC for compilation: + +../gcc-&gcc-version;/configure --prefix=/tools \ +    --with-local-prefix=/tools \ +    --disable-nls --enable-shared \ +    --enable-languages=c + +The meaning of the configure options: + + +--with-local-prefix=/tools: The +purpose of this switch is to remove /usr/local/include +from gcc's include search path. This is not absolutely +essential; however, we want to try to minimize the influence of the host +system, thus making this a sensible thing to do. + +--enable-shared: This switch may +seem counter-intuitive at first. But using it allows the building of +libgcc_s.so.1 and libgcc_eh.a, and +having libgcc_eh.a available ensures that the configure +script for Glibc (the next package we compile) produces the proper results. +Note that the gcc binaries will still be linked +statically, as this is controlled by the -static +value of BOOT_LDFLAGS further on. + +--enable-languages=c: This option +ensures that only the C compiler is built. The option is only needed when you +have downloaded and unpacked the full GCC tarball. + + +Continue with compiling the package: + +make BOOT_LDFLAGS="-static" bootstrap + +The meaning of the make parameters: + + +BOOT_LDFLAGS="-static": This tells +GCC to link its programs statically. + +bootstrap: This target doesn't just +compile GCC, but compiles it several times. It uses the programs compiled in +a first round to compile itself a second time, and then again a third time. +It then compares these second and third compiles to make sure it can +reproduce itself flawlessly, which most probably means that it was +compiled correctly. + + +And install the package: + +make install + +As a finishing touch we'll create the /tools/bin/cc symlink. Many programs and +scripts run cc instead of gcc, +a thing meant to keep programs generic and therefore usable on all kinds of +Unix systems. Not everybody has the GNU C compiler installed. Simply running +cc leaves the system administrator free to decide what +C compiler to install, as long as there's a symlink pointing to it: + +ln -sf gcc /tools/bin/cc + + + + + diff --git a/LDP/guide/docbook/LFS/chapter05/gcc-pass2.xml b/LDP/guide/docbook/LFS/chapter05/gcc-pass2.xml new file mode 100644 index 00000000..e6c3557c --- /dev/null +++ b/LDP/guide/docbook/LFS/chapter05/gcc-pass2.xml @@ -0,0 +1,174 @@ + +Installing GCC-&gcc-version; - Pass 2 + + +Estimated build time: &gcc-time-tools-pass2; +Estimated required disk space: &gcc-compsize-tools-pass2; + + +   + + +Re-installation of GCC + +The tools required to test GCC and Binutils are installed now (Tcl, Expect +and DejaGnu). We can continue on rebuilding GCC and Binutils, link them against +the new Glibc, and test them properly. One thing to note, however, is that these +test suites are highly dependent on properly functioning pseudo terminals (PTYs) +which are provided by your host distribution. These days, PTYs are most commonly +implemented via the devpts file system. You can quickly +check if your host system is set up correctly in this regard by performing a +simple test: + +expect -c "spawn ls" + +If you receive the message: + +
The system has no more ptys. Ask your system administrator to create more.
+ +Your host distribution is not set up for proper PTY operation. In this +case there is no point in running the test suites for GCC and Binutils until you +are able to resolve the issue. You can consult the LFS Wiki at + for more information on how to +get PTYs working. + +Unpack all three GCC tarballs (-core, -g++, and -testsuite) in one and the +same working directory. They will all unfold into a single +gcc-&gcc-version;/ subdirectory. + +First correct one problem and make an essential adjustment: + +patch -Np1 -i ../&gcc-nofixincludes-patch; +patch -Np1 -i ../&gcc-specs-patch; + +The first patch disables the GCC "fixincludes" script. We mentioned this +briefly earlier, but a slightly more in-depth explanation of the fixincludes +process is warranted here. Under normal circumstances, the GCC fixincludes +script scans your system for header files that need to be fixed. It might find +that some Glibc header files on your host system need to be fixed, fix them and +put them in the GCC private include directory. Then, later on in +, after we've installed the newer Glibc, this +private include directory would be searched before the system include +directory, resulting in GCC finding the fixed headers from the host system, +which would most likely not match the Glibc version actually used for the LFS +system. + +The last patch changes GCC's default location of the dynamic linker +(typically ld-linux.so.2). It also removes +/usr/include from GCC's include search +path. Patching now rather than adjusting the specs file after installation +ensures that our new dynamic linker gets used during the actual build of GCC. +That is, all the final (and temporary) binaries created during the build will +link against the new Glibc. + +These patches are critical in ensuring a +successful overall build. Do not forget to apply them. + +Create a separate build directory again: + +mkdir ../gcc-build +cd ../gcc-build + +Before starting to build GCC, remember to unset any environment +variables that override the default optimization flags. + +Now prepare GCC for compilation: + +../gcc-&gcc-version;/configure --prefix=/tools \ +    --with-local-prefix=/tools \ +    --enable-clocale=gnu --enable-shared \ +    --enable-threads=posix --enable-__cxa_atexit \ +    --enable-languages=c,c++ + +The meaning of the new configure options: + + +--enable-threads=posix: This enables +C++ exception handling for multi-threaded code. + +--enable-__cxa_atexit: This option +allows use of __cxa_atexit, rather than atexit, to register C++ destructors for +local statics and global objects and is essential for fully standards-compliant +handling of destructors. It also affects the C++ ABI and therefore results in +C++ shared libraries and C++ programs that are interoperable with other Linux +distributions. + +--enable-clocale=gnu: This option ensures +the correct locale model is selected for the C++ libraries under all +circumstances. If the configure script finds the de_DE +locale installed, it will select the correct model of gnu. +However, people who don't install the de_DE locale, run the +risk of building ABI incompatible C++ libraries due to the wrong locale model of +generic being selected. + +--enable-languages=c,c++: This option is +needed to ensure that both C and C++ compilers are built. + + +Compile the package: + +make + +There is no need to use the bootstrap target now, +as the compiler we're using to compile this GCC was built from the exact same +version of the GCC sources we used earlier. + +It's worth pointing out that running the GCC test suite here +is considered not as important as running it in +. + +Test the results: + +make -k check + +The -k flag is used to make the test suite run +through to completion and not stop at the first failure. The GCC test suite is +very comprehensive and is almost guaranteed to generate a few failures. To get +a summary of the test suite results, run this: + +../gcc-&gcc-version;/contrib/test_summary | more + +You can compare your results to those posted to the gcc-testresults +mailing list for similar configurations to your own. For an example of how +current GCC-&gcc-version; should look on i686-pc-linux-gnu, see +. + +Note that the results contain: + +* 1 XPASS (unexpected pass) for g++ +* 1 FAIL (unexpected failure) for g++ +* 2 FAIL for gcc +* 26 XPASS's for libstdc++ + +The unexpected pass for g++ is due to the use of +--enable-__cxa_atexit. Apparently not all platforms +supported by GCC have support for "__cxa_atexit" in their C libraries, so this +test is not always expected to pass. + +The 26 unexpected passes for libstdc++ are due to the use of +--enable-clocale=gnu, which is the correct choice on +Glibc-based systems of versions 2.2.5 and above. The underlying locale support +in the GNU C library is superior to that of the otherwise selected "generic" +model (which may be applicable if for instance you were using Newlibc, Sun-libc +or whatever libc). The libstdc++ test suite is apparently expecting the +"generic" model, hence those tests are not always expected to pass. + +Unexpected failures often cannot be avoided. The GCC developers are +usually aware of them but haven't yet gotten around to fixing them. In short, +unless your results are vastly different from those at the above URL, it is safe +to continue on. + +And finally install the package: + +make install + +At this point it is strongly recommended to repeat the sanity check +we performed earlier in the chapter. Refer back to + and repeat the check. If the results are +wrong, then most likely you forgot to apply the above mentioned GCC Specs +patch. + +
+ +
+ diff --git a/LDP/guide/docbook/LFS/chapter05/gettext.xml b/LDP/guide/docbook/LFS/chapter05/gettext.xml new file mode 100644 index 00000000..18a3d57c --- /dev/null +++ b/LDP/guide/docbook/LFS/chapter05/gettext.xml @@ -0,0 +1,41 @@ + +Installing Gettext-&gettext-version; + + +Estimated build time: &gettext-time-tools; +Estimated required disk space: &gettext-compsize-tools; + +&aa-gettext-shortdesc; +&aa-gettext-dep; + +   + + +Installation of Gettext + +Prepare Gettext for compilation: + +./configure --prefix=/tools + +Compile the programs: + +make + +This package has a test suite available which can perform a number of +checks to ensure it built correctly. However, the Gettext test suite here in +Chapter 5 is known to experience failures under certain host conditions -- for +example, if it finds a Java compiler on the host. The Gettext test suite takes +a very long time to run and is not considered critical. Therefore, we don't +recommend running it here. Should you choose to run it, the following command +will do so: + +make check + +And install the package: + +make install + + + + + diff --git a/LDP/guide/docbook/LFS/chapter05/glibc.xml b/LDP/guide/docbook/LFS/chapter05/glibc.xml new file mode 100644 index 00000000..aa333a2b --- /dev/null +++ b/LDP/guide/docbook/LFS/chapter05/glibc.xml @@ -0,0 +1,181 @@ + +Installing Glibc-&glibc-version; + + +Estimated build time: &glibc-time-tools; +Estimated required disk space: &glibc-compsize-tools; + +&aa-glibc-shortdesc; +&aa-glibc-dep; + +   + + +Glibc installation + +Before starting to install Glibc, you must cd +into the glibc-&glibc-version; directory and unpack +Glibc-linuxthreads in that directory, not in the directory where you usually +unpack all the sources. + +We are going to run the test suite for Glibc in this chapter. +However, it's worth pointing out that running the Glibc test suite here +is considered not as important as running it in +. + +This package is known to behave badly when you have changed its +default optimization flags (including the -march and -mcpu options). +Therefore, if you have defined any environment variables that override +default optimizations, such as CFLAGS and CXXFLAGS, we recommend unsetting +them when building Glibc. + +Basically, compiling Glibc in any other way than the book suggests +is putting the stability of your system at risk. + +Though it is a harmless message, the install stage of Glibc will +complain about the absence of /tools/etc/ld.so.conf. +Fix this annoying little warning with: + +mkdir /tools/etc +touch /tools/etc/ld.so.conf + +Also, Glibc has a subtle problem when compiled with GCC &gcc-version;. +Apply the following patch to fix this: + +patch -Np1 -i ../&glibc-sscanf-patch; + +The Glibc documentation recommends building Glibc outside of the source +directory in a dedicated build directory: + +mkdir ../glibc-build +cd ../glibc-build + +Next, prepare Glibc for compilation: + +../glibc-&glibc-version;/configure --prefix=/tools \ +    --disable-profile --enable-add-ons \ +    --with-headers=/tools/include \ +    --with-binutils=/tools/bin \ +    --without-gd + +The meaning of the configure options: + + +--disable-profile: This disables the +building of the libraries with profiling information. Omit this option if you +plan to do profiling. + +--enable-add-ons: This enables any +add-ons that were installed with Glibc, in our case Linuxthreads. + +--with-binutils=/tools/bin and +--with-headers=/tools/include: Strictly speaking +these switches are not required. But they ensure nothing can go wrong with +regard to what kernel headers and Binutils programs get used during the +Glibc build. + + --without-gd: This switch ensures +that we don't build the memusagestat program, which +strangely enough insists on linking against the host's libraries (libgd, +libpng, libz, and so forth). + + +During this stage you might see the following warning: + +
configure: WARNING: +*** These auxiliary programs are missing or incompatible versions: msgfmt +*** some features will be disabled. +*** Check the INSTALL file for required versions.
+ +The missing or incompatible msgfmt program is +generally harmless, but it's believed it can sometimes cause problems when +running the test suite. + +Compile the package: + +make + +Run the test suite: + +make check + +The Glibc test suite is highly dependent on certain functions of your host +system, in particular the kernel. Additionally, here in this chapter some tests +can be adversely affected by existing tools or environmental issues on the host +system. Of course, these won't be a problem when we run the Glibc test suite +inside the chroot environment of . In general, the +Glibc test suite is always expected to pass. However, as mentioned above, some +failures are unavoidable in certain circumstances. Here is a list of the most +common issues we are aware of: + + +The math tests sometimes fail when running +on systems where the CPU is not a relatively new genuine Intel or authentic AMD. +Certain optimization settings are also known to be a factor here. + +The gettext test sometimes fails due to +host system issues. The exact reasons are not yet clear. + +The atime test sometimes fails when the +LFS partition is mounted with the noatime option, or due +to other file system quirks. + +The shm test might fail when the host +system is running the devfs file system but doesn't have the tmpfs file system +mounted at /dev/shm due to lack of support for tmpfs in +the kernel. + +When running on older and slower hardware, some tests might +fail due to test timeouts being exceeded. + + +In summary, don't worry too much if you see Glibc test suite failures +here in this chapter. The Glibc in is the one we'll +ultimately end up using so that is the one we would really like to see pass. +But please keep in mind, even in some failures +could still occur -- the math +tests for example. When experiencing a failure, make a note of it, then +continue by reissuing the make check. The test suite +should pick up where it left off and continue on. You can circumvent this +stop-start sequence by issuing a make -k check. But if +you do that, be sure to log the output so that you can later peruse the log +file and examine the total number of failures. + +Now install the package: + +make install + +Different countries and cultures have varying conventions for how to +communicate. These conventions range from very simple ones, such as the format +for representing dates and times, to very complex ones, such as the language +spoken. The "internationalization" of GNU programs works by means of +locales. We'll install the Glibc locales now: + +make localedata/install-locales + +An alternative to running the previous command is to install only +those locales which you need or want. This can be achieved by using the +localedef command. Information on this can be +found in the INSTALL file in the +glibc-&glibc-version; source. However, there are a number +of locales that are essential for the tests of future packages to pass, in +particular, the libstdc++ tests from GCC. The following +instructions, instead of the install-locales target above, will install +the minimum set of locales necessary for the tests to run successfully: + +mkdir -p /tools/lib/locale +localedef -i de_DE -f ISO-8859-1 de_DE +localedef -i de_DE@euro -f ISO-8859-15 de_DE@euro +localedef -i en_HK -f ISO-8859-1 en_HK +localedef -i en_PH -f ISO-8859-1 en_PH +localedef -i en_US -f ISO-8859-1 en_US +localedef -i es_MX -f ISO-8859-1 es_MX +localedef -i fr_FR -f ISO-8859-1 fr_FR +localedef -i fr_FR@euro -f ISO-8859-15 fr_FR@euro +localedef -i it_IT -f ISO-8859-1 it_IT +localedef -i ja_JP -f EUC-JP ja_JP + +
+ +
+ diff --git a/LDP/guide/docbook/LFS/chapter05/kernelheaders.xml b/LDP/guide/docbook/LFS/chapter05/kernelheaders.xml new file mode 100644 index 00000000..a5f3e3a0 --- /dev/null +++ b/LDP/guide/docbook/LFS/chapter05/kernelheaders.xml @@ -0,0 +1,58 @@ + +Installing Linux-&kernel-version; headers + + +Estimated build time: &kernel-time-headers; +Estimated required disk space: &kernel-compsize-headers; + +&aa-kernel-shortdesc; +&aa-kernel-dep; + +   + + +Installation of the kernel headers + +As some packages need to refer to the kernel header files, we're going +to unpack the kernel archive now, set it up, and copy the required files to a +place where gcc can later find them. + +Prepare for the header installation with: + +make mrproper + +This ensures that the kernel tree is absolutely clean. The kernel team +recommends that this command be issued prior to each kernel +compilation. You shouldn't rely on the source tree being clean after +untarring. + +Create the include/linux/version.h file: + +make include/linux/version.h + +Create the platform-specific include/asm +symlink: + +make symlinks + +Install the platform-specific header files: + +mkdir /tools/include/asm +cp include/asm/* /tools/include/asm +cp -R include/asm-generic /tools/include + +Install the cross-platform kernel header files: + +cp -R include/linux /tools/include + +There are a few kernel header files which make use of the +autoconf.h header file. Since we do not yet configure the +kernel, we need to create this file ourselves in order to avoid compilation +failures. Create an empty autoconf.h file: + +touch /tools/include/linux/autoconf.h + + + + + diff --git a/LDP/guide/docbook/LFS/chapter05/lockingglibc.xml b/LDP/guide/docbook/LFS/chapter05/lockingglibc.xml new file mode 100644 index 00000000..eb2f1c7d --- /dev/null +++ b/LDP/guide/docbook/LFS/chapter05/lockingglibc.xml @@ -0,0 +1,97 @@ + +"Locking in" Glibc + + +Now that the temporary C libraries have been installed, we want all +the tools compiled in the rest of this chapter to be linked against these +libraries. To accomplish this, we need to adjust the linker and the compiler's +specs file. + +First install the adjusted linker by running the following from within +the binutils-build directory: + +make -C ld install + +The linker was adjusted a little while back, at the end of the first +pass of Binutils. From this point onwards everything will link only + against the libraries in /tools/lib. + +If you somehow missed the earlier warning to retain the Binutils +source and build directories from the first pass or otherwise accidentally +deleted them or just don't have access to them, don't worry, all is not lost. +Just ignore the above command. The result is a small chance of subsequent +programs linking against libraries on the host. This is not ideal, however, +it's not a major problem. The situation is corrected when we install the +second pass of Binutils later on. + +Now that the adjusted linker is installed, you have to remove the +Binutils build and source directories. + +The next thing to do is to amend our GCC specs file so that it points +to the new dynamic linker. A simple sed will accomplish this: + + + +SPECFILE=/tools/lib/gcc-lib/*/*/specs && +sed -e 's@ /lib/ld-linux.so.2@ /tools/lib/ld-linux.so.2@g' \ +    $SPECFILE > tempspecfile && +mv -f tempspecfile $SPECFILE && +unset SPECFILE + +We recommend that you cut-and-paste the above rather than try and type it +all in. Or you can edit the specs file by hand if you want to: just replace any +occurrence of "/lib/ld-linux.so.2" with "/tools/lib/ld-linux.so.2". + +If you are working on a platform where the name of the dynamic +linker is something other than ld-linux.so.2, you +must substitute ld-linux.so.2 with the +name of your platform's dynamic linker in the above commands. Refer back to + if necessary. + +Lastly, there is a possibility that some include files from the host +system have found their way into GCC's private include dir. This can happen +because of GCC's "fixincludes" process which runs as part of the GCC build. +We'll explain more about this further on in this chapter. For now, run the +following commands to eliminate this possibility: + +rm -f /tools/lib/gcc-lib/*/*/include/{pthread.h,bits/sigthread.h} + + + + +It is imperative at this point to stop and ensure that the basic +functions (compiling and linking) of the new toolchain are working as expected. +For this we are going to perform a simple sanity check: + +echo 'main(){}' > dummy.c +gcc dummy.c +readelf -l a.out | grep ': /tools' + +If everything is working correctly, there should be no errors, and the +output of the last command will be: + +
[Requesting program interpreter: /tools/lib/ld-linux.so.2]
+ +If you did not receive the output as shown above, or received no output at +all, then something is seriously wrong. You will need to investigate and retrace +your steps to find out where the problem is and correct it. There is no point in +continuing until this is done. Most likely something went wrong with the specs +file amendment above. Note especially that /tools/lib +appears as the prefix of our dynamic linker. Of course, if you are working on a +platform where the name of the dynamic linker is something other than +ld-linux.so.2, then the output will be slightly +different. + +Once you are satisfied that all is well, clean up the test files: + +rm dummy.c a.out +
+ + + + +This completes the installation of the self-contained toolchain, and it +can now be used to build the rest of the temporary tools. + +
+ diff --git a/LDP/guide/docbook/LFS/chapter05/ncurses.xml b/LDP/guide/docbook/LFS/chapter05/ncurses.xml new file mode 100644 index 00000000..658adc0e --- /dev/null +++ b/LDP/guide/docbook/LFS/chapter05/ncurses.xml @@ -0,0 +1,55 @@ + +Installing Ncurses-&ncurses-version; + + +Estimated build time: &ncurses-time-tools; +Estimated required disk space: &ncurses-compsize-tools; + +&aa-ncurses-shortdesc; +&aa-ncurses-dep; + +   + + +Installation of Ncurses + +Fix two minor things: + +patch -Np1 -i ../&ncurses-etip-patch; +patch -Np1 -i ../&ncurses-vsscanf-patch; + +The first patch corrects the etip.h header file, and +the second patch prevents some compiler warnings being issued on the use of +deprecated headers. + +Now prepare Ncurses for compilation: + +./configure --prefix=/tools --with-shared \ +    --without-debug --without-ada --enable-overwrite + +The meaning of the configure options: + + +--without-ada: This tells Ncurses not +to build its Ada bindings, even if an Ada compiler is installed on the host. +This must be done because once we enter the chroot environment, Ada will no +longer be available. + +--enable-overwrite: This tells Ncurses +to install its header files into /tools/include +instead of /tools/include/ncurses to +ensure that other packages can find the Ncurses headers successfully. + + +Compile the programs and libraries: + +make + +Then install them and their documentation: + +make install + + + + + diff --git a/LDP/guide/docbook/LFS/chapter05/perl.xml b/LDP/guide/docbook/LFS/chapter05/perl.xml new file mode 100644 index 00000000..21ec2f96 --- /dev/null +++ b/LDP/guide/docbook/LFS/chapter05/perl.xml @@ -0,0 +1,41 @@ + +Installing Perl-&perl-version; + + +Estimated build time: &perl-time-tools; +Estimated required disk space: &perl-compsize-tools; + +&aa-perl-shortdesc; +&aa-perl-dep; + +   + +Installation of Perl + +First adapt some hard-wired paths to the C library: + +patch -Np1 -i ../&perl-libc-patch; + +And make sure some static extensions get built: + +chmod u+w hints/linux.sh +echo 'static_ext="IO re Fcntl"' >> hints/linux.sh + +Now prepare Perl for compilation: + +./configure.gnu --prefix=/tools + +Compile only the required tools: + +make perl utilities + +Then copy these tools and their libraries: + +cp perl pod/pod2man /tools/bin +mkdir -p /tools/lib/perl5/&perl-version; +cp -R lib/* /tools/lib/perl5/&perl-version; + + + + + diff --git a/LDP/guide/docbook/LFS/chapter05/setting-environment.xml b/LDP/guide/docbook/LFS/chapter05/setting-environment.xml new file mode 100644 index 00000000..41390891 --- /dev/null +++ b/LDP/guide/docbook/LFS/chapter05/setting-environment.xml @@ -0,0 +1,58 @@ + +Setting up the environment + + +While logged in as user lfs, issue the +following commands to set up a good work environment: + +cat > ~/.bash_profile << "EOF" +set +h +umask 022 +LFS=/mnt/lfs +LC_ALL=POSIX +PATH=/tools/bin:$PATH +export LFS LC_ALL PATH +unset CC CXX CPP LD_LIBRARY_PATH LD_PRELOAD +EOF + +source ~/.bash_profile + +The set +h command turns off +bash's hash function. Normally hashing is a useful +feature: bash uses a hash table to remember the +full pathnames of executable files to avoid searching the PATH time and time +again to find the same executable. However, we'd like the new tools to be +used as soon as they are installed. By switching off the hash function, our +"interactive" commands (make, +patch, sed, +cp and so forth) will always use +the newest available version during the build process. + +Setting the user file-creation mask to 022 ensures that newly created +files and directories are only writable for their owner, but readable and +executable for anyone. + +The LFS variable should of course be set to the mount point you +chose. + +The LC_ALL variable controls the localization of certain programs, +making their messages follow the conventions of a specified country. If your +host system uses a version of Glibc older than 2.2.4, +having LC_ALL set to something other than "POSIX" or "C" during this chapter +may cause trouble if you exit the chroot environment and wish to return later. +By setting LC_ALL to "POSIX" (or "C", the two are equivalent) we ensure that +everything will work as expected in the chroot environment. + +We prepend /tools/bin to the standard PATH so +that, as we move along through this chapter, the tools we build will get used +during the rest of the building process. + +The CC, CXX, CPP, LD_LIBRARY_PATH and LD_PRELOAD environment variables all +have the potential to cause havoc with our Chapter 5 toolchain. We therefore +unset them to prevent any chance of this happening. + +Now, after sourcing the just-created profile, we're all set to begin +building the temporary tools that will support us in later chapters. + + + diff --git a/LDP/guide/docbook/LFS/chapter05/tcl.xml b/LDP/guide/docbook/LFS/chapter05/tcl.xml new file mode 100644 index 00000000..364be9ce --- /dev/null +++ b/LDP/guide/docbook/LFS/chapter05/tcl.xml @@ -0,0 +1,69 @@ + +Installing Tcl-&tcl-version; + + +Estimated build time: &tcl-time-tools; +Estimated required disk space: &tcl-compsize-tools; + +&aa-tcl-shortdesc; +&aa-tcl-dep; + +   + + +Installation of Tcl + +This package and the next two are only installed to be able to run the +test suites for GCC and Binutils. Installing three packages just for testing +purposes may seem like overkill, but it is very reassuring, if not essential, +to know that our most important tools are working properly. + +Prepare Tcl for compilation: + +cd unix +./configure --prefix=/tools + +Build the package: + +make + +This package has a test suite available which can perform a number of +checks to ensure it built correctly. However, the Tcl test suite in this +chapter is known to experience failures under certain host conditions that are +not fully understood. Therefore, test suite failures here are not surprising, +but are not considered critical. Should you choose to run the test suite, the +following command will do so: + +TZ=UTC make test + +The meaning of the make parameter: + + +TZ=UTC: This sets the time zone to +Coordinated Universal Time (UTC) also known as Greenwich Mean Time (GMT), but +only for the duration of the test suite run. This ensures the clock tests are +exercised correctly. More information on the TZ environment variable is +available later on in . + + +Sometimes, package test suites will give false failures. You can +consult the LFS Wiki at +to verify that these failures are normal. This applies to all tests +throughout the book. + +Install the package: + +make install + +Do not remove the +tcl&tcl-version; source directory yet, as the next package +will need its internal headers. + +Make a necessary symbolic link: + +ln -s tclsh8.4 /tools/bin/tclsh + + + + + diff --git a/LDP/guide/docbook/LFS/chapter05/toolchaintechnotes.xml b/LDP/guide/docbook/LFS/chapter05/toolchaintechnotes.xml new file mode 100644 index 00000000..5cca86e2 --- /dev/null +++ b/LDP/guide/docbook/LFS/chapter05/toolchaintechnotes.xml @@ -0,0 +1,200 @@ + +Toolchain technical notes + + +This section attempts to explain some of the rationale and technical +details behind the overall build method. It's not essential that you understand +everything here immediately. Most of it will make sense once you have performed +an actual build. Feel free to refer back here at any time. + +The overall goal of is to provide a sane, +temporary environment that we can chroot into, and from which we can produce a +clean, trouble-free build of the target LFS system in +. Along the way, we attempt to divorce ourselves +from the host system as much as possible, and in so doing build a +self-contained and self-hosted toolchain. It should be noted that the +build process has been designed in such a way so as to minimize the risks for +new readers and provide maximum educational value at the same time. In other +words, more advanced techniques could be used to build the system. + + +Before continuing, you really should be aware of the name of your working +platform, often also referred to as the target triplet. For +many folks the target triplet will be, for example: +i686-pc-linux-gnu. A simple way to determine your target +triplet is to run the config.guess script that comes with +the source for many packages. Unpack the Binutils sources and run the script: +./config.guess and note the output. + +You'll also need to be aware of the name of your platform's +dynamic linker, often also referred to as the +dynamic loader, not to be confused with the standard linker +ld that is part of Binutils. The dynamic linker is provided +by Glibc and has the job of finding and loading the shared libraries needed by a +program, preparing the program to run and then running it. For most folks, the +name of the dynamic linker will be ld-linux.so.2. On +platforms that are less prevalent, the name might be +ld.so.1 and newer 64 bit platforms might even have +something completely different. You should be able to determine the name +of your platform's dynamic linker by looking in the +/lib directory on your host system. A +surefire way is to inspect a random binary from your host system by running: +'readelf -l <name of binary> | grep interpreter' +and noting the output. The authoritative reference covering all platforms is in +the shlib-versions file in the root of the Glibc source +tree. + + +Some key technical points of how the build +method works: + + +Similar in principle to cross compiling whereby tools installed +into the same prefix work in cooperation and thus utilize a little GNU +"magic". + +Careful manipulation of the standard linker's library search +path to ensure programs are linked only against libraries we +choose. + +Careful manipulation of gcc's +specs file to tell the compiler which target dynamic +linker will be used. + + +Binutils is installed first because both GCC and Glibc perform various +feature tests on the assembler and linker during their respective runs of +./configure to determine which software features to enable +or disable. This is more important than one might first realize. An incorrectly +configured GCC or Glibc can result in a subtly broken toolchain where the impact +of such breakage might not show up until near the end of the build of a whole +distribution. Thankfully, a test suite failure will usually alert us before too +much time is wasted. + +Binutils installs its assembler and linker into two locations, +/tools/bin and +/tools/$TARGET_TRIPLET/bin. In reality, +the tools in one location are hard linked to the other. An important facet of +the linker is its library search order. Detailed information can be obtained +from ld by passing it the --verbose +flag. For example: 'ld --verbose | grep SEARCH' will +show you the current search paths and their order. You can see what files are +actually linked by ld by compiling a dummy program and +passing the --verbose switch. For example: +'gcc dummy.c -Wl,--verbose 2>&1 | grep succeeded' +will show you all the files successfully opened during the link. + +The next package installed is GCC and during its run of +./configure you'll see, for example: + +
checking what assembler to use... /tools/i686-pc-linux-gnu/bin/as +checking what linker to use... /tools/i686-pc-linux-gnu/bin/ld
+ +This is important for the reasons mentioned above. It also demonstrates +that GCC's configure script does not search the $PATH directories to find which +tools to use. However, during the actual operation of gcc +itself, the same search paths are not necessarily used. You can find out which +standard linker gcc will use by running: +'gcc -print-prog-name=ld'. +Detailed information can be obtained from gcc by passing +it the -v flag while compiling a dummy program. For +example: 'gcc -v dummy.c' will show you detailed +information about the preprocessor, compilation and assembly stages, including +gcc's include search paths and their order. + +The next package installed is Glibc. The most important considerations for +building Glibc are the compiler, binary tools and kernel headers. The compiler +is generally no problem as Glibc will always use the gcc +found in a $PATH directory. The binary tools and kernel headers can be a little +more troublesome. Therefore we take no risks and use the available configure +switches to enforce the correct selections. After the run of +./configure you can check the contents of the +config.make file in the +glibc-build directory for all the +important details. You'll note some interesting items like the use of +CC="gcc -B/tools/bin/" to control which binary tools are +used, and also the use of the -nostdinc and +-isystem flags to control the compiler's include search +path. These items help to highlight an important aspect of the Glibc package: +it is very self-sufficient in terms of its build machinery and generally does +not rely on toolchain defaults. + +After the Glibc installation, we make some adjustments to ensure that +searching and linking take place only within our /tools +prefix. We install an adjusted ld, which has a hard-wired +search path limited to /tools/lib. Then +we amend gcc's specs file to point to our new dynamic +linker in /tools/lib. This last step is +vital to the whole process. As mentioned above, a +hard-wired path to a dynamic linker is embedded into every ELF shared +executable. You can inspect this by running: +'readelf -l <name of binary> | grep interpreter'. +By amending gcc's specs file, we are ensuring that every +program compiled from here through the end of will +use our new dynamic linker in +/tools/lib. + +The need to use the new dynamic linker is also the reason why we apply the +Specs patch for the second pass of GCC. Failure to do so will result in the GCC +programs themselves having the name of the dynamic linker from the host system's +/lib directory embedded into them, which +would defeat our goal of getting away from the host. + +During the second pass of Binutils, we are able to utilize the +--with-lib-path configure switch to control +ld's library search path. From this point onwards, the +core toolchain is self-contained and self-hosted. The remainder of the + packages all build against the new Glibc in +/tools and all is well. + +Upon entering the chroot environment in , the +first major package we install is Glibc, due to its self-sufficient nature that +we mentioned above. Once this Glibc is installed into +/usr, we perform a quick changeover of +the toolchain defaults, then proceed for real in building the rest of the +target LFS system. + + +Notes on static linking + +Most programs have to perform, beside their specific task, many rather +common and sometimes trivial operations. These include allocating memory, +searching directories, reading and writing files, string handling, pattern +matching, arithmetic and many other tasks. Instead of obliging each program to +reinvent the wheel, the GNU system provides all these basic functions in +ready-made libraries. The major library on any Linux system is +Glibc. + +There are two primary ways of linking the functions from a library to a +program that uses them: statically or dynamically. When a program is linked +statically, the code of the used functions is included in the executable, +resulting in a rather bulky program. When a program is dynamically linked, what +is included is a reference to the dynamic linker, the name of the library, and +the name of the function, resulting in a much smaller executable. (A third way +is to use the programming interface of the dynamic linker. See the +dlopen man page for more information.) + +Dynamic linking is the default on Linux and has three major advantages +over static linking. First, you need only one copy of the executable library +code on your hard disk, instead of having many copies of the same code included +into a whole bunch of programs -- thus saving disk space. Second, when several +programs use the same library function at the same time, only one copy of the +function's code is required in core -- thus saving memory space. Third, when a +library function gets a bug fixed or is otherwise improved, you only need to +recompile this one library, instead of having to recompile all the programs that +make use of the improved function. + +If dynamic linking has several advantages, why then do we statically link +the first two packages in this chapter? The reasons are threefold: historical, +educational, and technical. Historical, because earlier versions of LFS +statically linked every program in this chapter. Educational, because knowing +the difference is useful. Technical, because we gain an element of independence +from the host in doing so, meaning that those programs can be used +independently of the host system. However, it's worth noting that an overall +successful LFS build can still be achieved when the first two packages are +built dynamically. + + + +
+ diff --git a/LDP/guide/docbook/LFS/chapter06/adjustingtoolchain.xml b/LDP/guide/docbook/LFS/chapter06/adjustingtoolchain.xml new file mode 100644 index 00000000..a5606ad5 --- /dev/null +++ b/LDP/guide/docbook/LFS/chapter06/adjustingtoolchain.xml @@ -0,0 +1,96 @@ + +Re-adjusting the toolchain + + +Now that the new C libraries have been installed, it's time to re-adjust +our toolchain. We'll adjust it so that it will link any newly compiled program +against the new C libraries. Basically, this is the reverse of what we did +in the "locking in" stage in the beginning of the previous chapter. + +The first thing to do is to adjust the linker. For this we retained the +source and build directories from the second pass over Binutils. Install the +adjusted linker by running the following from within the +binutils-build directory: + +make -C ld INSTALL=/tools/bin/install install + +If you somehow missed the earlier warning to retain the Binutils +source and build directories from the second pass in Chapter 5 or otherwise +accidentally deleted them or just don't have access to them, don't worry, all is +not lost. Just ignore the above command. The result will be that the next +package, Binutils, will link against the Glibc libraries in +/tools rather than +/usr. This is not ideal, however, our +testing has shown that the resulting Binutils program binaries should be +identical. + +From now on every compiled program will link only +against the libraries in /usr/lib and +/lib. The extra +INSTALL=/tools/bin/install is needed because the Makefile +created during the second pass still contains the reference to +/usr/bin/install, which we obviously haven't installed yet. +Some host distributions contain a ginstall +symbolic link which takes precedence in the Makefile and thus can cause a +problem here. The above command takes care of this also. + +You can now remove the Binutils source and build directories. + +The next thing to do is to amend our GCC specs file so that it points +to the new dynamic linker. Just like earlier on, we use a sed to accomplish +this: + + + +SPECFILE=/tools/lib/gcc-lib/*/*/specs && +sed -e 's@ /tools/lib/ld-linux.so.2@ /lib/ld-linux.so.2@g' \ +    $SPECFILE > newspecfile && +mv -f newspecfile $SPECFILE && +unset SPECFILE + +Again, cutting and pasting the above is recommended. And just like +before, it is a good idea to check the specs file to ensure the intended +changes were actually made. + +If you are working on a platform where the name of the dynamic +linker is something other than ld-linux.so.2, you +must substitute ld-linux.so.2 with the +name of your platform's dynamic linker in the above commands. Refer back to + if necessary. + + + + +It is imperative at this point to stop and ensure that the +basic functions (compiling and linking) of the adjusted toolchain are working +as expected. For this we are going to perform a simple sanity check: + +echo 'main(){}' > dummy.c +gcc dummy.c +readelf -l a.out | grep ': /lib' + +If everything is working correctly, there should be no errors, and the +output of the last command will be: + +
[Requesting program interpreter: /lib/ld-linux.so.2]
+ +If you did not receive the output as shown above, or received no output at +all, then something is seriously wrong. You will need to investigate and retrace +your steps to find out where the problem is and correct it. There is no point in +continuing until this is done. Most likely something went wrong with the specs +file amendment above. Note especially that /lib now appears +as the prefix of our dynamic linker. Of course, if you are working on a platform +where the name of the dynamic linker is something other than +ld-linux.so.2, then the output will be slightly +different. + +Once you are satisfied that all is well, clean up the test files: + +rm dummy.c a.out +
+ + + + +
+ diff --git a/LDP/guide/docbook/LFS/chapter06/coreutils.xml b/LDP/guide/docbook/LFS/chapter06/coreutils.xml new file mode 100644 index 00000000..7eeaa69a --- /dev/null +++ b/LDP/guide/docbook/LFS/chapter06/coreutils.xml @@ -0,0 +1,90 @@ + +Installing Coreutils-&coreutils-version; + + +Estimated build time: &coreutils-time; +Estimated required disk space: &coreutils-compsize; + +&aa-coreutils-shortdesc; +&aa-coreutils-dep; + +   + + +Installation of Coreutils + +Normally the functionality of uname is somewhat +broken, in that the -p switch always returns "unknown". +The following patch fixes this behaviour for Intel architectures: + +patch -Np1 -i ../&coreutils-uname-patch; + +We do not want Coreutils to install its version of the +hostname program, because it is inferior to the version +provided by Net-tools. Prevent its installation by applying a patch: + +patch -Np1 -i ../&coreutils-hostname-patch; + +Now prepare Coreutils for compilation: + +./configure --prefix=/usr + +Compile the package: + +make + +The su program from Coreutils wasn't installed in +Chapter 5 because it needed root privilege to do so. We're +going to need it in a few moments for the test suite. Therefore we work around +the problem by installing it now: + +make install-root + +This package has a test suite available which can perform a number of +checks to ensure it built correctly. However, this particular test suite +makes some assumptions with regards to the presence of non-root users and +groups that don't apply this early into the LFS build. We therefore create +a dummy system user and two dummy groups to allow the tests to run +properly. Should you choose not to run the test suite, skip down to +"Install the package". The following commands will prepare us for the test +suite. Create two dummy groups and a dummy user name: + +echo "dummy1:x:1000" >> /etc/group +echo "dummy2:x:1001:dummy" >> /etc/group +echo "dummy:x:1000:1000:::/bin/bash" >> /etc/passwd + +Some tests are meant to run as root: + +make check-root + +The remainder of the tests are run as the dummy +user: + +su dummy -c "make RUN_EXPENSIVE_TESTS=yes check" + +Remove the dummy groups and user name: + +sed -i.bak '/dummy/d' /etc/passwd /etc/group + +Install the package: + +make install + +And move some programs to their proper locations: + +mv /usr/bin/{basename,cat,chgrp,chmod,chown,cp,dd,df} /bin +mv /usr/bin/{dir,dircolors,du,date,echo,false,head} /bin +mv /usr/bin/{install,ln,ls,mkdir,mkfifo,mknod,mv,pwd} /bin +mv /usr/bin/{rm,rmdir,shred,sync,sleep,stty,su,test} /bin +mv /usr/bin/{touch,true,uname,vdir} /bin +mv /usr/bin/chroot /usr/sbin + +Finally, create a few necessary symlinks: + +ln -s test /bin/[ +ln -s ../../bin/install /usr/bin + + + + + diff --git a/LDP/guide/docbook/LFS/chapter06/gcc-2953.xml b/LDP/guide/docbook/LFS/chapter06/gcc-2953.xml new file mode 100644 index 00000000..5071ad4c --- /dev/null +++ b/LDP/guide/docbook/LFS/chapter06/gcc-2953.xml @@ -0,0 +1,61 @@ + +Installing GCC-2.95.3 + + +Estimated build time: &gcc-2953-time; +Estimated required disk space: &gcc-2953-compsize; + + +   + + +Installation of GCC + +This package is known to behave badly when you have changed its +default optimization flags (including the -march and -mcpu options). +Therefore, if you have defined any environment variables that override +default optimizations, such as CFLAGS and CXXFLAGS, we recommend unsetting +or modifying them when building GCC. + +This is an older release of GCC which we are going to install for the +purpose of compiling the Linux kernel in . This +version is recommended +by the kernel developers when you need absolute stability. Later versions of +GCC have not received as much testing for Linux kernel compilation. Using a +later version is likely to work, however, we recommend adhering to the kernel +developer's advice and using the version here to compile your kernel. + +We don't install the C++ compiler or libraries here. However, there +may be reasons why you would want to install them. More information can be found +at . + +We'll install this older release of GCC into the non-standard prefix of +/opt so as to avoid interfering with +the system GCC already installed in /usr + . + +Apply the patches and make a small adjustment: + +patch -Np1 -i ../&gcc-2953-patch; +patch -Np1 -i ../&gcc-2953-no-fixinc-patch; +patch -Np1 -i ../&gcc-2953-returntype-fix-patch; +echo timestamp > gcc/cstamp-h.in + +The GCC documentation recommends building GCC outside of the source +directory in a dedicated build directory: + +mkdir ../gcc-2-build +cd ../gcc-2-build + +Compile and install the compiler: + +../gcc-2.95.3/configure --prefix=/opt/gcc-2.95.3 \ +    --enable-shared --enable-languages=c \ +    --enable-threads=posix +make bootstrap +make install + + + + + diff --git a/LDP/guide/docbook/LFS/chapter06/grub.xml b/LDP/guide/docbook/LFS/chapter06/grub.xml new file mode 100644 index 00000000..929e2310 --- /dev/null +++ b/LDP/guide/docbook/LFS/chapter06/grub.xml @@ -0,0 +1,53 @@ + +Installing Grub-&grub-version; + + +Estimated build time: &grub-time; +Estimated required disk space: &grub-compsize; + +&aa-grub-shortdesc; +&aa-grub-dep; + +   + + +Installation of Grub + +This package is known to behave badly when you have changed its default +optimization flags (including the -march and -mcpu options). Therefore, if you +have defined any environment variables that override default optimizations, +such as CFLAGS and CXXFLAGS, we recommend unsetting them when building +Grub. + +First fix a compilation problem with GCC-&gcc-version;: + +patch -Np1 -i ../&grub-patch; + +Now prepare Grub for compilation: + +./configure --prefix=/usr + +Compile the package: + +make + +And install it: + +make install +mkdir /boot/grub +cp /usr/share/grub/i386-pc/stage{1,2} /boot/grub + +Replace i386-pc with whatever +directory is appropriate for your hardware. + +The i386-pc directory also +contains a number of *stage1_5 files, different ones +for different filesystems. Have a look at the ones available and copy the +appropriate ones to the /boot/grub +directory. Most people will copy the e2fs_stage1_5 +and/or reiserfs_stage1_5 files. + + + + + diff --git a/LDP/guide/docbook/LFS/chapter06/inetutils.xml b/LDP/guide/docbook/LFS/chapter06/inetutils.xml new file mode 100644 index 00000000..fd448abd --- /dev/null +++ b/LDP/guide/docbook/LFS/chapter06/inetutils.xml @@ -0,0 +1,63 @@ + +Installing Inetutils-&inetutils-version; + + +Estimated build time: &inetutils-time; +Estimated required disk space: &inetutils-compsize; + +&aa-inetutils-shortdesc; +&aa-inetutils-dep; + +   + + +Installation of Inetutils + +Prepare Inetutils for compilation: + +./configure --prefix=/usr --disable-syslogd \ +    --libexecdir=/usr/sbin --disable-logger \ +    --sysconfdir=/etc --localstatedir=/var \ +    --disable-whois --disable-servers + +The meaning of the configure options: + + +--disable-syslogd: This option +prevents inetutils from installing the System Log Daemon, which is +installed with the Sysklogd package. + +--disable-logger: This option +prevents inetutils from installing the logger program, which is used by +scripts to pass messages to the System Log Daemon. We do not install it +because Util-linux installs a better version later. + +--disable-whois: This option disables +the building of the inetutils whois client, which is woefully out of date. +Instructions for a better whois client are in the BLFS book. + +--disable-servers: This disables the +installation of the various network servers included as part of the Inetutils +package. These servers are deemed not appropriate in a basic LFS system. Some +are insecure by nature and are only considered safe on trusted networks. More +information can be found at +. Note that better +replacements are available for many of these servers. + + +Compile the package: + +make + +Install it: + +make install + +And move the ping program to its proper place: + +mv /usr/bin/ping /bin + + + + + diff --git a/LDP/guide/docbook/LFS/chapter06/lfs-utils.xml b/LDP/guide/docbook/LFS/chapter06/lfs-utils.xml new file mode 100644 index 00000000..5119b480 --- /dev/null +++ b/LDP/guide/docbook/LFS/chapter06/lfs-utils.xml @@ -0,0 +1,36 @@ + +Installing Lfs-Utils-&lfs-utils-version; + + +Estimated build time: &lfs-utils-time; +Estimated required disk space: &lfs-utils-compsize; + +&aa-lfs-utils-shortdesc; +&aa-lfs-utils-dep; + +   + + +Installation of Lfs-Utils + +Compile the package: + +make + +And install it: + +make install + +Now copy two supporting files included in the Lfs-Utils tarball to +their destination: + +cp etc/{services,protocols} /etc + +The /etc/services file is used to resolve service +numbers to human-readable names, and the /etc/protocols +does the same for protocol numbers. + + + + + diff --git a/LDP/guide/docbook/LFS/chapter06/revisedchroot.xml b/LDP/guide/docbook/LFS/chapter06/revisedchroot.xml new file mode 100644 index 00000000..d824c2d1 --- /dev/null +++ b/LDP/guide/docbook/LFS/chapter06/revisedchroot.xml @@ -0,0 +1,19 @@ + +Revised chroot command + + +From now on when you exit the chroot environment and wish to re-enter +it, you should run the following modified chroot command: + +chroot $LFS /usr/bin/env -i \ +    HOME=/root TERM=$TERM PS1='\u:\w\$ ' \ +    PATH=/bin:/usr/bin:/sbin:/usr/sbin \ +    /bin/bash --login + +The reason being there is no longer any need to use programs from the +/tools directory. However, we don't +want to remove the /tools directory +just yet. There is still some use for it towards the end of the book. + + + diff --git a/LDP/guide/docbook/LFS/chapter08/grub.xml b/LDP/guide/docbook/LFS/chapter08/grub.xml new file mode 100644 index 00000000..6ed20b32 --- /dev/null +++ b/LDP/guide/docbook/LFS/chapter08/grub.xml @@ -0,0 +1,118 @@ + +Making the LFS system bootable + + +Your shiny new LFS system is almost complete. One of the last things to +do is ensure you can boot it. The instructions below apply only to computers +of IA-32 architecture, i.e. mainstream PC's. Information on "boot loading" for +other architectures should be available in the usual resource specific +locations for those architectures. + +Boot loading can be a complex area. First, a few cautionary words. You +really should be familiar with your current boot loader and any other +operating systems present on your hard drive(s) that you might wish to keep +bootable. Please make sure that you have an emergency boot disk ready, so that +you can rescue your computer if, by any chance, your computer becomes unusable +(unbootable). + +Earlier, we compiled and installed the Grub boot loader software in +preparation for this step. The procedure involves writing some special Grub +files to specific locations on the hard drive. Before we get to that, we +highly recommend that you create a Grub boot floppy diskette just in case. +Insert a blank floppy diskette and run the following commands: + +dd if=/boot/grub/stage1 of=/dev/fd0 bs=512 count=1 +dd if=/boot/grub/stage2 of=/dev/fd0 bs=512 seek=1 + +Remove the diskette and store it somewhere safe. Now we'll run the +grub shell: + +grub + +Grub uses its own naming structure for drives and partitions, in the form +of (hdn,m), where n is the hard drive number, and +m the partition number, both starting from zero. This +means, for instance, that partition hda1 is (hd0,0) to +Grub, and hdb2 is (hd1,1). In contrast to Linux, Grub +doesn't consider CD-ROM drives to be hard drives, so if you have a CD on +hdb, for example, and a second hard drive on +hdc, that second hard drive would still be (hd1). + +Using the above information, determine the appropriate designator for +your root partition. For the following example, we'll assume your root +partition is hda4. + +First, tell Grub where to search for its stage{1,2} +files -- you can use Tab everywhere to make Grub show the alternatives: + +root (hd0,3) + + + + +The following command will overwrite your current boot loader. +Don't run the command if this is not what you want. For example, you may be +using a third party boot manager to manage your MBR (Master Boot Record). In +this scenario, it would probably make more sense to install Grub into the +"boot sector" of the LFS partition, in which case the command would become: +setup (hd0,3). + + + + +Then tell it to install itself into the MBR (Master Boot Record) of +hda: + +setup (hd0) + +If all is well, Grub will have reported finding its files in +/boot/grub. That's all there is to it: + +quit + +Now we need to create a "menu list" file, defining Grub's boot +menu: + +cat > /boot/grub/menu.lst << "EOF" +# Begin /boot/grub/menu.lst + +# By default boot the first menu entry. +default 0 + +# Allow 30 seconds before booting the default. +timeout 30 + +# Use prettier colors. +color green/black light-green/black + +# The first entry is for LFS. +title LFS &milestone; +root (hd0,3) +kernel /boot/lfskernel root=/dev/hda4 ro +EOF + +You may want to add an entry for your host distribution. It might look +like this: + +cat >> /boot/grub/menu.lst << "EOF" +title Red Hat +root (hd0,2) +kernel /boot/kernel-2.4.20 root=/dev/hda3 ro +initrd /boot/initrd-2.4.20 +EOF + +Also, if you happen to dual-boot Windows, the following entry should +allow booting it: + +cat >> /boot/grub/menu.lst << "EOF" +title Windows +rootnoverify (hd0,0) +chainloader +1 +EOF + +If info grub doesn't tell you all you want to +know, you can find more information regarding Grub on its website, located at: +. + + + diff --git a/LDP/guide/docbook/LFS/chapter08/kernel-inst.xml b/LDP/guide/docbook/LFS/chapter08/kernel-inst.xml new file mode 100644 index 00000000..6ac155e5 --- /dev/null +++ b/LDP/guide/docbook/LFS/chapter08/kernel-inst.xml @@ -0,0 +1,91 @@ +   + + +Installation of the kernel + +Building the kernel involves a few steps: configuration, +compilation, and installation. If you don't like the way this +book configures the kernel, view the README +file in the kernel source tree for alternative methods. + +Prepare for compilation by running the following command: + +make mrproper + +This ensures that the kernel tree is absolutely clean. The kernel +team recommends that this command be issued prior to +each kernel compilation. You shouldn't rely +on the source tree being clean after untarring. + +Configure the kernel via a menu-driven interface: + +make menuconfig + +make oldconfig may be more appropriate +in some situations. See the README file for +more information. + +If you wish, you may skip kernel configuration by simply copying the +kernel config file, .config, from your host system +(assuming it is available) to the unpacked +linux-&kernel-version; directory. +However, we don't recommend this option. You're much better off exploring all +the configuration menus and creating your own kernel configuration from +scratch. + +For POSIX shared memory support, ensure that the kernel config option +"Virtual memory file system support" is enabled. It resides within the "File +systems" menu and is normally enabled by default. + +Verify dependencies and create dependency information files: + +make CC=/opt/gcc-2.95.3/bin/gcc dep + +Compile the kernel image: + +make CC=/opt/gcc-2.95.3/bin/gcc bzImage + +Compile the drivers which have been configured as modules: + +make CC=/opt/gcc-2.95.3/bin/gcc modules + +If you intend to use kernel modules, you will need an +/etc/modules.conf file. Information pertaining +to modules and to kernel configuration in general may be found in the +kernel documentation, which is found in the +linux-&kernel-version;/Documentation directory. The +modules.conf man page and the kernel HOWTO at + may also be of +interest to you. + +Install the modules: + +make CC=/opt/gcc-2.95.3/bin/gcc modules_install + +As nothing is complete without documentation, build the manual pages +that come with the kernel: + +make mandocs + +And install these pages: + +cp -a Documentation/man /usr/share/man/man9 + +Kernel compilation has finished, but some of the files created +still reside in the source tree. To complete the installation, two +files need to be copied to the /boot +directory. + +The path to the kernel file may vary depending on the platform +you're using. Issue the following command to install the kernel: + +cp arch/i386/boot/bzImage /boot/lfskernel + +System.map is a symbol file for the kernel. +It maps the function entrypoints of every function in the kernel API, +as well as the addresses of the kernel data structures for the running +kernel. Issue the following command to install the map file: + +cp System.map /boot + + diff --git a/LDP/guide/docbook/LFS/chapter09/whatnow.xml b/LDP/guide/docbook/LFS/chapter09/whatnow.xml new file mode 100644 index 00000000..e6e044f2 --- /dev/null +++ b/LDP/guide/docbook/LFS/chapter09/whatnow.xml @@ -0,0 +1,40 @@ + +What now? + + +We thank you for reading the LFS Book and hope that you've found this +book useful and worth your time. + +Now that you have finished installing your LFS system, you may be +wondering "What now?". In order to answer that question, we have composed a +list of resources for you. + + +Beyond Linux From Scratch + +The Beyond Linux From Scratch book covers installation procedures +for a wide range of software beyond the scope of the LFS Book. The BLFS +project can be found at . + +LFS Hints + +The LFS Hints are a collection of small, educational documents +submitted by volunteers in the LFS community. The Hints are available at +. + +Mailing lists + +There are several LFS mailing lists you may subscribe to if you are +in need of help. See for more +information. + +The Linux Documentation Project + +The goal of the Linux Documentation Project is to collaborate in +all of the issues of Linux documentation. The LDP features a large collection +of HOWTOs, Guides and man pages; it may be found at +. + + + + diff --git a/LDP/guide/docbook/LFS/entities/autoconf.ent b/LDP/guide/docbook/LFS/entities/autoconf.ent new file mode 100644 index 00000000..23a6553b --- /dev/null +++ b/LDP/guide/docbook/LFS/entities/autoconf.ent @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/LDP/guide/docbook/LFS/entities/automake.ent b/LDP/guide/docbook/LFS/entities/automake.ent new file mode 100644 index 00000000..bec4ae3a --- /dev/null +++ b/LDP/guide/docbook/LFS/entities/automake.ent @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/LDP/guide/docbook/LFS/entities/bash.ent b/LDP/guide/docbook/LFS/entities/bash.ent new file mode 100644 index 00000000..068660a7 --- /dev/null +++ b/LDP/guide/docbook/LFS/entities/bash.ent @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/LDP/guide/docbook/LFS/entities/binutils.ent b/LDP/guide/docbook/LFS/entities/binutils.ent new file mode 100644 index 00000000..0af339bc --- /dev/null +++ b/LDP/guide/docbook/LFS/entities/binutils.ent @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/LDP/guide/docbook/LFS/entities/bison.ent b/LDP/guide/docbook/LFS/entities/bison.ent new file mode 100644 index 00000000..c16adcfa --- /dev/null +++ b/LDP/guide/docbook/LFS/entities/bison.ent @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/LDP/guide/docbook/LFS/entities/book-structure.xml b/LDP/guide/docbook/LFS/entities/book-structure.xml new file mode 100644 index 00000000..1b9a3181 --- /dev/null +++ b/LDP/guide/docbook/LFS/entities/book-structure.xml @@ -0,0 +1,75 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/LDP/guide/docbook/LFS/entities/bootscripts.ent b/LDP/guide/docbook/LFS/entities/bootscripts.ent new file mode 100644 index 00000000..0bad9818 --- /dev/null +++ b/LDP/guide/docbook/LFS/entities/bootscripts.ent @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/LDP/guide/docbook/LFS/entities/bzip2.ent b/LDP/guide/docbook/LFS/entities/bzip2.ent new file mode 100644 index 00000000..8c825c27 --- /dev/null +++ b/LDP/guide/docbook/LFS/entities/bzip2.ent @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/LDP/guide/docbook/LFS/entities/coreutils.ent b/LDP/guide/docbook/LFS/entities/coreutils.ent new file mode 100644 index 00000000..43baa2f3 --- /dev/null +++ b/LDP/guide/docbook/LFS/entities/coreutils.ent @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/LDP/guide/docbook/LFS/entities/dejagnu.ent b/LDP/guide/docbook/LFS/entities/dejagnu.ent new file mode 100644 index 00000000..832f5490 --- /dev/null +++ b/LDP/guide/docbook/LFS/entities/dejagnu.ent @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/LDP/guide/docbook/LFS/entities/diffutils.ent b/LDP/guide/docbook/LFS/entities/diffutils.ent new file mode 100644 index 00000000..0b30a11f --- /dev/null +++ b/LDP/guide/docbook/LFS/entities/diffutils.ent @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/LDP/guide/docbook/LFS/entities/e2fsprogs.ent b/LDP/guide/docbook/LFS/entities/e2fsprogs.ent new file mode 100644 index 00000000..6b4b4bc9 --- /dev/null +++ b/LDP/guide/docbook/LFS/entities/e2fsprogs.ent @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/LDP/guide/docbook/LFS/entities/ed.ent b/LDP/guide/docbook/LFS/entities/ed.ent new file mode 100644 index 00000000..72709b68 --- /dev/null +++ b/LDP/guide/docbook/LFS/entities/ed.ent @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/LDP/guide/docbook/LFS/entities/expect.ent b/LDP/guide/docbook/LFS/entities/expect.ent new file mode 100644 index 00000000..58a694ac --- /dev/null +++ b/LDP/guide/docbook/LFS/entities/expect.ent @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/LDP/guide/docbook/LFS/entities/file.ent b/LDP/guide/docbook/LFS/entities/file.ent new file mode 100644 index 00000000..efc4594e --- /dev/null +++ b/LDP/guide/docbook/LFS/entities/file.ent @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/LDP/guide/docbook/LFS/entities/findutils.ent b/LDP/guide/docbook/LFS/entities/findutils.ent new file mode 100644 index 00000000..411b1ffe --- /dev/null +++ b/LDP/guide/docbook/LFS/entities/findutils.ent @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/LDP/guide/docbook/LFS/entities/flex.ent b/LDP/guide/docbook/LFS/entities/flex.ent new file mode 100644 index 00000000..2abc23e4 --- /dev/null +++ b/LDP/guide/docbook/LFS/entities/flex.ent @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/LDP/guide/docbook/LFS/entities/gawk.ent b/LDP/guide/docbook/LFS/entities/gawk.ent new file mode 100644 index 00000000..8a653aee --- /dev/null +++ b/LDP/guide/docbook/LFS/entities/gawk.ent @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/LDP/guide/docbook/LFS/entities/gcc-2953.ent b/LDP/guide/docbook/LFS/entities/gcc-2953.ent new file mode 100644 index 00000000..89e28da7 --- /dev/null +++ b/LDP/guide/docbook/LFS/entities/gcc-2953.ent @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/LDP/guide/docbook/LFS/entities/gcc.ent b/LDP/guide/docbook/LFS/entities/gcc.ent new file mode 100644 index 00000000..8021bd1d --- /dev/null +++ b/LDP/guide/docbook/LFS/entities/gcc.ent @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/LDP/guide/docbook/LFS/entities/gettext.ent b/LDP/guide/docbook/LFS/entities/gettext.ent new file mode 100644 index 00000000..ae3b92d8 --- /dev/null +++ b/LDP/guide/docbook/LFS/entities/gettext.ent @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/LDP/guide/docbook/LFS/entities/glibc.ent b/LDP/guide/docbook/LFS/entities/glibc.ent new file mode 100644 index 00000000..022383b5 --- /dev/null +++ b/LDP/guide/docbook/LFS/entities/glibc.ent @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/LDP/guide/docbook/LFS/entities/grep.ent b/LDP/guide/docbook/LFS/entities/grep.ent new file mode 100644 index 00000000..4d1ab2e5 --- /dev/null +++ b/LDP/guide/docbook/LFS/entities/grep.ent @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/LDP/guide/docbook/LFS/entities/groff.ent b/LDP/guide/docbook/LFS/entities/groff.ent new file mode 100644 index 00000000..fb3ce674 --- /dev/null +++ b/LDP/guide/docbook/LFS/entities/groff.ent @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/LDP/guide/docbook/LFS/entities/grub.ent b/LDP/guide/docbook/LFS/entities/grub.ent new file mode 100644 index 00000000..5cfa265e --- /dev/null +++ b/LDP/guide/docbook/LFS/entities/grub.ent @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/LDP/guide/docbook/LFS/entities/gzip.ent b/LDP/guide/docbook/LFS/entities/gzip.ent new file mode 100644 index 00000000..f5ba7d68 --- /dev/null +++ b/LDP/guide/docbook/LFS/entities/gzip.ent @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/LDP/guide/docbook/LFS/entities/inetutils.ent b/LDP/guide/docbook/LFS/entities/inetutils.ent new file mode 100644 index 00000000..249b133c --- /dev/null +++ b/LDP/guide/docbook/LFS/entities/inetutils.ent @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/LDP/guide/docbook/LFS/entities/kbd.ent b/LDP/guide/docbook/LFS/entities/kbd.ent new file mode 100644 index 00000000..33dd8a3c --- /dev/null +++ b/LDP/guide/docbook/LFS/entities/kbd.ent @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/LDP/guide/docbook/LFS/entities/kernel.ent b/LDP/guide/docbook/LFS/entities/kernel.ent new file mode 100644 index 00000000..50aa7c99 --- /dev/null +++ b/LDP/guide/docbook/LFS/entities/kernel.ent @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/LDP/guide/docbook/LFS/entities/less.ent b/LDP/guide/docbook/LFS/entities/less.ent new file mode 100644 index 00000000..eca60260 --- /dev/null +++ b/LDP/guide/docbook/LFS/entities/less.ent @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/LDP/guide/docbook/LFS/entities/lfs-utils.ent b/LDP/guide/docbook/LFS/entities/lfs-utils.ent new file mode 100644 index 00000000..15892a33 --- /dev/null +++ b/LDP/guide/docbook/LFS/entities/lfs-utils.ent @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/LDP/guide/docbook/LFS/entities/libtool.ent b/LDP/guide/docbook/LFS/entities/libtool.ent new file mode 100644 index 00000000..da5b0949 --- /dev/null +++ b/LDP/guide/docbook/LFS/entities/libtool.ent @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/LDP/guide/docbook/LFS/entities/m4.ent b/LDP/guide/docbook/LFS/entities/m4.ent new file mode 100644 index 00000000..2987fbd6 --- /dev/null +++ b/LDP/guide/docbook/LFS/entities/m4.ent @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/LDP/guide/docbook/LFS/entities/make.ent b/LDP/guide/docbook/LFS/entities/make.ent new file mode 100644 index 00000000..ed3beb5c --- /dev/null +++ b/LDP/guide/docbook/LFS/entities/make.ent @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/LDP/guide/docbook/LFS/entities/makedev.ent b/LDP/guide/docbook/LFS/entities/makedev.ent new file mode 100644 index 00000000..cfc1e472 --- /dev/null +++ b/LDP/guide/docbook/LFS/entities/makedev.ent @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/LDP/guide/docbook/LFS/entities/man.ent b/LDP/guide/docbook/LFS/entities/man.ent new file mode 100644 index 00000000..c5b0b6a5 --- /dev/null +++ b/LDP/guide/docbook/LFS/entities/man.ent @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/LDP/guide/docbook/LFS/entities/manpages.ent b/LDP/guide/docbook/LFS/entities/manpages.ent new file mode 100644 index 00000000..0a047297 --- /dev/null +++ b/LDP/guide/docbook/LFS/entities/manpages.ent @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/LDP/guide/docbook/LFS/entities/modutils.ent b/LDP/guide/docbook/LFS/entities/modutils.ent new file mode 100644 index 00000000..bb8b6668 --- /dev/null +++ b/LDP/guide/docbook/LFS/entities/modutils.ent @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/LDP/guide/docbook/LFS/entities/ncurses.ent b/LDP/guide/docbook/LFS/entities/ncurses.ent new file mode 100644 index 00000000..03a35f21 --- /dev/null +++ b/LDP/guide/docbook/LFS/entities/ncurses.ent @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/LDP/guide/docbook/LFS/entities/nettools.ent b/LDP/guide/docbook/LFS/entities/nettools.ent new file mode 100644 index 00000000..71184dc1 --- /dev/null +++ b/LDP/guide/docbook/LFS/entities/nettools.ent @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/LDP/guide/docbook/LFS/entities/patch.ent b/LDP/guide/docbook/LFS/entities/patch.ent new file mode 100644 index 00000000..5957c944 --- /dev/null +++ b/LDP/guide/docbook/LFS/entities/patch.ent @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/LDP/guide/docbook/LFS/entities/perl.ent b/LDP/guide/docbook/LFS/entities/perl.ent new file mode 100644 index 00000000..8b650667 --- /dev/null +++ b/LDP/guide/docbook/LFS/entities/perl.ent @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/LDP/guide/docbook/LFS/entities/procinfo.ent b/LDP/guide/docbook/LFS/entities/procinfo.ent new file mode 100644 index 00000000..b6a8f0ed --- /dev/null +++ b/LDP/guide/docbook/LFS/entities/procinfo.ent @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/LDP/guide/docbook/LFS/entities/procps.ent b/LDP/guide/docbook/LFS/entities/procps.ent new file mode 100644 index 00000000..7983052e --- /dev/null +++ b/LDP/guide/docbook/LFS/entities/procps.ent @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/LDP/guide/docbook/LFS/entities/psmisc.ent b/LDP/guide/docbook/LFS/entities/psmisc.ent new file mode 100644 index 00000000..6909c305 --- /dev/null +++ b/LDP/guide/docbook/LFS/entities/psmisc.ent @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/LDP/guide/docbook/LFS/entities/sed.ent b/LDP/guide/docbook/LFS/entities/sed.ent new file mode 100644 index 00000000..379cf2f1 --- /dev/null +++ b/LDP/guide/docbook/LFS/entities/sed.ent @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/LDP/guide/docbook/LFS/entities/shadow.ent b/LDP/guide/docbook/LFS/entities/shadow.ent new file mode 100644 index 00000000..987a1cd1 --- /dev/null +++ b/LDP/guide/docbook/LFS/entities/shadow.ent @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/LDP/guide/docbook/LFS/entities/sysklogd.ent b/LDP/guide/docbook/LFS/entities/sysklogd.ent new file mode 100644 index 00000000..060a1088 --- /dev/null +++ b/LDP/guide/docbook/LFS/entities/sysklogd.ent @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/LDP/guide/docbook/LFS/entities/sysvinit.ent b/LDP/guide/docbook/LFS/entities/sysvinit.ent new file mode 100644 index 00000000..5879da77 --- /dev/null +++ b/LDP/guide/docbook/LFS/entities/sysvinit.ent @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/LDP/guide/docbook/LFS/entities/tar.ent b/LDP/guide/docbook/LFS/entities/tar.ent new file mode 100644 index 00000000..aeaea07b --- /dev/null +++ b/LDP/guide/docbook/LFS/entities/tar.ent @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/LDP/guide/docbook/LFS/entities/tcl.ent b/LDP/guide/docbook/LFS/entities/tcl.ent new file mode 100644 index 00000000..8d93dd6f --- /dev/null +++ b/LDP/guide/docbook/LFS/entities/tcl.ent @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/LDP/guide/docbook/LFS/entities/texinfo.ent b/LDP/guide/docbook/LFS/entities/texinfo.ent new file mode 100644 index 00000000..217f4df4 --- /dev/null +++ b/LDP/guide/docbook/LFS/entities/texinfo.ent @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/LDP/guide/docbook/LFS/entities/utillinux.ent b/LDP/guide/docbook/LFS/entities/utillinux.ent new file mode 100644 index 00000000..514abc14 --- /dev/null +++ b/LDP/guide/docbook/LFS/entities/utillinux.ent @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/LDP/guide/docbook/LFS/entities/vim.ent b/LDP/guide/docbook/LFS/entities/vim.ent new file mode 100644 index 00000000..44f06636 --- /dev/null +++ b/LDP/guide/docbook/LFS/entities/vim.ent @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/LDP/guide/docbook/LFS/entities/zlib.ent b/LDP/guide/docbook/LFS/entities/zlib.ent new file mode 100644 index 00000000..a405c942 --- /dev/null +++ b/LDP/guide/docbook/LFS/entities/zlib.ent @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/LDP/guide/docbook/LFS/preface/audience.xml b/LDP/guide/docbook/LFS/preface/audience.xml new file mode 100644 index 00000000..2ac651a1 --- /dev/null +++ b/LDP/guide/docbook/LFS/preface/audience.xml @@ -0,0 +1,91 @@ + +Audience + + + +Who would want to read this book + +There are many reasons why somebody would want to read this book. The +principal reason being to install a Linux system straight from the source +code. A question many people raise is "Why go through all the hassle of +manually building a Linux system from scratch when you can just download and +install an existing one?". That is a good question and is the impetus for this +section of the book. + +One important reason for LFS's existence is to help people learn how a +Linux system works from the inside out. Building an LFS system helps demonstrate +to you what makes Linux tick, how things work together and depend on each +other. One of the best things that this learning experience provides is the +ability to customize Linux to your own tastes and needs. + +A key benefit of LFS is that you have more control of your system +without relying on someone else's Linux implementation. With LFS, you are +in the driver's seat and dictate every aspect of your system, such as the +directory layout and bootscript setup. You also dictate where, why and how +programs are installed. + +Another benefit of LFS is the ability to create a very compact Linux +system. When installing a regular distribution, you are usually forced to +install several programs which you are likely never to use. They're just +sitting there wasting precious disk space (or worse, CPU cycles). It isn't +difficult to build an LFS system less than 100 MB. Does that still sound like a +lot? A few of us have been working on creating a very small embedded LFS +system. We successfully built a system that was just enough to run the Apache +web server with approximately 8MB of disk space used. Further stripping could +bring that down to 5 MB or less. Try that with a regular distribution. + +We could compare distributed Linux to a hamburger you buy at a +fast-food restaurant -- you have no idea what you are eating. LFS, on the +other hand, doesn't give you a hamburger, but the recipe to make a hamburger. +This allows you to review it, to omit unwanted ingredients, and to +add your own ingredients which enhance the flavor of your burger. When you +are satisfied with the recipe, you go on to preparing it. You make it just +the way you like it: broil it, bake it, deep-fry it, barbecue it, or eat it +tar-tar (raw). + +Another analogy that we can use is that of comparing LFS with a +finished house. LFS will give you the skeletal plan of a house, but it's up +to you to build it. You have the freedom to adjust your plans as you +go. + +One last advantage of a custom built Linux system is security. +By compiling the entire system from source code, you are empowered to audit +everything and apply all the security patches you feel are needed. You don't +have to wait for somebody else to compile binary packages that fix a security +hole. Unless you examine the patch and implement it yourself you have no +guarantee that the new binary package was built correctly and actually fixes the +problem (adequately). + +There are too many good reasons to build your own LFS system for them all +to be listed here. This section is only the tip of the iceberg. As you +continue in your LFS experience, you will find on your own the power that +information and knowledge truly bring. + + + + +Who would not want to read this book + +There are probably some who, for whatever reason, would feel that they do not +want to read this book. If you do not wish to build your own Linux system from +scratch, then you probably don't want to read this book. Our goal is to help +you build a complete and usable foundation-level system. If you only want to +know what happens while your computer boots, then we recommend the From +Power Up To Bash Prompt HOWTO. The HOWTO builds a bare system which is +similar to that of this book, but it focuses strictly on creating a system +capable of booting to a BASH prompt. + +While you decide which to read, consider your objective. If you wish +to build a Linux system while learning a bit along the way, then this book +is probably your best choice. If your objective is strictly educational and +you do not have any plans for your finished system, then the +From Power Up To Bash Prompt HOWTO is probably a better choice. + +The From Power Up To Bash Prompt HOWTO is located at + or on The Linux +Documentation Project's website at +. + + + + diff --git a/LDP/guide/docbook/LFS/preface/prerequisites.xml b/LDP/guide/docbook/LFS/preface/prerequisites.xml new file mode 100644 index 00000000..dd26a996 --- /dev/null +++ b/LDP/guide/docbook/LFS/preface/prerequisites.xml @@ -0,0 +1,33 @@ + +Prerequisites + + +This book assumes that its reader has a good deal of knowledge about +using and installing Linux software. Before you begin building your LFS +system, you should read the following HOWTOs: + + +Software-Building-HOWTO + +This is a comprehensive guide to building and installing "generic" +UNIX software distributions under Linux. This HOWTO is available at +. + +The Linux Users' Guide + +This guide covers the usage of assorted Linux software and is +available at +. + +The Essential Pre-Reading Hint + +This is an LFS Hint written specifically for new users of Linux. It is +mostly a list of links to excellent sources of information on a wide range of +topics. Any person attempting to install LFS, should at least have an +understanding of many of the topics in this hint. It is available at + + + + + +