[Reproducible-builds] java.util.Properties writer and

Sascha Steinbiss sascha at steinbiss.name
Sat May 28 22:02:04 UTC 2016


Hi Emmanuel, 

sorry for contacting you out of the blue, but I have noticed your kind help for the Debian Med and Reproducible Builds teams before, so I was just going to try my luck again ;) 
I am currently trying to make king [1] reproducible, which is currently not built reproducibly because of timestamps in property files written by ant [2] and subsequently packaged into the distributed jar. Apparently these files are written using java.util.Properties store() method, which automatically inserts this timestamp with no chance of overriding it:

  'Next, a comment line is always written, consisting of an ASCII # character, the current date and time (as if produced by the toString method 
  of Date for the current time), and a line separator as generated by the Writer.'

Of course I could simply set the timestamps to a specific value after building but I feel this might be a systematic issue best tackled upstream. There are also some related issue entries in the Reproducible Builds documentation (concerning other files, e.g. Maven related) for which I suspect that they are different manifestations of this same problem.
In addition to the timestamp issue, I am a bit concerned about the order of these properties being written to the file: if the properties are stored in a hash table (as the API documentation seems to suggest) then I am not sure that the order of output is deterministic. At least the method documentation makes no claim about sortedness.

I was wondering whether you have encountered this issue before and in general what your thoughts are. If this behaviour is defined in the API, do you think there is any chance of tackling this upstream?

Many thanks, and best wishes
Sascha

[1] https://tracker.debian.org/pkg/king
[2] https://tests.reproducible-builds.org/rb-pkg/unstable/amd64/king.html
[3] https://docs.oracle.com/javase/7/docs/api/java/util/Properties.html




More information about the Reproducible-builds mailing list