Changeset fa21b3d


Ignore:
Timestamp:
01/06/2006 01:59:08 AM (18 years ago)
Author:
Jeremy Huntwork <jhuntwork@…>
Branches:
10.0, 10.0-rc1, 10.1, 10.1-rc1, 11.0, 11.0-rc1, 11.0-rc2, 11.0-rc3, 11.1, 11.1-rc1, 11.2, 11.2-rc1, 11.3, 11.3-rc1, 12.0, 12.0-rc1, 12.1, 12.1-rc1, 6.3, 6.4, 6.5, 6.6, 6.7, 6.8, 7.0, 7.1, 7.2, 7.3, 7.4, 7.5, 7.5-systemd, 7.6, 7.6-systemd, 7.7, 7.7-systemd, 7.8, 7.8-systemd, 7.9, 7.9-systemd, 8.0, 8.1, 8.2, 8.3, 8.4, 9.0, 9.1, arm, bdubbs/gcc13, ml-11.0, multilib, renodr/libudev-from-systemd, s6-init, trunk, xry111/arm64, xry111/arm64-12.0, xry111/clfs-ng, xry111/lfs-next, xry111/loongarch, xry111/loongarch-12.0, xry111/loongarch-12.1, xry111/mips64el, xry111/pip3, xry111/rust-wip-20221008, xry111/update-glibc
Children:
abf1f62
Parents:
60e34b5
Message:

Initial support of UTF-8. Thanks Alexander Patrakov.

git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@7245 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689

Files:
2 added
30 edited

Legend:

