summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorgy Yakovlev <gyakovlev@gentoo.org>2020-09-18 18:10:05 -0700
committerGeorgy Yakovlev <gyakovlev@gentoo.org>2020-09-18 19:56:26 -0700
commit4eda5ab2b3cb995c23c2af6b2b0397637c2b21f0 (patch)
tree034ccce930247494d6bced68978e30d9f7c5ed9f /dev-java
parentapp-portage/nattka: Stabilize 0.2.10 arm, #743265 (diff)
downloadgentoo-4eda5ab2b3cb995c23c2af6b2b0397637c2b21f0.tar.gz
gentoo-4eda5ab2b3cb995c23c2af6b2b0397637c2b21f0.tar.bz2
gentoo-4eda5ab2b3cb995c23c2af6b2b0397637c2b21f0.zip
dev-java/openjfx: add openjfx8
Bug: https://bugs.gentoo.org/681828 Closes: https://bugs.gentoo.org/547918 Package-Manager: Portage-3.0.4, Repoman-3.0.1 Signed-off-by: Georgy Yakovlev <gyakovlev@gentoo.org>
Diffstat (limited to 'dev-java')
-rw-r--r--dev-java/openjfx/Manifest1
-rw-r--r--dev-java/openjfx/files/8/0000-Fix-wait-call-in-PosixPlatform.patch14
-rw-r--r--dev-java/openjfx/files/8/0001-Change-Lucene.patch79
-rw-r--r--dev-java/openjfx/files/8/0001-don-t-force-msse.patch69
-rw-r--r--dev-java/openjfx/files/8/0002-Allow-build-to-work-on-newer-gradles.patch10
-rw-r--r--dev-java/openjfx/files/8/0003-fix-cast-between-incompatible-function-types.patch77
-rw-r--r--dev-java/openjfx/files/8/0004-Fix-Compilation-Flags.patch23
-rw-r--r--dev-java/openjfx/files/8/0005-don-t-include-xlocale.h.patch25
-rw-r--r--dev-java/openjfx/files/8/06-disable-architecture-verification.patch21
-rw-r--r--dev-java/openjfx/files/8/07-disable-assembler-on-unsupported-archs.patch18
-rw-r--r--dev-java/openjfx/files/8/10-javadoc-locale.patch21
-rw-r--r--dev-java/openjfx/files/8/99-sysdeps.patch30
-rw-r--r--dev-java/openjfx/files/8/Wno-error.patch121
-rw-r--r--dev-java/openjfx/files/8/disable-online-repos.patch54
-rw-r--r--dev-java/openjfx/files/8/respect_flags.patch22
-rw-r--r--dev-java/openjfx/openjfx-8.202.ebuild185
16 files changed, 770 insertions, 0 deletions
diff --git a/dev-java/openjfx/Manifest b/dev-java/openjfx/Manifest
index 1b63e2853373..28cb9dbe6dac 100644
--- a/dev-java/openjfx/Manifest
+++ b/dev-java/openjfx/Manifest
@@ -8,3 +8,4 @@ DIST lucene-queries-7.1.0.jar 243126 BLAKE2B 166c3efea04c19314be7fd8c1d6b1378b2b
DIST lucene-queryparser-7.1.0.jar 384680 BLAKE2B adce2572de9f534323eead31dd30f97b853b2d5e4be6828c415f0c647460c361e00680d856ff9ffbba0fe45c3e4a425d68938a3d2dc01c76491bb65673e120fa SHA512 7151ef899e318679995138262c3450577ae33580708864581dc22a027f43ca4989825d434680925547e3c04ad4453a454e7045f605d7eee0da57d63db978ed68
DIST lucene-sandbox-7.1.0.jar 182914 BLAKE2B 70c795f84d8f0908abe47db77f632eeb6571a77e1445b8ab04a75080cea40e3b8171071965ff7fd9f6d39a450dd33144e922d19c1f07c605de54b45e3e881323 SHA512 6faf9fd9c7c082bf062adb6a28d89447e6e27152eb3f0a325081e5f791196e5440334632ccbf9c458940220676f7e73390a174889d9b7a656d088b3dade5d500
DIST openjfx-11.0.9_p0.tar.bz2 64148934 BLAKE2B 317fb1c9ea99816ecbd8ab64ed3a6ad0aaa319bedd17bf71ee192c5e610fea14611f3938302f1caf666980bcc7d4787f770e36aec1884a73dac3ddba8e1a878f SHA512 8b6d339131f096b4490d7a8c4a20c15362b4f6c6aa4ddd74f610f3b5a8b8c7aac3ab123dcdd5488cc37dc38f1536ce1db95286f4233ee4db1845d1bd560b2236
+DIST openjfx-8.202.tar.bz2 62024068 BLAKE2B 006d9a3922812b58a80b6c8e2c80d758b7e18375da5667141cd266b5ce6ae4859d95d7a6701031926db1ce12b5638dfc6ff710cbe8e6c0bc74f347dc0c5f167c SHA512 6759c6422bfc18f78877b13ac664da23c820e8c37f31f3b470760e344b2b6a18936c5a70e3a495addf2129c2548375dc5588147eb0cefbf41dae258ef0d8896c
diff --git a/dev-java/openjfx/files/8/0000-Fix-wait-call-in-PosixPlatform.patch b/dev-java/openjfx/files/8/0000-Fix-wait-call-in-PosixPlatform.patch
new file mode 100644
index 000000000000..fee211fd8770
--- /dev/null
+++ b/dev-java/openjfx/files/8/0000-Fix-wait-call-in-PosixPlatform.patch
@@ -0,0 +1,14 @@
+--- rt-8u202-b02/modules/fxpackager/src/main/native/library/common/PosixPlatform.cpp 2018-10-29 16:26:04.000000000 +0100
++++ rt-8u202-b02-patched/modules/fxpackager/src/main/native/library/common/PosixPlatform.cpp 2018-11-27 15:34:52.170181958 +0100
+@@ -232,10 +232,7 @@
+ pid_t wpid = 0;
+
+ //TODO Use waitpid instead of wait
+-#ifdef LINUX
+- wait(&status);
+-#endif
+-#ifdef MAC
++#if defined(LINUX) || defined(MAC)
+ wpid = wait(&status);
+ #endif
+
diff --git a/dev-java/openjfx/files/8/0001-Change-Lucene.patch b/dev-java/openjfx/files/8/0001-Change-Lucene.patch
new file mode 100644
index 000000000000..58d0c805ccb5
--- /dev/null
+++ b/dev-java/openjfx/files/8/0001-Change-Lucene.patch
@@ -0,0 +1,79 @@
+--- rt-8u202-b02/build.gradle
++++ rt-8u202-b02-patched/build.gradle
+@@ -3268,38 +3268,38 @@
+ // The apps build is Ant based, and gradle lets us "import" ant build.xml
+ // into our configuration.
+
+- ant.importBuild 'build.xml'
++ //ant.importBuild 'build.xml'
+
+ // Download the Lucene libraries needed for the Ensemble8 app
+- def luceneVersion = "7.4.0"
+- getConfigurations().create("lucene");
+- dependencies {
+- lucene group: "org.apache.lucene", name: "lucene-core", version: luceneVersion
+- lucene group: "org.apache.lucene", name: "lucene-grouping", version: luceneVersion
+- lucene group: "org.apache.lucene", name: "lucene-queryparser", version: luceneVersion
+- }
++ //def luceneVersion = "7.4.0"
++ //getConfigurations().create("lucene");
++ //dependencies {
++ // lucene group: "org.apache.lucene", name: "lucene-core", version: luceneVersion
++ // lucene group: "org.apache.lucene", name: "lucene-grouping", version: luceneVersion
++ // lucene group: "org.apache.lucene", name: "lucene-queryparser", version: luceneVersion
++ //}
+
+ // Copy Lucene libraries into the Ensemble8/lib directory
+- File ensembleLibDir = rootProject.file("apps/samples/Ensemble8/lib");
+- def libNames = [ "lucene-core-${luceneVersion}.jar",
+- "lucene-grouping-${luceneVersion}.jar",
+- "lucene-queryparser-${luceneVersion}.jar" ]
+-
+-
+- task getLucene(type: Copy) {
+- doFirst {
+- ensembleLibDir.mkdirs();
+- }
+- into ensembleLibDir
+- includeEmptyDirs = false
+- configurations.lucene.files.each { f ->
+- libNames.each { name ->
+- if (name == f.getName()) {
+- from f.getPath()
+- }
+- }
+- }
+- }
++ //File ensembleLibDir = rootProject.file("apps/samples/Ensemble8/lib");
++ //def libNames = [ "lucene-core-${luceneVersion}.jar",
++ // "lucene-grouping-${luceneVersion}.jar",
++ // "lucene-queryparser-${luceneVersion}.jar" ]
++
++
++ //task getLucene(type: Copy) {
++ // doFirst {
++ // ensembleLibDir.mkdirs();
++ // }
++ // into ensembleLibDir
++ // includeEmptyDirs = false
++ // configurations.lucene.files.each { f ->
++ // libNames.each { name ->
++ // if (name == f.getName()) {
++ // from f.getPath()
++ // }
++ // }
++ // }
++ //}
+
+ compileTargets { t ->
+ // The apps build is Ant based, and gradle lets us "import" ant apps/build.xml
+@@ -3310,7 +3310,7 @@
+ def jfxrtJar = "${rootProject.buildDir}/${sdkDirName}/rt/lib/ext/jfxrt.jar"
+
+ def appsJar = project.task("appsJar${t.capital}") {
+- dependsOn(sdk, getLucene)
++ dependsOn(sdk)
+ doLast() {
+ ant.properties['targetBld'] = "$t.name"
+ if (!rootProject.ext[t.upper].compileSwing) {
+
diff --git a/dev-java/openjfx/files/8/0001-don-t-force-msse.patch b/dev-java/openjfx/files/8/0001-don-t-force-msse.patch
new file mode 100644
index 000000000000..0a114b039c3e
--- /dev/null
+++ b/dev-java/openjfx/files/8/0001-don-t-force-msse.patch
@@ -0,0 +1,69 @@
+From 6483d73551590e8036cd5ec6d317e8114b403f36 Mon Sep 17 00:00:00 2001
+From: Georgy Yakovlev <gyakovlev@gentoo.org>
+Date: Sun, 26 Apr 2020 20:57:39 -0700
+Subject: [PATCH] don't force msse
+
+---
+ .../main/native/gstreamer/projects/linux/avplugin/Makefile | 1 -
+ .../native/gstreamer/projects/linux/fxplugins/Makefile | 1 -
+ .../media/src/main/native/jfxmedia/projects/linux/Makefile | 1 -
+ modules/web/src/main/native/Tools/Scripts/webkitdirs.pm | 7 -------
+ 4 files changed, 10 deletions(-)
+
+diff --git a/modules/media/src/main/native/gstreamer/projects/linux/avplugin/Makefile b/modules/media/src/main/native/gstreamer/projects/linux/avplugin/Makefile
+index df9f7f21..f82f0537 100644
+--- a/modules/media/src/main/native/gstreamer/projects/linux/avplugin/Makefile
++++ b/modules/media/src/main/native/gstreamer/projects/linux/avplugin/Makefile
+@@ -28,7 +28,6 @@ CFLAGS = -fPIC \
+ -Wformat-security \
+ -Werror=implicit-function-declaration \
+ -fstack-protector \
+- -msse2 \
+ -fbuiltin \
+ -DHAVE_STDINT_H \
+ -DLINUX \
+diff --git a/modules/media/src/main/native/gstreamer/projects/linux/fxplugins/Makefile b/modules/media/src/main/native/gstreamer/projects/linux/fxplugins/Makefile
+index fd3847d0..3887ac6d 100644
+--- a/modules/media/src/main/native/gstreamer/projects/linux/fxplugins/Makefile
++++ b/modules/media/src/main/native/gstreamer/projects/linux/fxplugins/Makefile
+@@ -25,7 +25,6 @@ CFLAGS = -fPIC \
+ -Wformat-security \
+ -Werror=implicit-function-declaration \
+ -fstack-protector \
+- -msse2 \
+ -fbuiltin \
+ -DHAVE_STDINT_H \
+ -DLINUX \
+diff --git a/modules/media/src/main/native/jfxmedia/projects/linux/Makefile b/modules/media/src/main/native/jfxmedia/projects/linux/Makefile
+index 3d089501..10fad68f 100644
+--- a/modules/media/src/main/native/jfxmedia/projects/linux/Makefile
++++ b/modules/media/src/main/native/jfxmedia/projects/linux/Makefile
+@@ -44,7 +44,6 @@ ifdef HOST_COMPILE
+ -Wformat-security \
+ -fstack-protector \
+ -Werror=implicit-function-declaration \
+- -msse2 \
+ -DGSTREAMER_LITE
+
+ INCLUDES = $(BASE_INCLUDES) \
+diff --git a/modules/web/src/main/native/Tools/Scripts/webkitdirs.pm b/modules/web/src/main/native/Tools/Scripts/webkitdirs.pm
+index ced93727..b95062ea 100644
+--- a/modules/web/src/main/native/Tools/Scripts/webkitdirs.pm
++++ b/modules/web/src/main/native/Tools/Scripts/webkitdirs.pm
+@@ -2192,13 +2192,6 @@ sub generateBuildSystemFromCMakeProject
+ my $cmakeSourceDir = isCygwin() ? windowsSourceDir() : sourceDir();
+ push @args, '"' . $cmakeSourceDir . '"';
+
+- # Compiler options to keep floating point values consistent
+- # between 32-bit and 64-bit architectures.
+- determineArchitecture();
+- if ($architecture eq "i686" && !isCrossCompilation() && !isAnyWindows()) {
+- $ENV{'CXXFLAGS'} = "-march=pentium4 -msse2 -mfpmath=sse " . ($ENV{'CXXFLAGS'} || "");
+- }
+-
+ # We call system("cmake @args") instead of system("cmake", @args) so that @args is
+ # parsed for shell metacharacters.
+ my $wrapper = join(" ", wrapperPrefixIfNeeded()) . " ";
+--
+2.26.2
+
diff --git a/dev-java/openjfx/files/8/0002-Allow-build-to-work-on-newer-gradles.patch b/dev-java/openjfx/files/8/0002-Allow-build-to-work-on-newer-gradles.patch
new file mode 100644
index 000000000000..050ee23b07ae
--- /dev/null
+++ b/dev-java/openjfx/files/8/0002-Allow-build-to-work-on-newer-gradles.patch
@@ -0,0 +1,10 @@
+--- rt-8u152-b05/buildSrc/build.gradle 2017-06-16 01:18:26.000000000 +0200
++++ rt-8u152-b05-patched/buildSrc/build.gradle 2018-11-07 13:15:06.915893681 +0100
+@@ -57,6 +57,7 @@
+
+
+ repositories {
++ xmvn()
+ if (buildClosed) {
+ ivy {
+ url jfxRepositoryURL
diff --git a/dev-java/openjfx/files/8/0003-fix-cast-between-incompatible-function-types.patch b/dev-java/openjfx/files/8/0003-fix-cast-between-incompatible-function-types.patch
new file mode 100644
index 000000000000..011e952b9440
--- /dev/null
+++ b/dev-java/openjfx/files/8/0003-fix-cast-between-incompatible-function-types.patch
@@ -0,0 +1,77 @@
+From 36b952bdcdc301a600009308bff90440b6ceab5b Mon Sep 17 00:00:00 2001
+From: Mat Booth <mat.booth@redhat.com>
+Date: Thu, 21 Jun 2018 15:57:01 +0100
+Subject: [PATCH 4/4] fix cast between incompatible function types
+
+---
+ modules/graphics/src/main/native-glass/gtk/glass_dnd.cpp | 8 ++++++--
+ .../src/main/native-glass/gtk/glass_window_ime.cpp | 9 +++------
+ 2 files changed, 9 insertions(+), 8 deletions(-)
+
+diff --git a/modules/graphics/src/main/native-glass/gtk/glass_dnd.cpp b/modules/graphics/src/main/native-glass/gtk/glass_dnd.cpp
+index f85b1dae..3b9225f7 100644
+--- a/modules/graphics/src/main/native-glass/gtk/glass_dnd.cpp
++++ b/modules/graphics/src/main/native-glass/gtk/glass_dnd.cpp
+@@ -556,7 +556,7 @@ static GdkDragContext *get_drag_context() {
+ return ctx;
+ }
+
+-static gboolean dnd_finish_callback() {
++static gboolean dnd_finish_callback(gpointer data) {
+ if (dnd_window) {
+ dnd_set_performed_action(
+ translate_gdk_action_to_glass(
+@@ -1079,6 +1079,10 @@ gboolean DragView::get_drag_image_offset(int* x, int* y) {
+ return offset_set;
+ }
+
++static void on_pixbuf_destroy_notify(guchar *pixels, gpointer data) {
++ g_free(pixels);
++}
++
+ GdkPixbuf* DragView::get_drag_image(gboolean* is_raw_image, gint* width, gint* height) {
+ GdkPixbuf *pixbuf = NULL;
+ gboolean is_raw = FALSE;
+@@ -1106,7 +1110,7 @@ GdkPixbuf* DragView::get_drag_image(gboolean* is_raw_image, gint* width, gint* h
+ if (data) {
+ memcpy(data, (raw + whsz), nraw - whsz);
+ pixbuf = gdk_pixbuf_new_from_data(data, GDK_COLORSPACE_RGB, TRUE, 8,
+- w, h, w * 4, (GdkPixbufDestroyNotify) g_free, NULL);
++ w, h, w * 4, (GdkPixbufDestroyNotify) on_pixbuf_destroy_notify, NULL);
+ }
+ }
+ }
+diff --git a/modules/graphics/src/main/native-glass/gtk/glass_window_ime.cpp b/modules/graphics/src/main/native-glass/gtk/glass_window_ime.cpp
+index 82e54d11..51af2a6a 100644
+--- a/modules/graphics/src/main/native-glass/gtk/glass_window_ime.cpp
++++ b/modules/graphics/src/main/native-glass/gtk/glass_window_ime.cpp
+@@ -122,15 +122,12 @@ bool WindowContextBase::filterIME(GdkEvent * event) {
+ }
+ }
+
+-//Note: this function must return int, despite the fact it doesn't conform to XIMProc type.
+-// This is required in documentation of XIM
+-static int im_preedit_start(XIM im_xim, XPointer client, XPointer call) {
++static void im_preedit_start(XIM im_xim, XPointer client, XPointer call) {
+ (void)im_xim;
+ (void)call;
+
+ mainEnv->CallVoidMethod((jobject) client, jViewNotifyPreeditMode, JNI_TRUE);
+- CHECK_JNI_EXCEPTION_RET(mainEnv, -1);
+- return -1; // No restrictions
++ CHECK_JNI_EXCEPTION(mainEnv);
+ }
+
+ static void im_preedit_done(XIM im_xim, XPointer client, XPointer call) {
+@@ -234,7 +231,7 @@ void WindowContextBase::enableOrResetIME() {
+ return;
+ }
+
+- XIMCallback startCallback = {(XPointer) jview, (XIMProc) im_preedit_start};
++ XIMCallback startCallback = {(XPointer) jview, im_preedit_start};
+ XIMCallback doneCallback = {(XPointer) jview, im_preedit_done};
+ XIMCallback drawCallback = {(XPointer) jview, im_preedit_draw};
+ XIMCallback caretCallback = {(XPointer) jview, im_preedit_caret};
+--
+2.17.1
+
diff --git a/dev-java/openjfx/files/8/0004-Fix-Compilation-Flags.patch b/dev-java/openjfx/files/8/0004-Fix-Compilation-Flags.patch
new file mode 100644
index 000000000000..17c91ab9ab88
--- /dev/null
+++ b/dev-java/openjfx/files/8/0004-Fix-Compilation-Flags.patch
@@ -0,0 +1,23 @@
+--- rt-8u202-b07/buildSrc/linux.gradle
++++ rt-8u202-b07-patched/buildSrc/linux.gradle
+@@ -54,7 +54,7 @@
+ def ccFlags = [
+ commonFlags, "-I$JDK_HOME/include", "-I$JDK_HOME/include/linux", "-c",
+ "-ffunction-sections", "-fdata-sections",
+- IS_DEBUG_NATIVE ? ["-ggdb", "-DVERBOSE"] : ["-O2", "-DNDEBUG"]].flatten()
++ IS_DEBUG_NATIVE ? ["-ggdb", "-DNDEBUG"] : ["-O2", "-DNDEBUG"]].flatten()
+ def ccFlagsGTK3 = ccFlags
+ //ccFlags.addAll(["-Wnon-virtual-dtor", "-Woverloaded-virtual", "-std=c++0x"])
+ def linkFlags = ["-static-libgcc", "-static-libstdc++", "-shared", commonFlags,
+
+--- rt-8u202-b07/buildSrc/x86egl.gradle
++++ rt-8u202-b07-patched/buildSrc/x86egl.gradle
+@@ -99,7 +99,7 @@
+ def ccFlags = [
+ commonFlags,
+ "-I$JDK_HOME/include", "-I$JDK_HOME/include/${jniPlatform}", "-c",
+- IS_DEBUG_NATIVE ? ["-ggdb", "-DVERBOSE"] : ["-O2", "-DNDEBUG"]].flatten()
++ IS_DEBUG_NATIVE ? ["-ggdb", "-DNDEBUG"] : ["-O2", "-DNDEBUG"]].flatten()
+ //ccFlags.addAll(["-Wnon-virtual-dtor", "-Woverloaded-virtual", "-std=c++0x"])
+ def linkFlags = ["-shared", commonFlags].flatten()
+
diff --git a/dev-java/openjfx/files/8/0005-don-t-include-xlocale.h.patch b/dev-java/openjfx/files/8/0005-don-t-include-xlocale.h.patch
new file mode 100644
index 000000000000..c47331e1e624
--- /dev/null
+++ b/dev-java/openjfx/files/8/0005-don-t-include-xlocale.h.patch
@@ -0,0 +1,25 @@
+From 597f200762be416d5a62f1efd351cba6e47c1c4c Mon Sep 17 00:00:00 2001
+From: Georgy Yakovlev <gyakovlev@gaikai.com>
+Date: Thu, 30 May 2019 12:07:30 -0700
+Subject: [PATCH] don't include xlocale.h
+
+---
+ .../gstreamer/3rd_party/glib/glib-2.56.1/glib/gstrfuncs.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/modules/media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gstrfuncs.c b/modules/media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gstrfuncs.c
+index 72dc1301..32669789 100644
+--- a/modules/media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gstrfuncs.c
++++ b/modules/media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gstrfuncs.c
+@@ -39,7 +39,7 @@
+
+ #ifdef HAVE_XLOCALE_H
+ /* Needed on BSD/OS X for e.g. strtod_l */
+-#include <xlocale.h>
++#include <locale.h>
+ #endif
+
+ #ifdef G_OS_WIN32
+--
+2.21.0
+
diff --git a/dev-java/openjfx/files/8/06-disable-architecture-verification.patch b/dev-java/openjfx/files/8/06-disable-architecture-verification.patch
new file mode 100644
index 000000000000..d10e62850c31
--- /dev/null
+++ b/dev-java/openjfx/files/8/06-disable-architecture-verification.patch
@@ -0,0 +1,21 @@
+Description: Disable the architecture verification which is limited to i386 and amd64
+Author: Emmanuel Bourg <ebourg@apache.org>
+Forwarded: no
+--- a/build.gradle
++++ b/build.gradle
+@@ -699,6 +699,7 @@
+ // at present building on PI is not supported, but we would only need to make
+ // some changes on assumptions on what should be built (like SWT / Swing) and
+ // such and we could probably make it work.
++/*
+ if (!IS_MAC && !IS_WINDOWS && !IS_LINUX) logger.error("Unsupported build OS ${OS_NAME}")
+ if (IS_WINDOWS && OS_ARCH != "x86" && OS_ARCH != "amd64") {
+ throw new Exception("Unknown and unsupported build architecture: $OS_ARCH")
+@@ -707,6 +708,7 @@
+ } else if (IS_LINUX && OS_ARCH != "i386" && OS_ARCH != "amd64") {
+ throw new Exception("Unknown and unsupported build architecture: $OS_ARCH")
+ }
++*/
+
+ // Sanity check that we actually have a list of compile targets to execute
+ if (COMPILE_TARGETS == null || COMPILE_TARGETS == "") {
diff --git a/dev-java/openjfx/files/8/07-disable-assembler-on-unsupported-archs.patch b/dev-java/openjfx/files/8/07-disable-assembler-on-unsupported-archs.patch
new file mode 100644
index 000000000000..551a1e82ba50
--- /dev/null
+++ b/dev-java/openjfx/files/8/07-disable-assembler-on-unsupported-archs.patch
@@ -0,0 +1,18 @@
+Description: Disable assembler in WebKit on unsupported architectures
+Author: Emmanuel Bourg <ebourg@apache.org>
+Forwarded: no
+--- a/modules/web/src/main/native/Source/WTF/wtf/Platform.h
++++ b/modules/web/src/main/native/Source/WTF/wtf/Platform.h
+@@ -325,6 +325,12 @@
+ #define WTF_CPU_NEEDS_ALIGNED_ACCESS 1
+ #endif
+
++#if !CPU(ARM_THUMB2) && !CPU(ARM_TRADITIONAL) && !CPU(MIPS) && !CPU(X86) && !CPU(X86_64) && !CPU(SH4)
++#define ENABLE_ASSEMBLER 0
++#define ENABLE_JIT 0
++#define ENABLE_YARR_JIT 0
++#endif
++
+ /* ==== OS() - underlying operating system; only to be used for mandated low-level services like
+ virtual memory, not to choose a GUI toolkit ==== */
+
diff --git a/dev-java/openjfx/files/8/10-javadoc-locale.patch b/dev-java/openjfx/files/8/10-javadoc-locale.patch
new file mode 100644
index 000000000000..39d346a4fb73
--- /dev/null
+++ b/dev-java/openjfx/files/8/10-javadoc-locale.patch
@@ -0,0 +1,21 @@
+Description: Set the locale of the javadoc to make the build reproducible
+Author: Emmanuel Bourg <ebourg@apache.org>
+Forwarded: no
+--- a/build.gradle
++++ b/build.gradle
+@@ -1218,6 +1218,7 @@
+ } else {
+ options.links(JDK_DOCS);
+ }
++ options.locale("en");
+ options.addBooleanOption("XDignore.symbol.file").setValue(true);
+ options.addBooleanOption("Xdoclint:none").setValue(!IS_DOC_LINT);
+ options.addBooleanOption("javafx").setValue(true);
+@@ -2769,6 +2770,7 @@
+ options.windowTitle("${javadocTitle}")
+ options.header("${javadocHeader}")
+ options.bottom("${javadocBottom}")
++ options.locale("en");
+ if (BUILD_CLOSED) {
+ options.linksOffline(JDK_DOCS, JDK_DOCS_CLOSED);
+ } else {
diff --git a/dev-java/openjfx/files/8/99-sysdeps.patch b/dev-java/openjfx/files/8/99-sysdeps.patch
new file mode 100644
index 000000000000..367d9392d95e
--- /dev/null
+++ b/dev-java/openjfx/files/8/99-sysdeps.patch
@@ -0,0 +1,30 @@
+diff --git a/build.gradle b/build.gradle
+index 0914d7d..6bd9e78 100644
+--- a/build.gradle
++++ b/build.gradle
+@@ -1309,6 +1309,7 @@ project(":graphics") {
+ antlr3 group: "org.antlr", name: "antlr", version: "3.1.3"
+ antlr3 group: "org.antlr", name: "antlr-runtime", version: "3.1.3"
+ antlr3 group: "org.antlr", name: "stringtemplate", version: "3.2"
++ antlr3 group: "antlr", name: "antlr", version: "2.7.7"
+ }
+
+ // Create a single "native" task which will depend on all the individual native tasks for graphics
+diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle
+index 25f88d1..642450d 100644
+--- a/buildSrc/build.gradle
++++ b/buildSrc/build.gradle
+@@ -82,10 +82,13 @@ getConfigurations().create("antlr3");
+
+ dependencies {
+ compile group: "org.antlr", name: "antlr", version: "3.1.3"
++ compile group: "org.antlr", name: "antlr-runtime", version: "3.1.3"
++ compile group: "org.antlr", name: "stringtemplate", version: "3.2"
+ testCompile group: "junit", name: "junit", version: "4.8.2"
+ antlr3 group: "org.antlr", name: "antlr-runtime", version: "3.1.3"
+ antlr3 group: "org.antlr", name: "stringtemplate", version: "3.2"
+ antlr3 group: "org.antlr", name: "antlr", version: "3.1.3"
++ antlr3 group: "antlr", name: "antlr", version: "2.7.7"
+ }
+
+ // At the moment the ASM library shipped with Gradle that is used to
diff --git a/dev-java/openjfx/files/8/Wno-error.patch b/dev-java/openjfx/files/8/Wno-error.patch
new file mode 100644
index 000000000000..208411508d87
--- /dev/null
+++ b/dev-java/openjfx/files/8/Wno-error.patch
@@ -0,0 +1,121 @@
+From 822bf818933311327c5b73cb1b185484f22f55fb Mon Sep 17 00:00:00 2001
+From: Georgy Yakovlev <gyakovlev@gentoo.org>
+Date: Sun, 26 Apr 2020 21:15:36 -0700
+Subject: [PATCH] Wno-error
+
+---
+ buildSrc/armv5sf.gradle | 1 -
+ buildSrc/armv6hf.gradle | 1 -
+ buildSrc/armv6sf.gradle | 1 -
+ buildSrc/armv7hf.gradle | 1 -
+ buildSrc/armv7sf.gradle | 1 -
+ buildSrc/linux.gradle | 6 +++---
+ buildSrc/x86egl.gradle | 1 -
+ 7 files changed, 3 insertions(+), 9 deletions(-)
+
+diff --git a/buildSrc/armv5sf.gradle b/buildSrc/armv5sf.gradle
+index ee154182..bee6003e 100644
+--- a/buildSrc/armv5sf.gradle
++++ b/buildSrc/armv5sf.gradle
+@@ -135,7 +135,6 @@ def dfbLFlags = ["-ldl"]
+ def lensLFlags = [extraLFlags, "-lpthread", "-ludev", "-ldl", "-lm"].flatten()
+ def monocleCFlags = [
+ extraCFlags,
+- "-Werror",
+ "-I", file("modules/graphics/src/main/native-glass/monocle/")].flatten();
+ def monocleLFlags = [extraLFlags, "-ldl", "-lm"].flatten()
+ def glassCFlags = ["-ffast-math"]
+diff --git a/buildSrc/armv6hf.gradle b/buildSrc/armv6hf.gradle
+index dfdff237..0f090f23 100644
+--- a/buildSrc/armv6hf.gradle
++++ b/buildSrc/armv6hf.gradle
+@@ -131,7 +131,6 @@ def extraLFlags = [
+ def lensLFlags = [extraLFlags, "-lpthread", "-ludev", "-ldl", "-lm"].flatten()
+ def monocleCFlags = [
+ extraCFlags,
+- "-Werror",
+ "-I", file("modules/graphics/src/main/native-glass/monocle/")].flatten();
+ def monocleLFlags = [extraLFlags, "-ldl", "-lm"].flatten()
+
+diff --git a/buildSrc/armv6sf.gradle b/buildSrc/armv6sf.gradle
+index ee6615f0..6ebbdd90 100644
+--- a/buildSrc/armv6sf.gradle
++++ b/buildSrc/armv6sf.gradle
+@@ -135,7 +135,6 @@ def dfbLFlags = ["-ldl"]
+ def lensLFlags = [extraLFlags, "-lpthread", "-ludev", "-ldl", "-lm"].flatten()
+ def monocleCFlags = [
+ extraCFlags,
+- "-Werror",
+ "-I", file("modules/graphics/src/main/native-glass/monocle/")].flatten();
+ def monocleLFlags = [extraLFlags, "-ldl", "-lm"].flatten()
+ def glassCFlags = ["-ffast-math"]
+diff --git a/buildSrc/armv7hf.gradle b/buildSrc/armv7hf.gradle
+index e75bf8a9..092be817 100644
+--- a/buildSrc/armv7hf.gradle
++++ b/buildSrc/armv7hf.gradle
+@@ -131,7 +131,6 @@ def extraLFlags = [
+ def lensLFlags = [extraLFlags, "-lpthread", "-ludev", "-ldl", "-lm"].flatten()
+ def monocleCFlags = [
+ extraCFlags,
+- "-Werror",
+ "-I", file("modules/graphics/src/main/native-glass/monocle/")].flatten();
+ def monocleLFlags = [extraLFlags, "-ldl", "-lm"].flatten()
+
+diff --git a/buildSrc/armv7sf.gradle b/buildSrc/armv7sf.gradle
+index 0bb8a530..38e98303 100644
+--- a/buildSrc/armv7sf.gradle
++++ b/buildSrc/armv7sf.gradle
+@@ -135,7 +135,6 @@ def dfbLFlags = ["-ldl"]
+ def lensLFlags = [extraLFlags, "-lpthread", "-ludev", "-ldl", "-lm"].flatten()
+ def monocleCFlags = [
+ extraCFlags,
+- "-Werror",
+ "-I", file("modules/graphics/src/main/native-glass/monocle/")].flatten();
+ def monocleLFlags = [extraLFlags, "-ldl", "-lm"].flatten()
+ def glassCFlags = ["-ffast-math"]
+diff --git a/buildSrc/linux.gradle b/buildSrc/linux.gradle
+index f233b817..0f9d5252 100644
+--- a/buildSrc/linux.gradle
++++ b/buildSrc/linux.gradle
+@@ -203,7 +203,7 @@ LINUX.glass.javahInclude = [
+ "com/sun/glass/ui/gtk/*"]
+ LINUX.glass.glass.nativeSource = ft_gtk_launcher.getFiles()
+ LINUX.glass.glass.compiler = compiler
+-LINUX.glass.glass.ccFlags = [ccFlags, gtk2CCFlags, "-Werror"].flatten()
++LINUX.glass.glass.ccFlags = [ccFlags, gtk2CCFlags].flatten()
+ LINUX.glass.glass.linker = linker
+ LINUX.glass.glass.linkFlags = [linkFlags, "-lX11", "-ldl" ].flatten()
+ LINUX.glass.glass.lib = "glass"
+@@ -211,7 +211,7 @@ LINUX.glass.glass.lib = "glass"
+ LINUX.glass.glassgtk2 = [:]
+ LINUX.glass.glassgtk2.nativeSource = ft_gtk.getFiles()
+ LINUX.glass.glassgtk2.compiler = compiler
+-LINUX.glass.glassgtk2.ccFlags = [ccFlags, gtk2CCFlags, "-Werror"].flatten()
++LINUX.glass.glassgtk2.ccFlags = [ccFlags, gtk2CCFlags].flatten()
+ LINUX.glass.glassgtk2.linker = linker
+ LINUX.glass.glassgtk2.linkFlags = [linkFlags, gtk2LinkFlags ].flatten()
+ LINUX.glass.glassgtk2.lib = "glassgtk2"
+@@ -219,7 +219,7 @@ LINUX.glass.glassgtk2.lib = "glassgtk2"
+ LINUX.glass.glassgtk3 = [:]
+ LINUX.glass.glassgtk3.nativeSource = ft_gtk.getFiles()
+ LINUX.glass.glassgtk3.compiler = compiler
+-LINUX.glass.glassgtk3.ccFlags = [ccFlags, gtk3CCFlags, "-Werror"].flatten()
++LINUX.glass.glassgtk3.ccFlags = [ccFlags, gtk3CCFlags].flatten()
+ LINUX.glass.glassgtk3.linker = linker
+ LINUX.glass.glassgtk3.linkFlags = [linkFlags, gtk3LinkFlags ].flatten()
+ LINUX.glass.glassgtk3.lib = "glassgtk3"
+diff --git a/buildSrc/x86egl.gradle b/buildSrc/x86egl.gradle
+index 6bf6196b..ff24207d 100644
+--- a/buildSrc/x86egl.gradle
++++ b/buildSrc/x86egl.gradle
+@@ -118,7 +118,6 @@ def extraLFlags = [
+ def lensLFlags = [extraLFlags, "-lpthread", "-ludev", "-ldl", "-lm"].flatten()
+ def monocleCFlags = [
+ extraCFlags,
+- "-Werror",
+ "-I", file("modules/graphics/src/main/native-glass/monocle/")].flatten();
+ def monocleLFlags = [extraLFlags, "-ldl", "-lm"].flatten()
+
+--
+2.26.2
+
diff --git a/dev-java/openjfx/files/8/disable-online-repos.patch b/dev-java/openjfx/files/8/disable-online-repos.patch
new file mode 100644
index 000000000000..6b0afe4bf070
--- /dev/null
+++ b/dev-java/openjfx/files/8/disable-online-repos.patch
@@ -0,0 +1,54 @@
+diff --git a/build.gradle b/build.gradle
+index df82f63..3f920b6 100644
+--- a/build.gradle
++++ b/build.gradle
+@@ -1135,17 +1135,17 @@ allprojects {
+ // "artifact" in the pattern below. Note that the closed builds use different repositories
+ // so if you are debugging a closed-build artifact related build issue, check out the
+ // closed gradle file instead.
+- if (!BUILD_CLOSED) {
+- repositories {
+- mavenCentral()
+- ivy {
+- url "http://download.eclipse.org/eclipse/updates/4.6/R-4.6.3-201703010400/plugins/"
+- layout "pattern", {
+- artifact "[artifact].[ext]"
+- }
+- }
+- }
+- }
++ // if (!BUILD_CLOSED) {
++ // repositories {
++ // mavenCentral()
++ // ivy {
++ // url "http://download.eclipse.org/eclipse/updates/4.6/R-4.6.3-201703010400/plugins/"
++ // layout "pattern", {
++ // artifact "[artifact].[ext]"
++ // }
++ // }
++ // }
++ // }
+
+ // We want to configure all projects as java projects and use the same compile settings
+ // etc, except for the root project which we just want to ignore (and for now media)
+@@ -1785,13 +1785,13 @@ project(":fxpackager") {
+ }
+ // fxpackager has a dependency on ant in order to build the ant jar,
+ // and as such needs to point to the apache binary repository
+- if (!BUILD_CLOSED) {
+- repositories {
+- maven {
+- url "https://repository.apache.org"
+- }
+- }
+- }
++ // if (!BUILD_CLOSED) {
++ // repositories {
++ // maven {
++ // url "https://repository.apache.org"
++ // }
++ // }
++ // }
+
+ dependencies {
+ compile group: "org.apache.ant", name: "ant", version: "1.8.2"
diff --git a/dev-java/openjfx/files/8/respect_flags.patch b/dev-java/openjfx/files/8/respect_flags.patch
new file mode 100644
index 000000000000..5c5dfa14e042
--- /dev/null
+++ b/dev-java/openjfx/files/8/respect_flags.patch
@@ -0,0 +1,22 @@
+diff --git a/buildSrc/linux.gradle b/buildSrc/linux.gradle
+index 022d073..8bccdd8 100644
+--- a/buildSrc/linux.gradle
++++ b/buildSrc/linux.gradle
+@@ -46,6 +46,9 @@ def commonFlags = [
+ "-fstack-protector",
+ "-W", "-Wall", "-Wno-unused", "-Wno-parentheses", "-Werror=implicit-function-declaration"] // warning flags
+
++
++commonFlags.addAll(System.getenv('CFLAGS').trim().split(" "))
++
+ if (!IS_64) {
+ commonFlags += "-m32"
+ }
+@@ -61,6 +64,7 @@ def linkFlags = ["-static-libgcc", "-static-libstdc++", "-shared", commonFlags,
+ "-z", "relro",
+ "-Wl,--gc-sections"].flatten()
+ def defaultLinkFlags = linkFlags.flatten()
++linkFlags.addAll(System.getenv('LDFLAGS').trim().split(" "))
+
+ def gtk2CCFlags = [ ];
+ def gtk3CCFlags = [ "-Wno-deprecated-declarations" ];
diff --git a/dev-java/openjfx/openjfx-8.202.ebuild b/dev-java/openjfx/openjfx-8.202.ebuild
new file mode 100644
index 000000000000..c3aeb88a51ed
--- /dev/null
+++ b/dev-java/openjfx/openjfx-8.202.ebuild
@@ -0,0 +1,185 @@
+# Copyright 2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+JAVA_PKG_IUSE="doc source"
+
+inherit java-pkg-2 java-pkg-simple multiprocessing toolchain-funcs
+
+MY_PV="$(ver_rs 1 'u' 2 '-' ${PV//p/b})-ga"
+EGRADLE_VER="4.8"
+
+DESCRIPTION="Java OpenJFX 8 client application platform"
+HOMEPAGE="https://openjfx.io"
+SRC_URI="
+ http://hg.openjdk.java.net/${PN}/8u/rt/archive/${MY_PV}.tar.bz2 -> ${P}.tar.bz2
+ https://services.gradle.org/distributions/gradle-${EGRADLE_VER}-bin.zip
+"
+
+LICENSE="GPL-2-with-classpath-exception"
+SLOT="$(ver_cut 1)"
+KEYWORDS="~amd64 ~ppc64"
+
+IUSE="debug doc media cpu_flags_x86_sse2"
+
+DEPEND="
+ app-arch/unzip
+ >=dev-java/ant-core-1.8.2:0
+ >=dev-java/antlr-2.7.7-r7:0
+ dev-java/antlr:3
+ dev-java/stringtemplate:0
+ dev-java/swt:4.10[cairo,opengl]
+ sys-devel/bison
+ sys-devel/flex
+ virtual/jdk:1.8
+ virtual/pkgconfig
+"
+
+RDEPEND="
+ dev-java/swt:4.10[cairo,opengl]
+ virtual/jre:1.8
+"
+
+REQUIRED_USE="amd64? ( cpu_flags_x86_sse2 )"
+
+RESTRICT="test" # needs junit version we don't have, fragile
+
+# FIXME: majority of flags are honored, needs a bit more patching
+QA_FLAGS_IGNORED="*"
+
+S="${WORKDIR}/rt-${MY_PV}"
+
+JAVA_PKG_WANT_BUILD_VM="openjdk-8"
+JAVA_PKG_WANT_SOURCE="1.8"
+JAVA_PKG_WANT_TARGET="1.8"
+
+PATCHES=(
+ "${FILESDIR}"/8/99-sysdeps.patch
+ "${FILESDIR}"/8/disable-online-repos.patch
+ "${FILESDIR}"/8/respect_flags.patch
+ "${FILESDIR}"/8/0000-Fix-wait-call-in-PosixPlatform.patch
+ "${FILESDIR}"/8/0001-Change-Lucene.patch
+ "${FILESDIR}"/8/0003-fix-cast-between-incompatible-function-types.patch
+ "${FILESDIR}"/8/0004-Fix-Compilation-Flags.patch
+ "${FILESDIR}"/8/0005-don-t-include-xlocale.h.patch
+ "${FILESDIR}"/8/06-disable-architecture-verification.patch
+ "${FILESDIR}"/8/07-disable-assembler-on-unsupported-archs.patch
+ "${FILESDIR}"/8/10-javadoc-locale.patch
+ "${FILESDIR}"/8/Wno-error.patch
+)
+
+egradle() {
+ local GRADLE_HOME="${WORKDIR}/gradle-${EGRADLE_VER}"
+ local gradle="${GRADLE_HOME}/bin/gradle"
+ local gradle_args=(
+ --info
+ --stacktrace
+ --no-build-cache
+ --no-daemon
+ --offline
+ --gradle-user-home "${T}/gradle_user_home"
+ --project-cache-dir "${T}/gradle_project_cache"
+ )
+
+ export GRADLE_HOME
+
+ # FIXME: build.gradle believes $ANT_HOME/bin/ant shoud exist
+ unset ANT_HOME
+
+ einfo "gradle "${gradle_args[@]}" ${@}"
+ # TERM needed, otherwise gradle may fail on terms it does not know about
+ TERM="xterm" "${gradle}" "${gradle_args[@]}" ${@} || die "gradle failed"
+}
+
+src_prepare() {
+ default
+
+ # this will create local jar storage to be used as ivy repo
+ local d="${T}/jars"
+ mkdir "${d}" || die
+
+ # we need jars subdir in every prokect so gradle can find them
+ # only system jars, no bundling
+ local target targets
+ targets=(
+ jars
+ buildSrc/jars
+ modules/{base,builders,controls,extensions,fxml}/jars
+ modules/{graphics,jmx,media,swing,swt,web,fxpackager}/jars
+ )
+ einfo "Copying system jars"
+ for target in ${targets[@]}; do
+ ln -vs "${T}/jars" "${target}" || die
+ done
+
+ local swt_file_name="$(java-pkg_getjars swt-4.10)"
+ java-pkg_jar-from --build-only --into "${d}" ant-core ant.jar ant-1.8.2.jar
+ java-pkg_jar-from --build-only --into "${d}" ant-core ant-launcher.jar ant-launcher-1.8.2.jar
+ java-pkg_jar-from --build-only --into "${d}" antlr antlr.jar antlr-2.7.7.jar
+ java-pkg_jar-from --build-only --into "${d}" antlr-3 antlr-tool.jar antlr-3.1.3.jar
+ java-pkg_jar-from --build-only --into "${d}" antlr-3 antlr-runtime.jar antlr-runtime-3.1.3.jar
+ java-pkg_jar-from --build-only --into "${d}" stringtemplate stringtemplate.jar stringtemplate-3.2.jar
+ sed -i "s#compile name: SWT_FILE_NAME#compile files(\"${swt_file_name#/}\")#" "${S}"/build.gradle || die
+
+ sed -i 's/-rpath/-rpath-link/g' modules/media/src/main/native/jfxmedia/projects/linux/Makefile || die
+}
+
+src_configure() {
+ # see gradle.properties.template in ${S}
+ cat <<- _EOF_ > "${S}"/gradle.properties
+ COMPILE_TARGETS = linux
+ GRADLE_VERSION_CHECK = false
+ COMPILE_MEDIA = $(usex media true false)
+ COMPILE_WEBKIT = false
+ BUILD_JAVADOC = $(usex doc true false)
+ BUILD_SRC_ZIP = $(usex source true false)
+ FULL_TEST = false
+ CONF = $(usex debug DebugNative Release)
+ NUM_COMPILE_THREADS = $(makeopts_jobs)
+ _EOF_
+
+ local repostring='
+ repositories {
+ ivy {
+ url file("${projectDir}/jars")
+ layout "pattern", {
+ artifact "[artifact]-[revision].[ext]"
+ artifact "[artifact].[ext]"
+ }
+ }
+ mavenLocal()
+ }'
+
+ cat <<- _EOF_ > "${S}"/buildSrc/gentoo.gradle
+ ${repostring}
+ _EOF_
+
+ cat <<- _EOF_ > "${S}"/gentoo.gradle
+ ${repostring}
+ allprojects {
+ ${repostring}
+ }
+ _EOF_
+
+ echo "apply from: 'gentoo.gradle'" >> build.gradle || die
+ echo "apply from: 'gentoo.gradle'" >> buildSrc/build.gradle || die
+ sed -i 's/mavenCentral/mavenLocal/g' build.gradle || die
+ sed -i 's/mavenCentral/mavenLocal/g' buildSrc/build.gradle || die
+
+}
+
+src_compile() {
+ tc-export_build_env CC CXX PKG_CONFIG
+ rm -r tests buildSrc/src/test || die
+ egradle openExportLinux
+}
+
+src_install() {
+ local dest="/usr/$(get_libdir)/openjdk-${SLOT}"
+ local ddest="${ED%/}/${dest#/}"
+ dodir "${dest}"
+ pushd build/export/sdk > /dev/null || die
+ cp -pPRv * "${ddest}" || die
+ popd > /dev/null || die
+}