--- Begin Message ---
Subject: |
Java packages are indeterministic (due to order in jar?) |
Date: |
Tue, 17 Jul 2018 23:09:29 +0200 |
/pre-inst-env guix build --check java-eclipse-jdt-core -K
./pre-inst-env guix build --check -K java-httpcomponents-httpcore-nio
both fail.
diffoscope
/gnu/store/6r2x0fbsj9kwvljrdx2nc8nbrvd9d78m-java-eclipse-jdt-core-3.12.3
/gnu/store/6r2x0fbsj9kwvljrdx2nc8nbrvd9d78m-java-eclipse-jdt-core-3.12.3-check/
>java-eclipse-jdt-core-3.12.3_diffoscope.log
This looks like:
│ │ │ │ +org/eclipse/jdt/core/formatter
│ │ │ │ org/eclipse/jdt/core/eval
│ │ │ │ +org/eclipse/jdt/core/jdom
│ │ │ │ org/eclipse/jdt/core/dom
│ │ │ │ org/eclipse/jdt/core/dom/rewrite
│ │ │ │ -org/eclipse/jdt/core/formatter
│ │ │ │ -org/eclipse/jdt/core/jdom
│ │ │ │ -org/eclipse/jdt/core/search
│ │ │ │ -org/eclipse/jdt/core/compiler
│ │ │ │ -org/eclipse/jdt/core/compiler/batch
│ │ │ │ org/eclipse/jdt/core/index
i.e. order is wrong. Full diff attached.
In 'strip-jar-timestamps the jars are repacked the last time, with
find-files and zip.
I made some experiments: zip is sensitive to the order of inputs.
I tried some examples from a Guile-REPL with
find-files from guix/build/utils.scm, but they worked as expected,
returning files in order.
Björn
java-eclipse-jdt-core-3.12.3_diffoscope.log
Description: Text Data
pgpE_VJcD2_jn.pgp
Description: OpenPGP digital signature
--- End Message ---
--- Begin Message ---
Subject: |
Re: bug#32193: Java packages are indeterministic (due to order in jar?) |
Date: |
Thu, 19 Jul 2018 19:51:28 +0200 |
This was due to an ordering issue in META-INF/INDEX.LIST. The file is
generated before running strip-jar-timestamps, so the order of the
content is not deterministic when the file is generated. In
79d4d47b99591e4edd8cefee907fbb0d930f78aa I added a phase before that,
that runs strip-jar-timestamps before and after generating INDEX.LIST
(after because INDEX.LIST otherwise has a timestamp).
The fix was pushed to staging.
pgpFlRjB5Utfi.pgp
Description: Signature digitale OpenPGP
--- End Message ---