On Tue, 9 Nov 2021 13:58:24 GMT, Erik Joelsson <er...@openjdk.org> wrote:

>> This PR adds a new openjdk build tool GenerateZip, which generates a final 
>> "zip" file from an input folder, and creates it in a deterministic way, 
>> ensuring ordering and timestamps are set as specified.
>> 
>> Using this tool in ZipArchive.gmk will ensure src.zip is then created 
>> deterministically.
>> 
>> Signed-off-by: Andrew Leonard <anleo...@redhat.com>
>
> make/common/ZipArchive.gmk line 178:
> 
>> 176:             (cd $$(SUPPORT_OUTPUTDIR)/ziptmp/$1/files && \
>> 177:              $(RM) $$@ && \
>> 178:              $(UNZIP) -q $$(SUPPORT_OUTPUTDIR)/ziptmp/$1/tmp.zip && \
> 
> Having to explode the zip here is unfortunate. This means we are creating an 
> almost full copy of the whole src tree in the build directory, something I 
> tried to avoid by leveraging the include/exclude functionality of zip, 
> instead of generating make rules for copying the files I wanted into a source 
> tree to run zip on. This may be a small overhead on Linux, but I'm pretty 
> sure it will be very noticeable on Windows.
> 
> When reading about your tool at first, I assumed it would read the 
> intermediate zip file directly when rebuilding the zip. I don't think 
> modifying it to do that would be too complicated, basically read and 
> processing ZipEntrys instead of walking the file system.

@erikj79 sure, I can look at doing that

> make/jdk/src/classes/build/tools/generatezip/GenerateZip.java line 161:
> 
>> 159:         boolean pathIsDir = fpath.isDirectory();
>> 160: 
>> 161:         // Keep a sorted Set of files to be processed, so that the Jmod 
>> is reproducible
> 
> Aren't we generating zip files rather than jmod files here?

copy&paste error...

-------------

PR: https://git.openjdk.java.net/jdk/pull/6311

Reply via email to