<?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-texinfo" role="wrap">
  <?dbhtml filename="texinfo.html"?>

  <title>Texinfo-&texinfo-version;</title>

  <indexterm zone="ch-system-texinfo">
    <primary sortas="a-Texinfo">Texinfo</primary>
  </indexterm>

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

    <para>The Texinfo package contains programs for reading, writing, and
    converting info pages.</para>

  </sect2>

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

    <para os="p1">Texinfo allows local users to overwrite arbitrary files via a symlink
    attack on temporary files. Apply the following patch to fix this:</para>

<screen os="p2"><userinput>patch -Np1 -i ../&texinfo-tempfile_fix-patch;</userinput></screen>

    <para os="a">Prepare Texinfo for compilation:</para>

<screen os="b"><userinput>./configure --prefix=/usr</userinput></screen>

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

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

    <para os="e">To test the results, issue:
    <userinput>make check</userinput>.</para>

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

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

    <para os="h">Optionally, install the components belonging in a TeX
    installation:</para>

<screen os="i"><userinput>make TEXMF=/usr/share/texmf install-tex</userinput></screen>

    <variablelist os="j">
      <title>The meaning of the make parameter:</title>

      <varlistentry>
        <term><parameter>TEXMF=/usr/share/texmf</parameter></term>
        <listitem>
          <para>The <envar>TEXMF</envar> makefile variable holds the location
          of the root of the TeX tree if, for example, a TeX package will be
          installed later.</para>
        </listitem>
      </varlistentry>

    </variablelist>

    <para os="k">The Info documentation system uses a plain text file to hold
    its list of menu entries. The file is located at
    <filename>/usr/share/info/dir</filename>. Unfortunately, due to occasional
    problems in the Makefiles of various packages, it can sometimes get out of
    sync with the info pages installed on the system. If the
    <filename>/usr/share/info/dir</filename> file ever needs to be recreated,
    the following optional commands will accomplish the task:</para>

<screen os="l" role="nodump"><userinput>cd /usr/share/info
rm dir
for f in *
do install-info $f dir 2&gt;/dev/null
done</userinput></screen>

  </sect2>

  <sect2 id="contents-texinfo" role="content">
    <title>Contents of Texinfo</title>

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

      <seglistitem>
        <seg>info, infokey, install-info, makeinfo, texi2dvi, texi2pdf,
        and texindex</seg>
      </seglistitem>
    </segmentedlist>

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

      <varlistentry id="info">
        <term><command>info</command></term>
        <listitem>
          <para>Used to read info pages which are similar to man
          pages, but often go much deeper than just explaining all the command
          line options. For example, compare <command>man bison</command> and
          <command>info bison</command>.</para>
          <indexterm zone="ch-system-texinfo info">
            <primary sortas="b-info">info</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="infokey">
        <term><command>infokey</command></term>
        <listitem>
          <para>Compiles a source file containing Info customizations into a
          binary format</para>
          <indexterm zone="ch-system-texinfo infokey">
            <primary sortas="b-infokey">infokey</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="install-info">
        <term><command>install-info</command></term>
        <listitem>
          <para>Used to install info pages; it updates entries in the
          <command>info</command> index file</para>
          <indexterm zone="ch-system-texinfo install-info">
            <primary sortas="b-install-info">install-info</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="makeinfo">
        <term><command>makeinfo</command></term>
        <listitem>
          <para>Translates the given Texinfo source documents into
          info pages, plain text, or HTML</para>
          <indexterm zone="ch-system-texinfo makeinfo">
            <primary sortas="b-makeinfo">makeinfo</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="texi2dvi">
        <term><command>texi2dvi</command></term>
        <listitem>
          <para>Used to format the given Texinfo document into a
          device-independent file that can be printed</para>
          <indexterm zone="ch-system-texinfo texi2dvi">
            <primary sortas="b-texi2dvi">texi2dvi</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="texi2pdf">
        <term><command>texi2pdf</command></term>
        <listitem>
          <para>Used to format the given Texinfo document into a
          Portable Document Format (PDF) file</para>
          <indexterm zone="ch-system-texinfo texi2pdf">
            <primary sortas="b-texi2pdf">texi2pdf</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="texindex">
        <term><command>texindex</command></term>
        <listitem>
          <para>Used to sort Texinfo index files</para>
          <indexterm zone="ch-system-texinfo texindex">
            <primary sortas="b-texindex">texindex</primary>
          </indexterm>
        </listitem>
      </varlistentry>

    </variablelist>

  </sect2>

</sect1>
