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

<!--  <!ENTITY lynx-download-http "http://lynx.isc.org/lynx&lynx-version;/lynx&lynx-version;.tar.bz2">
  <!ENTITY lynx-download-ftp " ">-->
  <!ENTITY lynx-download-http "http://lynx.isc.org/current/lynx&lynx-version;.tar.bz2">
  <!ENTITY lynx-download-ftp  "ftp://lynx.isc.org/current/lynx&lynx-version;.tar.bz2">
  <!ENTITY lynx-md5sum        "b231c2aa34dfe7ca25681ef4e55ee7e8">
  <!ENTITY lynx-size          "2.5 MB">
  <!ENTITY lynx-buildsize     "31 MB">
  <!ENTITY lynx-time          "0.3 SBU">
]>

<sect1 id="lynx" xreflabel="Lynx-&lynx-version;">
  <?dbhtml filename="lynx.html"?>

  <sect1info>
    <othername>$LastChangedBy: pierre $</othername>
    <date>$Date: 2015-02-22 17:34:08 -0500 (Sun, 22 Feb 2015) $</date>
  </sect1info>

  <title>Lynx-&lynx-version;</title>

  <indexterm zone="lynx">
    <primary sortas="a-Lynx">Lynx</primary>
  </indexterm>

  <sect2 role="package">
    <title>Introduction to Lynx</title>

    <para><application>Lynx</application> is a text based web browser.</para>

    &lfs77_checked;

    <bridgehead renderas="sect3">Package Information</bridgehead>
    <itemizedlist spacing="compact">
      <listitem>
        <para>Download (HTTP): <ulink url="&lynx-download-http;"/></para>
      </listitem>
      <listitem>
        <para>Download (FTP): <ulink url="&lynx-download-ftp;"/></para>
      </listitem>
      <listitem>
        <para>Download MD5 sum: &lynx-md5sum;</para>
      </listitem>
      <listitem>
        <para>Download size: &lynx-size;</para>
      </listitem>
      <listitem>
        <para>Estimated disk space required: &lynx-buildsize;</para>
      </listitem>
      <listitem>
        <para>Estimated build time: &lynx-time;</para>
      </listitem>
    </itemizedlist>

    <bridgehead renderas="sect3">Lynx Dependencies</bridgehead>

    <bridgehead renderas="sect4">Optional</bridgehead>
    <para role="optional">
      <xref linkend="openssl"/> or
      <xref linkend="gnutls"/> (experimental),
      <xref linkend="zip"/>,
      <xref linkend="unzip"/>,
      an <xref linkend="server-mail"/> (that provides a <command>sendmail</command> command), and
      <xref linkend='sharutils'/> (for a <command>uudecode</command> program)
    </para>

<!-- Attempt to utilize S-Lang (- -with-screen=slang) leads to a build failure -->

    <para condition="html" role="usernotes">User Notes:
    <ulink url="&blfs-wiki;/Lynx"/></para>

  </sect2>

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

    <para>Install <application>Lynx</application> by running the following
    commands:</para>

<screen><userinput>./configure --prefix=/usr          \
            --sysconfdir=/etc/lynx \
            --datadir=/usr/share/doc/lynx-&lynx-version; \
            --with-zlib            \
            --with-bzlib           \
            --with-screen=ncursesw \
            --enable-locale-charset &amp;&amp;
make</userinput></screen>

    <para>This package does not come with a test suite.</para>

    <para>Now, as the <systemitem class="username">root</systemitem> user:</para>

