Am 27.04.2017 um 06:57 schrieb Peter Krefting: > René Scharfe: >> 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.) >> 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. >> 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é