Compress::Zlib

                                 Version 1.06

                              20th September 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/


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

Assuming you have met all the prerequisites, building the module should
be relatively straightforward.

The only things you might have to change for building the module are
the names of the directories where the zlib library, libz, is installed
and the directory where zlib.h and zconf.h are stored. Edit config.in
and change the LIB and INCLUDE variables if necessary.

The module can now be built using this sequence of commands:

   perl Makefile.PL
   make
   make test

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

   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 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.


Paul Marquess <[email protected]>