<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
  "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [
  <!ENTITY % general-entities SYSTEM "../../general.ent">
  %general-entities;
]>

<sect1 id="ch-system-man" role="wrap">
  <?dbhtml filename="man.html"?>

  <title>Man-&man-version;</title>

  <indexterm zone="ch-system-man">
    <primary sortas="a-Man">Man</primary>
  </indexterm>

  <sect2 role="package">
    <title/>

    <para>The Man package contains programs for finding and viewing man
    pages.</para>

  </sect2>

  <sect2 role="installation">
    <title>Installation of Man</title>

    <para os="a">A few adjustments need to be made to the sources of Man.</para>

    <para os="b">First, a <command>sed</command> substitution is
    needed to add the <option>-R</option> switch to the
    <envar>PAGER</envar> variable so that escape sequences are
    properly handled by Less:</para>

<screen os="c"><userinput>sed -i 's@-is@&amp;R@g' configure</userinput></screen>

    <para os="d">Another <command>sed</command> substitution comments out the
    <quote>MANPATH /usr/man</quote> line in the <filename>man.conf</filename>
    file to prevent redundant results when using programs such as
    <command>whatis</command>:</para>

<screen os="e"><userinput>sed -i 's@MANPATH./usr/man@#&amp;@g' src/man.conf.in</userinput></screen>

    <para os="h">Prepare Man for compilation:</para>

<screen os="i"><userinput>./configure -confdir=/etc</userinput></screen>

    <variablelist os="j">
      <title>The meaning of the configure options:</title>

      <varlistentry>
      <term><parameter>-confdir=/etc</parameter></term>
      <listitem>
        <para>This tells the <command>man</command> program to look for the
        <filename>man.conf</filename> configuration file in the <filename
        class="directory">/etc</filename> directory.</para>
      </listitem>
      </varlistentry>
    </variablelist>

    <para os="k">Compile the package:</para>

<screen os="l"><userinput>make</userinput></screen>

    <para os="m">This package does not come with a test suite.</para>

    <para os="n">Install the package:</para>

<screen os="o"><userinput>make install</userinput></screen>

    <note os="p">
      <para>If you will be working on a terminal that does not support
      text attributes such as color and bold, you can disable Select
      Graphic Rendition (SGR) escape sequences by editing the
      <filename>man.conf</filename> file and adding the <option>-c</option>
      option to the <envar>NROFF</envar> variable. If you use multiple
      terminal types for one computer it may be better to selectively add
      the <envar>GROFF_NO_SGR</envar> environment variable for the terminals
      that do not support SGR.</para>
    </note>

    <para os="q">If the character set of the locale uses 8-bit characters, search
    for the line beginning with <quote>NROFF</quote> in
    <filename>/etc/man.conf</filename>, and verify that it matches the
    following:</para>

<screen os="r">NROFF /usr/bin/nroff -Tlatin1 -mandoc</screen>

    <para os="s">Note that <quote>latin1</quote> should be used even if it is not
    the character set of the locale. The reason is that, according to the
    specification, <command>groff</command> has no means of typesetting
    characters outside International Organization for Standards (ISO) 8859-1
    without some strange escape codes. When formatting man pages,
    <command>groff</command> thinks that they are in the ISO 8859-1 encoding
    and this <parameter>-Tlatin1</parameter> switch tells
    <command>groff</command> to use the same encoding for output. Since
    <command>groff</command> does no recoding of input characters, the f
    ormatted result is really in the same encoding as input, and therefore
    it is usable as the input for a pager.</para>

    <para os="t">This does not solve the problem of a non-working
    <command>man2dvi</command> program for localized man pages in
    non-ISO 8859-1 locales. Also, it does not work with multibyte
    character sets. The first problem does not currently have a solution.
    The second issue is not of concern because the CLFS installation does
    not support multibyte character sets.</para>

    <para os="u">Additional information with regards to the compression of
    man and info pages can be found in the BLFS book at
    <ulink url="&blfs-root;view/cvs/postlfs/compressdoc.html"/>.</para>

  </sect2>

  <sect2 id="contents-man" role="content">
    <title>Contents of Man</title>

    <segmentedlist>
      <segtitle>Installed programs</segtitle>

      <seglistitem>
        <seg>apropos, makewhatis, man, man2dvi, man2html, and whatis</seg>
      </seglistitem>
    </segmentedlist>

    <variablelist>
      <bridgehead renderas="sect3">Short Descriptions</bridgehead>
      <?dbfo list-presentation="list"?>
      <?dbhtml list-presentation="table"?>

      <varlistentry id="apropos">
        <term><command>apropos</command></term>
        <listitem>
          <para>Searches the <command>whatis</command> database and
          displays the short descriptions of system commands that contain
          a given string</para>
          <indexterm zone="ch-system-man apropos">
            <primary sortas="b-apropos">apropos</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="makewhatis">
        <term><command>makewhatis</command></term>
        <listitem>
          <para>Builds the <command>whatis</command> database; it reads all
          the man pages in the <envar>MANPATH</envar> and writes the name
          and a short description in the <command>whatis</command> database
          for each page</para>
          <indexterm zone="ch-system-man makewhatis">
            <primary sortas="b-makewhatis">makewhatis</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="man">
        <term><command>man</command></term>
        <listitem>
          <para>Formats and displays the requested on-line man page</para>
          <indexterm zone="ch-system-man man">
            <primary sortas="b-man">man</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="man2dvi">
        <term><command>man2dvi</command></term>
        <listitem>
          <para>Converts a man page into dvi format</para>
          <indexterm zone="ch-system-man man2dvi">
            <primary sortas="b-man2dvi">man2dvi</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="man2html">
        <term><command>man2html</command></term>
        <listitem>
          <para>Converts a man page into HTML</para>
          <indexterm zone="ch-system-man man2html">
            <primary sortas="b-man2html">man2html</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="whatis">
        <term><command>whatis</command></term>
        <listitem>
          <para>Searches the <command>whatis</command> database and
          displays the short descriptions of system commands that
          contain the given keyword as a separate word</para>
          <indexterm zone="ch-system-man whatis">
            <primary sortas="b-whatis">whatis</primary>
          </indexterm>
        </listitem>
      </varlistentry>

    </variablelist>

  </sect2>

</sect1>
