Subject: Openjdk11 not reproducilbe

From: Gábor Boskovits <[email-masked]>
Date: Mon, 28 Jan 2019 09:26:18 +0100

The openjdk package, as submitted on the tracker as #34230 is not reproducible.

doc output passes rounds=2
jdk output does not, differing files:

jmods/java.base.jmod:
this is a jmod file.
You can use diffoscope on it, after strippeing of the 4 bytes binary
header, as it becomes a
standard zip archive then.
the only differing file inside the archive is:
classes/module-info.class, and only the module hashes differ.
This also causes the zip CRC to mismatch.
In summary these seems to be the syndrome of modules differing.

lib/classList:
this file has non-deterministic ordering issues. I could just sort it,
but I believe it causes problems in other files. If it turns out to be
not related to other problems, this is trivial to fix.

lib/modules:
This is a jimage file.
Most differences are from metadata.
You can extract the content using the jimage tool, which is available
from any openjdk package.
There are two problems:
1. We can't regenerate the file from the extracted content, as it
needs additional information. We will have to find the spot in the
build system where this file is created to regenerate it, or patch the
jimage tool to create deteministic metadata.
2. unfortunately there are some real differences in the content:
java.base/jdk/internal/module/SystemModules$all.class:
integer differences
also bytecode differences

module-info.class:
hash differences
(this seems to be a sympthom)

I have no info on the out output, as the daemon only reports the first
differing output.

Thanks for Julien in helping me out in collecting these informations.