Changeset 94aa6621
- Timestamp:
- 12/26/2005 07:46:12 PM (18 years ago)
- 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:
- b82f0c0
- Parents:
- 5536f74
- Files:
-
- 2 deleted
- 28 edited
Legend:
- Unmodified
- Added
- Removed
-
chapter01/changelog.xml
r5536f74 r94aa6621 45 45 <listitem><para>Glibc &glibc-version;</para></listitem> 46 46 <!-- <listitem><para>Grep &grep-version;</para></listitem> --> 47 < !-- <listitem><para>Groff &groff-version;</para></listitem> -->47 <listitem><para>Groff &groff-version;</para></listitem> 48 48 <listitem><para>GRUB &grub-version;</para></listitem> 49 49 <!-- <listitem><para>Gzip &gzip-version;</para></listitem> --> … … 60 60 <listitem><para>M4 &m4-version;</para></listitem> 61 61 <!-- <listitem><para>Make &make-version;</para></listitem> --> 62 <listitem><para>Man -DB &man-db-version;</para></listitem>62 <listitem><para>Man &man-version;</para></listitem> 63 63 <listitem><para>Man-pages &man-pages-version;</para></listitem> 64 64 <!-- <listitem><para>Mktemp &mktemp-version;</para></listitem> --> … … 84 84 </listitem> 85 85 86 <listitem><para>Downgraded to:</para>87 <itemizedlist>88 <listitem><para>Groff &groff-version;-&groff-patchlevel;</para></listitem>89 </itemizedlist>90 </listitem>91 92 86 <listitem><para>Added:</para> 93 87 <itemizedlist> … … 96 90 <listitem><para>&gawk-segfault-patch;</para></listitem> 97 91 <listitem><para>&gcc-specs-patch;</para></listitem> 98 <listitem><para>GDBM-&gdbm-version;</para></listitem>99 92 <listitem><para>&inetutils-gcc4_fixes-patch;</para></listitem> 100 93 <listitem><para>&kbd-gcc4_fixes-patch;</para></listitem> 101 <listitem><para>MAN-DB-&man-db-version;</para></listitem>102 94 <listitem><para>&mktemp-tempfile-patch;</para></listitem> 103 95 <listitem><para>&perl-libc-patch;</para></listitem> … … 116 108 <listitem><para>inetutils-1.4.2-kernel_headers-1.patch</para></listitem> 117 109 <listitem><para>iproute2-2.6.11-050330-remove_db-1.patch</para></listitem> 118 <listitem><para>Man-1.6b</para></listitem>119 110 <listitem><para>mktemp-1.5-add_tempfile-2.patch</para></listitem> 120 111 <listitem><para>perl-5.8.6-libc-1.patch</para></listitem> -
chapter03/packages.xml
r5536f74 r94aa6621 138 138 139 139 <varlistentry> 140 <term>GDBM (&gdbm-version;) - 228 KB:</term>141 <listitem>142 <para><ulink url="&gnu;gdbm/"/></para>143 </listitem>144 </varlistentry>145 146 <varlistentry>147 140 <term>Gettext (&gettext-version;) - 4,668 KB:</term> 148 141 <listitem> … … 166 159 167 160 <varlistentry> 168 <term>Groff (&groff-version;) - 2, 260KB:</term>161 <term>Groff (&groff-version;) - 2,096 KB:</term> 169 162 <listitem> 170 163 <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;)179 may no longer be available at the180 listed location. The site administrators of the master download181 location occasionally remove older versions when new ones are182 released. There is no alternative download location yet.</para></note>183 <!-- Actually there's snapshot.debian.net, but they have hardware problems -->184 164 </listitem> 185 165 </varlistentry> … … 250 230 251 231 <varlistentry> 252 <term>Replacement <command>console</command> script for LFS-Bootscripts (&lfs-bootscripts-version;) - 3 KB:</term>253 <listitem>254 <para><ulink url="&alexpatches;console"/></para>255 </listitem>256 </varlistentry>257 258 <varlistentry>259 232 <term>Libtool (&libtool-version;) - 1,642 KB:</term> 260 233 <listitem> … … 292 265 293 266 <varlistentry> 294 <term>Man -DB (&man-db-version;) - 816KB:</term>295 <listitem> 296 <para><ulink url="http:// savannah.nongnu.org/download/man-db/"/></para>267 <term>Man (&man-version;) - 205 KB:</term> 268 <listitem> 269 <para><ulink url="http://primates.ximian.com/~flucifredi/man/"/></para> 297 270 </listitem> 298 271 </varlistentry> … … 325 298 </listitem> 326 299 </varlistentry> 327 328 <!--329 <varlistentry>330 <term>Ncurses Rollup Patch (&ncurses-date;) - 328 KB:</term>331 <listitem>332 <para><ulink url="ftp://invisible-island.net/ncurses/&ncurses-version;/"/></para>333 <note><para>Ncurses Rollup Patch (&ncurses-date;) may no longer be available at the334 listed location. The site administrators of the master download335 location occasionally remove older versions when new ones are336 released. There is no alternative download location yet.</para></note>337 </listitem>338 </varlistentry>339 -->340 300 341 301 <varlistentry> -
chapter03/patches.xml
r5536f74 r94aa6621 31 31 32 32 <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>40 33 <term>Coreutils Suppress Uptime, Kill, Su Patch - 15 KB:</term> 41 34 <listitem> … … 48 41 <listitem> 49 42 <para><ulink url="&patches-root;&coreutils-uname-patch;"/></para> 50 </listitem>51 </varlistentry>52 53 <varlistentry>54 <term>Diffutils Internationalization Fixes Patch - 18 KB:</term>55 <listitem>56 <para><ulink url="&alexpatches;&diffutils-i18n-patch;"/></para>57 43 </listitem> 58 44 </varlistentry> … … 87 73 88 74 <varlistentry> 89 <term>Grep RedHat Fixes Patch - 56 KB:</term>90 <listitem>91 <para><ulink url="&alexpatches;&grep-fixes-patch;"/></para>92 </listitem>93 </varlistentry>94 95 <varlistentry>96 75 <term>Gzip Security Patch - 2 KB:</term><listitem> 97 76 <para><ulink url="&patches-root;&gzip-security_fix-patch;"/></para> 98 </listitem>99 </varlistentry>100 101 <varlistentry>102 <term>Kbd Backspace/Delete Fix Patch - 1 KB:</term>103 <listitem>104 <para><ulink url="&alexpatches;&kbd-backspace-patch;"/></para>105 77 </listitem> 106 78 </varlistentry> … … 128 100 129 101 <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>137 102 <term>Mktemp Tempfile Patch - 4 KB:</term> 138 103 <listitem> … … 142 107 143 108 <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>151 109 <term>Perl Libc Patch - 1 KB:</term> 152 110 <listitem> 153 111 <para><ulink url="&patches-root;&perl-libc-patch;"/></para> 154 </listitem>155 </varlistentry>156 157 <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 112 </listitem> 162 113 </varlistentry> … … 191 142 192 143 <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 199 200 <varlistentry>201 144 <term>Texinfo Tempfile Fix Patch - 2 KB:</term> 202 145 <listitem> -
chapter05/gawk.xml
r5536f74 r94aa6621 32 32 <screen><userinput>./configure --prefix=/tools</userinput></screen> 33 33 34 <para>Due to a bug in the <command>./configure</command> script, Gawk fails 35 to detect certain aspects of locale support in glibc. This 36 bug leads to, e.g., Gettext testsuite failures. Work around this issue 37 by appending the missing macro definitions to <filename>config.h</filename>:</para> 38 <screen><userinput>cat >>config.h <<"EOF" 39 <literal>#define HAVE_LANGINFO_CODESET 1 40 #define HAVE_LC_MESSAGES 1</literal> 41 EOF</userinput></screen> 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> 42 39 43 40 <para>Compile the package:</para> -
chapter05/glibc.xml
r5536f74 r94aa6621 28 28 <title>Installation of Glibc</title> 29 29 30 <para>The glibc-libidn tarball adds support for internationalized31 (non-ASCII) domain names to Glibc. While this facility is not32 useful in this chapter, the installation commands of33 <xref linkend="chapter-building-system"/>34 glibc (wrongly) check <xref linkend="chapter-temporary-tools"/> glibc for35 this feature. Unpack the tarball from within the Glibc source36 directory in order to avoid this bogus failure:</para>37 38 <screen><userinput>tar jxf ../glibc-libidn-&glibc-version;.tar.bz2</userinput></screen>39 <!-- TODO: DIY Linux modifies the installation check script in Chapte 6 instead -->40 41 30 <para>The Glibc documentation recommends building Glibc outside of the source 42 31 directory in a dedicated build directory:</para> … … 48 37 49 38 <screen><userinput>../glibc-&glibc-version;/configure --prefix=/tools \ 50 --disable-profile --enable-add-ons =nptl,libidn\39 --disable-profile --enable-add-ons \ 51 40 --enable-kernel=2.6.0 --with-binutils=/tools/bin \ 52 41 --without-gd --with-headers=/tools/include \ … … 64 53 65 54 <varlistentry> 66 <term><parameter>--enable-add-ons =nptl,libidn</parameter></term>55 <term><parameter>--enable-add-ons</parameter></term> 67 56 <listitem><para>This tells Glibc to use the NPTL add-on as its threading 68 library , and adds support for non-ASCII domain names.</para></listitem>57 library.</para></listitem> 69 58 </varlistentry> 70 59 -
chapter06/chapter06.xml
r5536f74 r94aa6621 35 35 <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="bison.xml"/> 36 36 <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="gdbm.xml"/>38 37 <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="groff.xml"/> 39 38 <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="sed.xml"/> … … 57 56 <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="gzip.xml"/> 58 57 <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="hotplug.xml"/> 59 <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="man -db.xml"/>58 <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="man.xml"/> 60 59 <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="make.xml"/> 61 60 <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="module-init-tools.xml"/> -
chapter06/coreutils.xml
r5536f74 r94aa6621 41 41 42 42 <screen><userinput>patch -Np1 -i ../&coreutils-suppress-patch;</userinput></screen> 43 44 <para>POSIX requires that programs from Coreutils recognize character45 boundaries correctly even in multibyte locales. The following patch46 fixes 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 for51 the 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 reporting56 new bugs to Coreutils maintainers, please check first if they are reproducible57 without this patch.</para></note>58 59 <para>It has been found that translated messages sometimes overflow a buffer60 in 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>63 43 64 44 <para>Now prepare Coreutils for compilation:</para> -
chapter06/diffutils.xml
r5536f74 r94aa6621 29 29 <sect2 role="installation"> 30 30 <title>Installation of Diffutils</title> 31 32 <para>POSIX requires that the <command>diff</command> command treats whitespace33 characters according to the current locale. The following patch fixes the34 non-complinace issue:</para>35 36 <screen><userinput>patch -Np1 -i ../&diffutils-i18n-patch;</userinput></screen>37 31 38 32 <para>Prepare Diffutils for compilation:</para> -
chapter06/gawk.xml
r5536f74 r94aa6621 29 29 <title>Installation of Gawk</title> 30 30 31 <para> Under some circumstances, Gawk-&gawk-version; attempts to free a chunk32 of memory that was not allocated. This bug is fixed by the following patch:</para>31 <para>Patch Gawk to fix a bug which causes it to segfault when invoked on a 32 non-existent file:</para> 33 33 34 34 <screen><userinput>patch -Np1 -i ../&gawk-segfault-patch;</userinput></screen> … … 38 38 <screen><userinput>./configure --prefix=/usr --libexecdir=/usr/lib</userinput></screen> 39 39 40 <para>Due to a bug in the <command>./configure</command> script, Gawk fails 41 to detect certain aspects of locale support in glibc. This 42 bug leads to, e.g., Gettext testsuite failures. Work around this issue 43 by appending the missing macro definitions to <filename>config.h</filename>:</para> 40 <para>The configure script doesn't detect some functionality correctly. The 41 following commands correct this problem:</para> 44 42 45 <screen><userinput>cat >>config.h <<"EOF" 46 <literal>#define HAVE_LANGINFO_CODESET 1 47 #define HAVE_LC_MESSAGES 1</literal> 48 EOF</userinput></screen> 43 <screen><userinput>echo "#define HAVE_LANGINFO_CODESET 1" >> config.h 44 echo "#define HAVE_LC_MESSAGES 1" >> config.h</userinput></screen> 49 45 50 46 <para>Compile the package:</para> -
chapter06/glibc.xml
r5536f74 r94aa6621 48 48 of achieving a clean build.</para> 49 49 50 <para>The glibc-libidn tarball adds support for internationalized51 domain names (IDN) to Glibc. Note that many programs that52 support IDN require the full libidn library from53 <ulink url="http://josefsson.org/libidn/releases/"/>, not this add-on.54 Unpack the tarball from within the Glibc source55 directory:</para>56 57 <screen><userinput>tar jxf ../glibc-libidn-&glibc-version;.tar.bz2</userinput></screen>58 59 <para>In the vi_VN.TCVN locale, bash enters infinite loop at startup. It is60 unknown whether this is a bash bug or a glibc problem. Disable installation61 of this locale in order to avoid the problem:</para>62 63 <screen><userinput>sed -i '/vi_VN.TCVN/d' localedata/SUPPORTED</userinput></screen>64 65 50 <para>The Glibc documentation recommends building Glibc outside of the source 66 51 directory in a dedicated build directory:</para> … … 72 57 73 58 <screen><userinput>../glibc-&glibc-version;/configure --prefix=/usr \ 74 --disable-profile --enable-add-ons =nptl,libidn\59 --disable-profile --enable-add-ons \ 75 60 --enable-kernel=2.6.0 --libexecdir=/usr/lib/glibc</userinput></screen> 76 61 … … 144 129 145 130 <screen><userinput>make localedata/install-locales</userinput></screen> 146 147 <note><para>It is possible to create and install additional locales such as148 ru_RU.CP1251 by means of the <command>localedef</command> command, as149 explained in the <filename>INSTALL</filename> file in the Glibc source.</para></note>150 <!-- The Live CD patches the localedata/SUPPORTED file instead of running localedef -->151 131 152 132 <para>To save time, an alternative to running the … … 163 143 for the tests to run successfully:</para> 164 144 165 <!-- FIXME: recheck that "make localedata/install_locales" actually does the same -->166 145 <screen role="nodump"><userinput>mkdir -pv /usr/lib/locale 167 146 localedef -i de_DE -f ISO-8859-1 de_DE … … 174 153 localedef -i fr_FR -f ISO-8859-1 fr_FR 175 154 localedef -i fr_FR@euro -f ISO-8859-15 fr_FR@euro 176 localedef -i fr_FR.UTF-8 -f UTF-8 fr_FR177 155 localedef -i it_IT -f ISO-8859-1 it_IT 178 156 localedef -i ja_JP -f EUC-JP ja_JP</userinput></screen> 179 157 180 <para>The first <command>localedef</command> above combines the 181 <filename>/usr/share/i18n/locales/de_DE</filename> charset-independent 182 locale definition with the 183 <filename>/usr/share/i18n/charmaps/ISO-8859-1.gz</filename> charmap definition 184 and appends the result to the 185 <filename>/usr/lib/locale/locale-archive</filename> file.</para> 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—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> 172 186 173 </sect2> 187 174 -
chapter06/grep.xml
r5536f74 r94aa6621 28 28 <sect2 role="installation"> 29 29 <title>Installation of Grep</title> 30 31 <para>The original Grep package has many bugs, especially in the support of32 multibyte locales. RedHat fixed some of them by 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 for37 the test file have to be changed:</para>38 39 <screen><userinput>chmod +x tests/fmbtest.sh</userinput></screen>40 30 41 31 <para>Prepare Grep for compilation:</para> -
chapter06/groff.xml
r5536f74 r94aa6621 29 29 <title>Installation of Groff</title> 30 30 31 <para>Apply the patch that adds the "ascii8" and "nippon" devices to Groff:</para>32 33 <screen><userinput>zcat ../&groff-debian-patch; | patch -Np1</userinput></screen>34 35 <note><para>These devices are used by Man-DB when formatting non-English manual36 pages that are not in the ISO-8859-1 encoding. There is no working patch for37 Groff-1.19.x that adds this functionality at the time of this writing.38 <!-- Details: http://bugs.debian.org/196762 -->39 </para></note>40 41 <para>Many screen fonts don't have Unicode dashes in them. Tell groff to use42 the ASCII hyphen instead:</para>43 44 <screen><userinput>sed -i 's,2010,002D,' font/devutf8/R.proto45 sed -i 's,2212,002D,' font/devutf8/R.proto</userinput></screen>46 47 31 <para>Groff expects the environment variable <envar>PAGE</envar> 48 32 to contain the default paper size. For users in the United States, 49 33 <parameter>PAGE=letter</parameter> is appropriate. Elsewhere, 50 <parameter>PAGE=A4</parameter> may be more suitable. 51 The default paper size can be changed after installation by writing 52 the word "A4" or "letter" to the <filename>/etc/papersize</filename> 53 file.</para> 34 <parameter>PAGE=A4</parameter> may be more suitable.</para> 54 35 55 36 <para>Prepare Groff for compilation:</para> -
chapter06/kbd.xml
r5536f74 r94aa6621 29 29 <title>Installation of Kbd</title> 30 30 31 <para>The behaviour of Backspace and Delete keys is not consistent across the32 keymaps in the Kbd package. The following patch fixes this issue for33 i386 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,38 and the Delete key generates a well-known escape sequence.</para>39 40 31 <para>Patch Kbd to fix a bug in <command>setfont</command> that is triggered 41 32 when compiling with GCC-&gcc-version;:</para> … … 56 47 57 48 <screen><userinput>make install</userinput></screen> 58 59 <note>For some languages, e.g. Belarusian, the Kbd package doesn't provide60 a useful keymap (the stock "by" keymap assumes the ISO-8859-5 encoding,61 while everybody uses CP1251 instead). Users of such languages62 have to download working keymaps separately.</note>63 49 64 50 </sect2> … … 289 275 <term><command>unicode_start</command></term> 290 276 <listitem> 291 <para>Puts the keyboard and console in UNICODE mode. Don't use this program 292 unless your keymap file is in the ISO-8859-1 encoding. For other encodings, 293 this utility produces incorrect results.</para> 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> 294 279 <indexterm zone="ch-system-kbd unicode_start"><primary sortas="b-unicode_start">unicode_start</primary></indexterm> 295 280 </listitem> -
chapter06/man.xml
r5536f74 r94aa6621 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@&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@#&@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
r5536f74 r94aa6621 29 29 <sect2 role="installation"> 30 30 <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 fixed34 and features added. The most important news are .......35 To 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 some41 display bugs were found and fixed upstream. Apply those fixes:</para>42 43 <screen><userinput>patch -Np1 -i ../&ncurses-fixes-patch;</userinput></screen>44 31 45 32 <para>Prepare Ncurses for compilation:</para> 46 33 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>) 56 to be built instead of normal ones 57 (e.g. <filename class="libraryfile">libncurses.so.&ncurses-version;</filename>). 58 Those wide-character libraries are usable in both multibyte and traditional 8-bit 59 locales, while normal libraries work properly only in 8-bit locales. 60 Wide-character and normal libraries are source-compatible, but not 61 binary-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 69 not to be built. Nothing in LFS and BLFS uses this library.</para> 70 </listitem> 71 </varlistentry> 72 --> 73 </variablelist> 34 <screen><userinput>./configure --prefix=/usr --with-shared --without-debug</userinput></screen> 74 35 75 36 <para>Compile the package:</para> … … 89 50 <para>Fix a library that should not be executable:</para> 90 51 91 <screen><userinput>chmod -v 644 /usr/lib/libncurses++ w.a</userinput></screen>52 <screen><userinput>chmod -v 644 /usr/lib/libncurses++.a</userinput></screen> 92 53 93 54 <para>Move the libraries to the <filename class="directory">/lib</filename> directory, 94 55 where they are expected to reside:</para> 95 56 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 99 a 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 104 non-wide-character Ncurses libraries. Trick such applications into linking with 105 wide-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)" >/usr/lib/lib${lib}.so ; \ 110 ln -sfv lib${lib}w.a /usr/lib/lib${lib}.a ; \ 111 done && 112 ln -sfv libncurses++w.a /usr/lib/libncurses++.a</userinput></screen> 113 114 <para>Finally, make sure that really old applications that look for 115 <filename class="libaryfile">-lcurses</filename> at build time are still 116 buildable:</para> 117 118 <screen><userinput>echo "INPUT(-lncursesw)" >/usr/lib/libcursesw.so && 119 ln -sfv libncurses.so /usr/lib/libcurses.so && 120 ln -sfv libncursesw.a /usr/lib/libcursesw.a && 121 ln -sfv libncurses.a /usr/lib/libcurses.a</userinput></screen> 122 123 <note><para>The instructions above don't create non-wide-character Ncurses 124 libraries since nothing in LFS and BLFS would link against them at runtime. 125 If you must have such libraries because of some binary-only application, 126 build them with the following commands:</para> 127 <screen role="nodump"><userinput>make distclean && 128 ./configure --prefix=/usr --with-shared --without-normal \ 129 --without-debug --without-cxx-binding && 130 make sources libs && 131 cp -av lib/lib*.so.5* /usr/lib</userinput></screen> 132 </note> 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> 133 64 </sect2> 134 65 … … 141 72 <seglistitem><seg>captoinfo (link to tic), clear, infocmp, infotocap (link to tic), 142 73 reset (link to tset), tack, tic, toe, tput, and tset</seg> 143 <seg>libcursesw.[a,so] (symlink and linker script to libncursesw.[a,so]), 144 libformw.[a,so], libmenuw.[a,so], 145 libncurses++w.a, libncursesw.[a,so], libpanelw.[a,so] and their 146 non-wide-character counterparts without "w" in the library names.</seg></seglistitem> 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> 147 76 </segmentedlist> 148 77 … … 284 213 285 214 </sect1> 215 -
chapter06/readline.xml
r5536f74 r94aa6621 44 44 <term><parameter>SHLIB_LIBS=-lncurses</parameter></term> 45 45 <listitem><para>This option forces Readline to link against the 46 <filename class="libraryfile">libncurses</filename> 47 (really, <filename class="libraryfile">libncursesw</filename>) 48 library.</para></listitem> 46 <filename class="libraryfile">libncurses</filename> library.</para></listitem> 49 47 </varlistentry> 50 48 </variablelist> -
chapter06/sysklogd.xml
r5536f74 r94aa6621 33 33 34 34 <screen><userinput>patch -Np1 -i ../&sysklogd-fixes-patch;</userinput></screen> 35 36 <para>The following patch makes sysklogd treat bytes in the 0x80--0x9f range37 literally in the messages being logged, instead of replacing them with octal38 codes. Such replacement caused damage to messages in UTF-8 encoding.</para>39 40 <screen><userinput>patch -Np1 -i ../&sysklogd-8bit-patch;</userinput></screen>41 35 42 36 <para>Compile the package:</para> -
chapter06/sysvinit.xml
r5536f74 r94aa6621 85 85 su:S016:once:/sbin/sulogin 86 86 87 1:2345:respawn:/sbin/agetty tty1 960088 2:2345:respawn:/sbin/agetty tty2 960089 3:2345:respawn:/sbin/agetty tty3 960090 4:2345:respawn:/sbin/agetty tty4 960091 5:2345:respawn:/sbin/agetty tty5 960092 6:2345:respawn:/sbin/agetty tty6 960087 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 93 93 94 94 # End /etc/inittab</literal> 95 95 EOF</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 96 107 </sect2> 97 108 -
chapter06/texinfo.xml
r5536f74 r94aa6621 29 29 <sect2 role="installation"> 30 30 <title>Installation of Texinfo</title> 31 32 <para>The <command>info</command> program makes assumptions such as "a string33 occupies the same number of character cells on the screen and bytes in memory"34 and "one can break the string anywhere" that are incorrect in UTF-8 locales.35 While the patch below is not the proper solution, it at least hides the problem36 by 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>39 31 40 32 <para>Texinfo allows local users to overwrite arbitrary files via a symlink -
chapter06/udev.xml
r5536f74 r94aa6621 79 79 <screen><userinput>install -m644 -D -v docs/writing_udev_rules/index.html /usr/share/doc/udev-&udev-version;/index.html</userinput></screen> 80 80 81 <!-- Not for the LiveCD -->82 81 <!-- Edit Me --> 83 82 <para>Run the <command>udevstart</command> program to create our full -
chapter06/vim.xml
r5536f74 r94aa6621 54 54 <varlistentry> 55 55 <term><parameter>--enable-multibyte</parameter></term> 56 <listitem><para>This switch enables support for56 <listitem><para>This optional but highly recommended switch enables support for 57 57 editing files in multibyte character encodings. This is needed if using a 58 58 locale with a multibyte character set. This switch is also helpful to be able to … … 75 75 76 76 <screen><userinput>make install</userinput></screen> 77 78 <para>In UTF-8 locales, the <command>vimtutor</command> program79 tries to convert the tutorials from ISO-8859-1 to UTF-8. Since80 some tutorials are not in ISO-8859-1, the text in them is thus made unreadable.81 If you unpacked the <filename>vim-&vim-version;-lang.tar.gz</filename>82 archive and are going to use a UTF-8 based locale, remove non-ISO-8859-183 tutorials. An English tutorial will be used instead.</para>84 <!-- Removal is used instead of conversion in order for the user to be able to85 painlessly revert his UTF-8 locale choice. -->86 87 <screen><userinput>rm -f /usr/share/vim/vim64/tutor/tutor.{gr,pl,ru,sk}88 rm -f /usr/share/vim/vim64/tutor/tutor.??.*</userinput></screen>89 77 90 78 <para>Many users are used to using <command>vi</command> instead of -
chapter07/bootscripts.xml
r5536f74 r94aa6621 47 47 48 48 <screen><userinput>make install</userinput></screen> 49 50 <para>The <command>console</command> script that comes with51 LFS-Bootscripts-&lfs-bootscripts-version; doesn't support Unicode. Install52 a replacement version:</para>53 54 <screen><userinput>install -m755 ../console /etc/rc.d/init.d</userinput></screen>55 49 56 50 </sect2> -
chapter07/console.xml
r5536f74 r94aa6621 18 18 <para>This section discusses how to configure the <command>console</command> 19 19 bootscript that sets up the keyboard map and the console font. If non-ASCII 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> 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> 24 23 25 24 <para>The <command>console</command> script reads the 26 25 <filename>/etc/sysconfig/console</filename> file for configuration information. 27 26 Decide which keymap and screen font will be used. Various language-specific 28 HOWTO's 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> 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> 34 37 35 <para>The <filename>/etc/sysconfig/console</filename> file should contain lines 36 of the form: VARIABLE="value". The following variables are recognized:</para> 38 <screen><userinput>cat >/etc/sysconfig/console <<"EOF" 39 <literal>KEYMAP="<replaceable>[arguments for loadkeys]</replaceable>" 40 FONT="<replaceable>[arguments for setfont]</replaceable>"</literal> 41 EOF</userinput></screen> 37 42 38 <variablelist> 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> 39 46 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. "es". If this variable is not set, the bootscript will 46 not run the <command>loadkeys</command> program, and the default kernel 47 keymap will be used.</para> 48 </listitem> 49 </varlistentry> 47 <screen role="nodump"><userinput>cat >/etc/sysconfig/console <<"EOF" 48 <literal>KEYMAP="es euro2" 49 FONT="lat9-16 -u iso01"</literal> 50 EOF</userinput></screen> 50 51 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 "euro2".</para> 60 </listitem> 61 </varlistentry> 52 <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> 62 56 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, "-m", and the name of the application character map to load. 69 E.g., in order to load the "lat1-16" font together with the "8859-1" 70 application character map, set this variable to "lat1-16 -m 8859-1". 71 If this variable is not set, the bootscript will not run the 72 <command>setfont</command> program, and the default VGA font will be 73 used together with the default application character map.</para> 74 </listitem> 75 </varlistentry> 76 77 <varlistentry> 78 <term>UNICODE</term> 79 <listitem> 80 <para>Set this variable to "1", "yes" or "true" in order to put the 81 console into UTF-8 mode. This is useful in UTF-8 based locales and 82 harmful otherwise.</para> 83 </listitem> 84 </varlistentry> 85 86 <varlistentry> 87 <term>LEGACY_CHARSET</term> 88 <listitem> 89 <para>For many keyboard layouts, there is no stock Unicode keymap in 90 the Kbd package. The <command>console</command> bootscript will 91 convert an available keymap to UTF-8 on the fly if this variable is 92 set to the encoding of the available non-UTF-8 keymap. Note, however, 93 that dead keys and composing will not work in UTF-8 mode without the 94 special kernel patch.</para> 95 </listitem> 96 </varlistentry> 97 98 <varlistentry> 99 <term>BROKEN_COMPOSE</term> 100 <listitem> 101 <para>Set this to "0" if you are going to apply that kernel patch in 102 Chapter 8. Note that you also have to add the character set expected 103 by composition rules in your keymap to the FONT variable after the 104 "-m" switch.</para> 105 </listitem> 106 </varlistentry> 107 108 </variablelist> 109 110 <para>Support for compiling the keymap directly into the kernel has been 111 removed because there were reports that it leads to incorrect results.</para> 112 113 <para>Some examples:</para> 114 115 <itemizedlist> 116 117 <listitem> 118 <para>For a non-Unicode setup, only the KEYMAP and FONT variables are 119 generally needed. E.g., for a Polish setup, one would use:</para> 120 121 <screen role="nodump"><userinput>cat > /etc/sysconfig/console << "EOF" 122 <literal># Begin /etc/sysconfig/console 123 124 KEYMAP="pl2" 125 FONT="lat2a-16 -m 8859-2" 126 127 # End /etc/sysconfig/console</literal> 128 EOF</userinput></screen> 129 </listitem> 130 131 <listitem> 132 <para>As mentioned above, it is sometimes necessary to adjust a 133 stock keymap slightly. The following example adds the Euro symbol to the 134 German keymap:</para> 135 136 <screen role="nodump"><userinput>cat > /etc/sysconfig/console << "EOF" 137 <literal># Begin /etc/sysconfig/console 138 139 KEYMAP="de-latin1" 140 KEYMAP_CORRECTIONS="euro2" 141 FONT="lat0-16 -m 8859-15" 142 143 # End /etc/sysconfig/console</literal> 144 EOF</userinput></screen> 145 </listitem> 146 147 <listitem> 148 <para>Here is a Unicode-enabled example for Bulgarian, where a stock 149 UTF-8 keymap exists and defines no dead keys or composition rules:</para> 150 151 <screen role="nodump"><userinput>cat > /etc/sysconfig/console << "EOF" 152 <literal># Begin /etc/sysconfig/console 153 154 UNICODE="1" 155 KEYMAP="bg_bds-utf8" 156 FONT="LatArCyrHeb-16" 157 158 # End /etc/sysconfig/console</literal> 159 EOF</userinput></screen> 160 </listitem> 161 162 <listitem> 163 <para>Due to the use of a 512-glyph LatArCyrHeb-16 font in the previous 164 example, bright colors are no longer available on the Linux console unless 165 a framebuffer is used. If one wants to have bright colors without 166 framebuffer and can live without characters not belonging to his language, 167 it is still possible to use a language-specific 256-glyph font, as 168 illustrated below. This would, however, also break single quotes in manual 169 pages.</para> 170 171 <!-- And even with the LatArCyrHeb-16 font, copying-and-pasting produces 172 non-ASCII variants of opening and closing single quote instead of ` and '. 173 Maybe another sed has to be added to groff instructions that will remove 174 both issues. --> 175 176 <screen role="nodump"><userinput>cat > /etc/sysconfig/console << "EOF" 177 <literal># Begin /etc/sysconfig/console 178 179 UNICODE="1" 180 KEYMAP="bg_bds-utf8" 181 FONT="cyr-sun16" 182 183 # End /etc/sysconfig/console</literal> 184 EOF</userinput></screen> 185 </listitem> 186 187 <listitem> 188 <para>The following example illustrates keymap autoconversion from 189 ISO-8859-15 to UTF-8 and enabling dead keys in Unicode mode:</para> 190 191 <screen role="nodump"><userinput>cat > /etc/sysconfig/console << "EOF" 192 <literal># Begin /etc/sysconfig/console 193 194 UNICODE="1" 195 KEYMAP="de-latin1" 196 KEYMAP_CORRECTIONS="euro2" 197 LEGACY_CHARSET="iso-8859-15" 198 BROKEN_COMPOSE="0" 199 FONT="LatArCyrHeb-16 -m 8859-15" 200 201 # End /etc/sysconfig/console</literal> 202 EOF</userinput></screen> 203 </listitem> 204 205 <listitem> 206 <para>For Chinese, Japanese, Korean and some other languages, the Linux 207 console cannot be configured to display the needed characters. Users 208 who need such languages should install the X Window System, fonts that 209 cover the necessary character ranges, and the proper input Method (e.g. 210 SCIM, it supports a wide variety of languages).</para> 211 </listitem> 212 213 </itemizedlist> 214 215 <!-- Added because folks keep posting their console file with X questions 216 to blfs-support list --> 217 <note> 218 <para>The <filename>/etc/sysconfig/console</filename> file only controls 219 Linux text console localization. It has nothing to do with setting the proper 220 keyboard layout and terminal fonts in X Window System.</para> 57 <screen role="nodump"><userinput>FONT="lat1-16"</userinput></screen> 221 58 </note> 222 59 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 && cat > /etc/kbd/bs-sends-del <<"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 >>/etc/sysconfig/console <<"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 223 112 </sect1> -
chapter07/profile.xml
r5536f74 r94aa6621 70 70 <replaceable>[CC]</replaceable> with the two-letter code for the appropriate 71 71 country (e.g., <quote>GB</quote>). <replaceable>[charmap]</replaceable> should 72 be replaced with the canonical charmap for your chosen locale. Optional 73 modifiers such as <quote>@euro</quote> may also be present.</para> 72 be replaced with the canonical charmap for your chosen locale.</para> 74 73 75 74 <para>The list of all locales supported by Glibc can be obtained by running … … 78 77 <screen role="nodump"><userinput>locale -a</userinput></screen> 79 78 80 <para> Charmaps can have a number of aliases, e.g. <quote>ISO-8859-1</quote>79 <para>Locales can have a number of synonyms, e.g. <quote>ISO-8859-1</quote> 81 80 is also referred to as <quote>iso8859-1</quote> and <quote>iso88591</quote>. 82 Some applications cannot handle the various synonyms correctly (e.g. require 83 that "UTF-8" is written as "UTF-8", not "utf8"), so it is safest in most 84 cases to choose the canonical name for a particular locale. To determine 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 85 83 the canonical name, run the following command, where <replaceable>[locale 86 84 name]</replaceable> is the output given by <command>locale -a</command> for … … 118 116 Glibc.</para> 119 117 120 <!-- FIXME: the xlib example will became obsolete real soon -->121 118 <para>Some packages beyond LFS may also lack support for your chosen locale. One 122 119 example is the X library (part of the X Window System), which outputs the … … 143 140 <literal># Begin /etc/profile 144 141 145 export LANG=<replaceable>[ll]</replaceable>_<replaceable>[CC]</replaceable>.<replaceable>[charmap]</replaceable> <replaceable>[@modifiers]</replaceable>142 export LANG=<replaceable>[ll]</replaceable>_<replaceable>[CC]</replaceable>.<replaceable>[charmap]</replaceable> 146 143 export INPUTRC=/etc/inputrc 147 144 … … 149 146 EOF</userinput></screen> 150 147 151 <para>The <quote>C</quote> (default) and <quote>en_US</quote> (the recommended152 one for United States English users) locales are different. <quote>C</quote>153 uses the US-ASCII 7-bit character set, and treats bytes with the high bit set154 as invalid characters. That's why, e.g., the <command>ls</command> command155 substitutes them with question marks in that locale. Also, an attempt to send156 mail with such characters from Mutt or Pine results in non-RFC-conforming157 messages being set (the charset in the outgoing mail is indicatsed as "unknown158 8-bit"). So you can use the <quote>C</quote> locale only if you are sure that159 you will never need 8-bit characters.</para>160 161 <para>UTF-8 based locales are not supported well by many programs. E.g., the162 <command>watch</command> program displays only ASCII characters in UTF-8163 locales and has no such restriction in traditional 8-bit locales like en_US.164 Without patches and/or installing software beyond BLFS, in UTF-8 based locales165 you will not be able to do such basic tasks as printing plain-text files from166 the command line, recording Windows-readable CDs with filenames containing167 non-ASCII characters, viewing ID3v1 tags in MP3 files and so on. It is also168 impossible (without damaging non-ASCII characters) to connect using ssh from169 the system using a UTF-8 based locale to a host that still uses a traditional170 8-bit locale, and vice versa. In short, use UTF-8 only if you are going to171 use KDE or GNOME and never open the terminal, or if you are going to tolerate172 bugs.</para>173 <!-- All abovementioned problems except "watch" have a known fix beyond BLFS -->174 175 148 <note> 176 <para>Bug reports reproducible only in UTF-8 locales and for which there 177 is no patch or other fix mentioned in the report, will be closed immediately, 178 without investigation, with the "WONTFIX" resolution and a "don't use this 179 program or revert to non-UTF-8 locale" comment. Patches that have ill 180 effects in non-UTF-8 locales (other than replacement of translated program 181 messages with English ones) will be rejected.</para> 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> 182 151 </note> 183 152 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> 160 184 161 </sect1> -
chapter08/fstab.xml
r5536f74 r94aa6621 66 66 <filename>/etc/sysconfig/modules</filename>.</para> 67 67 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 for70 non-ASCII characters in file names to be interpreted properly. The value71 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 the73 relevant character set definition (found under File systems ->74 Native Language Support) has been compiled into the kernel75 or built as a module. The <quote>codepage</quote> option is also needed for76 vfat and smbfs filesystems. It77 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 the79 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 values92 of the <quote>iocharset</quote> option result in wrong display of filenames in93 UTF-8 locales.</para></note>94 95 <para>It is also possible to specify default codepage and iocharset values for96 some filesystems during kernel configuration, the relevant parameters97 are named98 <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), and101 <quote>Default iocharset for FAT</quote> (CONFIG_FAT_DEFAULT_IOCHARSET).102 There is no way to specify these settings for the103 ntfs filesystem at kernel compilation time.</para>104 <!-- Personally, I find it more foolproof to always specify the iocharset and105 codepage in /etc/fstab for MS-based filesystems - Alexander E. Patrakov -->106 107 68 </sect1> -
chapter08/kernel.xml
r5536f74 r94aa6621 49 49 configures the kernel.</para> 50 50 51 <para>By default, Linux kernel generates wrong sequences of bytes when52 dead keys are used in UTF-8 keyboard mode. Also, one cannot copy and paste53 non-ASCII characters when UTF-8 mode is aciive. Fix these issues with the54 patch:</para>55 56 <screen><userinput>patch -Np1 -i ../&linux-utf8-patch;</userinput></screen>57 58 51 <para>Prepare for compilation by running the following command:</para> 59 52 … … 65 58 un-tarring.</para> 66 59 67 <!-- Support for compiling a keymap into the kernel is deliberately removed --> 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> > \ 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> 68 68 69 69 <para>Configure the kernel via a menu-driven interface. BLFS has some -
general.ent
r5536f74 r94aa6621 23 23 <!ENTITY kernel "http://www.kernel.org/pub/"> 24 24 <!ENTITY sourceforge "http://prdownloads.sourceforge.net/"> 25 <!ENTITY alexpatches "&lfs-root;~alexander/patches/">26 25 27 26 <!ENTITY % patches-entities SYSTEM "patches.ent"> … … 46 45 <!ENTITY gawk-version "3.1.5"> 47 46 <!ENTITY gcc-version "4.0.2"> 48 <!ENTITY gdbm-version "1.8.3">49 47 <!ENTITY gettext-version "0.14.5"> 50 48 <!ENTITY glibc-version "2.3.6"> 51 49 <!ENTITY grep-version "2.5.1a"> 52 <!ENTITY groff-version "1.18.1.1"> 53 <!ENTITY groff-patchlevel "10"> 50 <!ENTITY groff-version "1.19.2"> 54 51 <!ENTITY grub-version "0.97"> 55 52 <!ENTITY gzip-version "1.3.5"> … … 67 64 <!ENTITY m4-version "1.4.4"> 68 65 <!ENTITY make-version "3.80"> 69 <!ENTITY man- db-version "2.4.3">66 <!ENTITY man-version "1.6b"> 70 67 <!ENTITY man-pages-version "2.17"> 71 68 <!ENTITY mktemp-version "1.5"> 72 69 <!ENTITY module-init-tools-version "3.2.2"> 73 70 <!ENTITY ncurses-version "5.5"> 74 <!-- <!ENTITY ncurses-date "20050319"> -->75 71 <!ENTITY patch-version "2.5.4"> 76 72 <!ENTITY perl-version "5.8.7"> -
patches.ent
r5536f74 r94aa6621 2 2 3 3 <!-- Start of Common Patches --> 4 <!ENTITY bzip2-docs-patch "bzip2-&bzip2-version;-install_docs-1.patch"> 4 5 <!ENTITY bzip2-bzgrep-patch "bzip2-&bzip2-version;-bzgrep_security-1.patch"> 5 <!ENTITY bzip2-docs-patch "bzip2-&bzip2-version;-install_docs-1.patch">6 6 7 <!ENTITY coreutils-i18n-patch "coreutils-&coreutils-version;-i18n-1.patch">8 7 <!ENTITY coreutils-suppress-patch "coreutils-&coreutils-version;-suppress_uptime_kill_su-1.patch"> 9 8 <!ENTITY coreutils-uname-patch "coreutils-&coreutils-version;-uname-1.patch"> 10 11 <!ENTITY diffutils-i18n-patch "diffutils-&diffutils-version;-i18n-1.patch">12 9 13 10 <!ENTITY expect-spawn-patch "expect-&expect-version;-spawn-1.patch"> … … 19 16 <!ENTITY gcc-specs-patch "gcc-&gcc-version;-specs-1.patch"> 20 17 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 25 18 <!ENTITY gzip-security_fix-patch "gzip-&gzip-version;-security_fixes-1.patch"> 26 19 27 <!ENTITY kbd-backspace-patch "kbd-&kbd-version;-backspace-1.patch">28 20 <!ENTITY kbd-gcc4_fixes-patch "kbd-&kbd-version;-gcc4_fixes-1.patch"> 29 21 … … 31 23 <!ENTITY inetutils-man_pages-patch "inetutils-&inetutils-version;-no_server_man_pages-1.patch"> 32 24 33 <!ENTITY linux-utf8-patch "linux-&linux-version;-utf8_input-2.patch">34 35 25 <!ENTITY mktemp-tempfile-patch "mktemp-&mktemp-version;-add_tempfile-3.patch"> 36 26 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 40 27 <!ENTITY perl-libc-patch "perl-&perl-version;-libc-1.patch"> 41 42 <!ENTITY sysklogd-8bit-patch "sysklogd-&sysklogd-version;-8bit-1.patch">43 28 44 29 <!ENTITY shadow-configure-patch "shadow-&shadow-version;-configure_fix-1.patch"> … … 46 31 <!ENTITY sysklogd-fixes-patch "sysklogd-&sysklogd-version;-fixes-1.patch"> 47 32 33 <!ENTITY tar-sparse_fix-patch "tar-&tar-version;-sparse_fix-1.patch"> 48 34 <!ENTITY tar-gcc4_fix-patch "tar-&tar-version;-gcc4_fix_tests-1.patch"> 49 <!ENTITY tar-sparse_fix-patch "tar-&tar-version;-sparse_fix-1.patch">50 35 51 <!ENTITY texinfo-multibyte-patch "texinfo-&texinfo-version;-multibyte-2.patch"> 52 <!ENTITY texinfo-tempfile_fix-patch "texinfo-&texinfo-version;-tempfile_fix-1.patch"> 36 <!ENTITY texinfo-tempfile_fix-patch "texinfo-&texinfo-version;-tempfile_fix-2.patch"> 53 37 54 38 <!ENTITY util-linux-cramfs-patch "util-linux-&util-linux-version;-cramfs-1.patch">
Note:
See TracChangeset
for help on using the changeset viewer.