<?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:
    a path traversal bug when using the <option>-N</option> option
    (CAN-2005-1228), and 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="s1">The <command>gzexe</command> command calls <command>tail</command>
     with options that do not conform to newer versions of the POSIX standard,
     and therefore are not accepted by current versions of Coreutils. Fix this
     problem by issuing the following command:</para>

<screen os="s2"><userinput>sed -i 's/tail +/tail -n +/' gzexe.in</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>
