| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467 | 
							- <?xml version="1.0" encoding="ISO-8859-1"?>
 
- <!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
 
-   "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
 
-   <!ENTITY % general-entities SYSTEM "../general.ent">
 
-   %general-entities;
 
- ]>
 
- <sect1 id="pre-why">
 
-   <?dbhtml filename="package-choices.html"?>
 
-   <title>Rationale for Packages in the Book</title>
 
-     <para>As stated earlier, the goal of LFS is to build a complete and usable 
 
-     foundation-level system.  This includes all packages needed to replicate 
 
-     itself while providing a relatively minimal base from which to customize
 
-     a more complete system based on the choices of the user.  This does not
 
-     mean that LFS is the smallest system possible.  Several important packages
 
-     are included that are not strictly required.  The lists below document the
 
-     rationale for each package in the book.</para>
 
-     <itemizedlist>
 
-       <listitem>
 
-         <para>Autoconf</para>
 
-         <para>This package contains programs for producing shell scripts that
 
-         can automatically configure source code from a developer's
 
-         template. It is often needed to rebuild a package after updates
 
-         to the build procedures.</para>
 
-       </listitem>
 
-       <listitem>
 
-         <para>Automake</para>
 
-         <para>This package contains programs for generating Make files from
 
-         a template. It is often needed to rebuild a package after updates
 
-         to the build procedures.</para>
 
-       </listitem>
 
-       <listitem>
 
-         <para>Bash</para>
 
-         <para>This package satisfies an LSB core requirement to provide
 
-         a Bourne Shell interface to the system.  It was chosen over
 
-         other shell packages because of its common usage and extensive
 
-         capabilities beyond basic shell functions.</para>
 
-       </listitem>
 
-       <listitem>
 
-         <para>Binutils</para>
 
-         <para>This package contains a linker, an assembler, and other 
 
-         tools for handling object files. The programs in this package are
 
-         needed to compile most of the packages in an LFS system and beyond.</para>
 
-       </listitem>
 
-       <listitem>
 
-         <para>Bison</para>
 
-         <para>This package contains the GNU version of yacc (Yet Another
 
-         Compiler Compiler) needed to build several other LFS programs.</para>
 
-       </listitem>
 
-       <listitem>
 
-         <para>Bzip2</para>
 
-         <para>This package contains programs for compressing and decompressing 
 
-         files.  It is required to decompress many LFS packages.</para>
 
-       </listitem>
 
-       <listitem>
 
-         <para>Coreutils</para>
 
-         <para>This package contains a number of essential programs for viewing 
 
-         and manipulating files and directories. These programs are needed for
 
-         command line file management, and are necessary for the installation
 
-         procedures of every package in LFS.</para>
 
-       </listitem>
 
-       <listitem>
 
-         <para>DejaGNU</para>
 
-         <para>This package contains a framework for testing other programs.
 
-         It is only installed in the temporary toolchain.</para>
 
-       </listitem>
 
-       <listitem>
 
-         <para>Diffutils</para>
 
-         <para>This package contains programs that show the differences 
 
-         between files or directories. These programs can be used to create
 
-         patches, and are also used in many packages' build procedures.</para>
 
-       </listitem>
 
-       <listitem>
 
-         <para>Expect</para>
 
-         <para>This package contains a program for carrying out scripted 
 
-         dialogues with other interactive programs.  It is commonly used
 
-         for testing other packages.  It is only installed in the temporary 
 
-         toolchain.</para>
 
-       </listitem>
 
-       <listitem>
 
-         <para>E2fsprogs</para>
 
-         <para>This package contains the utilities for handling the ext2, ext3
 
-         and ext4 file systems.  These are the most common and thoroughly
 
-         tested file systems that Linux supports.</para>
 
-       </listitem>
 
-       <listitem>
 
-         <para>File</para>
 
-         <para>This package contains a utility for determining the type of a 
 
-         given file or files. A few packages need it to build.</para>
 
-       </listitem>
 
-       <listitem>
 
-         <para>Findutils</para>
 
-         <para>This package contains programs to find files in a file system.
 
-         It is used in many packages' build scripts.</para>
 
-       </listitem>
 
-       <listitem>
 
-         <para>Flex</para>
 
-         <para>This package contains a utility for generating programs that 
 
-         recognize patterns in text.  It is the GNU version of the lex 
 
-         (lexical analyzer) program.  It is required to build several 
 
-         LFS packages.</para>
 
-       </listitem>
 
-       <listitem>
 
-         <para>Gawk</para>
 
-         <para>This package contains programs for manipulating text files.
 
-         It is the GNU version of awk (Aho-Weinberg-Kernighan). It is used in
 
-         many other packages' build scripts.</para>
 
-       </listitem>
 
-       <listitem>
 
-         <para>Gcc</para>
 
