<!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>