aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArchaic <archaic@linuxfromscratch.org>2005-12-26 19:46:12 +0000
committerArchaic <archaic@linuxfromscratch.org>2005-12-26 19:46:12 +0000
commit94aa662138576c22deef1642b3b2b302ad075a82 (patch)
tree38766a292ed556718529449133b71b25138df9b8
parent5536f7440f2f4a12782e8d741cbbba5f1c3cfea8 (diff)
Reverting UTF-8 changes until everything is in place.
git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@7236 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
-rw-r--r--chapter01/changelog.xml13
-rw-r--r--chapter03/packages.xml46
-rw-r--r--chapter03/patches.xml57
-rw-r--r--chapter05/gawk.xml13
-rw-r--r--chapter05/glibc.xml17
-rw-r--r--chapter06/chapter06.xml3
-rw-r--r--chapter06/coreutils.xml20
-rw-r--r--chapter06/diffutils.xml6
-rw-r--r--chapter06/gawk.xml16
-rw-r--r--chapter06/gdbm.xml73
-rw-r--r--chapter06/glibc.xml45
-rw-r--r--chapter06/grep.xml10
-rw-r--r--chapter06/groff.xml21
-rw-r--r--chapter06/kbd.xml19
-rw-r--r--chapter06/man-db.xml268
-rw-r--r--chapter06/man.xml180
-rw-r--r--chapter06/ncurses.xml94
-rw-r--r--chapter06/readline.xml4
-rw-r--r--chapter06/sysklogd.xml6
-rw-r--r--chapter06/sysvinit.xml23
-rw-r--r--chapter06/texinfo.xml8
-rw-r--r--chapter06/udev.xml1
-rw-r--r--chapter06/vim.xml14
-rw-r--r--chapter07/bootscripts.xml6
-rw-r--r--chapter07/console.xml261
-rw-r--r--chapter07/profile.xml53
-rw-r--r--chapter08/fstab.xml39
-rw-r--r--chapter08/kernel.xml16
-rw-r--r--general.ent8
-rw-r--r--patches.ent22
30 files changed, 353 insertions, 1009 deletions
diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml
index 3f0245f2c..e5be147f8 100644
--- a/chapter01/changelog.xml
+++ b/chapter01/changelog.xml
@@ -44,7 +44,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 +59,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-DB &man-db-version;</para></listitem>
+<listitem><para>Man &man-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,22 +83,14 @@ 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>GDBM-&gdbm-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>
@@ -115,7 +107,6 @@ 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>
diff --git a/chapter03/packages.xml b/chapter03/packages.xml
index a08517671..61b0fb82c 100644
--- a/chapter03/packages.xml
+++ b/chapter03/packages.xml
@@ -137,13 +137,6 @@ url="http://www.linuxfromscratch.org/lfs/download.html#ftp"/>.</para></note>
</varlistentry>
<varlistentry>
-<term>GDBM (&gdbm-version;) - 228 KB:</term>
-<listitem>
-<para><ulink url="&gnu;gdbm/"/></para>
-</listitem>
-</varlistentry>
-
-<varlistentry>
<term>Gettext (&gettext-version;) - 4,668 KB:</term>
<listitem>
<para><ulink url="&gnu;gettext/"/></para>
@@ -165,26 +158,13 @@ url="http://www.linuxfromscratch.org/lfs/download.html#ftp"/>.</para></note>
</varlistentry>
<varlistentry>
-<term>Groff (&groff-version;) - 2,260 KB:</term>
+<term>Groff (&groff-version;) - 2,096 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>
@@ -249,13 +229,6 @@ released. There is no alternative download location yet.</para></note>
</varlistentry>
<varlistentry>
-<term>Replacement <command>console</command> script for LFS-Bootscripts (&lfs-bootscripts-version;) - 3 KB:</term>
-<listitem>
-<para><ulink url="&alexpatches;console"/></para>
-</listitem>
-</varlistentry>
-
-<varlistentry>
<term>Libtool (&libtool-version;) - 1,642 KB:</term>
<listitem>
<para><ulink url="&gnu;libtool/"/></para>
@@ -291,9 +264,9 @@ released. There is no alternative download location yet.</para></note>
</varlistentry>
<varlistentry>
-<term>Man-DB (&man-db-version;) - 816 KB:</term>
+<term>Man (&man-version;) - 205 KB:</term>
<listitem>
-<para><ulink url="http://savannah.nongnu.org/download/man-db/"/></para>
+<para><ulink url="http://primates.ximian.com/~flucifredi/man/"/></para>
</listitem>
</varlistentry>
@@ -325,19 +298,6 @@ released. There is no alternative download location yet.</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>
diff --git a/chapter03/patches.xml b/chapter03/patches.xml
index 239a4c58e..85a728d11 100644
--- a/chapter03/patches.xml
+++ b/chapter03/patches.xml
@@ -30,13 +30,6 @@ 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>
@@ -51,13 +44,6 @@ 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>
@@ -86,26 +72,12 @@ 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>
@@ -127,13 +99,6 @@ 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>
@@ -141,13 +106,6 @@ 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>
@@ -155,13 +113,6 @@ 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>
@@ -190,14 +141,6 @@ 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/gawk.xml b/chapter05/gawk.xml
index c017de61b..c70d6d1cd 100644
--- a/chapter05/gawk.xml
+++ b/chapter05/gawk.xml
@@ -31,14 +31,11 @@
<screen><userinput>./configure --prefix=/tools</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 &gt;&gt;config.h &lt;&lt;"EOF"
-<literal>#define HAVE_LANGINFO_CODESET 1
-#define HAVE_LC_MESSAGES 1</literal>
-EOF</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>Compile the package:</para>
diff --git a/chapter05/glibc.xml b/chapter05/glibc.xml
index 68fd4ce01..51d44ad24 100644
--- a/chapter05/glibc.xml
+++ b/chapter05/glibc.xml
@@ -27,17 +27,6 @@
<sect2 role="installation">
<title>Installation of Glibc</title>
-<para>The glibc-libidn tarball adds support for internationalized
-(non-ASCII) domain names to Glibc. While this facility is not
-useful in this chapter, the installation commands of
-<xref linkend="chapter-building-system"/>
-glibc (wrongly) check <xref linkend="chapter-temporary-tools"/> glibc for
-this feature. Unpack the tarball from within the Glibc source
-directory in order to avoid this bogus failure:</para>
-
-<screen><userinput>tar jxf ../glibc-libidn-&glibc-version;.tar.bz2</userinput></screen>
-<!-- TODO: DIY Linux modifies the installation check script in Chapte 6 instead -->
-
<para>The Glibc documentation recommends building Glibc outside of the source
directory in a dedicated build directory:</para>
@@ -47,7 +36,7 @@ cd ../glibc-build</userinput></screen>
<para>Next, prepare Glibc for compilation:</para>
<screen><userinput>../glibc-&glibc-version;/configure --prefix=/tools \
- --disable-profile --enable-add-ons=nptl,libidn \
+ --disable-profile --enable-add-ons \
--enable-kernel=2.6.0 --with-binutils=/tools/bin \
--without-gd --with-headers=/tools/include \
--without-selinux</userinput></screen>
@@ -63,9 +52,9 @@ necessary.</para></listitem>
</varlistentry>
<varlistentry>
-<term><parameter>--enable-add-ons=nptl,libidn</parameter></term>
+<term><parameter>--enable-add-ons</parameter></term>
<listitem><para>This tells Glibc to use the NPTL add-on as its threading
-library, and adds support for non-ASCII domain names.</para></listitem>
+library.</para></listitem>
</varlistentry>
<varlistentry>
diff --git a/chapter06/chapter06.xml b/chapter06/chapter06.xml
index 6c5b872ae..82d457cbb 100644
--- a/chapter06/chapter06.xml
+++ b/chapter06/chapter06.xml
@@ -34,7 +34,6 @@
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="m4.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="bison.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="less.xml"/>
-<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="gdbm.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="groff.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="sed.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="flex.xml"/>
@@ -56,7 +55,7 @@
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="grub.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="gzip.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="hotplug.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="man.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="make.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="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 5c3980f2f..8b06c567b 100644
--- a/chapter06/coreutils.xml
+++ b/chapter06/coreutils.xml
@@ -41,26 +41,6 @@ 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/diffutils.xml b/chapter06/diffutils.xml
index 016e9f7e0..ade0ece11 100644
--- a/chapter06/diffutils.xml
+++ b/chapter06/diffutils.xml
@@ -29,12 +29,6 @@ Gettext, Glibc, Grep, Make, and Sed</seg></seglistitem>
<sect2 role="installation">
<title>Installation of Diffutils</title>
-<para>POSIX requires that the <command>diff</command> command treats whitespace
-characters according to the current locale. The following patch fixes the
-non-complinace 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 d25196e41..41df7f965 100644
--- a/chapter06/gawk.xml
+++ b/chapter06/gawk.xml
@@ -28,8 +28,8 @@ Diffutils, GCC, Gettext, Glibc, Grep, Make, and Sed</seg></seglistitem>
<sect2 role="installation">
<title>Installation of Gawk</title>
-<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>
+<para>Patch Gawk to fix a bug which causes it to segfault when invoked on a
+non-existent file:</para>
<screen><userinput>patch -Np1 -i ../&gawk-segfault-patch;</userinput></screen>
@@ -37,15 +37,11 @@ of memory that was not allocated. This bug is fixed by the following patch:</par
<screen><userinput>./configure --prefix=/usr --libexecdir=/usr/lib</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>
+<para>The configure script doesn't detect some functionality correctly. The
+following commands correct this problem:</para>
-<screen><userinput>cat &gt;&gt;config.h &lt;&lt;"EOF"
-<literal>#define HAVE_LANGINFO_CODESET 1
-#define HAVE_LC_MESSAGES 1</literal>
-EOF</userinput></screen>
+<screen><userinput>echo "#define HAVE_LANGINFO_CODESET 1" >> config.h
+echo "#define HAVE_LC_MESSAGES 1" >> config.h</userinput></screen>
<para>Compile the package:</para>
diff --git a/chapter06/gdbm.xml b/chapter06/gdbm.xml
deleted file mode 100644
index a2eee4fac..000000000
--- a/chapter06/gdbm.xml
+++ /dev/null
@@ -1,73 +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-gdbm" role="wrap">
-<title>GDBM-&gdbm-version;</title>
-<?dbhtml filename="gdbm.html"?>
-
-<indexterm zone="ch-system-gdbm"><primary sortas="a-Gdbm">GDBM</primary></indexterm>
-
-<sect2 role="package"><title/>
-<para>The GDBM package contains the GNU Database Manager.</para>
-
-<segmentedlist>
-<segtitle>&buildtime;</segtitle>
-<segtitle>&diskspace;</segtitle>
-<seglistitem><seg>0.08 SBU</seg><seg>2.75 MB</seg></seglistitem>
-</segmentedlist>
-
-<segmentedlist>
-<segtitle>&dependencies;</segtitle>
-<seglistitem><seg>Not checked yet.</seg></seglistitem>
-</segmentedlist>
-</sect2>
-
-<sect2 role="installation">
-<title>Installation of GDBM</title>
-
-<para>Prepare GDBM for compilation:</para>
-
-<screen><userinput>./configure --prefix=/usr</userinput></screen>
-
-<para>Compile the package:</para>
-
-<screen><userinput>make</userinput></screen>
-
-<para>Install the package:</para>
-
-<screen><userinput>make BINOWN=root BINGRP=root install install-compat</userinput></screen>
-
-</sect2>
-
-
-<sect2 id="contents-gDBM" role="content"><title>Contents of GDBM</title>
-
-<segmentedlist>
-<segtitle>Installed libraries</segtitle>
-<seglistitem><seg>libgdbm.[so,a] and libgdbm_compat.[so,a]</seg></seglistitem>
-</segmentedlist>
-
-<variablelist><bridgehead renderas="sect3">Short Descriptions</bridgehead>
-<?dbfo list-presentation="list"?>
-<?dbhtml list-presentation="table"?>
-
-<varlistentry id="libgdbm">
-<term>libgdbm.[so,a]</term>
-<listitem>
-<para>contains functions to manipulate a hashed database.</para>
-</listitem>
-</varlistentry>
-
-<varlistentry id="libgdbm-compat">
-<term>libgdbm_compat.[so,a]</term>
-<listitem>
-<para>provide compatibility with older dbm routines</para>
-</listitem>
-</varlistentry>
-</variablelist>
-
-</sect2>
-
-</sect1>
diff --git a/chapter06/glibc.xml b/chapter06/glibc.xml
index 8ab39c726..c09759789 100644
--- a/chapter06/glibc.xml
+++ b/chapter06/glibc.xml
@@ -47,21 +47,6 @@ 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. Note that many programs that
-support IDN require the full libidn library from
-<ulink url="http://josefsson.org/libidn/releases/"/>, 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, bash enters infinite loop at startup. It is
-unknown whether this is a bash 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>
@@ -71,7 +56,7 @@ cd ../glibc-build</userinput></screen>
<para>Prepare Glibc for compilation:</para>
<screen><userinput>../glibc-&glibc-version;/configure --prefix=/usr \
- --disable-profile --enable-add-ons=nptl,libidn \
+ --disable-profile --enable-add-ons \
--enable-kernel=2.6.0 --libexecdir=/usr/lib/glibc</userinput></screen>
<para>The meaning of the new configure options:</para>
@@ -144,11 +129,6 @@ with:</para>
<screen><userinput>make localedata/install-locales</userinput></screen>
-<note><para>It is possible to create and install additional locales such as
-ru_RU.CP1251 by means of the <command>localedef</command> command, as
-explained in the <filename>INSTALL</filename> file in the Glibc source.</para></note>
-<!-- The Live CD patches the localedata/SUPPORTED file instead of running localedef -->
-
<para>To save time, an alternative to running the
previous command (which generates and installs every locale listed in the
glibc-&glibc-version;/localedata/SUPPORTED file) is to install only those
@@ -162,7 +142,6 @@ 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>
-<!-- FIXME: recheck that "make localedata/install_locales" actually does the same -->
<screen role="nodump"><userinput>mkdir -pv /usr/lib/locale
localedef -i de_DE -f ISO-8859-1 de_DE
localedef -i de_DE@euro -f ISO-8859-15 de_DE@euro
@@ -173,16 +152,24 @@ 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>The first <command>localedef</command> above 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.</para>
+<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 at this
+time. This applies to the ja_JP and fa_IR locales as well&mdash;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>
+
</sect2>
<sect2 id="conf-glibc" role="configuration"><title>Configuring Glibc</title>
diff --git a/chapter06/grep.xml b/chapter06/grep.xml
index b772ad294..8322c6d45 100644
--- a/chapter06/grep.xml
+++ b/chapter06/grep.xml
@@ -28,16 +28,6 @@ Diffutils, GCC, Gettext, Glibc, Make, Sed, and Texinfo</seg></seglistitem>
<sect2 role="installation">
<title>Installation of Grep</title>
-<para>The original Grep package has many bugs, especially in the support of
-multibyte locales. RedHat fixed some of them by 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 a8883e930..a2d8cb7e2 100644
--- a/chapter06/groff.xml
+++ b/chapter06/groff.xml
@@ -28,29 +28,10 @@ Gawk, GCC, Glibc, Grep, Make, and Sed</seg></seglistitem>
<sect2 role="installation">
<title>Installation of Groff</title>
-<para>Apply the patch that adds the "ascii8" and "nippon" 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. There is no working patch for
-Groff-1.19.x that adds this functionality at the time of this writing.
-<!-- Details: http://bugs.debian.org/196762 -->
-</para></note>
-
-<para>Many screen fonts don't have Unicode dashes in them. Tell groff to use
-the ASCII hyphen instead:</para>
-
-<screen><userinput>sed -i 's,2010,002D,' font/devutf8/R.proto
-sed -i 's,2212,002D,' 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.
-The default paper size can be changed after installation by writing
-the word "A4" or "letter" to the <filename>/etc/papersize</filename>
-file.</para>
+<parameter>PAGE=A4</parameter> may be more suitable.</para>
<para>Prepare Groff for compilation:</para>
diff --git a/chapter06/kbd.xml b/chapter06/kbd.xml
index 703f959df..52e8a734c 100644
--- a/chapter06/kbd.xml
+++ b/chapter06/kbd.xml
@@ -28,15 +28,6 @@ Diffutils, Flex, GCC, Gettext, Glibc, Grep, Gzip, M4, Make, and Sed</seg></segli
<sect2 role="installation">
<title>Installation of Kbd</title>
-<para>The behaviour of 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>
@@ -56,11 +47,6 @@ when compiling with GCC-&gcc-version;:</para>
<screen><userinput>make install</userinput></screen>
-<note>For some languages, e.g. Belarusian, the Kbd package doesn't provide
-a useful keymap (the stock "by" keymap assumes the ISO-8859-5 encoding,
-while everybody uses CP1251 instead). Users of such languages
-have to download working keymaps separately.</note>
-
</sect2>
<sect2 id="contents-kbd" role="content"><title>Contents of Kbd</title>
@@ -288,9 +274,8 @@ 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. 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>
+<para>Puts the keyboard and console in UNICODE mode. Never use it on LFS,
+because applications are not configured to support UNICODE.</para>
<indexterm zone="ch-system-kbd unicode_start"><primary sortas="b-unicode_start">unicode_start</primary></indexterm>
</listitem>
</varlistentry>
diff --git a/chapter06/man-db.xml b/chapter06/man-db.xml
deleted file mode 100644
index 13a421a21..000000000
--- a/chapter06/man-db.xml
+++ /dev/null
@@ -1,268 +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-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,
-Glibc, Gettext, GDBM, 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,} &amp;&amp;
-mv man/es{_ES.88591,} &amp;&amp;
-mv man/it{_IT.88591,} &amp;&amp;
-mv man/ja{_JP.eucJP,} &amp;&amp;
-sed -i 's,\*_\*,??,' man/Makefile.in</userinput></screen>
-
-<para>The second change is a sed 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 &gt;&gt;include/manconfig.h.in &lt;&lt;"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 "ascii8" and "nippon" 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 "man".</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 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><title>Non-English Manual Pages in LFS</title>
-
-<para>Linux distributions have different policies concerning the chracter
-encoding in which manual pages are stored on the hard disk. 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 correspondence between
-language codes and the expected encoding of manual pages is listed below.
-Man-DB automatically converts them to the locale encoding "on the fly"
-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 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 &amp;&amp;
-cp -r man? /usr/share/man/fr</userinput></screen>
-
-<para>If upstream distributes manual pages in UTF-8 (i.e. "for RedHat")
-instead of the encoding listed in the table above, they have to be
-downconverted 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 &amp;&amp;
-find man? -type f | \
-grep -v 'man7/iso_8859-2.7' | 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 &amp;&amp;
-cp -r man? /usr/share/man/es</userinput></screen>
-
-<note>The need to exclude <filename>man7/iso_8859-2.7</filename>
-and <filename>man7/iso_8859-7.7</filename> files from the conversion process
-because they are already in ISO-8859-1 is a packaging bug in
-man-pages-es-1.55. Future versions should not require this kludge.</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 on-line man 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.xml b/chapter06/man.xml
index e69de29bb..371985d2e 100644
--- a/chapter06/man.xml
+++ b/chapter06/man.xml
@@ -0,0 +1,180 @@
+<?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, Coreutils, Gawk, GCC,
+Glibc, Grep, 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@&amp;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@#&amp;@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/ncurses.xml b/chapter06/ncurses.xml
index be459b36d..50e2bdc33 100644
--- a/chapter06/ncurses.xml
+++ b/chapter06/ncurses.xml
@@ -28,49 +28,10 @@ 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 --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>).
-Those 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>
+<screen><userinput>./configure --prefix=/usr --with-shared --without-debug</userinput></screen>
<para>Compile the package:</para>
@@ -88,48 +49,18 @@ not to be built. Nothing in LFS and BLFS uses this library.</para>
<para>Fix a library that should not be executable:</para>
-<screen><userinput>chmod -v 644 /usr/lib/libncurses++w.a</userinput></screen>
+<screen><userinput>chmod -v 644 /usr/lib/libncurses++.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/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)" &gt;/usr/lib/lib${lib}.so ; \
- ln -sfv lib${lib}w.a /usr/lib/lib${lib}.a ; \
-done &amp;&amp;
-ln -sfv libncurses++w.a /usr/lib/libncurses++.a</userinput></screen>
-
-<para>Finally, make sure that really old applications that look for
-<filename class="libaryfile">-lcurses</filename> at build time are still
-buildable:</para>
-
-<screen><userinput>echo "INPUT(-lncursesw)" &gt;/usr/lib/libcursesw.so &amp;&amp;
-ln -sfv libncurses.so /usr/lib/libcurses.so &amp;&amp;
-ln -sfv libncursesw.a /usr/lib/libcursesw.a &amp;&amp;
-ln -sfv libncurses.a /usr/lib/libcurses.a</userinput></screen>
-
-<note><para>The instructions above don't create non-wide-character Ncurses
-libraries since nothing in LFS and BLFS 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 &amp;&amp;
-./configure --prefix=/usr --with-shared --without-normal \
- --without-debug --without-cxx-binding &amp;&amp;
-make sources libs &amp;&amp;
-cp -av lib/lib*.so.5* /usr/lib</userinput></screen>
-</note>
+<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>
</sect2>
@@ -140,10 +71,8 @@ cp -av lib/lib*.so.5* /usr/lib</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>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>
+<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>
</segmentedlist>
<variablelist><bridgehead renderas="sect3">Short Descriptions</bridgehead>
@@ -283,3 +212,4 @@ menu displayed during the kernel's <command>make menuconfig</command></para>
</sect2>
</sect1>
+
diff --git a/chapter06/readline.xml b/chapter06/readline.xml
index 235f38e8c..5d4e08c29 100644
--- a/chapter06/readline.xml
+++ b/chapter06/readline.xml
@@ -43,9 +43,7 @@ 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>
-(really, <filename class="libraryfile">libncursesw</filename>)
-library.</para></listitem>
+<filename class="libraryfile">libncurses</filename> library.</para></listitem>
</varlistentry>
</variablelist>
diff --git a/chapter06/sysklogd.xml b/chapter06/sysklogd.xml
index c7b1176ff..fb422e1c8 100644
--- a/chapter06/sysklogd.xml
+++ b/chapter06/sysklogd.xml
@@ -33,12 +33,6 @@ 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. Such replacement caused damage to messages in 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 a82fdd9a8..a322e69ec 100644
--- a/chapter06/sysvinit.xml
+++ b/chapter06/sysvinit.xml
@@ -84,15 +84,26 @@ ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
su:S016:once:/sbin/sulogin
-1:2345:respawn:/sbin/agetty tty1 9600
-2:2345:respawn:/sbin/agetty tty2 9600
-3:2345:respawn:/sbin/agetty tty3 9600
-4:2345:respawn:/sbin/agetty tty4 9600
-5:2345:respawn:/sbin/agetty tty5 9600
-6:2345:respawn:/sbin/agetty tty6 9600
+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
# 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 0a1ff24c7..fc3138517 100644
--- a/chapter06/texinfo.xml
+++ b/chapter06/texinfo.xml
@@ -29,14 +29,6 @@ Diffutils, GCC, Gettext, Glibc, Grep, Make, Ncurses, and Sed</seg></seglistitem>
<sect2 role="installation">
<title>Installation of Texinfo</title>
-<para>The <command>info</command> program makes assumptions such as "a string
-occupies the same number of character cells on the screen and bytes in memory"
-and "one can break the string anywhere" that are incorrect in UTF-8 locales.
-While the patch below is not the proper solution, it at least hides the problem
-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>
diff --git a/chapter06/udev.xml b/chapter06/udev.xml
index 8b77b1b58..3d89e3187 100644
--- a/chapter06/udev.xml
+++ b/chapter06/udev.xml
@@ -78,7 +78,6 @@ 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 bd21f2f32..2083d4786 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 switch enables support for
+<listitem><para>This optional but highly recommended 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
@@ -75,18 +75,6 @@ redirecting the output to a log file.</para>
<screen><userinput>make install</userinput></screen>
-<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. -->
-
-<screen><userinput>rm -f /usr/share/vim/vim64/tutor/tutor.{gr,pl,ru,sk}
-rm -f /usr/share/vim/vim64/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>
when users habitually enter <command>vi</command>, create a
diff --git a/chapter07/bootscripts.xml b/chapter07/bootscripts.xml
index 6e884ac77..775215e7e 100644
--- a/chapter07/bootscripts.xml
+++ b/chapter07/bootscripts.xml
@@ -47,12 +47,6 @@
<screen><userinput>make install</userinput></screen>
- <para>The <command>console</command> script that comes with
- LFS-Bootscripts-&lfs-bootscripts-version; doesn't support Unicode. Install
- a replacement version:</para>
-
-<screen><userinput>install -m755 ../console /etc/rc.d/init.d</userinput></screen>
-
</sect2>
<sect2 id="contents-bootscripts" role="content">
diff --git a/chapter07/console.xml b/chapter07/console.xml
index b0b9417a3..315112366 100644
--- a/chapter07/console.xml
+++ b/chapter07/console.xml
@@ -17,207 +17,96 @@
<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>
+ 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"/>. 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. "es". 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 "euro2".</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, "-m", and the name of the application character map to load.
- E.g., in order to load the "lat1-16" font together with the "8859-1"
- application character map, set this variable to "lat1-16 -m 8859-1".
- 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 "1", "yes" or "true" 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 and composing will not work in UTF-8 mode without the
- special kernel patch.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>BROKEN_COMPOSE</term>
- <listitem>
- <para>Set this to "0" if you are going to apply that 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
- "-m" switch.</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 &gt; /etc/sysconfig/console &lt;&lt; "EOF"
-<literal># Begin /etc/sysconfig/console
-
-KEYMAP="pl2"
-FONT="lat2a-16 -m 8859-2"
-
-# End /etc/sysconfig/console</literal>
+ 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 &gt;/etc/sysconfig/console &lt;&lt;"EOF"
+<literal>KEYMAP="<replaceable>[arguments for loadkeys]</replaceable>"
+FONT="<replaceable>[arguments for setfont]</replaceable>"</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>
+ <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>
-<screen role="nodump"><userinput>cat &gt; /etc/sysconfig/console &lt;&lt; "EOF"
-<literal># Begin /etc/sysconfig/console
-
-KEYMAP="de-latin1"
-KEYMAP_CORRECTIONS="euro2"
-FONT="lat0-16 -m 8859-15"
-
-# End /etc/sysconfig/console</literal>
+<screen role="nodump"><userinput>cat &gt;/etc/sysconfig/console &lt;&lt;"EOF"
+<literal>KEYMAP="es euro2"
+FONT="lat9-16 -u iso01"</literal>
EOF</userinput></screen>
- </listitem>
-
- <listitem>
- <para>Here 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>cat &gt; /etc/sysconfig/console &lt;&lt; "EOF"
-<literal># Begin /etc/sysconfig/console
+ <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>
-UNICODE="1"
-KEYMAP="bg_bds-utf8"
-FONT="LatArCyrHeb-16"
+<screen role="nodump"><userinput>FONT="lat1-16"</userinput></screen>
+ </note>
-# End /etc/sysconfig/console</literal>
-EOF</userinput></screen>
- </listitem>
-
- <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. This would, however, also break single quotes in manual
- pages.</para>
-
- <!-- And even with the LatArCyrHeb-16 font, copying-and-pasting produces
- non-ASCII variants of opening and closing single quote instead of ` and '.
- Maybe another sed has to be added to groff instructions that will remove
- both issues. -->
-
-<screen role="nodump"><userinput>cat &gt; /etc/sysconfig/console &lt;&lt; "EOF"
-<literal># Begin /etc/sysconfig/console
-
-UNICODE="1"
-KEYMAP="bg_bds-utf8"
-FONT="cyr-sun16"
-
-# End /etc/sysconfig/console</literal>
+ <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>
+
+ <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>
+
+<screen role="nodump"><userinput>zgrep '\W14\W' <replaceable>[/path/to/your/keymap]</replaceable></userinput></screen>
+
+ <para>If the keycode 14 is Backspace instead of Delete, create the
+ following keymap snippet to fix this issue:</para>
+
+<screen role="nodump"><userinput>mkdir -pv /etc/kbd &amp;&amp; cat &gt; /etc/kbd/bs-sends-del &lt;&lt;"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>
EOF</userinput></screen>
- </listitem>
- <listitem>
- <para>The following example illustrates keymap autoconversion from
- ISO-8859-15 to UTF-8 and enabling dead keys in Unicode mode:</para>
+ <para>Tell the <command>console</command> script to load this
+ snippet after the main keymap:</para>
-<screen role="nodump"><userinput>cat &gt; /etc/sysconfig/console &lt;&lt; "EOF"
-<literal># Begin /etc/sysconfig/console
-
-UNICODE="1"
-KEYMAP="de-latin1"
-KEYMAP_CORRECTIONS="euro2"
-LEGACY_CHARSET="iso-8859-15"
-BROKEN_COMPOSE="0"
-FONT="LatArCyrHeb-16 -m 8859-15"
-
-# End /etc/sysconfig/console</literal>
+<screen role="nodump"><userinput>cat &gt;&gt;/etc/sysconfig/console &lt;&lt;"EOF"
+<literal>KEYMAP_CORRECTIONS="/etc/kbd/bs-sends-del"</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
- Linux text console localization. It has nothing to do with setting the proper
- keyboard layout and terminal fonts in X Window System.</para>
- </note>
+ <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>
</sect1>
diff --git a/chapter07/profile.xml b/chapter07/profile.xml
index ae7617ba7..dd53a5141 100644
--- a/chapter07/profile.xml
+++ b/chapter07/profile.xml
@@ -69,19 +69,17 @@
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>
+ 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>
<screen role="nodump"><userinput>locale -a</userinput></screen>
- <para>Charmaps can have a number of aliases, e.g. <quote>ISO-8859-1</quote>
+ <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 (e.g. require
- that "UTF-8" is written as "UTF-8", not "utf8"), so it is safest in most
- cases to choose the canonical name for a particular locale. To determine
+ 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>
@@ -117,7 +115,6 @@ LC_ALL=[locale name] locale int_prefix</userinput></screen>
Further instructions assume that there are no such error messages from
Glibc.</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>
@@ -142,43 +139,23 @@ LC_ALL=[locale name] locale int_prefix</userinput></screen>
<screen><userinput>cat &gt; /etc/profile &lt;&lt; "EOF"
<literal># Begin /etc/profile
-export LANG=<replaceable>[ll]</replaceable>_<replaceable>[CC]</replaceable>.<replaceable>[charmap]</replaceable><replaceable>[@modifiers]</replaceable>
+export LANG=<replaceable>[ll]</replaceable>_<replaceable>[CC]</replaceable>.<replaceable>[charmap]</replaceable>
export INPUTRC=/etc/inputrc
# End /etc/profile</literal>
EOF</userinput></screen>
- <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 set (the charset in the outgoing mail is indicatsed as "unknown
- 8-bit"). 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. It is also
- impossible (without damaging non-ASCII characters) to connect using ssh from
- the system using a UTF-8 based locale to a host that still uses a traditional
- 8-bit locale, and vice versa. In short, use UTF-8 only if you are going to
- use KDE or GNOME and never open the terminal, or if you are going to tolerate
- bugs.</para>
- <!-- All abovementioned problems except "watch" have a known fix beyond BLFS -->
-
<note>
- <para>Bug reports reproducible only in UTF-8 locales and for which there
- is no patch or other fix mentioned in the report, will be closed immediately,
- without investigation, with the "WONTFIX" resolution and a "don't use this
- program or revert to non-UTF-8 locale" comment. Patches that have ill
- effects in non-UTF-8 locales (other than replacement of translated program
- messages with English ones) will be rejected.</para>
+ <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>
+
</sect1>
diff --git a/chapter08/fstab.xml b/chapter08/fstab.xml
index 1487bbbea..439057b4f 100644
--- a/chapter08/fstab.xml
+++ b/chapter08/fstab.xml
@@ -65,43 +65,4 @@ EOF</userinput></screen>
<filename>usbcore</filename> must be listed in
<filename>/etc/sysconfig/modules</filename>.</para>
- <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 -&gt;
- 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/kernel.xml b/chapter08/kernel.xml
index 4b9f0bcfd..fcac33a39 100644
--- a/chapter08/kernel.xml
+++ b/chapter08/kernel.xml
@@ -48,13 +48,6 @@
in the kernel source tree for alternative methods to the way this book
configures the kernel.</para>
- <para>By default, 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 aciive. Fix these issues with the
- patch:</para>
-
-<screen><userinput>patch -Np1 -i ../&linux-utf8-patch;</userinput></screen>
-
<para>Prepare for compilation by running the following command:</para>
<screen><userinput>make mrproper</userinput></screen>
@@ -64,7 +57,14 @@
kernel compilation. Do not rely on the source tree being clean after
un-tarring.</para>
- <!-- Support for compiling a keymap into the kernel is deliberately removed -->
+ <para>If, in <xref linkend="ch-scripts-console" role=","/> it was decided to
+ compile the keymap into the kernel, issue the command below:</para>
+
+<screen role="nodump"><userinput>loadkeys -m /usr/share/kbd/keymaps/<replaceable>[path to keymap]</replaceable> &gt; \
+ drivers/char/defkeymap.c</userinput></screen>
+
+ <para>For example, if using a Dutch keyboard, use
+ <filename>/usr/share/kbd/keymaps/i386/qwerty/nl.map.gz</filename>.</para>
<para>Configure the kernel via a menu-driven interface. BLFS has some
information regarding particular kernel configuration requirements of
diff --git a/general.ent b/general.ent
index b9538002e..c7a92b259 100644
--- a/general.ent
+++ b/general.ent
@@ -22,7 +22,6 @@
<!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;
@@ -45,12 +44,10 @@
<!ENTITY flex-version "2.5.31">
<!ENTITY gawk-version "3.1.5">
<!ENTITY gcc-version "4.0.2">
-<!ENTITY gdbm-version "1.8.3">
<!ENTITY gettext-version "0.14.5">
<!ENTITY glibc-version "2.3.6">
<!ENTITY grep-version "2.5.1a">
-<!ENTITY groff-version "1.18.1.1">
-<!ENTITY groff-patchlevel "10">
+<!ENTITY groff-version "1.19.2">
<!ENTITY grub-version "0.97">
<!ENTITY gzip-version "1.3.5">
<!ENTITY hotplug-version "2004_09_23">
@@ -66,12 +63,11 @@
<!ENTITY linux-libc-headers-version "2.6.12.0">
<!ENTITY m4-version "1.4.4">
<!ENTITY make-version "3.80">
-<!ENTITY man-db-version "2.4.3">
+<!ENTITY man-version "1.6b">
<!ENTITY man-pages-version "2.17">
<!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">
diff --git a/patches.ent b/patches.ent
index 1f4fafa50..4d1331cd2 100644
--- a/patches.ent
+++ b/patches.ent
@@ -1,15 +1,12 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- Start of Common Patches -->
-<!ENTITY bzip2-bzgrep-patch "bzip2-&bzip2-version;-bzgrep_security-1.patch">
<!ENTITY bzip2-docs-patch "bzip2-&bzip2-version;-install_docs-1.patch">
+<!ENTITY bzip2-bzgrep-patch "bzip2-&bzip2-version;-bzgrep_security-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">
@@ -18,37 +15,24 @@
<!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-gcc4_fix-patch "tar-&tar-version;-gcc4_fix_tests-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 texinfo-multibyte-patch "texinfo-&texinfo-version;-multibyte-2.patch">
-<!ENTITY texinfo-tempfile_fix-patch "texinfo-&texinfo-version;-tempfile_fix-1.patch">
+<!ENTITY texinfo-tempfile_fix-patch "texinfo-&texinfo-version;-tempfile_fix-2.patch">
<!ENTITY util-linux-cramfs-patch "util-linux-&util-linux-version;-cramfs-1.patch">