* bug#32193: Java packages are indeterministic (due to order in jar?)
@ 2018-07-17 21:09 Björn Höfling
2018-07-19 17:51 ` Julien Lepiller
0 siblings, 1 reply; 2+ messages in thread
From: Björn Höfling @ 2018-07-17 21:09 UTC (permalink / raw)
To: 32193
[-- Attachment #1.1: Type: text/plain, Size: 1255 bytes --]
/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
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.2: java-eclipse-jdt-core-3.12.3_diffoscope.log --]
[-- Type: text/x-log, Size: 6623 bytes --]
--- /gnu/store/6r2x0fbsj9kwvljrdx2nc8nbrvd9d78m-java-eclipse-jdt-core-3.12.3
+++ /gnu/store/6r2x0fbsj9kwvljrdx2nc8nbrvd9d78m-java-eclipse-jdt-core-3.12.3-check/
├── share
│ ├── java
│ │ ├── eclipse-jdt-core.jar
│ │ │ ├── zipinfo -v {}
│ │ │ │ @@ -54,15 +54,15 @@
│ │ │ │ version of encoding software: 3.0
│ │ │ │ minimum file system compatibility required: MS-DOS, OS/2 or NT FAT
│ │ │ │ minimum software version required to extract: 1.0
│ │ │ │ compression method: none (stored)
│ │ │ │ file security status: not encrypted
│ │ │ │ extended local header: no
│ │ │ │ file last modified on (DOS date/time): 1980 Jan 1 00:00:00
│ │ │ │ - 32-bit CRC value (hex): 2bf4f7e9
│ │ │ │ + 32-bit CRC value (hex): 702a8ee6
│ │ │ │ compressed size: 1922 bytes
│ │ │ │ uncompressed size: 1922 bytes
│ │ │ │ length of filename: 19 characters
│ │ │ │ length of extra field: 0 bytes
│ │ │ │ length of file comment: 0 characters
│ │ │ │ disk number on which file begins: disk 1
│ │ │ │ apparent file type: binary
│ │ │ ├── META-INF/INDEX.LIST
│ │ │ │┄ ordering differences only
│ │ │ │ @@ -1,55 +1,55 @@
│ │ │ │ JarIndex-Version: 1.0
│ │ │ │
│ │ │ │ /gnu/store/6r2x0fbsj9kwvljrdx2nc8nbrvd9d78m-java-eclipse-jdt-core-3.12.3/share/java/eclipse-jdt-core.jar
│ │ │ │ org
│ │ │ │ org/eclipse
│ │ │ │ org/eclipse/jdt
│ │ │ │ org/eclipse/jdt/core
│ │ │ │ +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
│ │ │ │ org/eclipse/jdt/core/util
│ │ │ │ +org/eclipse/jdt/core/compiler
│ │ │ │ +org/eclipse/jdt/core/compiler/batch
│ │ │ │ +org/eclipse/jdt/core/search
│ │ │ │ org/eclipse/jdt/internal
│ │ │ │ +org/eclipse/jdt/internal/codeassist
│ │ │ │ +org/eclipse/jdt/internal/codeassist/complete
│ │ │ │ +org/eclipse/jdt/internal/codeassist/select
│ │ │ │ +org/eclipse/jdt/internal/codeassist/impl
│ │ │ │ +org/eclipse/jdt/internal/formatter
│ │ │ │ +org/eclipse/jdt/internal/formatter/linewrap
│ │ │ │ +org/eclipse/jdt/internal/formatter/old
│ │ │ │ org/eclipse/jdt/internal/eval
│ │ │ │ +org/eclipse/jdt/internal/antadapter
│ │ │ │ org/eclipse/jdt/internal/core
│ │ │ │ org/eclipse/jdt/internal/core/eval
│ │ │ │ -org/eclipse/jdt/internal/core/hierarchy
│ │ │ │ +org/eclipse/jdt/internal/core/jdom
│ │ │ │ org/eclipse/jdt/internal/core/dom
│ │ │ │ org/eclipse/jdt/internal/core/dom/rewrite
│ │ │ │ org/eclipse/jdt/internal/core/dom/rewrite/imports
│ │ │ │ org/eclipse/jdt/internal/core/builder
│ │ │ │ -org/eclipse/jdt/internal/core/jdom
│ │ │ │ -org/eclipse/jdt/internal/core/search
│ │ │ │ -org/eclipse/jdt/internal/core/search/matching
│ │ │ │ -org/eclipse/jdt/internal/core/search/indexing
│ │ │ │ -org/eclipse/jdt/internal/core/search/processing
│ │ │ │ org/eclipse/jdt/internal/core/index
│ │ │ │ +org/eclipse/jdt/internal/core/hierarchy
│ │ │ │ org/eclipse/jdt/internal/core/util
│ │ │ │ -org/eclipse/jdt/internal/codeassist
│ │ │ │ -org/eclipse/jdt/internal/codeassist/complete
│ │ │ │ -org/eclipse/jdt/internal/codeassist/select
│ │ │ │ -org/eclipse/jdt/internal/codeassist/impl
│ │ │ │ -org/eclipse/jdt/internal/formatter
│ │ │ │ -org/eclipse/jdt/internal/formatter/old
│ │ │ │ -org/eclipse/jdt/internal/formatter/linewrap
│ │ │ │ +org/eclipse/jdt/internal/core/search
│ │ │ │ +org/eclipse/jdt/internal/core/search/processing
│ │ │ │ +org/eclipse/jdt/internal/core/search/indexing
│ │ │ │ +org/eclipse/jdt/internal/core/search/matching
│ │ │ │ org/eclipse/jdt/internal/compiler
│ │ │ │ -org/eclipse/jdt/internal/compiler/lookup
│ │ │ │ -org/eclipse/jdt/internal/compiler/batch
│ │ │ │ -org/eclipse/jdt/internal/compiler/flow
│ │ │ │ -org/eclipse/jdt/internal/compiler/codegen
│ │ │ │ -org/eclipse/jdt/internal/compiler/ast
│ │ │ │ -org/eclipse/jdt/internal/compiler/classfmt
│ │ │ │ -org/eclipse/jdt/internal/compiler/impl
│ │ │ │ -org/eclipse/jdt/internal/compiler/env
│ │ │ │ org/eclipse/jdt/internal/compiler/parser
│ │ │ │ org/eclipse/jdt/internal/compiler/parser/diagnose
│ │ │ │ org/eclipse/jdt/internal/compiler/problem
│ │ │ │ +org/eclipse/jdt/internal/compiler/impl
│ │ │ │ +org/eclipse/jdt/internal/compiler/codegen
│ │ │ │ +org/eclipse/jdt/internal/compiler/ast
│ │ │ │ org/eclipse/jdt/internal/compiler/util
│ │ │ │ -org/eclipse/jdt/internal/antadapter
│ │ │ │ +org/eclipse/jdt/internal/compiler/env
│ │ │ │ +org/eclipse/jdt/internal/compiler/classfmt
│ │ │ │ +org/eclipse/jdt/internal/compiler/batch
│ │ │ │ +org/eclipse/jdt/internal/compiler/lookup
│ │ │ │ +org/eclipse/jdt/internal/compiler/flow
│ │ │ ├── /gnu/store/as7vb5xx7vqdwmmqj9543470r49b4c0c-coreutils-8.28/bin/stat {}
│ │ │ │ @@ -1,8 +1,8 @@
│ │ │ │
│ │ │ │ Size: 9537736 Blocks: 18632 IO Block: 4096 regular file
│ │ │ │ -Links: 2
│ │ │ │ +Links: 1
│ │ │ │ Access: (0444/-r--r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
│ │ │ │
│ │ │ │ Modify: 1970-01-01 00:00:01.000000000 +0000
│ │ │ │
│ │ │ │ Birth: -
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 181 bytes --]
^ permalink raw reply [flat|nested] 2+ messages in thread
* bug#32193: Java packages are indeterministic (due to order in jar?)
2018-07-17 21:09 bug#32193: Java packages are indeterministic (due to order in jar?) Björn Höfling
@ 2018-07-19 17:51 ` Julien Lepiller
0 siblings, 0 replies; 2+ messages in thread
From: Julien Lepiller @ 2018-07-19 17:51 UTC (permalink / raw)
To: 32193-done
[-- Attachment #1: Type: text/plain, Size: 431 bytes --]
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.
[-- Attachment #2: Signature digitale OpenPGP --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2018-07-19 17:52 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-07-17 21:09 bug#32193: Java packages are indeterministic (due to order in jar?) Björn Höfling
2018-07-19 17:51 ` Julien Lepiller
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).