Compress::Zlib

                                 Version 1.07

                              27th November 1999

            Copyright (c) 1995-1999 Paul Marquess. All rights reserved.
        This program is free software; you can redistribute it and/or
               modify it under the same terms as Perl itself.



DESCRIPTION
-----------

This module provides a Perl interface to part of the info-zip zlib
compression library.  For more details see the pod documentation
embedded in the file Zlib.pm.

PREREQUISITES
-------------

Before you can build Compress::Zlib you need to have the following
installed on your system:

   * Perl 5.004 or better.
   * Info-zip zlib 1.0.2 or better (note that this module is NOT
     compatable with versions of zlib <= 1.0.1).

     The zlib compression library is available at
     http://www.cdrom.com/pub/infozip/zlib/


When building Compress::Zlib, you can optionally build the zlib
library at the same time. If you are running Windows 95/98/NT, this
seems to be the most straightforward option.

If you want Compress::Zlib to build zlib, fetch a copy of the zlib
distribution from the site mentioned above and unpack it into the
Compress::ZLib source directory. If you have fetched zlib 1.1.3, it will
create a directory called zlib-1.1.3.

Now, whether you are building zlib or not, edit the file config.in
and follow the instructions given in it.

BUILDING THE MODULE
-------------------

Assuming you have met all the prerequisites, the module can now be built
using this sequence of commands:

   perl Makefile.PL
   make
   make test

INSTALLATION
------------

To install Compress::ZLib, run the command below:

   make install

TROUBLESHOOTING
---------------

HP-UX
-----

I've had a report that when building Compress::Zlib under HP-UX that it is
necessary to have first built the zlib library with the -fpic option.

FEEDBACK
--------

How to report a problem with Compress::Zlib.

To help me help you, I need of the following information:

1. The version of Perl and the operating system name and version you
   are running. The full output from running "perl -V" will tell me all
   I need to know. If your perl doesn't understand the -V flag, then it's
   too old to build this module -- you need to have Perl 5.004 or better.

2. The version of Compress::Zlib you have.
   If you have successfully installed Compress::Zlib, this one-liner
   will tell you:

      perl -e 'use Compress::Zlib; print "ver $Compress::Zlib::VERSION\n"'

   If you haven't installed Compress::Zlib then search Compress::Zlib.pm
   for a line like this:

     $VERSION = "1.05" ;

3. The version of zlib you have installed.
   If you don't know look at the beginning of the file zlib.h.

4. If you are having problems building Compress::Zlib, send me a
   complete log of what happened.


CHANGES
-------

 0.1 - first alpha release. 2nd October 1995
 0.2 - Fixed a minor allocation problem in Zlib.xs
 0.3 - Added prototype specification.
 0.4 - Upgrade to support zlib 0.99

       Added dictionary interface.

       Fixed bug in gzreadline - previously it would keep returning
       the same buffer. This bug was reported by Helmut Jarausch

       Removed dependancy to zutil.h and so dropped support for

           DEF_MEM_LEVEL (use MAX_MEM_LEVEL instead)
           DEF_WBITS     (use MAX_WBITS instead)

 0.5 - Confirmed that no changes were necessary for zlib 1.0.3, or 1.0.4.

       The optional parameters for deflateInit and inflateInit can now
       be specified as an associative array in addition to a reference
       to an associative array. They can also accept the -Name
       syntax.

       gzopen can now optionally take a reference to an open
       filehandle in place of a filename. In this case it will call
       gzdopen.

       Added gzstream example script.

 1.00 - 14 Nov 1997

     * Fixed crc32 & adler32. They were very broken.

     * The following functions can now take a scalar reference in
       place of a scalar for their buffer parameters:

           compress
           uncompress
           deflate
           inflate
           crc32
           adler32

       This should mean applications that make use of the module don't
       have to copy large buffers around.


     * Normally the inflate method consumes I<all> of the input buffer
       before returning. The exception to this is when inflate detects
       the end of the stream (Z_STREAM_END). In this case the input
       buffer need not be completely consumed. To allow processing of
       file formats that embed a deflation stream (e.g. zip, gzip),
       the inflate method now sets the buffer parameter to be what
       remains after inflation.

       When the return status is Z_STREAM_END, it will be what remains
       of the buffer (if any) after deflation. When the status is Z_OK
       it will be an empty string.

       This change means that the buffer parameter must be a lvalue.

     * Fixed crc32 and adler32. They were both very broken.

     * Added the Compress::Zlib::memGzip function.

 1.01 - 23 Nov 1997

     * A number of fixes to the test suite and the example scripts to
       allow them to work under win32. All courtesy of Gurusamy
       Sarathy.

 1.02 - 31 Jan 1999

     * The return codes for gzread, gzreadline and gzwrite were
       documented incorrectly as returning a status code.

     * The test harness was missing a "gzclose". This caused problem
       showed up on an amiga. Thanks to Erik van Roode for reporting
       this one.

     * Patched zlib.t for OS/2. Thanks to Ilya Zakharevich for the patch.

 1.03 - 17 Mar 1999

     * Updated to use the new PL_ symbols.
       Means the module can be built with Perl 5.005_5*

 1.04 - 27 May 1999

     * Bug 19990527.001: compress(undef) core dumps -- Fixed.

 1.05 - 3 June 1999

     * Previous release used newSVpvn, which doesn't exist in 5.004_04
       or earlier. Changed to use newSVpv instead.

     * The module needs Perl 5.004 or better, so updated the version
       checking in Zlib.pm and Makefile.PL

 1.06 - 20 Sep 1999

     * Fixed a nasty problem where inflate could truncate the data
       returned. Thanks to Douglas Thomson <[email protected]>
       for both spotting the problem and fixing the bug.

     * Added a note about the undocumented features in zlib that are
       required when accessing zip files.

     * gzclose will now get called automaticallly when the gzip object is
       destroyed.

 1.07 - 27 Nov 1999

     * ANSI-ified the static functions in Zlib.xs

     * Added the ability to build zlib along with the module.
       This feature is 90% based on a Makefile provided by Gurusamy
       Sarathy.

Paul Marquess <[email protected]>