CHANGES
-------
+ 1.37 - 12 August 2005
+
+ * Change to t/03examples.t for VMS from Abe Timmerman
+
+ 1.36 - 3 August 2005
+
+ * Renamed zlib-src-1.2.3 to zlib-src to help VMS
+
+ * Fixed Makefile.PL for VMS
+
+ * Fixed t/03examples.t for VMS
+
+ * Added a couple of notes about incompatibility with Unix compress.
+
1.35 - 16 July 2005
* Updated zlib source to 1.2.3
1.31 - 29 October 2003
* Reinstated the creation of .bak files - $^I seems to need a
- backup file on Windows. For OpenVMS, the extenstion _bak is used.
+ backup file on Windows. For OpenVMS, the extension _bak is used.
1.30 - 28 October 2003
1.13 - 31st June 2001
- * Make sure config.in is consistant when released.
+ * Make sure config.in is consistent when released.
1.12 - 28th April 2001
my $ZLIB_INCLUDE ;
my $BUILD_ZLIB = 0 ;
my $OLD_ZLIB = '' ;
+my $EXTRA_DEFINE = '';
my $WALL = '';
#$WALL = ' -Wall ';
ParseCONFIG() ;
my @files = ('Zlib.pm', glob("t/*.t"), grep(!/\.bak$/, glob("examples/*"))) ;
-UpDowngrade(@files) unless $ENV{PERL_CORE};
+UpDowngrade(@files) unless $ENV{PERL_CORE} ;
WriteMakefile(
NAME => 'Compress::Zlib',
VERSION_FROM => 'Zlib.pm',
INC => "-I$ZLIB_INCLUDE" ,
- DEFINE => "$OLD_ZLIB $WALL" ,
+ DEFINE => "$OLD_ZLIB $WALL $EXTRA_DEFINE" ,
XS => { 'Zlib.xs' => 'Zlib.c' },
'depend' => { 'Makefile' => 'config.in' },
'clean' => { FILES => '*.c constants.h constants.xs' },
(echo found unexpected $$^W ; exit 1)
@echo All is ok.
-Zlib.xs: typemap
- @ $(TOUCH) Zlib.xs
-
EOM
return $postamble;
$ZLIB_LIB = VMS::Filespec::vmspath($ZLIB_LIB);
}
+ $EXTRA_DEFINE = $ENV{EXTRA_DEFINE} if defined $ENV{EXTRA_DEFINE};
+
my $y = $ENV{'OLD_ZLIB'} || $Info{'OLD_ZLIB'} ;
$OLD_ZLIB = '-DOLD_ZLIB' if $y and $y =~ /^yes|on|true|1$/i;
Compress::Zlib
- Version 1.35
+ Version 1.37
- 18 July 2005
+ 12 August 2005
- Copyright (c) 1995-2005 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.
+ Copyright (c) 1995-2005 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.
- The directory zlib-src contains a subset of the source files copied
- directly from zlib version 1.2.2. These files are Copyright(C)
- 1995-2004 Jean-loup Gailly and Mark Adler.
- Full source for the zlib library is available at
- http://www.zlib.org
+ The directory zlib-src contains a subset of the source files copied
+ directly from zlib version 1.2.3. These files are Copyright(C)
+ 1995-2005 Jean-loup Gailly and Mark Adler.
+ Full source for the zlib library is available at
+ http://www.zlib.org
DESCRIPTION
2. Build a private copy of the zlib library using a standard zlib
source distribution.
- 3. Use a pre-buiild zlib library.
+ 3. Use a pre-built zlib library.
Note that if you intend to use either Option 2 or 3, you need to have
zlib version 1.0.6 or better. Although this module can build with old
06gzdopen.t test harness.
The functionality being exercised in these tests is checking that it is
-possible to call gzopen with an existing Perl filenhandle instead of a
+possible to call gzopen with an existing Perl filehandle instead of a
filename. For some reason it does not seem possible to extract a
numeric file descriptor (using fileno) from a FILE* and then make use
of it.
# File : Zlib.pm
# Author : Paul Marquess
-# Created : 30 January 2005
-# Version : 1.35
+# Created : 12 August 2005
+# Version : 1.37
#
# Copyright (c) 1995-2005 Paul Marquess. All rights reserved.
# This program is free software; you can redistribute it and/or
our ($VERSION, @ISA, @EXPORT, $AUTOLOAD);
our ($deflateDefault, $deflateParamsDefault, $inflateDefault);
-$VERSION = "1.35" ;
+$VERSION = "1.37" ;
@ISA = qw(Exporter);
# Items to export into callers namespace by default. Note: do not export
The source buffer can either be a scalar or a scalar reference.
-The B<$level> parameter defines the compression level. Valid values are
+The B<$level> paramter defines the compression level. Valid values are
0 through 9, C<Z_NO_COMPRESSION>, C<Z_BEST_SPEED>,
C<Z_BEST_COMPRESSION>, and C<Z_DEFAULT_COMPRESSION>.
If B<$level> is not specified C<Z_DEFAULT_COMPRESSION> will be used.
If the $crc parameters is C<undef>, the crc value will be reset.
-=head1 ACCESSING ZIP FILES
+=head1 FAQ
+
+=head2 Compatibility with Unix compress/uncompress.
+
+Although C<Compress::Zlib> has a pair of functions called C<compress>
+and C<uncompress>, they are I<not> the same as the Unix programs of the
+same name. The C<Compress::Zlib> library is not compatable with Unix
+C<compress>.
+
+If you have the C<uncompress> program available, you can use this to
+read compressed files
+
+ open F, "uncompress -c $filename |";
+ while (<F>)
+ {
+ ...
+
+If you have the C<gunzip> program available, you can use this to read
+compressed files
+
+ open F, "gunzip -c $filename |";
+ while (<F>)
+ {
+ ...
+
+and this to write compress files if you have the C<compress> program
+available
+
+ open F, "| compress -c $filename ";
+ print F "data";
+ ...
+ close F ;
+
+=head2 Accessing .tar.Z files
+
+The C<Archive::Tar> module can optionally use C<Compress::Zlib> (via
+the C<IO::Zlib> module) to access tar files that have been compressed
+with C<gzip>. Unfortunately tar files compressed with the Unix C<compress>
+utility cannot be read by C<Compress::Zlib> and so cannot be directly
+accesses by C<Archive::Tar>.
+
+If the C<uncompress> or C<gunzip> programs are available, you can use
+one of these workarounds to read C<.tar.Z> files from C<Archive::Tar>
+
+Firstly with C<uncompress>
+
+ use strict;
+ use warnings;
+ use Archive::Tar;
+
+ open F, "uncompress -c $filename |";
+ my $tar = Archive::Tar->new(*F);
+ ...
+
+and this with C<gunzip>
+
+ use strict;
+ use warnings;
+ use Archive::Tar;
+
+ open F, "gunzip -c $filename |";
+ my $tar = Archive::Tar->new(*F);
+ ...
+
+Similarly, if the C<compress> program is available, you can use this to
+write a C<.tar.Z> file
+
+ use strict;
+ use warnings;
+ use Archive::Tar;
+ use IO::File;
+
+ my $fh = newIO::File "| compress -c >$filename";
+ my $tar = Archive::Tar->new();
+ ...
+ $tar->write($fh);
+ $fh->close ;
+
+=head2 Accessing ZIP Files
Although it is possible to use this module to access .zip files, there
is a module on CPAN that will do all the hard work for you. Check out
}
-my $Inc = '' ;
-if ($^O eq 'VMS') {
- $Inc = '-"I[-.lib]" -"I[-.arch]"';
-}
-elsif ($^O eq 'MSWin32') {
- foreach (@INC)
- { $Inc .= qq["-I$_" ]}
-}
-else {
- foreach (@INC)
- { $Inc .= "-I$_ " }
-}
+my $Inc = join " ", map qq["-I$_"] => @INC;
my $Perl = '' ;
$Perl = ($ENV{'FULLPERL'} or $^X or 'perl') ;
}
-unlink $file1, $file2, $stderr ;
+END
+{
+ for ($file1, $file2, $stderr) { 1 while unlink $_ } ;
+}