Compress::Zlib Version 1.00 14th Nov 1997 Copyright (c) 1995/6/7 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 thing installed on your system: * Perl 5.003_05 or better. * Info-zip zlib 1.0.2, 1.0.3 or 1.0.4 (note that this module is NOT compatable with versions of zlib <= 1.0.1). The zlib compression library is available at ftp://ftp.uu.net/pub/archiving/zip/zlib* and ftp://swrinde.nde.swri.edu/pub/png/src/zlib*. The zlib home page is http://quest.jpl.nasa.gov/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 Makefile.PL and change ZLIB_LIB and ZLIB_INCLUDE if necessary. The module can now be built using this sequence of commands: perl Makefile.PL make make test INSTALLATION ------------ make install FEEDBACK -------- I have tested Compress::Zlib on both SunOS 4.1.3 (Sun C compiler) and Solaris 2.3 (Sun C compiler again). If you are building the module on another architecture I would appreciate a note to tell me how you got on. Although I am particularly interested to hear about any problems you encounter when building the system, I would still like to hear from you even if you don't. Things I particularly would like to know * The Operating system name and version, e.g. SunOS 4.1.3 * Architecture, e.g. Solaris * C compiler, e.g. gcc * Where there any warnings/errors printed by the C compiler? If so please send the exact output if possible. 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 - 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. Paul Marquess