- Timestamp:
- 01/06/2006 02:59:05 AM (18 years ago)
- Children:
- e1ca33a
- Parents:
- 1714f1a
- Location:
- chapter06
- Files:
-
- 2 added
- 25 edited
Legend:
- Unmodified
- Added
- Removed
-
chapter06/chapter06.xml
r1714f1a r46a2e9c 41 41 <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="bzip2.xml"/> 42 42 <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="diffutils.xml"/> 43 <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="db.xml"/> 43 44 <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="e2fsprogs.xml"/> 44 45 <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="file.xml"/> … … 55 56 <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="libtool.xml"/> 56 57 <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="make.xml"/> 57 <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="man .xml"/>58 <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="man-db.xml"/> 58 59 <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="mktemp.xml"/> 59 60 <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="module-init-tools.xml"/> -
chapter06/coreutils.xml
r1714f1a r46a2e9c 41 41 42 42 <screen><userinput>patch -Np1 -i ../&coreutils-suppress-patch;</userinput></screen> 43 44 <para>POSIX requires that programs from Coreutils recognize character 45 boundaries correctly even in multibyte locales. The following patch 46 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 for 51 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 reporting 56 new bugs to Coreutils maintainers, please check first if they are reproducible 57 without this patch.</para></note> 58 59 <para>It has been found that translated messages sometimes overflow a buffer 60 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> 43 63 44 64 <para>Now prepare Coreutils for compilation:</para> -
chapter06/diffutils.xml
r1714f1a r46a2e9c 29 29 <sect2 role="installation"> 30 30 <title>Installation of Diffutils</title> 31 32 <para>POSIX requires the <command>diff</command> command to treat whitespace 33 characters according to the current locale. The following patch fixes the 34 non-compliance issue:</para> 35 36 <screen><userinput>patch -Np1 -i ../&diffutils-i18n-patch;</userinput></screen> 31 37 32 38 <para>Prepare Diffutils for compilation:</para> -
chapter06/gawk.xml
r1714f1a r46a2e9c 29 29 <title>Installation of Gawk</title> 30 30 31 <para> Patch Gawk to fix a bug which causes it to segfault when invoked on a32 non-existent file:</para>31 <para>Under some circumstances, Gawk-&gawk-version; attempts to free a chunk 32 of memory that was not allocated. This bug is fixed by the following patch:</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>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 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> 42 44 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 >>config.h <<"EOF" 46 <literal>#define HAVE_LANGINFO_CODESET 1 47 #define HAVE_LC_MESSAGES 1</literal> 48 EOF</userinput></screen> 45 49 46 50 <para>Compile the package:</para> -
chapter06/glibc.xml
r1714f1a r46a2e9c 48 48 of achieving a clean build.</para> 49 49 50 <para>The glibc-libidn tarball adds support for internationalized 51 domain names (IDN) to Glibc. Many programs that 52 support IDN require the full libidn library (see 53 <ulink url="&blfs-root;view/svn/general/libidn.html"/>), 54 not this add-on. 55 Unpack the tarball from within the Glibc source 56 directory:</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 61 at startup. It is unknown whether this is a <command>bash</command> bug or a 62 Glibc problem. Disable installation of this locale in order to avoid the 63 problem:</para> 64 65 <screen><userinput>sed -i '/vi_VN.TCVN/d' localedata/SUPPORTED</userinput></screen> 66 50 67 <para>The Glibc documentation recommends building Glibc outside of the source 51 68 directory in a dedicated build directory:</para> … … 122 139 <para>Install the package:</para> 123 140 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 150 of Glibc installation. Since the toolchain has not been adjusted yet for 151 the new Glibc, this script would test Glibc installed in 152 <filename class="directory">/tools</filename> and fail because the 153 libidn add-on has not been installed there.</para></listitem> 154 </varlistentry> 155 </variablelist> 125 156 126 157 <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 Glibc is 134 aware of) is to install only those locales that are wanted and needed. 135 This can be achieved by using the <command>localedef</command> 136 command. Information on this command is located in the 137 <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> 158 language were not installed by the above command. None of the 159 locales are required, but, if some of them are misssing, testuites of the 160 future packages would skip important testcases.</para> 161 162 <para>Individual locales can be installed using the <command>localedef</command> 163 program. E.g., the first <command>localedef</command> command below combines 164 the <filename>/usr/share/i18n/locales/de_DE</filename> charset-independent 165 locale definition with the 166 <filename>/usr/share/i18n/charmaps/ISO-8859-1.gz</filename> charmap definition 167 and appends the result to the 168 <filename>/usr/lib/locale/locale-archive</filename> file. The following 169 instructions will install the minimum set of locales necessary 170 for the optimal coverage of tests:</para> 144 171 145 172 <screen role="nodump"><userinput>mkdir -pv /usr/lib/locale … … 153 180 localedef -i fr_FR -f ISO-8859-1 fr_FR 154 181 localedef -i fr_FR@euro -f ISO-8859-15 fr_FR@euro 182 localedef -i fr_FR.UTF-8 -f UTF-8 fr_FR 155 183 localedef -i it_IT -f ISO-8859-1 it_IT 156 184 localedef -i ja_JP -f EUC-JP ja_JP</userinput></screen> 157 185 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. This applies to the 167 ja_JP and fa_IR locales as well—they have been installed only for 168 GCC and Gettext tests to pass, and the <command>watch</command> program 169 (part of the Procps package) does not work properly in them. Various 170 attempts to circumvent these restrictions are documented in 171 internationalization-related hints.</para> 186 <para>In addition, install the locale for your own country, language and 187 character set.</para> 188 189 <para>Alternatively, install all locales 190 listed in the <filename>glibc-&glibc-version;/localedata/SUPPORTED</filename> 191 file (it includes every locale listed above and many more) 192 at 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 197 install locales not listed in the 198 <filename>glibc-&glibc-version;/localedata/SUPPORTED</filename> file 199 in the unlikely case if you need them.</para> 200 <!-- The Live CD patches the localedata/SUPPORTED file instead of 201 running localedef, the results are equivalent --> 172 202 173 203 </sect2> … … 278 308 rpcinfo, sln, sprof, tzselect, xtrace, zdump, and zic</seg> 279 309 <seg>ld.so, libBrokenLocale.[a,so], 280 libSegFault.so, libanl.[a,so], libbsd-compat.a, libc.[a,so], 310 libSegFault.so, libanl.[a,so], libbsd-compat.a, libc.[a,so], libcidn.so, 281 311 libcrypt.[a,so], libdl.[a,so], libg.a, libieee.a, libm.[a,so], libmcheck.a, 282 312 libmemusage.so, libnsl.a, libnss_compat.so, libnss_dns.so, libnss_files.so, … … 367 397 <term><command>locale</command></term> 368 398 <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> 371 400 <indexterm zone="ch-system-glibc locale"><primary sortas="b-locale">locale</primary></indexterm> 372 401 </listitem> … … 500 529 <term><filename class="libraryfile">libBrokenLocale</filename></term> 501 530 <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 534 information</para> 503 535 <indexterm zone="ch-system-glibc libBrokenLocale"><primary sortas="c-libBrokenLocale">libBrokenLocale</primary></indexterm> 504 536 </listitem> … … 508 540 <term><filename class="libraryfile">libSegFault</filename></term> 509 541 <listitem> 510 <para>The segmentation fault signal handler</para> 542 <para>The segmentation fault signal handler, used by 543 <command>catchsegv</command></para> 511 544 <indexterm zone="ch-system-glibc libSegFault"><primary sortas="c-libSegFault">libSegFault</primary></indexterm> 512 545 </listitem> … … 538 571 </varlistentry> 539 572 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 577 the <function>getaddrinfo()</function> function</para> 578 <indexterm zone="ch-system-glibc libcrypt"><primary sortas="c-libcrypt">libcrypt</primary></indexterm> 579 </listitem> 580 </varlistentry> 581 540 582 <varlistentry id="libcrypt"> 541 583 <term><filename class="libraryfile">libcrypt</filename></term> … … 557 599 <term><filename class="libraryfile">libg</filename></term> 558 600 <listitem> 559 <para>A runtime library for <command>g++</command></para> 601 <para>Dummy library containing no functions. Previously was a runtime library 602 for <command>g++</command></para> 560 603 <indexterm zone="ch-system-glibc libg"><primary sortas="c-libg">libg</primary></indexterm> 561 604 </listitem> … … 565 608 <term><filename class="libraryfile">libieee</filename></term> 566 609 <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 611 defined by the Institute of Electrical and Electronic Engineers (IEEE). 612 The default is POSIX.1 error handling</para> 568 613 <indexterm zone="ch-system-glibc libieee"><primary sortas="c-libieee">libieee</primary></indexterm> 569 614 </listitem> … … 581 626 <term><filename class="libraryfile">libmcheck</filename></term> 582 627 <listitem> 583 <para> Contains code run at boot</para>628 <para>Turns on memory allocation checking when linked to</para> 584 629 <indexterm zone="ch-system-glibc libmcheck"><primary sortas="c-libmcheck">libmcheck</primary></indexterm> 585 630 </listitem> -
chapter06/grep.xml
r1714f1a r46a2e9c 28 28 <sect2 role="installation"> 29 29 <title>Installation of Grep</title> 30 31 <para>The current Grep package has many bugs, especially in the support of 32 multibyte 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 37 the test file have to be changed:</para> 38 39 <screen><userinput>chmod +x tests/fmbtest.sh</userinput></screen> 30 40 31 41 <para>Prepare Grep for compilation:</para> -
chapter06/groff.xml
r1714f1a r46a2e9c 29 29 <title>Installation of Groff</title> 30 30 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 37 pages that are not in the ISO-8859-1 encoding. Currently, there is no working 38 patch 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. 43 Tell 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 31 49 <para>Groff expects the environment variable <envar>PAGE</envar> 32 50 to contain the default paper size. For users in the United States, 33 51 <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. 53 While the default paper size is configured during compilation, it can be 54 overridden later by echoing either <quote>A4</quote> or <quote>letter</quote> 55 to the <filename>/etc/papersize</filename> file.</para> 35 56 36 57 <para>Prepare Groff for compilation:</para> 37 58 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> 39 60 40 61 <para>Compile the package:</para> -
chapter06/iproute2.xml
r1714f1a r46a2e9c 26 26 <segtitle>&dependencies;</segtitle> 27 27 <seglistitem> 28 <seg> GCC, Glibc, Make, Linux-Headers, and Sed</seg>28 <seg>DB, GCC, Glibc, Make, and Linux-Headers</seg> 29 29 </seglistitem> 30 30 </segmentedlist> … … 32 32 <sect2 role="installation"> 33 33 <title>Installation of IPRoute2</title> 34 <para>The <command>arpd</command> binary included in this package is35 dependent on Berkeley DB. Because <command>arpd</command> is not a very36 common requirement on a base Linux system, remove the dependency on37 Berkeley DB by applying the <command>sed</command> command below. If38 the <command>arpd</command> binary is needed, instructions for39 compiling Berkeley DB can be found in the BLFS Book at <ulink40 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>44 34 45 35 <para>Prepare IPRoute2 for compilation:</para> … … 69 59 70 60 <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 71 71 </sect2> 72 72 … … 76 76 <segtitle>Installed programs</segtitle> 77 77 <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. 80 81 </seg> 81 82 </seglistitem> … … 85 86 <?dbfo list-presentation="list"?> 86 87 <?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 87 102 <varlistentry id="ctstat"> 88 103 <term> … … 293 308 <listitem> 294 309 <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) 296 311 implementations 297 312 </para> -
chapter06/kbd.xml
r1714f1a r46a2e9c 29 29 <title>Installation of Kbd</title> 30 30 31 <para>The behaviour of the Backspace and Delete keys is not consistent across the 32 keymaps in the Kbd package. The following patch fixes this issue for 33 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 31 40 <para>Patch Kbd to fix a bug in <command>setfont</command> that is triggered 32 41 when compiling with GCC-&gcc-version;:</para> … … 47 56 48 57 <screen><userinput>make install</userinput></screen> 58 59 <note><para>For some languages (e.g., Belarusian) the Kbd package doesn't 60 provide a useful keymap (the stock <quote>by</quote> keymap assumes the 61 ISO-8859-5 encoding, while everybody uses CP1251 instead). Users of such 62 languages have to download working keymaps separately.</para></note> 49 63 50 64 </sect2> … … 275 289 <term><command>unicode_start</command></term> 276 290 <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 292 unless your keymap file is in the ISO-8859-1 encoding. For other encodings, 293 this utility produces incorrect results.</para> 279 294 <indexterm zone="ch-system-kbd unicode_start"><primary sortas="b-unicode_start">unicode_start</primary></indexterm> 280 295 </listitem> -
chapter06/libtool.xml
r1714f1a r46a2e9c 18 18 <segtitle>&buildtime;</segtitle> 19 19 <segtitle>&diskspace;</segtitle> 20 <seglistitem><seg>1. 5 SBU</seg><seg>19.7MB</seg></seglistitem>20 <seglistitem><seg>1.8 SBU</seg><seg>19.0 MB</seg></seglistitem> 21 21 </segmentedlist> 22 22 -
chapter06/linux-libc-headers.xml
r1714f1a r46a2e9c 42 42 <para>Install the header files:</para> 43 43 44 <screen><userinput>cp -Rv include/asm-i386 /usr/include/asm 44 <screen><userinput>install -d /usr/include/asm 45 cp -Rv include/asm-i386/* /usr/include/asm 45 46 cp -Rv include/linux /usr/include</userinput></screen> 46 47 -
chapter06/man-pages.xml
r1714f1a r46a2e9c 16 16 <segtitle>&buildtime;</segtitle> 17 17 <segtitle>&diskspace;</segtitle> 18 <seglistitem><seg>0.1 SBU</seg><seg>18. 4MB</seg></seglistitem>18 <seglistitem><seg>0.1 SBU</seg><seg>18.6 MB</seg></seglistitem> 19 19 </segmentedlist> 20 20 -
chapter06/man.xml
r1714f1a r46a2e9c 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, Bzip2, Coreutils, Diffutils, Gawk, GCC,24 Glibc, Grep, Gzip, Less, 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 the34 <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 the40 <quote>MANPATH /usr/man</quote> line in the41 <filename>man.conf</filename> file to prevent redundant results when42 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 the56 <filename>man.conf</filename> configuration file in the <filename57 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 text72 attributes such as color and bold, you can disable Select Graphic Rendition73 (SGR) escape sequences by editing the <filename>man.conf</filename> file and74 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 better76 to selectively add the <envar>GROFF_NO_SGR</envar> environment variable for the77 terminals that do not support SGR.</para></note>78 79 <para>If the character set of the locale uses 8-bit characters, search for the80 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 not86 the character set of the locale. The reason is that, according to the87 specification, <command>groff</command> has no means of typesetting88 characters outside International Organization for Standards89 (ISO) 8859-1 without some strange escape codes. When formatting man90 pages, <command>groff</command> thinks that they are in the ISO 8859-191 encoding and this <parameter>-Tlatin1</parameter> switch tells92 <command>groff</command> to use the same encoding for output. Since93 <command>groff</command> does no recoding of input characters, the94 formatted result is really in the same encoding as input, and therefore95 it is usable as the input for a pager.</para>96 97 <para>This does not solve the problem of a non-working98 <command>man2dvi</command> program for localized man pages in99 non-ISO 8859-1 locales. Also, it does not work with multibyte100 character sets. The first problem does not currently have a solution.101 The second issue is not of concern because the LFS installation does102 not support multibyte character sets.</para>103 104 <para>Additional information with regards to the compression of105 man and info pages can be found in the BLFS book at106 <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 descriptions127 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 pages136 in the <envar>MANPATH</envar> and writes the name and a short description in the137 <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 descriptions170 of system commands that contain the given keyword as a separate171 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/mktemp.xml
r1714f1a r46a2e9c 47 47 <listitem><para>This causes the <command>mktemp</command> program to 48 48 use the <emphasis>mkstemp</emphasis> and <emphasis>mkdtemp</emphasis> 49 functions from the system C library.</para></listitem> 49 functions from the system C library instead of its own implementation of them. 50 </para></listitem> 50 51 </varlistentry> 51 52 </variablelist> -
chapter06/module-init-tools.xml
r1714f1a r46a2e9c 40 40 <para>Prepare Module-Init-Tools for compilation:</para> 41 41 42 <screen><userinput>./configure --prefix="" --mandir=/usr/share/man \ 43 --enable-zlib</userinput></screen> 44 45 <para>The meaning of the configure options:</para> 46 47 <variablelist> 48 <varlistentry> 49 <term><parameter>--mandir=/usr/share/man</parameter></term> 50 <listitem><para>This ensures the man pages are installed in the correct 51 location.</para></listitem> 52 </varlistentry> 53 <varlistentry> 54 <term><parameter>--enable-zlib</parameter></term> 55 <listitem><para>This allows the Module-Init-Tools package to handle compressed 56 kernel modules.</para></listitem> 57 </varlistentry> 58 </variablelist> 42 <screen><userinput>./configure --prefix=/ --enable-zlib</userinput></screen> 59 43 60 44 <para>Compile the package:</para> -
chapter06/ncurses.xml
r1714f1a r46a2e9c 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 fixed 34 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 some 41 display bugs were found and fixed upstream. Apply those fixes:</para> 42 43 <screen><userinput>patch -Np1 -i ../&ncurses-fixes-patch;</userinput></screen> 31 44 32 45 <para>Prepare Ncurses for compilation:</para> 33 46 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>) 56 to be built instead of normal ones 57 (e.g., <filename class="libraryfile">libncurses.so.&ncurses-version;</filename>). 58 These 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> 35 74 36 75 <para>Compile the package:</para> … … 50 89 <para>Fix a library that should not be executable:</para> 51 90 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> 53 92 54 93 <para>Move the libraries to the <filename class="directory">/lib</filename> directory, 55 94 where they are expected to reside:</para> 56 95 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 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 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 no package installed by compiling from sources would link 125 against them at runtime. 126 If you must have such libraries because of some binary-only application, 127 build them with the following commands:</para> 128 <screen role="nodump"><userinput>make distclean && 129 ./configure --prefix=/usr --with-shared --without-normal \ 130 --without-debug --without-cxx-binding && 131 make sources libs && 132 cp -av lib/lib*.so.5* /usr/lib</userinput></screen> 133 </note> 64 134 </sect2> 65 135 … … 72 142 <seglistitem><seg>captoinfo (link to tic), clear, infocmp, infotocap (link to tic), 73 143 reset (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]), 145 libformw.[a,so], libmenuw.[a,so], 146 libncurses++w.a, libncursesw.[a,so], libpanelw.[a,so] and their 147 non-wide-character counterparts without "w" in the library names.</seg></seglistitem> 76 148 </segmentedlist> 77 149 … … 213 285 214 286 </sect1> 215 -
chapter06/perl.xml
r1714f1a r46a2e9c 21 21 <segmentedlist> 22 22 <segtitle>&dependencies;</segtitle> 23 <seglistitem><seg>Bash, Binutils, Coreutils, D iffutils,23 <seglistitem><seg>Bash, Binutils, Coreutils, DB, Diffutils, 24 24 Gawk, GCC, Glibc, Grep, Iana-Etc, Make, Patch, and Sed</seg></seglistitem> 25 25 </segmentedlist> -
chapter06/psmisc.xml
r1714f1a r46a2e9c 104 104 </varlistentry> 105 105 106 <varlistentry id="oldfuser"> 107 <term><command>oldfuser</command></term> 108 <listitem> 109 <para>Reports the Process IDs (PIDs) of processes that use the given files or file systems</para> 110 <indexterm zone="ch-system-psmisc oldfuser"><primary sortas="b-oldfuser">oldfuser</primary></indexterm> 111 </listitem> 112 </varlistentry> 113 106 114 <varlistentry id="pstree"> 107 115 <term><command>pstree</command></term> -
chapter06/readline.xml
r1714f1a r46a2e9c 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> library.</para></listitem> 46 <filename class="libraryfile">libncurses</filename> 47 (really, <filename class="libraryfile">libncursesw</filename>) 48 library.</para></listitem> 47 49 </varlistentry> 48 50 </variablelist> -
chapter06/shadow.xml
r1714f1a r46a2e9c 48 48 <screen><userinput>sed -i 's/groups$(EXEEXT) //' src/Makefile 49 49 find 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 52 cannot format them properly:</para> 53 54 <screen><userinput>sed -i -e 's/ ko//' -e 's/ zh_CN zh_TW//' man/Makefile</userinput></screen> 50 55 51 56 <para>Compile the package:</para> -
chapter06/sysklogd.xml
r1714f1a r46a2e9c 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 range 37 literally in the messages being logged, instead of replacing them with octal 38 codes. Unpatched sysklogd would damage messages in the UTF-8 encoding.</para> 39 40 <screen><userinput>patch -Np1 -i ../&sysklogd-8bit-patch;</userinput></screen> 35 41 36 42 <para>Compile the package:</para> -
chapter06/sysvinit.xml
r1714f1a r46a2e9c 85 85 su:S016:once:/sbin/sulogin 86 86 87 1:2345:respawn:/sbin/agetty -I '\033(K'tty1 960088 2:2345:respawn:/sbin/agetty -I '\033(K'tty2 960089 3:2345:respawn:/sbin/agetty -I '\033(K'tty3 960090 4:2345:respawn:/sbin/agetty -I '\033(K'tty4 960091 5:2345:respawn:/sbin/agetty -I '\033(K'tty5 960092 6:2345:respawn:/sbin/agetty -I '\033(K'tty6 960087 1:2345:respawn:/sbin/agetty tty1 9600 88 2:2345:respawn:/sbin/agetty tty2 9600 89 3:2345:respawn:/sbin/agetty tty3 9600 90 4:2345:respawn:/sbin/agetty tty4 9600 91 5:2345:respawn:/sbin/agetty tty5 9600 92 6:2345:respawn:/sbin/agetty 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 tells98 <command>agetty</command> to send this escape sequence to the terminal99 before doing anything else. This escape sequence switches the console100 character set to a user-defined one, which can be modified by running101 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 is104 necessary for people who use non-ISO 8859-1 screen fonts, but it does105 not affect native English speakers.</para>106 107 96 </sect2> 108 97 -
chapter06/texinfo.xml
r1714f1a r46a2e9c 29 29 <sect2 role="installation"> 30 30 <title>Installation of Texinfo</title> 31 32 <para>The <command>info</command> program makes assumptions such as that 33 a string occupies the same number of character cells on the screen and bytes 34 in memory and that one can break the string anywhere, which fail in 35 UTF-8 based locales. The patch below makes them valid 36 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> 31 39 32 40 <para>Texinfo allows local users to overwrite arbitrary files via a symlink … … 64 72 </varlistentry> 65 73 </variablelist> 74 <!-- FIXME: doesn't the TeX installation in BLFS overwrite files there? --> 66 75 67 76 <para>The Info documentation system uses a plain text file to hold its -
chapter06/udev.xml
r1714f1a r46a2e9c 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 --> 81 82 <!-- Edit Me --> 82 83 <para>Run the <command>udevstart</command> program to create our full -
chapter06/vim.xml
r1714f1a r46a2e9c 54 54 <varlistentry> 55 55 <term><parameter>--enable-multibyte</parameter></term> 56 <listitem><para>This optional but highly recommendedswitch enables support for56 <listitem><para>This 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 … … 74 74 <para>Install the package:</para> 75 75 76 <screen><userinput>make HELPSUBLOC=/usr/share/doc/vim-&vim-version; install</userinput></screen> 77 78 <para>The meaning of the make option:</para> 79 80 <variablelist> 81 <varlistentry> 82 <term><parameter>HELPSUBLOC=/usr/share/doc/vim-&vim-version;</parameter> 83 </term> 84 <listitem> 85 <para>This defines the directory that Vim's documentation will be 86 installed in. By default, Vim's documentation is installed in the 87 <filename class="directory">/usr/share/vim</filename> hierarchy. Other 88 packages install their documentation in the 89 <filename class="directory">/usr/share/doc</filename> hierarchy, so the 90 <parameter>HELPSUBLOC</parameter> option is used to ensure consistency. 91 </para> 92 </listitem> 93 </varlistentry> 94 </variablelist> 76 <screen><userinput>make install</userinput></screen> 77 78 <para>In UTF-8 locales, the <command>vimtutor</command> program 79 tries to convert the tutorials from ISO-8859-1 to UTF-8. Since 80 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-1 83 tutorials. An English tutorial will be used instead.</para> 84 <!-- Removal is used instead of conversion in order for the user to be able to 85 painlessly revert his UTF-8 locale choice. --> 86 87 <screen><userinput>rm -f /usr/share/vim/vim63/tutor/tutor.{gr,pl,ru,sk} 88 rm -f /usr/share/vim/vim63/tutor/tutor.??.*</userinput></screen> 95 89 96 90 <para>Many users are used to using <command>vi</command> instead of … … 100 94 101 95 <screen><userinput>ln -sv vim /usr/bin/vi</userinput></screen> 96 97 <para>By default, Vim's documentation is installed in 98 <filename class="directory">/usr/share/vim</filename>. The following symlink 99 allows the documentation to be accessed via 100 <filename class="directory">/usr/share/doc/vim-&vim-version;</filename>, making 101 it consistent with the location of documentation for other packages:</para> 102 103 <screen><userinput>ln -sv ../vim/vim64/doc /usr/share/doc/vim-&vim-version;</userinput></screen> 102 104 103 105 <para>If an X Window System is going to be installed on the LFS
Note:
See TracChangeset
for help on using the changeset viewer.