RFR: 8264449: Enable reproducible builds with SOURCE_DATE_EPOCH
John Neffenger
jgneff at openjdk.java.net
Wed Mar 31 23:11:16 UTC 2021
On Wed, 31 Mar 2021 13:59:12 GMT, Kevin Rushforth <kcr at openjdk.org> wrote:
> I recommend trying this with the following gradle flags, to match the settings for production builds:
Thanks, Kevin. Good news so far. I'm posting the Linux results while I run the macOS and Windows builds.
#### Linux
I ran the following commands twice, moving the `build` directory to `build1` and then `build2` to save their output:
$ bash gradlew clean
$ bash gradlew -PCONF=Release -PPROMOTED_BUILD_NUMBER=5 \
-PHUDSON_BUILD_NUMBER=101 -PHUDSON_JOB_NAME=jfx \
-PCOMPILE_WEBKIT=true -PCOMPILE_MEDIA=true \
-PBUILD_LIBAV_STUBS=true sdk jmods javadoc
Then I changed the Hudson job number with `-PHUDSON_BUILD_NUMBER=102`, ran the build a third time, and moved `build` to `build3`. I also ran `strip-nondeterminism` as shown in the first comment of this pull request.
The first result is as hoped, and the second result is as expected:
$ diff -qr build1 build2
$ diff -qr build2 build3
Files build2/jmods/javafx.base.jmod
and build3/jmods/javafx.base.jmod
differ
Files build2/modular-sdk/modules/javafx.base/com/sun/javafx/runtime/VersionInfo.class
and build3/modular-sdk/modules/javafx.base/com/sun/javafx/runtime/VersionInfo.class
differ
Files build2/modular-sdk/modules_src/javafx.base/com/sun/javafx/runtime/VersionInfo.java
and build3/modular-sdk/modules_src/javafx.base/com/sun/javafx/runtime/VersionInfo.java
differ
Files build2/publications/javafx.base-linux.jar
and build3/publications/javafx.base-linux.jar
differ
Files build2/sdk/lib/javafx.base.jar
and build3/sdk/lib/javafx.base.jar
differ
Files build2/sdk/lib/src.zip
and build3/sdk/lib/src.zip
differ
You have to appreciate the irony of adding all this information to the build — the time, the path, even the job number — so that we can uniquely identify a build by its output. Meanwhile, if we didn't add this information, our builds could be uniquely identified by a single Git tag.
-------------
PR: https://git.openjdk.java.net/jfx/pull/446
More information about the openjfx-dev
mailing list