-         <para>This package is the Gnu Compiler Collection.  It contains the 
 
-         C and C++ compilers as well as several others not built by LFS.  
 
-         </para>
 
-       </listitem>
 
-       <listitem>
 
-         <para>GDBM</para>
 
-         <para>This package contains the GNU Database Manager library.  It
 
-         is used by one other LFS package, Man-DB.</para>
 
-       </listitem>
 
-       <listitem>
 
-         <para>Gettext</para>
 
-         <para>This package contains utilities and libraries for 
 
-         internationalization and localization of numerous packages.</para>
 
-       </listitem>
 
-       <listitem>
 
-         <para>Glibc</para>
 
-         <para>This package contains the main C library.  Linux programs would
 
-         not run without it.</para>
 
-       </listitem>
 
-       <listitem>
 
-         <para>GMP</para>
 
-         <para>This package contains math libraries that provide useful functions
 
-         for arbitrary precision arithmetic.  It is required to build Gcc.</para>
 
-       </listitem>
 
-       <listitem>
 
-         <para>Grep</para>
 
-         <para>This package contains programs for searching through files. These
 
-         programs are used by most packages' build scripts.</para>
 
-       </listitem>
 
-       <listitem>
 
-         <para>Groff</para>
 
-         <para>This package contains programs for processing and formatting text.
 
-         One important function of these programs is to format man pages.</para>
 
-       </listitem>
 
-       <listitem>
 
-         <para>GRUB</para>
 
-         <para>This package is the Grand Unified Boot Loader.  It is one 
 
-         of several boot loaders available, but is the most flexible.
 
-         </para>
 
-       </listitem>
 
-       <listitem>
 
-         <para>Gzip</para>
 
-         <para>This package contains programs for compressing and 
 
-         decompressing files. It is needed to decompress many packages in LFS
 
-         and beyond.</para>
 
-       </listitem>
 
-       <listitem>
 
-         <para>Iana-etc</para>
 
-         <para>This package provides data for network services and protocols.
 
-         It is needed to enable proper networking capabilities.</para>
 
-       </listitem>
 
-       <listitem>
 
-         <para>Inetutils</para>
 
-         <para>This package contains programs for basic network 
 
-         administration.</para>
 
-       </listitem>
 
-       <listitem>
 
-         <para>IProute2</para>
 
-         <para>This package contains programs for basic and advanced IPv4 and
 
-         IPv6 networking.  It was chosen over the other common network
 
-         tools package (net-tools) for its IPv6 capabilities.  </para>
 
-       </listitem>
 
-       <listitem>
 
-         <para>Kbd</para>
 
-         <para>This package contains key-table files, keyboard utilities
 
-         for non-US keyboards, and a number of console fonts.</para>
 
-       </listitem>
 
-       <listitem>
 
-         <para>Less</para>
 
-         <para>This package contains a very nice text file viewer that
 
-         allows scrolling up or down when viewing a file. It is also used by
 
-         Man-DB for viewing manpages.</para>
 
-       </listitem>
 
-       <listitem>
 
-         <para>Libtool</para>
 
-         <para>This package contains the GNU generic library support 
 
-         script. It wraps the complexity of using shared libraries in a 
 
-         consistent, portable interface.  It is needed by the test
 
-         suites in other LFS packages.</para>
 
-       </listitem>
 
-       <listitem>
 
-         <para>Linux Kernel</para>
 
-         <para>This package is the Operating System.  It is the Linux in
 
-         the GNU/Linux environment.</para>
 
-       </listitem>
 
-       <listitem>
 
-         <para>M4</para>
 
-         <para>This package contains a general text macro processor useful
 
-         as a build tool for other programs.</para>
 
-       </listitem>
 
-       <listitem>
 
-         <para>Make</para>
 
-         <para>This package contains a program for directing the building
 
-         of packages.  It is required by almost every package in LFS.</para>
 
-       </listitem>
 
-       <listitem>
 
-         <para>Man-DB</para>
 
-         <para>This package contains programs for finding and viewing man pages.
 
-         It was chosen instead of the <application>man</application> package
 
-         due to superior internationalization capabilities.  It supplies
 
-         the man program.</para>
 
-       </listitem>
 
-       <listitem>
 
-         <para>Man-pages</para>
 
-         <para>This package contains the actual contents of the basic
 
-         Linux man pages.</para>
 
-       </listitem>
 
-       <listitem>
 
-         <para>Module-Init-Tools</para>
 
-         <para>This package contains programs needed to administer Linux
 
-         kernel modules.</para>
 
-       </listitem>
 
-       <listitem>
 
-         <para>MPC</para>
 
-         <para>This package contains functions for the arithmetic of complex
 
-         numbers. It is required by Gcc.</para>
 
-       </listitem>
 
-       <listitem>
 
-         <para>MPFR</para>
 
