Changeset 9f405998


Ignore:
Timestamp:
05/16/2009 01:35:05 PM (15 years ago)
Author:
Matthew Burgess <matthew@…>
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.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:
e211b0d
Parents:
90aae6b
Message:

Resolve several man-db encodoing configuration issues. Fixes #2298.

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

Files:
6 edited

Legend:

Unmodified
Added
Removed
  • chapter01/changelog.xml

    r90aae6b r9f405998  
    3939
    4040    <listitem>
     41      <para>2009-05-16</para>
     42      <itemizedlist>
     43        <listitem>
     44          <para>[matthew] - Update table of languages &amp; encodings supported
     45          by Man-DB.  Remove alteration of man_db.conf, as the latest version of
     46          Man-DB handles the <filename class="symlink">/usr/share/man</filename>
     47          symlink correctly.  Also, remove <command>convert-mans</command> as
     48          the latest version of Man-DB correctly detects the encoding of manual
     49          pages.  Fixes <ulink url="&lfs-ticket-root;2298">#2298</ulink>.</para>
     50        </listitem>
     51      </itemizedlist>
     52    </listitem>
     53
     54    <listitem>
    4155      <para>2009-05-10</para>
    4256      <itemizedlist>
  • chapter03/patches.xml

    r90aae6b r9f405998  
    156156
    157157    <varlistentry>
     158      <term>Man-DB Testsuite Patch - <token>&man-db-testsuite-patch-size;</token>:</term>
     159      <listitem>
     160        <para>Download: <ulink url="&patches-root;&man-db-testsuite-patch;"/></para>
     161        <para>MD5 sum: <literal>&man-db-testsuite-patch-md5;</literal></para>
     162      </listitem>
     163    </varlistentry>
     164
     165    <varlistentry>
    158166      <term>Patch Carriage Return Fix Patch - <token>&patch-fixes-patch-size;</token>:</term>
    159167      <listitem>
  • chapter06/man-db.xml

    r90aae6b r9f405998  
    4242    <title>Installation of Man-DB</title>
    4343
    44     <para>LFS creates <filename>/usr/man</filename> and
    45     <filename>/usr/local/man</filename> as symlinks.   Remove them from the
    46     <filename>man_db.conf</filename> file to prevent redundant
    47     results when using programs such as <command>whatis</command>:</para>
    48 
    49 <screen><userinput remap="pre">sed -i -e '\%\t/usr/man%d' -e '\%\t/usr/local/man%d' src/man_db.conf.in</userinput></screen>
     44    <para>Apply a patch to fix a problem with the testsuite, which doesn't
     45    expect <command>col</command> to be UTF-8 aware, which Util-Linux-NG's
     46    version is:</para>
     47
     48<screen><userinput remap="pre">patch -Np1 -i ../&man-db-testsuite-patch;</userinput></screen>
    5049
    5150    <para>Prepare Man-DB for compilation:</para>
     
    8988<screen><userinput remap="make">make</userinput></screen>
    9089
    91     <para>This package does not come with a test suite.</para>
     90   <para>To test the results, issue:</para>
     91
     92<screen><userinput remap="test">make check</userinput></screen>
    9293
    9394    <para>Install the package:</para>
     
    100101    <title>Non-English Manual Pages in LFS</title>
    101102
    102     <para>Some packages provide non-English manual pages. They are displayed
    103     correctly only if their location and encoding matches the expectation of
    104     the "man" program. However, different Linux distributions have different
    105     policies (expressed in the choice of the <command>man</command> program,
    106     its configuration and patches applied to it) concerning the character
    107     encoding in which manual pages are stored in the filesystem.</para>
    108 
    109     <para>E.g., Debian previously required Russian manual pages to be encoded
    110     in KOI8-R and to be placed in
    111     <filename class="directory">/usr/share/man/ru</filename>. Now, in addition,
    112     their <command>man</command> program (<application>Man-DB</application>)
    113     searches for UTF-8 encoded Russian manual pages in
    114     <filename class="directory">/usr/share/man/ru.UTF-8</filename>. On the
    115     other hand, Fedora uses UTF-8 encoded manual pages exclusively. Russian
    116     manual pages  are found in
    117     <filename class="directory">/usr/share/man/ru</filename> and their
    118     <command>man</command> program doesn't acknowledge
    119     <filename class="directory">/usr/share/man/ru.UTF-8</filename>.  Many
    120     other distributions ignore the on disk encodings completely, leaving the
    121     end user with a mix of improperly encoded manual pages for their
    122     configuration. When <command>man</command> processes the requtested page,
    123     it will display the contents as configured, resulting in completely
    124     unreadable text if the on disk encoding is not what is expected for that
    125     configuration.</para>
    126 
    127     <para>Disagreement about the expected encoding of manual pages amongst
    128     distribution vendors, has led to confusion for upstream package
    129     maintainers. One package may contain UTF-8 manual pages, while another
    130     ships with manual pages in legacy encodings. <command>man</command>
    131     searches for manual pages based on the user's locale settings.
    132     <application>Man-DB</application> uses a built-in table (see below) to
    133     determine the on disk encoding of manual pages found for a user's
    134     locale, only if the directories found do not have an extension that
    135     describes the encoding. E.g., because of ".UTF-8" in the directory name,
    136     <application>Man-DB</application> knows that all manual pages residing in
    137     <filename class="directory">/usr/share/man/fr.UTF-8</filename> are UTF-8
    138     encoded and, according to the built-in table, expects all manual pages
    139     residing in <filename class="directory">/usr/share/man/ru</filename> to
    140     be encoded using KOI8-R.</para>
    141 
    142     <!-- Origin: man-db-2.5.2/src/encodings.c -->
     103    <para>The following table shows the character set that Man-DB assumes
     104    manual pages installed under
     105    <filename class="directory">/usr/share/man/&lt;ll&gt;</filename> will be
     106    encoded with.  In addition to this, Man-DB correctly determines if manual
     107    pages installed in that directory are UTF-8 encoded.</para>
     108
     109    <!-- Origin: man-db-2.5.5/src/encodings.c -->
    143110    <table>
    144111<title>Expected character encoding of legacy 8-bit manual pages</title>
     
    165132            <entry>Danish (da)</entry>
    166133            <entry>ISO-8859-1</entry>
     134            <entry>Croation (hr)</entry>
     135            <entry>ISO-8859-1</entry>
     136          </row>
     137          <row>
     138            <entry>German (de)</entry>
     139            <entry>ISO-8859-1</entry>
     140            <entry>Hungarian (hu)</entry>
     141            <entry>ISO-8859-2</entry>
     142          </row>
     143          <row>
     144            <entry>English (en)</entry>
     145            <entry>ISO-8859-1</entry>
     146            <entry>Japanese (ja)</entry>
     147            <entry>EUC-JP</entry>
     148          </row>
     149          <row>
     150            <entry>Spanish (es)</entry>
     151            <entry>ISO-8859-1</entry>
     152            <entry>Korean (ko)</entry>
     153            <entry>EUC-KR</entry>
     154          </row>
     155          <row>
     156            <entry>Estonian (et)</entry>
     157            <entry>ISO-8859-1</entry>
     158            <entry>Lithuanian (lt)</entry>
     159            <entry>ISO-8859-13</entry>
     160          </row>
     161          <row>
     162            <entry>Finnish (fi)</entry>
     163            <entry>ISO-8859-1</entry>
     164            <entry>Latvian (lv)</entry>
     165            <entry>ISO-8859-13</entry>
     166          </row>
     167          <row>
     168            <entry>French (fr)</entry>
     169            <entry>ISO-8859-1</entry>
     170            <entry>Macedonian (mk)</entry>
     171            <entry>ISO-8859-5</entry>
     172          </row>
     173          <row>
     174            <entry>Irish (ga)</entry>
     175            <entry>ISO-8859-1</entry>
     176            <entry>Polish (pl)</entry>
     177            <entry>ISO-8859-2</entry>
     178          </row>
     179          <row>
     180            <entry>Galician (gl)</entry>
     181            <entry>ISO-8859-1</entry>
     182            <entry>Romanian (ro)</entry>
     183            <entry>ISO-8859-2</entry>
     184          </row>
     185          <row>
     186            <entry>Indonesian (id)</entry>
     187            <entry>ISO-8859-1</entry>
     188            <entry>Russian (ru)</entry>
     189            <entry>KOI8-R</entry>
     190          </row>
     191          <row>
     192            <entry>Icelandic (is)</entry>
     193            <entry>ISO-8859-1</entry>
     194            <entry>Slovak (sk)</entry>
     195            <entry>ISO-8859-2</entry>
     196          </row>
     197          <row>
     198            <entry>Italian (it)</entry>
     199            <entry>ISO-8859-1</entry>
     200            <entry>Slovenian (sl)</entry>
     201            <entry>ISO-8859-2</entry>
     202          </row>
     203          <row>
     204            <entry>Norwegian Bokmal (nb)</entry>
     205            <entry>ISO-8859-1</entry>
     206            <entry>Serbian Latin (sr@latin)</entry>
     207            <entry>ISO-8859-2</entry>
     208          </row>
     209          <row>
     210            <entry>Dutch (nl)</entry>
     211            <entry>ISO-8859-1</entry>
     212            <entry>Serbian (sr)</entry>
     213            <entry>ISO-8859-5</entry>
     214          </row>
     215          <row>
     216            <entry>Norwegian Nynorsk (nn)</entry>
     217            <entry>ISO-8859-1</entry>
     218            <entry>Turkish (tr)</entry>
     219            <entry>ISO-8859-9</entry>
     220          </row>
     221          <row>
     222            <entry>Norwegian (no)</entry>
     223            <entry>ISO-8859-1</entry>
     224            <entry>Ukrainian (uk)</entry>
     225            <entry>KOI8-U</entry>
     226          </row>
     227          <row>
     228            <entry>Portuguese (pt)</entry>
     229            <entry>ISO-8859-1</entry>
     230            <entry>Vietnamese (vi)</entry>
     231            <entry>TCVN5712-1</entry>
     232          </row>
     233          <row>
     234            <entry>Swedish (sv)</entry>
     235            <entry>ISO-8859-1</entry>
     236            <entry>Simplified Chinese (zh_CN)</entry>
     237            <entry>GBK</entry>
     238          </row>
     239          <row>
     240            <entry>Belarusian (be)</entry>
     241            <entry>CP1251</entry>
     242            <entry>Simplified Chinese, Singapore (zh_SG)</entry>
     243            <entry>GBK</entry>
     244          </row>
     245          <row>
    167246            <entry>Bulgarian (bg)</entry>
    168247            <entry>CP1251</entry>
    169           </row>
    170           <row>
    171             <entry>German (de)</entry>
    172             <entry>ISO-8859-1</entry>
     248            <entry>Traditional Chinese, Hong Kong (zh_HK)</entry>
     249            <entry>BIG5HKSCS</entry>
     250          </row>
     251          <row>
    173252            <entry>Czech (cs)</entry>
    174253            <entry>ISO-8859-2</entry>
    175           </row>
    176           <row>
    177             <entry>English (en)</entry>
    178             <entry>ISO-8859-1</entry>
    179             <entry>Croatian (hr)</entry>
    180             <entry>ISO-8859-2</entry>
    181           </row>
    182           <row>
    183             <entry>Spanish (es)</entry>
    184             <entry>ISO-8859-1</entry>
    185             <entry>Hungarian (hu)</entry>
    186             <entry>ISO-8859-2</entry>
    187           </row>
    188           <row>
    189             <entry>Finnish (fi)</entry>
    190             <entry>ISO-8859-1</entry>
    191             <entry>Japanese (ja)</entry>
    192             <entry>EUC-JP</entry>
    193           </row>
    194           <row>
    195             <entry>French (fr)</entry>
    196             <entry>ISO-8859-1</entry>
    197             <entry>Korean (ko)</entry>
    198             <entry>EUC-KR</entry>
    199           </row>
    200           <row>
    201             <entry>Irish (ga)</entry>
    202             <entry>ISO-8859-1</entry>
    203             <entry>Polish (pl)</entry>
    204             <entry>ISO-8859-2</entry>
    205           </row>
    206           <row>
    207             <entry>Galician (gl)</entry>
    208             <entry>ISO-8859-1</entry>
    209             <entry>Russian (ru)</entry>
    210             <entry>KOI8-R</entry>
    211           </row>
    212           <row>
    213             <entry>Indonesian (id)</entry>
    214             <entry>ISO-8859-1</entry>
    215             <entry>Slovak (sk)</entry>
    216             <entry>ISO-8859-2</entry>
    217           </row>
    218           <row>
    219             <entry>Icelandic (is)</entry>
    220             <entry>ISO-8859-1</entry>
    221             <entry>Serbian (sr)</entry>
    222             <entry>ISO-8859-5</entry>
    223           </row>
    224           <row>
    225             <entry>Italian (it)</entry>
    226             <entry>ISO-8859-1</entry>
    227             <entry>Turkish (tr)</entry>
    228             <entry>ISO-8859-9</entry>
    229           </row>
    230           <row>
    231             <entry>Dutch (nl)</entry>
    232             <entry>ISO-8859-1</entry>
    233             <entry>Simplified Chinese (zh_CN)</entry>
    234             <entry>GBK</entry>
    235           </row>
    236           <!-- FIXME: BUG: "no" is deprecated, should use "nb" or "nn" and
    237           symlinks -->
    238           <row>
    239             <entry>Norwegian (no)</entry>
    240             <entry>ISO-8859-1</entry>
    241             <entry>Simplified Chinese, Singapore (zh_SG)</entry>
    242             <entry>GBK</entry>
    243           </row>
    244           <!-- END BUG -->
    245           <row>
    246             <entry>Portuguese (pt)</entry>
    247             <entry>ISO-8859-1</entry>
    248254            <entry>Traditional Chinese (zh_TW)</entry>
    249255            <entry>BIG5</entry>
    250256          </row>
    251257          <row>
    252             <entry>Swedish (sv)</entry>
    253             <entry>ISO-8859-1</entry>
    254             <entry>Traditional Chinese, Hong Kong (zh_HK)</entry>
    255             <entry>BIG5HKSCS</entry>
    256           </row>
    257 
    258           <!-- Languages below require patched groff -->
    259           <!--
    260           <row>
    261             <entry>Bulgarian (bg)</entry>
    262             <entry>CP1251</entry>
    263           </row>
    264           <row>
    265             <entry>Czech (cs)</entry>
    266             <entry>ISO-8859-2</entry>
    267           </row>
    268           <row>
    269             <entry>Croatian (hr)</entry>
    270             <entry>ISO-8859-2</entry>
    271           </row>
    272           <row>
    273             <entry>Hungarian (hu)</entry>
    274             <entry>ISO-8859-2</entry>
    275           </row>
    276           <row>
    277             <entry>Japanese (ja)</entry>
    278             <entry>EUC-JP</entry>
    279           </row>
    280           <row>
    281             <entry>Korean (ko)</entry>
    282             <entry>EUC-KR</entry>
    283           </row>
    284           <row>
    285             <entry>Polish (pl)</entry>
    286             <entry>ISO-8859-2</entry>
    287           </row>
    288           <row>
    289             <entry>Russian (ru)</entry>
    290             <entry>KOI8-R</entry>
    291           </row>
    292           <row>
    293             <entry>Slovak (sk)</entry>
    294             <entry>ISO-8859-2</entry>
    295           </row>
    296           <row>
    297             <entry>Serbian (sr)</entry>
    298             <entry>ISO-8859-5</entry>
    299           </row>
    300           <row>
    301             <entry>Turkish (tr)</entry>
    302             <entry>ISO-8859-9</entry>
    303           </row>
    304           <row>
    305             <entry>Simplified Chinese (zh_CN)</entry>
    306             <entry>GBK</entry>
    307           </row>
    308           <row>
    309             <entry>Simplified Chinese, Singapore (zh_SG)</entry>
    310             <entry>GBK</entry>
    311           </row>
    312           <row>
    313             <entry>Traditional Chinese (zh_TW)</entry>
    314             <entry>BIG5</entry>
    315           </row>
    316           <row>
    317             <entry>Traditional Chinese, Hong Kong (zh_HK)</entry>
    318             <entry>BIG5HKSCS</entry>
    319           </row>-->
     258            <entry>Greek (el)</entry>
     259            <entry>ISO-8859-7</entry>
     260            <entry></entry>
     261            <entry></entry>
     262          </row>
     263
    320264        </tbody>
    321265
     
    325269
    326270    <note>
    327       <para>Manual pages in languages not in the list are not supported.
    328       Norwegian does not work because of the transition from no_NO to
    329       nb_NO locale, and will be fixed in the next release of
    330       <application>Man-DB</application>.  Korean is currently non functional
    331       because of incomplete fixes in the Debian
    332       <application>Groff</application> patch applied in LFS.</para>
     271      <para>Manual pages in languages not in the list are not supported.</para>
    333272    </note>
    334 
    335     <para>Packages may install manual pages into an improperly named directory,
    336     depending on which distributions the author develops the package for. To
    337     assist in the conversion of the manual pages to the proper encoding for the
    338     directory in which they are installed, the <command>convert-mans</command>
    339     script was written. It will convert manual pages to another encoding before
    340     (or after) installation.  Install the <command>convert-mans</command>
    341     script with the following instructions:</para>
    342 
    343 <screen><userinput remap="install">cat &gt;&gt; convert-mans &lt;&lt; "EOF"
    344 <literal>#!/bin/sh -e
    345 FROM="$1"
    346 TO="$2"
    347 shift ; shift
    348 while [ $# -gt 0 ]
    349 do
    350         FILE="$1"
    351         shift
    352         iconv -f "$FROM" -t "$TO" "$FILE" >.tmp.iconv
    353         mv .tmp.iconv "$FILE"
    354 done</literal>
    355 EOF
    356 install -v -m755 convert-mans  /usr/bin</userinput></screen>
    357 
    358 
    359     <para>If upstream distributes the manual pages in a legacy encoding, the
    360     manual pages can simply be copied to
    361     <filename class="directory">/usr/share/man/<replaceable>&lt;language
    362     code&gt;</replaceable></filename>. For example, <ulink
    363     url="http://www.infodrom.org/projects/manpages-de/download/manpages-de-0.5.tar.gz">
    364     German manual pages</ulink> can be installed with the following
    365     commands:</para>
    366 
    367 <screen role="nodump"><userinput>mkdir -p /usr/share/man/de
    368 cp -rv man? /usr/share/man/de</userinput></screen>
    369 
    370     <para>If upstream distributes manual pages in UTF-8 (i.e., <quote>for
    371     RedHat</quote>) instead of the encoding listed in the table above, they
    372     can either be converted from UTF-8 to the encoding listed in the table
    373     above, or they can be installed directly into
    374     <filename class="directory">/usr/share/man/<replaceable>&lt;language
    375     code&gt;</replaceable>.UTF-8</filename>.</para>
    376 
    377     <para>For example, to install <ulink
    378     url="http://manpagesfr.free.fr/download/man-pages-fr-2.40.0.tar.bz2">
    379     French manual pages</ulink> in the legacy encoding, use the following
    380     commands:</para>
    381 
    382 <screen role="nodump"><userinput>convert-mans UTF-8 ISO-8859-1 man?/*.?
    383 mkdir -p /usr/share/man/fr
    384 cp -rv man? /usr/share/man/fr</userinput></screen>
    385 
    386     <note><para>The French manual pages ship with ready made scripts to do the
    387     same conversion. The above instructions are used only as an example for
    388     use of the <command>convert-mans</command> script.</para></note>
    389 
    390     <para>Finally, as an example installation of UTF-8 manual pages, again, the
    391     French manual pages could be installed with the following commands:</para>
    392 
    393 <screen role="nodump"><userinput>mkdir -p /usr/share/man/fr.UTF-8
    394 cp -rv man? /usr/share/man/fr.UTF-8</userinput></screen>
    395273
    396274  </sect2>
     
    446324      </varlistentry>
    447325
    448       <varlistentry id="convert-mans">
    449         <term><command>convert-mans</command></term>
    450         <listitem>
    451           <para>Reformats manual pages into the chosen encoding.</para>
    452           <indexterm zone="ch-system-man-db convert-mans">
    453             <primary sortas="b-convert-mans">convert-mans</primary>
    454           </indexterm>
    455         </listitem>
    456       </varlistentry>
    457 
    458326      <varlistentry id="lexgrog">
    459327        <term><command>lexgrog</command></term>
  • chapter06/shadow.xml

    r90aae6b r9f405998  
    6767
    6868<screen><userinput remap="configure">sed -i -e 's/ ko//' -e 's/ zh_CN zh_TW//' man/Makefile.in</userinput></screen>
    69 
    70     <para>Shadow supplies other manual pages in a UTF-8 encoding.  Man-DB
    71     can display these in the recommended encodings by using the
    72     <command>convert-mans</command> script which was installed during the
    73     Man-DB package:</para>
    74 
    75 <screen><userinput remap="configure">for i in de fi fr id it pt_BR; do
    76     convert-mans UTF-8 ISO-8859-1 man/${i}/*.?
    77 done
    78 
    79 for i in cs hu pl; do
    80     convert-mans UTF-8 ISO-8859-2 man/${i}/*.?
    81 done
    82 
    83 convert-mans UTF-8 EUC-JP man/ja/*.?
    84 convert-mans UTF-8 KOI8-R man/ru/*.?
    85 convert-mans UTF-8 ISO-8859-9 man/tr/*.?</userinput></screen>
    8669
    8770    <para id="shadow-login_defs">Instead of using the default
  • general.ent

    r90aae6b r9f405998  
    11<?xml version="1.0" encoding="ISO-8859-1"?>
    2 <!ENTITY version "SVN-20090510">
    3 <!ENTITY releasedate "May 10, 2009">
     2<!ENTITY version "SVN-20090516">
     3<!ENTITY releasedate "May 16, 2009">
    44<!ENTITY copyrightdate "1999-2009"><!-- jhalfs needs a literal dash, not &ndash; -->
    55<!ENTITY milestone "7.0">
  • patches.ent

    r90aae6b r9f405998  
    8585
    8686
    87 <!-- <!ENTITY mktemp-tempfile-patch "mktemp-&mktemp-version;-add_tempfile-3.patch">
    88 <!ENTITY mktemp-tempfile-patch-md5 "65d73faabe3f637ad79853b460d30a19">
    89 <!ENTITY mktemp-tempfile-patch-size "3.5 KB"> -->
     87<!ENTITY man-db-testsuite-patch "man-db-&man-db-version;-fix_testsuite-1.patch">
     88<!ENTITY man-db-testsuite-patch-md5 "0b23eeba6d8b130078cbee38ff22c621">
     89<!ENTITY man-db-testsuite-patch-size "1 KB">
    9090
    9191
Note: See TracChangeset for help on using the changeset viewer.