On Sat, 18 Sep 2021 15:15:10 GMT, Kevin Rushforth <k...@openjdk.org> wrote:
>> John Neffenger has updated the pull request with a new target base due to a >> merge or a rebase. The pull request now contains seven commits: >> >> - Make build of SDK ZIP bundle reproducible >> - Merge branch 'master' into allow-reproducible-builds >> - Merge branch 'master' into allow-reproducible-builds >> - Include WebKit shared library for Windows >> >> Enable reproducible builds of the native WebKit shared library for >> Windows (jfxwebkit.dll) when SOURCE_DATE_EPOCH is defined. >> - Include media shared libraries for Windows >> >> Enable reproducible builds of the native media shared libraries for >> Windows when SOURCE_DATE_EPOCH is defined. The libraries are: >> >> fxplugins.dll >> glib-lite.dll >> gstreamer-lite.dll >> jfxmedia.dll >> - Enable reproducible builds with SOURCE_DATE_EPOCH >> - 8238650: Allow to override buildDate with SOURCE_DATE_EPOCH > > Here are couple more observations, and then I'll need to put this on the back > burner for a bit: > > 1. I did a CI build yesterday and again today on all three platforms and > compared the sdk between the two builds for each platform. On all three > platforms the results are the same: All files were identical except the > native jfxwebkit library. So there is something in the WebKit build that is > affected by an external input (perhaps the system date or similar). > 2. On Mac, at least, there are several differences in the dylib files between > a build on my local system and on our CI system. I was using the same devkit > and boot JDK on both, and both were the same version of macOS (10.15.7). > Likely some difference in the software installed on the two systems matters. @kevinrushforth Thank you, Kevin, for your review comments back in September. Your comment about the time zone was extremely helpful and indirectly helped with [openjdk/jdk#6481][1] as well. I think I have addressed all of your concerns now. My more recent commits simply add the following line in preparation for creating reproducible JMOD archives: `// args("--date", buildTimestamp)`. That line needs to be commented out until JavaFX starts building with JDK 19. I ran another round of 30 builds, 10 on each platform, with no surprises. The only non-reproducible artifacts are the JMOD archives and the native WebKit shared library, as before. See my GitHub repository [jgneff/jfxbuild][2] for the build environment and shell scripts that I use to build and test JavaFX on Linux, macOS, and Windows. [1]: https://github.com/openjdk/jdk/pull/6481 [2]: https://github.com/jgneff/jfxbuild ------------- PR: https://git.openjdk.java.net/jfx/pull/446