<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html lang="de" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><title></title><style type="text/css">html,body{background-color:#fff;color:#333;line-height:1.4;font-family:arial, helvetica, sans-serif;;}</style></head><body><p>Hello Magnus</p>
<p>In my mind it is necessary to have a reproducible build approach for given Java sources using javac to get jar files for any user project. Because I advocate a reproducible build concept since many years I have found a solution. You find a description here: <a href="https://www.vishia.org/Java/html/source+build/reproducibleJar.html" target="_blank" rel="nofollow noopener">https://www.vishia.org/Java/html/source+build/reproducibleJar.html</a> This was written one year ago, maybe not improved.</p>
<p>You find living examples in my archive: <a href="https://www.vishia.org/Java/deploy/" target="_blank" rel="nofollow noopener">https://www.vishia.org/Java/deploy/</a> See also the java page: <a href="https://www.vishia.org/Java/deploy/" target="_blank" rel="nofollow noopener">https://www.vishia.org/Java</a> with some more hints.</p>
<p>For me for the user's reproducible build approach with javac it is all working. I have replaced the jar tool with an own jar builder using java itself (java.util.zip classes). It should run. </p>
<p>I have not enough time, do also other stuff, but I'm interest on usages of my approach, improve it if necessary/possible, and use it worldwide. LPGL license. </p>
<p>Please write me back if you have found it is usefull. </p>
<p>Best regards, Hartmut Schorrig, Germany. </p>
<div ></div>
<p>Magnus Ihse Bursie schrieb am 06.09.2021 11:17 (GMT +02:00):</p>
<blockquote cite="mid:8bbbc87d-4b30-2ae8-c85f-ad86e35a9fae@oracle.com">
<pre>Hi,

I'm working for Oracle in the Build Group for OpenJDK [1], which is 
primary responsible for creating a built artifact of the OpenJDK source 
code. I also have a general interest in all things about building in 
general, so I've been lurking on this list for a while. :-)

For the last few years, we have worked on a low-effort, background-style 
project to make the build of OpenJDK itself building reproducible. We've 
come far, but there are still issues I'd like to address. (If you have 
any feedback on building OpenJDK itself reproducible, you're welcome to 
contact me directly, or on the build-dev@openjdk.java.net mailing list [2]).

But a larger issue than OpenJDK itself is to make sure that the tools 
from the JDK are creating reproducible builds for all Java projects out 
there. In general, we're doing good (any noticed nondeterminism in javac 
is considered a bug and is fixed promptly), but there are other output 
apart from class files where we've been less good.

There is a current effort to fix the timestamps in .properties files. 
See the PR here [3], or the preceding discussion on the mailing list 
[4]. If anyone from the reproducible builds community has something to 
add to the discussion, now is the time to make your voice heard.

I have recently looked through the tests.reproducible-builds.org site 
for Java-specific problems listed. Most of them seem to be 
project-specific, or due to tools outside of the JDK. But one about 
javadoc caught my eye [5]. I talked to one of the javadoc engineers, and 
he think that any nondeterminism is due to old versions (prior to JDK 
9), which should have been fixed since long. I don't understand how to 
get any further from this page to get more details on the problem. If 
someone could help me by pointing to specific bug reports on javadoc 
generating nondeterministic output, that'd be very helpful.

/Magnus

[1] <a href="https://openjdk.java.net/groups/build/" target="_blank" rel="nofollow noopener" title="https://openjdk.java.net/groups/build/">https://openjdk.java.net/groups/build/</a>
[2] <a href="https://mail.openjdk.java.net/mailman/listinfo/build-dev" target="_blank" rel="nofollow noopener" title="https://mail.openjdk.java.net/mailman/listinfo/build-dev">https://mail.openjdk.java.net/mailman/listinfo/build-dev</a>
[3] <a href="https://github.com/openjdk/jdk/pull/5372" target="_blank" rel="nofollow noopener" title="https://github.com/openjdk/jdk/pull/5372">https://github.com/openjdk/jdk/pull/5372</a>
[4] 
<a href="https://mail.openjdk.java.net/pipermail/core-libs-dev/2021-August/080758.html" target="_blank" rel="nofollow noopener" title="https://mail.openjdk.java.net/pipermail/core-libs-dev/2021-August/080758.html">https://mail.openjdk.java.net/pipermail/core-libs-dev/2021-August/080758.html</a>
[5] 
<a href="https://tests.reproducible-builds.org/debian/issues/unstable/random_order_in_documentation_generated_by_javadoc_issue.html" target="_blank" rel="nofollow noopener" title="https://tests.reproducible-builds.org/debian/issues/unstable/random_order_in_documentation_generated_by_javadoc_issue.html">https://tests.reproducible-builds.org/debian/issues/unstable/random_order_in_documentation_generated_by_javadoc_issue.html</a>










</pre>
</blockquote></body></html>