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

  <title>Gzip-&gzip-version;</title>

  <indexterm zone="ch-system-gzip">
    <primary sortas="a-Gzip">Gzip</primary>
  </indexterm>

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

    <para>The Gzip package contains programs for compressing and decompressing
    files.</para>

  </sect2>

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

    <para os="p1">The following patch fixes two security vulnerabilities in Gzip.
    First, a path traversal bug when using the <option>-N</option> option
    (CAN-2005-1228) Second, a race condition in the file permission restore
    code (CAN-2005-0998)</para>

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

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

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

    <para os="c">The <command>gzexe</command> script has the location of the
    <command>gzip</command> binary hard-wired into it. Because the
    location of the binary is changed later, the following command ensures
    that the new location gets placed into the script:</para>

<screen os="d"><userinput>sed -i 's@"BINDIR"@/bin@g' gzexe.in</userinput></screen>

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

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

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

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

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

    <para os="j">Move the <command>gzip</command> program to the <filename
    class="directory">/bin</filename> directory and create some commonly
    used symlinks to it:</para>

<screen os="k"><userinput>mv -v /usr/bin/gzip /bin
rm -v /usr/bin/{gunzip,zcat}
ln -sv gzip /bin/gunzip
ln -sv gzip /bin/zcat
ln -sv gzip /bin/compress
ln -sv gunzip /bin/uncompress</userinput></screen>

  </sect2>

  <sect2 id="contents-gzip" role="content">
    <title>Contents of Gzip</title>

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

      <seglistitem>
        <seg>compress (link to gzip), gunzip (link to gzip), gzexe, gzip,
        uncompress (link to gunzip), zcat (link to gzip), zcmp, zdiff,
        zegrep, zfgrep, zforce, zgrep, zless, zmore, and znew</seg>
      </seglistitem>
    </segmentedlist>

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

      <varlistentry id="compress">
        <term><command>compress</command></term>
        <listitem>
          <para>Compresses and decompresses files</para>
          <indexterm zone="ch-system-gzip compress">
            <primary sortas="b-compress">compress</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="gunzip">
        <term><command>gunzip</command></term>
        <listitem>
          <para>Decompresses gzipped files</para>
          <indexterm zone="ch-system-gzip gunzip">
            <primary sortas="b-gunzip">gunzip</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="gzexe">
        <term><command>gzexe</command></term>
        <listitem>
          <para>Creates self-decompressing executable files</para>
          <indexterm zone="ch-system-gzip gzexe">
            <primary sortas="b-gzexe">gzexe</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="gzip">
        <term><command>gzip</command></term>
        <listitem>
          <para>Compresses the given files using Lempel-Ziv (LZ77) coding</para>
          <indexterm zone="ch-system-gzip gzip">
            <primary sortas="b-gzip">gzip</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="uncompress">
        <term><command>uncompress</command></term>
        <listitem>
          <para>Decompresses compressed files</para>
          <indexterm zone="ch-system-gzip uncompress">
            <primary sortas="b-uncompress">uncompress</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="zcat">
        <term><command>zcat</command></term>
        <listitem>
          <para>Decompresses the given gzipped files to standard output</para>
          <indexterm zone="ch-system-gzip zcat">
            <primary sortas="b-zcat">zcat</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="zcmp">
        <term><command>zcmp</command></term>
        <listitem>
          <para>Runs <command>cmp</command> on gzipped files</para>
          <indexterm zone="ch-system-gzip zcmp">
            <primary sortas="b-zcmp">zcmp</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="zdiff">
        <term><command>zdiff</command></term>
        <listitem>
          <para>Runs <command>diff</command> on gzipped files</para>
          <indexterm zone="ch-system-gzip zdiff">
            <primary sortas="b-zdiff">zdiff</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="zegrep">
        <term><command>zegrep</command></term>
        <listitem>
          <para>Runs <command>egrep</command> on gzipped files</para>
          <indexterm zone="ch-system-gzip zegrep">
            <primary sortas="b-zegrep">zegrep</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="zfgrep">
        <term><command>zfgrep</command></term>
        <listitem>
          <para>Runs <command>fgrep</command> on gzipped files</para>
          <indexterm zone="ch-system-gzip zfgrep">
            <primary sortas="b-zfgrep">zfgrep</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="zforce">
        <term><command>zforce</command></term>
        <listitem>
          <para>Forces a <filename class="extension">.gz</filename> extension on
          all given files that are gzipped files, so that <command>gzip</command>
          will not compress them again; this can be useful when file names were
          truncated during a file transfer</para>
          <indexterm zone="ch-system-gzip zforce">
            <primary sortas="b-zforce">zforce</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="zgrep">
        <term><command>zgrep</command></term>
        <listitem>
          <para>Runs <command>grep</command> on gzipped files</para>
          <indexterm zone="ch-system-gzip zgrep">
            <primary sortas="b-zgrep">zgrep</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="zless">
        <term><command>zless</command></term>
        <listitem>
          <para>Runs <command>less</command> on gzipped files</para>
          <indexterm zone="ch-system-gzip zless">
            <primary sortas="b-zless">zless</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="zmore">
        <term><command>zmore</command></term>
        <listitem>
          <para>Runs <command>more</command> on gzipped files</para>
          <indexterm zone="ch-system-gzip zmore">
            <primary sortas="b-zmore">zmore</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="znew">
        <term><command>znew</command></term>
        <listitem>
          <para>Re-compresses files from <command>compress</command> format to
          <command>gzip</command> format&mdash;<filename
          class="extension">.Z</filename> to <filename
          class="extension">.gz</filename></para>
          <indexterm zone="ch-system-gzip znew">
            <primary sortas="b-znew">znew</primary>
          </indexterm>
        </listitem>
      </varlistentry>

    </variablelist>

  </sect2>

</sect1>
