Corrected addFileOrDirectory() behaviour and cleaned up some code
[archive-zip.git] / Changes
blob48ff441da569ec18ad511cdf3ef74f0bedb84036
1 Revision history for Perl extension Archive-Zip
3 1.26 Mon 13 Oct 2008 - Adam Kennedy
4   - Fixed the dreaded but #24036: WinXP Explorer Exposes Problems.
5     This caused directories to appear as files in Windows Explorer
6     and was caused by Windows always reading the msdos directory bit
7     even when the file attributes are types as unix.
8     Resolved by emulating the behaviour of Info-Zip and setting
9     the 5th bit in the externalFileAttributes field.
11 1.25 Sat 11 Oct 2008 - Adam Kennedy
12   - Removing "use warnings" instances that somehow slipped in
13   - Skip test if Digest::MD5 is not available
15 1.24 Sun 23 Aug 2008 - Adam Kennedy
16   - Blatantly pander to CPANTS by adding use strict to a deprecated module
17   - Add an explicit load of FileHandle since in some circumstances,
18     calling GLOB->print() failed.
19   - Fixed http://rt.cpan.org/Public/Bug/Display.html?id=25925 :
20     - Archive-Zip wrote faulty .zip files when $\ was set (such as when running
21     using perl -l).
22     - Incorporated a heavily modified version of ECARROLL's test file.
23     - Thanks for ECARROLL for reporting it, and helping with the investigation.
24     - The fix was to convert all $fh->print(@data) to $self->_print($fh, @data)
25     where the _print() method localizes $\ to undef.
26   - Fixed http://rt.cpan.org/Ticket/Display.html?id=14132 :
27     - Incorrect file permissions after extraction.
28     - Archive-Zip did not set the file permissions correctly in
29       extractToFileNamed(). 
30     - Added t/10_chmod.t and t/data/chmod.zip. Changed 
31       lib/Archive/Zip/Member.pm.
32     - Reported by ak2 and jlv (Thanks!)
33     - SHLOMIF wrote the test script.
34     - (SHLOMIF)
35   - Removed a double "required module" from the Archive::Zip POD.
36   - Fixed http://rt.cpan.org/Ticket/Display.html?id=24557 ("documentation 
37     improvement"):
38     - mentioned Archive::Zip::MemberRead in a few places.
39     - TODO: 
40       - 1. Add a method to Archive::Zip to get a ::MemberRead from an
41         archive member using -> notation. (?)
42       - 2. In the POD of ::MemberRead - replace the indirect object
43         call.
44   - Changed the POD of ::MemberRead:
45     - replaced the indirect object construction with $PKG->new().
46   - Fixed http://rt.cpan.org/Public/Bug/Display.html?id=34103 :
47     - changed the example to read unless ( .. == AZ_OK) instead of
48     unless ( != AZ_OK), which was incorrect.
50 1.23 Thu  8 Nov 2007 - Adam Kennedy
51   - Temporarily skilling some failing tests on Win32 in the
52     interests of toolchain sanity. (until we work out the
53     real problem here)
55 1.22 Fri  2 Nov 2007 - Adam Kennedy
56   - Fixing platform compatibility bugs in the new regression tests
57     from 1.21.
59 1.21 Thu  1 Nov 2007 - Adam Kennedy
60   - Tidying up copyright formatting a bit.
61   - Disable the GPBF_HAS_DATA_DESCRIPTOR_MASK bit when auto-switching
62     directory storage to STORED because of a WinZip workaround because
63     the read code in Java JAR which was... ok, I really don't understand,
64     but Roland from Verisign says this one extra line unbreaks JAR files,
65     so I just applied it :)
66   - fixed http://rt.cpan.org/Public/Bug/Display.html?id=27463 with a
67     regression test - cannot add files whose entire filenames are "0". 
68     (SHLOMIF).
69   - fixed http://rt.cpan.org/Public/Bug/Display.html?id=26384 with a 
70     regression test - Archive::Zip::MemberRead::getline ignores 
71     $INPUT_RECORD_SEPARATOR . The modified file in the bug had it to be
72     reworked a bit and tests were added in the file
73     08_readmember_record_sep.t. 
74       - Thanks to kovesp [...] sympatico.ca 
75       - (SHLOMIF)
77 1.20 Tue  5 Jun 2007 - Adam Kennedy
78   - Removing dependency on File::Which due to public outburst of flaming
79     on cpanra(n)tings by H.Merijn Brand. Try a simple email next time. :(
80   - Embedding an entire copy of File::Which inside the tests instead as
81     an alternative to compensating for the lack of build_requires.
82   - Removing the docs directory.
83     It only had out of date files and non-free copyrighted materials.
84     The tarball was probably illegal to distribute as a result.
85     (reported by Debian devs)
87 1.19 Internal use, public release skipped
89 1.18 Wed 25 Oct 2006 - Adam Kennedy
90   - Changing to a production version for final release
91   - No other changes of any kind
93 1.17_05 Tue 19 Sep 2006 - Adam Kennedy
94   - Seperated the classes from the main file into seperate packages.
95   - Merged the Zip.pod into the main Zip.pm file.
96   - Applied default Perl::Tidy to all of the source files, to improve
97     the readability and maintainability of the files.
98   - Added license in Makefile.PL
99   - Added some additional entries to the realclean files
101 1.17_03 Sat 16 Sep 2006 - Adam Kennedy
102   - Adding dependency on File::Which to deal with problems on systems
103     that lack zip and unzip programs. This really should be a build-time
104     dependency only, but ExtUtils::MakeMaker lacks that capability.
105   - Builds and tests cleanly on Win32 now.
107 1.17_02 Sun  7 May 2006 - Adam Kennedy
108   - Renamed the test scripts to the more conventional 01_name.t style
109   - Upgraded all test scripts from Test.pm to Test::More (removing Test.pm dependency)
110   - Various other miscellaneous cleanups of the test scripts
111   - Removed MANIFEST and pod.t from repository (will be auto-generated)
112   - Some cleaning up of the POD documentation for readability
113   - Added SUPPORT section to docs
114   - Merged external TODO file into the POD as a more-common TO DO section
115   - Added a BUGS section to the docs
117 1.17_01 Sun 30 Apr 2006 - Adam Kennedy
118   - Imported Archive::Zip into http://svn.ali.as/cpan/ orphanage.
119     If you have a CPAN login and have released a module, ask ADAMK about an
120     account and you can repair your bug directly in the repository.
121   - Removed the revision comments from the old CVS repository
122   - DOS DateTime Format doesn't support dates before 1980 and goes crazy when
123     decoding back to unix time. If we don't get passed a time at all
124     (0 or undef) we now throw an error.
125   - DOS DateTime Format doesn't support dates before 1980, so if we find any
126     we warn and use Jan 1 12:01pm 1980 if we encounter any
127   - Win32 doesn't support directory modification times.
128     Tentatively use the current time as the mod-time to prevent sending
129     null times to the unix2dos converter (and the resulting error)
130   - Reformat the expected empty zip warning in the output to add a note that
131     the warning is entirely normal. Would be nice if some time later we can
132     suppress it altogether, but I don't have the cross-platform STDERR-fu
133     without adding a dependency to IPC::Run3 (which would be bad).
134   - Adding a proper $VERSION to all classes, and synchronising them to the
135     same value.
136   - Adding a BEGIN block around the require 5.003_96 so it works at
137     compile-time instead of post-compile.
138   - Moved crc32 to bin/crc32 in line with package layout conventions
140 1.16 Mon Jul 04 12:49:30 CDT 2005
141   - Grrrr...removed test that fails when installing under CPANPLUS.
143 1.15 Wed Jun 22 10:24:25 CDT 2005
144   - added fix for RT #12771 Minor nit: warning in Archive::Zip::DirectoryMember::contents() 
145   - added fix for RT #13327 Formatting problem in Archive::Zip::Tree manpage
147 1.15_02 Sat Mar 12 09:16:30 CST 2005 
148   - fixed dates in previous entry!
149   - began the process of migrating from the monolithic t/test.t to 
150     smaller scripts using Test::More.
151   - started work on improving Archive::Zip's test coverage.  Coverage
152     is now up to just over 80%.
153   - added error handling to writeToFileHandle
154   - fixed small bug in extractMember from previous version
156 1.15_01 Wed Mar  9 22:26:52 CST 2005
157   - added fix for RT #11818 extractMember method corrupts archive
158   - added t/pod.t to test for pod correctness
160 1.10 Thu Mar 25 06:24:17 PST 2004
161   - Fixed documentation of setErrorHandler()
162   - Fixed link to Japanese translation of docs
163   - Added Compress::Zlib Bufsize patch from Yeasah Pell that was supposed to
164     have been added in 1.02
165   - Fixed problems with backup filenames for zips with no extension
166   - Fixed problems with undef volume names in _asLocalName()
168 1.09 Wed Nov 26 17:43:49 PST 2003
169   - Fixed handling of inserted garbage (as from viruses)
170   - Always check for local header signatures before using them
171   - Added updateMember() and updateTree() functions
172   - Added examples/mailZip.pl
173   - Added examples/updateTree.pl
174   - Fixed some potential but unreported bugs with function parameters like '0'
175   - Removed stray warn() call
176   - Caught undef second arg to replaceMember()
177   - Fixed test suite run with spaces in build dir name (ticket 4214)
179 1.08 Tue Oct 21 07:01:29 PDT 2003
180   - test noise fix from Michael Schwern (ticket 4174)
181   - FAQ NAME fix from Michael Schwern (ticket 4175)
183 1.07 Mon Oct 20 06:48:41 PDT 2003
184   - Added file attribute code by Maurice Aubrey
185   - Added FAQ about RedHat 9
186   - Added check for empty filenames
188 1.06 Thu Jul 17 11:06:18 PDT 2003
189   - Fixed seek use with IO::Scalar and IO::String
190   - Fixed use of binmode with pseudo-file handles
191   - Removed qr{} form for older Perl versions
192   - Changed rel2abs logic in _asLocalName() if there is a volume
193   - Fixed errors with making directories in extractMember() when none provided
194   - Return AZ_OK in extractMemberWithoutPaths() if member is a directory
195   - Fixed problem in extractTree with blank directory becoming "." prefix
196   - Added examples/writeScalar2.pl to show how to use IO::String as destination of Zip write
197   - Edited docs and FAQ to recommend against using absolute path names in zip files.
199 1.05 Wed Sep 11 12:31:20 PDT 2002
200   - fixed untaint from 1.04
202 1.04 Wed Sep 11 07:22:04 PDT 2002
203   - added untaint of lastModFileDateTime
205 1.03 Mon Sep  2 20:42:43 PDT 2002
206   - Removed dependency on IO::Scalar
207   - Set required version of File::Spec to 0.8
208   - Removed tests of examples that needed IO::Scalar
209   - Added binmode() call to read/writeScalar examples
210   - Fixed addTree() for 5.005 compatibility (still untested with 5.004)
211   - Fixed mkdir() calls for 5.005
212   - Clarified documentation of tree operations
214 1.02 Fri Aug 23 17:07:22 PDT 2002
215   - Many changes for cross-platform use (use File::Spec everywhere)
216   - Separated POD from Perl
217   - Moved Archive::Zip::Tree contents into Archive::Zip
218     A::Z::Tree is now deprecated and will warn with -w
219   - Reorganized docs
220   - Added FAQ
221   - Added chunkSize() call to report current chunk size
222     and added C::Z BufSize patch from Yeasah Pell.
223   - Added fileName() to report last read zip file name
224   - Added capability to prepend data, like for SFX files
225   - Added examples/selfex.pl for self-extracting archives creation
226   - Added examples/zipcheck.pl for validity testing
227   - Made extractToFileNamed() set access/modification times
228   - Added t/testTree.t to test A::Z::Tree
229   - Fix/speed up memberNamed()
230   - Added Archive::Zip::MemberRead by Sreeji K. Das
231   - Added tempFile(), tempName()
232   - Added overwrite() and overwriteAs() to allow read/modify/write of zip
233   - added examples/updateZip.pl to show how to read/modify/write
235 1.01 Tue Apr 30 10:34:44 PDT 2002
236   - Changed mkpath call for directories to work with BSD/OS
237   - Changed tests to work with BSD/OS
239 1.00 Sun Apr 28 2002
240   - Added several examples:
241     - examples/calcSizes.pl
242       How to find out how big a zip file will be before writing it
243     - examples/readScalar.pl
244       shows how to use IO::Scalar as the source of a zip read
245     - examples/unzipAll.pl
246       uses Archive::Zip::Tree to unzip an entire zip
247     - examples/writeScalar.pl
248       shows how to use IO::Scalar as the destination of a zip write
249     - examples/zipGrep.pl
250       Searches for text in zip files
251   - Changed required version of Compress::Zlib to 1.08
252   - Added detection and repair of zips with added garbage (as caused by
253     the Sircam worm)
254   - Added more documentation for FAQ-type questions, though few seem to
255     actually read the documentation.
256   - Fixed problem with stat vs lstat
257   - Changed version number to 1.00 for PHB compatibility
259 0.12 Wed May 23 17:48:21 PDT 2001
260   - Added writeScalar.pl and readScalar.pl to show use of IO::Scalar
261   - Fixed docs
262   - Fixed bug with EOCD signature on block boundary
263   - Made it work with IO::Scalar as file handles
264   - added readFromFileHandle()
265   - remove guess at seekability for Windows compatibility
267 0.11 Tue Jan  9 11:40:10 PST 2001
268   - Added examples/ziprecent.pl (by Rudi Farkas)
269   - Fixed up documentation in Archive::Zip::Tree
270   - Added to documentation in Archive::Zip::Tree
271   - Fixed bugs in Archive::Zip::Tree that kept predicates from working
272   - Detected file not existing errors in addFile
274 0.10 Tue Aug  8 13:50:19 PDT 2000
275   - Several bug fixes
276   - More robust new file handle logic can (again)
277     take opened file handles
278   - Detect attempts to overwrite zip file when members
279     depend on it
281 0.09 Tue May  9 13:27:35 PDT 2000
282   - Added fix for bug in contents()
283   - removed system("rm") call in t/test.t for Windows.
285 0.08 March 27 2000 (unreleased)
286   - Fixed documentation
287   - Used IO::File instead of FileHandle, allowed for use of almost anything as
288     a file handle.
289   - Extra filenames can be passed to extractMember(),
290     extractMemberWithoutPaths(), addFile(), addDirectory()
291   - Added work-around for WinZip bug with 0-length DEFLATED files
292   - Added Archive::Zip::Tree module for adding/extracting hierarchies
294 0.07  Fri Mar 24 10:26:51 PST 2000
295   - Added copyright
296   - Added desiredCompressionLevel() and documentation
297   - Made writeToFileHandle() detect seekability by default
298   - Allowed Archive::Zip->new() to take filename for read()
299   - Added crc32String() to Archive::Zip::Member
300   - Changed requirement in Makefile.PL to Compress::Zip
301     version 1.06 or later (bug in earlier versions can truncate data)
302   - Moved BufferedFileHandle and MockFileHandle into
303     Archive::Zip namespace
304   - Allowed changing error printing routine
305   - Factored out reading of signatures
306   - Made re-read of local header for directory members
307     depend on file handle seekability
308   - Added ability to change member contents
309   - Fixed a possible truncation bug in contents() method
311 0.06  Tue Mar 21 15:28:22 PST 2000
312   - first release to CPAN
314 0.01  Sun Mar 12 18:59:55 2000
315   - original version; created by h2xs 1.19