<screen role='root'><userinput>make install-full &amp;&amp;
chgrp -v -R root /usr/share/doc/lynx-&lynx-version;/lynx_doc</userinput></screen>

  </sect2>

  <sect2 role="commands">
    <title>Command Explanations</title>

    <para><parameter>--sysconfdir=/etc/lynx</parameter>: This parameter is
    used so that the configuration files are located in
    <filename class="directory">/etc/lynx</filename> instead of
    <filename class="directory">/usr/etc</filename>.</para>

    <para><parameter>--datadir=/usr/share/doc/lynx-&lynx-version;</parameter>:
    This parameter is used so that the documentation files are installed into
    <filename class="directory">/usr/share/doc/lynx-&lynx-version;</filename>
    instead of
    <filename class="directory">/usr/share/lynx_{doc,help}</filename>.</para>

    <para><parameter>--with-zlib</parameter>: This enables support for
    linking <filename class="libraryfile">libz</filename> into
    <application>Lynx</application>.</para>

    <para><parameter>--with-bzlib</parameter>: This enables support for
    linking <filename class="libraryfile">libbz2</filename> into
    <application>Lynx</application>.</para>

    <para><parameter>--with-screen=ncursesw</parameter>: This switch enables
    the use of advanced wide-character support present in the system
    <application>NCurses</application> library. This is needed for
    proper display of characters and line wrapping in multibyte locales.</para>

    <para><parameter>--enable-locale-charset</parameter>: This switch allows
    <application>Lynx</application> to deduce the proper character encoding
    for terminal output from the current locale.
    A configuration step is still needed (see below), but
    unlike the situation without this switch, the configuration step becomes
    the same for all users (without the switch one must specify the
    display character set explicitly). This is important for environments such
    as a LiveCD, where the amount of system-specific configuration steps has
    to be reduced to the minimum.</para>

    <para><option>--enable-nls</option>: This switch allows
    <application>Lynx</application> to print translated messages (such as
    questions about cookies and SSL certificates).</para>

    <para><option>--with-ssl</option>: This enables support for
    linking SSL into <application>Lynx</application>.</para>
    
    <!-- Fixed at version 2.8.8
    <note><para>Due to an error in the <command>configure</command>
    process, building with <application>openssl</application> also requires
    running the following before running <command>make</command>.
    
    <screen><userinput>echo "#define USE_OPENSSL_INCL 1" >> lynx_cfg.h</userinput></screen>
    </para></note>
    -->

    <para><option>--with-gnutls</option>: This enables experimental support
    for linking <application>GnuTLS</application> into
    <application>Lynx</application>.</para>

    <para><command>make install-full</command>: In addition to the standard
    installation, this target installs the documentation and help files.</para>

    <para><command>chgrp -v -R root
    /usr/share/doc/lynx-&lynx-version;/lynx_doc</command>:
    This command corrects the improper group ownership of installed
    documentation files.</para>

    <!-- This was fixed in the 2.8.6 release, though it still could
         be considered an issue by some
    <note>
      <para>There has been a security vulnerability identified if you enable
      support for CGI links by passing the <option>-enable-cgi-links</option>
      parameter to <command>configure</command>. See <ulink
      url="http://seclists.org/lists/vulnwatch/2005/Oct-Dec/0041.html"/> for
      details.</para>
    </note>
    -->

  </sect2>

  <sect2 role="configuration">
    <title>Configuring Lynx</title>

    <sect3 id="lynx-config">
      <title>Config Files</title>

      <para><filename>/etc/lynx/lynx.cfg</filename></para>

      <indexterm zone="lynx lynx-config">
        <primary sortas="e-etc-lynx-lynx.cfg">/etc/lynx/lynx.cfg</primary>
      </indexterm>

    </sect3>

    <sect3>
      <title>Configuration Information</title>

      <para>The proper way to get the display character set is to examine the
      current locale. However, <application>Lynx</application> does not do
      this by default. As the <systemitem class="username">root</systemitem>
      user, change this setting:</para>

<screen role="root"><userinput>sed -i 's/#\(LOCALE_CHARSET\):FALSE/\1:TRUE/' /etc/lynx/lynx.cfg</userinput></screen>

      <para>The built-in editor in <application>Lynx</application>
      <xref linkend="locale-wrong-multibyte-characters"/>. This issue manifests
      itself in multibyte locales, e.g., as the Backspace key not erasing
      non-ASCII characters properly, and as incorrect data being sent to the
      network when one edits the contents of text areas. The only solution
      to this problem is to configure <application>Lynx</application> to
      use an external editor (bound to the <quote>Ctrl+X e</quote> key
      combination by default). Still as the
      <systemitem class="username">root</systemitem> user:</para>
<screen role="root"><userinput>sed -i 's/#\(DEFAULT_EDITOR\):/\1:vi/' /etc/lynx/lynx.cfg</userinput></screen>

      <para><application>Lynx</application> handles the following values of
      the DEFAULT_EDITOR option specially by adding cursor-positioning
      arguments: <quote>emacs</quote>, <quote>jed</quote>,
      <quote>jmacs</quote>, <quote>joe</quote>, <quote>jove</quote>,
      <quote>jpico</quote>, <quote>jstar</quote>, <quote>nano</quote>,
      <quote>pico</quote>, <quote>rjoe</quote>, <quote>vi</quote> (but not
      <quote>vim</quote>: in order to position the cursor in
      <xref linkend="vim"/>, set this option to <quote>vi</quote>).</para>

      <para>By default, <application>Lynx</application> doesn't save cookies
      between sessions. Again as the
      <systemitem class="username">root</systemitem> user, change this
      setting:</para>
<screen role="root"><userinput>sed -i 's/#\(PERSISTENT_COOKIES\):FALSE/\1:TRUE/' /etc/lynx/lynx.cfg</userinput></screen>

      <para>Many other system-wide settings such as proxies can also be set
      in the <filename>/etc/lynx/lynx.cfg</filename> file.</para>

    </sect3>

  </sect2>

  <sect2 role="content">
    <title>Contents</title>

    <segmentedlist>
    <segtitle>Installed Program</segtitle>
    <segtitle>Installed Libraries</segtitle>
    <segtitle>Installed Directories</segtitle>

    <seglistitem>
      <seg>lynx</seg>
      <seg>None</seg>
      <seg>/etc/lynx and /usr/share/doc/lynx-&lynx-version;</seg>
    </seglistitem>
    </segmentedlist>

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

      <varlistentry id="lynx-prog">
        <term><command>lynx</command></term>
        <listitem>
          <para>is a general purpose, text-based, distributed information
          browser for the World Wide Web.</para>
          <indexterm zone="lynx lynx-prog">
            <primary sortas="b-lynx">lynx</primary>
          </indexterm>
        </listitem>
      </varlistentry>

    </variablelist>

  </sect2>

</sect1>
