Hi all,

I started working on OpenJFX 9 this week. The good news is that it
builds fine in Debian now [1]. The bad news is that it's going to be
significantly more challenging to integrate it with our OpenJDK package.

With OpenJDK 8 the integration was just a matter of installing extra jar
files and native libraries under /usr/lib/jvm/java-8-openjdk-amd64. With
Java 9 and the modularization of the JDK it's another story:
1. The class files for the JRE and JavaFX are merged into a huge binary
blob (lib/modules) using a custom format.
2. The javadocs are also merged into a unique src.zip archive.
3. The JDK contains new .jmod files for each module, and the ones for
JavaFX are built by OpenJDK, not OpenJFX.
4. The JRE modules have to be patched to allow JavaFX classes to use
internal JRE classes.

According to the build instructions of OpenJFX [1] we have to build
OpenJFX first and then build OpenJDK with an extra configuration
parameter (--with-import-modules) pointing to the OpenJFX build directory.

In this context it appears nearly impossible to package OpenJFX
independently of OpenJDK. Here are the options I can see so far:

A. Merge the openjfx package into openjdk.

B. Keep the packages separate and attempt to overcome the issues (1) and
(2) with postinst hooks or triggers merging the files, (3) by patching
the OpenJFX build, and (4) by patching the module-info.java files in
OpenJDK.

C. Generate an intermediary package containing the build result of
OpenJFX and used as a build dependency of OpenJDK.

(A) is problematic because the openjdk package is already quite complex,
and since openjdk is in the hands of the OpenJDK Team I won't be able to
maintain OpenJFX there. (B) involves a lot of work, merging lib/modules
is the biggest issue. (C) requires a rebuild of OpenJDK every time
OpenJFX is updated, but is by far the easiest solution to implement.

What do you think?

Emmanuel Bourg

[1] https://anonscm.debian.org/cgit/pkg-java/openjfx9.git
[2]
https://wiki.openjdk.java.net/display/OpenJFX/Building+OpenJFX#BuildingOpenJFX-IntegrationwithOpenJDK9

Reply via email to