Re: [PATCH v3 4/5] archive-zip: support archives bigger than 4GB
From: René Scharfe <hidden>
Date: 2017-04-27 19:55:19
Am 27.04.2017 um 06:57 schrieb Peter Krefting:
René Scharfe:quoted
Windows XP. Don't laugh. ;)You can always install 7-zip or something to extract on XP.
Sure, but if we were to start emitting zip64 records regardless of the size of entries then we'd break compatibility. We should have a very good reason for doing that. (I don't see the need so far.)
quoted
What do other archivers do?You should compare with what bsdtar (libarchive) does in zip64 mode. It also only ever does streaming mode (with data descriptors and such), and it does zip64.
Good idea. They do the same as InfoZIP (whose behavior I copied in the series), i.e. emit zip64 records only for big files by default: https://github.com/libarchive/libarchive/blob/master/libarchive/archive_write_set_format_zip.c#L722 They set the bar much higher for the uncompressed size of streamed files; they emit zip64 extras only for sizes bigger than 0xff000000.
quoted
But I think a more important question is: Can the generated files be extracted by popular tools (most importantly Windows' built-in functionality, I guess)?OK, so only enable zip64 mode if there are files >4G or the archive ends up being >4G. But the question is how we can tell, especially in streaming mode, and especially if data descriptors are magical...
The type of descriptor to use depends on the presence of 64-bit sizes in a zip64 extra for that record. For streaming compression some kind of threshold lower than 0xffffffff needs to be set, because deflate can increase the size of the result. René