-         <para>This package contains functions for multiple precision 
 
-         arithmetic.  It is required by Gcc.</para>
 
-       </listitem>
 
-       <listitem>
 
-         <para>Ncurses</para>
 
-         <para>This package contains libraries for terminal-independent 
 
-         handling of character screens.  It is often used to provide 
 
-         cursor control for a menuing system. It is needed by a number of
 
-         packages in LFS.</para>
 
-       </listitem>
 
-       <listitem>
 
-         <para>Patch</para>
 
-         <para>This package contains a program for modifying or creating files by
 
-         applying a <emphasis>patch</emphasis> file typically created 
 
-         by the <application>diff</application> program.  It is needed by
 
-         the build procedure for several LFS packages.</para>
 
-       </listitem>
 
-       <listitem>
 
-         <para>Perl</para>
 
-         <para>This package is an interpreter for the runtime language
 
-         PERL. It is needed for the installation and test suites of several LFS
 
-         packages.</para>
 
-       </listitem>
 
-       <listitem>
 
-         <para>Pkg-config</para>
 
-         <para>This package contains a tool for passing the include path 
 
-         and/or library paths to build tools during the configure and make 
 
-         processes.  It is needed by many LFS packages.</para>
 
-       </listitem>
 
-       <listitem>
 
-         <para>Procps</para>
 
-         <para>This package contains programs for monitoring processes. These
 
-         programs are useful for system administration, and are also used by
 
-         the LFS Bootscripts.</para>
 
-       </listitem>
 
-       <listitem>
 
-         <para>Psmisc</para>
 
-         <para>This package contains programs for displaying information 
 
-         about running processes. These programs are useful for system
 
-         administration.</para>
 
-       </listitem>
 
-       <listitem>
 
-         <para>Readline</para>
 
-         <para>This package is a set of libraries that offers command-line 
 
-         editing and history capabilities.  It is used by Bash.</para>
 
-       </listitem>
 
-       <listitem>
 
-         <para>Sed</para>
 
-         <para>This package allows editing of text without opening it in a 
 
-         text editor. It is also needed by most LFS packages' configure 
 
-         scripts.</para>
 
-       </listitem>
 
-       <listitem>
 
-         <para>Shadow</para>
 
-         <para>This package contains programs for handling passwords 
 
-         in a secure way.</para>
 
-       </listitem>
 
-       <listitem>
 
-         <para>Sysklogd</para>
 
-         <para>This package contains programs for logging system messages, 
 
-         such as those given by the kernel or daemon processes when unusual 
 
-         events occur.</para>
 
-       </listitem>
 
-       <listitem>
 
-         <para>Sysvinit</para>
 
-         <para>This package provides the <application>init</application>
 
-         program, which is the parent of all other processes on the Linux
 
-         system. </para>
 
-       </listitem>
 
-       <listitem>
 
-         <para>Tar</para>
 
-         <para>This package provides archiving and extraction capabilities
 
-         of virtually all packages used in LFS.</para>
 
-       </listitem>
 
-       <listitem>
 
-         <para>Tcl</para>
 
-         <para>This package contains the Tool Command Language used
 
-         in many test suites in LFS packages.  It is only installed in 
 
-         the temporary toolchain.</para>
 
-       </listitem>
 
-       <listitem>
 
-         <para>Texinfo</para>
 
-         <para>This package contains programs for reading, writing, and 
 
-         converting info pages.  It is used in the installation 
 
-         procedures of many LFS packages.</para>
 
-       </listitem>
 
-       <listitem>
 
-         <para>Udev</para>
 
-         <para>This package contains programs for dynamic creation of 
 
-         device nodes.  It is an alternative to creating thousands of
 
-         static devices in the /dev directory.</para>
 
-       </listitem>
 
-       <listitem>
 
-         <para>Util-linux-ng</para>
 
-         <para>This package contains miscellaneous utility programs. 
 
-         Among them are utilities for handling file systems, consoles, 
 
-         partitions, and messages.</para>
 
-       </listitem>
 
-       <listitem>
 
-         <para>Vim</para>
 
-         <para>This package contains an editor. It was chosen because of its
 
-         compatibility with the classic vi editor and its huge number of powerful
 
-         capabilities.  An editor is a very personal choice for
 
-         many users and any other editor could be substituted if desired.</para>
 
-       </listitem>
 
-       <listitem>
 
-         <para>XZ Utils</para>
 
-         <para>This package contains programs for compressing and decompressing 
 
-         files.  It provides the highest compression generally available
 
-         and the useful for decompressing packages XZ or LZMA format.</para>
 
-       </listitem>
 
-       <listitem>
 
-         <para>Zlib</para>
 
-         <para>This package contains compression and decompression routines 
 
-         used by some programs.</para>
 
-       </listitem>
 
-     </itemizedlist>
 
- </sect1>
 
 
  |