On Thu, 2 Dec 2021 14:55:14 GMT, Magnus Ihse Bursie <i...@openjdk.org> wrote:
> This is basically Andrew's old patch that was backed out, with a single > change: I'm using ZipFile instead of ZipInputStream to read in the original > zip. The latter is not capable of reading the extended attributes that > contain the unix permissions. (Why this is so, is not fully clear to me. > What's worse, it's by no means clear from the documentation. We should > probably file a follow-up bug to improve the Javadoc for ZipInputStream, > warning the users to stay away if they can.) > > I have also added the possibility to opt-out of reproducible building by an > argument to SetupZipArchive. This is used in the closed Oracle part of the > build, where we create some temporary zip files that are later discarded, and > not part of the deliverables. This saves us some unnecessary overhead. I tried to find a way to make GitHub display the difference wrt the original, backed out, patch, but utterly failed. So here's a simple diff. This is the only way in which this patch differs from the original. --- ./make/jdk/src/classes/build/tools/makezipreproducible/MakeZipReproducible.java 2021-12-02 19:57:38.000000000 +0100 +++ ../../jdk-ALT/open/make/jdk/src/classes/build/tools/makezipreproducible/MakeZipReproducible.java 2021-12-02 15:11:22.000000000 +0100 @@ -162,13 +162,8 @@ // Process input zip file and add to sorted entries set boolean processInputEntries(File inFile) throws IOException { - try (FileInputStream fis = new FileInputStream(inFile); - ZipInputStream zis = new ZipInputStream(fis)) { - ZipEntry entry; - while ((entry = zis.getNextEntry()) != null) { - entries.put(entry.getName(), entry); - } - } + ZipFile zipFile = new ZipFile(inFile); + zipFile.stream().forEach(entry -> entries.put(entry.getName(), entry)); return true; } ------------- PR: https://git.openjdk.java.net/jdk/pull/6673