On Mon, 20 Jun 2022 20:02:38 GMT, John Neffenger <[email protected]> wrote:

> > But if we want to have reproducibility amongst ephemeral systems, there is 
> > lots of other work to be done.
> 
> On the contrary, it's precisely these well-defined ephemeral systems that 
> make it easy to reproducible a build. The only other work to be done is to 
> share the build log.

In that case, my understanding of "ephemeral system" was wrong :)
 
> For example, I build JavaFX in a transient container that installs the latest 
> build of Ubuntu 18.04, the current release of OpenJDK, and the following 
> extra packages: `pkg-config`, `libgtk2.0-dev`, `libxtst-dev`, `libgtk-3-dev`, 
> and `libxxf86vm-dev`. With that information, along with the date, the build 
> script, and the JavaFX release tag, anyone can reproduce the build 
> environment. If we allow for reproducible builds, anyone could reproduce the 
> build and get bit-by-bit identical output.

The work I'm talking about is that an Ubuntu 18.04 is not suited to 
build/distribute OpenJFX. Over the past months, we've been working to create a 
devkit that is capable of building binaries and libraries that work on a wide 
variety of systems/distributions, e.g. from Ubuntu 16.04 to Fedora 36. 
Especially with media and webkit, this is not trivial. One of the main issues 
is the dependencies on libc versions (leading to the typical unresolved 
@GLIBC_X.Y symbol errors at runtime).
It's easy to build JavaFX on a single system and run it on more or less similar 
systems, but it is harder to support this wide range of OS'es and sysroots. 
Unless you restrict a number of configurations, there is afaik no stock 
distribution that allows this.

The "lots of work" I'm talking about is the reproducible and automated way to 
create those devkits so that they support a reasonable number of 
{build/host/target} triplets.

-------------

PR: https://git.openjdk.org/jfx/pull/446

Reply via email to