Skip Menu |

This queue is for tickets about the Archive-Zip CPAN distribution.

Report information
The Basics
Id: 70856
Status: resolved
Priority: 0/
Queue: Archive-Zip

People
Owner: Nobody in particular
Requestors: ejtrochim [...] alaska.edu
Cc:
AdminCc:

Bug Information
Severity: Wishlist
Broken in:
  • 1.30
  • 1.31_04
Fixed in: (no value)



Subject: Add Zip64 support
Archive::Zip does not support the Zip64 format which is required to read and write archives greater than 4GB, have members with compressed/uncompressed sizes over 4GB or have more than 65,535 members in an archive. Currently, Archive::Zip will fail to read in a Zip64 archive, claiming it encountered a bad signature. Additionally, Archive::Zip will produce an archive with corrupted metadata in the central directory if it attempts to create an archive that exceeds any of the above limits.
On 2011-09-09 18:37:23, ejtrochim wrote: Show quoted text
> Archive::Zip does not support the Zip64 format which is required to read > and write archives greater than 4GB, have members with > compressed/uncompressed sizes over 4GB or have more than 65,535 members > in an archive. > > Currently, Archive::Zip will fail to read in a Zip64 archive, claiming > it encountered a bad signature. Additionally, Archive::Zip will produce > an archive with corrupted metadata in the central directory if it > attempts to create an archive that exceeds any of the above limits.
To help people googling with the error message — here's how a stack trace looks like when Archive::Zip tries to read such a file: format error: bad signature: 0x031e0201 at offset 4456518 in file /tmp/64k.zip at /usr/local/lib/perl5/site_perl/5.12.4/Archive/Zip.pm line 477 Archive::Zip::_readSignature('IO::File=GLOB(0x8029e4630)', '/tmp/64k.zip') called at /usr/local/lib/perl5/site_perl/5.12.4/Archive/Zip/Archive.pm line 603 Archive::Zip::Archive::readFromFileHandle('Archive::Zip::Archive=HASH(0x801812648)', 'IO::File=GLOB(0x8029e4630)', '/tmp/64k.zip') called at /usr/local/lib/perl5/site_perl/5.12.4/Archive/Zip/Archive.pm line 548 Archive::Zip::Archive::read('Archive::Zip::Archive=HASH(0x801812648)', '/tmp/64k.zip') called at /usr/local/lib/perl5/site_perl/5.12.4/Archive/Zip/Archive.pm line 51 Archive::Zip::Archive::new('Archive::Zip::Archive', '/tmp/64k.zip') called at /usr/local/lib/perl5/site_perl/5.12.4/Archive/Zip.pm line 287 Archive::Zip::new('Archive::Zip', '/tmp/64k.zip') called at /tmp/64kzip.pl line 23 Regards, Slaven
As an alternative, IO::Compress::Zip and IO::Uncompress::Unzip support Zip64 files. Regards, Slaven
Slaven, thanks for posting what the stack trace looks like & what alternatives exist. It indeed helped me at Google-time.
Thanks for bringing this issue up - I'm looking at how to implement this. Any pointers you have (no pun intended) would be helpful. On Wed Dec 19 14:09:24 2012, SREZIC wrote: Show quoted text
> On 2011-09-09 18:37:23, ejtrochim wrote:
> > Archive::Zip does not support the Zip64 format which is required to > > read > > and write archives greater than 4GB, have members with > > compressed/uncompressed sizes over 4GB or have more than 65,535 > > members > > in an archive. > > > > Currently, Archive::Zip will fail to read in a Zip64 archive, > > claiming > > it encountered a bad signature. Additionally, Archive::Zip will > > produce > > an archive with corrupted metadata in the central directory if it > > attempts to create an archive that exceeds any of the above limits.
> > To help people googling with the error message — here's how a stack > trace looks like when Archive::Zip tries to read such a file: > > format error: bad signature: 0x031e0201 at offset 4456518 in file > /tmp/64k.zip > at /usr/local/lib/perl5/site_perl/5.12.4/Archive/Zip.pm line 477 > Archive::Zip::_readSignature('IO::File=GLOB(0x8029e4630)', > '/tmp/64k.zip') called at > /usr/local/lib/perl5/site_perl/5.12.4/Archive/Zip/Archive.pm line 603 > > Archive::Zip::Archive::readFromFileHandle('Archive::Zip::Archive=HASH(0x801812648)', > 'IO::File=GLOB(0x8029e4630)', '/tmp/64k.zip') called at > /usr/local/lib/perl5/site_perl/5.12.4/Archive/Zip/Archive.pm line 548 > > Archive::Zip::Archive::read('Archive::Zip::Archive=HASH(0x801812648)', > '/tmp/64k.zip') called at > /usr/local/lib/perl5/site_perl/5.12.4/Archive/Zip/Archive.pm line 51 > Archive::Zip::Archive::new('Archive::Zip::Archive', > '/tmp/64k.zip') called at > /usr/local/lib/perl5/site_perl/5.12.4/Archive/Zip.pm line 287 > Archive::Zip::new('Archive::Zip', '/tmp/64k.zip') called at > /tmp/64kzip.pl line 23 > > > Regards, > Slaven
The ZIP64 specification can be found here: https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT
Subject: Re: [rt.cpan.org #70856] Add Zip64 support
Date: Wed, 22 Aug 2018 09:25:28 -0700
To: bug-Archive-Zip [...] rt.cpan.org
From: Fred Moyer <fred [...] redhotpenguin.com>
Patches very welcome. Just became a dad for the second time, so I don't have the bandwidth to implement this anytime soon On Wed, Aug 22, 2018, 5:11 AM Phil Harvey via RT < bug-Archive-Zip@rt.cpan.org> wrote: Show quoted text
> Queue: Archive-Zip > Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=70856 > > > The ZIP64 specification can be found here: > > https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT >
Fixed in 1.67