Initial support of UTF-8. Thanks Alexander Patrakov.

git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@7245 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
This commit is contained in:
Jeremy Huntwork 2006-01-06 01:59:08 +00:00
parent 60e34b5281
commit fa21b3dc89
32 changed files with 1228 additions and 429 deletions

View File

@ -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>
@ -114,6 +124,10 @@ First a summary, then a detailed log.</para>
</itemizedlist>
</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>

View File

@ -67,6 +67,13 @@
</listitem>
</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>
@ -158,12 +165,25 @@ 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>
@ -224,7 +244,7 @@ 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>
@ -264,9 +284,9 @@ 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>
@ -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>

View File

@ -29,6 +29,13 @@ needed to build an LFS system:</para>
</listitem>
</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>
@ -43,6 +50,13 @@ needed to build an LFS system:</para>
</listitem>
</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>
@ -71,12 +85,26 @@ needed to build an LFS system:</para>
</listitem>
</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>
@ -98,6 +126,13 @@ needed to build an LFS system:</para>
</listitem>
</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>
@ -105,6 +140,13 @@ needed to build an LFS system:</para>
</listitem>
</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>
@ -112,6 +154,13 @@ needed to build an LFS system:</para>
</listitem>
</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>
@ -140,6 +189,14 @@ needed to build an LFS system:</para>
</listitem>
</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>

View File

@ -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 &gt;&gt;config.h &lt;&lt;"EOF"
<literal>#define HAVE_LANGINFO_CODESET 1
#define HAVE_LC_MESSAGES 1</literal>
EOF</userinput></screen>
<para>Compile the package:</para>

View File

@ -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>

View File

@ -34,6 +34,7 @@
<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="db.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"/>
@ -55,7 +56,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.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="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"/>

View File

@ -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>

218
chapter06/db.xml Normal file
View File

@ -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 &amp;&amp;
../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* &amp;&amp;
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>

View File

@ -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>

View File

@ -28,8 +28,8 @@ Diffutils, GCC, Gettext, Glibc, Grep, Make, 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 &gt;&gt;config.h &lt;&lt;"EOF"
<literal>#define HAVE_LANGINFO_CODESET 1
#define HAVE_LC_MESSAGES 1</literal>
EOF</userinput></screen>
<para>Compile the package:</para>

View File

@ -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 meaning of the make option:</para>
<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>The locales that can make the system respond in a different
language were not installed by the above command. Install this
with:</para>
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>
<screen><userinput>make localedata/install-locales</userinput></screen>
<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
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>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 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>
<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>

View File

@ -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>

View File

@ -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>

View File

@ -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 &amp;&amp;
@ -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>

View File

@ -28,6 +28,15 @@ 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 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>

265
chapter06/man-db.xml Normal file
View File

@ -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,} &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 <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 &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 <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 &amp;&amp;
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 &amp;&amp;
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 &amp;&amp;
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>

View File

@ -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, 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>

View File

@ -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>
<screen><userinput>mv -v /usr/lib/libncursesw.so.5* /lib</userinput></screen>
<para>Because the libraries have been moved, a few symlinks point to
non-existent files. Recreate those symlinks:</para>
<para>Because the libraries have been moved, one symlink points to
a non-existent file. Recreate it:</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>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 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 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 &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>
</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>

View File

@ -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, Make, and Sed</seg></seglistitem>
</segmentedlist>
</sect2>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -29,6 +29,14 @@ 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 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

View File

@ -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>

View File

@ -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
@ -75,6 +75,18 @@ 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/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>
when users habitually enter <command>vi</command>, create a

View File

@ -17,96 +17,209 @@
<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>
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
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>
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>
<screen><userinput>cat &gt;/etc/sysconfig/console &lt;&lt;"EOF"
<literal>KEYMAP="<replaceable>[arguments for loadkeys]</replaceable>"
FONT="<replaceable>[arguments for setfont]</replaceable>"</literal>
<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 &AElig; 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 &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>
EOF</userinput></screen>
</listitem>
<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>
<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 &gt;/etc/sysconfig/console &lt;&lt;"EOF"
<literal>KEYMAP="es euro2"
FONT="lat9-16 -u iso01"</literal>
<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>
EOF</userinput></screen>
</listitem>
<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>cat &gt; /etc/sysconfig/console &lt;&lt; "EOF"
<literal># Begin /etc/sysconfig/console
UNICODE="1"
KEYMAP="bg_bds-utf8"
FONT="LatArCyrHeb-16"
# 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.</para>
<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>
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>
<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>
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 <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>
<screen role="nodump"><userinput>FONT="lat1-16"</userinput></screen>
<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>
<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>
<para>Tell the <command>console</command> script to load this
snippet after the main keymap:</para>
<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>
<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>

View File

@ -69,17 +69,20 @@
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>
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>
<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, so it is
safest to choose the canonical name for a particular locale. To determine
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>
@ -115,6 +118,7 @@ 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>
@ -139,23 +143,33 @@ 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>
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>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>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>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>

View File

@ -65,4 +65,43 @@ 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>

View File

@ -48,6 +48,13 @@
in the kernel source tree for alternative methods to the way this book
configures the kernel.</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>
<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>
@ -57,14 +64,7 @@
kernel compilation. Do not rely on the source tree being clean after
un-tarring.</para>
<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>
<!-- 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

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!ENTITY version "SVN-20060103">
<!ENTITY releasedate "January 3, 2006">
<!ENTITY version "SVN-20060105">
<!ENTITY releasedate "January 5, 2006">
<!ENTITY milestone "6.2">
<!ENTITY generic-version "development"> <!-- Use "development", "testing", or "x.y[-pre{x}]" -->
@ -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,18 +59,19 @@
<!ENTITY iproute2-version "051007">
<!ENTITY kbd-version "1.12">
<!ENTITY less-version "394">
<!ENTITY lfs-bootscripts-version "3.2.1">
<!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-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">

View File

@ -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">