Unmodified
Added
Removed
  • chapter01/changelog.xml

    r60e34b5 rfa21b3d  
    3333<!-- <listitem><para>Bzip2 &bzip2-version;</para></listitem> -->
    3434<listitem><para>Coreutils &coreutils-version;</para></listitem>
     35<!-- <listitem><para>DB &db-version;</para></listitem> -->
    3536<!-- <listitem><para>DejaGNU &dejagnu-version;</para></listitem> -->
    3637<!-- <listitem><para>Diffutils &diffutils-version;</para></listitem> -->
     
    4546<listitem><para>Glibc &glibc-version;</para></listitem>
    4647<!-- <listitem><para>Grep &grep-version;</para></listitem> -->
    47 <listitem><para>Groff &groff-version;</para></listitem>
     48<!-- <listitem><para>Groff &groff-version;</para></listitem> -->
    4849<listitem><para>GRUB &grub-version;</para></listitem>
    4950<!-- <listitem><para>Gzip &gzip-version;</para></listitem> -->
     
    6061<listitem><para>M4 &m4-version;</para></listitem>
    6162<!-- <listitem><para>Make &make-version;</para></listitem> -->
    62 <listitem><para>Man &man-version;</para></listitem>
     63<!-- <listitem><para>Man-DB &man-db-version;</para></listitem> -->
    6364<listitem><para>Man-pages &man-pages-version;</para></listitem>
    6465<!-- <listitem><para>Mktemp &mktemp-version;</para></listitem> -->
     
    8485</listitem>
    8586
     87<listitem><para>Downgraded to:</para>
     88<itemizedlist>
     89<listitem><para>Groff &groff-version;-&groff-patchlevel;</para></listitem>
     90</itemizedlist>
     91</listitem>
     92
    8693<listitem><para>Added:</para>
    8794<itemizedlist>
     
    9097<listitem><para>&gawk-segfault-patch;</para></listitem>
    9198<listitem><para>&gcc-specs-patch;</para></listitem>
     99<listitem><para>DB-&db-version;</para></listitem>
    92100<listitem><para>&inetutils-gcc4_fixes-patch;</para></listitem>
    93101<listitem><para>&kbd-gcc4_fixes-patch;</para></listitem>
     102<listitem><para>MAN-DB-&man-db-version;</para></listitem>
    94103<listitem><para>&mktemp-tempfile-patch;</para></listitem>
    95104<listitem><para>&perl-libc-patch;</para></listitem>
     
    108117<listitem><para>inetutils-1.4.2-kernel_headers-1.patch</para></listitem>
    109118<listitem><para>iproute2-2.6.11-050330-remove_db-1.patch</para></listitem>
     119<listitem><para>Man-1.6b</para></listitem>
    110120<listitem><para>mktemp-1.5-add_tempfile-2.patch</para></listitem>
    111121<listitem><para>perl-5.8.6-libc-1.patch</para></listitem>
     
    115125</listitem>
    116126
     127<listitem><para>January 5, 2006 [jhuntwork]: Initial addition of UTF-8
     128support. Thanks to Alexander Patrakov.</para>
     129</listitem>
     130
    117131<listitem><para>January 3, 2006 [matt]: Clarify the description of mktemp's
    118132--with-libc configure parameter (fixes bug 1667).</para></listitem>
  • chapter03/packages.xml

    r60e34b5 rfa21b3d  
    6969
    7070<varlistentry>
     71<term>DB (&db-version;) - 7,925 KB:</term>
     72<listitem>
     73<para><ulink url="http://dev.sleepycat.com/"/></para>
     74</listitem>
     75</varlistentry>
     76
     77<varlistentry>
    7178<term>DejaGNU (&dejagnu-version;) - 852 KB:</term>
    7279<listitem>
     
    159166
    160167<varlistentry>
    161 <term>Groff (&groff-version;) - 2,096 KB:</term>
     168<term>Groff (&groff-version;) - 2,260 KB:</term>
    162169<listitem>
    163170<para><ulink url="&gnu;groff/"/></para>
     171</listitem>
     172</varlistentry>
     173
     174<varlistentry>
     175<term>Groff Debian Patch - 129 KB:</term>
     176<listitem>
     177<para><ulink url="http://ftp.debian.org/debian/pool/main/g/groff/&groff-debian-patch;"/></para>
     178<note><para>Groff Debian Patch (&groff-version;-&groff-patchlevel;)
     179may no longer be available at the
     180listed location. The site administrators of the master download
     181location occasionally remove older versions when new ones are
     182released. There is no alternative download location yet.</para></note>
     183<!-- Actually there's snapshot.debian.net, but they have hardware problems -->
    164184</listitem>
    165185</varlistentry>
     
    225245<term>LFS-Bootscripts (&lfs-bootscripts-version;) - 32 KB:</term>
    226246<listitem>
    227 <para><ulink url="http://downloads.linuxfromscratch.org/"/></para>
     247<para><ulink url="http://www.linuxfromscratch.org/~dj/bootscripts/"/></para>
    228248</listitem>
    229249</varlistentry>
     
    265285
    266286<varlistentry>
    267 <term>Man (&man-version;) - 205 KB:</term>
    268 <listitem>
    269 <para><ulink url="http://primates.ximian.com/~flucifredi/man/"/></para>
     287<term>Man-DB (&man-db-version;) - 816 KB:</term>
     288<listitem>
     289<para><ulink url="http://savannah.nongnu.org/download/man-db/"/></para>
    270290</listitem>
    271291</varlistentry>
     
    298318</listitem>
    299319</varlistentry>
     320
     321<!--
     322<varlistentry>
     323<term>Ncurses Rollup Patch (&ncurses-date;) - 328 KB:</term>
     324<listitem>
     325<para><ulink url="ftp://invisible-island.net/ncurses/&ncurses-version;/"/></para>
     326<note><para>Ncurses Rollup Patch (&ncurses-date;) may no longer be available at the
     327listed location. The site administrators of the master download
     328location occasionally remove older versions when new ones are
     329released. There is no alternative download location yet.</para></note>
     330</listitem>
     331</varlistentry>
     332-->
    300333
    301334<varlistentry>
  • chapter03/patches.xml

    r60e34b5 rfa21b3d  
    3131
    3232<varlistentry>
     33<term>Coreutils Internationalization Fixes Patch - 110 KB:</term>
     34<listitem>
     35<para><ulink url="&alexpatches;&coreutils-i18n-patch;"/></para>
     36</listitem>
     37</varlistentry>
     38
     39<varlistentry>
    3340<term>Coreutils Suppress Uptime, Kill, Su Patch - 15 KB:</term>
    3441<listitem>
     
    4552
    4653<varlistentry>
     54<term>Diffutils Internationalization Fixes Patch - 18 KB:</term>
     55<listitem>
     56<para><ulink url="&alexpatches;&diffutils-i18n-patch;"/></para>
     57</listitem>
     58</varlistentry>
     59
     60<varlistentry>
    4761<term>Expect Spawn Patch - 7 KB:</term>
    4862<listitem>
     
    6983<listitem>
    7084<para><ulink url="&patches-root;&gcc-specs-patch;"/></para>
     85</listitem>
     86</varlistentry>
     87
     88<varlistentry>
     89<term>Grep RedHat Fixes Patch - 56 KB:</term>
     90<listitem>
     91<para><ulink url="&alexpatches;&grep-fixes-patch;"/></para>
    7192</listitem>
    7293</varlistentry>
     
    79100
    80101<varlistentry>
     102<term>Kbd Backspace/Delete Fix Patch - 1 KB:</term>
     103<listitem>
     104<para><ulink url="&alexpatches;&kbd-backspace-patch;"/></para>
     105</listitem>
     106</varlistentry>
     107
     108<varlistentry>
    81109<term>Kbd GCC-4.x Fix Patch - 1 KB:</term>
    82110<listitem>
     
    100128
    101129<varlistentry>
     130<term>Linux kernel UTF-8 Composing Patch - 3 KB:</term>
     131<listitem>
     132<para><ulink url="&alexpatches;&linux-utf8-patch;"/></para>
     133</listitem>
     134</varlistentry>
     135
     136<varlistentry>
    102137<term>Mktemp Tempfile Patch - 4 KB:</term>
    103138<listitem>
     
    107142
    108143<varlistentry>
     144<term>Ncurses Fixes Patch - 9 KB:</term>
     145<listitem>
     146<para><ulink url="&alexpatches;&ncurses-fixes-patch;"/></para>
     147</listitem>
     148</varlistentry>
     149
     150<varlistentry>
    109151<term>Perl Libc Patch - 1 KB:</term>
    110152<listitem>
     
    114156
    115157<varlistentry>
     158<term>Sysklogd 8-Bit Cleanness Patch - 1 KB:</term>
     159<listitem>
     160<para><ulink url="&lfs-root;patches/downloads/sysklogd/&sysklogd-8bit-patch;"/></para>
     161</listitem>
     162</varlistentry>
     163
     164<varlistentry>
    116165<term>Shadow Configure Script Patch - 1KB:</term>
    117166<listitem>
     
    140189</listitem>
    141190</varlistentry>
     191
     192<varlistentry>
     193<term>Texinfo Multibyte Fixes Patch - 1 KB:</term>
     194<listitem>
     195<para><ulink url="&alexpatches;&texinfo-multibyte-patch;"/></para>
     196</listitem>
     197</varlistentry>
     198
    142199
    143200<varlistentry>
  • chapter05/gawk.xml

    r60e34b5 rfa21b3d  
    3232<screen><userinput>./configure --prefix=/tools</userinput></screen>
    3333
    34 <para>The configure script doesn't detect some functionality correctly.  The
    35 following commands correct this problem:</para>
    36 
    37 <screen><userinput>echo "#define HAVE_LANGINFO_CODESET 1" >> config.h
    38 echo "#define HAVE_LC_MESSAGES 1" >> config.h</userinput></screen>
     34<para>Due to a bug in the <command>configure</command> script, Gawk fails
     35to detect certain aspects of locale support in Glibc. This
     36bug leads to, e.g., Gettext testsuite failures. Work around this issue
     37by appending the missing macro definitions to <filename>config.h</filename>:</para>
     38<screen><userinput>cat &gt;&gt;config.h &lt;&lt;"EOF"
     39<literal>#define HAVE_LANGINFO_CODESET 1
     40#define HAVE_LC_MESSAGES 1</literal>
     41EOF</userinput></screen>
    3942
    4043<para>Compile the package:</para>
  • chapter05/glibc.xml

    r60e34b5 rfa21b3d  
    8989<term><parameter>--without-selinux</parameter></term>
    9090<listitem><para>When building from hosts that include SELinux functionality
    91 (e.g. Fedora Core 3), Glibc will build with support for SELinux. As the LFS
     91(e.g., Fedora Core 3), Glibc will build with support for SELinux. As the LFS
    9292tools environment does not contain support for SELinux, a Glibc compiled with
    9393such support will fail to operate correctly.</para></listitem>
     
    159159per the recommendation), there is no need to install the locales now.
    160160The appropriate locales will be installed in the next
    161 chapter.</para></note>
    162 
    163 <para>To install the Glibc locales anyway, use the following
    164 command:</para>
    165 
    166 <screen role="nodump"><userinput>make localedata/install-locales</userinput></screen>
    167 
    168 <para>To save time, an alternative to running the
    169 previous command (which generates and installs every locale Glibc is
    170 aware of) is to install only those locales that are wanted and needed.
    171 This can be achieved by using the <command>localedef</command>
    172 command. Information on this command is located in the
    173 <filename>INSTALL</filename> file in the Glibc source.  However, there
    174 are a number of locales that are essential in order for the tests of
    175 future packages to pass, in particular, the
    176 <emphasis>libstdc++</emphasis> tests from GCC. The following
    177 instructions, instead of the <parameter>install-locales</parameter>
    178 target used above, will install the minimum set of locales necessary
    179 for the tests to run successfully:</para>
    180 
    181 <screen><userinput>mkdir -pv /tools/lib/locale
    182 localedef -i de_DE -f ISO-8859-1 de_DE
    183 localedef -i de_DE@euro -f ISO-8859-15 de_DE@euro
    184 localedef -i en_HK -f ISO-8859-1 en_HK
    185 localedef -i en_PH -f ISO-8859-1 en_PH
    186 localedef -i en_US -f ISO-8859-1 en_US
    187 localedef -i es_MX -f ISO-8859-1 es_MX
    188 localedef -i fa_IR -f UTF-8 fa_IR
    189 localedef -i fr_FR -f ISO-8859-1 fr_FR
    190 localedef -i fr_FR@euro -f ISO-8859-15 fr_FR@euro
    191 localedef -i it_IT -f ISO-8859-1 it_IT
    192 localedef -i ja_JP -f EUC-JP ja_JP</userinput></screen>
     161chapter. To install the Glibc locales anyway, use instructions from
     162<xref linkend="ch-system-glibc" role="."/>
     163</para></note>
    193164
    194165</sect2>
  • chapter06/chapter06.xml

    r60e34b5 rfa21b3d  
    3535<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="bison.xml"/>
    3636<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="less.xml"/>
     37<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="db.xml"/>
    3738<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="groff.xml"/>
    3839<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="sed.xml"/>
     
    5657<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="gzip.xml"/>
    5758<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="hotplug.xml"/>
    58 <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="man.xml"/>
     59<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="man-db.xml"/>
    5960<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="make.xml"/>
    6061<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="module-init-tools.xml"/>
  • chapter06/coreutils.xml

    r60e34b5 rfa21b3d  
    4141
    4242<screen><userinput>patch -Np1 -i ../&coreutils-suppress-patch;</userinput></screen>
     43
     44<para>POSIX requires that programs from Coreutils recognize character
     45boundaries correctly even in multibyte locales. The following patch
     46fixes this non-compliance and other internationalization-related bugs:</para>
     47
     48<screen><userinput>patch -Np1 -i ../&coreutils-i18n-patch;</userinput></screen>
     49
     50<para>In order for the tests added by this patch to pass, the permissions for
     51the test file have to be changed:</para>
     52
     53<screen><userinput>chmod +x tests/sort/sort-mb-tests</userinput></screen>
     54
     55<note><para>In the past, many bugs were found in this patch. When reporting
     56new bugs to Coreutils maintainers, please check first if they are reproducible
     57without this patch.</para></note>
     58
     59<para>It has been found that translated messages sometimes overflow a buffer
     60in the <command>who -Hu</command> command. Increase the buffer size:</para>
     61
     62<screen><userinput>sed -i 's/_LEN 6/_LEN 20/' src/who.c</userinput></screen>
    4363
    4464<para>Now prepare Coreutils for compilation:</para>
  • chapter06/diffutils.xml

    r60e34b5 rfa21b3d  
    2929<sect2 role="installation">
    3030<title>Installation of Diffutils</title>
     31
     32<para>POSIX requires the <command>diff</command> command to treat whitespace
     33characters according to the current locale. The following patch fixes the
     34non-compliance issue:</para>
     35
     36<screen><userinput>patch -Np1 -i ../&diffutils-i18n-patch;</userinput></screen>
    3137
    3238<para>Prepare Diffutils for compilation:</para>
  • chapter06/gawk.xml

    r60e34b5 rfa21b3d  
    2929<title>Installation of Gawk</title>
    3030
    31 <para>Patch Gawk to fix a bug which causes it to segfault when invoked on a
    32 non-existent file:</para>
     31<para>Under some circumstances, Gawk-&gawk-version;  attempts to free a chunk
     32of memory that was not allocated. This bug is fixed by the following patch:</para>
    3333
    3434<screen><userinput>patch -Np1 -i ../&gawk-segfault-patch;</userinput></screen>
     
    3838<screen><userinput>./configure --prefix=/usr --libexecdir=/usr/lib</userinput></screen>
    3939
    40 <para>The configure script doesn't detect some functionality correctly.  The
    41 following commands correct this problem:</para>
     40<para>Due to a bug in the <command>configure</command> script, Gawk fails
     41to detect certain aspects of locale support in Glibc. This
     42bug leads to, e.g., Gettext testsuite failures. Work around this issue
     43by appending the missing macro definitions to <filename>config.h</filename>:</para>
    4244
    43 <screen><userinput>echo "#define HAVE_LANGINFO_CODESET 1" >> config.h
    44 echo "#define HAVE_LC_MESSAGES 1" >> config.h</userinput></screen>
     45<screen><userinput>cat &gt;&gt;config.h &lt;&lt;"EOF"
     46<literal>#define HAVE_LANGINFO_CODESET 1
     47#define HAVE_LC_MESSAGES 1</literal>
     48EOF</userinput></screen>
    4549
    4650<para>Compile the package:</para>
  • chapter06/glibc.xml

    r60e34b5 rfa21b3d  
    4848of achieving a clean build.</para>
    4949
     50<para>The glibc-libidn tarball adds support for internationalized
     51domain names (IDN) to Glibc. Many programs that
     52support IDN require the full libidn library (see
     53<ulink url="&blfs-root;view/svn/general/libidn.html"/>),
     54not this add-on.
     55Unpack the tarball from within the Glibc source
     56directory:</para>
     57
     58<screen><userinput>tar jxf ../glibc-libidn-&glibc-version;.tar.bz2</userinput></screen>
     59
     60<para>In the vi_VN.TCVN locale, <command>bash</command> enters an infinite loop
     61at startup. It is unknown whether this is a <command>bash</command> bug or a
     62Glibc problem. Disable installation of this locale in order to avoid the
     63problem:</para>
     64
     65<screen><userinput>sed -i '/vi_VN.TCVN/d' localedata/SUPPORTED</userinput></screen>
     66
    5067<para>The Glibc documentation recommends building Glibc outside of the source
    5168directory in a dedicated build directory:</para>
     
    122139<para>Install the package:</para>
    123140
    124 <screen><userinput>make install</userinput></screen>
     141<screen><userinput>make install_root=/ install</userinput></screen>
     142
     143<para>The meaning of the make option:</para>
     144
     145<variablelist>
     146<varlistentry>
     147<term><parameter>install_root=/</parameter></term>
     148<listitem><para>This causes the Glibc Makefile not to run the
     149<filename>scripts/test-installation.pl</filename> script at the end
     150of Glibc installation. Since the toolchain has not been adjusted yet for
     151the new Glibc, this script would test Glibc installed in
     152<filename class="directory">/tools</filename> and fail because the
     153libidn add-on has not been installed there.</para></listitem>
     154</varlistentry>
     155</variablelist>
    125156
    126157<para>The locales that can make the system respond in a different
    127 language were not installed by the above command. Install this
    128 with:</para>
    129 
    130 <screen><userinput>make localedata/install-locales</userinput></screen>
    131 
    132 <para>To save time, an alternative to running the
    133 previous command (which generates and installs every locale listed in the
    134 glibc-&glibc-version;/localedata/SUPPORTED file) is to install only those
    135 locales that are wanted and needed.  This can be achieved by using the
    136 <command>localedef</command> command. Information on this command is located in
    137 the <filename>INSTALL</filename> file in the Glibc source.  However, there
    138 are a number of locales that are essential in order for the tests of
    139 future packages to pass, in particular, the
    140 <emphasis>libstdc++</emphasis> tests from GCC. The following
    141 instructions, instead of the <parameter>install-locales</parameter>
    142 target used above, will install the minimum set of locales necessary
    143 for the tests to run successfully:</para>
     158language were not installed by the above command. None of the
     159locales are required, but, if some of them are misssing, testuites of the
     160future packages would skip important testcases.</para>
     161
     162<para>Individual locales can be installed using the <command>localedef</command>
     163program. E.g., the first <command>localedef</command> command below combines
     164the <filename>/usr/share/i18n/locales/de_DE</filename> charset-independent
     165locale definition with the
     166<filename>/usr/share/i18n/charmaps/ISO-8859-1.gz</filename> charmap definition
     167and appends the result to the
     168<filename>/usr/lib/locale/locale-archive</filename> file. The following
     169instructions will install the minimum set of locales necessary
     170for the optimal coverage of tests:</para>
    144171
    145172<screen role="nodump"><userinput>mkdir -pv /usr/lib/locale
     
    153180localedef -i fr_FR -f ISO-8859-1 fr_FR
    154181localedef -i fr_FR@euro -f ISO-8859-15 fr_FR@euro
     182localedef -i fr_FR.UTF-8 -f UTF-8 fr_FR
    155183localedef -i it_IT -f ISO-8859-1 it_IT
    156184localedef -i ja_JP -f EUC-JP ja_JP</userinput></screen>
    157185
    158 <para>Some locales installed by the <command>make
    159 localedata/install-locales</command> command above are not properly
    160 supported by some applications that are in the LFS and BLFS books.
    161 Because of the various problems that arise due to application
    162 programmers making assumptions that break in such locales, LFS should
    163 not be used in locales that utilize multibyte character sets
    164 (including UTF-8) or right-to-left writing order.  Numerous unofficial
    165 and unstable patches are required to fix these problems, and it has
    166 been decided by the LFS developers not to support such complex locales at this
    167 time.  This applies to the ja_JP and fa_IR locales as well&mdash;they have been
    168 installed only for GCC and Gettext tests to pass, and the
    169 <command>watch</command> program (part of the Procps package) does not work
    170 properly in them. Various attempts to circumvent these restrictions are
    171 documented in internationalization-related hints.</para>
     186<para>In addition, install the locale for your own country, language and
     187character set.</para>
     188
     189<para>Alternatively, install all locales
     190listed in the <filename>glibc-&glibc-version;/localedata/SUPPORTED</filename>
     191file (it includes every locale listed above and many more)
     192at once with the following time-consuming command:</para>
     193
     194<screen><userinput>make localedata/install-locales</userinput></screen>
     195
     196<para>Then use the <command>localedef</command> command to create and
     197install locales not listed in the
     198<filename>glibc-&glibc-version;/localedata/SUPPORTED</filename> file
     199in the unlikely case if you need them.</para>
     200<!-- The Live CD patches the localedata/SUPPORTED file instead of
     201running localedef, the results are equivalent -->
    172202
    173203</sect2>
     
    278308rpcinfo, sln, sprof, tzselect, xtrace, zdump, and zic</seg>
    279309<seg>ld.so, libBrokenLocale.[a,so],
    280 libSegFault.so, libanl.[a,so], libbsd-compat.a, libc.[a,so],
     310libSegFault.so, libanl.[a,so], libbsd-compat.a, libc.[a,so], libcidn.so,
    281311libcrypt.[a,so], libdl.[a,so], libg.a, libieee.a, libm.[a,so], libmcheck.a,
    282312libmemusage.so, libnsl.a, libnss_compat.so, libnss_dns.so, libnss_files.so,
     
    367397<term><command>locale</command></term>
    368398<listitem>
    369 <para>Tells the compiler to enable or disable the use of POSIX locales
    370 for built-in operations</para>
     399<para>Prints various information about the current locale</para>
    371400<indexterm zone="ch-system-glibc locale"><primary sortas="b-locale">locale</primary></indexterm>
    372401</listitem>
     
    500529<term><filename class="libraryfile">libBrokenLocale</filename></term>
    501530<listitem>
    502 <para>Used by programs, such as Mozilla, to solve broken locales</para>
     531<para>Used internally by Glibc as a gross hack to get broken programs
     532(e.g., some Motif applications) running. See comments in
     533<filename>glibc-&glibc-version;/locale/broken_cur_max.c</filename> for more
     534information</para>
    503535<indexterm zone="ch-system-glibc libBrokenLocale"><primary sortas="c-libBrokenLocale">libBrokenLocale</primary></indexterm>
    504536</listitem>
     
    508540<term><filename class="libraryfile">libSegFault</filename></term>
    509541<listitem>
    510 <para>The segmentation fault signal handler</para>
     542<para>The segmentation fault signal handler, used by
     543<command>catchsegv</command></para>
    511544<indexterm zone="ch-system-glibc libSegFault"><primary sortas="c-libSegFault">libSegFault</primary></indexterm>
    512545</listitem>
     
    538571</varlistentry>
    539572
     573<varlistentry id="libcidn">
     574<term><filename class="libraryfile">libcidn</filename></term>
     575<listitem>
     576<para>Used internally by Glibc for handling internationalized domain names in
     577the <function>getaddrinfo()</function> function</para>
     578<indexterm zone="ch-system-glibc libcrypt"><primary sortas="c-libcrypt">libcrypt</primary></indexterm>
     579</listitem>
     580</varlistentry>
     581
    540582<varlistentry id="libcrypt">
    541583<term><filename class="libraryfile">libcrypt</filename></term>
     
    557599<term><filename class="libraryfile">libg</filename></term>
    558600<listitem>
    559 <para>A runtime library for <command>g++</command></para>
     601<para>Dummy library containing no functions. Previously was a runtime library
     602for <command>g++</command></para>
    560603<indexterm zone="ch-system-glibc libg"><primary sortas="c-libg">libg</primary></indexterm>
    561604</listitem>
     
    565608<term><filename class="libraryfile">libieee</filename></term>
    566609<listitem>
    567 <para>The Institute of Electrical and Electronic Engineers (IEEE) floating point library</para>
     610<para>Linking in this module forces error handling rules for math functions as
     611defined by the Institute of Electrical and Electronic Engineers (IEEE).
     612The default is POSIX.1 error handling</para>
    568613<indexterm zone="ch-system-glibc libieee"><primary sortas="c-libieee">libieee</primary></indexterm>
    569614</listitem>
     
    581626<term><filename class="libraryfile">libmcheck</filename></term>
    582627<listitem>
    583 <para>Contains code run at boot</para>
     628<para>Turns on memory allocation checking when linked to</para>
    584629<indexterm zone="ch-system-glibc libmcheck"><primary sortas="c-libmcheck">libmcheck</primary></indexterm>
    585630</listitem>
  • chapter06/grep.xml

    r60e34b5 rfa21b3d  
    2828<sect2 role="installation">
    2929<title>Installation of Grep</title>
     30
     31<para>The current Grep package has many bugs, especially in the support of
     32multibyte locales. RedHat fixed some of them with the following patch:</para>
     33
     34<screen><userinput>patch -Np1 -i ../&grep-fixes-patch;</userinput></screen>
     35
     36<para>In order for the tests added by this patch to pass, the permissions for
     37the test file have to be changed:</para>
     38
     39<screen><userinput>chmod +x tests/fmbtest.sh</userinput></screen>
    3040
    3141<para>Prepare Grep for compilation:</para>
  • chapter06/groff.xml

    r60e34b5 rfa21b3d  
    2929<title>Installation of Groff</title>
    3030
     31<para>Apply the patch that adds the <quote>ascii8</quote> and
     32<quote>nippon</quote> devices to Groff:</para>
     33
     34<screen><userinput>zcat ../&groff-debian-patch; | patch -Np1</userinput></screen>
     35
     36<note><para>These devices are used by Man-DB when formatting non-English manual
     37pages that are not in the ISO-8859-1 encoding. Currently, there is no working
     38patch for Groff-1.19.x that adds this functionality.
     39<!-- Details: http://bugs.debian.org/196762 -->
     40</para></note>
     41
     42<para>Many screen fonts don't have Unicode single quotes and dashes in them.
     43Tell Groff to use the ASCII equivalents instead:</para>
     44
     45<screen><userinput>sed -i -e 's/2010/002D/' -e 's/2212/002D/' \
     46    -e 's/2018/0060/' -e 's/2019/0027/' font/devutf8/R.proto
     47</userinput></screen>
     48
    3149<para>Groff expects the environment variable <envar>PAGE</envar>
    3250to contain the default paper size. For users in the United States,
    3351<parameter>PAGE=letter</parameter> is appropriate. Elsewhere,
    34 <parameter>PAGE=A4</parameter> may be more suitable.</para>
     52<parameter>PAGE=A4</parameter> may be more suitable.
     53While the default paper size is configured during compilation, it can be
     54overridden later by echoing either <quote>A4</quote> or <quote>letter</quote>
     55to the <filename>/etc/papersize</filename> file.</para>
    3556
    3657<para>Prepare Groff for compilation:</para>
    3758
    38 <screen><userinput>PAGE=<replaceable>[paper_size]</replaceable> ./configure --prefix=/usr</userinput></screen>
     59<screen><userinput>PAGE=<replaceable>[paper_size]</replaceable> ./configure --prefix=/usr --enable-multibyte</userinput></screen>
    3960
    4061<para>Compile the package:</para>
  • chapter06/iproute2.xml

    r60e34b5 rfa21b3d  
    2626      <segtitle>&dependencies;</segtitle>
    2727      <seglistitem>
    28         <seg>GCC, Glibc, Make, Linux-Headers, and Sed</seg>
     28        <seg>DB, GCC, Glibc, Make, and Linux-Headers</seg>
    2929      </seglistitem>
    3030    </segmentedlist>
     
    3232  <sect2 role="installation">
    3333    <title>Installation of IPRoute2</title>
    34     <para>The <command>arpd</command> binary included in this package is
    35           dependent on Berkeley DB.  Because <command>arpd</command> is not a very
    36           common requirement on a base Linux system, remove the dependency on
    37           Berkeley DB by applying the <command>sed</command> command below.  If
    38           the <command>arpd</command> binary is needed, instructions for
    39           compiling Berkeley DB can be found in the BLFS Book at <ulink
    40           url="&blfs-root;view/svn/server/databases.html#db"/>.
    41     </para>
    42 
    43     <screen><userinput>sed -i '/^TARGETS/s@arpd@@g' misc/Makefile</userinput></screen>
    4434
    4535    <para>Prepare IPRoute2 for compilation:</para>
     
    6959
    7060    <screen><userinput>make SBINDIR=/sbin install</userinput></screen>
     61   
     62    <para>The <command>arpd</command> binary links against the DB libraries
     63          that reside in <filename class="directory">/usr</filename> and
     64          uses a database in <filename>/var/lib/arpd/arpd.db</filename>. Thus,
     65          according to the FHS, it must be
     66          in <filename class="directory">/usr/sbin</filename>. Move it there:
     67    </para>
     68
     69    <screen><userinput>mv -v /sbin/arpd /usr/sbin</userinput></screen>
     70     
    7171  </sect2>
    7272
     
    7676      <segtitle>Installed programs</segtitle>
    7777      <seglistitem>
    78         <seg>ctstat (link to lnstat), ifcfg, ifstat, ip, lnstat, nstat, routef,
    79              routel, rtacct, rtmon, rtpr, rtstat (link to lnstat), ss, and tc.
     78        <seg>arpd, ctstat (link to lnstat), ifcfg, ifstat, ip, lnstat, nstat,
     79             routef, routel, rtacct, rtmon, rtpr, rtstat (link to lnstat), ss,
     80             and tc.
    8081        </seg>
    8182      </seglistitem>
     
    8586<?dbfo list-presentation="list"?>
    8687<?dbhtml list-presentation="table"?>
     88      <varlistentry id="arpd">
     89        <term>
     90          <command>arpd</command>
     91        </term>
     92        <listitem>
     93          <para>Userspace ARP daemon, useful in really large networks, where
     94                the kernelspace ARP implementation is insufficient, or
     95                when setting up a honeypot</para>
     96          <indexterm zone="ch-system-iproute2 arpd">
     97            <primary sortas="b-arpd">arpd</primary>
     98          </indexterm>
     99        </listitem>
     100      </varlistentry>
     101
    87102      <varlistentry id="ctstat">
    88103        <term>
     
    293308        <listitem>
    294309          <para>Traffic Controlling Executable; this is for Quality Of
    295 Service (QOS) and Class Of Service (COS)
     310                Service (QOS) and Class Of Service (COS)
    296311                implementations
    297312          </para>
  • chapter06/kbd.xml

    r60e34b5 rfa21b3d  
    2929<title>Installation of Kbd</title>
    3030
     31<para>The behaviour of the Backspace and Delete keys is not consistent across the
     32keymaps in the Kbd package. The following patch fixes this issue for
     33i386 keymaps:</para>
     34
     35<screen><userinput>patch -Np1 -i ../&kbd-backspace-patch;</userinput></screen>
     36
     37<para>After patching, the Backspace key generates the character with code 127,
     38and the Delete key generates a well-known escape sequence.</para>
     39
    3140<para>Patch Kbd to fix a bug in <command>setfont</command> that is triggered
    3241when compiling with GCC-&gcc-version;:</para>
     
    4756
    4857<screen><userinput>make install</userinput></screen>
     58
     59<note><para>For some languages (e.g., Belarusian) the Kbd package doesn't
     60provide a useful keymap (the stock <quote>by</quote> keymap assumes the
     61ISO-8859-5 encoding, while everybody uses CP1251 instead). Users of such
     62languages have to download working keymaps separately.</para></note>
    4963
    5064</sect2>
     
    275289<term><command>unicode_start</command></term>
    276290<listitem>
    277 <para>Puts the keyboard and console in UNICODE mode. Never use it on LFS,
    278 because applications are not configured to support UNICODE.</para>
     291<para>Puts the keyboard and console in UNICODE mode. Don't use this program
     292unless your keymap file is in the ISO-8859-1 encoding. For other encodings,
     293this utility produces incorrect results.</para>
    279294<indexterm zone="ch-system-kbd unicode_start"><primary sortas="b-unicode_start">unicode_start</primary></indexterm>
    280295</listitem>
  • chapter06/man.xml

    r60e34b5 rfa21b3d  
    1 <?xml version="1.0" encoding="ISO-8859-1"?>
    2 <!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [
    3   <!ENTITY % general-entities SYSTEM "../general.ent">
    4   %general-entities;
    5 ]>
    6 <sect1 id="ch-system-man" role="wrap">
    7 <title>Man-&man-version;</title>
    8 <?dbhtml filename="man.html"?>
    9 
    10 <indexterm zone="ch-system-man"><primary sortas="a-Man">Man</primary></indexterm>
    11 
    12 <sect2 role="package"><title/>
    13 <para>The Man package contains programs for finding and viewing man pages.</para>
    14 
    15 <segmentedlist>
    16 <segtitle>&buildtime;</segtitle>
    17 <segtitle>&diskspace;</segtitle>
    18 <seglistitem><seg>0.1 SBU</seg><seg>1.3 MB</seg></seglistitem>
    19 </segmentedlist>
    20 
    21 <segmentedlist>
    22 <segtitle>&dependencies;</segtitle>
    23 <seglistitem><seg>Bash, Binutils, Coreutils, Gawk, GCC,
    24 Glibc, Grep, Make, and Sed</seg></seglistitem>
    25 </segmentedlist>
    26 </sect2>
    27 
    28 <sect2 role="installation">
    29 <title>Installation of Man</title>
    30 
    31 <para>Two adjustments need to be made to the sources of Man.</para>
    32 
    33 <para>The first is a <command>sed</command> substitution to add the
    34 <parameter>-R</parameter> switch to the <envar>PAGER</envar>
    35 variable so that escape sequences are properly handled by Less:</para>
    36 
    37 <screen><userinput>sed -i 's@-is@&amp;R@g' configure</userinput></screen>
    38 
    39 <para>The second is also a <command>sed</command> substitution to comment out the
    40 <quote>MANPATH /usr/man</quote> line in the
    41 <filename>man.conf</filename> file to prevent redundant results when
    42 using programs such as <command>whatis</command>:</para>
    43 
    44 <screen><userinput>sed -i 's@MANPATH./usr/man@#&amp;@g' src/man.conf.in</userinput></screen>
    45 
    46 <para>Prepare Man for compilation:</para>
    47 
    48 <screen><userinput>./configure -confdir=/etc</userinput></screen>
    49 
    50 <para>The meaning of the configure options:</para>
    51 
    52 <variablelist>
    53 <varlistentry>
    54 <term><parameter>-confdir=/etc</parameter></term>
    55 <listitem><para>This tells the <command>man</command> program to look for the
    56 <filename>man.conf</filename> configuration file in the <filename
    57 class="directory">/etc</filename> directory.</para></listitem>
    58 </varlistentry>
    59 </variablelist>
    60 
    61 <para>Compile the package:</para>
    62 
    63 <screen><userinput>make</userinput></screen>
    64 
    65 <para>This package does not come with a test suite.</para>
    66 
    67 <para>Install the package:</para>
    68 
    69 <screen><userinput>make install</userinput></screen>
    70 
    71 <note><para>If you will be working on a terminal that does not support text
    72 attributes such as color and bold, you can disable Select Graphic Rendition
    73 (SGR) escape sequences by editing the <filename>man.conf</filename> file and
    74 adding the <parameter>-c</parameter> option to the <envar>NROFF</envar>
    75 variable. If you use multiple terminal types for one computer it may be better
    76 to selectively add the <envar>GROFF_NO_SGR</envar> environment variable for the
    77 terminals that do not support SGR.</para></note>
    78 
    79 <para>If the character set of the locale uses 8-bit characters, search for the
    80 line beginning with <quote>NROFF</quote> in <filename>/etc/man.conf</filename>,
    81 and verify that it matches the following:</para>
    82 
    83 <screen>NROFF  /usr/bin/nroff -Tlatin1 -mandoc</screen>
    84 
    85 <para>Note that <quote>latin1</quote> should be used even if it is not
    86 the character set of the locale. The reason is that, according to the
    87 specification, <command>groff</command> has no means of typesetting
    88 characters outside International Organization for Standards
    89 (ISO) 8859-1 without some strange escape codes. When formatting man
    90 pages, <command>groff</command> thinks that they are in the ISO 8859-1
    91 encoding and this <parameter>-Tlatin1</parameter> switch tells
    92 <command>groff</command> to use the same encoding for output. Since
    93 <command>groff</command> does no recoding of input characters, the
    94 formatted result is really in the same encoding as input, and therefore
    95 it is usable as the input for a pager.</para>
    96 
    97 <para>This does not solve the problem of a non-working
    98 <command>man2dvi</command> program for localized man pages in
    99 non-ISO 8859-1 locales. Also, it does not work with multibyte
    100 character sets. The first problem does not currently have a solution.
    101 The second issue is not of concern because the LFS installation does
    102 not support multibyte character sets.</para>
    103 
    104 <para>Additional information with regards to the compression of
    105 man and info pages can be found in the BLFS book at
    106 <ulink url="&blfs-root;view/cvs/postlfs/compressdoc.html"/>.</para>
    107 
    108 </sect2>
    109 
    110 
    111 <sect2 id="contents-man" role="content"><title>Contents of Man</title>
    112 
    113 <segmentedlist>
    114 <segtitle>Installed programs</segtitle>
    115 <seglistitem><seg>apropos, makewhatis, man,
    116 man2dvi, man2html, and whatis</seg></seglistitem>
    117 </segmentedlist>
    118 
    119 <variablelist><bridgehead renderas="sect3">Short Descriptions</bridgehead>
    120 <?dbfo list-presentation="list"?>
    121 <?dbhtml list-presentation="table"?>
    122 
    123 <varlistentry id="apropos">
    124 <term><command>apropos</command></term>
    125 <listitem>
    126 <para>Searches the <command>whatis</command> database and displays the short descriptions
    127 of system commands that contain a given string</para>
    128 <indexterm zone="ch-system-man apropos"><primary sortas="b-apropos">apropos</primary></indexterm>
    129 </listitem>
    130 </varlistentry>
    131 
    132 <varlistentry id="makewhatis">
    133 <term><command>makewhatis</command></term>
    134 <listitem>
    135 <para>Builds the <command>whatis</command> database; it reads all the man pages
    136 in the <envar>MANPATH</envar> and writes the name and a short description in the
    137 <command>whatis</command> database for each page</para>
    138 <indexterm zone="ch-system-man makewhatis"><primary sortas="b-makewhatis">makewhatis</primary></indexterm>
    139 </listitem>
    140 </varlistentry>
    141 
    142 <varlistentry id="man">
    143 <term><command>man</command></term>
    144 <listitem>
    145 <para>Formats and displays the requested on-line man page</para>
    146 <indexterm zone="ch-system-man man"><primary sortas="b-man">man</primary></indexterm>
    147 </listitem>
    148 </varlistentry>
    149 
    150 <varlistentry id="man2dvi">
    151 <term><command>man2dvi</command></term>
    152 <listitem>
    153 <para>Converts a man page into dvi format</para>
    154 <indexterm zone="ch-system-man man2dvi"><primary sortas="b-man2dvi">man2dvi</primary></indexterm>
    155 </listitem>
    156 </varlistentry>
    157 
    158 <varlistentry id="man2html">
    159 <term><command>man2html</command></term>
    160 <listitem>
    161 <para>Converts a man page into HTML</para>
    162 <indexterm zone="ch-system-man man2html"><primary sortas="b-man2html">man2html</primary></indexterm>
    163 </listitem>
    164 </varlistentry>
    165 
    166 <varlistentry id="whatis">
    167 <term><command>whatis</command></term>
    168 <listitem>
    169 <para>Searches the <command>whatis</command> database and displays the short descriptions
    170 of system commands that contain the given keyword as a separate
    171 word</para>
    172 <indexterm zone="ch-system-man whatis"><primary sortas="b-whatis">whatis</primary></indexterm>
    173 </listitem>
    174 </varlistentry>
    175 </variablelist>
    176 
    177 </sect2>
    178 
    179 </sect1>
    180 
  • chapter06/ncurses.xml

    r60e34b5 rfa21b3d  
    2929<sect2 role="installation">
    3030<title>Installation of Ncurses</title>
     31<!-- Uncomment if using a dated ncurses release instead of a numbered one.
     32
     33<para>Since the release of Ncurses-&ncurses-version;, some bugs have been fixed
     34and features added. The most important news are .......
     35To get these fixes and features, apply the rollup patch:</para>
     36
     37<screen><userinput>bzcat ../&ncurses-rollup-patch; | patch -Np1</userinput></screen>
     38-->
     39
     40<para>Since the release of Ncurses-&ncurses-version;, a memory leak and some
     41display bugs were found and fixed upstream. Apply those fixes:</para>
     42
     43<screen><userinput>patch -Np1 -i ../&ncurses-fixes-patch;</userinput></screen>
    3144
    3245<para>Prepare Ncurses for compilation:</para>
    3346
    34 <screen><userinput>./configure --prefix=/usr --with-shared --without-debug</userinput></screen>
     47<screen><userinput>./configure --prefix=/usr --with-shared --without-debug --enable-widec</userinput></screen>
     48
     49<para>The meaning of the configure options:</para>
     50
     51<variablelist>
     52<varlistentry>
     53<term><parameter>--enable-widec</parameter></term>
     54<listitem><para>This switch causes wide-character libraries
     55(e.g., <filename class="libraryfile">libncursesw.so.&ncurses-version;</filename>)
     56to be built instead of normal ones
     57(e.g., <filename class="libraryfile">libncurses.so.&ncurses-version;</filename>).
     58These wide-character libraries are usable in both multibyte and traditional 8-bit
     59locales, while normal libraries work properly only in 8-bit locales.
     60Wide-character and normal libraries are source-compatible, but not
     61binary-compatible.</para>
     62</listitem>
     63</varlistentry>
     64<!--
     65<varlistentry>
     66<term><parameter>- -without-cxx-binding</parameter></term>
     67<listitem><para>This optional switch causes the
     68<filename class="libraryfile">libncurses++w.a</filename> library
     69not to be built. Nothing in LFS and BLFS uses this library.</para>
     70</listitem>
     71</varlistentry>
     72-->
     73</variablelist>
    3574
    3675<para>Compile the package:</para>
     
    5089<para>Fix a library that should not be executable:</para>
    5190
    52 <screen><userinput>chmod -v 644 /usr/lib/libncurses++.a</userinput></screen>
     91<screen><userinput>chmod -v 644 /usr/lib/libncurses++w.a</userinput></screen>
    5392
    5493<para>Move the libraries to the <filename class="directory">/lib</filename> directory,
    5594where they are expected to reside:</para>
    5695
    57 <screen><userinput>mv -v /usr/lib/libncurses.so.5* /lib</userinput></screen>
    58 
    59 <para>Because the libraries have been moved, a few symlinks point to
    60 non-existent files. Recreate those symlinks:</para>
    61 
    62 <screen><userinput>ln -sfv ../../lib/libncurses.so.5 /usr/lib/libncurses.so
    63 ln -sfv libncurses.so /usr/lib/libcurses.so</userinput></screen>
     96<screen><userinput>mv -v /usr/lib/libncursesw.so.5* /lib</userinput></screen>
     97
     98<para>Because the libraries have been moved, one symlink points to
     99a non-existent file. Recreate it:</para>
     100
     101<screen><userinput>ln -sfv ../../lib/libncursesw.so.5 /usr/lib/libncursesw.so</userinput></screen>
     102
     103<para>Many applications still expect the linker to be able to find
     104non-wide-character Ncurses libraries. Trick such applications into linking with
     105wide-character libraries by means of symlinks and linker scripts:</para>
     106
     107<screen><userinput>for lib in curses ncurses form panel menu ; do \
     108        rm -vf /usr/lib/lib${lib}.so ; \
     109        echo "INPUT(-l${lib}w)" &gt;/usr/lib/lib${lib}.so ; \
     110        ln -sfv lib${lib}w.a /usr/lib/lib${lib}.a ; \
     111done &amp;&amp;
     112ln -sfv libncurses++w.a /usr/lib/libncurses++.a</userinput></screen>
     113
     114<para>Finally, make sure that old applications that look for
     115<filename class="libaryfile">-lcurses</filename> at build time are still
     116buildable:</para>
     117
     118<screen><userinput>echo "INPUT(-lncursesw)" &gt;/usr/lib/libcursesw.so &amp;&amp;
     119ln -sfv libncurses.so /usr/lib/libcurses.so &amp;&amp;
     120ln -sfv libncursesw.a /usr/lib/libcursesw.a &amp;&amp;
     121ln -sfv libncurses.a /usr/lib/libcurses.a</userinput></screen>
     122
     123<note><para>The instructions above don't create non-wide-character Ncurses
     124libraries since no package installed by compiling from sources would link
     125against them at runtime.
     126If you must have such libraries because of some binary-only application,
     127build them with the following commands:</para>
     128<screen role="nodump"><userinput>make distclean &amp;&amp;
     129./configure --prefix=/usr --with-shared --without-normal \
     130        --without-debug --without-cxx-binding &amp;&amp;
     131make sources libs &amp;&amp;
     132cp -av lib/lib*.so.5* /usr/lib</userinput></screen>
     133</note>
    64134</sect2>
    65135
     
    72142<seglistitem><seg>captoinfo (link to tic), clear, infocmp, infotocap (link to tic),
    73143reset (link to tset), tack, tic, toe, tput, and tset</seg>
    74 <seg>libcurses.[a,so] (link to libncurses.[a,so]), libform.[a,so], libmenu.[a,so],
    75 libncurses++.a, libncurses.[a,so], and libpanel.[a,so]</seg></seglistitem>
     144<seg>libcursesw.[a,so] (symlink and linker script to libncursesw.[a,so]),
     145libformw.[a,so], libmenuw.[a,so],
     146libncurses++w.a, libncursesw.[a,so], libpanelw.[a,so] and their
     147non-wide-character counterparts without "w" in the library names.</seg></seglistitem>
    76148</segmentedlist>
    77149
     
    213285
    214286</sect1>
    215 
  • chapter06/perl.xml

    r60e34b5 rfa21b3d  
    2121<segmentedlist>
    2222<segtitle>&dependencies;</segtitle>
    23 <seglistitem><seg>Bash, Binutils, Coreutils, Diffutils,
     23<seglistitem><seg>Bash, Binutils, Coreutils, DB, Diffutils,
    2424Gawk, GCC, Glibc, Grep, Make, and Sed</seg></seglistitem>
    2525</segmentedlist>
  • chapter06/readline.xml

    r60e34b5 rfa21b3d  
    4444<term><parameter>SHLIB_LIBS=-lncurses</parameter></term>
    4545<listitem><para>This option forces Readline to link against the
    46 <filename class="libraryfile">libncurses</filename> library.</para></listitem>
     46<filename class="libraryfile">libncurses</filename>
     47(really, <filename class="libraryfile">libncursesw</filename>)
     48library.</para></listitem>
    4749</varlistentry>
    4850</variablelist>
  • chapter06/shadow.xml

    r60e34b5 rfa21b3d  
    4848<screen><userinput>sed -i 's/groups$(EXEEXT) //' src/Makefile
    4949find man -name Makefile -exec sed -i '/groups/d' {} \;</userinput></screen>
     50
     51<para>Disable the installation of Chinese and Korean manual pages, since Man-DB
     52cannot format them properly:</para>
     53
     54<screen><userinput>sed -i -e 's/ ko//' -e 's/ zh_CN zh_TW//' man/Makefile</userinput></screen>
    5055
    5156<para>Compile the package:</para>
  • chapter06/sysklogd.xml

    r60e34b5 rfa21b3d  
    3333
    3434<screen><userinput>patch -Np1 -i ../&sysklogd-fixes-patch;</userinput></screen>
     35
     36<para>The following patch makes sysklogd treat bytes in the 0x80--0x9f range
     37literally in the messages being logged, instead of replacing them with octal
     38codes. Unpatched sysklogd would damage messages in the UTF-8 encoding.</para>
     39
     40<screen><userinput>patch -Np1 -i ../&sysklogd-8bit-patch;</userinput></screen>
    3541
    3642<para>Compile the package:</para>
  • chapter06/sysvinit.xml

    r60e34b5 rfa21b3d  
    8585su:S016:once:/sbin/sulogin
    8686
    87 1:2345:respawn:/sbin/agetty -I '\033(K' tty1 9600
    88 2:2345:respawn:/sbin/agetty -I '\033(K' tty2 9600
    89 3:2345:respawn:/sbin/agetty -I '\033(K' tty3 9600
    90 4:2345:respawn:/sbin/agetty -I '\033(K' tty4 9600
    91 5:2345:respawn:/sbin/agetty -I '\033(K' tty5 9600
    92 6:2345:respawn:/sbin/agetty -I '\033(K' tty6 9600
     871:2345:respawn:/sbin/agetty tty1 9600
     882:2345:respawn:/sbin/agetty tty2 9600
     893:2345:respawn:/sbin/agetty tty3 9600
     904:2345:respawn:/sbin/agetty tty4 9600
     915:2345:respawn:/sbin/agetty tty5 9600
     926:2345:respawn:/sbin/agetty tty6 9600
    9393
    9494# End /etc/inittab</literal>
    9595EOF</userinput></screen>
    96 
    97 <para>The <parameter>-I '\033(K'</parameter> option tells
    98 <command>agetty</command> to send this escape sequence to the terminal
    99 before doing anything else. This escape sequence switches the console
    100 character set to a user-defined one, which can be modified by running
    101 the <command>setfont</command> program. The <command>console</command>
    102 initscript from the LFS-Bootscripts package calls the <command>setfont</command>
    103 program during system startup. Sending this escape sequence is
    104 necessary for people who use non-ISO 8859-1 screen fonts, but it does
    105 not affect native English speakers.</para>
    106 
    10796</sect2>
    10897
  • chapter06/texinfo.xml

    r60e34b5 rfa21b3d  
    2929<sect2 role="installation">
    3030<title>Installation of Texinfo</title>
     31
     32<para>The <command>info</command> program makes assumptions such as that
     33a string occupies the same number of character cells on the screen and bytes
     34in memory and that one can break the string anywhere, which fail in
     35UTF-8 based locales. The patch below makes them valid
     36by falling back to English messages when a multibyte locale is in use:</para>
     37
     38<screen><userinput>patch -Np1 -i ../&texinfo-multibyte-patch;</userinput></screen>
    3139
    3240<para>Texinfo allows local users to overwrite arbitrary files via a symlink
     
    6472</varlistentry>
    6573</variablelist>
     74<!-- FIXME: doesn't the TeX installation in BLFS overwrite files there? -->
    6675
    6776<para>The Info documentation system uses a plain text file to hold its
  • chapter06/udev.xml

    r60e34b5 rfa21b3d  
    7979<screen><userinput>install -m644 -D -v docs/writing_udev_rules/index.html /usr/share/doc/udev-&udev-version;/index.html</userinput></screen>
    8080
     81<!-- Not for the LiveCD -->
    8182<!-- Edit Me -->
    8283<para>Run the <command>udevstart</command> program to create our full
  • chapter06/vim.xml

    r60e34b5 rfa21b3d  
    5454<varlistentry>
    5555<term><parameter>--enable-multibyte</parameter></term>
    56 <listitem><para>This optional but highly recommended switch enables support for
     56<listitem><para>This switch enables support for
    5757editing files in multibyte character encodings.  This is needed if using a
    5858locale with a multibyte character set. This switch is also helpful to be able to
     
    7575
    7676<screen><userinput>make install</userinput></screen>
     77
     78<para>In UTF-8 locales, the <command>vimtutor</command> program
     79tries to convert the tutorials from ISO-8859-1 to UTF-8. Since
     80some tutorials are not in ISO-8859-1, the text in them is thus made unreadable.
     81If you unpacked the <filename>vim-&vim-version;-lang.tar.gz</filename>
     82archive and are going to use a UTF-8 based locale, remove non-ISO-8859-1
     83tutorials. An English tutorial will be used instead.</para>
     84<!-- Removal is used instead of conversion in order for the user to be able to
     85painlessly revert his UTF-8 locale choice. -->
     86
     87<screen><userinput>rm -f /usr/share/vim/vim63/tutor/tutor.{gr,pl,ru,sk}
     88rm -f /usr/share/vim/vim63/tutor/tutor.??.*</userinput></screen>
    7789
    7890<para>Many users are used to using <command>vi</command> instead of
  • chapter07/console.xml

    r60e34b5 rfa21b3d  
    1818  <para>This section discusses how to configure the <command>console</command>
    1919  bootscript that sets up the keyboard map and the console font. If non-ASCII
    20   characters (e.g., the British pound sign and Euro character) will not be used
    21   and the keyboard is a U.S. one, skip this section. Without the configuration
    22   file, the <command>console</command> bootscript will do nothing.</para>
     20  characters (e.g., the copyright sign, the British pound sign and Euro symbol)
     21  will not be used and the keyboard is a U.S. one, skip this section. Without
     22  the configuration file, the <command>console</command> bootscript will do
     23  nothing.</para>
    2324
    2425  <para>The <command>console</command> script reads the
    2526  <filename>/etc/sysconfig/console</filename> file for configuration information.
    2627  Decide which keymap and screen font will be used. Various language-specific
    27   HOWTO's can also help with this (see <ulink
    28   url="http://www.tldp.org/HOWTO/HOWTO-INDEX/other-lang.html"/>. A pre-made
    29   <filename>/etc/sysconfig/console</filename> file with known settings for several
    30   countries was installed with the LFS-Bootscripts package, so the relevant
    31   section can be uncommented if the country is supported. If still in doubt, look
    32   in the <filename class="directory">/usr/share/kbd</filename> directory for valid
    33   keymaps and screen fonts. Read <filename>loadkeys(1)</filename> and
    34   <filename>setfont(8)</filename> to determine the correct arguments for
    35   these programs. Once decided, create the configuration file with the following
    36   command:</para>
    37 
    38 <screen><userinput>cat &gt;/etc/sysconfig/console &lt;&lt;"EOF"
    39 <literal>KEYMAP="<replaceable>[arguments for loadkeys]</replaceable>"
    40 FONT="<replaceable>[arguments for setfont]</replaceable>"</literal>
    41 EOF</userinput></screen>
    42 
    43   <para>For example, for Spanish users who also want to use the Euro
    44   character (accessible by pressing AltGr+E), the following settings are
    45   correct:</para>
    46 
    47 <screen role="nodump"><userinput>cat &gt;/etc/sysconfig/console &lt;&lt;"EOF"
    48 <literal>KEYMAP="es euro2"
    49 FONT="lat9-16 -u iso01"</literal>
    50 EOF</userinput></screen>
    51 
     28  HOWTOs can also help with this, see <ulink
     29  url="http://www.tldp.org/HOWTO/HOWTO-INDEX/other-lang.html"/>. If still in
     30  doubt, look in the <filename class="directory">/usr/share/kbd</filename>
     31  directory for valid keymaps and screen fonts. Read
     32  <filename>loadkeys(1)</filename> and <filename>setfont(8)</filename> manual
     33  pages to determine the correct arguments for these programs.</para>
     34
     35  <para>The <filename>/etc/sysconfig/console</filename> file should contain lines
     36  of the form: VARIABLE="value". The following variables are recognized:</para>
     37
     38  <variablelist>
     39
     40    <varlistentry>
     41      <term>KEYMAP</term>
     42      <listitem>
     43        <para>This variable specifies the arguments for the
     44        <command>loadkeys</command> program, typically, the name of keymap
     45        to load, e.g., <quote>es</quote>. If this variable is not set, the
     46        bootscript will not run the <command>loadkeys</command> program,
     47        and the default kernel keymap will be used.</para>
     48      </listitem>
     49    </varlistentry>
     50
     51    <varlistentry>
     52      <term>KEYMAP_CORRECTIONS</term>
     53      <listitem>
     54        <para>This (rarely used) variable
     55        specifies the arguments for the second call to the
     56        <command>loadkeys</command> program. This is useful if the stock keymap
     57        is not completely satisfactory and a small adjustment has to be made. E.g.,
     58        to include the Euro sign into a keymap that normally doesn't have it,
     59        set this variable to <quote>euro2</quote>.</para>
     60      </listitem>
     61    </varlistentry>
     62
     63    <varlistentry>
     64      <term>FONT</term>
     65      <listitem>
     66        <para>This variable specifies the arguments for the
     67        <command>setfont</command> program. Typically, this includes the font
     68        name, <quote>-m</quote>, and the name of the application character
     69        map to load. E.g., in order to load the <quote>lat1-16</quote> font
     70        together with the <quote>8859-1</quote> application character map
     71        (as it is appropriate in the USA), <!-- because of the copyright sign -->
     72        set this variable to <quote>lat1-16 -m 8859-1</quote>.
     73        If this variable is not set, the bootscript will not run the
     74        <command>setfont</command> program, and the default VGA font will be
     75        used together with the default application character map.</para>
     76      </listitem>
     77    </varlistentry>
     78
     79    <varlistentry>
     80      <term>UNICODE</term>
     81      <listitem>
     82        <para>Set this variable to <quote>1</quote>, <quote>yes</quote> or
     83        <quote>true</quote> in order to put the
     84        console into UTF-8 mode. This is useful in UTF-8 based locales and
     85        harmful otherwise.</para>
     86      </listitem>
     87    </varlistentry>
     88
     89    <varlistentry>
     90      <term>LEGACY_CHARSET</term>
     91      <listitem>
     92        <para>For many keyboard layouts, there is no stock Unicode keymap in
     93        the Kbd package. The <command>console</command> bootscript will
     94        convert an available keymap to UTF-8 on the fly if this variable is
     95        set to the encoding of the available non-UTF-8 keymap. Note, however,
     96        that dead keys (i.e., keys that don't produce a character by
     97        themselves, but put an accent onto a character procuced by the next
     98        key; there are no dead keys on the standard US keyboard) and composing
     99        (i.e., pressing Ctrl+. A E in order to produce the &AElig; character)
     100        will not work in UTF-8 mode without the special kernel patch.
     101        This variable is useful only in UTF-8 mode.</para>
     102      </listitem>
     103    </varlistentry>
     104
     105    <varlistentry>
     106      <term>BROKEN_COMPOSE</term>
     107      <listitem>
     108        <para>Set this to <quote>0</quote> if you are going to apply the kernel patch in
     109        Chapter 8. Note that you also have to add the character set expected
     110        by composition rules in your keymap to the FONT variable after the
     111        <quote>-m</quote> switch. This variable is useful only in UTF-8 mode.</para>
     112      </listitem>
     113    </varlistentry>
     114
     115  </variablelist>
     116
     117  <para>Support for compiling the keymap directly into the kernel has been
     118  removed because there were reports that it leads to incorrect results.</para>
     119
     120  <para>Some examples:</para>
     121
     122  <itemizedlist>
     123
     124    <listitem>
     125      <para>For a non-Unicode setup, only the KEYMAP and FONT variables are
     126      generally needed. E.g., for a Polish setup, one would use:</para>
     127
     128<screen role="nodump"><userinput>cat &gt; /etc/sysconfig/console &lt;&lt; "EOF"
     129<literal># Begin /etc/sysconfig/console
     130
     131KEYMAP="pl2"
     132FONT="lat2a-16 -m 8859-2"
     133
     134# End /etc/sysconfig/console</literal>
     135EOF</userinput></screen>
     136    </listitem>
     137
     138    <listitem>
     139      <para>As mentioned above, it is sometimes necessary to adjust a
     140      stock keymap slightly. The following example adds the Euro symbol to the
     141      German keymap:</para>
     142
     143<screen role="nodump"><userinput>cat &gt; /etc/sysconfig/console &lt;&lt; "EOF"
     144<literal># Begin /etc/sysconfig/console
     145
     146KEYMAP="de-latin1"
     147KEYMAP_CORRECTIONS="euro2"
     148FONT="lat0-16 -m 8859-15"
     149
     150# End /etc/sysconfig/console</literal>
     151EOF</userinput></screen>
     152    </listitem>
     153
     154    <listitem>
     155      <para>The following is a Unicode-enabled example for Bulgarian, where a stock
     156      UTF-8 keymap exists and defines no dead keys or composition rules:</para>
     157
     158<screen role="nodump"><userinput>cat &gt; /etc/sysconfig/console &lt;&lt; "EOF"
     159<literal># Begin /etc/sysconfig/console
     160
     161UNICODE="1"
     162KEYMAP="bg_bds-utf8"
     163FONT="LatArCyrHeb-16"
     164
     165# End /etc/sysconfig/console</literal>
     166EOF</userinput></screen>
     167    </listitem>
     168
     169    <listitem>
     170      <para>Due to the use of a 512-glyph LatArCyrHeb-16 font in the previous
     171      example, bright colors are no longer available on the Linux console unless
     172      a framebuffer is used. If one wants to have bright colors without
     173      framebuffer and can live without characters not belonging to his language,
     174      it is still possible to use a language-specific 256-glyph font, as
     175      illustrated below.</para>
     176
     177<screen role="nodump"><userinput>cat &gt; /etc/sysconfig/console &lt;&lt; "EOF"
     178<literal># Begin /etc/sysconfig/console
     179
     180UNICODE="1"
     181KEYMAP="bg_bds-utf8"
     182FONT="cyr-sun16"
     183
     184# End /etc/sysconfig/console</literal>
     185EOF</userinput></screen>
     186    </listitem>
     187
     188    <listitem>
     189      <para>The following example illustrates keymap autoconversion from
     190      ISO-8859-15 to UTF-8 and enabling dead keys in Unicode mode:</para>
     191
     192<screen role="nodump"><userinput>cat &gt; /etc/sysconfig/console &lt;&lt; "EOF"
     193<literal># Begin /etc/sysconfig/console
     194
     195UNICODE="1"
     196KEYMAP="de-latin1"
     197KEYMAP_CORRECTIONS="euro2"
     198LEGACY_CHARSET="iso-8859-15"
     199BROKEN_COMPOSE="0"
     200FONT="LatArCyrHeb-16 -m 8859-15"
     201
     202# End /etc/sysconfig/console</literal>
     203EOF</userinput></screen>
     204    </listitem>
     205
     206    <listitem>
     207      <para>For Chinese, Japanese, Korean and some other languages, the Linux
     208      console cannot be configured to display the needed characters. Users
     209      who need such languages should install the X Window System, fonts that
     210      cover the necessary character ranges, and the proper input method (e.g.,
     211      SCIM, it supports a wide variety of languages).</para>
     212    </listitem>
     213
     214  </itemizedlist>
     215
     216  <!-- Added because folks keep posting their console file with X questions
     217  to blfs-support list -->
    52218  <note>
    53     <para>The <envar>FONT</envar> line above is correct only for the ISO 8859-15
    54     character set. If using ISO 8859-1 and, therefore, a pound sign
    55     instead of Euro, the correct <envar>FONT</envar> line would be:</para>
    56 
    57 <screen role="nodump"><userinput>FONT="lat1-16"</userinput></screen>
     219    <para>The <filename>/etc/sysconfig/console</filename> file only controls the
     220    Linux text console localization. It has nothing to do with setting the proper
     221    keyboard layout and terminal fonts in the X Window System, with ssh sessions
     222    or with a serial console.</para>
    58223  </note>
    59224
    60   <para>If the <envar>KEYMAP</envar> or <envar>FONT</envar> variable is not set,
    61   the <command>console</command> initscript will not run the corresponding
    62   program.</para>
    63 
    64   <para>In some keymaps, the Backspace and Delete keys send characters different
    65   from ones in the default keymap built into the kernel. This confuses some
    66   applications. For example, Emacs displays its help (instead of erasing the
    67   character before the cursor) when Backspace is pressed. To check if the keymap
    68   in use is affected (this works only for i386 keymaps):</para>
    69 
    70 <screen role="nodump"><userinput>zgrep '\W14\W' <replaceable>[/path/to/your/keymap]</replaceable></userinput></screen>
    71 
    72   <para>If the keycode 14 is Backspace instead of Delete, create the
    73   following keymap snippet to fix this issue:</para>
    74 
    75 <screen role="nodump"><userinput>mkdir -pv /etc/kbd &amp;&amp; cat &gt; /etc/kbd/bs-sends-del &lt;&lt;"EOF"
    76 <literal>                  keycode  14 = Delete Delete Delete Delete
    77               alt keycode  14 = Meta_Delete
    78         altgr alt keycode  14 = Meta_Delete
    79                   keycode 111 = Remove
    80     altgr control keycode 111 = Boot
    81       control alt keycode 111 = Boot
    82 altgr control alt keycode 111 = Boot</literal>
    83 EOF</userinput></screen>
    84 
    85   <para>Tell the <command>console</command> script to load this
    86   snippet after the main keymap:</para>
    87 
    88 <screen role="nodump"><userinput>cat &gt;&gt;/etc/sysconfig/console &lt;&lt;"EOF"
    89 <literal>KEYMAP_CORRECTIONS="/etc/kbd/bs-sends-del"</literal>
    90 EOF</userinput></screen>
    91 
    92   <para>To compile the keymap directly into the kernel instead of
    93   setting it every time from the <command>console</command> bootscript,
    94   follow the instructions given in <xref linkend="ch-bootable-kernel" role="."/>
    95   Doing this ensures that the keyboard will always work as expected,
    96   even when booting into maintenance mode (by passing
    97   <parameter>init=/bin/sh</parameter> to the kernel), because the
    98   <command>console</command> bootscript will not be run in that
    99   situation. Additionally, the kernel will not set the screen font
    100   automatically. This should not pose many problems because ASCII characters
    101   will be handled correctly, and it is unlikely that a user would need
    102   to rely on non-ASCII characters while in maintenance mode.</para>
    103 
    104   <para>Since the kernel will set up the keymap, it is possible to omit
    105   the <envar>KEYMAP</envar> variable from the
    106   <filename>/etc/sysconfig/console</filename> configuration file. It can
    107   also be left in place, if desired, without consequence.  Keeping it
    108   could be beneficial if running several different kernels where it is
    109   difficult to ensure that the keymap is compiled into every one of
    110   them.</para>
    111 
    112225</sect1>
  • chapter07/profile.xml

    r60e34b5 rfa21b3d  
    7070  <replaceable>[CC]</replaceable> with the two-letter code for the appropriate
    7171  country (e.g., <quote>GB</quote>). <replaceable>[charmap]</replaceable> should
    72   be replaced with the canonical charmap for your chosen locale.</para>
     72  be replaced with the canonical charmap for your chosen locale. Optional
     73  modifiers such as <quote>@euro</quote> may also be present.</para>
    7374
    7475  <para>The list of all locales supported by Glibc can be obtained by running
     
    7778<screen role="nodump"><userinput>locale -a</userinput></screen>
    7879
    79   <para>Locales can have a number of synonyms, e.g. <quote>ISO-8859-1</quote>
     80  <para>Charmaps can have a number of aliases, e.g., <quote>ISO-8859-1</quote>
    8081  is also referred to as <quote>iso8859-1</quote> and <quote>iso88591</quote>.
    81   Some applications cannot handle the various synonyms correctly, so it is
    82   safest to choose the canonical name for a particular locale. To determine
     82  Some applications cannot handle the various synonyms correctly (e.g., require
     83  that <quote>UTF-8</quote> is written as <quote>UTF-8</quote>, not
     84  <quote>utf8</quote>), so it is safest in most
     85  cases to choose the canonical name for a particular locale. To determine
    8386  the canonical name, run the following command, where <replaceable>[locale
    8487  name]</replaceable> is the output given by <command>locale -a</command> for
     
    116119  Glibc.</para>
    117120
     121  <!-- FIXME: the xlib example will became obsolete real soon -->
    118122  <para>Some packages beyond LFS may also lack support for your chosen locale. One
    119123  example is the X library (part of the X Window System), which outputs the
     
    140144<literal># Begin /etc/profile
    141145
    142 export LANG=<replaceable>[ll]</replaceable>_<replaceable>[CC]</replaceable>.<replaceable>[charmap]</replaceable>
     146export LANG=<replaceable>[ll]</replaceable>_<replaceable>[CC]</replaceable>.<replaceable>[charmap]</replaceable><replaceable>[@modifiers]</replaceable>
    143147export INPUTRC=/etc/inputrc
    144148
     
    146150EOF</userinput></screen>
    147151
    148   <note>
    149     <para>The <quote>C</quote> (default) and <quote>en_US</quote> (the
    150     recommended one for United States English users) locales are different.</para>
    151   </note>
     152  <para>The <quote>C</quote> (default) and <quote>en_US</quote> (the recommended
     153  one for United States English users) locales are different. <quote>C</quote>
     154  uses the US-ASCII 7-bit character set, and treats bytes with the high bit set
     155  as invalid characters. That's why, e.g., the <command>ls</command> command
     156  substitutes them with question marks in that locale. Also, an attempt to send
     157  mail with such characters from Mutt or Pine results in non-RFC-conforming
     158  messages being sent (the charset in the outgoing mail is indicated as <quote>unknown
     159  8-bit</quote>). So you can use the <quote>C</quote> locale only if you are sure that
     160  you will never need 8-bit characters.</para>
    152161
    153   <para>Setting the keyboard layout, screen font, and locale-related environment
    154   variables are the only internationalization steps needed to support locales
    155   that use ordinary single-byte encodings and left-to-right writing direction.
    156   More complex cases (including UTF-8 based locales) require additional steps
    157   and additional patches because many applications tend to not work properly
    158   under such conditions. These steps and patches are not included in the LFS
    159   book and such locales are not yet supported by LFS.</para>
     162  <para>UTF-8 based locales are not supported well by many programs. E.g., the
     163  <command>watch</command> program displays only ASCII characters in UTF-8
     164  locales and has no such restriction in traditional 8-bit locales like en_US.
     165  Without patches and/or installing software beyond BLFS, in UTF-8 based locales
     166  you will not be able to do such basic tasks as printing plain-text files from
     167  the command line, recording Windows-readable CDs with filenames containing
     168  non-ASCII characters, viewing ID3v1 tags in MP3 files and so on. Work is in
     169  progress to document and, if possible, fix such problems, see
     170  <ulink url="&blfs-root;view/svn/introduction/locale-issues.html"/>.
     171  It is, however, safe to use UTF-8 based locales if you are going to use only
     172  KDE or GNOME and never open the terminal.</para>
     173  <!-- All abovementioned problems except "watch" have a known fix beyond BLFS -->
    160174
    161175</sect1>
  • chapter08/fstab.xml

    r60e34b5 rfa21b3d  
    6666  <filename>/etc/sysconfig/modules</filename>.</para>
    6767
     68  <para>Filesystems with MS-DOS or Windows origin (i.e.: vfat, ntfs, smbfs, cifs,
     69  iso9660, udf) need the <quote>iocharset</quote> mount option in order for
     70  non-ASCII characters in file names to be interpreted properly. The value
     71  of this option should be the same as the character set of your locale,
     72  adjusted in such a way that the kernel understands it. This works if the
     73  relevant character set definition (found under File systems -&gt;
     74  Native Language Support) has been compiled into the kernel
     75  or built as a module. The <quote>codepage</quote> option is also needed for
     76  vfat and smbfs filesystems. It
     77  should be set to the codepage number used under MS-DOS in your country. E.g.,
     78  in order to mount USB flash drives, a ru_RU.KOI8-R user would need the
     79  following line in <filename>/etc/fstab</filename>:</para>
     80
     81<screen>/dev/sda1    /media/flash vfat noauto,user,quiet,showexec,iocharset=koi8r,codepage=866 0 0</screen>
     82
     83  <para>The corresponding line for ru_RU.UTF-8 users is:</para>
     84
     85<screen>/dev/sda1    /media/flash vfat noauto,user,quiet,showexec,iocharset=utf8,codepage=866 0 0</screen>
     86
     87  <note><para>In the latter case, the kernel emits the following message:</para>
     88
     89<screen><computeroutput>FAT: utf8 is not a recommended IO charset for FAT filesystems, filesystem will be case sensitive!</computeroutput></screen>
     90
     91  <para>This negative recommendation should be ignored, since all other values
     92  of the <quote>iocharset</quote> option result in wrong display of filenames in
     93  UTF-8 locales.</para></note>
     94
     95  <para>It is also possible to specify default codepage and iocharset values for
     96  some filesystems during kernel configuration. The relevant parameters
     97  are named
     98  <quote>Default NLS Option</quote> (CONFIG_NLS_DEFAULT),
     99  <quote>Default Remote NLS Option</quote> (CONFIG_SMB_NLS_DEFAULT),
     100  <quote>Default codepage for FAT</quote> (CONFIG_FAT_DEFAULT_CODEPAGE), and
     101  <quote>Default iocharset for FAT</quote> (CONFIG_FAT_DEFAULT_IOCHARSET).
     102  There is no way to specify these settings for the
     103  ntfs filesystem at kernel compilation time.</para>
     104  <!-- Personally, I find it more foolproof to always specify the iocharset and
     105  codepage in /etc/fstab for MS-based filesystems - Alexander E. Patrakov -->
     106
    68107</sect1>
  • chapter08/kernel.xml

    r60e34b5 rfa21b3d  
    4949    configures the kernel.</para>
    5050
     51    <para>By default, the Linux kernel generates wrong sequences of bytes when
     52    dead keys are used in UTF-8 keyboard mode. Also, one cannot copy and paste
     53    non-ASCII characters when UTF-8 mode is active. Fix these issues with the
     54    patch:</para>
     55
     56<screen><userinput>patch -Np1 -i ../&linux-utf8-patch;</userinput></screen>
     57
    5158    <para>Prepare for compilation by running the following command:</para>
    5259
     
    5865    un-tarring.</para>
    5966
    60     <para>If, in <xref linkend="ch-scripts-console" role=","/> it was decided to
    61     compile the keymap into the kernel, issue the command below:</para>
    62 
    63 <screen role="nodump"><userinput>loadkeys -m /usr/share/kbd/keymaps/<replaceable>[path to  keymap]</replaceable> &gt; \
    64     drivers/char/defkeymap.c</userinput></screen>
    65 
    66     <para>For example, if using a Dutch keyboard, use
    67     <filename>/usr/share/kbd/keymaps/i386/qwerty/nl.map.gz</filename>.</para>
     67    <!-- Support for compiling a keymap into the kernel is deliberately removed -->
    6868
    6969    <para>Configure the kernel via a menu-driven interface. BLFS has some
  • general.ent

    r60e34b5 rfa21b3d  
    11<?xml version="1.0" encoding="ISO-8859-1"?>
    2 <!ENTITY version "SVN-20060103">
    3 <!ENTITY releasedate "January 3, 2006">
     2<!ENTITY version "SVN-20060105">
     3<!ENTITY releasedate "January 5, 2006">
    44<!ENTITY milestone "6.2">
    55<!ENTITY generic-version "development"> <!-- Use "development", "testing", or "x.y[-pre{x}]" -->
     
    2323<!ENTITY kernel "http://www.kernel.org/pub/">
    2424<!ENTITY sourceforge "http://prdownloads.sourceforge.net/">
     25<!ENTITY alexpatches "&lfs-root;~alexander/patches/">
    2526
    2627<!ENTITY % patches-entities SYSTEM "patches.ent">
     
    3536<!ENTITY bzip2-version "1.0.3">
    3637<!ENTITY coreutils-version "5.93">
     38<!ENTITY db-version "4.4.16">
    3739<!ENTITY dejagnu-version "1.4.4">
    3840<!ENTITY diffutils-version "2.8.1">
     
    4850<!ENTITY glibc-version "2.3.6">
    4951<!ENTITY grep-version "2.5.1a">
    50 <!ENTITY groff-version "1.19.2">
     52<!ENTITY groff-version "1.18.1.1">
     53<!ENTITY groff-patchlevel "10">
    5154<!ENTITY grub-version "0.97">
    5255<!ENTITY gzip-version "1.3.5">
     
    5760<!ENTITY kbd-version "1.12">
    5861<!ENTITY less-version "394">
    59 <!ENTITY lfs-bootscripts-version "3.2.1">
     62<!ENTITY lfs-bootscripts-version "20051223">
    6063<!ENTITY libtool-version "1.5.22">
    6164<!ENTITY linux-version "2.6.12.5">
     
    6467<!ENTITY m4-version "1.4.4">
    6568<!ENTITY make-version "3.80">
    66 <!ENTITY man-version "1.6b">
     69<!ENTITY man-db-version "2.4.3">
    6770<!ENTITY man-pages-version "2.18">
    6871<!ENTITY mktemp-version "1.5">
    6972<!ENTITY module-init-tools-version "3.2.2">
    7073<!ENTITY ncurses-version "5.5">
     74<!-- <!ENTITY ncurses-date "20050319"> -->
    7175<!ENTITY patch-version "2.5.4">
    7276<!ENTITY perl-version "5.8.7">
  • patches.ent

    r60e34b5 rfa21b3d  
    22
    33<!-- Start of Common Patches -->
     4<!ENTITY bzip2-bzgrep-patch "bzip2-&bzip2-version;-bzgrep_security-1.patch">
    45<!ENTITY bzip2-docs-patch "bzip2-&bzip2-version;-install_docs-1.patch">
    5 <!ENTITY bzip2-bzgrep-patch "bzip2-&bzip2-version;-bzgrep_security-1.patch">
    66
     7<!ENTITY coreutils-i18n-patch "coreutils-&coreutils-version;-i18n-1.patch">
    78<!ENTITY coreutils-suppress-patch "coreutils-&coreutils-version;-suppress_uptime_kill_su-1.patch">
    89<!ENTITY coreutils-uname-patch "coreutils-&coreutils-version;-uname-1.patch">
     10
     11<!ENTITY diffutils-i18n-patch "diffutils-&diffutils-version;-i18n-1.patch">
    912
    1013<!ENTITY expect-spawn-patch "expect-&expect-version;-spawn-1.patch">
     
    1619<!ENTITY gcc-specs-patch "gcc-&gcc-version;-specs-1.patch">
    1720
     21<!ENTITY grep-fixes-patch "grep-&grep-version;-redhat_fixes-2.patch">
     22
     23<!ENTITY groff-debian-patch "groff_&groff-version;-&groff-patchlevel;.diff.gz">
     24
    1825<!ENTITY gzip-security_fix-patch "gzip-&gzip-version;-security_fixes-1.patch">
    1926
     27<!ENTITY kbd-backspace-patch "kbd-&kbd-version;-backspace-1.patch">
    2028<!ENTITY kbd-gcc4_fixes-patch "kbd-&kbd-version;-gcc4_fixes-1.patch">
    2129
     
    2331<!ENTITY inetutils-man_pages-patch "inetutils-&inetutils-version;-no_server_man_pages-1.patch">
    2432
     33<!ENTITY linux-utf8-patch "linux-&linux-version;-utf8_input-2.patch">
     34
    2535<!ENTITY mktemp-tempfile-patch "mktemp-&mktemp-version;-add_tempfile-3.patch">
    2636
     37<!ENTITY ncurses-fixes-patch "ncurses-&ncurses-version;-fixes-1.patch">
     38<!-- <!ENTITY ncurses-rollup-patch "ncurses-&ncurses-version;-&ncurses-date;-patch.sh.bz2"> -->
     39
    2740<!ENTITY perl-libc-patch "perl-&perl-version;-libc-1.patch">
     41
     42<!ENTITY sysklogd-8bit-patch "sysklogd-&sysklogd-version;-8bit-1.patch">
    2843
    2944<!ENTITY shadow-configure-patch "shadow-&shadow-version;-configure_fix-1.patch">
     
    3146<!ENTITY sysklogd-fixes-patch "sysklogd-&sysklogd-version;-fixes-1.patch">
    3247
     48<!ENTITY tar-gcc4_fix-patch "tar-&tar-version;-gcc4_fix_tests-1.patch">
    3349<!ENTITY tar-sparse_fix-patch "tar-&tar-version;-sparse_fix-1.patch">
    34 <!ENTITY tar-gcc4_fix-patch "tar-&tar-version;-gcc4_fix_tests-1.patch">
    3550
    36 <!ENTITY texinfo-tempfile_fix-patch "texinfo-&texinfo-version;-tempfile_fix-2.patch">
     51<!ENTITY texinfo-multibyte-patch "texinfo-&texinfo-version;-multibyte-2.patch">
     52<!ENTITY texinfo-tempfile_fix-patch "texinfo-&texinfo-version;-tempfile_fix-1.patch">
    3753
    3854<!ENTITY util-linux-cramfs-patch "util-linux-&util-linux-version;-cramfs-1.patch">
Note: See TracChangeset for help on using the changeset viewer.