Compress::Zlib Version 1.08 6th January 2000 Copyright (c) 1995-2000 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 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 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. 1.08 - 6 Jan 2000 * uncompress was clobbering its input parameter. Now it doesn't. This bug was spotted by Deven T. Corzine. * If a variable that only ever contained a number was given to compress or delate, it would not be compresed properly. Now it will be coerced to a string and then compressed. This bug was spotted by Deven T. Corzine. Paul Marquess