On Sat, 18 Sep 2021 15:15:10 GMT, Kevin Rushforth <[email protected]> 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