diff options
author | Jeremy Huntwork <jhuntwork@linuxfromscratch.org> | 2006-01-06 02:59:05 +0000 |
---|---|---|
committer | Jeremy Huntwork <jhuntwork@linuxfromscratch.org> | 2006-01-06 02:59:05 +0000 |
commit | 46a2e9c7d603a2a160f8de8741a7750de935d848 (patch) | |
tree | aade35b7dacf22ac3870abc95a6f7db0323bbacc | |
parent | 1714f1afcae03cc55205629ee59f105852c15f3d (diff) |
Merged recent changes from trunk to lfs-alpha. Fixed typo.
git-svn-id: http://svn.linuxfromscratch.org/LFS/branches/alphabetical/BOOK@7248 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
72 files changed, 4113 insertions, 2739 deletions
diff --git a/appendixa/acronymlist.xml b/appendixa/acronymlist.xml index c3ea945a6..fff2327f5 100644 --- a/appendixa/acronymlist.xml +++ b/appendixa/acronymlist.xml @@ -1,410 +1,573 @@ <?xml version="1.0" encoding="ISO-8859-1"?> -<!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ +<!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" + "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ <!ENTITY % general-entities SYSTEM "../general.ent"> %general-entities; ]> + <appendix id="appendixa" xreflabel="Appendix A"> -<?dbhtml dir="appendixa"?> -<title>Acronyms and Terms</title> -<?dbhtml filename="acronymlist.html"?> - -<variablelist> -<?dbfo list-presentation="list"?> -<?dbhtml list-presentation="table"?> - -<varlistentry> -<term><emphasis role="bold">ABI</emphasis></term><listitem><para>Application Binary Interface</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">ALFS</emphasis></term><listitem><para>Automated Linux From Scratch</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">ALSA</emphasis></term><listitem><para>Advanced Linux -Sound Architecture</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">API</emphasis></term><listitem><para>Application -Programming Interface</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">ASCII</emphasis></term><listitem><para>American Standard -Code for Information Interchange</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">BIOS</emphasis></term><listitem><para>Basic Input/Output -System</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">BLFS</emphasis></term><listitem><para>Beyond Linux From -Scratch</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">BSD</emphasis></term><listitem><para>Berkeley Software -Distribution</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">chroot</emphasis></term><listitem><para>change root</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">CMOS</emphasis></term><listitem><para>Complementary -Metal Oxide Semiconductor</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">COS</emphasis></term> -<listitem><para>Class Of Service</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">CPU</emphasis></term> -<listitem><para>Central Processing Unit</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">CRC</emphasis></term> -<listitem><para>Cyclic Redundancy Check</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">CVS</emphasis></term> -<listitem><para>Concurrent Versions System</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">DHCP</emphasis></term> -<listitem><para>Dynamic Host Configuration Protocol</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">DNS</emphasis></term> -<listitem><para>Domain Name Service</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">EGA</emphasis></term> -<listitem><para>Enhanced Graphics Adapter</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">ELF</emphasis></term> -<listitem><para>Executable and Linkable Format</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">EOF</emphasis></term> -<listitem><para>End of File</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">EQN</emphasis></term> -<listitem><para>equation</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">EVMS</emphasis></term> -<listitem><para>Enterprise Volume Management System</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">ext2</emphasis></term> -<listitem><para>second extended file system</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">FAQ</emphasis></term> -<listitem><para>Frequently Asked Questions</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">FHS</emphasis></term> -<listitem><para>Filesystem Hierarchy Standard</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">FIFO</emphasis></term> -<listitem><para>First-In, First Out</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">FQDN</emphasis></term> -<listitem><para>Fully Qualified Domain Name</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">FTP</emphasis></term> -<listitem><para>File Transfer Protocol</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">GB</emphasis></term> -<listitem><para>Gibabytes</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">GCC</emphasis></term> -<listitem><para>GNU Compiler Collection</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">GID</emphasis></term> -<listitem><para>Group Identifier</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">GMT</emphasis></term> -<listitem><para>Greenwich Mean Time</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">GPG</emphasis></term> -<listitem><para>GNU Privacy Guard</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">HTML</emphasis></term> -<listitem><para>Hypertext Markup Language</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">IDE</emphasis></term> -<listitem><para>Integrated Drive Electronics</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">IEEE</emphasis></term> -<listitem><para>Institute of Electrical and Electronic Engineers</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">IO</emphasis></term> -<listitem><para>Input/Output</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">IP</emphasis></term> -<listitem><para>Internet Protocol</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">IPC</emphasis></term> -<listitem><para>Inter-Process Communication</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">IRC</emphasis></term> -<listitem><para>Internet Relay Chat</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">ISO</emphasis></term> -<listitem><para>International Organization for Standardization</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">ISP</emphasis></term> -<listitem><para>Internet Service Provider</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">KB</emphasis></term> -<listitem><para>Kilobytes</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">LED</emphasis></term> -<listitem><para>Light Emitting Diode</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">LFS</emphasis></term> -<listitem><para>Linux From Scratch</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">LSB</emphasis></term> -<listitem><para>Linux Standards Base</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">MB</emphasis></term> -<listitem><para>Megabytes</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">MBR</emphasis></term> -<listitem><para>Master Boot Record</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">MD5</emphasis></term> -<listitem><para>Message Digest 5</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">NIC</emphasis></term> -<listitem><para>Network Interface Card</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">NLS</emphasis></term> -<listitem><para>Native Language Support</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">NNTP</emphasis></term> -<listitem><para>Network News Transport Protocol</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">NPTL</emphasis></term> -<listitem><para>Native POSIX Threading Library</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">OSS</emphasis></term> -<listitem><para>Open Sound System</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">PCH</emphasis></term> -<listitem><para>Pre-Compiled Headers</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">PCRE</emphasis></term> -<listitem><para>Perl Compatible Regular Expression</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">PID</emphasis></term> -<listitem><para>Process Identifier</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">PLFS</emphasis></term> -<listitem><para>Pure Linux From Scratch</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">PTY</emphasis></term> -<listitem><para>pseudo terminal</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">QA</emphasis></term> -<listitem><para>Quality Assurance</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">QOS</emphasis></term> -<listitem><para>Quality Of Service</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">RAM</emphasis></term> -<listitem><para>Random Access Memory</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">RPC</emphasis></term> -<listitem><para>Remote Procedure Call</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">RTC</emphasis></term> -<listitem><para>Real Time Clock</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">SBU</emphasis></term> -<listitem><para>Standard Build Unit</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">SCO</emphasis></term> -<listitem><para>The Santa Cruz Operation</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">SGR</emphasis></term> -<listitem><para>Select Graphic Rendition</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">SHA1</emphasis></term> -<listitem><para>Secure-Hash Algorithm 1</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">SMP</emphasis></term> -<listitem><para>Symmetric Multi-Processor</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">TLDP</emphasis></term> -<listitem><para>The Linux Documentation Project</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">TFTP</emphasis></term> -<listitem><para>Trivial File Transfer Protocol</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">TLS</emphasis></term> -<listitem><para>Thread-Local Storage</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">UID</emphasis></term> -<listitem><para>User Identifier</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">umask</emphasis></term> -<listitem><para>user file-creation mask</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">USB</emphasis></term> -<listitem><para>Universal Serial Bus</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">UTC</emphasis></term> -<listitem><para>Coordinated Universal Time</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">UUID</emphasis></term> -<listitem><para>Universally Unique Identifier</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">VC</emphasis></term> -<listitem><para>Virtual Console</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">VGA</emphasis></term> -<listitem><para>Video Graphics Array</para></listitem> -</varlistentry> - -<varlistentry> -<term><emphasis role="bold">VT</emphasis></term> -<listitem><para>Virtual Terminal</para></listitem> -</varlistentry> - -</variablelist> + <?dbhtml dir="appendixa"?> + <?dbhtml filename="acronymlist.html"?> + + <title>Acronyms and Terms</title> + + <variablelist> + <?dbfo list-presentation="list"?> + <?dbhtml list-presentation="table"?> + + <varlistentry> + <term><emphasis role="bold">ABI</emphasis></term> + <listitem> + <para>Application Binary Interface</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">ALFS</emphasis></term> + <listitem> + <para>Automated Linux From Scratch</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">ALSA</emphasis></term> + <listitem> + <para>Advanced Linux Sound Architecture</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">API</emphasis></term> + <listitem> + <para>Application Programming Interface</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">ASCII</emphasis></term> + <listitem> + <para>American Standard Code for Information Interchange</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">BIOS</emphasis></term> + <listitem> + <para>Basic Input/Output System</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">BLFS</emphasis></term> + <listitem> + <para>Beyond Linux From Scratch</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">BSD</emphasis></term> + <listitem> + <para>Berkeley Software Distribution</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">chroot</emphasis></term> + <listitem> + <para>change root</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">CMOS</emphasis></term> + <listitem> + <para>Complementary Metal Oxide Semiconductor</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">COS</emphasis></term> + <listitem> + <para>Class Of Service</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">CPU</emphasis></term> + <listitem> + <para>Central Processing Unit</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">CRC</emphasis></term> + <listitem> + <para>Cyclic Redundancy Check</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">CVS</emphasis></term> + <listitem> + <para>Concurrent Versions System</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">DHCP</emphasis></term> + <listitem> + <para>Dynamic Host Configuration Protocol</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">DNS</emphasis></term> + <listitem> + <para>Domain Name Service</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">EGA</emphasis></term> + <listitem> + <para>Enhanced Graphics Adapter</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">ELF</emphasis></term> + <listitem> + <para>Executable and Linkable Format</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">EOF</emphasis></term> + <listitem> + <para>End of File</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">EQN</emphasis></term> + <listitem> + <para>equation</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">EVMS</emphasis></term> + <listitem> + <para>Enterprise Volume Management System</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">ext2</emphasis></term> + <listitem> + <para>second extended file system</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">FAQ</emphasis></term> + <listitem> + <para>Frequently Asked Questions</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">FHS</emphasis></term> + <listitem> + <para>Filesystem Hierarchy Standard</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">FIFO</emphasis></term> + <listitem> + <para>First-In, First Out</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">FQDN</emphasis></term> + <listitem> + <para>Fully Qualified Domain Name</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">FTP</emphasis></term> + <listitem> + <para>File Transfer Protocol</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">GB</emphasis></term> + <listitem> + <para>Gibabytes</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">GCC</emphasis></term> + <listitem> + <para>GNU Compiler Collection</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">GID</emphasis></term> + <listitem> + <para>Group Identifier</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">GMT</emphasis></term> + <listitem> + <para>Greenwich Mean Time</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">GPG</emphasis></term> + <listitem> + <para>GNU Privacy Guard</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">HTML</emphasis></term> + <listitem> + <para>Hypertext Markup Language</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">IDE</emphasis></term> + <listitem> + <para>Integrated Drive Electronics</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">IEEE</emphasis></term> + <listitem> + <para>Institute of Electrical and Electronic Engineers</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">IO</emphasis></term> + <listitem> + <para>Input/Output</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">IP</emphasis></term> + <listitem> + <para>Internet Protocol</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">IPC</emphasis></term> + <listitem> + <para>Inter-Process Communication</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">IRC</emphasis></term> + <listitem> + <para>Internet Relay Chat</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">ISO</emphasis></term> + <listitem> + <para>International Organization for Standardization</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">ISP</emphasis></term> + <listitem> + <para>Internet Service Provider</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">KB</emphasis></term> + <listitem> + <para>Kilobytes</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">LED</emphasis></term> + <listitem> + <para>Light Emitting Diode</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">LFS</emphasis></term> + <listitem> + <para>Linux From Scratch</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">LSB</emphasis></term> + <listitem> + <para>Linux Standards Base</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">MB</emphasis></term> + <listitem> + <para>Megabytes</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">MBR</emphasis></term> + <listitem> + <para>Master Boot Record</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">MD5</emphasis></term> + <listitem> + <para>Message Digest 5</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">NIC</emphasis></term> + <listitem> + <para>Network Interface Card</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">NLS</emphasis></term> + <listitem> + <para>Native Language Support</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">NNTP</emphasis></term> + <listitem> + <para>Network News Transport Protocol</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">NPTL</emphasis></term> + <listitem> + <para>Native POSIX Threading Library</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">OSS</emphasis></term> + <listitem> + <para>Open Sound System</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">PCH</emphasis></term> + <listitem> + <para>Pre-Compiled Headers</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">PCRE</emphasis></term> + <listitem> + <para>Perl Compatible Regular Expression</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">PID</emphasis></term> + <listitem> + <para>Process Identifier</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">PLFS</emphasis></term> + <listitem> + <para>Pure Linux From Scratch</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">PTY</emphasis></term> + <listitem> + <para>pseudo terminal</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">QA</emphasis></term> + <listitem> + <para>Quality Assurance</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">QOS</emphasis></term> + <listitem> + <para>Quality Of Service</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">RAM</emphasis></term> + <listitem> + <para>Random Access Memory</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">RPC</emphasis></term> + <listitem> + <para>Remote Procedure Call</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">RTC</emphasis></term> + <listitem> + <para>Real Time Clock</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">SBU</emphasis></term> + <listitem> + <para>Standard Build Unit</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">SCO</emphasis></term> + <listitem> + <para>The Santa Cruz Operation</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">SGR</emphasis></term> + <listitem> + <para>Select Graphic Rendition</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">SHA1</emphasis></term> + <listitem> + <para>Secure-Hash Algorithm 1</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">SMP</emphasis></term> + <listitem> + <para>Symmetric Multi-Processor</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">TLDP</emphasis></term> + <listitem> + <para>The Linux Documentation Project</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">TFTP</emphasis></term> + <listitem> + <para>Trivial File Transfer Protocol</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">TLS</emphasis></term> + <listitem> + <para>Thread-Local Storage</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">UID</emphasis></term> + <listitem> + <para>User Identifier</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">umask</emphasis></term> + <listitem> + <para>user file-creation mask</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">USB</emphasis></term> + <listitem> + <para>Universal Serial Bus</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">UTC</emphasis></term> + <listitem> + <para>Coordinated Universal Time</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">UUID</emphasis></term> + <listitem> + <para>Universally Unique Identifier</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">VC</emphasis></term> + <listitem> + <para>Virtual Console</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">VGA</emphasis></term> + <listitem> + <para>Video Graphics Array</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis role="bold">VT</emphasis></term> + <listitem> + <para>Virtual Terminal</para> + </listitem> + </varlistentry> + + </variablelist> </appendix> - diff --git a/appendixb/acknowledgments.xml b/appendixb/acknowledgments.xml index 44dc21627..066705a67 100644 --- a/appendixb/acknowledgments.xml +++ b/appendixb/acknowledgments.xml @@ -1,314 +1,421 @@ <?xml version="1.0" encoding="ISO-8859-1"?> -<!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ +<!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" + "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ <!ENTITY % general-entities SYSTEM "../general.ent"> %general-entities; ]> -<appendix id="appendixb" xreflabel="Appendix B"> -<?dbhtml dir="appendixb"?> -<title>Acknowledgments</title> -<?dbhtml filename="acknowledgements.html"?> - -<para>We would like to thank the following people and organizations -for their contributions to the Linux From Scratch Project.</para> - -<itemizedlist> - -<listitem><para><ulink url="mailto:gerard@linuxfromscratch.org">Gerard -Beekmans</ulink> <gerard@linuxfromscratch.org> – LFS Creator, -LFS Project Leader</para></listitem> - -<listitem><para><ulink url="mailto:matthew@linuxfromscratch.org">Matthew -Burgess</ulink> <matthew@linuxfromscratch.org> – LFS Project -Leader, LFS Technical Writer/Editor, LFS Release Manager</para></listitem> - -<listitem><para><ulink url="mailto:archaic@linuxfromscratch.org">Archaic</ulink> -<archaic@linuxfromscratch.org> – LFS Technical Writer/Editor, HLFS -Project Leader, BLFS Editor, Hints and Patches Project Maintainer -</para></listitem> - -<listitem><para><ulink url="mailto:nathan@linuxfromscratch.org">Nathan -Coulson</ulink> <nathan@linuxfromscratch.org> – LFS-Bootscripts -Maintainer</para></listitem> - -<listitem><para><ulink url="mailto:bdubbs@linuxfromscratch.org">Bruce -Dubbs</ulink> <bdubbs@linuxfromscratch.org> – BLFS Project -Leader</para></listitem> - -<listitem><para><ulink url="mailto:manuel@linuxfromscratch.org">Manuel -Canales Esparcia</ulink> <manuel@linuxfromscratch.org> – -LFS/BLFS/HLFS XML and XSL Maintainer</para></listitem> - -<listitem><para><ulink url="mailto:jim@linuxfromscratch.org">Jim -Gifford</ulink> <jim@linuxfromscratch.org> – LFS Technical -Writer, Patches Project Leader</para></listitem> - -<listitem><para><ulink url="mailto:jhuntwork@linuxfromscratch.org">Jeremy -Huntwork</ulink> <jhuntwork@linuxfromscratch.org> – LFS Technical -Writer, LFS LiveCD Maintainer, ALFS Project Leader</para></listitem> - -<listitem><para><ulink url="mailto:lizardo@linuxfromscratch.org">Anderson -Lizardo</ulink> <lizardo@linuxfromscratch.org> – Website -Backend-Scripts Maintainer</para></listitem> - -<listitem><para><ulink url="mailto:ryan@linuxfromscratch.org">Ryan -Oliver</ulink> <ryan@linuxfromscratch.org> – LFS Toolchain -Maintainer</para></listitem> - -<listitem><para><ulink url="mailto:jwrober@linuxfromscratch.org">James -Robertson</ulink> <jwrober@linuxfromscratch.org> – Bugzilla -Maintainer</para></listitem> - -<listitem><para><ulink url="mailto:tushar@linuxfromscratch.org">Tushar -Teredesai</ulink> <tushar@linuxfromscratch.org> – BLFS Book -Editor, Hints and Patches Project Leader</para></listitem> - -<listitem><para>Countless other people on the various LFS and BLFS mailing lists -who helped make this book possible by giving their suggestions, testing the -book, and submitting bug reports, instructions, and their experiences with -installing various packages.</para></listitem> - -</itemizedlist> - -<bridgehead renderas="sect2">Translators</bridgehead> - -<itemizedlist> - -<listitem><para><ulink url="mailto:macana@lfs-es.com">Manuel Canales -Esparcia</ulink> <macana@lfs-es.com> – Spanish LFS translation -project</para></listitem> - -<listitem><para><ulink url="mailto:johan@linuxfromscratch.org">Johan -Lenglet</ulink> <johan@linuxfromscratch.org> – French LFS -translation project</para></listitem> - -<listitem><para><ulink -url="mailto:lizardo@linuxfromscratch.org">Anderson Lizardo</ulink> -<lizardo@linuxfromscratch.org> – Portuguese LFS translation -project</para></listitem> - -<listitem><para><ulink url="mailto:tr@erdfunkstelle.de">Thomas -Reitelbach </ulink> <tr@erdfunkstelle.de> – German LFS -translation project</para> </listitem> - -</itemizedlist> - -<bridgehead renderas="sect2">Mirror Maintainers</bridgehead> - -<bridgehead renderas="sect3">North American Mirrors</bridgehead> - -<itemizedlist> - -<listitem><para><ulink url="mailto:scott@osuosl.org">Scott -Kveton</ulink> <scott@osuosl.org> – lfs.oregonstate.edu -mirror</para></listitem> - -<listitem><para><ulink url="mailto:miha@xuy.biz">Mikhail -Pastukhov</ulink> <miha@xuy.biz> – lfs.130th.net -mirror</para></listitem> - -<listitem><para><ulink url="mailto:lost@l-w.net">William Astle</ulink> -<lost@l-w.net> – ca.linuxfromscratch.org -mirror</para></listitem> - -<listitem><para><ulink url="mailto:jpolen@rackspace.com">Jeremy -Polen</ulink> <jpolen@rackspace.com> – us2.linuxfromscratch.org -mirror</para></listitem> - -<listitem><para><ulink url="mailto:tim@idge.net">Tim Jackson</ulink> -<tim@idge.net> – linuxfromscratch.idge.net -mirror</para></listitem> - -<listitem><para><ulink url="mailto:jeremy@linux-phreak.net">Jeremy -Utley </ulink> <jeremy@linux-phreak.net> – lfs.linux-phreak.net -mirror</para></listitem> - -</itemizedlist> - -<bridgehead renderas="sect3">South American Mirrors</bridgehead> - -<itemizedlist> - -<listitem><para><ulink url="mailto:sysop@mesi.com.ar">Andres -Meggiotto</ulink> <sysop@mesi.com.ar> – lfs.mesi.com.ar -mirror</para></listitem> - -<listitem><para><ulink url="mailto:manuel@linuxfromscratch.org">Manuel -Canales Esparcia</ulink> <manuel@linuxfromscratch.org> – -lfsmirror.lfs-es.info mirror</para></listitem> - -<listitem><para><ulink url="mailto:ebf@aedsolucoes.com.br">Eduardo B. -Fonseca</ulink> <ebf@aedsolucoes.com.br> – -br.linuxfromscratch.org mirror</para></listitem> -</itemizedlist> - -<bridgehead renderas="sect3">European Mirrors</bridgehead> - -<itemizedlist> - -<listitem><para><ulink url="mailto:barna@siker.hu">Barna -Koczka</ulink> <barna@siker.hu> – hu.linuxfromscratch.org -mirror</para></listitem> - -<listitem><para><ulink url="http://www.mirror.ac.uk">UK Mirror -Service</ulink> – linuxfromscratch.mirror.ac.uk -mirror</para></listitem> - -<listitem><para><ulink url="mailto:Martin.Voss@ada.de">Martin -Voss</ulink> <Martin.Voss@ada.de> – lfs.linux-matrix.net -mirror</para></listitem> - -<listitem><para><ulink url="mailto:guido@primerelay.net">Guido -Passet</ulink> <guido@primerelay.net> – nl.linuxfromscratch.org -mirror</para></listitem> - -<listitem><para><ulink url="mailto:baafie@planet.nl">Bastiaan -Jacques</ulink> <baafie@planet.nl> – lfs.pagefault.net -mirror</para></listitem> - -<listitem><para><ulink -url="mailto:lfs-mirror@linuxfromscratch.rave.org">Roel Neefs</ulink> -<lfs-mirror@linuxfromscratch.rave.org> – -linuxfromscratch.rave.org mirror</para></listitem> - -<listitem><para><ulink url="mailto:justin@jrknierim.de">Justin -Knierim</ulink> <justin@jrknierim.de> – www.lfs-matrix.de -mirror</para></listitem> - -<listitem><para><ulink url="mailto:stevie@stevie20.de">Stephan -Brendel</ulink> <stevie@stevie20.de> – lfs.netservice-neuss.de -mirror</para></listitem> - -<listitem><para><ulink -url="mailto:Antonin.Sprinzl@tuwien.ac.at">Antonin Sprinzl</ulink> -<Antonin.Sprinzl@tuwien.ac.at> – at.linuxfromscratch.org -mirror</para></listitem> - -<listitem><para><ulink url="mailto:fredan-lfs@fredan.org">Fredrik -Danerklint</ulink> <fredan-lfs@fredan.org> – -se.linuxfromscratch.org mirror</para></listitem> - -<listitem><para><ulink -url="mailto:archive@doc.cs.univ-paris8.fr">Parisian sysadmins</ulink> -<archive@doc.cs.univ-paris8.fr> – www2.fr.linuxfromscratch.org -mirror</para></listitem> - -<listitem><para><ulink url="mailto:velin@zadnik.org">Alexander -Velin</ulink> <velin@zadnik.org> – bg.linuxfromscratch.org -mirror</para></listitem> - -<listitem><para><ulink url="mailto:dirk@securewebservices.co.uk"> Dirk -Webster</ulink> <dirk@securewebservices.co.uk> – -lfs.securewebservices.co.uk mirror</para></listitem> - -<listitem><para><ulink url="mailto:thomas@sofagang.dk">Thomas -Skyt</ulink> <thomas@sofagang.dk> – dk.linuxfromscratch.org -mirror</para></listitem> - -<listitem><para><ulink url="mailto:sime@dot-sime.com">Simon -Nicoll</ulink> <sime@dot-sime.com> – uk.linuxfromscratch.org -mirror</para> -</listitem> - -</itemizedlist> - -<bridgehead renderas="sect3">Asian Mirrors</bridgehead> - -<itemizedlist> - -<listitem><para><ulink url="mailto:pyng@spam.averse.net">Pui -Yong</ulink> <pyng@spam.averse.net> – sg.linuxfromscratch.org -mirror</para></listitem> - -<listitem><para><ulink url="mailto:stuart@althalus.me.uk">Stuart -Harris</ulink> <stuart@althalus.me.uk> – -lfs.mirror.intermedia.com.sg mirror</para></listitem> - -</itemizedlist> - -<bridgehead renderas="sect3">Australian Mirrors</bridgehead> - -<itemizedlist> - -<listitem><para><ulink url="mailto:jason@dstc.edu.au">Jason -Andrade</ulink> <jason@dstc.edu.au> – au.linuxfromscratch.org -mirror</para></listitem> - -</itemizedlist> - -<bridgehead renderas="sect2">Former Project Team Members</bridgehead> - -<itemizedlist> - -<listitem><para><ulink url="mailto:theladyskye@linuxfromscratch.org">Christine -Barczak</ulink> <theladyskye@linuxfromscratch.org> – LFS Book -Editor</para></listitem> - -<listitem><para>Timothy Bauscher</para></listitem> - -<listitem><para>Robert Briggs</para></listitem> - -<listitem><para>Ian Chilton</para></listitem> - -<listitem><para><ulink url="mailto:jeroen@linuxfromscratch.org">Jeroen -Coumans</ulink> <jeroen@linuxfromscratch.org> – Website Developer, -FAQ Maintainer</para></listitem> - -<listitem><para>Alex Groenewoud – LFS Technical Writer</para></listitem> - -<listitem><para>Marc Heerdink</para></listitem> +<appendix id="appendixb" xreflabel="Appendix B"> + <?dbhtml dir="appendixb"?> + <?dbhtml filename="acknowledgements.html"?> + + <title>Acknowledgments</title> + + <para>We would like to thank the following people and organizations + for their contributions to the Linux From Scratch Project.</para> + + <itemizedlist> + + <listitem> + <para><ulink url="mailto:gerard@linuxfromscratch.org">Gerard + Beekmans</ulink> <gerard@linuxfromscratch.org> – + LFS Creator, LFS Project Leader</para> + </listitem> + + <listitem> + <para><ulink url="mailto:matthew@linuxfromscratch.org">Matthew + Burgess</ulink> <matthew@linuxfromscratch.org> – + LFS Project Leader, LFS Technical Writer/Editor, LFS Release + Manager</para> + </listitem> + + <listitem> + <para><ulink url="mailto:archaic@linuxfromscratch.org">Archaic</ulink> + <archaic@linuxfromscratch.org> – LFS Technical Writer/Editor, + HLFS Project Leader, BLFS Editor, Hints and Patches Project + Maintainer</para> + </listitem> + + <listitem> + <para><ulink url="mailto:nathan@linuxfromscratch.org">Nathan + Coulson</ulink> <nathan@linuxfromscratch.org> – + LFS-Bootscripts Maintainer</para> + </listitem> + + <listitem> + <para><ulink url="mailto:bdubbs@linuxfromscratch.org">Bruce + Dubbs</ulink> <bdubbs@linuxfromscratch.org> – BLFS Project + Leader</para> + </listitem> + + <listitem> + <para><ulink url="mailto:manuel@linuxfromscratch.org">Manuel + Canales Esparcia</ulink> <manuel@linuxfromscratch.org> – + LFS/BLFS/HLFS XML and XSL Maintainer</para> + </listitem> + + <listitem> + <para><ulink url="mailto:jim@linuxfromscratch.org">Jim + Gifford</ulink> <jim@linuxfromscratch.org> – LFS Technical + Writer, Patches Project Leader</para> + </listitem> + + <listitem> + <para><ulink url="mailto:jhuntwork@linuxfromscratch.org">Jeremy + Huntwork</ulink> <jhuntwork@linuxfromscratch.org> – LFS + Technical Writer, LFS LiveCD Maintainer, ALFS Project Leader</para> + </listitem> + + <listitem> + <para><ulink url="mailto:lizardo@linuxfromscratch.org">Anderson + Lizardo</ulink> <lizardo@linuxfromscratch.org> – Website + Backend-Scripts Maintainer</para> + </listitem> + + <listitem> + <para><ulink url="mailto:ryan@linuxfromscratch.org">Ryan + Oliver</ulink> <ryan@linuxfromscratch.org> – LFS Toolchain + Maintainer</para> + </listitem> + + <listitem> + <para><ulink url="mailto:jwrober@linuxfromscratch.org">James + Robertson</ulink> <jwrober@linuxfromscratch.org> – Bugzilla + Maintainer</para> + </listitem> + + <listitem> + <para><ulink url="mailto:tushar@linuxfromscratch.org">Tushar + Teredesai</ulink> <tushar@linuxfromscratch.org> – BLFS Book + Editor, Hints and Patches Project Leader</para> + </listitem> + + <listitem> + <para>Countless other people on the various LFS and BLFS mailing lists + who helped make this book possible by giving their suggestions, testing + the book, and submitting bug reports, instructions, and their + experiences with installing various packages.</para> + </listitem> + + </itemizedlist> + + <bridgehead renderas="sect2">Translators</bridgehead> + + <itemizedlist> + + <listitem> + <para><ulink url="mailto:macana@macana-es.com">Manuel Canales + Esparcia</ulink> <macana@macana-es.com> – Spanish + LFS translation project</para> + </listitem> + + <listitem> + <para><ulink url="mailto:johan@linuxfromscratch.org">Johan + Lenglet</ulink> <johan@linuxfromscratch.org> – French LFS + translation project</para> + </listitem> + + <listitem> + <para><ulink url="mailto:lizardo@linuxfromscratch.org">Anderson + Lizardo</ulink> <lizardo@linuxfromscratch.org> – + Portuguese LFS translation project</para> + </listitem> + + <listitem> + <para><ulink url="mailto:tr@erdfunkstelle.de">Thomas + Reitelbach </ulink> <tr@erdfunkstelle.de> – German LFS + translation project</para> + </listitem> + + </itemizedlist> + + <bridgehead renderas="sect2">Mirror Maintainers</bridgehead> + + <bridgehead renderas="sect3">North American Mirrors</bridgehead> + + <itemizedlist> + + <listitem> + <para><ulink url="mailto:scott@osuosl.org">Scott Kveton</ulink> + <scott@osuosl.org> – lfs.oregonstate.edu mirror</para> + </listitem> + + <listitem> + <para><ulink url="mailto:miha@xuy.biz">Mikhail Pastukhov</ulink> + <miha@xuy.biz> – lfs.130th.net mirror</para> + </listitem> + + <listitem> + <para><ulink url="mailto:lost@l-w.net">William Astle</ulink> + <lost@l-w.net> – ca.linuxfromscratch.org mirror</para> + </listitem> + + <listitem> + <para><ulink url="mailto:jpolen@rackspace.com">Jeremy Polen</ulink> + <jpolen@rackspace.com> – us2.linuxfromscratch.org mirror</para> + </listitem> + + <listitem> + <para><ulink url="mailto:tim@idge.net">Tim Jackson</ulink> + <tim@idge.net> – linuxfromscratch.idge.net mirror</para> + </listitem> + + <listitem> + <para><ulink url="mailto:jeremy@linux-phreak.net">Jeremy Utley</ulink> + <jeremy@linux-phreak.net> – lfs.linux-phreak.net mirror</para> + </listitem> + + </itemizedlist> + + <bridgehead renderas="sect3">South American Mirrors</bridgehead> + + <itemizedlist> + + <listitem> + <para><ulink url="mailto:sysop@mesi.com.ar">Andres Meggiotto</ulink> + <sysop@mesi.com.ar> – lfs.mesi.com.ar mirror</para> + </listitem> + + <listitem> + <para><ulink url="mailto:manuel@linuxfromscratch.org">Manuel + Canales Esparcia</ulink> <manuel@linuxfromscratch.org> – + lfsmirror.lfs-es.info mirror</para> + </listitem> + + <listitem> + <para><ulink url="mailto:ebf@aedsolucoes.com.br">Eduardo B. + Fonseca</ulink> <ebf@aedsolucoes.com.br> – + br.linuxfromscratch.org mirror</para> + </listitem> + + </itemizedlist> + + <bridgehead renderas="sect3">European Mirrors</bridgehead> + + <itemizedlist> + + <listitem> + <para><ulink url="mailto:barna@siker.hu">Barna Koczka</ulink> + <barna@siker.hu> – hu.linuxfromscratch.org mirror</para> + </listitem> + + <listitem> + <para><ulink url="http://www.mirror.ac.uk">UK Mirror Service</ulink> + – linuxfromscratch.mirror.ac.uk mirror</para> + </listitem> + + <listitem> + <para><ulink url="mailto:Martin.Voss@ada.de">Martin Voss</ulink> + <Martin.Voss@ada.de> – lfs.linux-matrix.net mirror</para> + </listitem> -<listitem><para>Mark Hymers</para></listitem> + <listitem> + <para><ulink url="mailto:guido@primerelay.net">Guido Passet</ulink> + <guido@primerelay.net> – nl.linuxfromscratch.org mirror</para> + </listitem> -<listitem><para>Seth W. Klein – FAQ maintainer</para></listitem> + <listitem> + <para><ulink url="mailto:baafie@planet.nl">Bastiaan Jacques</ulink> + <baafie@planet.nl> – lfs.pagefault.net mirror</para> + </listitem> -<listitem><para><ulink url="mailto:nicholas@linuxfromscratch.org">Nicholas -Leippe</ulink> <nicholas@linuxfromscratch.org> – Wiki -Maintainer</para></listitem> + <listitem> + <para><ulink url="mailto:lfs-mirror@linuxfromscratch.rave.org">Roel + Neefs</ulink> <lfs-mirror@linuxfromscratch.rave.org> – + linuxfromscratch.rave.org mirror</para> + </listitem> -<listitem><para>Simon Perreault</para></listitem> + <listitem> + <para><ulink url="mailto:justin@jrknierim.de">Justin Knierim</ulink> + <justin@jrknierim.de> – www.lfs-matrix.de mirror</para> + </listitem> + + <listitem> + <para><ulink url="mailto:stevie@stevie20.de">Stephan Brendel</ulink> + <stevie@stevie20.de> – lfs.netservice-neuss.de mirror</para> + </listitem> + + <listitem> + <para><ulink url="mailto:Antonin.Sprinzl@tuwien.ac.at">Antonin + Sprinzl</ulink> <Antonin.Sprinzl@tuwien.ac.at> – + at.linuxfromscratch.org mirror</para> + </listitem> + + <listitem> + <para><ulink url="mailto:fredan-lfs@fredan.org">Fredrik + Danerklint</ulink> <fredan-lfs@fredan.org> – + se.linuxfromscratch.org mirror</para> + </listitem> + + <listitem> + <para><ulink url="mailto:archive@doc.cs.univ-paris8.fr">Parisian + sysadmins</ulink> <archive@doc.cs.univ-paris8.fr> – + www2.fr.linuxfromscratch.org mirror</para> + </listitem> + + <listitem> + <para><ulink url="mailto:velin@zadnik.org">Alexander Velin</ulink> + <velin@zadnik.org> – bg.linuxfromscratch.org mirror</para> + </listitem> + + <listitem> + <para><ulink url="mailto:dirk@securewebservices.co.uk"> Dirk + Webster</ulink> <dirk@securewebservices.co.uk> – + lfs.securewebservices.co.uk mirror</para> + </listitem> + + <listitem> + <para><ulink url="mailto:thomas@sofagang.dk">Thomas Skyt</ulink> + <thomas@sofagang.dk> – dk.linuxfromscratch.org mirror</para> + </listitem> + + <listitem> + <para><ulink url="mailto:sime@dot-sime.com">Simon Nicoll</ulink> + <sime@dot-sime.com> – uk.linuxfromscratch.org mirror</para> + </listitem> + + </itemizedlist> + + <bridgehead renderas="sect3">Asian Mirrors</bridgehead> + + <itemizedlist> + + <listitem> + <para><ulink url="mailto:pyng@spam.averse.net">Pui Yong</ulink> + <pyng@spam.averse.net> – sg.linuxfromscratch.org mirror</para> + </listitem> + + <listitem> + <para><ulink url="mailto:stuart@althalus.me.uk">Stuart + Harris</ulink> <stuart@althalus.me.uk> – + lfs.mirror.intermedia.com.sg mirror</para> + </listitem> + + </itemizedlist> + + <bridgehead renderas="sect3">Australian Mirrors</bridgehead> + + <itemizedlist> + + <listitem> + <para><ulink url="mailto:jason@dstc.edu.au">Jason Andrade</ulink> + <jason@dstc.edu.au> – au.linuxfromscratch.org mirror</para> + </listitem> + + </itemizedlist> + + <bridgehead renderas="sect2">Former Project Team Members</bridgehead> + + <itemizedlist> + + <listitem> + <para><ulink url="mailto:theladyskye@linuxfromscratch.org">Christine + Barczak</ulink> <theladyskye@linuxfromscratch.org> – LFS + Book Editor</para> + </listitem> + + <listitem> + <para>Timothy Bauscher</para> + </listitem> + + <listitem> + <para>Robert Briggs</para> + </listitem> + + <listitem> + <para>Ian Chilton</para> + </listitem> + + <listitem> + <para><ulink url="mailto:jeroen@linuxfromscratch.org">Jeroen + Coumans</ulink> <jeroen@linuxfromscratch.org> – Website + Developer, FAQ Maintainer</para> + </listitem> + + <listitem> + <para>Alex Groenewoud – LFS Technical Writer</para> + </listitem> + + <listitem> + <para>Marc Heerdink</para> + </listitem> -<listitem><para><ulink url="mailto:scot@linuxfromscratch.org">Scot Mc -Pherson</ulink> <scot@linuxfromscratch.org> – LFS NNTP Gateway -Maintainer</para></listitem> + <listitem> + <para>Mark Hymers</para> + </listitem> -<listitem><para><ulink url="mailto:semzx@newmail.ru">Alexander Patrakov</ulink> -<semzx@newmail.ru> – LFS Technical Writer</para></listitem> + <listitem><para>Seth W. Klein – FAQ maintainer</para></listitem> -<listitem><para><ulink url="mailto:gschafer@zip.com.au">Greg Schafer</ulink> <gschafer@zip.com.au> – LFS Technical Writer</para></listitem> + <listitem> + <para><ulink url="mailto:nicholas@linuxfromscratch.org">Nicholas + Leippe</ulink> <nicholas@linuxfromscratch.org> – Wiki + Maintainer</para> + </listitem> -<listitem><para>Jesse Tie-Ten-Quee – LFS Technical Writer</para></listitem> + <listitem> + <para>Simon Perreault</para> + </listitem> -<listitem><para><ulink url="mailto:jeremy@linuxfromscratch.org">Jeremy -Utley</ulink> <jeremy@linuxfromscratch.org> – LFS Technical Writer, -Bugzilla Maintainer, LFS-Bootscripts Maintainer</para></listitem> + <listitem> + <para><ulink url="mailto:scot@linuxfromscratch.org">Scot Mc + Pherson</ulink> <scot@linuxfromscratch.org> – LFS NNTP + Gateway Maintainer</para> + </listitem> -<listitem><para><ulink url="mailto:zwinkles@gmail.com">Zack Winkles</ulink> -<zwinkles@gmail.com> – LFS Technical Writer</para></listitem> + <listitem> + <para><ulink url="mailto:semzx@newmail.ru">Alexander Patrakov</ulink> + <semzx@newmail.ru> – LFS Technical Writer</para> + </listitem> -</itemizedlist> + <listitem> + <para><ulink url="mailto:gschafer@zip.com.au">Greg Schafer</ulink> + <gschafer@zip.com.au> – LFS Technical Writer</para> + </listitem> -<bridgehead renderas="sect2">A very special thank you to our donators</bridgehead> + <listitem> + <para>Jesse Tie-Ten-Quee – LFS Technical Writer</para> + </listitem> -<itemizedlist> + <listitem> + <para><ulink url="mailto:jeremy@linuxfromscratch.org">Jeremy + Utley</ulink> <jeremy@linuxfromscratch.org> – LFS Technical + Writer, Bugzilla Maintainer, LFS-Bootscripts Maintainer</para> + </listitem> -<listitem><para><ulink url="mailto:dean@vipersoft.co.uk">Dean -Benson</ulink> <dean@vipersoft.co.uk> for several monetary -contributions</para></listitem> + <listitem> + <para><ulink url="mailto:zwinkles@gmail.com">Zack Winkles</ulink> + <zwinkles@gmail.com> – LFS Technical Writer</para> + </listitem> -<listitem><para><ulink url="mailto:hrx@hrxnet.de">Hagen -Herrschaft</ulink> <hrx@hrxnet.de> for donating a 2.2 GHz P4 -system, now running under the name of Lorien</para></listitem> + </itemizedlist> -<listitem><para><ulink url="http://www.vasoftware.com">VA -Software</ulink> who, on behalf of <ulink -url="http://www.linux.com">Linux.com</ulink>, donated a VA Linux 420 -(former StartX SP2) workstation</para></listitem> + <bridgehead renderas="sect2">A very special thank you to our + donators</bridgehead> -<listitem><para>Mark Stone for donating Belgarath, the -linuxfromscratch.org server</para></listitem> + <itemizedlist> -</itemizedlist> + <listitem> + <para><ulink url="mailto:dean@vipersoft.co.uk">Dean Benson</ulink> + <dean@vipersoft.co.uk> for several monetary contributions</para> + </listitem> + + <listitem> + <para><ulink url="mailto:hrx@hrxnet.de">Hagen Herrschaft</ulink> + <hrx@hrxnet.de> for donating a 2.2 GHz P4 system, now running + under the name of Lorien</para> + </listitem> + + <listitem> + <para><ulink url="http://www.vasoftware.com">VA Software</ulink> who, + on behalf of <ulink url="http://www.linux.com">Linux.com</ulink>, + donated a VA Linux 420 (former StartX SP2) workstation</para> + </listitem> + + <listitem> + <para>Mark Stone for donating Belgarath, the linuxfromscratch.org + server</para> + </listitem> + + </itemizedlist> </appendix> - diff --git a/chapter01/administrativa.xml b/chapter01/administrativa.xml index 035804a09..52aea6168 100644 --- a/chapter01/administrativa.xml +++ b/chapter01/administrativa.xml @@ -31,6 +31,7 @@ locations, and additional information, visit <ulink url="&lfs-root;mail.html"/>.</para> </sect2> +<!-- Remove until such time as we have our own News Server, JH 20060105 <sect2 id="ch-scatter-newsserver"> <title>News Server</title> @@ -41,7 +42,7 @@ newsgroup, and vice versa.</para> <para>The news server is located at <uri>news.linuxfromscratch.org</uri>.</para> -</sect2> +</sect2> --> <sect2 id="ch-scatter-irc"> <title>IRC</title> diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml index ef9e80518..c24e0c6b0 100644 --- a/chapter01/changelog.xml +++ b/chapter01/changelog.xml @@ -32,6 +32,7 @@ First a summary, then a detailed log.</para> <listitem><para>Bison &bison-version;</para></listitem> <!-- <listitem><para>Bzip2 &bzip2-version;</para></listitem> --> <listitem><para>Coreutils &coreutils-version;</para></listitem> +<!-- <listitem><para>DB &db-version;</para></listitem> --> <!-- <listitem><para>DejaGNU &dejagnu-version;</para></listitem> --> <!-- <listitem><para>Diffutils &diffutils-version;</para></listitem> --> <listitem><para>E2fsprogs &e2fsprogs-version;</para></listitem> @@ -44,7 +45,7 @@ First a summary, then a detailed log.</para> <listitem><para>Gettext &gettext-version;</para></listitem> <listitem><para>Glibc &glibc-version;</para></listitem> <!-- <listitem><para>Grep &grep-version;</para></listitem> --> -<listitem><para>Groff &groff-version;</para></listitem> +<!-- <listitem><para>Groff &groff-version;</para></listitem> --> <listitem><para>GRUB &grub-version;</para></listitem> <!-- <listitem><para>Gzip &gzip-version;</para></listitem> --> <!-- <listitem><para>Hotplug &hotplug-version;</para></listitem> --> @@ -59,7 +60,7 @@ First a summary, then a detailed log.</para> <listitem><para>Linux-Libc-Headers &linux-libc-headers-version;</para></listitem> <listitem><para>M4 &m4-version;</para></listitem> <!-- <listitem><para>Make &make-version;</para></listitem> --> -<listitem><para>Man &man-version;</para></listitem> +<!-- <listitem><para>Man-DB &man-db-version;</para></listitem> --> <listitem><para>Man-pages &man-pages-version;</para></listitem> <!-- <listitem><para>Mktemp &mktemp-version;</para></listitem> --> <!-- <listitem><para>Module-Init-Tools &module-init-tools-version;</para></listitem> --> @@ -83,14 +84,22 @@ First a summary, then a detailed log.</para> </itemizedlist> </listitem> +<listitem><para>Downgraded to:</para> +<itemizedlist> +<listitem><para>Groff &groff-version;-&groff-patchlevel;</para></listitem> +</itemizedlist> +</listitem> + <listitem><para>Added:</para> <itemizedlist> <listitem><para>&bzip2-bzgrep-patch;</para></listitem> <listitem><para>&bzip2-docs-patch;</para></listitem> <listitem><para>&gawk-segfault-patch;</para></listitem> <listitem><para>&gcc-specs-patch;</para></listitem> +<listitem><para>DB-&db-version;</para></listitem> <listitem><para>&inetutils-gcc4_fixes-patch;</para></listitem> <listitem><para>&kbd-gcc4_fixes-patch;</para></listitem> +<listitem><para>MAN-DB-&man-db-version;</para></listitem> <listitem><para>&mktemp-tempfile-patch;</para></listitem> <listitem><para>&perl-libc-patch;</para></listitem> <listitem><para>&shadow-configure-patch;</para></listitem> @@ -107,6 +116,7 @@ First a summary, then a detailed log.</para> <listitem><para>glibc-2.3.4-fix_test-1.patch</para></listitem> <listitem><para>inetutils-1.4.2-kernel_headers-1.patch</para></listitem> <listitem><para>iproute2-2.6.11-050330-remove_db-1.patch</para></listitem> +<listitem><para>Man-1.6b</para></listitem> <listitem><para>mktemp-1.5-add_tempfile-2.patch</para></listitem> <listitem><para>perl-5.8.6-libc-1.patch</para></listitem> <listitem><para>vim-6.3-security_fix-1.patch</para></listitem> @@ -121,6 +131,53 @@ Dan Nicholson. Flex and bison circular dependencies, perl needs sed and groff, e <listitem><para>January 5, 2006 [jhuntwork]: Update dependency information. Thanks Chris Staub.</para> </listitem> +<listitem><para>January 5, 2006 [jhuntwork]: Remove mention of news +server until we actually have one. Thanks Randy.</para> +</listitem> + +<listitem><para>January 5, 2006 [jhuntwork]: Initial addition of UTF-8 +support. Thanks to Alexander Patrakov.</para> +</listitem> + +<listitem><para>January 3, 2006 [matt]: Clarify the description of mktemp's +--with-libc configure parameter (fixes bug 1667).</para></listitem> + +<listitem><para>January 3, 2006 [matt]: Upgrade to libtool 1.5.22.</para> +</listitem> + +<listitem><para>January 3, 2006 [matt]: Upgrade to man-pages 2.18.</para> +</listitem> + +<listitem><para>January 3, 2006 [matt]: Remove the -v flag from the example +mkswap command in chapter 2 as it does not affect verbosity (fixes bug 1674). +</para></listitem> + +<listitem><para>December 31, 2005 [ken]: Alter installation of Linux Libc asm +Headers in chroot, to be repeatable.</para> +</listitem> + +<listitem><para>December 23, 2005 [jim]: Corrected version on Vim symlink</para> +</listitem> + +<listitem><para>December 21, 2005 [matt]: Correctly symlink Vim's documentation +to /usr/share/doc. Thanks to Jeremy for the report and the fix.</para> +</listitem> + +<listitem><para>December 17, 2005 [matt]: Pass a valid path to +module-init-tools' --prefix configure switch and remove the now unnecessary +--mandir switch</para></listitem> + +<listitem><para>December 17, 2005 [matt]: Symlink Vim's documentation to +/usr/share/doc. Fixes bug 1610. Thanks to Randy McMurchy for the original +report and to Ken and Jeremy for their investigations into the fix.</para> +</listitem> + +<listitem><para>December 17, 2005 [matt]: Upgrade to psmisc-21.9</para> +</listitem> + +<listitem><para>December 17, 2005 [matt]: Upgrade to man-pages-2.17</para> +</listitem> + <listitem><para>December 16, 2005 [jhuntwork]: Move Procps to before Perl in chapter 6. Perl's testsuite uses 'ps'.</para> </listitem> diff --git a/chapter02/creatingfilesystem.xml b/chapter02/creatingfilesystem.xml index 1d3a66956..3466a555a 100644 --- a/chapter02/creatingfilesystem.xml +++ b/chapter02/creatingfilesystem.xml @@ -53,7 +53,7 @@ rm -rfv e2fsprogs-&e2fsprogs-version;</userinput></screen> issuing the command below. If you are using an existing swap partition, there is no need to format it.</para> -<screen role="nodump"><userinput>mkswap -v /dev/<replaceable>[yyy]</replaceable></userinput></screen> +<screen role="nodump"><userinput>mkswap /dev/<replaceable>[yyy]</replaceable></userinput></screen> <para>Replace <replaceable>[yyy]</replaceable> with the name of the swap partition.</para> diff --git a/chapter03/packages.xml b/chapter03/packages.xml index 30f28c9cc..52e8b75c5 100644 --- a/chapter03/packages.xml +++ b/chapter03/packages.xml @@ -68,6 +68,13 @@ </varlistentry> <varlistentry> +<term>DB (&db-version;) - 7,925 KB:</term> +<listitem> +<para><ulink url="http://dev.sleepycat.com/"/></para> +</listitem> +</varlistentry> + +<varlistentry> <term>DejaGNU (&dejagnu-version;) - 852 KB:</term> <listitem> <para><ulink url="&gnu;dejagnu/"/></para> @@ -158,13 +165,26 @@ url="http://www.linuxfromscratch.org/lfs/download.html#ftp"/>.</para></note> </varlistentry> <varlistentry> -<term>Groff (&groff-version;) - 2,096 KB:</term> +<term>Groff (&groff-version;) - 2,260 KB:</term> <listitem> <para><ulink url="&gnu;groff/"/></para> </listitem> </varlistentry> <varlistentry> +<term>Groff Debian Patch - 129 KB:</term> +<listitem> +<para><ulink url="http://ftp.debian.org/debian/pool/main/g/groff/&groff-debian-patch;"/></para> +<note><para>Groff Debian Patch (&groff-version;-&groff-patchlevel;) +may no longer be available at the +listed location. The site administrators of the master download +location occasionally remove older versions when new ones are +released. There is no alternative download location yet.</para></note> +<!-- Actually there's snapshot.debian.net, but they have hardware problems --> +</listitem> +</varlistentry> + +<varlistentry> <term>GRUB (&grub-version;) - 772 KB:</term> <listitem> <para><ulink url="&alpha-gnu;grub/"/></para> @@ -224,12 +244,12 @@ url="http://www.linuxfromscratch.org/lfs/download.html#ftp"/>.</para></note> <varlistentry> <term>LFS-Bootscripts (&lfs-bootscripts-version;) - 32 KB:</term> <listitem> -<para><ulink url="http://downloads.linuxfromscratch.org/"/></para> +<para><ulink url="http://www.linuxfromscratch.org/~dj/bootscripts/"/></para> </listitem> </varlistentry> <varlistentry> -<term>Libtool (&libtool-version;) - 1,642 KB:</term> +<term>Libtool (&libtool-version;) - 1,761 KB:</term> <listitem> <para><ulink url="&gnu;libtool/"/></para> </listitem> @@ -264,14 +284,14 @@ url="http://www.linuxfromscratch.org/lfs/download.html#ftp"/>.</para></note> </varlistentry> <varlistentry> -<term>Man (&man-version;) - 205 KB:</term> +<term>Man-DB (&man-db-version;) - 816 KB:</term> <listitem> -<para><ulink url="http://primates.ximian.com/~flucifredi/man/"/></para> +<para><ulink url="http://savannah.nongnu.org/download/man-db/"/></para> </listitem> </varlistentry> <varlistentry> -<term>Man-pages (&man-pages-version;) - 1,682 KB:</term> +<term>Man-pages (&man-pages-version;) - 1,688 KB:</term> <listitem> <para><ulink url="&kernel;linux/docs/manpages/"/></para> </listitem> @@ -298,6 +318,19 @@ url="http://www.linuxfromscratch.org/lfs/download.html#ftp"/>.</para></note> </listitem> </varlistentry> +<!-- +<varlistentry> +<term>Ncurses Rollup Patch (&ncurses-date;) - 328 KB:</term> +<listitem> +<para><ulink url="ftp://invisible-island.net/ncurses/&ncurses-version;/"/></para> +<note><para>Ncurses Rollup Patch (&ncurses-date;) may no longer be available at the +listed location. The site administrators of the master download +location occasionally remove older versions when new ones are +released. There is no alternative download location yet.</para></note> +</listitem> +</varlistentry> +--> + <varlistentry> <term>Patch (&patch-version;) - 156 KB:</term> <listitem> @@ -320,7 +353,7 @@ url="http://www.linuxfromscratch.org/lfs/download.html#ftp"/>.</para></note> </varlistentry> <varlistentry> -<term>Psmisc (&psmisc-version;) - 189 KB:</term> +<term>Psmisc (&psmisc-version;) - 193 KB:</term> <listitem> <para><ulink url="&sourceforge;psmisc/"/></para> </listitem> diff --git a/chapter03/patches.xml b/chapter03/patches.xml index 85a728d11..239a4c58e 100644 --- a/chapter03/patches.xml +++ b/chapter03/patches.xml @@ -30,6 +30,13 @@ needed to build an LFS system:</para> </varlistentry> <varlistentry> +<term>Coreutils Internationalization Fixes Patch - 110 KB:</term> +<listitem> +<para><ulink url="&alexpatches;&coreutils-i18n-patch;"/></para> +</listitem> +</varlistentry> + +<varlistentry> <term>Coreutils Suppress Uptime, Kill, Su Patch - 15 KB:</term> <listitem> <para><ulink url="&patches-root;&coreutils-suppress-patch;"/></para> @@ -44,6 +51,13 @@ needed to build an LFS system:</para> </varlistentry> <varlistentry> +<term>Diffutils Internationalization Fixes Patch - 18 KB:</term> +<listitem> +<para><ulink url="&alexpatches;&diffutils-i18n-patch;"/></para> +</listitem> +</varlistentry> + +<varlistentry> <term>Expect Spawn Patch - 7 KB:</term> <listitem> <para><ulink url="&patches-root;&expect-spawn-patch;"/></para> @@ -72,12 +86,26 @@ needed to build an LFS system:</para> </varlistentry> <varlistentry> +<term>Grep RedHat Fixes Patch - 56 KB:</term> +<listitem> +<para><ulink url="&alexpatches;&grep-fixes-patch;"/></para> +</listitem> +</varlistentry> + +<varlistentry> <term>Gzip Security Patch - 2 KB:</term><listitem> <para><ulink url="&patches-root;&gzip-security_fix-patch;"/></para> </listitem> </varlistentry> <varlistentry> +<term>Kbd Backspace/Delete Fix Patch - 1 KB:</term> +<listitem> +<para><ulink url="&alexpatches;&kbd-backspace-patch;"/></para> +</listitem> +</varlistentry> + +<varlistentry> <term>Kbd GCC-4.x Fix Patch - 1 KB:</term> <listitem> <para><ulink url="&patches-root;&kbd-gcc4_fixes-patch;"/></para> @@ -99,6 +127,13 @@ needed to build an LFS system:</para> </varlistentry> <varlistentry> +<term>Linux kernel UTF-8 Composing Patch - 3 KB:</term> +<listitem> +<para><ulink url="&alexpatches;&linux-utf8-patch;"/></para> +</listitem> +</varlistentry> + +<varlistentry> <term>Mktemp Tempfile Patch - 4 KB:</term> <listitem> <para><ulink url="&patches-root;&mktemp-tempfile-patch;"/></para> @@ -106,6 +141,13 @@ needed to build an LFS system:</para> </varlistentry> <varlistentry> +<term>Ncurses Fixes Patch - 9 KB:</term> +<listitem> +<para><ulink url="&alexpatches;&ncurses-fixes-patch;"/></para> +</listitem> +</varlistentry> + +<varlistentry> <term>Perl Libc Patch - 1 KB:</term> <listitem> <para><ulink url="&patches-root;&perl-libc-patch;"/></para> @@ -113,6 +155,13 @@ needed to build an LFS system:</para> </varlistentry> <varlistentry> +<term>Sysklogd 8-Bit Cleanness Patch - 1 KB:</term> +<listitem> +<para><ulink url="&lfs-root;patches/downloads/sysklogd/&sysklogd-8bit-patch;"/></para> +</listitem> +</varlistentry> + +<varlistentry> <term>Shadow Configure Script Patch - 1KB:</term> <listitem> <para><ulink url="&patches-root;&shadow-configure-patch;"/></para> @@ -141,6 +190,14 @@ needed to build an LFS system:</para> </varlistentry> <varlistentry> +<term>Texinfo Multibyte Fixes Patch - 1 KB:</term> +<listitem> +<para><ulink url="&alexpatches;&texinfo-multibyte-patch;"/></para> +</listitem> +</varlistentry> + + +<varlistentry> <term>Texinfo Tempfile Fix Patch - 2 KB:</term> <listitem> <para><ulink url="&patches-root;&texinfo-tempfile_fix-patch;"/></para> diff --git a/chapter05/chapter05.xml b/chapter05/chapter05.xml index 99fd9ec65..3272f0b93 100644 --- a/chapter05/chapter05.xml +++ b/chapter05/chapter05.xml @@ -12,7 +12,6 @@ <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="toolchaintechnotes.xml"/> <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="binutils-pass1.xml"/> <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="gcc-pass1.xml"/> -3B <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="linux-libc-headers.xml"/> <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="glibc.xml"/> <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="adjusting.xml"/> diff --git a/chapter05/gawk.xml b/chapter05/gawk.xml index c70d6d1cd..cca7101fc 100644 --- a/chapter05/gawk.xml +++ b/chapter05/gawk.xml @@ -31,11 +31,14 @@ <screen><userinput>./configure --prefix=/tools</userinput></screen> -<para>The configure script doesn't detect some functionality correctly. The -following commands correct this problem:</para> - -<screen><userinput>echo "#define HAVE_LANGINFO_CODESET 1" >> config.h -echo "#define HAVE_LC_MESSAGES 1" >> config.h</userinput></screen> +<para>Due to a bug in the <command>configure</command> script, Gawk fails +to detect certain aspects of locale support in Glibc. This +bug leads to, e.g., Gettext testsuite failures. Work around this issue +by appending the missing macro definitions to <filename>config.h</filename>:</para> +<screen><userinput>cat >>config.h <<"EOF" +<literal>#define HAVE_LANGINFO_CODESET 1 +#define HAVE_LC_MESSAGES 1</literal> +EOF</userinput></screen> <para>Compile the package:</para> diff --git a/chapter05/glibc.xml b/chapter05/glibc.xml index 51d44ad24..cf6a2ee34 100644 --- a/chapter05/glibc.xml +++ b/chapter05/glibc.xml @@ -88,7 +88,7 @@ kernel has and can optimize itself accordingly.</para></listitem> <varlistentry> <term><parameter>--without-selinux</parameter></term> <listitem><para>When building from hosts that include SELinux functionality -(e.g. Fedora Core 3), Glibc will build with support for SELinux. As the LFS +(e.g., Fedora Core 3), Glibc will build with support for SELinux. As the LFS tools environment does not contain support for SELinux, a Glibc compiled with such support will fail to operate correctly.</para></listitem> </varlistentry> @@ -158,38 +158,9 @@ programs works by locale.</para> <note><para>If the test suites are not being run in this chapter (as per the recommendation), there is no need to install the locales now. The appropriate locales will be installed in the next -chapter.</para></note> - -<para>To install the Glibc locales anyway, use the following -command:</para> - -<screen role="nodump"><userinput>make localedata/install-locales</userinput></screen> - -<para>To save time, an alternative to running the -previous command (which generates and installs every locale Glibc is -aware of) is to install only those locales that are wanted and needed. -This can be achieved by using the <command>localedef</command> -command. Information on this command is located in the -<filename>INSTALL</filename> file in the Glibc source. However, there -are a number of locales that are essential in order for the tests of -future packages to pass, in particular, the -<emphasis>libstdc++</emphasis> tests from GCC. The following -instructions, instead of the <parameter>install-locales</parameter> -target used above, will install the minimum set of locales necessary -for the tests to run successfully:</para> - -<screen><userinput>mkdir -pv /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 fa_IR -f UTF-8 fa_IR -localedef -i fr_FR -f ISO-8859-1 fr_FR -localedef -i fr_FR@euro -f ISO-8859-15 fr_FR@euro -localedef -i it_IT -f ISO-8859-1 it_IT -localedef -i ja_JP -f EUC-JP ja_JP</userinput></screen> +chapter. To install the Glibc locales anyway, use instructions from +<xref linkend="ch-system-glibc" role="."/> +</para></note> </sect2> diff --git a/chapter06/chapter06.xml b/chapter06/chapter06.xml index 1350d4ca3..e85ec3381 100644 --- a/chapter06/chapter06.xml +++ b/chapter06/chapter06.xml @@ -40,6 +40,7 @@ <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="bison.xml"/> <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="bzip2.xml"/> <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="diffutils.xml"/> +<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="db.xml"/> <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="e2fsprogs.xml"/> <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="file.xml"/> <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="findutils.xml"/> @@ -54,7 +55,7 @@ <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="less.xml"/> <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="libtool.xml"/> <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="make.xml"/> -<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="man.xml"/> +<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="man-db.xml"/> <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="mktemp.xml"/> <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="module-init-tools.xml"/> <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="patch.xml"/> diff --git a/chapter06/coreutils.xml b/chapter06/coreutils.xml index e531b490c..5cd071580 100644 --- a/chapter06/coreutils.xml +++ b/chapter06/coreutils.xml @@ -41,6 +41,26 @@ other packages later:</para> <screen><userinput>patch -Np1 -i ../&coreutils-suppress-patch;</userinput></screen> +<para>POSIX requires that programs from Coreutils recognize character +boundaries correctly even in multibyte locales. The following patch +fixes this non-compliance and other internationalization-related bugs:</para> + +<screen><userinput>patch -Np1 -i ../&coreutils-i18n-patch;</userinput></screen> + +<para>In order for the tests added by this patch to pass, the permissions for +the test file have to be changed:</para> + +<screen><userinput>chmod +x tests/sort/sort-mb-tests</userinput></screen> + +<note><para>In the past, many bugs were found in this patch. When reporting +new bugs to Coreutils maintainers, please check first if they are reproducible +without this patch.</para></note> + +<para>It has been found that translated messages sometimes overflow a buffer +in the <command>who -Hu</command> command. Increase the buffer size:</para> + +<screen><userinput>sed -i 's/_LEN 6/_LEN 20/' src/who.c</userinput></screen> + <para>Now prepare Coreutils for compilation:</para> <screen><userinput>./configure --prefix=/usr</userinput></screen> diff --git a/chapter06/db.xml b/chapter06/db.xml new file mode 100644 index 000000000..ae49f34c3 --- /dev/null +++ b/chapter06/db.xml @@ -0,0 +1,218 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ + <!ENTITY % general-entities SYSTEM "../general.ent"> + %general-entities; +]> +<sect1 id="ch-system-db" role="wrap"> +<title>DB-&db-version;</title> +<?dbhtml filename="db.html"?> + +<indexterm zone="ch-system-db"><primary sortas="a-DB">Berkeley DB</primary></indexterm> + +<sect2 role="package"><title/> +<para>The DB package contains programs and utilities used by many other +applications for database related functions.</para> + +<segmentedlist> +<segtitle>&buildtime;</segtitle> +<segtitle>&diskspace;</segtitle> +<seglistitem><seg>1.0 SBU</seg><seg>74 MB</seg></seglistitem> +</segmentedlist> + +<segmentedlist> +<segtitle>&dependencies;</segtitle> +<seglistitem><seg>Bash, Binutils, Coreutils, +Diffutils, GCC, Glibc, Make and Sed.</seg></seglistitem> +</segmentedlist> +</sect2> + +<sect2 role="installation"> +<title>Installation of DB</title> + +<para>Prepare DB for compilation:</para> + +<screen><userinput>cd build_unix && +../dist/configure --prefix=/usr --enable-compat185 --enable-cxx</userinput></screen> + +<para>The meaning of the configure options:</para> + +<variablelist> +<varlistentry> +<term><parameter>--enable-compat185</parameter></term> +<listitem><para>This option enables building DB 1.85 compatibility API.</para></listitem> +</varlistentry> + +<varlistentry> +<term><parameter>--enable-cxx</parameter></term> +<listitem><para>This option enables building C++ API libraries.</para></listitem> +</varlistentry> +</variablelist> + +<para>Compile the package:</para> + +<screen><userinput>make LIBSO_LIBS="-lpthread" LIBXSO_LIBS="-lpthread"</userinput></screen> + +<para>The meaning of the make option:</para> + +<variablelist> +<varlistentry> +<term><parameter>LIBSO_LIBS="-lpthread" LIBXSO_LIBS="-lpthread"</parameter></term> +<listitem><para>These variables work around a bug in the <command>configure</command> +script that causes the DB libraries not to link against NPTL libraries</para></listitem> +</varlistentry> +</variablelist> + +<para>It is not possible to test the package meaningfully, because that +would involve building TCL bindings. TCL bindings cannot be built properly +now because TCL is linked against Glibc in <filename class="directory">/tools</filename>, +not against Glibc in <filename class="directory">/usr</filename>.</para> + +<para>Install the package:</para> + +<screen><userinput>make docdir=/usr/share/doc/db-&db-version; install</userinput></screen> + +<para>The meaning of the make option:</para> + +<variablelist> +<varlistentry> +<term><parameter>docdir=...</parameter></term> +<listitem><para>This variable specifies the correct place for the documentation.</para></listitem> +</varlistentry> +</variablelist> + +<para>Fix the permissions on the installed documentation files:</para> + +<screen><userinput>chown root:root /usr/bin/db_* \ + /usr/lib/libdb* /usr/include/db* && +chown -R root:root /usr/share/doc/db-&db-version;</userinput></screen> + +</sect2> + + +<sect2 id="contents-db" role="content"><title>Contents of DB</title> +<segmentedlist> +<segtitle>Installed programs</segtitle> +<seglistitem><seg>db_archive, db_checkpoint, db_deadlock, db_dump, +db_hotbackup, db_load, db_printlog, db_recover, db_stat, db_upgrade and +db_verify +</seg></seglistitem> +</segmentedlist> + +<segmentedlist> +<segtitle>Installed libraries</segtitle> +<seglistitem><seg>libdb.[so,a] and libdb_cxx.[so,a]</seg></seglistitem> +</segmentedlist> + +<variablelist><bridgehead renderas="sect3">Short Descriptions</bridgehead> +<?dbfo list-presentation="list"?> +<?dbhtml list-presentation="table"?> + +<varlistentry id="db_archive"> +<term><command>db_archive</command></term> +<listitem> +<para>Prints the pathnames of log files that are no longer in use</para> +<indexterm zone="ch-system-db db_archive"><primary sortas="b-db_archive">db_archive</primary></indexterm> +</listitem> +</varlistentry> + +<varlistentry id="db_checkpoint"> +<term><command>db_checkpoint</command></term> +<listitem> +<para>A daemon used to monitor and checkpoint database logs</para> +<indexterm zone="ch-system-db db_checkpoint"><primary sortas="b-db_checkpoint">db_checkpoint</primary></indexterm> +</listitem> +</varlistentry> + +<varlistentry id="db_deadlock"> +<term><command>db_deadlock</command></term> +<listitem> +<para>A daemon used to abort lock requests when deadlocks are detected</para> +<indexterm zone="ch-system-db db_deadlock"><primary sortas="b-db_deadlock">db_deadlock</primary></indexterm> +</listitem> +</varlistentry> + +<varlistentry id="db_dump"> +<term><command>db_dump</command></term> +<listitem> +<para>Converts database files to a plain-text file format readable by <command>db_load</command></para> +<indexterm zone="ch-system-db db_dump"><primary sortas="b-db_dump">db_dump</primary></indexterm> +</listitem> +</varlistentry> + +<varlistentry id="db_hotbackup"> +<term><command>db_hotbackup</command></term> +<listitem> +<para>Creates <quote>hot backup</quote> or <quote>hot failover</quote> snapshots of Berkeley DB databases</para> +<indexterm zone="ch-system-db db_hotbackup"><primary sortas="b-db_hotbackup">db_hotbackup</primary></indexterm> +</listitem> +</varlistentry> + +<varlistentry id="db_load"> +<term><command>db_load</command></term> +<listitem> +<para>Is used to create database files from plain-text files</para> +<indexterm zone="ch-system-db db_load"><primary sortas="b-db_load">db_load</primary></indexterm> +</listitem> +</varlistentry> + +<varlistentry id="db_printlog"> +<term><command>db_printlog</command></term> +<listitem> +<para>Converts database log files to human readable text</para> +<indexterm zone="ch-system-db db_printlog"><primary sortas="b-db_printlog">db_printlog</primary></indexterm> +</listitem> +</varlistentry> + +<varlistentry id="db_recover"> +<term><command>db_recover</command></term> +<listitem> +<para>Is used to restore a database to a consistent state after a failure</para> +<indexterm zone="ch-system-db db_recover"><primary sortas="b-db_recover">db_recover</primary></indexterm> +</listitem> +</varlistentry> + +<varlistentry id="db_stat"> +<term><command>db_stat</command></term> +<listitem> +<para>Displays statistics for Berkeley databases</para> +<indexterm zone="ch-system-db db_stat"><primary sortas="b-db_stat">db_stat</primary></indexterm> +</listitem> +</varlistentry> + +<varlistentry id="db_upgrade"> +<term><command>db_upgrade</command></term> +<listitem> +<para>Is used to upgrade database files to a newer version of Berkeley DB</para> +<indexterm zone="ch-system-db db_upgrade"><primary sortas="b-db_upgrade">db_upgrade</primary></indexterm> +</listitem> +</varlistentry> + +<varlistentry id="db_verify"> +<term><command>db_verify</command></term> +<listitem> +<para>Is used to run consistency checks on database files</para> +<indexterm zone="ch-system-db db_verify"><primary sortas="b-db_verify">db_verify</primary></indexterm> +</listitem> +</varlistentry> + + +<varlistentry id="libdb"> +<term><filename class="libraryfile">libdb.[so,a]</filename></term> +<listitem> +<para>Contains functions to manipulate database files from C programs</para> +<indexterm zone="ch-system-db libdb"><primary sortas="c-libdb">libdb</primary></indexterm> +</listitem> +</varlistentry> + +<varlistentry id="libdb_cxx"> +<term><filename class="libraryfile">libdb_cxx.[so,a]</filename></term> +<listitem> +<para>Contains functions to manipulate database files from C++ programs</para> +<indexterm zone="ch-system-db libdb_cxx"><primary sortas="c-libdb_cxx">libdb_cxx</primary></indexterm> +</listitem> +</varlistentry> +</variablelist> + +</sect2> + +</sect1> diff --git a/chapter06/diffutils.xml b/chapter06/diffutils.xml index ade0ece11..5234bd6c7 100644 --- a/chapter06/diffutils.xml +++ b/chapter06/diffutils.xml @@ -29,6 +29,12 @@ Gettext, Glibc, Grep, Make, and Sed</seg></seglistitem> <sect2 role="installation"> <title>Installation of Diffutils</title> +<para>POSIX requires the <command>diff</command> command to treat whitespace +characters according to the current locale. The following patch fixes the +non-compliance issue:</para> + +<screen><userinput>patch -Np1 -i ../&diffutils-i18n-patch;</userinput></screen> + <para>Prepare Diffutils for compilation:</para> <screen><userinput>./configure --prefix=/usr</userinput></screen> diff --git a/chapter06/gawk.xml b/chapter06/gawk.xml index 20ecbb25f..7ec669983 100644 --- a/chapter06/gawk.xml +++ b/chapter06/gawk.xml @@ -28,8 +28,8 @@ Diffutils, GCC, Gettext, Glibc, Grep, Make, Patch, and Sed</seg></seglistitem> <sect2 role="installation"> <title>Installation of Gawk</title> -<para>Patch Gawk to fix a bug which causes it to segfault when invoked on a -non-existent file:</para> +<para>Under some circumstances, Gawk-&gawk-version; attempts to free a chunk +of memory that was not allocated. This bug is fixed by the following patch:</para> <screen><userinput>patch -Np1 -i ../&gawk-segfault-patch;</userinput></screen> @@ -37,11 +37,15 @@ non-existent file:</para> <screen><userinput>./configure --prefix=/usr --libexecdir=/usr/lib</userinput></screen> -<para>The configure script doesn't detect some functionality correctly. The -following commands correct this problem:</para> +<para>Due to a bug in the <command>configure</command> script, Gawk fails +to detect certain aspects of locale support in Glibc. This +bug leads to, e.g., Gettext testsuite failures. Work around this issue +by appending the missing macro definitions to <filename>config.h</filename>:</para> -<screen><userinput>echo "#define HAVE_LANGINFO_CODESET 1" >> config.h -echo "#define HAVE_LC_MESSAGES 1" >> config.h</userinput></screen> +<screen><userinput>cat >>config.h <<"EOF" +<literal>#define HAVE_LANGINFO_CODESET 1 +#define HAVE_LC_MESSAGES 1</literal> +EOF</userinput></screen> <para>Compile the package:</para> diff --git a/chapter06/glibc.xml b/chapter06/glibc.xml index 5cca20be0..14ad42aa6 100644 --- a/chapter06/glibc.xml +++ b/chapter06/glibc.xml @@ -47,6 +47,23 @@ and linker cannot be adjusted before the Glibc install because the Glibc autoconf tests would give false results and defeat the goal of achieving a clean build.</para> +<para>The glibc-libidn tarball adds support for internationalized +domain names (IDN) to Glibc. Many programs that +support IDN require the full libidn library (see +<ulink url="&blfs-root;view/svn/general/libidn.html"/>), +not this add-on. +Unpack the tarball from within the Glibc source +directory:</para> + +<screen><userinput>tar jxf ../glibc-libidn-&glibc-version;.tar.bz2</userinput></screen> + +<para>In the vi_VN.TCVN locale, <command>bash</command> enters an infinite loop +at startup. It is unknown whether this is a <command>bash</command> bug or a +Glibc problem. Disable installation of this locale in order to avoid the +problem:</para> + +<screen><userinput>sed -i '/vi_VN.TCVN/d' localedata/SUPPORTED</userinput></screen> + <para>The Glibc documentation recommends building Glibc outside of the source directory in a dedicated build directory:</para> @@ -121,26 +138,36 @@ Prevent this warning with:</para> <para>Install the package:</para> -<screen><userinput>make install</userinput></screen> +<screen><userinput>make install_root=/ install</userinput></screen> -<para>The locales that can make the system respond in a different -language were not installed by the above command. Install this -with:</para> +<para>The meaning of the make option:</para> -<screen><userinput>make localedata/install-locales</userinput></screen> +<variablelist> +<varlistentry> +<term><parameter>install_root=/</parameter></term> +<listitem><para>This causes the Glibc Makefile not to run the +<filename>scripts/test-installation.pl</filename> script at the end +of Glibc installation. Since the toolchain has not been adjusted yet for +the new Glibc, this script would test Glibc installed in +<filename class="directory">/tools</filename> and fail because the +libidn add-on has not been installed there.</para></listitem> +</varlistentry> +</variablelist> -<para>To save time, an alternative to running the -previous command (which generates and installs every locale Glibc is -aware of) is to install only those locales that are wanted and needed. -This can be achieved by using the <command>localedef</command> -command. Information on this command is located in the -<filename>INSTALL</filename> file in the Glibc source. However, there -are a number of locales that are essential in order for the tests of -future packages to pass, in particular, the -<emphasis>libstdc++</emphasis> tests from GCC. The following -instructions, instead of the <parameter>install-locales</parameter> -target used above, will install the minimum set of locales necessary -for the tests to run successfully:</para> +<para>The locales that can make the system respond in a different +language were not installed by the above command. None of the +locales are required, but, if some of them are misssing, testuites of the +future packages would skip important testcases.</para> + +<para>Individual locales can be installed using the <command>localedef</command> +program. E.g., the first <command>localedef</command> command below combines +the <filename>/usr/share/i18n/locales/de_DE</filename> charset-independent +locale definition with the +<filename>/usr/share/i18n/charmaps/ISO-8859-1.gz</filename> charmap definition +and appends the result to the +<filename>/usr/lib/locale/locale-archive</filename> file. The following +instructions will install the minimum set of locales necessary +for the optimal coverage of tests:</para> <screen role="nodump"><userinput>mkdir -pv /usr/lib/locale localedef -i de_DE -f ISO-8859-1 de_DE @@ -152,23 +179,26 @@ localedef -i es_MX -f ISO-8859-1 es_MX localedef -i fa_IR -f UTF-8 fa_IR localedef -i fr_FR -f ISO-8859-1 fr_FR localedef -i fr_FR@euro -f ISO-8859-15 fr_FR@euro +localedef -i fr_FR.UTF-8 -f UTF-8 fr_FR localedef -i it_IT -f ISO-8859-1 it_IT localedef -i ja_JP -f EUC-JP ja_JP</userinput></screen> -<para>Some locales installed by the <command>make -localedata/install-locales</command> command above are not properly -supported by some applications that are in the LFS and BLFS books. -Because of the various problems that arise due to application -programmers making assumptions that break in such locales, LFS should -not be used in locales that utilize multibyte character sets -(including UTF-8) or right-to-left writing order. Numerous unofficial -and unstable patches are required to fix these problems, and it has -been decided by the LFS developers not to support such complex locales. This applies to the -ja_JP and fa_IR locales as well—they have been installed only for -GCC and Gettext tests to pass, and the <command>watch</command> program -(part of the Procps package) does not work properly in them. Various -attempts to circumvent these restrictions are documented in -internationalization-related hints.</para> +<para>In addition, install the locale for your own country, language and +character set.</para> + +<para>Alternatively, install all locales +listed in the <filename>glibc-&glibc-version;/localedata/SUPPORTED</filename> +file (it includes every locale listed above and many more) +at once with the following time-consuming command:</para> + +<screen><userinput>make localedata/install-locales</userinput></screen> + +<para>Then use the <command>localedef</command> command to create and +install locales not listed in the +<filename>glibc-&glibc-version;/localedata/SUPPORTED</filename> file +in the unlikely case if you need them.</para> +<!-- The Live CD patches the localedata/SUPPORTED file instead of +running localedef, the results are equivalent --> </sect2> @@ -277,7 +307,7 @@ getent, iconv, iconvconfig, ldconfig, ldd, lddlibc4, locale, localedef, mtrace, nscd, nscd_nischeck, pcprofiledump, pt_chown, rpcgen, rpcinfo, sln, sprof, tzselect, xtrace, zdump, and zic</seg> <seg>ld.so, libBrokenLocale.[a,so], -libSegFault.so, libanl.[a,so], libbsd-compat.a, libc.[a,so], +libSegFault.so, libanl.[a,so], libbsd-compat.a, libc.[a,so], libcidn.so, 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, @@ -366,8 +396,7 @@ by each given program or shared library</para> <varlistentry id="locale"> <term><command>locale</command></term> <listitem> -<para>Tells the compiler to enable or disable the use of POSIX locales -for built-in operations</para> +<para>Prints various information about the current locale</para> <indexterm zone="ch-system-glibc locale"><primary sortas="b-locale">locale</primary></indexterm> </listitem> </varlistentry> @@ -499,7 +528,10 @@ printing the currently executed function</para> <varlistentry id="libBrokenLocale"> <term><filename class="libraryfile">libBrokenLocale</filename></term> <listitem> -<para>Used by programs, such as Mozilla, to solve broken locales</para> +<para>Used internally by Glibc as a gross hack to get broken programs +(e.g., some Motif applications) running. See comments in +<filename>glibc-&glibc-version;/locale/broken_cur_max.c</filename> for more +information</para> <indexterm zone="ch-system-glibc libBrokenLocale"><primary sortas="c-libBrokenLocale">libBrokenLocale</primary></indexterm> </listitem> </varlistentry> @@ -507,7 +539,8 @@ printing the currently executed function</para> <varlistentry id="libSegFault"> <term><filename class="libraryfile">libSegFault</filename></term> <listitem> -<para>The segmentation fault signal handler</para> +<para>The segmentation fault signal handler, used by +<command>catchsegv</command></para> <indexterm zone="ch-system-glibc libSegFault"><primary sortas="c-libSegFault">libSegFault</primary></indexterm> </listitem> </varlistentry> @@ -537,6 +570,15 @@ in order to run certain Berkey Software Distribution (BSD) programs under Linux< </listitem> </varlistentry> +<varlistentry id="libcidn"> +<term><filename class="libraryfile">libcidn</filename></term> +<listitem> +<para>Used internally by Glibc for handling internationalized domain names in +the <function>getaddrinfo()</function> function</para> +<indexterm zone="ch-system-glibc libcrypt"><primary sortas="c-libcrypt">libcrypt</primary></indexterm> +</listitem> +</varlistentry> + <varlistentry id="libcrypt"> <term><filename class="libraryfile">libcrypt</filename></term> <listitem> @@ -556,7 +598,8 @@ in order to run certain Berkey Software Distribution (BSD) programs under Linux< <varlistentry id="libg"> <term><filename class="libraryfile">libg</filename></term> <listitem> -<para>A runtime library for <command>g++</command></para> +<para>Dummy library containing no functions. Previously was a runtime library +for <command>g++</command></para> <indexterm zone="ch-system-glibc libg"><primary sortas="c-libg">libg</primary></indexterm> </listitem> </varlistentry> @@ -564,7 +607,9 @@ in order to run certain Berkey Software Distribution (BSD) programs under Linux< <varlistentry id="libieee"> <term><filename class="libraryfile">libieee</filename></term> <listitem> -<para>The Institute of Electrical and Electronic Engineers (IEEE) floating point library</para> +<para>Linking in this module forces error handling rules for math functions as +defined by the Institute of Electrical and Electronic Engineers (IEEE). +The default is POSIX.1 error handling</para> <indexterm zone="ch-system-glibc libieee"><primary sortas="c-libieee">libieee</primary></indexterm> </listitem> </varlistentry> @@ -580,7 +625,7 @@ in order to run certain Berkey Software Distribution (BSD) programs under Linux< <varlistentry id="libmcheck"> <term><filename class="libraryfile">libmcheck</filename></term> <listitem> -<para>Contains code run at boot</para> +<para>Turns on memory allocation checking when linked to</para> <indexterm zone="ch-system-glibc libmcheck"><primary sortas="c-libmcheck">libmcheck</primary></indexterm> </listitem> </varlistentry> diff --git a/chapter06/grep.xml b/chapter06/grep.xml index 8322c6d45..f050a89a1 100644 --- a/chapter06/grep.xml +++ b/chapter06/grep.xml @@ -28,6 +28,16 @@ Diffutils, GCC, Gettext, Glibc, Make, Sed, and Texinfo</seg></seglistitem> <sect2 role="installation"> <title>Installation of Grep</title> +<para>The current Grep package has many bugs, especially in the support of +multibyte locales. RedHat fixed some of them with the following patch:</para> + +<screen><userinput>patch -Np1 -i ../&grep-fixes-patch;</userinput></screen> + +<para>In order for the tests added by this patch to pass, the permissions for +the test file have to be changed:</para> + +<screen><userinput>chmod +x tests/fmbtest.sh</userinput></screen> + <para>Prepare Grep for compilation:</para> <screen><userinput>./configure --prefix=/usr --bindir=/bin</userinput></screen> diff --git a/chapter06/groff.xml b/chapter06/groff.xml index a2d8cb7e2..db13ad57e 100644 --- a/chapter06/groff.xml +++ b/chapter06/groff.xml @@ -28,14 +28,35 @@ Gawk, GCC, Glibc, Grep, Make, and Sed</seg></seglistitem> <sect2 role="installation"> <title>Installation of Groff</title> +<para>Apply the patch that adds the <quote>ascii8</quote> and +<quote>nippon</quote> devices to Groff:</para> + +<screen><userinput>zcat ../&groff-debian-patch; | patch -Np1</userinput></screen> + +<note><para>These devices are used by Man-DB when formatting non-English manual +pages that are not in the ISO-8859-1 encoding. Currently, there is no working +patch for Groff-1.19.x that adds this functionality. +<!-- Details: http://bugs.debian.org/196762 --> +</para></note> + +<para>Many screen fonts don't have Unicode single quotes and dashes in them. +Tell Groff to use the ASCII equivalents instead:</para> + +<screen><userinput>sed -i -e 's/2010/002D/' -e 's/2212/002D/' \ + -e 's/2018/0060/' -e 's/2019/0027/' font/devutf8/R.proto +</userinput></screen> + <para>Groff expects the environment variable <envar>PAGE</envar> to contain the default paper size. For users in the United States, <parameter>PAGE=letter</parameter> is appropriate. Elsewhere, -<parameter>PAGE=A4</parameter> may be more suitable.</para> +<parameter>PAGE=A4</parameter> may be more suitable. +While the default paper size is configured during compilation, it can be +overridden later by echoing either <quote>A4</quote> or <quote>letter</quote> +to the <filename>/etc/papersize</filename> file.</para> <para>Prepare Groff for compilation:</para> -<screen><userinput>PAGE=<replaceable>[paper_size]</replaceable> ./configure --prefix=/usr</userinput></screen> +<screen><userinput>PAGE=<replaceable>[paper_size]</replaceable> ./configure --prefix=/usr --enable-multibyte</userinput></screen> <para>Compile the package:</para> diff --git a/chapter06/iproute2.xml b/chapter06/iproute2.xml index 66d1ea86c..09d61143a 100644 --- a/chapter06/iproute2.xml +++ b/chapter06/iproute2.xml @@ -25,22 +25,12 @@ <segmentedlist> <segtitle>&dependencies;</segtitle> <seglistitem> - <seg>GCC, Glibc, Make, Linux-Headers, and Sed</seg> + <seg>DB, GCC, Glibc, Make, and Linux-Headers</seg> </seglistitem> </segmentedlist> </sect2> <sect2 role="installation"> <title>Installation of IPRoute2</title> - <para>The <command>arpd</command> binary included in this package is - dependent on Berkeley DB. Because <command>arpd</command> is not a very - common requirement on a base Linux system, remove the dependency on - Berkeley DB by applying the <command>sed</command> command below. If - the <command>arpd</command> binary is needed, instructions for - compiling Berkeley DB can be found in the BLFS Book at <ulink - url="&blfs-root;view/svn/server/databases.html#db"/>. - </para> - - <screen><userinput>sed -i '/^TARGETS/s@arpd@@g' misc/Makefile</userinput></screen> <para>Prepare IPRoute2 for compilation:</para> <screen><userinput>chmod u+x configure && @@ -68,6 +58,16 @@ <para>Install the package:</para> <screen><userinput>make SBINDIR=/sbin install</userinput></screen> + + <para>The <command>arpd</command> binary links against the DB libraries + that reside in <filename class="directory">/usr</filename> and + uses a database in <filename>/var/lib/arpd/arpd.db</filename>. Thus, + according to the FHS, it must be + in <filename class="directory">/usr/sbin</filename>. Move it there: + </para> + + <screen><userinput>mv -v /sbin/arpd /usr/sbin</userinput></screen> + </sect2> <sect2 id="contents-iproute2" role="content"> @@ -75,8 +75,9 @@ <segmentedlist> <segtitle>Installed programs</segtitle> <seglistitem> - <seg>ctstat (link to lnstat), ifcfg, ifstat, ip, lnstat, nstat, routef, - routel, rtacct, rtmon, rtpr, rtstat (link to lnstat), ss, and tc. + <seg>arpd, ctstat (link to lnstat), ifcfg, ifstat, ip, lnstat, nstat, + routef, routel, rtacct, rtmon, rtpr, rtstat (link to lnstat), ss, + and tc. </seg> </seglistitem> </segmentedlist> @@ -84,6 +85,20 @@ <variablelist><bridgehead renderas="sect3">Short Descriptions</bridgehead> <?dbfo list-presentation="list"?> <?dbhtml list-presentation="table"?> + <varlistentry id="arpd"> + <term> + <command>arpd</command> + </term> + <listitem> + <para>Userspace ARP daemon, useful in really large networks, where + the kernelspace ARP implementation is insufficient, or + when setting up a honeypot</para> + <indexterm zone="ch-system-iproute2 arpd"> + <primary sortas="b-arpd">arpd</primary> + </indexterm> + </listitem> + </varlistentry> + <varlistentry id="ctstat"> <term> <command>ctstat</command> @@ -292,7 +307,7 @@ </term> <listitem> <para>Traffic Controlling Executable; this is for Quality Of -Service (QOS) and Class Of Service (COS) + Service (QOS) and Class Of Service (COS) implementations </para> diff --git a/chapter06/kbd.xml b/chapter06/kbd.xml index ad1e08676..317a1a95f 100644 --- a/chapter06/kbd.xml +++ b/chapter06/kbd.xml @@ -28,6 +28,15 @@ Gettext, Glibc, Grep, Gzip, M4, Make, Patch, and Sed</seg></seglistitem> <sect2 role="installation"> <title>Installation of Kbd</title> +<para>The behaviour of the Backspace and Delete keys is not consistent across the +keymaps in the Kbd package. The following patch fixes this issue for +i386 keymaps:</para> + +<screen><userinput>patch -Np1 -i ../&kbd-backspace-patch;</userinput></screen> + +<para>After patching, the Backspace key generates the character with code 127, +and the Delete key generates a well-known escape sequence.</para> + <para>Patch Kbd to fix a bug in <command>setfont</command> that is triggered when compiling with GCC-&gcc-version;:</para> @@ -47,6 +56,11 @@ when compiling with GCC-&gcc-version;:</para> <screen><userinput>make install</userinput></screen> +<note><para>For some languages (e.g., Belarusian) the Kbd package doesn't +provide a useful keymap (the stock <quote>by</quote> keymap assumes the +ISO-8859-5 encoding, while everybody uses CP1251 instead). Users of such +languages have to download working keymaps separately.</para></note> + </sect2> <sect2 id="contents-kbd" role="content"><title>Contents of Kbd</title> @@ -274,8 +288,9 @@ pressed on the keyboard</para> <varlistentry id="unicode_start"> <term><command>unicode_start</command></term> <listitem> -<para>Puts the keyboard and console in UNICODE mode. Never use it on LFS, -because applications are not configured to support UNICODE.</para> +<para>Puts the keyboard and console in UNICODE mode. Don't use this program +unless your keymap file is in the ISO-8859-1 encoding. For other encodings, +this utility produces incorrect results.</para> <indexterm zone="ch-system-kbd unicode_start"><primary sortas="b-unicode_start">unicode_start</primary></indexterm> </listitem> </varlistentry> diff --git a/chapter06/libtool.xml b/chapter06/libtool.xml index 96938d600..3e6ab3258 100644 --- a/chapter06/libtool.xml +++ b/chapter06/libtool.xml @@ -17,7 +17,7 @@ interface.</para> <segmentedlist> <segtitle>&buildtime;</segtitle> <segtitle>&diskspace;</segtitle> -<seglistitem><seg>1.5 SBU</seg><seg>19.7 MB</seg></seglistitem> +<seglistitem><seg>1.8 SBU</seg><seg>19.0 MB</seg></seglistitem> </segmentedlist> <segmentedlist> diff --git a/chapter06/linux-libc-headers.xml b/chapter06/linux-libc-headers.xml index 8d1a964cd..a3cb12579 100644 --- a/chapter06/linux-libc-headers.xml +++ b/chapter06/linux-libc-headers.xml @@ -41,7 +41,8 @@ headers.</para> <para>Install the header files:</para> -<screen><userinput>cp -Rv include/asm-i386 /usr/include/asm +<screen><userinput>install -d /usr/include/asm +cp -Rv include/asm-i386/* /usr/include/asm cp -Rv include/linux /usr/include</userinput></screen> <para>Ensure that all the headers are owned by root:</para> diff --git a/chapter06/man-db.xml b/chapter06/man-db.xml new file mode 100644 index 000000000..5d80c030a --- /dev/null +++ b/chapter06/man-db.xml @@ -0,0 +1,265 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ + <!ENTITY % general-entities SYSTEM "../general.ent"> + %general-entities; +]> +<sect1 id="ch-system-man-db" role="wrap"> +<title>Man-DB-&man-db-version;</title> +<?dbhtml filename="man-db.html"?> + +<indexterm zone="ch-system-man-db"><primary sortas="a-Man-DB">Man-DB</primary></indexterm> + +<sect2 role="package"><title/> +<para>The Man-DB package contains programs for finding and viewing man pages.</para> + +<segmentedlist> +<segtitle>&buildtime;</segtitle> +<segtitle>&diskspace;</segtitle> +<seglistitem><seg>0.1 SBU</seg><seg>1.1 MB</seg></seglistitem> +</segmentedlist> + +<segmentedlist> +<segtitle>&dependencies;</segtitle> +<seglistitem><seg>Bash, Binutils, Coreutils, Gawk, GCC, DB, +Glibc, Gettext, Grep, Make, and Sed</seg></seglistitem> +</segmentedlist> +</sect2> + +<sect2 role="installation"> +<title>Installation of Man-DB</title> + +<para>Three adjustments need to be made to the sources of Man-DB.</para> + +<para>The first one changes the location of translated manual pages that come +with Man-DB, in order for them to be accessible in both traditional and +UTF-8 locales:</para> + +<screen><userinput>mv man/de{_DE.88591,} && +mv man/es{_ES.88591,} && +mv man/it{_IT.88591,} && +mv man/ja{_JP.eucJP,} && +sed -i 's,\*_\*,??,' man/Makefile.in</userinput></screen> + +<para>The second change is a <command>sed</command> substitution to delete the +<quote>/usr/man</quote> lines in the +<filename>man_db.conf</filename> file to prevent redundant results when +using programs such as <command>whatis</command>:</para> + +<screen><userinput>sed -i '/\t\/usr\/man/d' src/man_db.conf.in</userinput></screen> + +<para>The third change accounts for programs that Man-DB should be able +to find at runtime, but that haven't been installed yet:</para> + +<screen><userinput>cat >>include/manconfig.h.in <<"EOF" +<literal>#define WEB_BROWSER "exec /usr/bin/lynx" +#define COL "/usr/bin/col" +#define VGRIND "/usr/bin/vgrind" +#define GRAP "/usr/bin/grap"</literal> +EOF</userinput></screen> + +<para>The <command>col</command> program is a part of the Util-linux package, +<command>lynx</command> is a text-based web browser +(see BLFS for installation instructions), +<command>vgrind</command> converts program sources to Groff input, +and <command>grap</command> is useful for typesetting graphs in Groff documents. +The <command>vgrind</command> and <command>grap</command> programs are +not normally needed for viewing manual pages. They are +not part of LFS or BLFS, but you should be able to install them yourself +after finishing LFS if you wish to do so.</para> + +<para>Prepare Man-DB for compilation:</para> + +<screen><userinput>./configure --prefix=/usr --enable-mb-groff --disable-setuid</userinput></screen> + +<para>The meaning of the configure options:</para> + +<variablelist> +<varlistentry> +<term><parameter>--enable-mb-groff</parameter></term> +<listitem><para>This tells the <command>man</command> program to +use the <quote>ascii8</quote> and <quote>nippon</quote> Groff devices for formatting non-ISO-8859-1 +manual pages.</para></listitem> +</varlistentry> +<varlistentry> +<term><parameter>--disable-setuid</parameter></term> +<listitem><para>This disables making the <command>man</command> program +setuid to user <quote>man</quote>.</para></listitem> +</varlistentry> +</variablelist> + +<para>Compile the package:</para> + +<screen><userinput>make</userinput></screen> + +<para>Install the package:</para> + +<screen><userinput>make install</userinput></screen> + +<para>Additional information regarding the compression of +man and info pages can be found in the BLFS book at +<ulink url="&blfs-root;view/cvs/postlfs/compressdoc.html"/>.</para> + +</sect2> + +<sect2><title>Non-English Manual Pages in LFS</title> + +<para>Linux distributions have different policies concerning the character +encoding in which manual pages are stored in the filesystem. E.g., RedHat +stores all manual pages in UTF-8, while Debian uses language-specific +(mostly 8-bit) encodings. This leads to incompatibility of packages with +manual pages designed for different distributions.</para> + +<para>LFS uses the same conventions as Debian. The relationship between +language codes and the expected encoding of manual pages is listed below. +Man-DB automatically converts them to the locale encoding while viewing.</para> + +<!-- Origin: man-db-2.4.3/src/encodings.c --> +<table frame='all'><title>Expected character encoding of manual pages</title> +<tgroup cols='2' align='center' colsep='1' rowsep='1'> +<thead> +<row><entry>Language (code)</entry><entry>Encoding</entry></row> +</thead> +<tbody> +<row><entry>Danish (da)</entry><entry>ISO-8859-1</entry></row> +<row><entry>German (de)</entry><entry>ISO-8859-1</entry></row> +<row><entry>English (en)</entry><entry>ISO-8859-1</entry></row> +<row><entry>Spanish (es)</entry><entry>ISO-8859-1</entry></row> +<row><entry>Finnish (fi)</entry><entry>ISO-8859-1</entry></row> +<row><entry>French (fr)</entry><entry>ISO-8859-1</entry></row> +<row><entry>Irish (ga)</entry><entry>ISO-8859-1</entry></row> +<row><entry>Galician (gl)</entry><entry>ISO-8859-1</entry></row> +<row><entry>Indonesian (id)</entry><entry>ISO-8859-1</entry></row> +<row><entry>Icelandic (is)</entry><entry>ISO-8859-1</entry></row> +<row><entry>Italian (it)</entry><entry>ISO-8859-1</entry></row> +<row><entry>Dutch (nl)</entry><entry>ISO-8859-1</entry></row> +<!-- BUG: "no" is deprecated, should use "nb" or "nn" and symlinks --> +<row><entry>Norwegian (no)</entry><entry>ISO-8859-1</entry></row> +<!-- END BUG --> +<row><entry>Portuguese (pt)</entry><entry>ISO-8859-1</entry></row> +<row><entry>Swedish (sv)</entry><entry>ISO-8859-1</entry></row> +<!-- Languages below require patched groff --> +<row><entry>Czech (cs)</entry><entry>ISO-8859-2</entry></row> +<row><entry>Croatian (hr)</entry><entry>ISO-8859-2</entry></row> +<row><entry>Hungarian (hu)</entry><entry>ISO-8859-2</entry></row> +<row><entry>Japanese (ja)</entry><entry>EUC-JP</entry></row> +<row><entry>Korean (ko)</entry><entry>EUC-KR</entry></row> +<row><entry>Polish (pl)</entry><entry>ISO-8859-2</entry></row> +<row><entry>Russian (ru)</entry><entry>KOI8-R</entry></row> +<row><entry>Slovak (sk)</entry><entry>ISO-8859-2</entry></row> +<row><entry>Turkish (tr)</entry><entry>ISO-8859-9</entry></row> +</tbody> +</tgroup> +</table> + +<note><para>Manual pages in languages not in the list are not supported. +Norwegian doesn't work now because of the transition from no_NO to nb_NO +locale, and Korean is non-functional because of the incomplete Groff patch. +</para></note> + +<para>If upstream distributes the manual pages in the same encoding as +Man-DB expects, the manual pages can be copied to +<filename class="directory">/usr/share/man/<replaceable>[language code]</replaceable></filename>. +E.g., French manual pages +(<ulink url="http://ccb.club.fr/man/man-fr-1.58.0.tar.bz2"/>) +can be installed with the following command:</para> + +<screen role="nodump"><userinput>mkdir -p /usr/share/man/fr && +cp -rv man? /usr/share/man/fr</userinput></screen> + +<para>If upstream distributes manual pages in UTF-8 (i.e., <quote>for RedHat</quote>) +instead of the encoding listed in the table above, they have to be +converted from UTF-8 to the encoding listed in the table before +installation. E.g., Spanish manual pages +(<ulink url="http://ditec.um.es/~piernas/manpages-es/man-pages-es-1.55.tar.bz2"/>) +can be installed with the following commands:</para> + +<screen role="nodump"><userinput>mkdir -p /usr/share/man/es && +find man? -type f | grep -v 'man7/iso_8859-7.7' | \ +while read F ; do + iconv -f UTF-8 -t ISO-8859-1 $F >tmp ; mv tmp $F +done && +cp -rv man? /usr/share/man/es</userinput></screen> + +<note>The need to exclude the <filename>man7/iso_8859-7.7</filename> file +from the conversion process because it is already in ISO-8859-1 is a packaging +bug in man-pages-es-1.55. Future versions should not require this workaround.</note> + +</sect2> + +<sect2 id="contents-man-db" role="content"><title>Contents of Man-DB</title> + +<segmentedlist> +<segtitle>Installed programs</segtitle> +<seglistitem><seg>accessdb, apropos, catman, lexgrog, man, mandb, manpath, +and whatis</seg></seglistitem> +</segmentedlist> + +<variablelist><bridgehead renderas="sect3">Short Descriptions</bridgehead> +<?dbfo list-presentation="list"?> +<?dbhtml list-presentation="table"?> + + +<varlistentry id="accessdb"> +<term><command>accessdb</command></term> +<listitem> +<para>Dumps the <command>whatis</command> database contents in human-readable form</para> +<indexterm zone="ch-system-man-db accessdb"><primary sortas="b-accessdb">accessdb</primary></indexterm> +</listitem> +</varlistentry> + +<varlistentry id="apropos"> +<term><command>apropos</command></term> +<listitem> +<para>Searches the <command>whatis</command> database and displays the short descriptions +of system commands that contain a given string</para> +<indexterm zone="ch-system-man-db apropos"><primary sortas="b-apropos">apropos</primary></indexterm> +</listitem> +</varlistentry> + +<varlistentry id="catman"> +<term><command>catman</command></term> +<listitem> +<para>Creates or updates the pre-formatted manual pages</para> +<indexterm zone="ch-system-man-db catman"><primary sortas="b-catman">catman</primary></indexterm> +</listitem> +</varlistentry> + +<varlistentry id="lexgrog"> +<term><command>lexgrog</command></term> +<listitem> +<para>Displays one-line summary information about a given manual page</para> +<indexterm zone="ch-system-man-db lexgrog"><primary sortas="b-lexgrog">lexgrog</primary></indexterm> +</listitem> +</varlistentry> + +<varlistentry id="man"> +<term><command>man</command></term> +<listitem> +<para>Formats and displays the requested manual page</para> +<indexterm zone="ch-system-man-db man"><primary sortas="b-man">man</primary></indexterm> +</listitem> +</varlistentry> + +<varlistentry id="mandb"> +<term><command>mandb</command></term> +<listitem> +<para>Creates or updates the <command>whatis</command> database</para> +<indexterm zone="ch-system-man-db mandb"><primary sortas="b-mandb">mandb</primary></indexterm> +</listitem> +</varlistentry> + +<varlistentry id="whatis"> +<term><command>whatis</command></term> +<listitem> +<para>Searches the <command>whatis</command> database and displays the short descriptions +of system commands that contain the given keyword as a separate +word</para> +<indexterm zone="ch-system-man-db whatis"><primary sortas="b-whatis">whatis</primary></indexterm> +</listitem> +</varlistentry> +</variablelist> + +</sect2> + +</sect1> + diff --git a/chapter06/man-pages.xml b/chapter06/man-pages.xml index c92534e10..8f64c90f9 100644 --- a/chapter06/man-pages.xml +++ b/chapter06/man-pages.xml @@ -15,7 +15,7 @@ <segmentedlist> <segtitle>&buildtime;</segtitle> <segtitle>&diskspace;</segtitle> -<seglistitem><seg>0.1 SBU</seg><seg>18.4 MB</seg></seglistitem> +<seglistitem><seg>0.1 SBU</seg><seg>18.6 MB</seg></seglistitem> </segmentedlist> <segmentedlist> diff --git a/chapter06/man.xml b/chapter06/man.xml index 3c3db41a8..e69de29bb 100644 --- a/chapter06/man.xml +++ b/chapter06/man.xml @@ -1,180 +0,0 @@ -<?xml version="1.0" encoding="ISO-8859-1"?> -<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ - <!ENTITY % general-entities SYSTEM "../general.ent"> - %general-entities; -]> -<sect1 id="ch-system-man" role="wrap"> -<title>Man-&man-version;</title> -<?dbhtml filename="man.html"?> - -<indexterm zone="ch-system-man"><primary sortas="a-Man">Man</primary></indexterm> - -<sect2 role="package"><title/> -<para>The Man package contains programs for finding and viewing man pages.</para> - -<segmentedlist> -<segtitle>&buildtime;</segtitle> -<segtitle>&diskspace;</segtitle> -<seglistitem><seg>0.1 SBU</seg><seg>1.3 MB</seg></seglistitem> -</segmentedlist> - -<segmentedlist> -<segtitle>&dependencies;</segtitle> -<seglistitem><seg>Bash, Binutils, Bzip2, Coreutils, Diffutils, Gawk, GCC, -Glibc, Grep, Gzip, Less, Make, and Sed</seg></seglistitem> -</segmentedlist> -</sect2> - -<sect2 role="installation"> -<title>Installation of Man</title> - -<para>Two adjustments need to be made to the sources of Man.</para> - -<para>The first is a <command>sed</command> substitution to add the -<parameter>-R</parameter> switch to the <envar>PAGER</envar> -variable so that escape sequences are properly handled by Less:</para> - -<screen><userinput>sed -i 's@-is@&R@g' configure</userinput></screen> - -<para>The second is also a <command>sed</command> substitution to comment out the -<quote>MANPATH /usr/man</quote> line in the -<filename>man.conf</filename> file to prevent redundant results when -using programs such as <command>whatis</command>:</para> - -<screen><userinput>sed -i 's@MANPATH./usr/man@#&@g' src/man.conf.in</userinput></screen> - -<para>Prepare Man for compilation:</para> - -<screen><userinput>./configure -confdir=/etc</userinput></screen> - -<para>The meaning of the configure options:</para> - -<variablelist> -<varlistentry> -<term><parameter>-confdir=/etc</parameter></term> -<listitem><para>This tells the <command>man</command> program to look for the -<filename>man.conf</filename> configuration file in the <filename -class="directory">/etc</filename> directory.</para></listitem> -</varlistentry> -</variablelist> - -<para>Compile the package:</para> - -<screen><userinput>make</userinput></screen> - -<para>This package does not come with a test suite.</para> - -<para>Install the package:</para> - -<screen><userinput>make install</userinput></screen> - -<note><para>If you will be working on a terminal that does not support text -attributes such as color and bold, you can disable Select Graphic Rendition -(SGR) escape sequences by editing the <filename>man.conf</filename> file and -adding the <parameter>-c</parameter> option to the <envar>NROFF</envar> -variable. If you use multiple terminal types for one computer it may be better -to selectively add the <envar>GROFF_NO_SGR</envar> environment variable for the -terminals that do not support SGR.</para></note> - -<para>If the character set of the locale uses 8-bit characters, search for the -line beginning with <quote>NROFF</quote> in <filename>/etc/man.conf</filename>, -and verify that it matches the following:</para> - -<screen>NROFF /usr/bin/nroff -Tlatin1 -mandoc</screen> - -<para>Note that <quote>latin1</quote> should be used even if it is not -the character set of the locale. The reason is that, according to the -specification, <command>groff</command> has no means of typesetting -characters outside International Organization for Standards -(ISO) 8859-1 without some strange escape codes. When formatting man -pages, <command>groff</command> thinks that they are in the ISO 8859-1 -encoding and this <parameter>-Tlatin1</parameter> switch tells -<command>groff</command> to use the same encoding for output. Since -<command>groff</command> does no recoding of input characters, the -formatted result is really in the same encoding as input, and therefore -it is usable as the input for a pager.</para> - -<para>This does not solve the problem of a non-working -<command>man2dvi</command> program for localized man pages in -non-ISO 8859-1 locales. Also, it does not work with multibyte -character sets. The first problem does not currently have a solution. -The second issue is not of concern because the LFS installation does -not support multibyte character sets.</para> - -<para>Additional information with regards to the compression of -man and info pages can be found in the BLFS book at -<ulink url="&blfs-root;view/cvs/postlfs/compressdoc.html"/>.</para> - -</sect2> - - -<sect2 id="contents-man" role="content"><title>Contents of Man</title> - -<segmentedlist> -<segtitle>Installed programs</segtitle> -<seglistitem><seg>apropos, makewhatis, man, -man2dvi, man2html, and whatis</seg></seglistitem> -</segmentedlist> - -<variablelist><bridgehead renderas="sect3">Short Descriptions</bridgehead> -<?dbfo list-presentation="list"?> -<?dbhtml list-presentation="table"?> - -<varlistentry id="apropos"> -<term><command>apropos</command></term> -<listitem> -<para>Searches the <command>whatis</command> database and displays the short descriptions -of system commands that contain a given string</para> -<indexterm zone="ch-system-man apropos"><primary sortas="b-apropos">apropos</primary></indexterm> -</listitem> -</varlistentry> - -<varlistentry id="makewhatis"> -<term><command>makewhatis</command></term> -<listitem> -<para>Builds the <command>whatis</command> database; it reads all the man pages -in the <envar>MANPATH</envar> and writes the name and a short description in the -<command>whatis</command> database for each page</para> -<indexterm zone="ch-system-man makewhatis"><primary sortas="b-makewhatis">makewhatis</primary></indexterm> -</listitem> -</varlistentry> - -<varlistentry id="man"> -<term><command>man</command></term> -<listitem> -<para>Formats and displays the requested on-line man page</para> -<indexterm zone="ch-system-man man"><primary sortas="b-man">man</primary></indexterm> -</listitem> -</varlistentry> - -<varlistentry id="man2dvi"> -<term><command>man2dvi</command></term> -<listitem> -<para>Converts a man page into dvi format</para> -<indexterm zone="ch-system-man man2dvi"><primary sortas="b-man2dvi">man2dvi</primary></indexterm> -</listitem> -</varlistentry> - -<varlistentry id="man2html"> -<term><command>man2html</command></term> -<listitem> -<para>Converts a man page into HTML</para> -<indexterm zone="ch-system-man man2html"><primary sortas="b-man2html">man2html</primary></indexterm> -</listitem> -</varlistentry> - -<varlistentry id="whatis"> -<term><command>whatis</command></term> -<listitem> -<para>Searches the <command>whatis</command> database and displays the short descriptions -of system commands that contain the given keyword as a separate -word</para> -<indexterm zone="ch-system-man whatis"><primary sortas="b-whatis">whatis</primary></indexterm> -</listitem> -</varlistentry> -</variablelist> - -</sect2> - -</sect1> - diff --git a/chapter06/mktemp.xml b/chapter06/mktemp.xml index aff40a301..d7caa33e1 100644 --- a/chapter06/mktemp.xml +++ b/chapter06/mktemp.xml @@ -46,7 +46,8 @@ to <command>mktemp</command>. Patch Mktemp to include a <term><parameter>--with-libc</parameter></term> <listitem><para>This causes the <command>mktemp</command> program to use the <emphasis>mkstemp</emphasis> and <emphasis>mkdtemp</emphasis> -functions from the system C library.</para></listitem> +functions from the system C library instead of its own implementation of them. +</para></listitem> </varlistentry> </variablelist> diff --git a/chapter06/module-init-tools.xml b/chapter06/module-init-tools.xml index 8375beb5c..352db072e 100644 --- a/chapter06/module-init-tools.xml +++ b/chapter06/module-init-tools.xml @@ -39,23 +39,7 @@ make distclean</userinput></screen> <para>Prepare Module-Init-Tools for compilation:</para> -<screen><userinput>./configure --prefix="" --mandir=/usr/share/man \ - --enable-zlib</userinput></screen> - -<para>The meaning of the configure options:</para> - -<variablelist> -<varlistentry> -<term><parameter>--mandir=/usr/share/man</parameter></term> -<listitem><para>This ensures the man pages are installed in the correct -location.</para></listitem> -</varlistentry> -<varlistentry> -<term><parameter>--enable-zlib</parameter></term> -<listitem><para>This allows the Module-Init-Tools package to handle compressed -kernel modules.</para></listitem> -</varlistentry> -</variablelist> +<screen><userinput>./configure --prefix=/ --enable-zlib</userinput></screen> <para>Compile the package:</para> diff --git a/chapter06/ncurses.xml b/chapter06/ncurses.xml index 50e2bdc33..2df394b7a 100644 --- a/chapter06/ncurses.xml +++ b/chapter06/ncurses.xml @@ -28,10 +28,49 @@ Gawk, GCC, Glibc, Grep, Make, and Sed</seg></seglistitem> <sect2 role="installation"> <title>Installation of Ncurses</title> +<!-- Uncomment if using a dated ncurses release instead of a numbered one. + +<para>Since the release of Ncurses-&ncurses-version;, some bugs have been fixed +and features added. The most important news are ....... +To get these fixes and features, apply the rollup patch:</para> + +<screen><userinput>bzcat ../&ncurses-rollup-patch; | patch -Np1</userinput></screen> +--> + +<para>Since the release of Ncurses-&ncurses-version;, a memory leak and some +display bugs were found and fixed upstream. Apply those fixes:</para> + +<screen><userinput>patch -Np1 -i ../&ncurses-fixes-patch;</userinput></screen> <para>Prepare Ncurses for compilation:</para> -<screen><userinput>./configure --prefix=/usr --with-shared --without-debug</userinput></screen> +<screen><userinput>./configure --prefix=/usr --with-shared --without-debug --enable-widec</userinput></screen> + +<para>The meaning of the configure options:</para> + +<variablelist> +<varlistentry> +<term><parameter>--enable-widec</parameter></term> +<listitem><para>This switch causes wide-character libraries +(e.g., <filename class="libraryfile">libncursesw.so.&ncurses-version;</filename>) +to be built instead of normal ones +(e.g., <filename class="libraryfile">libncurses.so.&ncurses-version;</filename>). +These wide-character libraries are usable in both multibyte and traditional 8-bit +locales, while normal libraries work properly only in 8-bit locales. +Wide-character and normal libraries are source-compatible, but not +binary-compatible.</para> +</listitem> +</varlistentry> +<!-- +<varlistentry> +<term><parameter>- -without-cxx-binding</parameter></term> +<listitem><para>This optional switch causes the +<filename class="libraryfile">libncurses++w.a</filename> library +not to be built. Nothing in LFS and BLFS uses this library.</para> +</listitem> +</varlistentry> +--> +</variablelist> <para>Compile the package:</para> @@ -49,18 +88,49 @@ Gawk, GCC, Glibc, Grep, Make, and Sed</seg></seglistitem> <para>Fix a library that should not be executable:</para> -<screen><userinput>chmod -v 644 /usr/lib/libncurses++.a</userinput></screen> +<screen><userinput>chmod -v 644 /usr/lib/libncurses++w.a</userinput></screen> <para>Move the libraries to the <filename class="directory">/lib</filename> directory, where they are expected to reside:</para> -<screen><userinput>mv -v /usr/lib/libncurses.so.5* /lib</userinput></screen> - -<para>Because the libraries have been moved, a few symlinks point to -non-existent files. Recreate those symlinks:</para> - -<screen><userinput>ln -sfv ../../lib/libncurses.so.5 /usr/lib/libncurses.so -ln -sfv libncurses.so /usr/lib/libcurses.so</userinput></screen> +<screen><userinput>mv -v /usr/lib/libncursesw.so.5* /lib</userinput></screen> + +<para>Because the libraries have been moved, one symlink points to +a non-existent file. Recreate it:</para> + +<screen><userinput>ln -sfv ../../lib/libncursesw.so.5 /usr/lib/libncursesw.so</userinput></screen> + +<para>Many applications still expect the linker to be able to find +non-wide-character Ncurses libraries. Trick such applications into linking with +wide-character libraries by means of symlinks and linker scripts:</para> + +<screen><userinput>for lib in curses ncurses form panel menu ; do \ + rm -vf /usr/lib/lib${lib}.so ; \ + echo "INPUT(-l${lib}w)" >/usr/lib/lib${lib}.so ; \ + ln -sfv lib${lib}w.a /usr/lib/lib${lib}.a ; \ +done && +ln -sfv libncurses++w.a /usr/lib/libncurses++.a</userinput></screen> + +<para>Finally, make sure that old applications that look for +<filename class="libaryfile">-lcurses</filename> at build time are still +buildable:</para> + +<screen><userinput>echo "INPUT(-lncursesw)" >/usr/lib/libcursesw.so && +ln -sfv libncurses.so /usr/lib/libcurses.so && +ln -sfv libncursesw.a /usr/lib/libcursesw.a && +ln -sfv libncurses.a /usr/lib/libcurses.a</userinput></screen> + +<note><para>The instructions above don't create non-wide-character Ncurses +libraries since no package installed by compiling from sources would link +against them at runtime. +If you must have such libraries because of some binary-only application, +build them with the following commands:</para> +<screen role="nodump"><userinput>make distclean && +./configure --prefix=/usr --with-shared --without-normal \ + --without-debug --without-cxx-binding && +make sources libs && +cp -av lib/lib*.so.5* /usr/lib</userinput></screen> +</note> </sect2> @@ -71,8 +141,10 @@ ln -sfv libncurses.so /usr/lib/libcurses.so</userinput></screen> <segtitle>Installed libraries</segtitle> <seglistitem><seg>captoinfo (link to tic), clear, infocmp, infotocap (link to tic), reset (link to tset), tack, tic, toe, tput, and tset</seg> -<seg>libcurses.[a,so] (link to libncurses.[a,so]), libform.[a,so], libmenu.[a,so], -libncurses++.a, libncurses.[a,so], and libpanel.[a,so]</seg></seglistitem> +<seg>libcursesw.[a,so] (symlink and linker script to libncursesw.[a,so]), +libformw.[a,so], libmenuw.[a,so], +libncurses++w.a, libncursesw.[a,so], libpanelw.[a,so] and their +non-wide-character counterparts without "w" in the library names.</seg></seglistitem> </segmentedlist> <variablelist><bridgehead renderas="sect3">Short Descriptions</bridgehead> @@ -212,4 +284,3 @@ menu displayed during the kernel's <command>make menuconfig</command></para> </sect2> </sect1> - diff --git a/chapter06/perl.xml b/chapter06/perl.xml index 559327e6a..13874c8e8 100644 --- a/chapter06/perl.xml +++ b/chapter06/perl.xml @@ -20,7 +20,7 @@ <segmentedlist> <segtitle>&dependencies;</segtitle> -<seglistitem><seg>Bash, Binutils, Coreutils, Diffutils, +<seglistitem><seg>Bash, Binutils, Coreutils, DB, Diffutils, Gawk, GCC, Glibc, Grep, Iana-Etc, Make, Patch, and Sed</seg></seglistitem> </segmentedlist> </sect2> diff --git a/chapter06/psmisc.xml b/chapter06/psmisc.xml index ae50c7575..a8165860b 100644 --- a/chapter06/psmisc.xml +++ b/chapter06/psmisc.xml @@ -103,6 +103,14 @@ running any of the given commands</para> </listitem> </varlistentry> +<varlistentry id="oldfuser"> +<term><command>oldfuser</command></term> +<listitem> +<para>Reports the Process IDs (PIDs) of processes that use the given files or file systems</para> +<indexterm zone="ch-system-psmisc oldfuser"><primary sortas="b-oldfuser">oldfuser</primary></indexterm> +</listitem> +</varlistentry> + <varlistentry id="pstree"> <term><command>pstree</command></term> <listitem> diff --git a/chapter06/readline.xml b/chapter06/readline.xml index 5d4e08c29..235f38e8c 100644 --- a/chapter06/readline.xml +++ b/chapter06/readline.xml @@ -43,7 +43,9 @@ GCC, Glibc, Grep, Make, Ncurses, and Sed</seg></seglistitem> <varlistentry> <term><parameter>SHLIB_LIBS=-lncurses</parameter></term> <listitem><para>This option forces Readline to link against the -<filename class="libraryfile">libncurses</filename> library.</para></listitem> +<filename class="libraryfile">libncurses</filename> +(really, <filename class="libraryfile">libncursesw</filename>) +library.</para></listitem> </varlistentry> </variablelist> diff --git a/chapter06/shadow.xml b/chapter06/shadow.xml index 34229478a..f2df3ccac 100644 --- a/chapter06/shadow.xml +++ b/chapter06/shadow.xml @@ -48,6 +48,11 @@ prior to building Shadow. Then add <parameter>--with-libcrack</parameter> to the <screen><userinput>sed -i 's/groups$(EXEEXT) //' src/Makefile find man -name Makefile -exec sed -i '/groups/d' {} \;</userinput></screen> +<para>Disable the installation of Chinese and Korean manual pages, since Man-DB +cannot format them properly:</para> + +<screen><userinput>sed -i -e 's/ ko//' -e 's/ zh_CN zh_TW//' man/Makefile</userinput></screen> + <para>Compile the package:</para> <screen><userinput>make</userinput></screen> diff --git a/chapter06/sysklogd.xml b/chapter06/sysklogd.xml index c6076c606..cebaab225 100644 --- a/chapter06/sysklogd.xml +++ b/chapter06/sysklogd.xml @@ -33,6 +33,12 @@ Sysklogd with Linux 2.6 series kernels</para> <screen><userinput>patch -Np1 -i ../&sysklogd-fixes-patch;</userinput></screen> +<para>The following patch makes sysklogd treat bytes in the 0x80--0x9f range +literally in the messages being logged, instead of replacing them with octal +codes. Unpatched sysklogd would damage messages in the UTF-8 encoding.</para> + +<screen><userinput>patch -Np1 -i ../&sysklogd-8bit-patch;</userinput></screen> + <para>Compile the package:</para> <screen><userinput>make</userinput></screen> diff --git a/chapter06/sysvinit.xml b/chapter06/sysvinit.xml index 29651e2bd..ff2f4779d 100644 --- a/chapter06/sysvinit.xml +++ b/chapter06/sysvinit.xml @@ -84,26 +84,15 @@ ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now su:S016:once:/sbin/sulogin -1:2345:respawn:/sbin/agetty -I '\033(K' tty1 9600 -2:2345:respawn:/sbin/agetty -I '\033(K' tty2 9600 -3:2345:respawn:/sbin/agetty -I '\033(K' tty3 9600 -4:2345:respawn:/sbin/agetty -I '\033(K' tty4 9600 -5:2345:respawn:/sbin/agetty -I '\033(K' tty5 9600 -6:2345:respawn:/sbin/agetty -I '\033(K' tty6 9600 +1:2345:respawn:/sbin/agetty tty1 9600 +2:2345:respawn:/sbin/agetty tty2 9600 +3:2345:respawn:/sbin/agetty tty3 9600 +4:2345:respawn:/sbin/agetty tty4 9600 +5:2345:respawn:/sbin/agetty tty5 9600 +6:2345:respawn:/sbin/agetty tty6 9600 # End /etc/inittab</literal> EOF</userinput></screen> - -<para>The <parameter>-I '\033(K'</parameter> option tells -<command>agetty</command> to send this escape sequence to the terminal -before doing anything else. This escape sequence switches the console -character set to a user-defined one, which can be modified by running -the <command>setfont</command> program. The <command>console</command> -initscript from the LFS-Bootscripts package calls the <command>setfont</command> -program during system startup. Sending this escape sequence is -necessary for people who use non-ISO 8859-1 screen fonts, but it does -not affect native English speakers.</para> - </sect2> diff --git a/chapter06/texinfo.xml b/chapter06/texinfo.xml index af868636c..6e41dc2a3 100644 --- a/chapter06/texinfo.xml +++ b/chapter06/texinfo.xml @@ -29,6 +29,14 @@ Glibc, Grep, Make, Ncurses, Patch, and Sed</seg></seglistitem> <sect2 role="installation"> <title>Installation of Texinfo</title> +<para>The <command>info</command> program makes assumptions such as that +a string occupies the same number of character cells on the screen and bytes +in memory and that one can break the string anywhere, which fail in +UTF-8 based locales. The patch below makes them valid +by falling back to English messages when a multibyte locale is in use:</para> + +<screen><userinput>patch -Np1 -i ../&texinfo-multibyte-patch;</userinput></screen> + <para>Texinfo allows local users to overwrite arbitrary files via a symlink attack on temporary files. Apply the following patch to fix this:</para> @@ -63,6 +71,7 @@ root of the TeX tree if, for example, a TeX package will be installed later.</para></listitem> </varlistentry> </variablelist> +<!-- FIXME: doesn't the TeX installation in BLFS overwrite files there? --> <para>The Info documentation system uses a plain text file to hold its list of menu entries. The file is located at diff --git a/chapter06/udev.xml b/chapter06/udev.xml index 695fd5bb8..59c3121e0 100644 --- a/chapter06/udev.xml +++ b/chapter06/udev.xml @@ -78,6 +78,7 @@ the configuration files here:</para> <screen><userinput>install -m644 -D -v docs/writing_udev_rules/index.html /usr/share/doc/udev-&udev-version;/index.html</userinput></screen> +<!-- Not for the LiveCD --> <!-- Edit Me --> <para>Run the <command>udevstart</command> program to create our full complement of device nodes.</para> diff --git a/chapter06/vim.xml b/chapter06/vim.xml index 768632561..aecbe3ac8 100644 --- a/chapter06/vim.xml +++ b/chapter06/vim.xml @@ -53,7 +53,7 @@ class="directory">/etc</filename>:</para> <variablelist> <varlistentry> <term><parameter>--enable-multibyte</parameter></term> -<listitem><para>This optional but highly recommended switch enables support for +<listitem><para>This switch enables support for editing files in multibyte character encodings. This is needed if using a locale with a multibyte character set. This switch is also helpful to be able to edit text files initially created in Linux distributions like Fedora Core that @@ -73,25 +73,19 @@ redirecting the output to a log file.</para> <para>Install the package:</para> -<screen><userinput>make HELPSUBLOC=/usr/share/doc/vim-&vim-version; install</userinput></screen> +<screen><userinput>make install</userinput></screen> -<para>The meaning of the make option:</para> +<para>In UTF-8 locales, the <command>vimtutor</command> program +tries to convert the tutorials from ISO-8859-1 to UTF-8. Since +some tutorials are not in ISO-8859-1, the text in them is thus made unreadable. +If you unpacked the <filename>vim-&vim-version;-lang.tar.gz</filename> +archive and are going to use a UTF-8 based locale, remove non-ISO-8859-1 +tutorials. An English tutorial will be used instead.</para> +<!-- Removal is used instead of conversion in order for the user to be able to +painlessly revert his UTF-8 locale choice. --> -<variablelist> - <varlistentry> - <term><parameter>HELPSUBLOC=/usr/share/doc/vim-&vim-version;</parameter> - </term> - <listitem> - <para>This defines the directory that Vim's documentation will be - installed in. By default, Vim's documentation is installed in the - <filename class="directory">/usr/share/vim</filename> hierarchy. Other - packages install their documentation in the - <filename class="directory">/usr/share/doc</filename> hierarchy, so the - <parameter>HELPSUBLOC</parameter> option is used to ensure consistency. - </para> - </listitem> - </varlistentry> -</variablelist> +<screen><userinput>rm -f /usr/share/vim/vim63/tutor/tutor.{gr,pl,ru,sk} +rm -f /usr/share/vim/vim63/tutor/tutor.??.*</userinput></screen> <para>Many users are used to using <command>vi</command> instead of <command>vim</command>. To allow execution of <command>vim</command> @@ -100,6 +94,14 @@ symlink:</para> <screen><userinput>ln -sv vim /usr/bin/vi</userinput></screen> +<para>By default, Vim's documentation is installed in +<filename class="directory">/usr/share/vim</filename>. The following symlink +allows the documentation to be accessed via +<filename class="directory">/usr/share/doc/vim-&vim-version;</filename>, making +it consistent with the location of documentation for other packages:</para> + +<screen><userinput>ln -sv ../vim/vim64/doc /usr/share/doc/vim-&vim-version;</userinput></screen> + <para>If an X Window System is going to be installed on the LFS system, it may be necessary to recompile Vim after installing X. Vim comes with a GUI version of the editor that requires X and some diff --git a/chapter07/bootscripts.xml b/chapter07/bootscripts.xml index ea3abcfbc..775215e7e 100644 --- a/chapter07/bootscripts.xml +++ b/chapter07/bootscripts.xml @@ -1,239 +1,302 @@ <?xml version="1.0" encoding="ISO-8859-1"?> -<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ +<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" + "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ <!ENTITY % general-entities SYSTEM "../general.ent"> %general-entities; ]> + <sect1 id="ch-scripts-bootscripts" role="wrap"> -<title>LFS-Bootscripts-&lfs-bootscripts-version;</title> -<?dbhtml filename="bootscripts.html"?> + <?dbhtml filename="bootscripts.html"?> + + <title>LFS-Bootscripts-&lfs-bootscripts-version;</title> + + <indexterm zone="ch-scripts-bootscripts"> + <primary sortas="a-Bootscripts">Bootscripts</primary> + </indexterm> + + <sect2 role="package"> + <title/> -<indexterm zone="ch-scripts-bootscripts"><primary sortas="a-Bootscripts">Bootscripts</primary></indexterm> + <para>The LFS-Bootscripts package contains a set of scripts to start/stop the + LFS system at bootup/shutdown.</para> -<sect2 role="package"><title/> -<para>The LFS-Bootscripts package contains a set of scripts to start/stop the -LFS system at bootup/shutdown.</para> + <segmentedlist> + <segtitle>&buildtime;</segtitle> + <segtitle>&diskspace;</segtitle> -<segmentedlist> -<segtitle>&buildtime;</segtitle> -<segtitle>&diskspace;</segtitle> -<seglistitem><seg>0.1 SBU</seg><seg>516 KB</seg></seglistitem> -</segmentedlist> + <seglistitem> + <seg>0.1 SBU</seg> + <seg>516 KB</seg> + </seglistitem> + </segmentedlist> -<segmentedlist> -<segtitle>&dependencies;</segtitle> -<seglistitem><seg>Bash, Coreutils, and Make</seg></seglistitem> -</segmentedlist> -</sect2> + <segmentedlist> + <segtitle>&dependencies;</segtitle> -<sect2 role="installation"> -<title>Installation of LFS-Bootscripts</title> + <seglistitem> + <seg>Bash and Coreutils</seg> + </seglistitem> + </segmentedlist> -<para>Install the package:</para> + </sect2> + + <sect2 role="installation"> + <title>Installation of LFS-Bootscripts</title> + + <para>Install the package:</para> <screen><userinput>make install</userinput></screen> -</sect2> - -<sect2 id="contents-bootscripts" role="content"><title>Contents of LFS-Bootscripts</title> - -<segmentedlist> -<segtitle>Installed scripts</segtitle> -<seglistitem><seg>checkfs, cleanfs, console, functions, halt, hotplug, ifdown, ifup, -localnet, mountfs, mountkernfs, network, rc, reboot, sendsignals, setclock, static, -swap, sysklogd, template, and udev</seg></seglistitem> -</segmentedlist> - -<variablelist><bridgehead renderas="sect3">Short Descriptions</bridgehead> -<?dbfo list-presentation="list"?> -<?dbhtml list-presentation="table"?> - -<varlistentry id="checkfs-bootscripts"> -<term><command>checkfs</command></term> -<listitem> -<para>Checks the integrity of the file systems before they are mounted (with the -exception of journal and network based file systems)</para> -<indexterm zone="ch-scripts-bootscripts checkfs-bootscripts"><primary sortas="d-checkfs">checkfs</primary></indexterm> -</listitem> -</varlistentry> - -<varlistentry id="cleanfs-bootscripts"> -<term><command>cleanfs</command></term> -<listitem> -<para>Removes files that should not be -preserved between reboots, such as those in <filename class="directory">/var/run/</filename> and -<filename class="directory">/var/lock/</filename>; it re-creates <filename>/var/run/utmp</filename> -and removes the possibly present <filename>/etc/nologin</filename>, -<filename>/fastboot</filename>, and <filename>/forcefsck</filename> files</para> -<indexterm zone="ch-scripts-bootscripts cleanfs-bootscripts"><primary sortas="d-cleanfs">cleanfs</primary></indexterm> -</listitem> -</varlistentry> - -<varlistentry id="console-bootscripts"> -<term><command>console</command></term> -<listitem> -<para>Loads the correct keymap table for the desired keyboard layout; it also -sets the screen font</para> -<indexterm zone="ch-scripts-bootscripts console-bootscripts"><primary sortas="d-console">console</primary></indexterm> -</listitem> -</varlistentry> - -<varlistentry id="functions-bootscripts"> -<term><command>functions</command></term> -<listitem> -<para>Contains common functions, such as error and status checking, that are -used by several bootscripts</para> -<indexterm zone="ch-scripts-bootscripts functions-bootscripts"><primary sortas="d-functions">functions</primary></indexterm> -</listitem> -</varlistentry> - -<varlistentry id="halt-bootscripts"> -<term><command>halt</command></term> -<listitem> -<para>Halts the system</para> -<indexterm zone="ch-scripts-bootscripts halt-bootscripts"><primary sortas="d-halt">halt</primary></indexterm> -</listitem> -</varlistentry> - -<varlistentry id="hotplug-bootscripts"> -<term><command>hotplug</command></term> -<listitem> -<para>Loads modules for system devices</para> -<indexterm zone="ch-scripts-bootscripts hotplug-bootscripts"><primary sortas="d-hotplug">hotplug</primary></indexterm> -</listitem> -</varlistentry> - -<varlistentry id="ifdown-bootscripts"> -<term><command>ifdown</command></term> -<listitem> -<para>Assists the network script with stopping network devices</para> -<indexterm zone="ch-scripts-bootscripts ifdown-bootscripts"><primary sortas="d-ifdown">ifdown</primary></indexterm> -</listitem> -</varlistentry> - -<varlistentry id="ifup-bootscripts"> -<term><command>ifup</command></term> -<listitem> -<para>Assists the network script with starting network devices</para> -<indexterm zone="ch-scripts-bootscripts ifup-bootscripts"><primary sortas="d-ifup">ifup</primary></indexterm> -</listitem> -</varlistentry> - -<varlistentry id="localnet-bootscripts"> -<term><command>localnet</command></term> -<listitem> -<para>Sets up the system's hostname and local loopback device</para> -<indexterm zone="ch-scripts-bootscripts localnet-bootscripts"><primary sortas="d-localnet">localnet</primary></indexterm> -</listitem> -</varlistentry> - -<varlistentry id="mountfs-bootscripts"> -<term><command>mountfs</command></term> -<listitem> -<para>Mounts all file systems, except ones that are marked -<emphasis>noauto</emphasis> or are network based</para> -<indexterm zone="ch-scripts-bootscripts mountfs-bootscripts"><primary sortas="d-mountfs">mountfs</primary></indexterm> -</listitem> -</varlistentry> - -<varlistentry id="mountkernfs-bootscripts"> -<term><command>mountkernfs</command></term> -<listitem> -<para>Mounts virtual kernel file systems, such as <systemitem -class="filesystem">proc</systemitem></para> -<indexterm zone="ch-scripts-bootscripts mountkernfs-bootscripts"><primary sortas="d-mountkernfs">mountkernfs</primary></indexterm> -</listitem> -</varlistentry> - -<varlistentry id="network-bootscripts"> -<term><command>network</command></term> -<listitem> -<para>Sets up network interfaces, such as network cards, and sets up -the default gateway (where applicable)</para> -<indexterm zone="ch-scripts-bootscripts network-bootscripts"><primary sortas="d-network">network</primary></indexterm> -</listitem> -</varlistentry> - -<varlistentry id="rc-bootscripts"> -<term><command>rc</command></term> -<listitem> -<para>The master run-level control script; it is responsible for running all the -other bootscripts one-by-one, in a sequence determined by the name of the -symbolic links being processed</para> -<indexterm zone="ch-scripts-bootscripts rc-bootscripts"><primary sortas="d-rc">rc</primary></indexterm> -</listitem> -</varlistentry> - -<varlistentry id="reboot-bootscripts"> -<term><command>reboot</command></term> -<listitem> -<para>Reboots the system</para> -<indexterm zone="ch-scripts-bootscripts reboot-bootscripts"><primary sortas="d-reboot">reboot</primary></indexterm> -</listitem> -</varlistentry> - -<varlistentry id="sendsignals-bootscripts"> -<term><command>sendsignals</command></term> -<listitem> -<para>Makes sure every process is terminated before the system reboots -or halts</para> -<indexterm zone="ch-scripts-bootscripts sendsignals-bootscripts"><primary sortas="d-sendsignals">sendsignals</primary></indexterm> -</listitem> -</varlistentry> - -<varlistentry id="setclock-bootscripts"> -<term><command>setclock</command></term> -<listitem> -<para>Resets the kernel clock to local time in case the hardware clock -is not set to UTC time</para> -<indexterm zone="ch-scripts-bootscripts setclock-bootscripts"><primary sortas="d-setclock">setclock</primary></indexterm> -</listitem> -</varlistentry> - -<varlistentry id="static-bootscripts"> -<term><command>static</command></term> -<listitem> -<para>Provides the functionality needed to assign a static Internet -Protocol (IP) address to a network interface</para> -<indexterm zone="ch-scripts-bootscripts static-bootscripts"><primary sortas="d-static">static</primary></indexterm> -</listitem> -</varlistentry> - -<varlistentry id="swap-bootscripts"> -<term><command>swap</command></term> -<listitem> -<para>Enables and disables swap files and partitions</para> -<indexterm zone="ch-scripts-bootscripts swap-bootscripts"><primary sortas="d-swap">swap</primary></indexterm> -</listitem> -</varlistentry> - -<varlistentry id="sysklogd-bootscripts"> -<term><command>sysklogd</command></term> -<listitem> -<para>Starts and stops the system and kernel log daemons</para> -<indexterm zone="ch-scripts-bootscripts sysklogd-bootscripts"><primary sortas="d-sysklogd">sysklogd</primary></indexterm> -</listitem> -</varlistentry> - -<varlistentry id="template-bootscripts"> -<term><command>template</command></term> -<listitem> -<para>A template to create custom bootscripts for other -daemons</para> -<indexterm zone="ch-scripts-bootscripts template-bootscripts"><primary sortas="d-template">template</primary></indexterm> -</listitem> -</varlistentry> - -<varlistentry id="udev-bootscripts"> -<term><command>udev</command></term> -<listitem> -<para>Prepares the <filename class="directory">/dev</filename> directory and -starts Udev</para> -<indexterm zone="ch-scripts-bootscripts udev-bootscripts"><primary sortas="d-udev">udev</primary></indexterm> -</listitem> -</varlistentry> -</variablelist> - -</sect2> + </sect2> + + <sect2 id="contents-bootscripts" role="content"> + <title>Contents of LFS-Bootscripts</title> + + <segmentedlist> + <segtitle>Installed scripts</segtitle> + + <seglistitem> + <seg>checkfs, cleanfs, console, functions, halt, hotplug, ifdown, ifup, + localnet, mountfs, mountkernfs, network, rc, reboot, sendsignals, + setclock, static, swap, sysklogd, template, and udev</seg> + </seglistitem> + </segmentedlist> + + <variablelist> + <bridgehead renderas="sect3">Short Descriptions</bridgehead> + <?dbfo list-presentation="list"?> + <?dbhtml list-presentation="table"?> + + <varlistentry id="checkfs-bootscripts"> + <term><command>checkfs</command></term> + <listitem> + <para>Checks the integrity of the file systems before they are mounted + (with the exception of journal and network based file systems)</para> + <indexterm zone="ch-scripts-bootscripts checkfs-bootscripts"> + <primary sortas="d-checkfs">checkfs</primary> + </indexterm> + </listitem> + </varlistentry> + + <varlistentry id="cleanfs-bootscripts"> + <term><command>cleanfs</command></term> + <listitem> + <para>Removes files that should not be preserved between reboots, such + as those in <filename class="directory">/var/run/</filename> and + <filename class="directory">/var/lock/</filename>; it re-creates + <filename>/var/run/utmp</filename> and removes the possibly present + <filename>/etc/nologin</filename>, <filename>/fastboot</filename>, and + <filename>/forcefsck</filename> files</para> + <indexterm zone="ch-scripts-bootscripts cleanfs-bootscripts"> + <primary sortas="d-cleanfs">cleanfs</primary> + </indexterm> + </listitem> + </varlistentry> + + <varlistentry id="console-bootscripts"> + <term><command>console</command></term> + <listitem> + <para>Loads the correct keymap table for the desired keyboard layout; + it also sets the screen font</para> + <indexterm zone="ch-scripts-bootscripts console-bootscripts"> + <primary sortas="d-console">console</primary> + </indexterm> + </listitem> + </varlistentry> + + <varlistentry id="functions-bootscripts"> + <term><command>functions</command></term> + <listitem> + <para>Contains common functions, such as error and status checking, + that are used by several bootscripts</para> + <indexterm zone="ch-scripts-bootscripts functions-bootscripts"> + <primary sortas="d-functions">functions</primary> + </indexterm> + </listitem> + </varlistentry> + + <varlistentry id="halt-bootscripts"> + <term><command>halt</command></term> + <listitem> + <para>Halts the system</para> + <indexterm zone="ch-scripts-bootscripts halt-bootscripts"> + <primary sortas="d-halt">halt</primary> + </indexterm> + </listitem> + </varlistentry> + + <varlistentry id="hotplug-bootscripts"> + <term><command>hotplug</command></term> + <listitem> + <para>Loads modules for system devices</para> + <indexterm zone="ch-scripts-bootscripts hotplug-bootscripts"> + <primary sortas="d-hotplug">hotplug</primary> + </indexterm> + </listitem> + </varlistentry> + + <varlistentry id="ifdown-bootscripts"> + <term><command>ifdown</command></term> + <listitem> + <para>Assists the network script with stopping network devices</para> + <indexterm zone="ch-scripts-bootscripts ifdown-bootscripts"> + <primary sortas="d-ifdown">ifdown</primary> + </indexterm> + </listitem> + </varlistentry> + + <varlistentry id="ifup-bootscripts"> + <term><command>ifup</command></term> + <listitem> + <para>Assists the network script with starting network devices</para> + <indexterm zone="ch-scripts-bootscripts ifup-bootscripts"> + <primary sortas="d-ifup">ifup</primary> + </indexterm> + </listitem> + </varlistentry> + + <varlistentry id="localnet-bootscripts"> + <term><command>localnet</command></term> + <listitem> + <para>Sets up the system's hostname and local loopback device</para> + <indexterm zone="ch-scripts-bootscripts localnet-bootscripts"> + <primary sortas="d-localnet">localnet</primary> + </indexterm> + </listitem> + </varlistentry> + + <varlistentry id="mountfs-bootscripts"> + <term><command>mountfs</command></term> + <listitem> + <para>Mounts all file systems, except ones that are marked + <emphasis>noauto</emphasis> or are network based</para> + <indexterm zone="ch-scripts-bootscripts mountfs-bootscripts"> + <primary sortas="d-mountfs">mountfs</primary> + </indexterm> + </listitem> + </varlistentry> + + <varlistentry id="mountkernfs-bootscripts"> + <term><command>mountkernfs</command></term> + <listitem> + <para>Mounts virtual kernel file systems, such as <systemitem + class="filesystem">proc</systemitem></para> + <indexterm zone="ch-scripts-bootscripts mountkernfs-bootscripts"> + <primary sortas="d-mountkernfs">mountkernfs</primary> + </indexterm> + </listitem> + </varlistentry> + + <varlistentry id="network-bootscripts"> + <term><command>network</command></term> + <listitem> + <para>Sets up network interfaces, such as network cards, and sets up + the default gateway (where applicable)</para> + <indexterm zone="ch-scripts-bootscripts network-bootscripts"> + <primary sortas="d-network">network</primary> + </indexterm> + </listitem> + </varlistentry> + + <varlistentry id="rc-bootscripts"> + <term><command>rc</command></term> + <listitem> + <para>The master run-level control script; it is responsible for + running all the other bootscripts one-by-one, in a sequence determined + by the name of the symbolic links being processed</para> + <indexterm zone="ch-scripts-bootscripts rc-bootscripts"> + <primary sortas="d-rc">rc</primary> + </indexterm> + </listitem> + </varlistentry> + + <varlistentry id="reboot-bootscripts"> + <term><command>reboot</command></term> + <listitem> + <para>Reboots the system</para> + <indexterm zone="ch-scripts-bootscripts reboot-bootscripts"> + <primary sortas="d-reboot">reboot</primary> + </indexterm> + </listitem> + </varlistentry> + + <varlistentry id="sendsignals-bootscripts"> + <term><command>sendsignals</command></term> + <listitem> + <para>Makes sure every process is terminated before the system reboots + or halts</para> + <indexterm zone="ch-scripts-bootscripts sendsignals-bootscripts"> + <primary sortas="d-sendsignals">sendsignals</primary> + </indexterm> + </listitem> + </varlistentry> + + <varlistentry id="setclock-bootscripts"> + <term><command>setclock</command></term> + <listitem> + <para>Resets the kernel clock to local time in case the hardware clock + is not set to UTC time</para> + <indexterm zone="ch-scripts-bootscripts setclock-bootscripts"> + <primary sortas="d-setclock">setclock</primary> + </indexterm> + </listitem> + </varlistentry> + + <varlistentry id="static-bootscripts"> + <term><command>static</command></term> + <listitem> + <para>Provides the functionality needed to assign a static Internet + Protocol (IP) address to a network interface</para> + <indexterm zone="ch-scripts-bootscripts static-bootscripts"> + <primary sortas="d-static">static</primary> + </indexterm> + </listitem> + </varlistentry> + + <varlistentry id="swap-bootscripts"> + <term><command>swap</command></term> + <listitem> + <para>Enables and disables swap files and partitions</para> + <indexterm zone="ch-scripts-bootscripts swap-bootscripts"> + <primary sortas="d-swap">swap</primary> + </indexterm> + </listitem> + </varlistentry> + + <varlistentry id="sysklogd-bootscripts"> + <term><command>sysklogd</command></term> + <listitem> + <para>Starts and stops the system and kernel log daemons</para> + <indexterm zone="ch-scripts-bootscripts sysklogd-bootscripts"> + <primary sortas="d-sysklogd">sysklogd</primary> + </indexterm> + </listitem> + </varlistentry> + + <varlistentry id="template-bootscripts"> + <term><command>template</command></term> + <listitem> + <para>A template to create custom bootscripts for other + daemons</para> + <indexterm zone="ch-scripts-bootscripts template-bootscripts"> + <primary sortas="d-template">template</primary> + </indexterm> + </listitem> + </varlistentry> + + <varlistentry id="udev-bootscripts"> + <term><command>udev</command></term> + <listitem> + <para>Prepares the <filename class="directory">/dev</filename> + directory and starts Udev</para> + <indexterm zone="ch-scripts-bootscripts udev-bootscripts"> + <primary sortas="d-udev">udev</primary> + </indexterm> + </listitem> + </varlistentry> + + </variablelist> + + </sect2> </sect1> - diff --git a/chapter07/chapter07.xml b/chapter07/chapter07.xml index 51219b045..c47adeb08 100644 --- a/chapter07/chapter07.xml +++ b/chapter07/chapter07.xml @@ -1,24 +1,27 @@ <?xml version="1.0" encoding="ISO-8859-1"?> -<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ +<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" + "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ <!ENTITY % general-entities SYSTEM "../general.ent"> %general-entities; ]> + <chapter id="chapter-bootscripts" xreflabel="Chapter 7"> -<?dbhtml dir="chapter07"?> -<title>Setting Up System Bootscripts</title> -<?dbhtml filename="chapter07.html"?> + <?dbhtml dir="chapter07"?> + <?dbhtml filename="chapter07.html"?> + + <title>Setting Up System Bootscripts</title> -<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="introduction.xml"/> -<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="bootscripts.xml"/> -<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="usage.xml"/> -<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="udev.xml"/> -<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="setclock.xml"/> -<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="console.xml"/> -<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="sysklogd.xml"/> -<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="inputrc.xml"/> -<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="profile.xml"/> -<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="hostname.xml"/> -<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="hosts.xml"/> -<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="network.xml"/> + <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="introduction.xml"/> + <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="bootscripts.xml"/> + <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="usage.xml"/> + <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="udev.xml"/> + <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="setclock.xml"/> + <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="console.xml"/> + <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="sysklogd.xml"/> + <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="inputrc.xml"/> + <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="profile.xml"/> + <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="hostname.xml"/> + <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="hosts.xml"/> + <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="network.xml"/> </chapter> diff --git a/chapter07/console.xml b/chapter07/console.xml index 9da42a23c..ee34edcb9 100644 --- a/chapter07/console.xml +++ b/chapter07/console.xml @@ -1,107 +1,225 @@ <?xml version="1.0" encoding="ISO-8859-1"?> -<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ +<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" + "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ <!ENTITY % general-entities SYSTEM "../general.ent"> %general-entities; ]> + <sect1 id="ch-scripts-console"> -<title>Configuring the Linux Console</title> -<?dbhtml filename="console.html"?> - -<indexterm zone="ch-scripts-console"> -<primary sortas="d-console">console</primary> -<secondary>configuring</secondary></indexterm> - -<para>This section discusses how to configure the <command>console</command> -bootscript that sets up the keyboard map and the console font. If non-ASCII -characters (e.g., the British pound sign and Euro character) will not be used -and the keyboard is a U.S. one, skip this section. Without the configuration -file, the <command>console</command> bootscript will do nothing.</para> - -<para>The <command>console</command> script reads the -<filename>/etc/sysconfig/console</filename> file for configuration information. -Decide which keymap and screen font will be used. Various language-specific -HOWTO's can also help with this (see <ulink -url="http://www.tldp.org/HOWTO/HOWTO-INDEX/other-lang.html"/>. A pre-made -<filename>/etc/sysconfig/console</filename> file with known settings for several -countries was installed with the LFS-Bootscripts package, so the relevant -section can be uncommented if the country is supported. If still in doubt, look -in the <filename class="directory">/usr/share/kbd</filename> directory for valid -keymaps and screen fonts. Read <filename>loadkeys(1)</filename> and -<filename>setfont(8)</filename> to determine the correct arguments for -these programs. Once decided, create the configuration file with the following -command:</para> - -<screen><userinput>cat >/etc/sysconfig/console <<"EOF" -<literal>KEYMAP="<replaceable>[arguments for loadkeys]</replaceable>" -FONT="<replaceable>[arguments for setfont]</replaceable>"</literal> + <?dbhtml filename="console.html"?> + + <title>Configuring the Linux Console</title> + + <indexterm zone="ch-scripts-console"> + <primary sortas="d-console">console</primary> + <secondary>configuring</secondary> + </indexterm> + + <para>This section discusses how to configure the <command>console</command> + bootscript that sets up the keyboard map and the console font. If non-ASCII + characters (e.g., the copyright sign, the British pound sign and Euro symbol) + will not be used and the keyboard is a U.S. one, skip this section. Without + the configuration file, the <command>console</command> bootscript will do + nothing.</para> + + <para>The <command>console</command> script reads the + <filename>/etc/sysconfig/console</filename> file for configuration information. + Decide which keymap and screen font will be used. Various language-specific + HOWTOs can also help with this, see <ulink + url="http://www.tldp.org/HOWTO/HOWTO-INDEX/other-lang.html"/>. If still in + doubt, look in the <filename class="directory">/usr/share/kbd</filename> + directory for valid keymaps and screen fonts. Read + <filename>loadkeys(1)</filename> and <filename>setfont(8)</filename> manual + pages to determine the correct arguments for these programs.</para> + + <para>The <filename>/etc/sysconfig/console</filename> file should contain lines + of the form: VARIABLE="value". The following variables are recognized:</para> + + <variablelist> + + <varlistentry> + <term>KEYMAP</term> + <listitem> + <para>This variable specifies the arguments for the + <command>loadkeys</command> program, typically, the name of keymap + to load, e.g., <quote>es</quote>. If this variable is not set, the + bootscript will not run the <command>loadkeys</command> program, + and the default kernel keymap will be used.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>KEYMAP_CORRECTIONS</term> + <listitem> + <para>This (rarely used) variable + specifies the arguments for the second call to the + <command>loadkeys</command> program. This is useful if the stock keymap + is not completely satisfactory and a small adjustment has to be made. E.g., + to include the Euro sign into a keymap that normally doesn't have it, + set this variable to <quote>euro2</quote>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>FONT</term> + <listitem> + <para>This variable specifies the arguments for the + <command>setfont</command> program. Typically, this includes the font + name, <quote>-m</quote>, and the name of the application character + map to load. E.g., in order to load the <quote>lat1-16</quote> font + together with the <quote>8859-1</quote> application character map + (as it is appropriate in the USA), <!-- because of the copyright sign --> + set this variable to <quote>lat1-16 -m 8859-1</quote>. + If this variable is not set, the bootscript will not run the + <command>setfont</command> program, and the default VGA font will be + used together with the default application character map.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>UNICODE</term> + <listitem> + <para>Set this variable to <quote>1</quote>, <quote>yes</quote> or + <quote>true</quote> in order to put the + console into UTF-8 mode. This is useful in UTF-8 based locales and + harmful otherwise.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>LEGACY_CHARSET</term> + <listitem> + <para>For many keyboard layouts, there is no stock Unicode keymap in + the Kbd package. The <command>console</command> bootscript will + convert an available keymap to UTF-8 on the fly if this variable is + set to the encoding of the available non-UTF-8 keymap. Note, however, + that dead keys (i.e., keys that don't produce a character by + themselves, but put an accent onto a character procuced by the next + key; there are no dead keys on the standard US keyboard) and composing + (i.e., pressing Ctrl+. A E in order to produce the Æ character) + will not work in UTF-8 mode without the special kernel patch. + This variable is useful only in UTF-8 mode.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>BROKEN_COMPOSE</term> + <listitem> + <para>Set this to <quote>0</quote> if you are going to apply the kernel patch in + Chapter 8. Note that you also have to add the character set expected + by composition rules in your keymap to the FONT variable after the + <quote>-m</quote> switch. This variable is useful only in UTF-8 mode.</para> + </listitem> + </varlistentry> + + </variablelist> + + <para>Support for compiling the keymap directly into the kernel has been + removed because there were reports that it leads to incorrect results.</para> + + <para>Some examples:</para> + + <itemizedlist> + + <listitem> + <para>For a non-Unicode setup, only the KEYMAP and FONT variables are + generally needed. E.g., for a Polish setup, one would use:</para> + +<screen role="nodump"><userinput>cat > /etc/sysconfig/console << "EOF" +<literal># Begin /etc/sysconfig/console + +KEYMAP="pl2" +FONT="lat2a-16 -m 8859-2" + +# End /etc/sysconfig/console</literal> EOF</userinput></screen> + </listitem> + + <listitem> + <para>As mentioned above, it is sometimes necessary to adjust a + stock keymap slightly. The following example adds the Euro symbol to the + German keymap:</para> + +<screen role="nodump"><userinput>cat > /etc/sysconfig/console << "EOF" +<literal># Begin /etc/sysconfig/console -<para>For example, for Spanish users who also want to use the Euro -character (accessible by pressing AltGr+E), the following settings are -correct:</para> +KEYMAP="de-latin1" +KEYMAP_CORRECTIONS="euro2" +FONT="lat0-16 -m 8859-15" -<screen role="nodump"><userinput>cat >/etc/sysconfig/console <<"EOF" -<literal>KEYMAP="es euro2" -FONT="lat9-16 -u iso01"</literal> +# End /etc/sysconfig/console</literal> EOF</userinput></screen> + </listitem> -<note><para>The <envar>FONT</envar> line above is correct only for the ISO 8859-15 -character set. If using ISO 8859-1 and, therefore, a pound sign -instead of Euro, the correct <envar>FONT</envar> line would be:</para> + <listitem> + <para>The following is a Unicode-enabled example for Bulgarian, where a stock + UTF-8 keymap exists and defines no dead keys or composition rules:</para> -<screen role="nodump"><userinput>FONT="lat1-16"</userinput></screen></note> +<screen role="nodump"><userinput>cat > /etc/sysconfig/console << "EOF" +<literal># Begin /etc/sysconfig/console -<para>If the <envar>KEYMAP</envar> or <envar>FONT</envar> variable is not set, the -<command>console</command> initscript will not run the corresponding -program.</para> +UNICODE="1" +KEYMAP="bg_bds-utf8" +FONT="LatArCyrHeb-16" + +# End /etc/sysconfig/console</literal> +EOF</userinput></screen> + </listitem> -<para>In some keymaps, the Backspace and Delete keys send characters different -from ones in the default keymap built into the kernel. This confuses some -applications. For example, Emacs displays its help (instead of erasing the -character before the cursor) when Backspace is pressed. To check if the keymap -in use is affected (this works only for i386 keymaps):</para> + <listitem> + <para>Due to the use of a 512-glyph LatArCyrHeb-16 font in the previous + example, bright colors are no longer available on the Linux console unless + a framebuffer is used. If one wants to have bright colors without + framebuffer and can live without characters not belonging to his language, + it is still possible to use a language-specific 256-glyph font, as + illustrated below.</para> -<screen role="nodump"><userinput>zgrep '\W14\W' <replaceable>[/path/to/your/keymap]</replaceable></userinput></screen> +<screen role="nodump"><userinput>cat > /etc/sysconfig/console << "EOF" +<literal># Begin /etc/sysconfig/console -<para>If the keycode 14 is Backspace instead of Delete, create the -following keymap snippet to fix this issue:</para> +UNICODE="1" +KEYMAP="bg_bds-utf8" +FONT="cyr-sun16" -<screen role="nodump"><userinput>mkdir -pv /etc/kbd && cat > /etc/kbd/bs-sends-del <<"EOF" -<literal> keycode 14 = Delete Delete Delete Delete - alt keycode 14 = Meta_Delete - altgr alt keycode 14 = Meta_Delete - keycode 111 = Remove - altgr control keycode 111 = Boot - control alt keycode 111 = Boot -altgr control alt keycode 111 = Boot</literal> +# End /etc/sysconfig/console</literal> EOF</userinput></screen> + </listitem> -<para>Tell the <command>console</command> script to load this -snippet after the main keymap:</para> + <listitem> + <para>The following example illustrates keymap autoconversion from + ISO-8859-15 to UTF-8 and enabling dead keys in Unicode mode:</para> -<screen role="nodump"><userinput>cat >>/etc/sysconfig/console <<"EOF" -<literal>KEYMAP_CORRECTIONS="/etc/kbd/bs-sends-del"</literal> -EOF</userinput></screen> +<screen role="nodump"><userinput>cat > /etc/sysconfig/console << "EOF" +<literal># Begin /etc/sysconfig/console -<para>To compile the keymap directly into the kernel instead of -setting it every time from the <command>console</command> bootscript, -follow the instructions given in <xref linkend="ch-bootable-kernel" role="."/> -Doing this ensures that the keyboard will always work as expected, -even when booting into maintenance mode (by passing -<parameter>init=/bin/sh</parameter> to the kernel), because the -<command>console</command> bootscript will not be run in that -situation. Additionally, the kernel will not set the screen font -automatically. This should not pose many problems because ASCII characters -will be handled correctly, and it is unlikely that a user would need -to rely on non-ASCII characters while in maintenance mode.</para> - -<para>Since the kernel will set up the keymap, it is possible to omit -the <envar>KEYMAP</envar> variable from the -<filename>/etc/sysconfig/console</filename> configuration file. It can -also be left in place, if desired, without consequence. Keeping it -could be beneficial if running several different kernels where it is -difficult to ensure that the keymap is compiled into every one of -them.</para> +UNICODE="1" +KEYMAP="de-latin1" +KEYMAP_CORRECTIONS="euro2" +LEGACY_CHARSET="iso-8859-15" +BROKEN_COMPOSE="0" +FONT="LatArCyrHeb-16 -m 8859-15" -</sect1> +# End /etc/sysconfig/console</literal> +EOF</userinput></screen> + </listitem> + + <listitem> + <para>For Chinese, Japanese, Korean and some other languages, the Linux + console cannot be configured to display the needed characters. Users + who need such languages should install the X Window System, fonts that + cover the necessary character ranges, and the proper input method (e.g., + SCIM, it supports a wide variety of languages).</para> + </listitem> + + </itemizedlist> + + <!-- Added because folks keep posting their console file with X questions + to blfs-support list --> + <note> + <para>The <filename>/etc/sysconfig/console</filename> file only controls the + Linux text console localization. It has nothing to do with setting the proper + keyboard layout and terminal fonts in the X Window System, with ssh sessions + or with a serial console.</para> + </note> +</sect1> diff --git a/chapter07/hostname.xml b/chapter07/hostname.xml index 0d89e785f..7515d6a03 100644 --- a/chapter07/hostname.xml +++ b/chapter07/hostname.xml @@ -1,29 +1,32 @@ <?xml version="1.0" encoding="ISO-8859-1"?> -<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ +<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" + "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ <!ENTITY % general-entities SYSTEM "../general.ent"> %general-entities; ]> + <sect1 id="ch-scripts-hostname"> -<title>Configuring the localnet Script</title> -<?dbhtml filename="hostname.html"?> + <?dbhtml filename="hostname.html"?> + + <title>Configuring the localnet Script</title> -<indexterm zone="ch-scripts-hostname"> -<primary sortas="d-localnet">localnet</primary> -<secondary>configuring</secondary></indexterm> + <indexterm zone="ch-scripts-hostname"> + <primary sortas="d-localnet">localnet</primary> + <secondary>configuring</secondary> + </indexterm> -<para>Part of the job of the <command>localnet</command> script is setting the -system's hostname. This needs to be configured in the -<filename>/etc/sysconfig/network</filename> file.</para> + <para>Part of the job of the <command>localnet</command> script is setting the + system's hostname. This needs to be configured in the + <filename>/etc/sysconfig/network</filename> file.</para> -<para>Create the <filename>/etc/sysconfig/network</filename> file and enter a -hostname by running:</para> + <para>Create the <filename>/etc/sysconfig/network</filename> file and enter a + hostname by running:</para> <screen><userinput>echo "HOSTNAME=<replaceable>[lfs]</replaceable>" > /etc/sysconfig/network</userinput></screen> -<para><replaceable>[lfs]</replaceable> needs to be replaced with the name given -to the computer. Do not enter the Fully Qualified Domain Name (FQDN) here. That -information will be put in the <filename>/etc/hosts</filename> file in the next -section.</para> + <para><replaceable>[lfs]</replaceable> needs to be replaced with the name given + to the computer. Do not enter the Fully Qualified Domain Name (FQDN) here. That + information will be put in the <filename>/etc/hosts</filename> file in the next + section.</para> </sect1> - diff --git a/chapter07/hosts.xml b/chapter07/hosts.xml index f08dfab4e..6e6549913 100644 --- a/chapter07/hosts.xml +++ b/chapter07/hosts.xml @@ -1,48 +1,53 @@ <?xml version="1.0" encoding="ISO-8859-1"?> -<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ +<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" + "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ <!ENTITY % general-entities SYSTEM "../general.ent"> %general-entities; ]> + <sect1 id="ch-scripts-hosts"> -<title>Creating the /etc/hosts File</title> -<?dbhtml filename="hosts.html"?> + <?dbhtml filename="hosts.html"?> + + <title>Creating the /etc/hosts File</title> -<indexterm zone="ch-scripts-hosts"><primary sortas="e-/etc/hosts">/etc/hosts</primary></indexterm> + <indexterm zone="ch-scripts-hosts"> + <primary sortas="e-/etc/hosts">/etc/hosts</primary> + </indexterm> -<indexterm zone="ch-scripts-hosts"> -<primary sortas="d-localnet">localnet</primary> -<secondary>/etc/hosts</secondary></indexterm> + <indexterm zone="ch-scripts-hosts"> + <primary sortas="d-localnet">localnet</primary> + <secondary>/etc/hosts</secondary></indexterm> -<indexterm zone="ch-scripts-hosts"> -<primary sortas="d-network">network</primary> -<secondary>/etc/hosts</secondary></indexterm> + <indexterm zone="ch-scripts-hosts"> + <primary sortas="d-network">network</primary> + <secondary>/etc/hosts</secondary></indexterm> -<para>If a network card is to be configured, decide on the IP address, -FQDN, and possible aliases for use in the -<filename>/etc/hosts</filename> file. The syntax is:</para> + <para>If a network card is to be configured, decide on the IP address, + FQDN, and possible aliases for use in the + <filename>/etc/hosts</filename> file. The syntax is:</para> -<screen><IP address> myhost.example.org aliases</screen> +<screen><literal><IP address> myhost.example.org aliases</literal></screen> -<para>Unless the computer is to be visible to the Internet (i.e., -there is a registered domain and a valid block of assigned IP -addresses—most users do not have this), make sure that the IP -address is in the private network IP address range. Valid ranges -are:</para> + <para>Unless the computer is to be visible to the Internet (i.e., + there is a registered domain and a valid block of assigned IP + addresses—most users do not have this), make sure that the IP + address is in the private network IP address range. Valid ranges + are:</para> -<screen> Class Networks +<screen><literal> Class Networks A 10.0.0.0 B 172.16.0.0 through 172.31.0.255 - C 192.168.0.0 through 192.168.255.255</screen> + C 192.168.0.0 through 192.168.255.255</literal></screen> -<para>A valid IP address could be 192.168.1.1. A valid FQDN for this -IP could be www.linuxfromscratch.org (not recommended because this is -a valid registered domain address and could cause domain name server -issues).</para> + <para>A valid IP address could be 192.168.1.1. A valid FQDN for this + IP could be www.linuxfromscratch.org (not recommended because this is + a valid registered domain address and could cause domain name server + issues).</para> -<para>Even if not using a network card, an FQDN is still required. -This is necessary for certain programs to operate correctly.</para> + <para>Even if not using a network card, an FQDN is still required. + This is necessary for certain programs to operate correctly.</para> -<para>Create the <filename>/etc/hosts</filename> file by running:</para> + <para>Create the <filename>/etc/hosts</filename> file by running:</para> <screen><userinput>cat > /etc/hosts << "EOF" <literal># Begin /etc/hosts (network card version) @@ -53,14 +58,14 @@ This is necessary for certain programs to operate correctly.</para> # End /etc/hosts (network card version)</literal> EOF</userinput></screen> -<para>The <replaceable>[192.168.1.1]</replaceable> and -<replaceable>[<HOSTNAME>.example.org]</replaceable> -values need to be changed for specific users or requirements (if -assigned an IP address by a network/system administrator and the -machine will be connected to an existing network).</para> + <para>The <replaceable>[192.168.1.1]</replaceable> and + <replaceable>[<HOSTNAME>.example.org]</replaceable> + values need to be changed for specific users or requirements (if + assigned an IP address by a network/system administrator and the + machine will be connected to an existing network).</para> -<para>If a network card is not going to be configured, create the -<filename>/etc/hosts</filename> file by running:</para> + <para>If a network card is not going to be configured, create the + <filename>/etc/hosts</filename> file by running:</para> <screen role="nodump"><userinput>cat > /etc/hosts << "EOF" <literal># Begin /etc/hosts (no network card version) @@ -71,4 +76,3 @@ machine will be connected to an existing network).</para> EOF</userinput></screen> </sect1> - diff --git a/chapter07/inputrc.xml b/chapter07/inputrc.xml index 61418c129..5c5ce2278 100644 --- a/chapter07/inputrc.xml +++ b/chapter07/inputrc.xml @@ -1,31 +1,37 @@ <?xml version="1.0" encoding="ISO-8859-1"?> -<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ +<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" + "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ <!ENTITY % general-entities SYSTEM "../general.ent"> %general-entities; ]> + <sect1 id="ch-scripts-inputrc"> -<title>Creating the /etc/inputrc File</title> -<?dbhtml filename="inputrc.html"?> + <?dbhtml filename="inputrc.html"?> + + <title>Creating the /etc/inputrc File</title> -<indexterm zone="ch-scripts-inputrc"><primary sortas="e-/etc/inputrc">/etc/inputrc</primary></indexterm> + <indexterm zone="ch-scripts-inputrc"> + <primary sortas="e-/etc/inputrc">/etc/inputrc</primary> + </indexterm> -<para>The <filename>inputrc</filename> file handles keyboard mapping for -specific situations. This file is the startup file used by Readline — the -input-related library — used by Bash and most other shells.</para> + <para>The <filename>inputrc</filename> file handles keyboard mapping for + specific situations. This file is the startup file used by Readline — the + input-related library — used by Bash and most other shells.</para> -<para>Most people do not need user-specific keyboard mappings so the command -below creates a global <filename>/etc/inputrc</filename> used by everyone who -logs in. If you later decide you need to override the defaults on a per-user -basis, you can create a <filename>.inputrc</filename> file in the user's home -directory with the modified mappings.</para> + <para>Most people do not need user-specific keyboard mappings so the command + below creates a global <filename>/etc/inputrc</filename> used by everyone who + logs in. If you later decide you need to override the defaults on a per-user + basis, you can create a <filename>.inputrc</filename> file in the user's home + directory with the modified mappings.</para> -<para>For more information on how to edit the <filename>inputrc</filename> file, -see <command>info bash</command> under the <emphasis>Readline Init File</emphasis> -section. <command>info readline</command> is also a good source of information.</para> + <para>For more information on how to edit the <filename>inputrc</filename> + file, see <command>info bash</command> under the <emphasis>Readline Init + File</emphasis> section. <command>info readline</command> is also a good + source of information.</para> -<para>Below is a generic global <filename>inputrc</filename> along with comments -to explain what the various options do. Note that comments cannot be on the same -line as commands. Create the file using the following command:</para> + <para>Below is a generic global <filename>inputrc</filename> along with comments + to explain what the various options do. Note that comments cannot be on the same + line as commands. Create the file using the following command:</para> <screen><userinput>cat > /etc/inputrc << "EOF" <literal># Begin /etc/inputrc @@ -74,4 +80,3 @@ set bell-style none EOF</userinput></screen> </sect1> - diff --git a/chapter07/introduction.xml b/chapter07/introduction.xml index 37ab2f626..a7b846ee7 100644 --- a/chapter07/introduction.xml +++ b/chapter07/introduction.xml @@ -1,27 +1,28 @@ <?xml version="1.0" encoding="ISO-8859-1"?> -<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ +<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" + "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ <!ENTITY % general-entities SYSTEM "../general.ent"> %general-entities; ]> + <sect1 id="ch-scripts-introduction"> -<title>Introduction</title> -<?dbhtml filename="introduction.html"?> + <?dbhtml filename="introduction.html"?> -<para>This chapter details how to install and configure the LFS-Bootscripts -package. Most of these scripts will work without modification, but a few require -additional configuration files because they deal with hardware-dependent -information.</para> + <title>Introduction</title> -<para>System-V style init scripts are employed in this book because they are -widely used. For additional options, a hint detailing the BSD style -init setup is available at -<ulink -url="http://www.linuxfromscratch.org/hints/downloads/files/bsd-init.txt"/>. -Searching the LFS mailing lists for <quote>depinit</quote> will also offer -additional choices.</para> + <para>This chapter details how to install and configure the LFS-Bootscripts + package. Most of these scripts will work without modification, but a few require + additional configuration files because they deal with hardware-dependent + information.</para> -<para>If using an alternative style of init scripts, skip this chapter -and move on to <xref linkend="chapter-bootable"/>.</para> + <para>System-V style init scripts are employed in this book because they are + widely used. For additional options, a hint detailing the BSD style init setup + is available at <ulink + url="http://www.linuxfromscratch.org/hints/downloads/files/bsd-init.txt"/>. + Searching the LFS mailing lists for <quote>depinit</quote> will also offer + additional choices.</para> -</sect1> + <para>If using an alternative style of init scripts, skip this chapter + and move on to <xref linkend="chapter-bootable"/>.</para> +</sect1> diff --git a/chapter07/network.xml b/chapter07/network.xml index 229f6d394..c09f92431 100644 --- a/chapter07/network.xml +++ b/chapter07/network.xml @@ -1,40 +1,42 @@ <?xml version="1.0" encoding="ISO-8859-1"?> -<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ +<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" + "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ <!ENTITY % general-entities SYSTEM "../general.ent"> %general-entities; ]> + <sect1 id="ch-scripts-network"> -<title>Configuring the network Script</title> -<?dbhtml filename="network.html"?> - -<indexterm zone="ch-scripts-network"> -<primary sortas="d-network">network</primary> -<secondary>configuring</secondary></indexterm> - -<para>This section only applies if a network card is to be -configured.</para> - -<para>If a network card will not be used, there is likely no need to -create any configuration files relating to network cards. If that is -the case, remove the <filename class="symlink">network</filename> -symlinks from all run-level directories (<filename -class="directory">/etc/rc.d/rc*.d</filename>).</para> - -<sect2> -<title>Creating Network Interface Configuration Files</title> - -<!-- Edit Me --> -<para>Which interfaces are brought up and down by the network script -depends on the files and directories in the <filename -class="directory">/etc/sysconfig/network-devices</filename> hierarchy. -This directory should contain a sub-directory for each interface to be configured, -such as <filename>ifconfig.xyz</filename>, where <quote>xyz</quote> is a -network interface name. Inside this directory would be files defining -the attributes to this interface, such as its IP address(es), subnet -masks, and so forth.</para> - -<para>The following command creates a sample <filename>ipv4</filename> file for -the <emphasis>eth0</emphasis> device:</para> + <?dbhtml filename="network.html"?> + + <title>Configuring the network Script</title> + + <indexterm zone="ch-scripts-network"> + <primary sortas="d-network">network</primary> + <secondary>configuring</secondary></indexterm> + + <para>This section only applies if a network card is to be + configured.</para> + + <para>If a network card will not be used, there is likely no need to + create any configuration files relating to network cards. If that is + the case, remove the <filename class="symlink">network</filename> + symlinks from all run-level directories (<filename + class="directory">/etc/rc.d/rc*.d</filename>).</para> + + <sect2> + <title>Creating Network Interface Configuration Files</title> + + <para>Which interfaces are brought up and down by the network script + depends on the files and directories in the <filename + class="directory">/etc/sysconfig/network-devices</filename> hierarchy. + This directory should contain a sub-directory for each interface to be + configured, such as <filename>ifconfig.xyz</filename>, where + <quote>xyz</quote> is a network interface name. Inside this directory + would be files defining the attributes to this interface, such as its IP + address(es), subnet masks, and so forth.</para> + + <para>The following command creates a sample <filename>ipv4</filename> + file for the <emphasis>eth0</emphasis> device:</para> <screen><userinput>cd /etc/sysconfig/network-devices && mkdir -v ifconfig.eth0 && @@ -47,45 +49,50 @@ PREFIX=24 BROADCAST=192.168.1.255</literal> EOF</userinput></screen> -<para>The values of these variables must be changed in every file to match the -proper setup. If the <envar>ONBOOT</envar> variable is set to <quote>yes</quote> -the network script will bring up the Network Interface Card (NIC) during booting -of the system. If set to anything but <quote>yes</quote> the NIC will be ignored -by the network script and not be brought up.</para> - -<para>The <envar>SERVICE</envar> variable defines the method used for obtaining -the IP address. The LFS-Bootscripts package has a modular IP assignment format, -and creating additional files in the <filename -class="directory">/etc/sysconfig/network-devices/services</filename> directory -allows other IP assignment methods. This is commonly used for Dynamic Host -Configuration Protocol (DHCP), which is addressed in the BLFS book.</para> - -<para>The <envar>GATEWAY</envar> variable should contain -the default gateway IP address, if one is present. If not, then comment out -the variable entirely.</para> - -<para>The <envar>PREFIX</envar> variable needs to contain the number of bits -used in the subnet. Each octet in an IP address is 8 bits. If the subnet's -netmask is 255.255.255.0, then it is using the first three octets (24 bits) to -specify the network number. If the netmask is 255.255.255.240, it would be using -the first 28 bits. Prefixes longer than 24 bits are commonly used by DSL and -cable-based Internet Service Providers (ISPs). In this example (PREFIX=24), the -netmask is 255.255.255.0. Adjust the <envar>PREFIX</envar> variable according to -your specific subnet.</para> - -</sect2> - -<sect2 id="resolv.conf"> -<title>Creating the /etc/resolv.conf File</title> -<indexterm zone="resolv.conf"><primary sortas="e-/etc/resolv.conf">/etc/resolv.conf</primary></indexterm> - -<para>If the system is going to be connected to the Internet, it will -need some means of Domain Name Service (DNS) name resolution to -resolve Internet domain names to IP addresses, and vice versa. This is -best achieved by placing the IP address of the DNS server, available -from the ISP or network administrator, into -<filename>/etc/resolv.conf</filename>. Create the file by running the -following:</para> + <para>The values of these variables must be changed in every file to match + the proper setup. If the <envar>ONBOOT</envar> variable is set to + <quote>yes</quote> the network script will bring up the Network Interface + Card (NIC) during booting of the system. If set to anything but + <quote>yes</quote> the NIC will be ignored by the network script and not + be brought up.</para> + + <para>The <envar>SERVICE</envar> variable defines the method used for + obtaining the IP address. The LFS-Bootscripts package has a modular IP + assignment format, and creating additional files in the <filename + class="directory">/etc/sysconfig/network-devices/services</filename> + directory allows other IP assignment methods. This is commonly used for + Dynamic Host Configuration Protocol (DHCP), which is addressed in the + BLFS book.</para> + + <para>The <envar>GATEWAY</envar> variable should contain the default + gateway IP address, if one is present. If not, then comment out the + variable entirely.</para> + + <para>The <envar>PREFIX</envar> variable needs to contain the number of + bits used in the subnet. Each octet in an IP address is 8 bits. If the + subnet's netmask is 255.255.255.0, then it is using the first three octets + (24 bits) to specify the network number. If the netmask is 255.255.255.240, + it would be using the first 28 bits. Prefixes longer than 24 bits are + commonly used by DSL and cable-based Internet Service Providers (ISPs). + In this example (PREFIX=24), the netmask is 255.255.255.0. Adjust the + <envar>PREFIX</envar> variable according to your specific subnet.</para> + + </sect2> + + <sect2 id="resolv.conf"> + <title>Creating the /etc/resolv.conf File</title> + + <indexterm zone="resolv.conf"> + <primary sortas="e-/etc/resolv.conf">/etc/resolv.conf</primary> + </indexterm> + + <para>If the system is going to be connected to the Internet, it will + need some means of Domain Name Service (DNS) name resolution to + resolve Internet domain names to IP addresses, and vice versa. This is + best achieved by placing the IP address of the DNS server, available + from the ISP or network administrator, into + <filename>/etc/resolv.conf</filename>. Create the file by running the + following:</para> <screen><userinput>cat > /etc/resolv.conf << "EOF" <literal># Begin /etc/resolv.conf @@ -97,14 +104,13 @@ nameserver <replaceable>[IP address of your secondary nameserver]</replaceable> # End /etc/resolv.conf</literal> EOF</userinput></screen> -<para>Replace <replaceable>[IP address of the -nameserver]</replaceable> with the IP address of the DNS most -appropriate for the setup. There will often be more than one entry -(requirements demand secondary servers for fallback capability). If -you only need or want one DNS server, remove the second -<emphasis>nameserver</emphasis> line from the file. The IP address may -also be a router on the local network.</para> -</sect2> + <para>Replace <replaceable>[IP address of the nameserver]</replaceable> + with the IP address of the DNS most appropriate for the setup. There will + often be more than one entry (requirements demand secondary servers for + fallback capability). If you only need or want one DNS server, remove the + second <emphasis>nameserver</emphasis> line from the file. The IP address + may also be a router on the local network.</para> -</sect1> + </sect2> +</sect1> diff --git a/chapter07/profile.xml b/chapter07/profile.xml index 5748762cb..e2748d9df 100644 --- a/chapter07/profile.xml +++ b/chapter07/profile.xml @@ -1,114 +1,175 @@ <?xml version="1.0" encoding="ISO-8859-1"?> -<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ +<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" + "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ <!ENTITY % general-entities SYSTEM "../general.ent"> %general-entities; ]> + <sect1 id="ch-scripts-profile"> -<title>The Bash Shell Startup Files</title> -<?dbhtml filename="profile.html"?> - -<indexterm zone="ch-scripts-profile"><primary sortas="e-/etc/profile">/etc/profile</primary></indexterm> - -<para>The shell program <command>/bin/bash</command> (hereafter -referred to as <quote>the shell</quote>) uses a collection of startup -files to help create an environment to run in. Each file has a -specific use and may affect login and interactive environments -differently. The files in the <filename -class="directory">/etc</filename> directory provide global settings. -If an equivalent file exists in the home directory, it may override -the global settings.</para> - -<para>An interactive login shell is started after a successful login, -using <command>/bin/login</command>, by reading the -<filename>/etc/passwd</filename> file. An interactive non-login shell -is started at the command-line (e.g., -<prompt>[prompt]$</prompt><command>/bin/bash</command>). A -non-interactive shell is usually present when a shell script is -running. It is non-interactive because it is processing a script and -not waiting for user input between commands.</para> - -<para>For more information, see <command>info bash</command> under the -<emphasis>Bash Startup Files and Interactive Shells</emphasis> section.</para> - -<para>The files <filename>/etc/profile</filename> and -<filename>~/.bash_profile</filename> are read when the shell is -invoked as an interactive login shell.</para> - -<para>The base <filename>/etc/profile</filename> below sets some -environment variables necessary for native language support. Setting -them properly results in:</para> - -<itemizedlist> -<listitem><para>The output of programs translated into the native -language</para></listitem> -<listitem><para>Correct classification of characters into letters, digits and -other classes. This is necessary for <command>bash</command> to properly accept -non-ASCII characters in command lines in non-English locales</para></listitem> -<listitem><para>The correct alphabetical sorting order for the -country</para></listitem> -<listitem><para>Appropriate default paper size</para></listitem> -<listitem><para>Correct formatting of monetary, time, and date -values</para></listitem> -</itemizedlist> - -<para>This script also sets the <envar>INPUTRC</envar> environment variable that -makes Bash and Readline use the <filename>/etc/inputrc</filename> file created -earlier.</para> - -<para>Replace <replaceable>[ll]</replaceable> below with the -two-letter code for the desired language (e.g., <quote>en</quote>) and -<replaceable>[CC]</replaceable> with the two-letter code for the -appropriate country (e.g., <quote>GB</quote>). -<replaceable>[charmap]</replaceable> should be replaced with the -canonical charmap for your chosen locale.</para> - -<para>The list of all locales supported by Glibc can be obtained by running -the following command:</para> + <?dbhtml filename="profile.html"?> + + <title>The Bash Shell Startup Files</title> + + <indexterm zone="ch-scripts-profile"> + <primary sortas="e-/etc/profile">/etc/profile</primary> + </indexterm> + + <para>The shell program <command>/bin/bash</command> (hereafter referred to + as <quote>the shell</quote>) uses a collection of startup files to help + create an environment to run in. Each file has a specific use and may affect + login and interactive environments differently. The files in the <filename + class="directory">/etc</filename> directory provide global settings. If an + equivalent file exists in the home directory, it may override the global + settings.</para> + + <para>An interactive login shell is started after a successful login, using + <command>/bin/login</command>, by reading the <filename>/etc/passwd</filename> + file. An interactive non-login shell is started at the command-line (e.g., + <prompt>[prompt]$</prompt><command>/bin/bash</command>). A non-interactive + shell is usually present when a shell script is running. It is non-interactive + because it is processing a script and not waiting for user input between + commands.</para> + + <para>For more information, see <command>info bash</command> under the + <emphasis>Bash Startup Files and Interactive Shells</emphasis> section.</para> + + <para>The files <filename>/etc/profile</filename> and + <filename>~/.bash_profile</filename> are read when the shell is + invoked as an interactive login shell.</para> + + <para>The base <filename>/etc/profile</filename> below sets some + environment variables necessary for native language support. Setting + them properly results in:</para> + + <itemizedlist> + <listitem> + <para>The output of programs translated into the native language</para> + </listitem> + <listitem> + <para>Correct classification of characters into letters, digits and other + classes. This is necessary for <command>bash</command> to properly accept + non-ASCII characters in command lines in non-English locales</para> + </listitem> + <listitem> + <para>The correct alphabetical sorting order for the country</para> + </listitem> + <listitem> + <para>Appropriate default paper size</para> + </listitem> + <listitem> + <para>Correct formatting of monetary, time, and date values</para> + </listitem> + </itemizedlist> + + <para>This script also sets the <envar>INPUTRC</envar> environment variable that + makes Bash and Readline use the <filename>/etc/inputrc</filename> file created + earlier.</para> + + <para>Replace <replaceable>[ll]</replaceable> below with the two-letter code + for the desired language (e.g., <quote>en</quote>) and + <replaceable>[CC]</replaceable> with the two-letter code for the appropriate + country (e.g., <quote>GB</quote>). <replaceable>[charmap]</replaceable> should + be replaced with the canonical charmap for your chosen locale. Optional + modifiers such as <quote>@euro</quote> may also be present.</para> + + <para>The list of all locales supported by Glibc can be obtained by running + the following command:</para> <screen role="nodump"><userinput>locale -a</userinput></screen> -<para>Locales can have a number of synonyms, e.g. <quote>ISO-8859-1</quote> is -also referred to as <quote>iso8859-1</quote> and <quote>iso88591</quote>. -Some applications cannot handle the various synonyms correctly, so it is safest -to choose the canonical name for a particular locale. To determine the -canonical name, run the following command, where -<replaceable>[locale name]</replaceable> is the output given by -<command>locale -a</command> for your preferred locale -(<quote>en_GB.iso88591</quote> in our example).</para> + <para>Charmaps can have a number of aliases, e.g., <quote>ISO-8859-1</quote> + is also referred to as <quote>iso8859-1</quote> and <quote>iso88591</quote>. + Some applications cannot handle the various synonyms correctly (e.g., require + that <quote>UTF-8</quote> is written as <quote>UTF-8</quote>, not + <quote>utf8</quote>), so it is safest in most + cases to choose the canonical name for a particular locale. To determine + the canonical name, run the following command, where <replaceable>[locale + name]</replaceable> is the output given by <command>locale -a</command> for + your preferred locale (<quote>en_GB.iso88591</quote> in our example).</para> <screen role="nodump"><userinput>LC_ALL=<replaceable>[locale name]</replaceable> locale charmap</userinput></screen> -<para>For the <quote>en_GB.iso88591</quote> locale, the above command -will print:</para> + <para>For the <quote>en_GB.iso88591</quote> locale, the above command + will print:</para> + +<screen><computeroutput>ISO-8859-1</computeroutput></screen> + + <para>This results in a final locale setting of <quote>en_GB.ISO-8859-1</quote>. + It is important that the locale found using the heuristic above is tested prior + to it being added to the Bash startup files:</para> + +<screen role="nodump"><userinput>LC_ALL=[locale name] locale country +LC_ALL=[locale name] locale language +LC_ALL=[locale name] locale charmap +LC_ALL=[locale name] locale int_curr_symbol +LC_ALL=[locale name] locale int_prefix</userinput></screen> + + <para>The above commands should print the country and language names, the + character encoding used by the locale, the local currency and the prefix to dial + before the telephone number in order to get into the country. If any of the + commands above fail with a message similar to the one shown below, this means + that your locale was either not installed in Chapter 6 or is not supported by + the default installation of Glibc.</para> + +<screen><computeroutput>locale: Cannot set LC_* to default locale: No such file or directory</computeroutput></screen> -<screen>ISO-8859-1</screen> + <para>If this happens, you should either install the desired locale using the + <command>localedef</command> command, or consider choosing a different locale. + Further instructions assume that there are no such error messages from + Glibc.</para> -<para>This results in a final locale setting of <quote>en_GB.ISO-8859-1</quote>.</para> + <!-- FIXME: the xlib example will became obsolete real soon --> + <para>Some packages beyond LFS may also lack support for your chosen locale. One + example is the X library (part of the X Window System), which outputs the + following error message:</para> -<para>Once the proper locale settings have been determined, create the -<filename>/etc/profile</filename> file:</para> +<screen><computeroutput>Warning: locale not supported by Xlib, locale set to C</computeroutput></screen> + + <para>Sometimes it is possible to fix this by removing the charmap part of the + locale specification, as long as that does not change the character map that + Glibc associates with the locale (this can be checked by running the + <command>locale charmap</command> command in both locales). For example, one + would have to change "de_DE.ISO-8859-15@euro" to + "de_DE@euro" in order to get this locale recognized by Xlib.</para> + + <para>Other packages can also function incorrectly (but may not necessarily + display any error messages) if the locale name does not meet their expectations. + In those cases, investigating how other Linux distributions support your locale + might provide some useful information.</para> + + <para>Once the proper locale settings have been determined, create the + <filename>/etc/profile</filename> file:</para> <screen><userinput>cat > /etc/profile << "EOF" <literal># Begin /etc/profile -export LANG=<replaceable>[ll]</replaceable>_<replaceable>[CC]</replaceable>.<replaceable>[charmap]</replaceable> +export LANG=<replaceable>[ll]</replaceable>_<replaceable>[CC]</replaceable>.<replaceable>[charmap]</replaceable><replaceable>[@modifiers]</replaceable> export INPUTRC=/etc/inputrc # End /etc/profile</literal> EOF</userinput></screen> -<note><para>The <quote>C</quote> (default) and <quote>en_US</quote> -(the recommended one for United States English users) locales are -different.</para></note> - -<para>Setting the keyboard layout, screen font, and -locale-related environment variables are the only internationalization -steps needed to support locales that use ordinary single-byte -encodings and left-to-right writing direction. More complex cases -(including UTF-8 based locales) require additional steps and -additional patches because many applications tend to not work properly -under such conditions. These steps and patches are not included in -the LFS book and such locales are not yet supported by LFS.</para> + <para>The <quote>C</quote> (default) and <quote>en_US</quote> (the recommended + one for United States English users) locales are different. <quote>C</quote> + uses the US-ASCII 7-bit character set, and treats bytes with the high bit set + as invalid characters. That's why, e.g., the <command>ls</command> command + substitutes them with question marks in that locale. Also, an attempt to send + mail with such characters from Mutt or Pine results in non-RFC-conforming + messages being sent (the charset in the outgoing mail is indicated as <quote>unknown + 8-bit</quote>). So you can use the <quote>C</quote> locale only if you are sure that + you will never need 8-bit characters.</para> + + <para>UTF-8 based locales are not supported well by many programs. E.g., the + <command>watch</command> program displays only ASCII characters in UTF-8 + locales and has no such restriction in traditional 8-bit locales like en_US. + Without patches and/or installing software beyond BLFS, in UTF-8 based locales + you will not be able to do such basic tasks as printing plain-text files from + the command line, recording Windows-readable CDs with filenames containing + non-ASCII characters, viewing ID3v1 tags in MP3 files and so on. Work is in + progress to document and, if possible, fix such problems, see + <ulink url="&blfs-root;view/svn/introduction/locale-issues.html"/>. + It is, however, safe to use UTF-8 based locales if you are going to use only + KDE or GNOME and never open the terminal.</para> + <!-- All abovementioned problems except "watch" have a known fix beyond BLFS --> </sect1> - diff --git a/chapter07/setclock.xml b/chapter07/setclock.xml index 772f2d3d3..2098fd74d 100644 --- a/chapter07/setclock.xml +++ b/chapter07/setclock.xml @@ -1,42 +1,45 @@ <?xml version="1.0" encoding="ISO-8859-1"?> -<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ +<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" + "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ <!ENTITY % general-entities SYSTEM "../general.ent"> %general-entities; ]> + <sect1 id="ch-scripts-setclock"> -<title>Configuring the setclock Script</title> -<?dbhtml filename="setclock.html"?> - -<indexterm zone="ch-scripts-setclock"> -<primary sortas="d-setclock">setclock</primary> -<secondary>configuring</secondary></indexterm> - -<para>The <command>setclock</command> script reads the time from the hardware -clock, also known as the BIOS or the Complementary Metal Oxide Semiconductor -(CMOS) clock. If the hardware clock is set to UTC, this script will convert the -hardware clock's time to the local time using the -<filename>/etc/localtime</filename> file (which tells the -<command>hwclock</command> program which timezone the user is in). There is no -way to detect whether or not the hardware clock is set to UTC, so this -needs to be configured manually.</para> - -<para>If you cannot remember whether or not the hardware clock is set to UTC, -find out by running the <userinput>hwclock --localtime --show</userinput> -command. This will display what the current time is according to the hardware -clock. If this time matches whatever your watch says, then the hardware clock is -set to local time. If the output from <command>hwclock</command> is not local -time, chances are it is set to UTC time. Verify this by adding or subtracting -the proper amount of hours for the timezone to the time shown by -<command>hwclock</command>. For example, if you are currently in the MST -timezone, which is also known as GMT -0700, add seven hours to the local -time.</para> - -<para>Change the value of the <envar>UTC</envar> variable below -to a value of <parameter>0</parameter> (zero) if the hardware clock -is <emphasis>not</emphasis> set to UTC time.</para> - -<para>Create a new file <filename>/etc/sysconfig/clock</filename> by running -the following:</para> + <?dbhtml filename="setclock.html"?> + + <title>Configuring the setclock Script</title> + + <indexterm zone="ch-scripts-setclock"> + <primary sortas="d-setclock">setclock</primary> + <secondary>configuring</secondary></indexterm> + + <para>The <command>setclock</command> script reads the time from the hardware + clock, also known as the BIOS or the Complementary Metal Oxide Semiconductor + (CMOS) clock. If the hardware clock is set to UTC, this script will convert the + hardware clock's time to the local time using the + <filename>/etc/localtime</filename> file (which tells the + <command>hwclock</command> program which timezone the user is in). There is no + way to detect whether or not the hardware clock is set to UTC, so this + needs to be configured manually.</para> + + <para>If you cannot remember whether or not the hardware clock is set to UTC, + find out by running the <userinput>hwclock --localtime --show</userinput> + command. This will display what the current time is according to the hardware + clock. If this time matches whatever your watch says, then the hardware clock is + set to local time. If the output from <command>hwclock</command> is not local + time, chances are it is set to UTC time. Verify this by adding or subtracting + the proper amount of hours for the timezone to the time shown by + <command>hwclock</command>. For example, if you are currently in the MST + timezone, which is also known as GMT -0700, add seven hours to the local + time.</para> + + <para>Change the value of the <envar>UTC</envar> variable below + to a value of <parameter>0</parameter> (zero) if the hardware clock + is <emphasis>not</emphasis> set to UTC time.</para> + + <para>Create a new file <filename>/etc/sysconfig/clock</filename> by running + the following:</para> <screen><userinput>cat > /etc/sysconfig/clock << "EOF" <literal># Begin /etc/sysconfig/clock @@ -46,9 +49,8 @@ UTC=1 # End /etc/sysconfig/clock</literal> EOF</userinput></screen> -<para>A good hint explaining how to deal with time on LFS is available -at <ulink url="&hints-root;time.txt"/>. It explains issues such as -time zones, UTC, and the <envar>TZ</envar> environment variable.</para> + <para>A good hint explaining how to deal with time on LFS is available + at <ulink url="&hints-root;time.txt"/>. It explains issues such as + time zones, UTC, and the <envar>TZ</envar> environment variable.</para> </sect1> - diff --git a/chapter07/sysklogd.xml b/chapter07/sysklogd.xml index 70816cc66..b31420130 100644 --- a/chapter07/sysklogd.xml +++ b/chapter07/sysklogd.xml @@ -1,22 +1,26 @@ <?xml version="1.0" encoding="ISO-8859-1"?> -<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ +<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" + "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ <!ENTITY % general-entities SYSTEM "../general.ent"> %general-entities; ]> + <sect1 id="ch-scripts-sysklogd"> -<title>Configuring the sysklogd script</title> -<?dbhtml filename="sysklogd.html"?> + <?dbhtml filename="sysklogd.html"?> + + <title>Configuring the sysklogd script</title> -<indexterm zone="ch-scripts-sysklogd"> -<primary sortas="d-sysklogd">sysklogd</primary> -<secondary>configuring</secondary></indexterm> + <indexterm zone="ch-scripts-sysklogd"> + <primary sortas="d-sysklogd">sysklogd</primary> + <secondary>configuring</secondary> + </indexterm> -<para>The <filename>sysklogd</filename> script invokes the -<command>syslogd</command> program with the <parameter>-m 0</parameter> option. -This option turns off the periodic timestamp mark that -<command>syslogd</command> writes to the log files every 20 minutes by default. -If you want to turn on this periodic timestamp mark, edit the -<filename>sysklogd</filename> script and make the changes accordingly. See -<userinput>man syslogd</userinput> for more information.</para> + <para>The <filename>sysklogd</filename> script invokes the + <command>syslogd</command> program with the <parameter>-m 0</parameter> option. + This option turns off the periodic timestamp mark that + <command>syslogd</command> writes to the log files every 20 minutes by default. + If you want to turn on this periodic timestamp mark, edit the + <filename>sysklogd</filename> script and make the changes accordingly. See + <userinput>man syslogd</userinput> for more information.</para> </sect1> diff --git a/chapter07/udev.xml b/chapter07/udev.xml index 64b3a43c7..5f98e6139 100644 --- a/chapter07/udev.xml +++ b/chapter07/udev.xml @@ -1,213 +1,237 @@ <?xml version="1.0" encoding="ISO-8859-1"?> -<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ +<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" + "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ <!ENTITY % general-entities SYSTEM "../general.ent"> %general-entities; ]> + <sect1 id="ch-scripts-udev"> -<title>Device and Module Handling on an LFS System</title> -<?dbhtml filename="udev.html"?> - -<indexterm zone="ch-scripts-udev"> -<primary sortas="a-Udev">Udev</primary> -<secondary>usage</secondary></indexterm> - -<para>In <xref linkend="chapter-building-system"/>, we installed the Udev -package. Before we go into the details regarding how this works, -a brief history of previous methods of handling devices is in -order.</para> - -<para>Linux systems in general traditionally use a static device creation -method, whereby a great many device nodes are created under <filename -class="directory">/dev</filename> (sometimes literally thousands of nodes), -regardless of whether the corresponding hardware devices actually exist. This is -typically done via a <command>MAKEDEV</command> script, which contains a number -of calls to the <command>mknod</command> program with the relevant major and -minor device numbers for every possible device that might exist in the world. -Using the Udev method, only those devices which are detected by the kernel get -device nodes created for them. Because these device nodes will be created each -time the system boots, they will be stored on a <systemitem -class="filesystem">tmpfs</systemitem> file system (a virtual file system that -resides entirely in system memory). Device nodes do not require much space, so -the memory that is used is negligible.</para> - -<sect2> -<title>History</title> - -<para>In February 2000, a new filesystem called <systemitem -class="filesystem">devfs</systemitem> was merged into the 2.3.46 -kernel and was made available during the 2.4 series of -stable kernels. Although it was present in the kernel source itself, -this method of creating devices dynamically never received -overwhelming support from the core kernel developers.</para> - -<para>The main problem with the approach adopted by <systemitem -class="filesystem">devfs</systemitem> was the way it handled -device detection, creation, and naming. The latter issue, that of -device node naming, was perhaps the most critical. It is generally -accepted that if device names are allowed to be configurable, then -the device naming policy should be up to a system administrator, not -imposed on them by any particular developer(s). The <systemitem -class="filesystem">devfs</systemitem> file system also suffers from race -conditions that are inherent in its design and cannot be fixed -without a substantial revision to the kernel. It has also been marked -as deprecated due to a lack of recent maintenance.</para> - -<para>With the development of the unstable 2.5 kernel tree, later released as -the 2.6 series of stable kernels, a new virtual filesystem called <systemitem -class="filesystem">sysfs</systemitem> came to be. The job of <systemitem -class="filesystem">sysfs</systemitem> is to export a view of the system's -hardrware configuration to userspace processes. With this userspace-visible -representation, the possibility of seeing a userspace replacement for -<systemitem class="filesystem">devfs</systemitem> became much more -realistic.</para> - -</sect2> - -<sect2> -<title>Udev Implementation</title> - -<para>The <systemitem class="filesystem">sysfs</systemitem> filesystem was -mentioned briefly above. One may wonder how <systemitem -class="filesystem">sysfs</systemitem> knows about the devices present on a -system and what device numbers should be used for them. Drivers that have been -compiled into the kernel directly register their objects with <systemitem -class="filesystem">sysfs</systemitem> as they are detected by the kernel. For -drivers compiled as modules, this registration will happen when the module is -loaded. Once the <systemitem class="filesystem">sysfs</systemitem> filesystem is -mounted (on <filename class="directory">/sys</filename>), data which the -built-in drivers registered with <systemitem -class="filesystem">sysfs</systemitem> are available to userspace processes and -to <command>udev</command> for device node creation.</para> - -<para>The <command>S10udev</command> initscript takes care of creating these -device nodes when Linux is booted. This script starts by registering -<command>/sbin/udevsend</command> as a hotplug event handler. Hotplug events -(discussed below) are not usually generated during this stage, but -<command>udev</command> is registered just in case they do occur. The -<command>udevstart</command> program then walks through the <systemitem -class="filesystem">/sys</systemitem> filesystem and creates devices under -<filename class="directory">/dev</filename> that match the descriptions. For -example, <filename>/sys/class/tty/vcs/dev</filename> contains the string -<quote>7:0</quote> This string is used by <command>udevstart</command> to create -<filename>/dev/vcs</filename> with major number <emphasis>7</emphasis> and minor -<emphasis>0</emphasis>. The names and permissions of the nodes created under -the <filename class="directory">/dev</filename> directory are configured -according to the rules specified in the files within the <filename -class="directory">/etc/udev/rules.d/</filename> directory. These are numbered in -a similar fashion to the LFS-Bootscripts package. If <command>udev</command> -can't find a rule for the device it is creating, it will default permissions to -<emphasis>660</emphasis> and ownership to <emphasis>root:root</emphasis>.</para> - -<para>Once the above stage is complete, all devices that were already present -and have compiled-in drivers will be available for use. This leads us to the -devices that have modular drivers.</para> - -<para>Earlier, we mentioned the concept of a <quote>hotplug event -handler.</quote> When a new device connection is detected by the kernel, the -kernel will generate a hotplug event and look at the file -<filename>/proc/sys/kernel/hotplug</filename> to determine the userspace program -that handles the device's connection. The <command>udev</command> bootscript -registered <command>udevsend</command> as this handler. When these hotplug -events are generated, the kernel will tell <command>udev</command> to check the -<filename class="directory">/sys</filename> filesystem for the information -pertaining to this new device and create the <filename -class="directory">/dev</filename> entry for it.</para> - -<para>This brings us to one problem that exists with <command>udev</command>, -and likewise with <systemitem class="filesystem">devfs</systemitem> before it. -It is commonly referred to as the <quote>chicken and egg</quote> problem. Most -Linux distributions handle loading modules via entries in -<filename>/etc/modules.conf</filename>. Access to a device node causes the -appropriate kernel module to load. With <command>udev</command>, this method -will not work because the device node does not exist until the module is loaded. -To solve this, the <command>S05modules</command> bootscript was added to the -LFS-Bootscripts package, along with the -<filename>/etc/sysconfig/modules</filename> file. By adding module names to the -<filename>modules</filename> file, these modules will be loaded when the -computer starts up. This allows <command>udev</command> to detect the devices -and create the appropriate device nodes.</para> - -<para>Note that on slower machines or for drivers that create a lot -of device nodes, the process of creating devices may take a few -seconds to complete. This means that some device nodes may not be -immediately accessible.</para> -</sect2> - -<sect2> -<title>Handling Hotpluggable/Dynamic Devices</title> - -<para>When you plug in a device, such as a Universal Serial Bus (USB) MP3 player, the kernel -recognizes that the device is now connected and generates a hotplug -event. If the driver is already loaded (either because it was compiled -into the kernel or because it was loaded via the -<command>S05modules</command> bootscript), <command>udev</command> will -be called upon to create the relevant device node(s) according to the -<systemitem class="filesystem">sysfs</systemitem> data available in -<filename class="directory">/sys</filename>.</para> - -<para>If the driver for the just plugged in device is available as a module but -currently unloaded, the Hotplug package will load the appropriate module -and make this device available by creating the device node(s) for it.</para> -</sect2> - -<sect2> -<title>Problems with Creating Devices</title> - -<para>There are a few known problems when it comes to automatically creating -device nodes:</para> - -<para>1) A kernel driver may not export its data to <systemitem -class="filesystem">sysfs</systemitem>.</para> - -<para>This is most common with third party drivers from outside the kernel tree. -Udev will be unable to automatically create device nodes for such drivers. Use -the <filename>/etc/sysconfig/createfiles</filename> configuration file to -manually create the devices. Consult the <filename>devices.txt</filename> file -inside the kernel documentation or the documentation for that driver to find the -proper major/minor numbers.</para> - -<para>2) A non-hardware device is required. This is most common with -the Advanced Linux Sound Architecture (ALSA) project's Open Sound -System (OSS) compatibility module. These types of devices can be -handled in one of two ways:</para> - -<itemizedlist> - -<listitem><para>Adding the module names to -<filename>/etc/sysconfig/modules</filename></para></listitem> -<listitem><para>Using an -<quote>install</quote> line in -<filename>/etc/modprobe.conf</filename>. This tells the -<command>modprobe</command> command <quote>when loading this module, -also load this other module, at the same time.</quote> For example:</para> + <?dbhtml filename="udev.html"?> + + <title>Device and Module Handling on an LFS System</title> + + <indexterm zone="ch-scripts-udev"> + <primary sortas="a-Udev">Udev</primary> + <secondary>usage</secondary> + </indexterm> + + <para>In <xref linkend="chapter-building-system"/>, we installed the Udev + package. Before we go into the details regarding how this works, + a brief history of previous methods of handling devices is in + order.</para> + + <para>Linux systems in general traditionally use a static device creation + method, whereby a great many device nodes are created under <filename + class="directory">/dev</filename> (sometimes literally thousands of nodes), + regardless of whether the corresponding hardware devices actually exist. This is + typically done via a <command>MAKEDEV</command> script, which contains a number + of calls to the <command>mknod</command> program with the relevant major and + minor device numbers for every possible device that might exist in the world. + Using the Udev method, only those devices which are detected by the kernel get + device nodes created for them. Because these device nodes will be created each + time the system boots, they will be stored on a <systemitem + class="filesystem">tmpfs</systemitem> file system (a virtual file system that + resides entirely in system memory). Device nodes do not require much space, so + the memory that is used is negligible.</para> + + <sect2> + <title>History</title> + + <para>In February 2000, a new filesystem called <systemitem + class="filesystem">devfs</systemitem> was merged into the 2.3.46 kernel + and was made available during the 2.4 series of stable kernels. Although + it was present in the kernel source itself, this method of creating devices + dynamically never received overwhelming support from the core kernel + developers.</para> + + <para>The main problem with the approach adopted by <systemitem + class="filesystem">devfs</systemitem> was the way it handled device + detection, creation, and naming. The latter issue, that of device node + naming, was perhaps the most critical. It is generally accepted that if + device names are allowed to be configurable, then the device naming policy + should be up to a system administrator, not imposed on them by any + particular developer(s). The <systemitem class="filesystem">devfs</systemitem> + file system also suffers from race conditions that are inherent in its design + and cannot be fixed without a substantial revision to the kernel. It has also + been marked as deprecated due to a lack of recent maintenance.</para> + + <para>With the development of the unstable 2.5 kernel tree, later released as + the 2.6 series of stable kernels, a new virtual filesystem called <systemitem + class="filesystem">sysfs</systemitem> came to be. The job of <systemitem + class="filesystem">sysfs</systemitem> is to export a view of the system's + hardrware configuration to userspace processes. With this userspace-visible + representation, the possibility of seeing a userspace replacement for + <systemitem class="filesystem">devfs</systemitem> became much more + realistic.</para> + + </sect2> + + <sect2> + <title>Udev Implementation</title> + + <para>The <systemitem class="filesystem">sysfs</systemitem> filesystem was + mentioned briefly above. One may wonder how <systemitem + class="filesystem">sysfs</systemitem> knows about the devices present on + a system and what device numbers should be used for them. Drivers that have + been compiled into the kernel directly register their objects with + <systemitem class="filesystem">sysfs</systemitem> as they are detected by + the kernel. For drivers compiled as modules, this registration will happen + when the module is loaded. Once the <systemitem + class="filesystem">sysfs</systemitem> filesystem is mounted (on <filename + class="directory">/sys</filename>), data which the built-in drivers + registered with <systemitem class="filesystem">sysfs</systemitem> are + available to userspace processes and to <command>udev</command> for device + node creation.</para> + + <para>The <command>S10udev</command> initscript takes care of creating + these device nodes when Linux is booted. This script starts by registering + <command>/sbin/udevsend</command> as a hotplug event handler. Hotplug events + (discussed below) are not usually generated during this stage, but + <command>udev</command> is registered just in case they do occur. The + <command>udevstart</command> program then walks through the <systemitem + class="filesystem">/sys</systemitem> filesystem and creates devices under + <filename class="directory">/dev</filename> that match the descriptions. + For example, <filename>/sys/class/tty/vcs/dev</filename> contains the + string <quote>7:0</quote> This string is used by <command>udevstart</command> + to create <filename>/dev/vcs</filename> with major number + <emphasis>7</emphasis> and minor <emphasis>0</emphasis>. The names and + permissions of the nodes created under the <filename + class="directory">/dev</filename> directory are configured according to the + rules specified in the files within the <filename + class="directory">/etc/udev/rules.d/</filename> directory. These are + numbered in a similar fashion to the LFS-Bootscripts package. If + <command>udev</command> can't find a rule for the device it is creating, + it will default permissions to <emphasis>660</emphasis> and ownership to + <emphasis>root:root</emphasis>.</para> + + <para>Once the above stage is complete, all devices that were already present + and have compiled-in drivers will be available for use. This leads us to the + devices that have modular drivers.</para> + + <para>Earlier, we mentioned the concept of a <quote>hotplug event + handler.</quote> When a new device connection is detected by the kernel, + the kernel will generate a hotplug event and look at the file + <filename>/proc/sys/kernel/hotplug</filename> to determine the userspace + program that handles the device's connection. The <command>udev</command> + bootscript registered <command>udevsend</command> as this handler. When + these hotplug events are generated, the kernel will tell + <command>udev</command> to check the <filename + class="directory">/sys</filename> filesystem for the information pertaining + to this new device and create the <filename class="directory">/dev</filename> + entry for it.</para> + + <para>This brings us to one problem that exists with <command>udev</command>, + and likewise with <systemitem class="filesystem">devfs</systemitem> before it. + It is commonly referred to as the <quote>chicken and egg</quote> problem. Most + Linux distributions handle loading modules via entries in + <filename>/etc/modules.conf</filename>. Access to a device node causes the + appropriate kernel module to load. With <command>udev</command>, this method + will not work because the device node does not exist until the module is loaded. + To solve this, the <command>S05modules</command> bootscript was added to the + LFS-Bootscripts package, along with the + <filename>/etc/sysconfig/modules</filename> file. By adding module names to the + <filename>modules</filename> file, these modules will be loaded when the + computer starts up. This allows <command>udev</command> to detect the devices + and create the appropriate device nodes.</para> + + <para>Note that on slower machines or for drivers that create a lot of device + nodes, the process of creating devices may take a few seconds to complete. + This means that some device nodes may not be immediately accessible.</para> + + </sect2> + + <sect2> + <title>Handling Hotpluggable/Dynamic Devices</title> + + <para>When you plug in a device, such as a Universal Serial Bus (USB) MP3 + player, the kernel recognizes that the device is now connected and generates + a hotplug event. If the driver is already loaded (either because it was + compiled into the kernel or because it was loaded via the + <command>S05modules</command> bootscript), <command>udev</command> will be + called upon to create the relevant device node(s) according to the + <systemitem class="filesystem">sysfs</systemitem> data available in + <filename class="directory">/sys</filename>.</para> + + <para>If the driver for the just plugged in device is available as a module but + currently unloaded, the Hotplug package will load the appropriate module + and make this device available by creating the device node(s) for it.</para> + + </sect2> + + <sect2> + <title>Problems with Creating Devices</title> + + <para>There are a few known problems when it comes to automatically creating + device nodes:</para> + + <para>1) A kernel driver may not export its data to <systemitem + class="filesystem">sysfs</systemitem>.</para> + + <para>This is most common with third party drivers from outside the kernel + tree. Udev will be unable to automatically create device nodes for such + drivers. Use the <filename>/etc/sysconfig/createfiles</filename> + configuration file to manually create the devices. Consult the + <filename>devices.txt</filename> file inside the kernel documentation or + the documentation for that driver to find the proper major/minor + numbers.</para> + + <para>2) A non-hardware device is required. This is most common with + the Advanced Linux Sound Architecture (ALSA) project's Open Sound + System (OSS) compatibility module. These types of devices can be + handled in one of two ways:</para> + + <itemizedlist> + + <listitem> + <para>Adding the module names to + <filename>/etc/sysconfig/modules</filename></para> + </listitem> + + <listitem> + <para>Using an <quote>install</quote> line in + <filename>/etc/modprobe.conf</filename>. This tells the + <command>modprobe</command> command <quote>when loading this module, + also load this other module, at the same time.</quote> + For example:</para> <screen role="nodump"><userinput>install snd-pcm modprobe -i snd-pcm ; modprobe \ snd-pcm-oss ; true</userinput></screen> -<para>This will cause the system to load both the -<emphasis>snd-pcm</emphasis> and <emphasis>snd-pcm-oss</emphasis> -modules when any request is made to load the driver -<emphasis>snd-pcm</emphasis>.</para></listitem> -</itemizedlist> -</sect2> + <para>This will cause the system to load both the + <emphasis>snd-pcm</emphasis> and <emphasis>snd-pcm-oss</emphasis> + modules when any request is made to load the driver + <emphasis>snd-pcm</emphasis>.</para> + </listitem> -<sect2> -<title>Useful Reading</title> + </itemizedlist> -<para>Additional helpful documentation is available at the following -sites:</para> + </sect2> -<itemizedlist> -<listitem><para>A Userspace Implementation of <systemitem class="filesystem">devfs</systemitem> -<ulink url="http://www.kroah.com/linux/talks/ols_2003_udev_paper/Reprint-Kroah-Hartman-OLS2003.pdf"/></para></listitem> + <sect2> + <title>Useful Reading</title> -<listitem><para>udev FAQ -<ulink url="http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev-FAQ"/></para></listitem> + <para>Additional helpful documentation is available at the following + sites:</para> -<listitem><para>The Linux Kernel Driver Model -<ulink url="http://public.planetmirror.com/pub/lca/2003/proceedings/papers/Patrick_Mochel/Patrick_Mochel.pdf"/></para></listitem> -</itemizedlist> -</sect2> + <itemizedlist> -</sect1> + <listitem> + <para>A Userspace Implementation of <systemitem class="filesystem">devfs</systemitem> + <ulink url="http://www.kroah.com/linux/talks/ols_2003_udev_paper/Reprint-Kroah-Hartman-OLS2003.pdf"/></para> + </listitem> + + <listitem> + <para>udev FAQ + <ulink url="http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev-FAQ"/></para> + </listitem> + + <listitem> + <para>The Linux Kernel Driver Model + <ulink url="http://public.planetmirror.com/pub/lca/2003/proceedings/papers/Patrick_Mochel/Patrick_Mochel.pdf"/></para> + </listitem> + </itemizedlist> + + </sect2> + +</sect1> diff --git a/chapter07/usage.xml b/chapter07/usage.xml index 4ff169ee8..991cf55dc 100644 --- a/chapter07/usage.xml +++ b/chapter07/usage.xml @@ -1,29 +1,33 @@ <?xml version="1.0" encoding="ISO-8859-1"?> -<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ +<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" + "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ <!ENTITY % general-entities SYSTEM "../general.ent"> %general-entities; ]> + <sect1 id="ch-scripts-usage"> -<title>How Do These Bootscripts Work?</title> -<?dbhtml filename="usage.html"?> - -<indexterm zone="ch-scripts-usage"> -<primary sortas="a-Bootscripts">Bootscripts</primary> -<secondary>usage</secondary></indexterm> - -<para>Linux uses a special booting facility named SysVinit that is based on a -concept of <emphasis>run-levels</emphasis>. It can be quite different from one -system to another, so it cannot be assumed that because things worked in one -particular Linux distribution, they should work the same in LFS too. LFS has its -own way of doing things, but it respects generally accepted standards.</para> - -<para>SysVinit (which will be referred to as <quote>init</quote> from now on) -works using a run-levels scheme. There are seven (numbered 0 to 6) run-levels -(actually, there are more run-levels, but they are for special cases and are -generally not used. See <filename>init(8)</filename> for more details), and each one -of those corresponds to the actions the computer is supposed to perform when it -starts up. The default run-level is 3. Here are the descriptions of the -different run-levels as they are implemented:</para> + <?dbhtml filename="usage.html"?> + + <title>How Do These Bootscripts Work?</title> + + <indexterm zone="ch-scripts-usage"> + <primary sortas="a-Bootscripts">Bootscripts</primary> + <secondary>usage</secondary> + </indexterm> + + <para>Linux uses a special booting facility named SysVinit that is based on a + concept of <emphasis>run-levels</emphasis>. It can be quite different from one + system to another, so it cannot be assumed that because things worked in one + particular Linux distribution, they should work the same in LFS too. LFS has its + own way of doing things, but it respects generally accepted standards.</para> + + <para>SysVinit (which will be referred to as <quote>init</quote> from now on) + works using a run-levels scheme. There are seven (numbered 0 to 6) run-levels + (actually, there are more run-levels, but they are for special cases and are + generally not used. See <filename>init(8)</filename> for more details), and + each one of those corresponds to the actions the computer is supposed to + perform when it starts up. The default run-level is 3. Here are the + descriptions of the different run-levels as they are implemented:</para> <literallayout>0: halt the computer 1: single-user mode @@ -33,83 +37,93 @@ different run-levels as they are implemented:</para> 5: same as 4, it is usually used for GUI login (like X's <command>xdm</command> or KDE's <command>kdm</command>) 6: reboot the computer</literallayout> -<para>The command used to change run-levels is <command>init -<replaceable>[runlevel]</replaceable></command>, where -<replaceable>[runlevel]</replaceable> is the target run-level. For example, to -reboot the computer, a user could issue the <command>init 6</command> command, -which is an alias for the <command>reboot</command> command. Likewise, -<command>init 0</command> is an alias for the <command>halt</command> -command.</para> - -<para>There are a number of directories under <filename -class="directory">/etc/rc.d</filename> that look like <filename -class="directory">rc?.d</filename> (where ? is the number of the run-level) and -<filename class="directory">rcsysinit.d</filename>, all containing a number of -symbolic links. Some begin with a <emphasis>K</emphasis>, the others begin with -an <emphasis>S</emphasis>, and all of them have two numbers following the -initial letter. The K means to stop (kill) a service and the S means to start a -service. The numbers determine the order in which the scripts are run, from 00 -to 99—the lower the number the earlier it gets executed. When -<command>init</command> switches to another run-level, the appropriate services -are either started or stopped, depending on the runlevel chosen.</para> - -<para>The real scripts are in <filename -class="directory">/etc/rc.d/init.d</filename>. They do the actual -work, and the symlinks all point to them. Killing links and starting -links point to the same script in <filename -class="directory">/etc/rc.d/init.d</filename>. This is because the -scripts can be called with different parameters like -<parameter>start</parameter>, <parameter>stop</parameter>, -<parameter>restart</parameter>, <parameter>reload</parameter>, and -<parameter>status</parameter>. When a K link is encountered, the -appropriate script is run with the <parameter>stop</parameter> -argument. When an S link is encountered, the appropriate script is run -with the <parameter>start</parameter> argument.</para> - -<para>There is one exception to this explanation. Links that start -with an <emphasis>S</emphasis> in the <filename -class="directory">rc0.d</filename> and <filename -class="directory">rc6.d</filename> directories will not cause anything -to be started. They will be called with the parameter -<parameter>stop</parameter> to stop something. The logic behind this -is that when a user is going to reboot or halt the system, nothing -needs to be started. The system only needs to be stopped.</para> - -<para>These are descriptions of what the arguments make the scripts -do:</para> - -<variablelist> -<varlistentry> -<term><parameter>start</parameter></term> -<listitem><para>The service is started.</para></listitem> -</varlistentry> - -<varlistentry> -<term><parameter>stop</parameter></term> -<listitem><para>The service is stopped.</para></listitem> -</varlistentry> - -<varlistentry> -<term><parameter>restart</parameter></term> -<listitem><para>The service is stopped and then started again.</para></listitem> -</varlistentry> - -<varlistentry> -<term><parameter>reload</parameter></term> -<listitem><para>The configuration of the service is updated. -This is used after the configuration file of a service was modified, when -the service does not need to be restarted.</para></listitem> -</varlistentry> - -<varlistentry> -<term><parameter>status</parameter></term> -<listitem><para>Tells if the service is running and with which PIDs.</para></listitem> -</varlistentry> -</variablelist> - -<para>Feel free to modify the way the boot process works (after all, -it is your own LFS system). The files given here are an example of how -it can be done.</para> + <para>The command used to change run-levels is <command>init + <replaceable>[runlevel]</replaceable></command>, where + <replaceable>[runlevel]</replaceable> is the target run-level. For example, to + reboot the computer, a user could issue the <command>init 6</command> command, + which is an alias for the <command>reboot</command> command. Likewise, + <command>init 0</command> is an alias for the <command>halt</command> + command.</para> + + <para>There are a number of directories under <filename + class="directory">/etc/rc.d</filename> that look like <filename + class="directory">rc?.d</filename> (where ? is the number of the run-level) and + <filename class="directory">rcsysinit.d</filename>, all containing a number of + symbolic links. Some begin with a <emphasis>K</emphasis>, the others begin with + an <emphasis>S</emphasis>, and all of them have two numbers following the + initial letter. The K means to stop (kill) a service and the S means to start a + service. The numbers determine the order in which the scripts are run, from 00 + to 99—the lower the number the earlier it gets executed. When + <command>init</command> switches to another run-level, the appropriate services + are either started or stopped, depending on the runlevel chosen.</para> + + <para>The real scripts are in <filename + class="directory">/etc/rc.d/init.d</filename>. They do the actual work, and + the symlinks all point to them. Killing links and starting links point to + the same script in <filename class="directory">/etc/rc.d/init.d</filename>. + This is because the scripts can be called with different parameters like + <parameter>start</parameter>, <parameter>stop</parameter>, + <parameter>restart</parameter>, <parameter>reload</parameter>, and + <parameter>status</parameter>. When a K link is encountered, the appropriate + script is run with the <parameter>stop</parameter> argument. When an S link + is encountered, the appropriate script is run with the + <parameter>start</parameter> argument.</para> + + <para>There is one exception to this explanation. Links that start + with an <emphasis>S</emphasis> in the <filename + class="directory">rc0.d</filename> and <filename + class="directory">rc6.d</filename> directories will not cause anything + to be started. They will be called with the parameter + <parameter>stop</parameter> to stop something. The logic behind this + is that when a user is going to reboot or halt the system, nothing + needs to be started. The system only needs to be stopped.</para> + + <para>These are descriptions of what the arguments make the scripts + do:</para> + + <variablelist> + + <varlistentry> + <term><parameter>start</parameter></term> + <listitem> + <para>The service is started.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><parameter>stop</parameter></term> + <listitem> + <para>The service is stopped.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><parameter>restart</parameter></term> + <listitem> + <para>The service is stopped and then started again.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><parameter>reload</parameter></term> + <listitem> + <para>The configuration of the service is updated. + This is used after the configuration file of a service was modified, when + the service does not need to be restarted.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><parameter>status</parameter></term> + <listitem> + <para>Tells if the service is running and with which PIDs.</para> + </listitem> + </varlistentry> + + </variablelist> + + <para>Feel free to modify the way the boot process works (after all, + it is your own LFS system). The files given here are an example of how + it can be done.</para> </sect1> - diff --git a/chapter08/chapter08.xml b/chapter08/chapter08.xml index ffe20ce1e..ace47328b 100644 --- a/chapter08/chapter08.xml +++ b/chapter08/chapter08.xml @@ -1,16 +1,19 @@ <?xml version="1.0" encoding="ISO-8859-1"?> -<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ +<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" + "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ <!ENTITY % general-entities SYSTEM "../general.ent"> %general-entities; ]> + <chapter id="chapter-bootable" xreflabel="Chapter 8"> -<?dbhtml dir="chapter08"?> -<title>Making the LFS System Bootable</title> -<?dbhtml filename="chapter08.html"?> + <?dbhtml dir="chapter08"?> + <?dbhtml filename="chapter08.html"?> + + <title>Making the LFS System Bootable</title> -<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="introduction.xml"/> -<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="fstab.xml"/> -<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="kernel.xml"/> -<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="grub.xml"/> + <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="introduction.xml"/> + <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="fstab.xml"/> + <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="kernel.xml"/> + <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="grub.xml"/> </chapter> diff --git a/chapter08/fstab.xml b/chapter08/fstab.xml index 60322d2da..fb7961346 100644 --- a/chapter08/fstab.xml +++ b/chapter08/fstab.xml @@ -1,18 +1,23 @@ <?xml version="1.0" encoding="ISO-8859-1"?> -<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ +<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" + "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ <!ENTITY % general-entities SYSTEM "../general.ent"> %general-entities; ]> + <sect1 id="ch-bootable-fstab"> -<title>Creating the /etc/fstab File</title> -<?dbhtml filename="fstab.html"?> + <?dbhtml filename="fstab.html"?> + + <title>Creating the /etc/fstab File</title> -<indexterm zone="ch-bootable-fstab"><primary sortas="e-/etc/fstab">/etc/fstab</primary></indexterm> + <indexterm zone="ch-bootable-fstab"> + <primary sortas="e-/etc/fstab">/etc/fstab</primary> + </indexterm> -<para>The <filename>/etc/fstab</filename> file is used by some programs to -determine where file systems are to be mounted by default, in which order, and -which must be checked (for integrity errors) prior to mounting. Create a new -file systems table like this:</para> + <para>The <filename>/etc/fstab</filename> file is used by some programs to + determine where file systems are to be mounted by default, in which order, and + which must be checked (for integrity errors) prior to mounting. Create a new + file systems table like this:</para> <screen><userinput>cat > /etc/fstab << "EOF" <literal># Begin /etc/fstab @@ -29,36 +34,74 @@ shm /dev/shm tmpfs defaults 0 0 # End /etc/fstab</literal> EOF</userinput></screen> -<para>Replace <replaceable>[xxx]</replaceable>, -<replaceable>[yyy]</replaceable>, and <replaceable>[fff]</replaceable> -with the values appropriate for the system, for example, <filename -class="partition">hda2</filename>, <filename -class="partition">hda5</filename>, and <systemitem -class="filesystem">ext2</systemitem>. For details on the six -fields in this file, see <command>man 5 fstab</command>.</para> - -<para>The <filename class="directory">/dev/shm</filename> mount point -for <systemitem class="filesystem">tmpfs</systemitem> is included to -allow enabling POSIX-shared memory. The kernel must have the required -support built into it for this to work (more about this is in the next -section). Please note that very little software currently uses -POSIX-shared memory. Therefore, consider the <filename -class="directory">/dev/shm</filename> mount point optional. For more -information, see -<filename>Documentation/filesystems/tmpfs.txt</filename> in the kernel -source tree.</para> - -<para>There are other lines which may be added to the -<filename>/etc/fstab</filename> file. One example is a line for USB -devices:</para> + <para>Replace <replaceable>[xxx]</replaceable>, + <replaceable>[yyy]</replaceable>, and <replaceable>[fff]</replaceable> + with the values appropriate for the system, for example, <filename + class="partition">hda2</filename>, <filename + class="partition">hda5</filename>, and <systemitem + class="filesystem">ext2</systemitem>. For details on the six + fields in this file, see <command>man 5 fstab</command>.</para> + + <para>The <filename class="directory">/dev/shm</filename> mount point + for <systemitem class="filesystem">tmpfs</systemitem> is included to + allow enabling POSIX-shared memory. The kernel must have the required + support built into it for this to work (more about this is in the next + section). Please note that very little software currently uses + POSIX-shared memory. Therefore, consider the <filename + class="directory">/dev/shm</filename> mount point optional. For more + information, see + <filename>Documentation/filesystems/tmpfs.txt</filename> in the kernel + source tree.</para> + + <para>There are other lines which may be added to the + <filename>/etc/fstab</filename> file. One example is a line for USB + devices:</para> <screen>usbfs /proc/bus/usb usbfs devgid=14,devmode=0660 0 0 </screen> -<para>This option will only work if <quote>Support for Host-side USB</quote> and -<quote>USB device filesystem</quote> are configured in the kernel. If -<quote>Support for Host-side USB</quote> is compiled as a module, then -<filename>usbcore</filename> must be listed in -<filename>/etc/sysconfig/modules</filename>.</para> + <para>This option will only work if <quote>Support for Host-side USB</quote> + and <quote>USB device filesystem</quote> are configured in the kernel. If + <quote>Support for Host-side USB</quote> is compiled as a module, then + <filename>usbcore</filename> must be listed in + <filename>/etc/sysconfig/modules</filename>.</para> -</sect1> + <para>Filesystems with MS-DOS or Windows origin (i.e.: vfat, ntfs, smbfs, cifs, + iso9660, udf) need the <quote>iocharset</quote> mount option in order for + non-ASCII characters in file names to be interpreted properly. The value + of this option should be the same as the character set of your locale, + adjusted in such a way that the kernel understands it. This works if the + relevant character set definition (found under File systems -> + Native Language Support) has been compiled into the kernel + or built as a module. The <quote>codepage</quote> option is also needed for + vfat and smbfs filesystems. It + should be set to the codepage number used under MS-DOS in your country. E.g., + in order to mount USB flash drives, a ru_RU.KOI8-R user would need the + following line in <filename>/etc/fstab</filename>:</para> + +<screen>/dev/sda1 /media/flash vfat noauto,user,quiet,showexec,iocharset=koi8r,codepage=866 0 0</screen> + + <para>The corresponding line for ru_RU.UTF-8 users is:</para> +<screen>/dev/sda1 /media/flash vfat noauto,user,quiet,showexec,iocharset=utf8,codepage=866 0 0</screen> + + <note><para>In the latter case, the kernel emits the following message:</para> + +<screen><computeroutput>FAT: utf8 is not a recommended IO charset for FAT filesystems, filesystem will be case sensitive!</computeroutput></screen> + + <para>This negative recommendation should be ignored, since all other values + of the <quote>iocharset</quote> option result in wrong display of filenames in + UTF-8 locales.</para></note> + + <para>It is also possible to specify default codepage and iocharset values for + some filesystems during kernel configuration. The relevant parameters + are named + <quote>Default NLS Option</quote> (CONFIG_NLS_DEFAULT), + <quote>Default Remote NLS Option</quote> (CONFIG_SMB_NLS_DEFAULT), + <quote>Default codepage for FAT</quote> (CONFIG_FAT_DEFAULT_CODEPAGE), and + <quote>Default iocharset for FAT</quote> (CONFIG_FAT_DEFAULT_IOCHARSET). + There is no way to specify these settings for the + ntfs filesystem at kernel compilation time.</para> + <!-- Personally, I find it more foolproof to always specify the iocharset and + codepage in /etc/fstab for MS-based filesystems - Alexander E. Patrakov --> + +</sect1> diff --git a/chapter08/grub.xml b/chapter08/grub.xml index 862abd41b..172026016 100644 --- a/chapter08/grub.xml +++ b/chapter08/grub.xml @@ -1,88 +1,93 @@ <?xml version="1.0" encoding="ISO-8859-1"?> -<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ +<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" + "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ <!ENTITY % general-entities SYSTEM "../general.ent"> %general-entities; ]> + <sect1 id="ch-bootable-grub"> -<title>Making the LFS System Bootable</title> -<?dbhtml filename="grub.html"?> - -<indexterm zone="ch-bootable-grub"> -<primary sortas="a-Grub">GRUB</primary> -<secondary>configuring</secondary></indexterm> - -<para>Your shiny new LFS system is almost complete. One of the last -things to do is to ensure that the system can be properly booted. The -instructions below apply only to computers of IA-32 architecture, -meaning mainstream PCs. Information on <quote>boot loading</quote> for -other architectures should be available in the usual resource-specific -locations for those architectures.</para> - -<para>Boot loading can be a complex area, so a few cautionary -words are in order. Be familiar with the current boot loader and any other -operating systems present on the hard drive(s) that need to be -bootable. Make sure that an emergency boot disk is ready to -<quote>rescue</quote> the computer if the computer becomes -unusable (un-bootable).</para> - -<para>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. We highly -recommend creating a GRUB boot floppy diskette as a backup. Insert a -blank floppy diskette and run the following commands:</para> + <?dbhtml filename="grub.html"?> + + <title>Making the LFS System Bootable</title> + + <indexterm zone="ch-bootable-grub"> + <primary sortas="a-Grub">GRUB</primary> + <secondary>configuring</secondary> + </indexterm> + + <para>Your shiny new LFS system is almost complete. One of the last + things to do is to ensure that the system can be properly booted. The + instructions below apply only to computers of IA-32 architecture, + meaning mainstream PCs. Information on <quote>boot loading</quote> for + other architectures should be available in the usual resource-specific + locations for those architectures.</para> + + <para>Boot loading can be a complex area, so a few cautionary + words are in order. Be familiar with the current boot loader and any other + operating systems present on the hard drive(s) that need to be + bootable. Make sure that an emergency boot disk is ready to + <quote>rescue</quote> the computer if the computer becomes + unusable (un-bootable).</para> + + <para>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. We highly + recommend creating a GRUB boot floppy diskette as a backup. Insert a + blank floppy diskette and run the following commands:</para> <screen><userinput>dd if=/boot/grub/stage1 of=/dev/fd0 bs=512 count=1 dd if=/boot/grub/stage2 of=/dev/fd0 bs=512 seek=1</userinput></screen> -<para>Remove the diskette and store it somewhere safe. Now, run the -<command>grub</command> shell:</para> + <para>Remove the diskette and store it somewhere safe. Now, run the + <command>grub</command> shell:</para> <screen><userinput>grub</userinput></screen> -<para>GRUB uses its own naming structure for drives and partitions in -the form of <emphasis>(hdn,m)</emphasis>, where <emphasis>n</emphasis> -is the hard drive number and <emphasis>m</emphasis> is the partition -number, both starting from zero. For example, partition <filename -class="partition">hda1</filename> is <emphasis>(hd0,0)</emphasis> to -GRUB and <filename class="partition">hdb3</filename> is -<emphasis>(hd1,2)</emphasis>. In contrast to Linux, GRUB does not -consider CD-ROM drives to be hard drives. For example, if using a CD -on <filename class="partition">hdb</filename> and a second hard drive -on <filename class="partition">hdc</filename>, that second hard drive -would still be <emphasis>(hd1)</emphasis>.</para> - -<para>Using the above information, determine the appropriate -designator for the root partition (or boot partition, if a separate -one is used). For the following example, it is assumed that the root -(or separate boot) partition is <filename -class="partition">hda4</filename>.</para> - -<para>Tell GRUB where to search for its -<filename>stage{1,2}</filename> files. The Tab key can be used -everywhere to make GRUB show the alternatives:</para> + <para>GRUB uses its own naming structure for drives and partitions in + the form of <emphasis>(hdn,m)</emphasis>, where <emphasis>n</emphasis> + is the hard drive number and <emphasis>m</emphasis> is the partition + number, both starting from zero. For example, partition <filename + class="partition">hda1</filename> is <emphasis>(hd0,0)</emphasis> to + GRUB and <filename class="partition">hdb3</filename> is + <emphasis>(hd1,2)</emphasis>. In contrast to Linux, GRUB does not + consider CD-ROM drives to be hard drives. For example, if using a CD + on <filename class="partition">hdb</filename> and a second hard drive + on <filename class="partition">hdc</filename>, that second hard drive + would still be <emphasis>(hd1)</emphasis>.</para> + + <para>Using the above information, determine the appropriate + designator for the root partition (or boot partition, if a separate + one is used). For the following example, it is assumed that the root + (or separate boot) partition is <filename + class="partition">hda4</filename>.</para> + + <para>Tell GRUB where to search for its + <filename>stage{1,2}</filename> files. The Tab key can be used + everywhere to make GRUB show the alternatives:</para> <screen><userinput>root (hd0,3)</userinput></screen> -<warning><para>The following command will overwrite the current boot -loader. Do not run the command if this is not desired, for example, if -using a third party boot manager to manage the Master Boot Record -(MBR). In this scenario, it would make more sense to install -GRUB into the <quote>boot sector</quote> of the LFS partition. In this -case, this next command would become <userinput>setup -(hd0,3)</userinput>.</para></warning> + <warning> + <para>The following command will overwrite the current boot loader. Do not + run the command if this is not desired, for example, if using a third party + boot manager to manage the Master Boot Record (MBR). In this scenario, it + would make more sense to install GRUB into the <quote>boot sector</quote> + of the LFS partition. In this case, this next command would become + <userinput>setup (hd0,3)</userinput>.</para> + </warning> -<para>Tell GRUB to install itself into the MBR of -<filename class="partition">hda</filename>:</para> + <para>Tell GRUB to install itself into the MBR of + <filename class="partition">hda</filename>:</para> <screen><userinput>setup (hd0)</userinput></screen> -<para>If all went well, GRUB will have reported finding its files in -<filename class="directory">/boot/grub</filename>. That's all there is -to it. Quit the <command>grub</command> shell:</para> + <para>If all went well, GRUB will have reported finding its files in + <filename class="directory">/boot/grub</filename>. That's all there is + to it. Quit the <command>grub</command> shell:</para> <screen><userinput>quit</userinput></screen> -<para>Create a <quote>menu list</quote> file defining GRUB's boot menu:</para> + <para>Create a <quote>menu list</quote> file defining GRUB's boot menu:</para> <screen><userinput>cat > /boot/grub/menu.lst << "EOF" <literal># Begin /boot/grub/menu.lst @@ -102,8 +107,8 @@ root (hd0,3) kernel /boot/lfskernel-&linux-version; root=/dev/hda4</literal> EOF</userinput></screen> -<para>Add an entry for the host distribution if desired. It might look -like this:</para> + <para>Add an entry for the host distribution if desired. It might look + like this:</para> <screen><userinput>cat >> /boot/grub/menu.lst << "EOF" <literal>title Red Hat @@ -112,8 +117,8 @@ kernel /boot/kernel-2.6.5 root=/dev/hda3 initrd /boot/initrd-2.6.5</literal> EOF</userinput></screen> -<para>If dual-booting Windows, the following entry will allow -booting it:</para> + <para>If dual-booting Windows, the following entry will allow + booting it:</para> <screen><userinput>cat >> /boot/grub/menu.lst << "EOF" <literal>title Windows @@ -121,16 +126,15 @@ rootnoverify (hd0,0) chainloader +1</literal> EOF</userinput></screen> -<para>If <command>info grub</command> does not provide all necessary material, additional -information regarding GRUB is located on its website at: -<ulink url="http://www.gnu.org/software/grub/"/>.</para> + <para>If <command>info grub</command> does not provide all necessary material, + additional information regarding GRUB is located on its website at: + <ulink url="http://www.gnu.org/software/grub/"/>.</para> -<para>The FHS stipulates that GRUB's <filename>menu.lst</filename> file should be symlinked to -<filename class="symlink">/etc/grub/menu.lst</filename>. To satisfy this requirement, issue the -following command:</para> + <para>The FHS stipulates that GRUB's <filename>menu.lst</filename> file should + be symlinked to <filename class="symlink">/etc/grub/menu.lst</filename>. To + satisfy this requirement, issue the following command:</para> <screen><userinput>mkdir -v /etc/grub && ln -sv /boot/grub/menu.lst /etc/grub</userinput></screen> </sect1> - diff --git a/chapter08/introduction.xml b/chapter08/introduction.xml index 95bb37f7d..d1c15fcfe 100644 --- a/chapter08/introduction.xml +++ b/chapter08/introduction.xml @@ -1,16 +1,18 @@ <?xml version="1.0" encoding="ISO-8859-1"?> -<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ +<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" + "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ <!ENTITY % general-entities SYSTEM "../general.ent"> %general-entities; ]> + <sect1 id="ch-bootable-introduction"> -<title>Introduction</title> -<?dbhtml filename="introduction.html"?> + <?dbhtml filename="introduction.html"?> -<para>It is time to make the LFS system bootable. This chapter -discusses creating an <filename>fstab</filename> file, building a -kernel for the new LFS system, and installing the GRUB boot loader so -that the LFS system can be selected for booting at startup.</para> + <title>Introduction</title> -</sect1> + <para>It is time to make the LFS system bootable. This chapter + discusses creating an <filename>fstab</filename> file, building a + kernel for the new LFS system, and installing the GRUB boot loader so + that the LFS system can be selected for booting at startup.</para> +</sect1> diff --git a/chapter08/kernel.xml b/chapter08/kernel.xml index a7b2eebad..457e1c2fb 100644 --- a/chapter08/kernel.xml +++ b/chapter08/kernel.xml @@ -1,212 +1,243 @@ <?xml version="1.0" encoding="ISO-8859-1"?> -<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ +<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" + "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ <!ENTITY % general-entities SYSTEM "../general.ent"> %general-entities; ]> + <sect1 id="ch-bootable-kernel" role="wrap"> -<title>Linux-&linux-version;</title> -<?dbhtml filename="kernel.html"?> + <?dbhtml filename="kernel.html"?> -<indexterm zone="ch-bootable-kernel"><primary sortas="a-Linux">Linux</primary></indexterm> + <title>Linux-&linux-version;</title> -<sect2 role="package"><title/> -<para>The Linux package contains the Linux kernel.</para> + <indexterm zone="ch-bootable-kernel"> + <primary sortas="a-Linux">Linux</primary> + </indexterm> -<segmentedlist> -<segtitle>&buildtime;</segtitle> -<segtitle>&diskspace;</segtitle> -<seglistitem><seg>4.20 SBU</seg> -<seg>181 MB</seg></seglistitem> -</segmentedlist> + <sect2 role="package"> + <title/> -<segmentedlist> -<segtitle>&dependencies;</segtitle> -<seglistitem><seg>Bash, Binutils, Coreutils, Findutils, -GCC, Glibc, Grep, Gzip, Kbd, Make, Module-Init-Tools, Perl, and Sed</seg></seglistitem> -</segmentedlist> -</sect2> + <para>The Linux package contains the Linux kernel.</para> -<sect2 role="installation"> -<title>Installation of the kernel</title> + <segmentedlist> + <segtitle>&buildtime;</segtitle> + <segtitle>&diskspace;</segtitle> -<para>Building the kernel involves a few steps—configuration, compilation, -and installation. Read the <filename>README</filename> file in the kernel source -tree for alternative methods to the way this book configures the kernel.</para> + <seglistitem> + <seg>4.20 SBU</seg> + <seg>181 MB</seg> + </seglistitem> + </segmentedlist> -<para>Prepare for compilation by running the following command:</para> + <segmentedlist> + <segtitle>&dependencies;</segtitle> -<screen><userinput>make mrproper</userinput></screen> + <seglistitem> + <seg>Bash, Binutils, Coreutils, Findutils, GCC, Glibc, Grep, Gzip, + Make, Modutils, Perl, and Sed</seg> + </seglistitem> + </segmentedlist> -<para>This ensures that the kernel tree is absolutely clean. The -kernel team recommends that this command be issued prior to each -kernel compilation. Do not rely on the source tree being clean after -un-tarring.</para> + </sect2> -<para>If, in <xref linkend="ch-scripts-console" role=","/> it was decided to -compile the keymap into the kernel, issue the command below:</para> + <sect2 role="installation"> + <title>Installation of the kernel</title> -<screen role="nodump"><userinput>loadkeys -m /usr/share/kbd/keymaps/<replaceable>[path to keymap]</replaceable> > \ - drivers/char/defkeymap.c</userinput></screen> + <para>Building the kernel involves a few steps—configuration, + compilation, and installation. Read the <filename>README</filename> file + in the kernel source tree for alternative methods to the way this book + configures the kernel.</para> -<para>For example, if using a Dutch keyboard, use -<filename>/usr/share/kbd/keymaps/i386/qwerty/nl.map.gz</filename>.</para> + <para>By default, the Linux kernel generates wrong sequences of bytes when + dead keys are used in UTF-8 keyboard mode. Also, one cannot copy and paste + non-ASCII characters when UTF-8 mode is active. Fix these issues with the + patch:</para> -<para>Configure the kernel via a menu-driven interface. BLFS has some -information regarding particular kernel configuration requirements of -packages outside of LFS at <ulink -url="&blfs-root;view/svn/longindex.html#kernel-config-index"/>:</para> +<screen><userinput>patch -Np1 -i ../&linux-utf8-patch;</userinput></screen> -<screen role="nodump"><userinput>make menuconfig</userinput></screen> + <para>Prepare for compilation by running the following command:</para> -<para>Alternatively, <command>make oldconfig</command> may be more appropriate in some -situations. See the <filename>README</filename> file for more -information.</para> +<screen><userinput>make mrproper</userinput></screen> -<para>If desired, skip kernel configuration by copying the kernel -config file, <filename>.config</filename>, from the host system -(assuming it is available) to the unpacked <filename -class="directory">linux-&linux-version;</filename> directory. However, -we do not recommend this option. It is often better to explore all the -configuration menus and create the kernel configuration from -scratch.</para> + <para>This ensures that the kernel tree is absolutely clean. The + kernel team recommends that this command be issued prior to each + kernel compilation. Do not rely on the source tree being clean after + un-tarring.</para> -<note><para>NPTL requires the kernel to be compiled with GCC-3.x or later, in this case -&gcc-version;. It is not recommended to compile the kernel with GCC-2.95.x, as -this causes failures in the Glibc test suite. Normally, this wouldn't be -mentioned as LFS doesn't build GCC-2.95.x. Unfortunately, the kernel -documentation is outdated and still claims GCC-2.95.3 is the recommended -compiler.</para></note> + <!-- Support for compiling a keymap into the kernel is deliberately removed --> + + <para>Configure the kernel via a menu-driven interface. BLFS has some + information regarding particular kernel configuration requirements of + packages outside of LFS at <ulink + url="&blfs-root;view/svn/longindex.html#kernel-config-index"/>:</para> + +<screen role="nodump"><userinput>make menuconfig</userinput></screen> -<para>Compile the kernel image and modules:</para> + <para>Alternatively, <command>make oldconfig</command> may be more + appropriate in some situations. See the <filename>README</filename> + file for more information.</para> + + <para>If desired, skip kernel configuration by copying the kernel + config file, <filename>.config</filename>, from the host system + (assuming it is available) to the unpacked <filename + class="directory">linux-&linux-version;</filename> directory. However, + we do not recommend this option. It is often better to explore all the + configuration menus and create the kernel configuration from + scratch.</para> + + <note> + <para>NPTL requires the kernel to be compiled with GCC-3.x or later, in + this case &gcc-version;. It is not recommended to compile the kernel with + GCC-2.95.x, as this causes failures in the Glibc test suite. Normally, + this wouldn't be mentioned as LFS doesn't build GCC-2.95.x. Unfortunately, + the kernel documentation is outdated and still claims GCC-2.95.3 is the + recommended compiler.</para> + </note> + + <para>Compile the kernel image and modules:</para> <screen><userinput>make</userinput></screen> -<para>If using kernel modules, an <filename>/etc/modprobe.conf</filename> file -may be needed. Information pertaining to modules and kernel configuration is -located in the kernel documentation in the <filename -class="directory">linux-&linux-version;/Documentation</filename> directory. -Also, <filename>modprobe.conf(5)</filename> may be of interest.</para> + <para>If using kernel modules, an <filename>/etc/modprobe.conf</filename> file + may be needed. Information pertaining to modules and kernel configuration is + located in the kernel documentation in the <filename + class="directory">linux-&linux-version;/Documentation</filename> directory. + Also, <filename>modprobe.conf(5)</filename> may be of interest.</para> -<para>Be very careful when reading other documentation relating to kernel -modules because it usually applies to 2.4.x kernels only. As far as we know, -kernel configuration issues specific to Hotplug and Udev are not documented. -The problem is that Udev will create a device node only if Hotplug or a -user-written script inserts the corresponding module into the kernel, and not -all modules are detectable by Hotplug. Note that statements like the one below -in the <filename>/etc/modprobe.conf</filename> file do not work with -Udev:</para> + <para>Be very careful when reading other documentation relating to kernel + modules because it usually applies to 2.4.x kernels only. As far as we know, + kernel configuration issues specific to Hotplug and Udev are not documented. + The problem is that Udev will create a device node only if Hotplug or a + user-written script inserts the corresponding module into the kernel, and not + all modules are detectable by Hotplug. Note that statements like the one below + in the <filename>/etc/modprobe.conf</filename> file do not work with + Udev:</para> -<para><screen>alias char-major-XXX some-module</screen></para> +<screen><literal>alias char-major-XXX some-module</literal></screen> -<para>Because of the complications with Hotplug, Udev, and modules, we -strongly recommend starting with a completely non-modular kernel -configuration, especially if this is the first time using Udev.</para> + <para>Because of the complications with Hotplug, Udev, and modules, we + strongly recommend starting with a completely non-modular kernel + configuration, especially if this is the first time using Udev.</para> -<para>Install the modules, if the kernel configuration uses them:</para> + <para>Install the modules, if the kernel configuration uses them:</para> <screen><userinput>make modules_install</userinput></screen> -<para>After kernel compilation is complete, additional steps are -required to complete the installation. Some files need to be copied to -the <filename class="directory">/boot</filename> directory.</para> + <para>After kernel compilation is complete, additional steps are + required to complete the installation. Some files need to be copied to + the <filename class="directory">/boot</filename> directory.</para> -<para>The path to the kernel image may vary depending on the platform -being used. The following command assumes an x86 architecture:</para> + <para>The path to the kernel image may vary depending on the platform + being used. The following command assumes an x86 architecture:</para> <screen><userinput>cp -v arch/i386/boot/bzImage /boot/lfskernel-&linux-version;</userinput></screen> -<para><filename>System.map</filename> is a symbol file for the kernel. -It maps the function entry points 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:</para> + <para><filename>System.map</filename> is a symbol file for the kernel. + It maps the function entry points 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:</para> <screen><userinput>cp -v System.map /boot/System.map-&linux-version;</userinput></screen> -<para>The kernel configuration file <filename>.config</filename> -produced by the <command>make menuconfig</command> step -above contains all the configuration selections for the kernel -that was just compiled. It is a good idea to keep this file for future -reference:</para> + <para>The kernel configuration file <filename>.config</filename> + produced by the <command>make menuconfig</command> step + above contains all the configuration selections for the kernel + that was just compiled. It is a good idea to keep this file for future + reference:</para> <screen><userinput>cp -v .config /boot/config-&linux-version;</userinput></screen> -<para>It is important to note that the files in the kernel source -directory are not owned by <emphasis>root</emphasis>. Whenever a -package is unpacked as user <emphasis>root</emphasis> (like we did -inside chroot), the files have the user and group IDs of whatever -they were on the packager's computer. This is usually not a problem -for any other package to be installed because the source tree is -removed after the installation. However, the Linux source tree is -often retained for a long time. Because of this, there is a chance -that whatever user ID the packager used will be assigned to somebody -on the machine. That person would then have write access to the kernel -source.</para> - -<para>If the kernel source tree is going to be retained, run -<command>chown -R 0:0</command> on the <filename -class="directory">linux-&linux-version;</filename> directory to ensure -all files are owned by user <emphasis>root</emphasis>.</para> - -<warning><para>Some kernel documentation recommends creating a symlink from -<filename class="symlink">/usr/src/linux</filename> pointing to the kernel -source directory. This is specific to kernels prior to the 2.6 series and -<emphasis>must not</emphasis> be created on an LFS system as it can cause -problems for packages you may wish to build once your base LFS system is -complete.</para> - -<para>Also, the headers in the system's -<filename class="directory">include</filename> directory should -<emphasis>always</emphasis> be the ones against which Glibc was compiled, -that is, the ones from the Linux-Libc-Headers package, and therefore, should -<emphasis>never</emphasis> be replaced by the kernel headers.</para></warning> - -</sect2> - - -<sect2 id="contents-kernel" role="content"><title>Contents of Linux</title> - -<segmentedlist> -<segtitle>Installed files</segtitle> -<seglistitem><seg>config-&linux-version;, lfskernel-&linux-version;, -and System.map-&linux-version;</seg></seglistitem> -</segmentedlist> - -<variablelist><bridgehead renderas="sect3">Short Descriptions</bridgehead> -<?dbfo list-presentation="list"?> -<?dbhtml list-presentation="table"?> - -<varlistentry id="config"> -<term><filename>config-&linux-version;</filename></term> -<listitem> -<para>Contains all the configuration selections for the kernel</para> -<indexterm zone="ch-bootable-kernel config"><primary sortas="e-/boot/config">/boot/config-&linux-version;</primary></indexterm> -</listitem> -</varlistentry> - -<varlistentry id="lfskernel"> -<term><filename>lfskernel-&linux-version;</filename></term> -<listitem> -<para>The engine of the Linux system. When turning on the computer, -the kernel is the first part of the operating system that gets loaded. -It detects and initializes all components of the computer's hardware, -then makes these components available as a tree of files to the -software and turns a single CPU into a multitasking machine capable -of running scores of programs seemingly at the same time</para> -<indexterm zone="ch-bootable-kernel lfskernel"><primary sortas="b-lfskernel">lfskernel-&linux-version;</primary></indexterm> -</listitem> -</varlistentry> - -<varlistentry id="System.map"> -<term><filename>System.map-&linux-version;</filename></term> -<listitem> -<para>A list of addresses and symbols; it maps the entry points and -addresses of all the functions and data structures in the -kernel</para> -<indexterm zone="ch-bootable-kernel System.map"><primary sortas="e-/boot/System.map">/boot/System.map-&linux-version;</primary></indexterm> -</listitem> -</varlistentry> -</variablelist> - -</sect2> + <para>It is important to note that the files in the kernel source + directory are not owned by <emphasis>root</emphasis>. Whenever a + package is unpacked as user <emphasis>root</emphasis> (like we did + inside chroot), the files have the user and group IDs of whatever + they were on the packager's computer. This is usually not a problem + for any other package to be installed because the source tree is + removed after the installation. However, the Linux source tree is + often retained for a long time. Because of this, there is a chance + that whatever user ID the packager used will be assigned to somebody + on the machine. That person would then have write access to the kernel + source.</para> + + <para>If the kernel source tree is going to be retained, run + <command>chown -R 0:0</command> on the <filename + class="directory">linux-&linux-version;</filename> directory to ensure + all files are owned by user <emphasis>root</emphasis>.</para> + + <warning> + <para>Some kernel documentation recommends creating a symlink from + <filename class="symlink">/usr/src/linux</filename> pointing to the kernel + source directory. This is specific to kernels prior to the 2.6 series and + <emphasis>must not</emphasis> be created on an LFS system as it can cause + problems for packages you may wish to build once your base LFS system is + complete.</para> + + <para>Also, the headers in the system's + <filename class="directory">include</filename> directory should + <emphasis>always</emphasis> be the ones against which Glibc was compiled, + that is, the ones from the Linux-Libc-Headers package, and therefore, should + <emphasis>never</emphasis> be replaced by the kernel headers.</para> + </warning> + + </sect2> + + + <sect2 id="contents-kernel" role="content"> + <title>Contents of Linux</title> + + <segmentedlist> + <segtitle>Installed files</segtitle> + + <seglistitem> + <seg>config-&linux-version;, lfskernel-&linux-version;, and + System.map-&linux-version;</seg> + </seglistitem> + </segmentedlist> + + <variablelist> + <bridgehead renderas="sect3">Short Descriptions</bridgehead> + <?dbfo list-presentation="list"?> + <?dbhtml list-presentation="table"?> + + <varlistentry id="config"> + <term><filename>config-&linux-version;</filename></term> + <listitem> + <para>Contains all the configuration selections for the kernel</para> + <indexterm zone="ch-bootable-kernel config"> + <primary sortas="e-/boot/config">/boot/config-&linux-version;</primary> + </indexterm> + </listitem> + </varlistentry> + + <varlistentry id="lfskernel"> + <term><filename>lfskernel-&linux-version;</filename></term> + <listitem> + <para>The engine of the Linux system. When turning on the computer, + the kernel is the first part of the operating system that gets loaded. + It detects and initializes all components of the computer's hardware, + then makes these components available as a tree of files to the + software and turns a single CPU into a multitasking machine capable + of running scores of programs seemingly at the same time</para> + <indexterm zone="ch-bootable-kernel lfskernel"> + <primary sortas="b-lfskernel">lfskernel-&linux-version;</primary> + </indexterm> + </listitem> + </varlistentry> + + <varlistentry id="System.map"> + <term><filename>System.map-&linux-version;</filename></term> + <listitem> + <para>A list of addresses and symbols; it maps the entry points and + addresses of all the functions and data structures in the + kernel</para> + <indexterm zone="ch-bootable-kernel System.map"> + <primary sortas="e-/boot/System.map">/boot/System.map-&linux-version;</primary> + </indexterm> + </listitem> + </varlistentry> + + </variablelist> + + </sect2> </sect1> diff --git a/chapter09/chapter09.xml b/chapter09/chapter09.xml index 51f0ba6eb..6de50a3d3 100644 --- a/chapter09/chapter09.xml +++ b/chapter09/chapter09.xml @@ -1,16 +1,19 @@ <?xml version="1.0" encoding="ISO-8859-1"?> -<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ +<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" + "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ <!ENTITY % general-entities SYSTEM "../general.ent"> %general-entities; ]> + <chapter id="chapter-finalizing" xreflabel="Chapter 9"> -<?dbhtml dir="chapter09"?> -<title>The End</title> -<?dbhtml filename="chapter09.html"?> + <?dbhtml dir="chapter09"?> + <?dbhtml filename="chapter09.html"?> + + <title>The End</title> -<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="theend.xml"/> -<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="getcounted.xml"/> -<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="reboot.xml"/> -<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="whatnow.xml"/> + <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="theend.xml"/> + <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="getcounted.xml"/> + <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="reboot.xml"/> + <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="whatnow.xml"/> </chapter> diff --git a/chapter09/getcounted.xml b/chapter09/getcounted.xml index df48e09ba..fbcda8a50 100644 --- a/chapter09/getcounted.xml +++ b/chapter09/getcounted.xml @@ -1,18 +1,20 @@ <?xml version="1.0" encoding="ISO-8859-1"?> -<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ +<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" + "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ <!ENTITY % general-entities SYSTEM "../general.ent"> %general-entities; ]> + <sect1 id="ch-finish-getcounted"> -<title>Get Counted</title> -<?dbhtml filename="getcounted.html"?> + <?dbhtml filename="getcounted.html"?> -<para>Now that you have finished the book, do you want to be counted -as an LFS user? Head over to <ulink -url="&lfs-root;cgi-bin/lfscounter.cgi"/> and register as an LFS user -by entering your name and the first LFS version you have used.</para> + <title>Get Counted</title> -<para>Let's reboot into LFS now.</para> + <para>Now that you have finished the book, do you want to be counted as an + LFS user? Head over to <ulink url="&lfs-root;cgi-bin/lfscounter.cgi"/> and + register as an LFS user by entering your name and the first LFS version you + have used.</para> -</sect1> + <para>Let's reboot into LFS now.</para> +</sect1> diff --git a/chapter09/reboot.xml b/chapter09/reboot.xml index 05d5bcb38..2011c4bba 100644 --- a/chapter09/reboot.xml +++ b/chapter09/reboot.xml @@ -1,60 +1,62 @@ <?xml version="1.0" encoding="ISO-8859-1"?> -<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ +<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" + "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ <!ENTITY % general-entities SYSTEM "../general.ent"> %general-entities; ]> + <sect1 id="ch-finish-reboot"> -<title>Rebooting the System</title> -<?dbhtml filename="reboot.html"?> - -<para>Now that all of the software has been installed, it is time to reboot -your computer. However, you should be aware of a few things. The system you -have created in this book is quite minimal, and most likely will not have -the functionality you would need to be able to continue forward. By installing -a few extra packages from the BLFS book while still in our current chroot -environment, you can leave yourself in a much better position to continue on -once you reboot into your new LFS installation. Installing a text mode web -browser, such as Lynx, you can easily view the BLFS book in one virtual -terminal, while building packages in another. The GPM package will also allow -you to perform copy/paste actions in your virtual terminals. Lastly, if you -are in a situation where static IP configuration does not meet your networking -requirements, installing packages such as Dhcpcd or PPP at this point might -also be useful.</para> - - -<para>Now that we have said that, lets move on to booting our shiny new LFS -installation for the first time! First exit from the chroot environment:</para> + <?dbhtml filename="reboot.html"?> + + <title>Rebooting the System</title> + + <para>Now that all of the software has been installed, it is time to reboot + your computer. However, you should be aware of a few things. The system you + have created in this book is quite minimal, and most likely will not have + the functionality you would need to be able to continue forward. By installing + a few extra packages from the BLFS book while still in our current chroot + environment, you can leave yourself in a much better position to continue on + once you reboot into your new LFS installation. Installing a text mode web + browser, such as Lynx, you can easily view the BLFS book in one virtual + terminal, while building packages in another. The GPM package will also allow + you to perform copy/paste actions in your virtual terminals. Lastly, if you + are in a situation where static IP configuration does not meet your networking + requirements, installing packages such as Dhcpcd or PPP at this point might + also be useful.</para> + + + <para>Now that we have said that, lets move on to booting our shiny new LFS + installation for the first time! First exit from the chroot environment:</para> <screen><userinput>logout</userinput></screen> -<para>Then unmount the virtual files systems:</para> + <para>Then unmount the virtual files systems:</para> <screen><userinput>umount -v $LFS/dev/pts umount -v $LFS/dev/shm umount -v $LFS/dev umount -v $LFS/proc -umount -v $LFS/sys</userinput></screen> +umount -v $LFS/sys</userinput></screen> -<para>Unmount the LFS file system itself:</para> + <para>Unmount the LFS file system itself:</para> <screen><userinput>umount -v $LFS</userinput></screen> -<para>If multiple partitions were created, unmount the other -partitions before unmounting the main one, like this:</para> + <para>If multiple partitions were created, unmount the other + partitions before unmounting the main one, like this:</para> <screen role="nodump"><userinput>umount -v $LFS/usr umount -v $LFS/home umount -v $LFS</userinput></screen> -<para>Now, reboot the system with:</para> + <para>Now, reboot the system with:</para> <screen role="nodump"><userinput>shutdown -r now</userinput></screen> -<para>Assuming the GRUB boot loader was set up as outlined earlier, the menu -is set to boot <emphasis>LFS &version;</emphasis> automatically.</para> + <para>Assuming the GRUB boot loader was set up as outlined earlier, the menu + is set to boot <emphasis>LFS &version;</emphasis> automatically.</para> -<para>When the reboot is complete, the LFS system is ready for use and -more software may be added to suit your needs.</para> + <para>When the reboot is complete, the LFS system is ready for use and + more software may be added to suit your needs.</para> </sect1> - diff --git a/chapter09/theend.xml b/chapter09/theend.xml index 91dab3861..ddafe43b8 100644 --- a/chapter09/theend.xml +++ b/chapter09/theend.xml @@ -1,24 +1,27 @@ <?xml version="1.0" encoding="ISO-8859-1"?> -<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ +<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" + "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ <!ENTITY % general-entities SYSTEM "../general.ent"> %general-entities; ]> + <sect1 id="ch-finish-theend"> -<title>The End</title> -<?dbhtml filename="theend.html"?> + <?dbhtml filename="theend.html"?> + + <title>The End</title> -<indexterm zone="ch-finish-theend"><primary sortas="e-/etc/lfs-release">/etc/lfs-release</primary></indexterm> + <indexterm zone="ch-finish-theend"> + <primary sortas="e-/etc/lfs-release">/etc/lfs-release</primary> + </indexterm> -<para>Well done! The new LFS system is installed! We wish you much -success with your shiny new custom-built Linux system.</para> + <para>Well done! The new LFS system is installed! We wish you much + success with your shiny new custom-built Linux system.</para> -<para>It may be a good idea to create an -<filename>/etc/lfs-release</filename> file. By having this file, it is -very easy for you (and for us if you need to ask for help at some -point) to find out which LFS version is installed on the system. -Create this file by running:</para> + <para>It may be a good idea to create an <filename>/etc/lfs-release</filename> + file. By having this file, it is very easy for you (and for us if you need to + ask for help at some point) to find out which LFS version is installed on the + system. Create this file by running:</para> <screen><userinput>echo &version; > /etc/lfs-release</userinput></screen> </sect1> - diff --git a/chapter09/whatnow.xml b/chapter09/whatnow.xml index 0cf0581bd..445564e1a 100644 --- a/chapter09/whatnow.xml +++ b/chapter09/whatnow.xml @@ -1,80 +1,99 @@ <?xml version="1.0" encoding="ISO-8859-1"?> -<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ +<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" + "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ <!ENTITY % general-entities SYSTEM "../general.ent"> %general-entities; ]> + <sect1 id="ch-finish-whatnow"> -<title>What Now?</title> -<?dbhtml filename="whatnow.html"?> + <?dbhtml filename="whatnow.html"?> -<para>Thank you for reading this LFS book. We hope that you have -found this book helpful and have learned more about the system -creation process.</para> + <title>What Now?</title> -<para>Now that the LFS system is installed, you may be wondering -<quote>What next?</quote> To answer that question, we have compiled a -list of resources for you.</para> + <para>Thank you for reading this LFS book. We hope that you have + found this book helpful and have learned more about the system + creation process.</para> -<itemizedlist> -<listitem><para>Maintenance</para> + <para>Now that the LFS system is installed, you may be wondering + <quote>What next?</quote> To answer that question, we have compiled a + list of resources for you.</para> -<para>Bugs and security notices are reported regularly for all software. -Since an LFS system is compiled from source, it is up to you to keep abreast of -such reports. There are several online resources that track such reports, some -of which are shown below:</para> + <itemizedlist> -<itemizedlist> -<listitem><para>Freshmeat.net (<ulink url="http://freshmeat.net/"/>)</para> + <listitem> + <para>Maintenance</para> -<para>Freshmeat can notify you (via email) of new versions of packages installed on your system.</para> -</listitem> + <para>Bugs and security notices are reported regularly for all software. + Since an LFS system is compiled from source, it is up to you to keep + abreast of such reports. There are several online resources that track + such reports, some of which are shown below:</para> -<listitem><para><ulink url="http://www.cert.org/">CERT</ulink> (Computer -Emergency Response Team)</para> + <itemizedlist> -<para>CERT has a mailing list that publishes security alerts concerning various -operating systems and applications. Subscription information is available at -<ulink url="http://www.us-cert.gov/cas/signup.html"/>.</para> -</listitem> + <listitem> + <para>Freshmeat.net (<ulink url="http://freshmeat.net/"/>)</para> -<listitem><para>Bugtraq</para> + <para>Freshmeat can notify you (via email) of new versions of packages + installed on your system.</para> + </listitem> -<para>Bugtraq is a full-disclosure computer security mailing list. It publishes -newly discovered security issues, and occasionally potential fixes for them. -Subscription information is available at -<ulink url="http://www.securityfocus.com/archive"/>.</para> -</listitem> -</itemizedlist> -</listitem> + <listitem> + <para><ulink url="http://www.cert.org/">CERT</ulink> (Computer + Emergency Response Team)</para> -<listitem><para>Beyond Linux From Scratch</para> + <para>CERT has a mailing list that publishes security alerts concerning + various operating systems and applications. Subscription information is + available at <ulink + url="http://www.us-cert.gov/cas/signup.html"/>.</para> + </listitem> -<para>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 is located at <ulink url="&blfs-root;"/>.</para></listitem> + <listitem> + <para>Bugtraq</para> -<listitem><para>LFS Hints</para> + <para>Bugtraq is a full-disclosure computer security mailing list. It + publishes newly discovered security issues, and occasionally potential + fixes for them. Subscription information is available at <ulink + url="http://www.securityfocus.com/archive"/>.</para> + </listitem> -<para>The LFS Hints are a collection of educational documents -submitted by volunteers in the LFS community. The hints are available -at <ulink url="&hints-index;"/>.</para></listitem> + </itemizedlist> + </listitem> -<listitem><para>Mailing lists</para> + <listitem> + <para>Beyond Linux From Scratch</para> -<para>There are several LFS mailing lists you may subscribe to if you -are in need of help, want to stay current with the latest developments, -want to contribute to the project, and more. See <xref -linkend="ch-scatter-maillists"/> for more -information.</para></listitem> + <para>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 is located at <ulink url="&blfs-root;"/>.</para> + </listitem> -<listitem><para>The Linux Documentation Project</para> + <listitem> + <para>LFS Hints</para> -<para>The goal of The Linux Documentation Project (TLDP) is to -collaborate on all of the issues of Linux documentation. The TLDP features -a large collection of HOWTOs, guides, and man pages. It is located at -<ulink url="http://www.tldp.org/"/>.</para></listitem> + <para>The LFS Hints are a collection of educational documents + submitted by volunteers in the LFS community. The hints are available + at <ulink url="&hints-index;"/>.</para> + </listitem> -</itemizedlist> + <listitem> + <para>Mailing lists</para> -</sect1> + <para>There are several LFS mailing lists you may subscribe to if you + are in need of help, want to stay current with the latest developments, + want to contribute to the project, and more. See <xref + linkend="ch-scatter-maillists"/> for more + information.</para> + </listitem> + + <listitem> + <para>The Linux Documentation Project</para> + <para>The goal of The Linux Documentation Project (TLDP) is to + collaborate on all of the issues of Linux documentation. The TLDP features + a large collection of HOWTOs, guides, and man pages. It is located at + <ulink url="http://www.tldp.org/"/>.</para> + </listitem> + + </itemizedlist> + +</sect1> diff --git a/general.ent b/general.ent index 8d205af9f..132d66cb6 100644 --- a/general.ent +++ b/general.ent @@ -22,6 +22,7 @@ <!ENTITY alpha-gnu "ftp://alpha.gnu.org/gnu/"> <!ENTITY kernel "http://www.kernel.org/pub/"> <!ENTITY sourceforge "http://prdownloads.sourceforge.net/"> +<!ENTITY alexpatches "&lfs-root;~alexander/patches/"> <!ENTITY % patches-entities SYSTEM "patches.ent"> %patches-entities; @@ -34,6 +35,7 @@ <!ENTITY bison-version "2.1"> <!ENTITY bzip2-version "1.0.3"> <!ENTITY coreutils-version "5.93"> +<!ENTITY db-version "4.4.16"> <!ENTITY dejagnu-version "1.4.4"> <!ENTITY diffutils-version "2.8.1"> <!ENTITY e2fsprogs-version "1.38"> @@ -47,7 +49,8 @@ <!ENTITY gettext-version "0.14.5"> <!ENTITY glibc-version "2.3.6"> <!ENTITY grep-version "2.5.1a"> -<!ENTITY groff-version "1.19.2"> +<!ENTITY groff-version "1.18.1.1"> +<!ENTITY groff-patchlevel "10"> <!ENTITY grub-version "0.97"> <!ENTITY gzip-version "1.3.5"> <!ENTITY hotplug-version "2004_09_23"> @@ -56,22 +59,23 @@ <!ENTITY iproute2-version "051007"> <!ENTITY kbd-version "1.12"> <!ENTITY less-version "394"> -<!ENTITY lfs-bootscripts-version "3.2.1"> -<!ENTITY libtool-version "1.5.20"> +<!ENTITY lfs-bootscripts-version "20051223"> +<!ENTITY libtool-version "1.5.22"> <!ENTITY linux-version "2.6.12.5"> <!ENTITY linux-dl-version "2.6"> <!ENTITY linux-libc-headers-version "2.6.12.0"> <!ENTITY m4-version "1.4.4"> <!ENTITY make-version "3.80"> -<!ENTITY man-version "1.6b"> -<!ENTITY man-pages-version "2.16"> +<!ENTITY man-db-version "2.4.3"> +<!ENTITY man-pages-version "2.18"> <!ENTITY mktemp-version "1.5"> <!ENTITY module-init-tools-version "3.2.2"> <!ENTITY ncurses-version "5.5"> +<!-- <!ENTITY ncurses-date "20050319"> --> <!ENTITY patch-version "2.5.4"> <!ENTITY perl-version "5.8.7"> <!ENTITY procps-version "3.2.6"> -<!ENTITY psmisc-version "21.8"> +<!ENTITY psmisc-version "21.9"> <!ENTITY readline-version "5.1"> <!ENTITY sed-version "4.1.4"> <!ENTITY shadow-version "4.0.13"> diff --git a/patches.ent b/patches.ent index 4d1331cd2..1f4fafa50 100644 --- a/patches.ent +++ b/patches.ent @@ -1,12 +1,15 @@ <?xml version="1.0" encoding="ISO-8859-1"?> <!-- Start of Common Patches --> -<!ENTITY bzip2-docs-patch "bzip2-&bzip2-version;-install_docs-1.patch"> <!ENTITY bzip2-bzgrep-patch "bzip2-&bzip2-version;-bzgrep_security-1.patch"> +<!ENTITY bzip2-docs-patch "bzip2-&bzip2-version;-install_docs-1.patch"> +<!ENTITY coreutils-i18n-patch "coreutils-&coreutils-version;-i18n-1.patch"> <!ENTITY coreutils-suppress-patch "coreutils-&coreutils-version;-suppress_uptime_kill_su-1.patch"> <!ENTITY coreutils-uname-patch "coreutils-&coreutils-version;-uname-1.patch"> +<!ENTITY diffutils-i18n-patch "diffutils-&diffutils-version;-i18n-1.patch"> + <!ENTITY expect-spawn-patch "expect-&expect-version;-spawn-1.patch"> <!ENTITY flex-fixes-patch "flex-&flex-version;-debian_fixes-3.patch"> @@ -15,24 +18,37 @@ <!ENTITY gcc-specs-patch "gcc-&gcc-version;-specs-1.patch"> +<!ENTITY grep-fixes-patch "grep-&grep-version;-redhat_fixes-2.patch"> + +<!ENTITY groff-debian-patch "groff_&groff-version;-&groff-patchlevel;.diff.gz"> + <!ENTITY gzip-security_fix-patch "gzip-&gzip-version;-security_fixes-1.patch"> +<!ENTITY kbd-backspace-patch "kbd-&kbd-version;-backspace-1.patch"> <!ENTITY kbd-gcc4_fixes-patch "kbd-&kbd-version;-gcc4_fixes-1.patch"> <!ENTITY inetutils-gcc4_fixes-patch "inetutils-&inetutils-version;-gcc4_fixes-3.patch"> <!ENTITY inetutils-man_pages-patch "inetutils-&inetutils-version;-no_server_man_pages-1.patch"> +<!ENTITY linux-utf8-patch "linux-&linux-version;-utf8_input-2.patch"> + <!ENTITY mktemp-tempfile-patch "mktemp-&mktemp-version;-add_tempfile-3.patch"> +<!ENTITY ncurses-fixes-patch "ncurses-&ncurses-version;-fixes-1.patch"> +<!-- <!ENTITY ncurses-rollup-patch "ncurses-&ncurses-version;-&ncurses-date;-patch.sh.bz2"> --> + <!ENTITY perl-libc-patch "perl-&perl-version;-libc-1.patch"> +<!ENTITY sysklogd-8bit-patch "sysklogd-&sysklogd-version;-8bit-1.patch"> + <!ENTITY shadow-configure-patch "shadow-&shadow-version;-configure_fix-1.patch"> <!ENTITY sysklogd-fixes-patch "sysklogd-&sysklogd-version;-fixes-1.patch"> -<!ENTITY tar-sparse_fix-patch "tar-&tar-version;-sparse_fix-1.patch"> <!ENTITY tar-gcc4_fix-patch "tar-&tar-version;-gcc4_fix_tests-1.patch"> +<!ENTITY tar-sparse_fix-patch "tar-&tar-version;-sparse_fix-1.patch"> -<!ENTITY texinfo-tempfile_fix-patch "texinfo-&texinfo-version;-tempfile_fix-2.patch"> +<!ENTITY texinfo-multibyte-patch "texinfo-&texinfo-version;-multibyte-2.patch"> +<!ENTITY texinfo-tempfile_fix-patch "texinfo-&texinfo-version;-tempfile_fix-1.patch"> <!ENTITY util-linux-cramfs-patch "util-linux-&util-linux-version;-cramfs-1.patch"> diff --git a/prologue/audience.xml b/prologue/audience.xml index 3f19342fa..eb8950efb 100644 --- a/prologue/audience.xml +++ b/prologue/audience.xml @@ -1,91 +1,86 @@ <?xml version="1.0" encoding="ISO-8859-1"?> -<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ +<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" + "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ <!ENTITY % general-entities SYSTEM "../general.ent"> %general-entities; ]> + <sect1 id="pre-audience"> -<title>Audience</title> -<?dbhtml filename="audience.html"?> + <?dbhtml filename="audience.html"?> -<para>There are many reasons why somebody would want to read this -book. The principal reason is to install a Linux system -from the source code. A question many people raise is, <quote>why go -through all the hassle of manually building a Linux system from -scratch when you can just download and install an existing -one?</quote> That is a good question and is the impetus for this -section of the book.</para> + <title>Audience</title> -<para>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 what makes Linux tick, and 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.</para> + <para>There are many reasons why somebody would want to read this book. + The principal reason is to install a Linux system from the source code. + A question many people raise is, <quote>why go through all the hassle of + manually building a Linux system from scratch when you can just download + and install an existing one?</quote> That is a good question and is the + impetus for this section of the book.</para> -<para>A key benefit of LFS is that it allows users to have more -control over the system without relying on someone else's Linux -implementation. With LFS, <emphasis>you</emphasis> are in the -driver's seat and dictate every aspect of the system, such as the -directory layout and bootscript setup. You also dictate where, why, -and how programs are installed.</para> + <para>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 what makes Linux tick, and 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.</para> -<para>Another benefit of LFS is the ability to create a very compact -Linux system. When installing a regular distribution, one is often -forced to include several programs which are probably never used. -These programs waste disk space, or worse, CPU cycles. It is -not difficult to build an LFS system of less than 100 megabytes (MB), -which is substantially smaller than the majority of existing installations. Does -this still sound like a lot of space? A few of us have been working on -creating a very small embedded LFS system. We successfully built a -system that was specialized to run the Apache web server with -approximately 8MB of disk space used. Further stripping could bring -this down to 5 MB or less. Try that with a regular distribution! -This is only one of the many benefits of designing your own Linux -implementation.</para> + <para>A key benefit of LFS is that it allows users to have more control + over the system without relying on someone else's Linux implementation. + With LFS, <emphasis>you</emphasis> are in the driver's seat and dictate + every aspect of the system, such as the directory layout and bootscript + setup. You also dictate where, why, and how programs are installed.</para> -<para>We could compare Linux distributions to a hamburger purchased at -a fast-food restaurant—you have no idea what might be in what -you are eating. LFS, on the other hand, does not give you a hamburger. -Rather, LFS provides the recipe to make the exact hamburger desired. -This allows users to review the recipe, omit unwanted ingredients, and -add your own ingredients to enhance the flavor of the burger. -When you are satisfied with the recipe, move on to preparing it. It -can be made to exact specifications—broil it, bake it, deep-fry -it, or barbecue it.</para> + <para>Another benefit of LFS is the ability to create a very compact Linux + system. When installing a regular distribution, one is often forced to + include several programs which are probably never used. These programs + waste disk space, or worse, CPU cycles. It is not difficult to build an + LFS system of less than 100 megabytes (MB), which is substantially smaller + than the majority of existing installations. Does this still sound like a + lot of space? A few of us have been working on creating a very small + embedded LFS system. We successfully built a system that was specialized + to run the Apache web server with approximately 8MB of disk space used. + Further stripping could bring this down to 5 MB or less. Try that with a + regular distribution! This is only one of the many benefits of designing + your own Linux implementation.</para> -<para>Another analogy that we can use is that of comparing LFS with a -finished house. LFS provides the skeletal plan of a house, but it is up -to you to build it. LFS maintains the freedom to adjust plans -throughout the process, customizing it to the user's needs and -preferences.</para> + <para>We could compare Linux distributions to a hamburger purchased at a + fast-food restaurant—you have no idea what might be in what you are + eating. LFS, on the other hand, does not give you a hamburger. Rather, + LFS provides the recipe to make the exact hamburger desired. This allows + users to review the recipe, omit unwanted ingredients, and add your own + ingredients to enhance the flavor of the burger. When you are satisfied + with the recipe, move on to preparing it. It can be made to exact + specifications—broil it, bake it, deep-fry it, or barbecue it.</para> -<para>An additional 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 -desired. It is no longer necessary 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 adequately fixes -the problem.</para> + <para>Another analogy that we can use is that of comparing LFS with a + finished house. LFS provides the skeletal plan of a house, but it is up + to you to build it. LFS maintains the freedom to adjust plans throughout + the process, customizing it to the user's needs and preferences.</para> -<para>The goal of Linux From Scratch is to build a complete and usable -foundation-level system. Readers who do not wish to build their own -Linux system from scratch may not benefit from the information in this -book. If you only want to know what happens while the computer boots, -we recommend the <quote>From Power Up To Bash Prompt</quote> HOWTO -located at <ulink url="http://axiom.anu.edu.au/~okeefe/p2b/"/> or on -The Linux Documentation Project's (TLDP) website at <ulink -url="http://www.tldp.org/HOWTO/From-PowerUp-To-Bash-Prompt-HOWTO.html"/>. -The HOWTO builds a system which is similar to that of this book, -but it focuses strictly on creating a system capable of booting to a -BASH prompt. Consider your objective. If you wish to build a Linux -system while learning along the way, then this book is your best -choice.</para> + <para>An additional 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 desired. It is no longer + necessary 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 + adequately fixes the problem.</para> -<para>There are too many good reasons to build your own LFS system to -list them all here. This section is only the tip of the iceberg. As -you continue in your LFS experience, you will find the power that -information and knowledge truly bring.</para> + <para>The goal of Linux From Scratch is to build a complete and usable + foundation-level system. Readers who do not wish to build their own Linux + system from scratch may not benefit from the information in this book. If + you only want to know what happens while the computer boots, we recommend + the <quote>From Power Up To Bash Prompt</quote> HOWTO located at + <ulink url="http://axiom.anu.edu.au/~okeefe/p2b/"/> or on The Linux + Documentation Project's (TLDP) website at <ulink + url="http://www.tldp.org/HOWTO/From-PowerUp-To-Bash-Prompt-HOWTO.html"/>. + The HOWTO builds a system which is similar to that of this book, but it + focuses strictly on creating a system capable of booting to a BASH prompt. + Consider your objective. If you wish to build a Linux system while learning + along the way, then this book is your best choice.</para> -</sect1> + <para>There are too many good reasons to build your own LFS system to + list them all here. This section is only the tip of the iceberg. As + you continue in your LFS experience, you will find the power that + information and knowledge truly bring.</para> +</sect1> diff --git a/prologue/bookinfo.xml b/prologue/bookinfo.xml index 2aca11534..843b7b64c 100644 --- a/prologue/bookinfo.xml +++ b/prologue/bookinfo.xml @@ -1,58 +1,66 @@ <?xml version="1.0" encoding="ISO-8859-1"?> -<!DOCTYPE bookinfo PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ +<!DOCTYPE bookinfo PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" + "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ <!ENTITY % general-entities SYSTEM "../general.ent"> %general-entities; ]> -<bookinfo> -<title>Linux From Scratch</title> -<subtitle>Version &version;</subtitle> - - -<authorgroup> -<author><firstname>Gerard</firstname><surname>Beekmans</surname></author> -</authorgroup> +<bookinfo> + <title>Linux From Scratch</title> + <subtitle>Version &version;</subtitle> -<copyright id="copyright"> - <year>1999–2005</year> - <holder>Gerard Beekmans</holder> -</copyright> -<legalnotice> -<para>Copyright (c) 1999–2005, Gerard Beekmans</para> + <authorgroup> + <author> + <firstname>Gerard</firstname> + <surname>Beekmans</surname> + </author> + </authorgroup> -<para>All rights reserved.</para> -<para>Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met:</para> + <copyright id="copyright"> + <year>1999–2005</year> + <holder>Gerard Beekmans</holder> + </copyright> -<itemizedlist> + <legalnotice> + <para>Copyright (c) 1999–2005, Gerard Beekmans</para> -<listitem><para>Redistributions in any form must retain the above copyright -notice, this list of conditions and the following disclaimer</para></listitem> + <para>All rights reserved.</para> -<listitem><para>Neither the name of <quote>Linux From Scratch</quote> nor the -names of its contributors may be used to endorse or promote products derived -from this material without specific prior written permission</para></listitem> + <para>Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met:</para> -<listitem><para>Any material derived from Linux From Scratch must contain -a reference to the <quote>Linux From Scratch</quote> project</para></listitem> + <itemizedlist> + <listitem> + <para>Redistributions in any form must retain the above copyright + notice, this list of conditions and the following disclaimer</para> + </listitem> + <listitem> + <para>Neither the name of <quote>Linux From Scratch</quote> nor the + names of its contributors may be used to endorse or promote products + derived from this material without specific prior written + permission</para> + </listitem> + <listitem> + <para>Any material derived from Linux From Scratch must contain + a reference to the <quote>Linux From Scratch</quote> project</para> + </listitem> + </itemizedlist> -</itemizedlist> + <para>THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + <quote>AS IS</quote> AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, + BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; + OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</para> -<para>THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS <quote>AS -IS</quote> AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED -TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR -CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</para> -</legalnotice> + </legalnotice> </bookinfo> - diff --git a/prologue/dedication.xml b/prologue/dedication.xml index 41cca4d77..e919ae5ac 100644 --- a/prologue/dedication.xml +++ b/prologue/dedication.xml @@ -1,10 +1,11 @@ <?xml version="1.0" encoding="ISO-8859-1"?> -<!DOCTYPE dedication PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ +<!DOCTYPE dedication PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" + "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ <!ENTITY % general-entities SYSTEM "../general.ent"> %general-entities; ]> + <dedication> -<title>Dedication</title> -<para>This book is dedicated</para> + <title>Dedication</title> + <para>This book is dedicated</para> </dedication> - diff --git a/prologue/errata.xml b/prologue/errata.xml index b9f7fc3b0..69e196210 100644 --- a/prologue/errata.xml +++ b/prologue/errata.xml @@ -1,20 +1,22 @@ <?xml version="1.0" encoding="ISO-8859-1"?> -<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ +<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" + "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ <!ENTITY % general-entities SYSTEM "../general.ent"> %general-entities; ]> + <sect1 id="pre-errata"> -<title>Errata</title> -<?dbhtml filename="errata.html"?> + <?dbhtml filename="errata.html"?> -<para>The software used to create an LFS system is constantly being updated and -enhanced. Security warnings and bug fixes may become available after the LFS -book has been released. To check whether the package versions or instructions in -this release of LFS need any modifications to accommodate security -vulnerabilities or other bug fixes, please visit <ulink url="&errata;"/> before -proceeding with your build. You should note any changes shown and apply them to -the relevant section of the book as you progress with building the LFS system. -</para> + <title>Errata</title> -</sect1> + <para>The software used to create an LFS system is constantly being updated + and enhanced. Security warnings and bug fixes may become available after + the LFS book has been released. To check whether the package versions or + instructions in this release of LFS need any modifications to accommodate + security vulnerabilities or other bug fixes, please visit <ulink + url="&errata;"/> before proceeding with your build. You should note any + changes shown and apply them to the relevant section of the book as you + progress with building the LFS system.</para> +</sect1> diff --git a/prologue/foreword.xml b/prologue/foreword.xml index 7e2b91093..2ebe3414c 100644 --- a/prologue/foreword.xml +++ b/prologue/foreword.xml @@ -1,67 +1,67 @@ <?xml version="1.0" encoding="ISO-8859-1"?> -<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ +<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" + "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ <!ENTITY % general-entities SYSTEM "../general.ent"> %general-entities; ]> + <sect1 id="pre-foreword"> -<title>Foreword</title> -<?dbhtml filename="foreword.html"?> + <?dbhtml filename="foreword.html"?> -<para>My adventures in Linux began in 1998 when I downloaded and -installed my first distribution. After working with it for a while, I -discovered issues I definitely would have liked to see improved upon. -For example, I didn't like the arrangement of the bootscripts or the way -programs were configured by default. I tried a number of alternative -distributions to address these issues, yet each had its pros and cons. -Finally, I realized that if I wanted full satisfaction from my Linux -system, I would have to build my own from scratch.</para> + <title>Foreword</title> -<para>What does this mean? I resolved not to use pre-compiled packages -of any kind, nor CD-ROMs or boot disks that would install basic -utilities. I would use my current Linux system to develop my own -customized system. This <quote>perfect</quote> Linux system would then -have the strengths of various systems without their associated -weaknesses. In the beginning, the idea was rather daunting, but I -remained committed to the idea that a system could be built that would -conform to my needs and desires rather than to a standard that just -did not fit what I was looking for.</para> + <para>My adventures in Linux began in 1998 when I downloaded and + installed my first distribution. After working with it for a while, I + discovered issues I definitely would have liked to see improved upon. + For example, I didn't like the arrangement of the bootscripts or the way + programs were configured by default. I tried a number of alternative + distributions to address these issues, yet each had its pros and cons. + Finally, I realized that if I wanted full satisfaction from my Linux + system, I would have to build my own from scratch.</para> -<para>After sorting through issues such as circular dependencies and -compile-time errors, I created a custom-built Linux system that was -fully operational and suitable to individual needs. This process also -allowed me to create compact and streamlined Linux systems which are -faster and take up less space than traditional operating systems. I -called this system a Linux From Scratch system, or an LFS system for -short.</para> + <para>What does this mean? I resolved not to use pre-compiled packages + of any kind, nor CD-ROMs or boot disks that would install basic + utilities. I would use my current Linux system to develop my own + customized system. This <quote>perfect</quote> Linux system would then + have the strengths of various systems without their associated + weaknesses. In the beginning, the idea was rather daunting, but I + remained committed to the idea that a system could be built that would + conform to my needs and desires rather than to a standard that just + did not fit what I was looking for.</para> -<para>As I shared my goals and experiences with other members of the -Linux community, it became apparent that there was sustained interest -in the ideas set forth in my Linux adventures. Such custom-built LFS -systems serve not only to meet user specifications and requirements, but -also serve as an ideal learning opportunity for programmers and system -administrators to enhance their Linux skills. Out of this broadened -interest, the Linux From Scratch Project was born.</para> + <para>After sorting through issues such as circular dependencies and + compile-time errors, I created a custom-built Linux system that was + fully operational and suitable to individual needs. This process also + allowed me to create compact and streamlined Linux systems which are + faster and take up less space than traditional operating systems. I + called this system a Linux From Scratch system, or an LFS system for + short.</para> -<para>This <emphasis>Linux From Scratch</emphasis> book provides -readers with the background and instruction to design and build custom -Linux systems. This book highlights the Linux from Scratch project and -the benefits of using this system. Users can dictate all aspects of -their system, including directory layout, script setup, and security. -The resulting system will be compiled completely from the source code, -and the user will be able to specify where, why, and how programs are -installed. This book allows readers to fully customize Linux systems -to their own needs and allows users more control over their -system.</para> + <para>As I shared my goals and experiences with other members of the + Linux community, it became apparent that there was sustained interest + in the ideas set forth in my Linux adventures. Such custom-built LFS + systems serve not only to meet user specifications and requirements, but + also serve as an ideal learning opportunity for programmers and system + administrators to enhance their Linux skills. Out of this broadened + interest, the Linux From Scratch Project was born.</para> -<para>I hope you will have a great time working on your own LFS -system, and enjoy the numerous benefits of having a system that is -truly <emphasis>your own</emphasis>.</para> + <para>This <emphasis>Linux From Scratch</emphasis> book provides + readers with the background and instruction to design and build custom + Linux systems. This book highlights the Linux from Scratch project and + the benefits of using this system. Users can dictate all aspects of + their system, including directory layout, script setup, and security. + The resulting system will be compiled completely from the source code, + and the user will be able to specify where, why, and how programs are + installed. This book allows readers to fully customize Linux systems + to their own needs and allows users more control over their + system.</para> -<para></para> + <para>I hope you will have a great time working on your own LFS + system, and enjoy the numerous benefits of having a system that is + truly <emphasis>your own</emphasis>.</para> <literallayout>-- Gerard Beekmans gerard@linuxfromscratch.org</literallayout> </sect1> - diff --git a/prologue/hostreqs.xml b/prologue/hostreqs.xml index 487fcd54b..23aa8c9f0 100644 --- a/prologue/hostreqs.xml +++ b/prologue/hostreqs.xml @@ -1,43 +1,46 @@ <?xml version="1.0" encoding="ISO-8859-1"?> -<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ +<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" + "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ <!ENTITY % general-entities SYSTEM "../general.ent"> %general-entities; ]> + <sect1 id="pre-hostreqs"> -<title>Host System Requirements</title> -<?dbhtml filename="hostreqs.html"?> - -<para>The host must be running at least a 2.6.2 kernel compiled with GCC-3.0 or -higher. There are two main reasons for this requirement. First, the Native POSIX -Threading Library (NPTL) test suite will segfault if the host's kernel has not -been compiled with GCC-3.0 or a later version. Second, the 2.6.2 or later -version of the kernel is required for the use of Udev. Udev creates devices -dynamically by reading from the <systemitem -class="filesystem">sysfs</systemitem> file system. However, support for this -filesystem has only recently been implemented in most of the kernel drivers. We -must be sure that all critical system devices get created properly.</para> - -<para>In order to determine whether the host kernel meets the -requirements outlined above, run the following command:</para> + <?dbhtml filename="hostreqs.html"?> + + <title>Host System Requirements</title> + + <para>The host must be running at least a 2.6.2 kernel compiled with GCC-3.0 + or higher. There are two main reasons for this requirement. First, the Native + POSIX Threading Library (NPTL) test suite will segfault if the host's kernel + has not been compiled with GCC-3.0 or a later version. Second, the 2.6.2 or + later version of the kernel is required for the use of Udev. Udev creates + devices dynamically by reading from the <systemitem + class="filesystem">sysfs</systemitem> file system. However, support for this + filesystem has only recently been implemented in most of the kernel drivers. + We must be sure that all critical system devices get created properly.</para> + + <para>In order to determine whether the host kernel meets the requirements + outlined above, run the following command:</para> <screen role="nodump"><userinput>cat /proc/version</userinput></screen> -<para>This will produce output similar to:</para> + <para>This will produce output similar to:</para> <screen><computeroutput>Linux version 2.6.2 (user@host) (gcc version 3.4.0) #1 Tue Apr 20 21:22:18 GMT 2004</computeroutput></screen> -<para>If the results of the above command do not state that the host kernel is -either 2.6.2 (or later), or that it was not compiled using a GCC-3.0 (or later) -compiler, one will need to be installed. There are two methods you can take to -solve this. First, see if your Linux vendor provides a 2.6.2 (or later) kernel -package. If so, you may wish to install it. If your vendor doesn't offer a 2.6.2 -(or later) kernel package, or you would prefer not to install it, then you can -compile a 2.6 kernel yourself. Instructions for compiling the kernel and -configuring the boot loader (assuming the host uses GRUB) are located in <xref -linkend="chapter-bootable"/>. This second option can also be seen as a gauge -of your current Linux skills. If this second requirement is too steep, then the -LFS book will not likely be much use to you at this time.</para> + <para>If the results of the above command do not state that the host kernel + is either 2.6.2 (or later), or that it was not compiled using a GCC-3.0 (or + later) compiler, one will need to be installed. There are two methods you + can take to solve this. First, see if your Linux vendor provides a 2.6.2 (or + later) kernel package. If so, you may wish to install it. If your vendor + doesn't offer a 2.6.2 (or later) kernel package, or you would prefer not to + install it, then you can compile a 2.6 kernel yourself. Instructions for + compiling the kernel and configuring the boot loader (assuming the host + uses GRUB) are located in <xref linkend="chapter-bootable"/>. This second + option can also be seen as a gauge of your current Linux skills. If this + second requirement is too steep, then the LFS book will not likely be much + use to you at this time.</para> </sect1> - diff --git a/prologue/organization.xml b/prologue/organization.xml index f701fc388..c4ca2cd31 100644 --- a/prologue/organization.xml +++ b/prologue/organization.xml @@ -1,40 +1,43 @@ <?xml version="1.0" encoding="ISO-8859-1"?> -<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ +<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" + "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ <!ENTITY % general-entities SYSTEM "../general.ent"> %general-entities; ]> + <sect1 id="pre-organization"> -<title>Structure</title> -<?dbhtml filename="organization.html"?> - -<para>This book is divided into the following parts.</para> - -<sect2> -<title>Part I - Introduction</title> - -<para>Part I explains a few important notes on how to proceed with the -LFS installation. This section also provides meta-information about -the book.</para> -</sect2> - -<sect2> -<title>Part II - Preparing for the Build</title> - -<para>Part II describes how to prepare for the building process—making -a partition, downloading the packages, and compiling temporary -tools.</para> -</sect2> - -<sect2> -<title>Part III - Building the LFS System</title> - -<para>Part III guides the reader through the building of the LFS -system—compiling and installing all the packages one by one, -setting up the boot scripts, and installing the kernel. The resulting -Linux system is the foundation on which other software can be built to -expand the system as desired. At the end of this book, there is an -easy to use reference listing all of the programs, libraries, and -important files that have been installed.</para> -</sect2> + <?dbhtml filename="organization.html"?> + + <title>Structure</title> + + <para>This book is divided into the following parts.</para> + + <sect2> + <title>Part I - Introduction</title> + + <para>Part I explains a few important notes on how to proceed with the + LFS installation. This section also provides meta-information about + the book.</para> + </sect2> + + <sect2> + <title>Part II - Preparing for the Build</title> + + <para>Part II describes how to prepare for the building process—making + a partition, downloading the packages, and compiling temporary + tools.</para> + </sect2> + + <sect2> + <title>Part III - Building the LFS System</title> + + <para>Part III guides the reader through the building of the LFS + system—compiling and installing all the packages one by one, + setting up the boot scripts, and installing the kernel. The resulting + Linux system is the foundation on which other software can be built to + expand the system as desired. At the end of this book, there is an + easy to use reference listing all of the programs, libraries, and + important files that have been installed.</para> + </sect2> </sect1> diff --git a/prologue/preface.xml b/prologue/preface.xml index d2767c5d2..97f9a4733 100644 --- a/prologue/preface.xml +++ b/prologue/preface.xml @@ -1,19 +1,22 @@ <?xml version="1.0" encoding="ISO-8859-1"?> -<!DOCTYPE preface PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ +<!DOCTYPE preface PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" + "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ <!ENTITY % general-entities SYSTEM "../general.ent"> %general-entities; ]> + <preface id="preface"> -<?dbhtml dir="prologue"?> -<title>Preface</title> -<?dbhtml filename="preface.html"?> + <?dbhtml dir="prologue"?> + <?dbhtml filename="preface.html"?> + + <title>Preface</title> -<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="foreword.xml"/> -<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="audience.xml"/> -<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="prerequisites.xml"/> -<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="hostreqs.xml"/> -<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="typography.xml"/> -<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="organization.xml"/> -<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="errata.xml"/> + <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="foreword.xml"/> + <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="audience.xml"/> + <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="prerequisites.xml"/> + <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="hostreqs.xml"/> + <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="typography.xml"/> + <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="organization.xml"/> + <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="errata.xml"/> </preface> diff --git a/prologue/prerequisites.xml b/prologue/prerequisites.xml index e7cf9d33c..c3adf54eb 100644 --- a/prologue/prerequisites.xml +++ b/prologue/prerequisites.xml @@ -1,50 +1,59 @@ <?xml version="1.0" encoding="ISO-8859-1"?> -<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ +<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" + "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ <!ENTITY % general-entities SYSTEM "../general.ent"> %general-entities; ]> + <sect1 id="pre-prerequisites"> -<title>Prerequisites</title> -<?dbhtml filename="prerequisites.html"?> + <?dbhtml filename="prerequisites.html"?> -<para>Building an LFS system is not a simple task. It requires a certain level -of existing knowledge of Unix system administration in order to resolve -problems, and correctly execute the commands listed. In particular, as an -absolute minimum, the reader should already have the ability to use the command -line (shell) to copy or move files and directories, list directory and file -contents, and change the current directory. It is also expected that the reader -has a reasonable knowledge of using and installing Linux software.</para> + <title>Prerequisites</title> -<para>Because the LFS book assumes <emphasis>at least</emphasis> this basic -level of skill, the various LFS support forums are unlikely to be able to -provide you with much assistance; you will find that your questions regarding -such basic knowledge will likely go unanswered, or you will simply be referred -to the LFS essential pre-reading list.</para> + <para>Building an LFS system is not a simple task. It requires a certain + level of existing knowledge of Unix system administration in order to resolve + problems, and correctly execute the commands listed. In particular, as an + absolute minimum, the reader should already have the ability to use the + command line (shell) to copy or move files and directories, list directory + and file contents, and change the current directory. It is also expected that + the reader has a reasonable knowledge of using and installing Linux + software.</para> -<para>Before building an LFS system, we recommend reading the following HOWTOs: -</para> + <para>Because the LFS book assumes <emphasis>at least</emphasis> this basic + level of skill, the various LFS support forums are unlikely to be able to + provide you with much assistance; you will find that your questions regarding + such basic knowledge will likely go unanswered, or you will simply be referred + to the LFS essential pre-reading list.</para> -<itemizedlist> -<listitem><para>Software-Building-HOWTO -<ulink url="http://www.tldp.org/HOWTO/Software-Building-HOWTO.html"/></para> + <para>Before building an LFS system, we recommend reading the following + HOWTOs:</para> -<para>This is a comprehensive guide to building and installing -<quote>generic</quote> Unix software distributions under Linux.</para></listitem> + <itemizedlist> + <listitem> + <para>Software-Building-HOWTO + <ulink url="http://www.tldp.org/HOWTO/Software-Building-HOWTO.html"/></para> -<listitem><para>The Linux Users' Guide -<ulink url="http://www.linuxhq.com/guides/LUG/guide.html"/></para> + <para>This is a comprehensive guide to building and installing + <quote>generic</quote> Unix software distributions under Linux.</para> + </listitem> -<para>This guide covers the usage of assorted Linux software.</para></listitem> + <listitem> + <para>The Linux Users' Guide + <ulink url="http://www.linuxhq.com/guides/LUG/guide.html"/></para> -<listitem><para>The Essential Pre-Reading Hint -<ulink url="&hints-root;essential_prereading.txt"/></para> + <para>This guide covers the usage of assorted Linux software.</para> + </listitem> -<para>This is an LFS Hint written specifically for users new to Linux. -It includes a list of links to excellent sources of information on a -wide range of topics. Anyone attempting to install LFS should have an -understanding of many of the topics in this hint.</para></listitem> + <listitem> + <para>The Essential Pre-Reading Hint + <ulink url="&hints-root;essential_prereading.txt"/></para> -</itemizedlist> + <para>This is an LFS Hint written specifically for users new to Linux. + It includes a list of links to excellent sources of information on a + wide range of topics. Anyone attempting to install LFS should have an + understanding of many of the topics in this hint.</para> + </listitem> -</sect1> + </itemizedlist> +</sect1> diff --git a/prologue/typography.xml b/prologue/typography.xml index b101817fe..ddafff780 100644 --- a/prologue/typography.xml +++ b/prologue/typography.xml @@ -1,41 +1,41 @@ <?xml version="1.0" encoding="ISO-8859-1"?> -<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ +<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" + "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ <!ENTITY % general-entities SYSTEM "../general.ent"> %general-entities; ]> + <sect1 id="pre-typography"> -<title>Typography</title> -<?dbhtml filename="typography.html"?> + <?dbhtml filename="typography.html"?> + + <title>Typography</title> -<para>To make things easier to follow, there are a few typographical -conventions used throughout this book. This section contains some -examples of the typographical format found throughout Linux From -Scratch.</para> + <para>To make things easier to follow, there are a few typographical + conventions used throughout this book. This section contains some + examples of the typographical format found throughout Linux From + Scratch.</para> <screen role="nodump"><userinput>./configure --prefix=/usr</userinput></screen> -<para>This form of text is designed to be typed exactly as seen unless -otherwise noted in the surrounding text. It is also used in the -explanation sections to identify which of the commands is being -referenced.</para> + <para>This form of text is designed to be typed exactly as seen unless + otherwise noted in the surrounding text. It is also used in the explanation + sections to identify which of the commands is being referenced.</para> <screen><computeroutput>install-info: unknown option '--dir-file=/mnt/lfs/usr/info/dir'</computeroutput></screen> -<para>This form of text (fixed-width text) shows screen output, -probably as the result of commands issued. This format is also used -to show filenames, such as -<filename>/etc/ld.so.conf</filename>.</para> + <para>This form of text (fixed-width text) shows screen output, probably as + the result of commands issued. This format is also used to show filenames, + such as <filename>/etc/ld.so.conf</filename>.</para> -<para><emphasis>Emphasis</emphasis></para> + <para><emphasis>Emphasis</emphasis></para> -<para>This form of text is used for several purposes in the book. Its main -purpose is to emphasize important points or items.</para> + <para>This form of text is used for several purposes in the book. Its main + purpose is to emphasize important points or items.</para> -<para><ulink url="&lfs-root;"/></para> + <para><ulink url="&lfs-root;"/></para> -<para>This format is used for hyperlinks both within the LFS -community and to external pages. It includes HOWTOs, download locations, -and websites.</para> + <para>This format is used for hyperlinks both within the LFS community and to + external pages. It includes HOWTOs, download locations, and websites.</para> <screen role="nodump"><userinput>cat > $LFS/etc/group << "EOF" <literal>root:x:0: @@ -43,35 +43,35 @@ bin:x:1: ......</literal> EOF</userinput></screen> -<para>This format is used when creating configuration files. The first -command tells the system to create the file -<filename>$LFS/etc/group</filename> from whatever is typed on the -following lines until the sequence end of file (EOF) is encountered. -Therefore, this entire section is generally typed as seen.</para> - -<para><replaceable>[REPLACED TEXT]</replaceable></para> - -<para>This format is used to encapsulate text that is not to be typed -as seen or copied-and-pasted.</para> - -<para><filename>passwd(5)</filename></para> - -<para>This format is used to refer to a specific manual page (hereinafter -referred to simply as a <quote>man</quote> page). The number inside parentheses -indicates a specific section inside of <command>man</command>. For example, -<command>passwd</command> has two man pages. Per LFS installation instructions, -those two man pages will be located at -<filename>/usr/share/man/man1/passwd.1</filename> and -<filename>/usr/share/man/man5/passwd.5</filename>. Both man pages have different -information in them. When the book uses <filename>passwd(5)</filename> it is -specifically referring to <filename>/usr/share/man/man5/passwd.5</filename>. -<command>man passwd</command> will print the first man page it finds that -matches <quote>passwd</quote>, which will be -<filename>/usr/share/man/man1/passwd.1</filename>. For this example, you will -need to run <command>man 5 passwd</command> in order to read the specific page -being referred to. It should be noted that most man pages do not have duplicate -page names in different sections. Therefore, <command>man <replaceable>[program -name]</replaceable></command> is generally sufficient.</para> + <para>This format is used when creating configuration files. The first command + tells the system to create the file <filename>$LFS/etc/group</filename> from + whatever is typed on the following lines until the sequence end of file (EOF) + is encountered. Therefore, this entire section is generally typed as + seen.</para> + + <para><replaceable>[REPLACED TEXT]</replaceable></para> + + <para>This format is used to encapsulate text that is not to be typed + as seen or copied-and-pasted.</para> + + <para><filename>passwd(5)</filename></para> + + <para>This format is used to refer to a specific manual page (hereinafter + referred to simply as a <quote>man</quote> page). The number inside parentheses + indicates a specific section inside of <command>man</command>. For example, + <command>passwd</command> has two man pages. Per LFS installation instructions, + those two man pages will be located at + <filename>/usr/share/man/man1/passwd.1</filename> and + <filename>/usr/share/man/man5/passwd.5</filename>. Both man pages have different + information in them. When the book uses <filename>passwd(5)</filename> it is + specifically referring to <filename>/usr/share/man/man5/passwd.5</filename>. + <command>man passwd</command> will print the first man page it finds that + matches <quote>passwd</quote>, which will be + <filename>/usr/share/man/man1/passwd.1</filename>. For this example, you will + need to run <command>man 5 passwd</command> in order to read the specific page + being referred to. It should be noted that most man pages do not have duplicate + page names in different sections. Therefore, <command>man <replaceable>[program + name]</replaceable></command> is generally sufficient.</para> </sect1> |