summaryrefslogtreecommitdiff
path: root/dev-java/openjfx
diff options
context:
space:
mode:
authorroot <root@alpha.trunkmasters.com>2026-06-12 19:09:37 -0500
committerroot <root@alpha.trunkmasters.com>2026-06-12 19:09:37 -0500
commitb590c8d7572b727d565cc0b8ff660d43569845de (patch)
tree06f7a4102ea4e845df8b66660f252920d52952f9 /dev-java/openjfx
parent24f9cbfc4c34fdb6a6e03311674414e881ceab47 (diff)
downloadbaldeagleos-repo-b590c8d7572b727d565cc0b8ff660d43569845de.tar.gz
baldeagleos-repo-b590c8d7572b727d565cc0b8ff660d43569845de.tar.xz
baldeagleos-repo-b590c8d7572b727d565cc0b8ff660d43569845de.zip
Adding metadata
Diffstat (limited to 'dev-java/openjfx')
-rw-r--r--dev-java/openjfx/Manifest12
-rw-r--r--dev-java/openjfx/files/11/0001-c99.patch22
-rw-r--r--dev-java/openjfx/files/11/0002-c99.patch18
-rw-r--r--dev-java/openjfx/files/11/0003-c99.patch19
-rw-r--r--dev-java/openjfx/files/11/11.0.9_p0-version.patch21
-rw-r--r--dev-java/openjfx/files/11/disable-architecture-verification.patch27
-rw-r--r--dev-java/openjfx/files/11/disable-buildSrc-tests.patch13
-rw-r--r--dev-java/openjfx/files/11/don-t-force-msse-11.0.11.patch71
-rw-r--r--dev-java/openjfx/files/11/don-t-force-msse.patch74
-rw-r--r--dev-java/openjfx/files/11/ffmpeg5.patch17
-rw-r--r--dev-java/openjfx/files/11/glibc-compatibility.patch15
-rw-r--r--dev-java/openjfx/files/11/gstreamer-CVE-2021-3522.patch25
-rw-r--r--dev-java/openjfx/files/11/missing-casts.patch31
-rw-r--r--dev-java/openjfx/files/11/respect-cc.patch13
-rw-r--r--dev-java/openjfx/files/11/respect-user-cflags-11.0.11.patch209
-rw-r--r--dev-java/openjfx/files/11/respect-user-cflags.patch209
-rw-r--r--dev-java/openjfx/files/11/strip-blank-elements-flags.patch29
-rw-r--r--dev-java/openjfx/files/11/use-system-swt-jar.patch19
-rw-r--r--dev-java/openjfx/files/11/wno-error-11.0.11.patch37
-rw-r--r--dev-java/openjfx/files/11/wno-error.patch37
-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/0003-fix-cast-between-incompatible-function-types.patch68
-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.patch19
-rw-r--r--dev-java/openjfx/files/8/06-disable-architecture-verification.patch21
-rw-r--r--dev-java/openjfx/files/8/10-javadoc-locale.patch21
-rw-r--r--dev-java/openjfx/files/8/99-sysdeps.patch26
-rw-r--r--dev-java/openjfx/files/8/Wno-error.patch68
-rw-r--r--dev-java/openjfx/files/8/disable-online-repos.patch52
-rw-r--r--dev-java/openjfx/files/8/don-t-force-msse.patch38
-rw-r--r--dev-java/openjfx/files/8/fxpackager-don-t-include-obsolete-sys-sysctl.h.patch18
-rw-r--r--dev-java/openjfx/files/8/missing-casts.patch22
-rw-r--r--dev-java/openjfx/files/8/respect_flags.patch192
-rw-r--r--dev-java/openjfx/metadata.xml16
-rw-r--r--dev-java/openjfx/openjfx-11.0.11_p1-r5.ebuild237
-rw-r--r--dev-java/openjfx/openjfx-8.1000-r2.ebuild196
37 files changed, 2028 insertions, 0 deletions
diff --git a/dev-java/openjfx/Manifest b/dev-java/openjfx/Manifest
new file mode 100644
index 000000000000..63028b364713
--- /dev/null
+++ b/dev-java/openjfx/Manifest
@@ -0,0 +1,12 @@
+DIST ST4-4.0.8.jar 239543 BLAKE2B 72d257c6d0f1b3bde0afce805128dd38d8520b2073377bbb995fed3b4e18a3ea69d508d6d7554755ec68bf50940082b896ed89998a5178272d24376404b389c5 SHA512 9877289297cd5b15ad464a19467699387f57c510fe8a476e07e9d2334bd11933f9bdb9c6caa4972d4d4c84b56740c6d885cd39300dd7ce35b7c5bde536238086
+DIST antlr4-4.7.2-complete.jar 2079769 BLAKE2B 9407e5096b5943702a1375f568957f35486a80f122bc59c5ec8e899f59214c43ee4ece551d9078de14b7707d85f9306ae99953981c755a1e1205d83412010738 SHA512 e788d28796c8925a158f0a09048590bdcf6730d46dcb8a12b362cbcc80a7ceb76374b2675987c953faecd3cf4a847b1571485a71081a84684170d25d05176a11
+DIST gradle-4.10.3-bin.zip 78422006 BLAKE2B f565e591751acb5b05c261b3d8dbc8e07f76b48c73516f6cb1b2846ebf0bbf38000b9a61790e9b3055bddd9f9846d61979d187f4a30c317a1de98546891d9d2d SHA512 fd3f4cfbd5262cc8514b7fb3e303ef46b9ca4b22901f1fe848ec4679f8d6bc283bde12ec584437624f0acf5486e5663966ad0736bf8ab341ac3e2667f514ceec
+DIST gunit-3.5.2.jar 287425 BLAKE2B 86e759c5bb164758b689d93bef4b6a0bcb39eb9fee28d2a8dc113a4c97e5e8516b55ada87c27738ffa0fc512805caa338d8649f6f5c9ba36490c4c3ebed86fdd SHA512 c9f14dacec2f22f62b7d3849d1c0e9d626b3dc20eb74a85b32f1901f6279b7b84af095107128bcbe80c49ac05448a713309b60d0c3d2f88e0bca8a14690292b2
+DIST lucene-core-7.1.0.jar 2779248 BLAKE2B 9edea1cfdeca2f2ec9e5c014e575774dc32fa5cf12ba02fd419fc252da10c03cd9f6cda989203211de4bc2ffcd2e79e8b97914e9792951bb0877a203760f07ad SHA512 0cd96016de2bc7ad94779e30348c443cf6028119fdae42c6f29e33d84495876a7519640f20680762324ea40c42e21b595f79cd606a6142b9875501f1e9179678
+DIST lucene-grouping-7.1.0.jar 87200 BLAKE2B 93f4ca6938b3fbc74752e22ee9d53022a60c57489017985448ddff46bc8c527b72e615e5f28d0301c28dc8119f0e6c75f4e8a711df3e6aaa418190b8ac8d1857 SHA512 41a85eafde03718efba7cf22598a430efbc6a6a68cf68058988f9eff648d19faa6cc4cf68293fe6e39783a7636eae571f27e04006f4607250dd9f6642184c61d
+DIST lucene-queries-7.1.0.jar 243126 BLAKE2B 166c3efea04c19314be7fd8c1d6b1378b2b967243289d9bded5e9768cb441a35fabbe63641d00b72a8c14aace0bad402df49c21b853f620bf81bc1e829dcecdb SHA512 34df5eccf0577ed037ef347adc9c2552c49d57e35dbff629fdbb860926765be48f8b06fd693bdacfc2edcd9c6ad711c13fe98e5317cb1d1f2157dcab938e34ea
+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.11_p1.tar.bz2 65017753 BLAKE2B ea5834e469bb0bd3a70595a91cc298f6091bc45de4c471ee9d0bcd45700ab3966a3396781ace2666bf94decd1219a83f01b277116cf23baeb6dd34a1a0f44191 SHA512 a1f94b3166aca50344f8af77ec2a5f52be1b0abc1c65fd3ff97f98017377ab772262502af00ad8cd4a6c44281ea459aff43a9cb7e30a1c35b822da8fb39b94fb
+DIST openjfx-8.1000-backports.tar.bz2 9142182 BLAKE2B 58ea420ec015c49d2755105a3d11675a92ecab337c7bda5a1ad72e84d0b35f04ed4252cee24da89b1e7b1b5b8b8b9fea7db93364434800246b87827b21970cc3 SHA512 077392368947cb9da1b5c7e14b641d6edcddd9821eb4f16dbea33e8986568211e93799aca29e70b490c8ef2125d69f8372abd1b1ce428a95420f62ff15c414d6
+DIST openjfx-8.1000.tar.bz2 62286455 BLAKE2B c9a714a618d9ae02768dae6128756d64b2b6299a36a6ad9828bf2213dc641cbbcaa2d3f3e0b4913bb60893419a2d5c730ca2db88f759bbd94b3e83112199278c SHA512 6049730b72e569939fed3d62b46a409e949b4c2309f4355253c8c891799c7fb5138e20aa217454fbbd78b1dd99c254b34b3fe6c9cbb35854bd8656993655bf32
diff --git a/dev-java/openjfx/files/11/0001-c99.patch b/dev-java/openjfx/files/11/0001-c99.patch
new file mode 100644
index 000000000000..f553d2858801
--- /dev/null
+++ b/dev-java/openjfx/files/11/0001-c99.patch
@@ -0,0 +1,22 @@
+https://bugs.gentoo.org/919413
+https://src.fedoraproject.org/rpms/openjfx/c/9e893037f3a20273c79603220b7a18a44be60fcc?branch=rawhide
+
+commit 42321838b98d2ebb3d8384c88a764ff2b4d70581
+Author: Florian Weimer <fweimer@openjdk.org>
+Date: Fri Jun 16 12:19:10 2023 +0000
+
+ 8307542: Call to FcConfigAppFontAddFile uses wrong prototype, arguments
+
+ Reviewed-by: kcr
+
+--- a/modules/javafx.graphics/src/main/native-font/pango.c
++++ b/modules/javafx.graphics/src/main/native-font/pango.c
+@@ -243,7 +243,7 @@ JNIEXPORT jboolean JNICALL OS_NATIVE(FcConfigAppFontAddFile)
+ if (text) {
+ // rc = (jboolean)FcConfigAppFontAddFile(arg0, text);
+ if (fp) {
+- rc = (jboolean)((jboolean (*)(void *, const char *))fp)(arg0, text);
++ rc = (jboolean)((int (*)(void *, const char *))fp)((void *)arg0, text);
+ }
+ (*env)->ReleaseStringUTFChars(env, arg1, text);
+ }
diff --git a/dev-java/openjfx/files/11/0002-c99.patch b/dev-java/openjfx/files/11/0002-c99.patch
new file mode 100644
index 000000000000..4cdc5ed35e50
--- /dev/null
+++ b/dev-java/openjfx/files/11/0002-c99.patch
@@ -0,0 +1,18 @@
+https://bugs.gentoo.org/919413
+https://src.fedoraproject.org/rpms/openjfx/c/9e893037f3a20273c79603220b7a18a44be60fcc?branch=rawhide
+
+8323078: Incorrect length argument to g_utf8_strlen in pango.c
+
+Submitted upstream: <https://github.com/openjdk/jfx/pull/1320>
+
+--- a/modules/javafx.graphics/src/main/native-font/pango.c
++++ b/modules/javafx.graphics/src/main/native-font/pango.c
+@@ -402,7 +402,7 @@ JNIEXPORT jlong JNICALL OS_NATIVE(g_1utf8_1strlen)
+ (JNIEnv *env, jclass that, jlong str, jlong pos)
+ {
+ if (!str) return 0;
+- return (jlong)g_utf8_strlen((const gchar *)str, (const gchar *)pos);
++ return (jlong)g_utf8_strlen((const gchar *)str, (gssize)pos);
+ }
+
+ JNIEXPORT jlong JNICALL OS_NATIVE(g_1utf16_1to_1utf8)
diff --git a/dev-java/openjfx/files/11/0003-c99.patch b/dev-java/openjfx/files/11/0003-c99.patch
new file mode 100644
index 000000000000..8779f882b799
--- /dev/null
+++ b/dev-java/openjfx/files/11/0003-c99.patch
@@ -0,0 +1,19 @@
+https://bugs.gentoo.org/919413
+https://src.fedoraproject.org/rpms/openjfx/c/9e893037f3a20273c79603220b7a18a44be60fcc?branch=rawhide
+
+8323077: C type error (incompatible function pointer) in X11GLContext.c
+
+Submitted upstream: <https://github.com/openjdk/jfx/pull/1319>
+
+--- a/modules/javafx.graphics/src/main/native-prism-es2/x11/X11GLContext.c
++++ b/modules/javafx.graphics/src/main/native-prism-es2/x11/X11GLContext.c
+@@ -275,7 +275,8 @@ JNIEXPORT jlong JNICALL Java_com_sun_prism_es2_X11GLContext_nInitialize
+ dlsym(RTLD_DEFAULT, "glXSwapIntervalSGI");
+
+ if (ctxInfo->glXSwapIntervalSGI == NULL) {
+- ctxInfo->glXSwapIntervalSGI = glXGetProcAddress("glXSwapIntervalSGI");
++ ctxInfo->glXSwapIntervalSGI = (PFNGLXSWAPINTERVALSGIPROC)
++ glXGetProcAddress((const GLubyte *)"glXSwapIntervalSGI");
+ }
+
+ }
diff --git a/dev-java/openjfx/files/11/11.0.9_p0-version.patch b/dev-java/openjfx/files/11/11.0.9_p0-version.patch
new file mode 100644
index 000000000000..558423e3ab6d
--- /dev/null
+++ b/dev-java/openjfx/files/11/11.0.9_p0-version.patch
@@ -0,0 +1,21 @@
+
+# HG changeset patch
+# User jvos
+# Date 1597927682 -7200
+# Node ID c0fe72db97a8924c906e4237881aa3c1d5669d19
+# Parent 38425dc30b9a25d52fbb0548ea1b0d098888aaed
+8252067: Change JavaFX release version in 11-dev to 11.0.9
+Reviewed-by: kcr
+
+--- a/build.properties
++++ b/build.properties
+@@ -41,7 +41,7 @@
+ # UPDATE THE FOLLOWING VALUES FOR A NEW RELEASE
+ jfx.release.major.version=11
+ jfx.release.minor.version=0
+-jfx.release.security.version=8
++jfx.release.security.version=9
+ jfx.release.patch.version=0
+
+ # Note: The release version is now calculated in build.gradle as the
+
diff --git a/dev-java/openjfx/files/11/disable-architecture-verification.patch b/dev-java/openjfx/files/11/disable-architecture-verification.patch
new file mode 100644
index 000000000000..3cddae50595c
--- /dev/null
+++ b/dev-java/openjfx/files/11/disable-architecture-verification.patch
@@ -0,0 +1,27 @@
+From 715ea681d14364be4fb2bdda120f6bf9ebaa9d5e Mon Sep 17 00:00:00 2001
+From: Georgy Yakovlev <gyakovlev@gentoo.org>
+Date: Sat, 19 Sep 2020 18:38:05 -0700
+Subject: [PATCH] disable architecture verification
+
+--- a/build.gradle
++++ b/build.gradle
+@@ -302,6 +302,7 @@ ext.MAVEN_GROUP_ID = "org.openjfx"
+ // 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) fail("Unsupported build OS ${OS_NAME}")
+ if (IS_WINDOWS && OS_ARCH != "x86" && OS_ARCH != "amd64") {
+ fail("Unknown and unsupported build architecture: $OS_ARCH")
+@@ -310,7 +311,7 @@ if (IS_WINDOWS && OS_ARCH != "x86" && OS_ARCH != "amd64") {
+ } else if (IS_LINUX && OS_ARCH != "i386" && OS_ARCH != "amd64") {
+ fail("Unknown and unsupported build architecture: $OS_ARCH")
+ }
+-
++*/
+
+ // Get the JDK_HOME automatically based on the version of Java used to execute gradle. Or, if specified,
+ // use a user supplied JDK_HOME, STUB_RUNTIME, JAVAC, all of which may be specified
+--
+2.28.0
+
diff --git a/dev-java/openjfx/files/11/disable-buildSrc-tests.patch b/dev-java/openjfx/files/11/disable-buildSrc-tests.patch
new file mode 100644
index 000000000000..39e247107992
--- /dev/null
+++ b/dev-java/openjfx/files/11/disable-buildSrc-tests.patch
@@ -0,0 +1,13 @@
+Description: Disables the buildSrc tests to work around a Gradle bug (UnsupportedOperationException: Cannot nest operations in the same thread)
+Author: Emmanuel Bourg <ebourg@apache.org>
+Forwarded: not-needed
+--- a/buildSrc/build.gradle
++++ b/buildSrc/build.gradle
+@@ -81,6 +81,7 @@
+ // Java 7 but when we switch to 8 this will be needed, and probably again when
+ // we start building with Java 9.
+ test {
++ enabled = false;
+ enableAssertions = true;
+ testLogging.exceptionFormat = "full";
+ scanForTestClasses = false;
diff --git a/dev-java/openjfx/files/11/don-t-force-msse-11.0.11.patch b/dev-java/openjfx/files/11/don-t-force-msse-11.0.11.patch
new file mode 100644
index 000000000000..be635a2d6367
--- /dev/null
+++ b/dev-java/openjfx/files/11/don-t-force-msse-11.0.11.patch
@@ -0,0 +1,71 @@
+From cf60da4cb9429f01b5793b0116651e6766068e7b Mon Sep 17 00:00:00 2001
+From: Georgy Yakovlev <gyakovlev@gentoo.org>
+Date: Sat, 19 Sep 2020 18:30:58 -0700
+Subject: [PATCH] don't force -msse
+
+--- a/modules/javafx.media/src/main/native/gstreamer/projects/linux/avplugin/Makefile
++++ b/modules/javafx.media/src/main/native/gstreamer/projects/linux/avplugin/Makefile
+@@ -24,7 +24,6 @@ CFLAGS = -fPIC \
+ -fstack-protector \
+ -Werror=implicit-function-declaration \
+ -Werror=trampolines \
+- -msse2 \
+ -fbuiltin \
+ -DHAVE_STDINT_H \
+ -DLINUX \
+--- a/modules/javafx.media/src/main/native/gstreamer/projects/linux/fxplugins/Makefile
++++ b/modules/javafx.media/src/main/native/gstreamer/projects/linux/fxplugins/Makefile
+@@ -21,7 +21,6 @@ CFLAGS = -fPIC \
+ -fstack-protector \
+ -Werror=implicit-function-declaration \
+ -Werror=trampolines \
+- -msse2 \
+ -fbuiltin \
+ -DHAVE_STDINT_H \
+ -DLINUX \
+--- a/modules/javafx.media/src/main/native/gstreamer/projects/mac/fxplugins/Makefile
++++ b/modules/javafx.media/src/main/native/gstreamer/projects/mac/fxplugins/Makefile
+@@ -30,8 +30,7 @@ CFLAGS += -fPIC \
+ -DHAVE_STDINT_H \
+ -DGSTREAMER_LITE \
+ -DG_DISABLE_DEPRECATED \
+- -DOSX \
+- -msse2
++ -DOSX
+
+ ifeq ($(BUILD_TYPE), Release)
+ CFLAGS += -Os
+--- a/modules/javafx.media/src/main/native/gstreamer/projects/mac/gstreamer-lite/Makefile
++++ b/modules/javafx.media/src/main/native/gstreamer/projects/mac/gstreamer-lite/Makefile
+@@ -51,8 +51,7 @@ CFLAGS += -fPIC \
+ -DHAVE_CONFIG_H \
+ -DGSTREAMER_LITE \
+ -DGST_REMOVE_DISABLED \
+- -DOSX \
+- -msse2
++ -DOSX
+
+ ifeq ($(BUILD_TYPE), Release)
+ CFLAGS += -Os
+--- a/modules/javafx.media/src/main/native/jfxmedia/projects/linux/Makefile
++++ b/modules/javafx.media/src/main/native/jfxmedia/projects/linux/Makefile
+@@ -42,7 +42,6 @@ ifdef HOST_COMPILE
+ -Wformat-security \
+ -fstack-protector \
+ -Werror=trampolines \
+- -msse2 \
+ -DGSTREAMER_LITE
+
+ PACKAGES_INCLUDES := $(shell pkg-config --cflags glib-2.0)
+--- a/modules/javafx.media/src/main/native/jfxmedia/projects/mac/Makefile
++++ b/modules/javafx.media/src/main/native/jfxmedia/projects/mac/Makefile
+@@ -30,8 +30,7 @@ CFLAGS += -pipe \
+ -fPIC \
+ -Werror=implicit-function-declaration \
+ -DTARGET_OS_MAC=1 \
+- -D_GNU_SOURCE \
+- -msse2
++ -D_GNU_SOURCE
+
+ ifeq ($(BUILD_TYPE), Release)
+ CFLAGS += -Os
diff --git a/dev-java/openjfx/files/11/don-t-force-msse.patch b/dev-java/openjfx/files/11/don-t-force-msse.patch
new file mode 100644
index 000000000000..b3f1e4fee774
--- /dev/null
+++ b/dev-java/openjfx/files/11/don-t-force-msse.patch
@@ -0,0 +1,74 @@
+From cf60da4cb9429f01b5793b0116651e6766068e7b Mon Sep 17 00:00:00 2001
+From: Georgy Yakovlev <gyakovlev@gentoo.org>
+Date: Sat, 19 Sep 2020 18:30:58 -0700
+Subject: [PATCH] don't force -msse
+
+--- a/modules/javafx.media/src/main/native/gstreamer/projects/linux/avplugin/Makefile
++++ b/modules/javafx.media/src/main/native/gstreamer/projects/linux/avplugin/Makefile
+@@ -23,7 +23,6 @@ CFLAGS := -fPIC \
+ -Wformat-security \
+ -fstack-protector \
+ -Werror=implicit-function-declaration \
+- -msse2 \
+ -fbuiltin \
+ -DHAVE_STDINT_H \
+ -DLINUX \
+--- a/modules/javafx.media/src/main/native/gstreamer/projects/linux/fxplugins/Makefile
++++ b/modules/javafx.media/src/main/native/gstreamer/projects/linux/fxplugins/Makefile
+@@ -20,7 +20,6 @@ CFLAGS := -fPIC \
+ -Wformat-security \
+ -fstack-protector \
+ -Werror=implicit-function-declaration \
+- -msse2 \
+ -fbuiltin \
+ -DHAVE_STDINT_H \
+ -DLINUX \
+--- a/modules/javafx.media/src/main/native/gstreamer/projects/mac/fxplugins/Makefile
++++ b/modules/javafx.media/src/main/native/gstreamer/projects/mac/fxplugins/Makefile
+@@ -30,8 +30,7 @@ CFLAGS += -fPIC \
+ -DHAVE_STDINT_H \
+ -DGSTREAMER_LITE \
+ -DG_DISABLE_DEPRECATED \
+- -DOSX \
+- -msse2
++ -DOSX
+
+ ifeq ($(BUILD_TYPE), Release)
+ CFLAGS += -Os
+--- a/modules/javafx.media/src/main/native/gstreamer/projects/mac/gstreamer-lite/Makefile
++++ b/modules/javafx.media/src/main/native/gstreamer/projects/mac/gstreamer-lite/Makefile
+@@ -51,8 +51,7 @@ CFLAGS += -fPIC \
+ -DHAVE_CONFIG_H \
+ -DGSTREAMER_LITE \
+ -DGST_REMOVE_DISABLED \
+- -DOSX \
+- -msse2
++ -DOSX
+
+ ifeq ($(BUILD_TYPE), Release)
+ CFLAGS += -Os
+--- a/modules/javafx.media/src/main/native/jfxmedia/projects/linux/Makefile
++++ b/modules/javafx.media/src/main/native/jfxmedia/projects/linux/Makefile
+@@ -43,7 +43,6 @@ ifdef HOST_COMPILE
+ -Wformat-security \
+ -fstack-protector \
+ -Werror=implicit-function-declaration \
+- -msse2 \
+ -DGSTREAMER_LITE
+
+ PACKAGES_INCLUDES := $(shell pkg-config --cflags glib-2.0)
+--- a/modules/javafx.media/src/main/native/jfxmedia/projects/mac/Makefile
++++ b/modules/javafx.media/src/main/native/jfxmedia/projects/mac/Makefile
+@@ -30,8 +30,7 @@ CFLAGS += -pipe \
+ -fPIC \
+ -Werror=implicit-function-declaration \
+ -DTARGET_OS_MAC=1 \
+- -D_GNU_SOURCE \
+- -msse2
++ -D_GNU_SOURCE
+
+ ifeq ($(BUILD_TYPE), Release)
+ CFLAGS += -Os
+--
+2.28.0
+
diff --git a/dev-java/openjfx/files/11/ffmpeg5.patch b/dev-java/openjfx/files/11/ffmpeg5.patch
new file mode 100644
index 000000000000..ca0bd1fbecb5
--- /dev/null
+++ b/dev-java/openjfx/files/11/ffmpeg5.patch
@@ -0,0 +1,17 @@
+--- a/build.gradle
++++ b/build.gradle
+@@ -3710,14 +3710,6 @@
+ }
+ }
+ }
+- } else {
+- // Building fxavcodec plugin (libav plugin)
+- exec {
+- commandLine ("make", "${makeJobsFlag}", "-C", "${nativeSrcDir}/gstreamer/projects/linux/avplugin")
+- args("CC=${mediaProperties.compiler}", "LINKER=${mediaProperties.linker}",
+- "OUTPUT_DIR=${nativeOutputDir}", "BUILD_TYPE=${buildType}",
+- "BASE_NAME=avplugin", IS_64 ? "ARCH=x64" : "ARCH=x32")
+- }
+ }
+ }
+ }
diff --git a/dev-java/openjfx/files/11/glibc-compatibility.patch b/dev-java/openjfx/files/11/glibc-compatibility.patch
new file mode 100644
index 000000000000..e7e9b173bb4d
--- /dev/null
+++ b/dev-java/openjfx/files/11/glibc-compatibility.patch
@@ -0,0 +1,15 @@
+Description: Fixes the compatibility with the version of glibc in Debian
+Author: Emmanuel Bourg <ebourg@apache.org>
+Forwarded: https://bugs.openjdk.java.net/browse/JDK-8211399
+--- a/modules/javafx.web/src/main/native/Source/ThirdParty/libxslt/src/libxslt/xsltlocale.h
++++ b/modules/javafx.web/src/main/native/Source/ThirdParty/libxslt/src/libxslt/xsltlocale.h
+@@ -25,9 +25,6 @@
+ #ifdef HAVE_LOCALE_H
+ #include <locale.h>
+ #endif
+-#ifdef HAVE_XLOCALE_H
+-#include <xlocale.h>
+-#endif
+
+ typedef locale_t xsltLocale;
+ typedef xmlChar xsltLocaleChar;
diff --git a/dev-java/openjfx/files/11/gstreamer-CVE-2021-3522.patch b/dev-java/openjfx/files/11/gstreamer-CVE-2021-3522.patch
new file mode 100644
index 000000000000..ffcc0cb10f20
--- /dev/null
+++ b/dev-java/openjfx/files/11/gstreamer-CVE-2021-3522.patch
@@ -0,0 +1,25 @@
+From 8a88e5c1db05ebadfd4569955f6f47c23cdca3c4 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= <tim@centricular.com>
+Date: Wed, 3 Mar 2021 01:08:25 +0000
+Subject: [PATCH] tag: id3v2: fix frame size check and potential invalid reads
+
+Check the right variable when checking if there's
+enough data left to read the frame size.
+
+Closes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/876
+
+Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1066>
+--- a/modules/javafx.media/src/main/native/gstreamer/gstreamer-lite/gst-plugins-base/gst-libs/gst/tag/id3v2frames.c
++++ b/modules/javafx.media/src/main/native/gstreamer/gstreamer-lite/gst-plugins-base/gst-libs/gst/tag/id3v2frames.c
+@@ -109,7 +109,7 @@ id3v2_parse_frame (ID3TagsWorking * work)
+
+ if (work->frame_flags & (ID3V2_FRAME_FORMAT_COMPRESSION |
+ ID3V2_FRAME_FORMAT_DATA_LENGTH_INDICATOR)) {
+- if (work->hdr.frame_data_size <= 4)
++ if (frame_data_size <= 4)
+ return FALSE;
+ if (ID3V2_VER_MAJOR (work->hdr.version) == 3) {
+ work->parse_size = GST_READ_UINT32_BE (frame_data);
+--
+GitLab
+
diff --git a/dev-java/openjfx/files/11/missing-casts.patch b/dev-java/openjfx/files/11/missing-casts.patch
new file mode 100644
index 000000000000..82e3f3b4f78b
--- /dev/null
+++ b/dev-java/openjfx/files/11/missing-casts.patch
@@ -0,0 +1,31 @@
+--- a/modules/javafx.graphics/src/main/native-font/pango.c
++++ b/modules/javafx.graphics/src/main/native-font/pango.c
+@@ -243,7 +243,7 @@ JNIEXPORT jboolean JNICALL OS_NATIVE(FcConfigAppFontAddFile)
+ if (text) {
+ // rc = (jboolean)FcConfigAppFontAddFile(arg0, text);
+ if (fp) {
+- rc = (jboolean)((jboolean (*)(void *, const char *))fp)(arg0, text);
++ rc = (jboolean)((jboolean (*)(void *, const char *))fp)((void *)(intptr_t)arg0, text);
+ }
+ (*env)->ReleaseStringUTFChars(env, arg1, text);
+ }
+@@ -402,7 +402,7 @@ JNIEXPORT jlong JNICALL OS_NATIVE(g_1utf8_1strlen)
+ (JNIEnv *env, jclass that, jlong str, jlong pos)
+ {
+ if (!str) return 0;
+- return (jlong)g_utf8_strlen((const gchar *)str, (const gchar *)pos);
++ return (jlong)g_utf8_strlen((const gchar *)str, (gssize)(const gchar *)pos);
+ }
+
+ JNIEXPORT jlong JNICALL OS_NATIVE(g_1utf16_1to_1utf8)
+--- a/modules/javafx.graphics/src/main/native-prism-es2/x11/X11GLContext.c
++++ b/modules/javafx.graphics/src/main/native-prism-es2/x11/X11GLContext.c
+@@ -275,7 +275,7 @@ JNIEXPORT jlong JNICALL Java_com_sun_prism_es2_X11GLContext_nInitialize
+ dlsym(RTLD_DEFAULT, "glXSwapIntervalSGI");
+
+ if (ctxInfo->glXSwapIntervalSGI == NULL) {
+- ctxInfo->glXSwapIntervalSGI = glXGetProcAddress("glXSwapIntervalSGI");
++ ctxInfo->glXSwapIntervalSGI = (PFNGLXSWAPINTERVALSGIPROC)glXGetProcAddress("glXSwapIntervalSGI");
+ }
+
+ }
diff --git a/dev-java/openjfx/files/11/respect-cc.patch b/dev-java/openjfx/files/11/respect-cc.patch
new file mode 100644
index 000000000000..a1b9bf106e24
--- /dev/null
+++ b/dev-java/openjfx/files/11/respect-cc.patch
@@ -0,0 +1,13 @@
+--- a/buildSrc/linux.gradle
++++ b/buildSrc/linux.gradle
+@@ -214,8 +214,8 @@ setupTools("linux_freetype_tools",
+ }
+ )
+
+-def compiler = IS_COMPILE_PARFAIT ? "parfait-gcc" : "${toolchainDir}gcc";
+-def linker = IS_STATIC_BUILD ? "ar" : IS_COMPILE_PARFAIT ? "parfait-g++" : "${toolchainDir}g++";
++def compiler = IS_COMPILE_PARFAIT ? "parfait-gcc" : System.getenv("CC");
++def linker = IS_STATIC_BUILD ? "ar" : IS_COMPILE_PARFAIT ? "parfait-g++" : System.getenv("CXX");
+
+ LINUX.glass = [:]
+ LINUX.glass.variants = ["glass", "glassgtk2", "glassgtk3"]
diff --git a/dev-java/openjfx/files/11/respect-user-cflags-11.0.11.patch b/dev-java/openjfx/files/11/respect-user-cflags-11.0.11.patch
new file mode 100644
index 000000000000..4564a0502cd3
--- /dev/null
+++ b/dev-java/openjfx/files/11/respect-user-cflags-11.0.11.patch
@@ -0,0 +1,209 @@
+From a28f9aaab759d82384279c16d86bb98ab47412a3 Mon Sep 17 00:00:00 2001
+From: Georgy Yakovlev <gyakovlev@gentoo.org>
+Date: Sat, 1 Jun 2019 00:12:55 -0700
+Subject: [PATCH] respect user cflags
+
+--- a/buildSrc/linux.gradle
++++ b/buildSrc/linux.gradle
+@@ -44,8 +44,11 @@ LINUX.library = { name -> return "lib${name}.so" as String }
+ def commonFlags = [
+ "-fno-strict-aliasing", "-fPIC", "-fno-omit-frame-pointer", // optimization flags
+ "-fstack-protector",
++ "-Wno-error=cast-function-type",
+ "-Wextra", "-Wall", "-Wformat-security", "-Wno-unused", "-Wno-parentheses", "-Werror=trampolines"] // warning flags
+
++commonFlags.addAll(System.getenv("CFLAGS").trim().split(" "))
++
+ if (!IS_64) {
+ commonFlags += "-m32"
+ }
+@@ -61,6 +64,8 @@ def linkFlags = ["-static-libgcc", "-static-libstdc++", "-shared", commonFlags,
+ "-z", "relro",
+ "-Wl,--gc-sections"].flatten()
+
++linkFlags.addAll(System.getenv("LDFLAGS").trim().split(" "))
++
+ if (IS_DEBUG_NATIVE) {
+ linkFlags += "-g"
+ }
+@@ -294,7 +299,7 @@ LINUX.iio.nativeSource = [
+ LINUX.iio.compiler = compiler
+ LINUX.iio.ccFlags = [ccFlags].flatten()
+ LINUX.iio.linker = linker
+-LINUX.iio.linkFlags = [linkFlags].flatten()
++LINUX.iio.linkFlags = [linkFlags, "-ljpeg"].flatten()
+ LINUX.iio.lib = "javafx_iio"
+
+ LINUX.prismES2 = [:]
+--- a/modules/javafx.media/src/main/native/gstreamer/projects/linux/avplugin/Makefile
++++ b/modules/javafx.media/src/main/native/gstreamer/projects/linux/avplugin/Makefile
+@@ -17,7 +17,7 @@ TARGET = $(BUILD_DIR)/lib$(BASE_NAME).so
+ OBJBASE_DIR = $(BUILD_DIR)/obj/plugins/avplugin
+ endif
+
+-CFLAGS = -fPIC \
++CFLAGS := -fPIC \
+ -Wformat \
+ -Wextra \
+ -Wformat-security \
+@@ -29,13 +29,8 @@ CFLAGS = -fPIC \
+ -DLINUX \
+ -DGST_DISABLE_LOADSAVE \
+ -DGSTREAMER_LITE \
+- -ffunction-sections -fdata-sections
+-
+-ifeq ($(BUILD_TYPE), Release)
+- CFLAGS += -Os
+-else
+- CFLAGS += -g -Wall
+-endif
++ -ffunction-sections -fdata-sections \
++ ${CFLAGS}
+
+ PACKAGES_INCLUDES := $(shell pkg-config --cflags glib-2.0)
+ PACKAGES_LIBS := $(shell pkg-config --libs glib-2.0 gobject-2.0)
+@@ -46,11 +41,12 @@ INCLUDES= -I../../../plugins \
+ -I../../../gstreamer-lite/gstreamer/libs \
+ $(PACKAGES_INCLUDES)
+
+-LDFLAGS = -L$(BUILD_DIR) \
++LDFLAGS := -L$(BUILD_DIR) \
+ -lgstreamer-lite \
+ $(PACKAGES_LIBS) \
+ -z relro \
+- -static-libgcc -static-libstdc++ -Wl,--gc-sections
++ -static-libgcc -static-libstdc++ -Wl,--gc-sections \
++ ${LDFLAGS}
+
+ ifneq ($(strip $(LIBAV_DIR)),)
+ INCLUDES += -I$(LIBAV_DIR)/include
+--- a/modules/javafx.media/src/main/native/gstreamer/projects/linux/fxplugins/Makefile
++++ b/modules/javafx.media/src/main/native/gstreamer/projects/linux/fxplugins/Makefile
+@@ -14,7 +14,7 @@ DIRLIST = progressbuffer \
+
+ TARGET = $(BUILD_DIR)/lib$(BASE_NAME).so
+
+-CFLAGS = -fPIC \
++CFLAGS := -fPIC \
+ -Wformat \
+ -Wextra \
+ -Wformat-security \
+@@ -30,14 +30,8 @@ CFLAGS = -fPIC \
+ -DGST_DISABLE_LOADSAVE \
+ -DGST_DISABLE_GST_DEBUG \
+ -DGSTREAMER_LITE \
+- -ffunction-sections -fdata-sections
+-
+-ifeq ($(BUILD_TYPE), Release)
+- CFLAGS += -Os
+-else
+- CFLAGS += -g -Wall
+-endif
+-
++ -ffunction-sections -fdata-sections \
++ ${CFLAGS}
+
+ INCLUDES = -I$(SRCBASE_DIR) \
+ $(addprefix -I$(SRCBASE_DIR)/,$(DIRLIST)) \
+@@ -47,9 +41,10 @@ INCLUDES = -I$(SRCBASE_DIR) \
+ PACKAGES_INCLUDES := $(shell pkg-config --cflags glib-2.0)
+ PACKAGES_LIBS := $(shell pkg-config --libs glib-2.0 gobject-2.0)
+
+-LDFLAGS = -L$(BUILD_DIR) -lgstreamer-lite $(PACKAGES_LIBS) \
++LDFLAGS := -L$(BUILD_DIR) -lgstreamer-lite $(PACKAGES_LIBS) \
+ -z relro \
+- -static-libgcc -static-libstdc++ -Wl,--gc-sections
++ -static-libgcc -static-libstdc++ -Wl,--gc-sections \
++ ${LDFLAGS}
+
+ ifeq ($(ARCH), x32)
+ CFLAGS += -m32
+--- a/modules/javafx.media/src/main/native/gstreamer/projects/linux/gstreamer-lite/Makefile
++++ b/modules/javafx.media/src/main/native/gstreamer/projects/linux/gstreamer-lite/Makefile
+@@ -37,7 +37,7 @@ DIRLIST = gstreamer/gst \
+
+ TARGET = $(BUILD_DIR)/lib$(BASE_NAME).so
+
+-CFLAGS =-fPIC \
++CFLAGS :=-fPIC \
+ -Wformat \
+ -Wextra \
+ -Wformat-security \
+@@ -51,13 +51,8 @@ CFLAGS =-fPIC \
+ -DLINUX \
+ -DGST_DISABLE_GST_DEBUG \
+ -DGST_DISABLE_LOADSAVE \
+- -ffunction-sections -fdata-sections
+-
+-ifeq ($(BUILD_TYPE), Release)
+- CFLAGS += -Os
+-else
+- CFLAGS += -g -Wall
+-endif
++ -ffunction-sections -fdata-sections \
++ ${CFLAGS}
+
+ INCLUDES = -I$(BASE_DIR)/plugins \
+ -I$(SRCBASE_DIR)/projects/build/linux/common \
+@@ -75,9 +70,10 @@ INCLUDES = -I$(BASE_DIR)/plugins \
+ PACKAGES_INCLUDES := $(shell pkg-config --cflags alsa glib-2.0)
+ PACKAGES_LIBS := $(shell pkg-config --libs alsa glib-2.0 gobject-2.0 gmodule-2.0 gthread-2.0)
+
+-LDFLAGS = -L$(BUILD_DIR) -lm $(PACKAGES_LIBS) \
++LDFLAGS := -L$(BUILD_DIR) -lm $(PACKAGES_LIBS) \
+ -z relro \
+- -static-libgcc -static-libstdc++ -Wl,--gc-sections
++ -static-libgcc -static-libstdc++ -Wl,--gc-sections \
++ ${LDFLAGS}
+
+ ifeq ($(ARCH), x32)
+ CFLAGS += -m32
+--- a/modules/javafx.media/src/main/native/jfxmedia/projects/linux/Makefile
++++ b/modules/javafx.media/src/main/native/jfxmedia/projects/linux/Makefile
+@@ -17,7 +17,7 @@ DIRLIST = jni \
+
+ TARGET = $(BUILD_DIR)/lib$(BASE_NAME).so
+
+-CFLAGS = -DTARGET_OS_LINUX=1 \
++CFLAGS := -DTARGET_OS_LINUX=1 \
+ -D_GNU_SOURCE \
+ -DGST_REMOVE_DEPRECATED \
+ -DGST_DISABLE_GST_DEBUG \
+@@ -26,7 +26,8 @@ CFLAGS = -DTARGET_OS_LINUX=1 \
+ -DHAVE_CONFIG_H \
+ -DJFXMEDIA_JNI_EXPORTS \
+ -DLINUX \
+- -ffunction-sections -fdata-sections
++ -ffunction-sections -fdata-sections \
++ ${CFLAGS}
+
+ CPPFLAGS = -fno-rtti -ffunction-sections -fdata-sections
+
+@@ -56,21 +57,16 @@ ifdef HOST_COMPILE
+ -I$(GSTREAMER_LITE_DIR)/gstreamer/libs \
+ $(PACKAGES_INCLUDES)
+
+- LDFLAGS = -Wl,-rpath,\$$ORIGIN -L$(BUILD_DIR) -lgstreamer-lite $(PACKAGES_LIBS) \
++ LDFLAGS := -Wl,-rpath-link,\$$ORIGIN -L$(BUILD_DIR) -lgstreamer-lite $(PACKAGES_LIBS) \
+ -z relro \
+- -static-libgcc -static-libstdc++ -Wl,--gc-sections
++ -static-libgcc -static-libstdc++ -Wl,--gc-sections \
++ ${LDFLAGS}
+ else
+ CFLAGS += $(EXTRA_CFLAGS)
+ INCLUDES = $(BASE_INCLUDES)
+ LDFLAGS = -Wl,-rpath,\$$ORIGIN -L$(BUILD_DIR) $(EXTRA_LDFLAGS)
+ endif
+
+-ifeq ($(BUILD_TYPE), Release)
+- CFLAGS += -Os
+-else
+- CFLAGS += -g -Wall -D_DEBUG
+-endif
+-
+ ifeq ($(ARCH), x32)
+ CFLAGS += -m32
+ LDFLAGS += -m32
+--
+2.21.0
+
diff --git a/dev-java/openjfx/files/11/respect-user-cflags.patch b/dev-java/openjfx/files/11/respect-user-cflags.patch
new file mode 100644
index 000000000000..d1483a2a1303
--- /dev/null
+++ b/dev-java/openjfx/files/11/respect-user-cflags.patch
@@ -0,0 +1,209 @@
+From a28f9aaab759d82384279c16d86bb98ab47412a3 Mon Sep 17 00:00:00 2001
+From: Georgy Yakovlev <gyakovlev@gentoo.org>
+Date: Sat, 1 Jun 2019 00:12:55 -0700
+Subject: [PATCH] respect user cflags
+
+--- a/buildSrc/linux.gradle
++++ b/buildSrc/linux.gradle
+@@ -44,8 +44,11 @@ LINUX.library = { name -> return "lib${name}.so" as String }
+ def commonFlags = [
+ "-fno-strict-aliasing", "-fPIC", "-fno-omit-frame-pointer", // optimization flags
+ "-fstack-protector",
++ "-Wno-error=cast-function-type",
+ "-Wextra", "-Wall", "-Wformat-security", "-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,8 @@ def linkFlags = ["-static-libgcc", "-static-libstdc++", "-shared", commonFlags,
+ "-z", "relro",
+ "-Wl,--gc-sections"].flatten()
+
++linkFlags.addAll(System.getenv("LDFLAGS").trim().split(" "))
++
+ if (IS_DEBUG_NATIVE) {
+ linkFlags += "-g"
+ }
+@@ -294,7 +299,7 @@ LINUX.iio.nativeSource = [
+ LINUX.iio.compiler = compiler
+ LINUX.iio.ccFlags = [ccFlags].flatten()
+ LINUX.iio.linker = linker
+-LINUX.iio.linkFlags = [linkFlags].flatten()
++LINUX.iio.linkFlags = [linkFlags, "-ljpeg"].flatten()
+ LINUX.iio.lib = "javafx_iio"
+
+ LINUX.prismES2 = [:]
+--- a/modules/javafx.media/src/main/native/gstreamer/projects/linux/avplugin/Makefile
++++ b/modules/javafx.media/src/main/native/gstreamer/projects/linux/avplugin/Makefile
+@@ -17,7 +17,7 @@ TARGET = $(BUILD_DIR)/lib$(BASE_NAME).so
+ OBJBASE_DIR = $(BUILD_DIR)/obj/plugins/avplugin
+ endif
+
+-CFLAGS = -fPIC \
++CFLAGS := -fPIC \
+ -Wformat \
+ -Wextra \
+ -Wformat-security \
+@@ -29,13 +29,8 @@ CFLAGS = -fPIC \
+ -DLINUX \
+ -DGST_DISABLE_LOADSAVE \
+ -DGSTREAMER_LITE \
+- -ffunction-sections -fdata-sections
+-
+-ifeq ($(BUILD_TYPE), Release)
+- CFLAGS += -Os
+-else
+- CFLAGS += -g -Wall
+-endif
++ -ffunction-sections -fdata-sections \
++ ${CFLAGS}
+
+ PACKAGES_INCLUDES := $(shell pkg-config --cflags glib-2.0)
+ PACKAGES_LIBS := $(shell pkg-config --libs glib-2.0 gobject-2.0)
+@@ -46,11 +41,12 @@ INCLUDES= -I../../../plugins \
+ -I../../../gstreamer-lite/gstreamer/libs \
+ $(PACKAGES_INCLUDES)
+
+-LDFLAGS = -L$(BUILD_DIR) \
++LDFLAGS := -L$(BUILD_DIR) \
+ -lgstreamer-lite \
+ $(PACKAGES_LIBS) \
+ -z relro \
+- -static-libgcc -static-libstdc++ -Wl,--gc-sections
++ -static-libgcc -static-libstdc++ -Wl,--gc-sections \
++ ${LDFLAGS}
+
+ ifneq ($(strip $(LIBAV_DIR)),)
+ INCLUDES += -I$(LIBAV_DIR)/include
+--- a/modules/javafx.media/src/main/native/gstreamer/projects/linux/fxplugins/Makefile
++++ b/modules/javafx.media/src/main/native/gstreamer/projects/linux/fxplugins/Makefile
+@@ -14,7 +14,7 @@ DIRLIST = progressbuffer \
+
+ TARGET = $(BUILD_DIR)/lib$(BASE_NAME).so
+
+-CFLAGS = -fPIC \
++CFLAGS := -fPIC \
+ -Wformat \
+ -Wextra \
+ -Wformat-security \
+@@ -30,14 +30,8 @@ CFLAGS = -fPIC \
+ -DGST_DISABLE_LOADSAVE \
+ -DGST_DISABLE_GST_DEBUG \
+ -DGSTREAMER_LITE \
+- -ffunction-sections -fdata-sections
+-
+-ifeq ($(BUILD_TYPE), Release)
+- CFLAGS += -Os
+-else
+- CFLAGS += -g -Wall
+-endif
+-
++ -ffunction-sections -fdata-sections \
++ ${CFLAGS}
+
+ INCLUDES = -I$(SRCBASE_DIR) \
+ $(addprefix -I$(SRCBASE_DIR)/,$(DIRLIST)) \
+@@ -47,9 +41,10 @@ INCLUDES = -I$(SRCBASE_DIR) \
+ PACKAGES_INCLUDES := $(shell pkg-config --cflags glib-2.0)
+ PACKAGES_LIBS := $(shell pkg-config --libs glib-2.0 gobject-2.0)
+
+-LDFLAGS = -L$(BUILD_DIR) -lgstreamer-lite $(PACKAGES_LIBS) \
++LDFLAGS := -L$(BUILD_DIR) -lgstreamer-lite $(PACKAGES_LIBS) \
+ -z relro \
+- -static-libgcc -static-libstdc++ -Wl,--gc-sections
++ -static-libgcc -static-libstdc++ -Wl,--gc-sections \
++ ${LDFLAGS}
+
+ ifeq ($(ARCH), x32)
+ CFLAGS += -m32
+--- a/modules/javafx.media/src/main/native/gstreamer/projects/linux/gstreamer-lite/Makefile
++++ b/modules/javafx.media/src/main/native/gstreamer/projects/linux/gstreamer-lite/Makefile
+@@ -37,7 +37,7 @@ DIRLIST = gstreamer/gst \
+
+ TARGET = $(BUILD_DIR)/lib$(BASE_NAME).so
+
+-CFLAGS =-fPIC \
++CFLAGS :=-fPIC \
+ -Wformat \
+ -Wextra \
+ -Wformat-security \
+@@ -51,13 +51,8 @@ CFLAGS =-fPIC \
+ -DLINUX \
+ -DGST_DISABLE_GST_DEBUG \
+ -DGST_DISABLE_LOADSAVE \
+- -ffunction-sections -fdata-sections
+-
+-ifeq ($(BUILD_TYPE), Release)
+- CFLAGS += -Os
+-else
+- CFLAGS += -g -Wall
+-endif
++ -ffunction-sections -fdata-sections \
++ ${CFLAGS}
+
+ INCLUDES = -I$(BASE_DIR)/plugins \
+ -I$(SRCBASE_DIR)/projects/build/linux/common \
+@@ -75,9 +70,10 @@ INCLUDES = -I$(BASE_DIR)/plugins \
+ PACKAGES_INCLUDES := $(shell pkg-config --cflags alsa glib-2.0)
+ PACKAGES_LIBS := $(shell pkg-config --libs alsa glib-2.0 gobject-2.0 gmodule-2.0 gthread-2.0)
+
+-LDFLAGS = -L$(BUILD_DIR) -lm $(PACKAGES_LIBS) \
++LDFLAGS := -L$(BUILD_DIR) -lm $(PACKAGES_LIBS) \
+ -z relro \
+- -static-libgcc -static-libstdc++ -Wl,--gc-sections
++ -static-libgcc -static-libstdc++ -Wl,--gc-sections \
++ ${LDFLAGS}
+
+ ifeq ($(ARCH), x32)
+ CFLAGS += -m32
+--- a/modules/javafx.media/src/main/native/jfxmedia/projects/linux/Makefile
++++ b/modules/javafx.media/src/main/native/jfxmedia/projects/linux/Makefile
+@@ -17,7 +17,7 @@ DIRLIST = jni \
+
+ TARGET = $(BUILD_DIR)/lib$(BASE_NAME).so
+
+-CFLAGS = -DTARGET_OS_LINUX=1 \
++CFLAGS := -DTARGET_OS_LINUX=1 \
+ -D_GNU_SOURCE \
+ -DGST_REMOVE_DEPRECATED \
+ -DGST_DISABLE_GST_DEBUG \
+@@ -26,7 +26,8 @@ CFLAGS = -DTARGET_OS_LINUX=1 \
+ -DHAVE_CONFIG_H \
+ -DJFXMEDIA_JNI_EXPORTS \
+ -DLINUX \
+- -ffunction-sections -fdata-sections
++ -ffunction-sections -fdata-sections \
++ ${CFLAGS}
+
+ CPPFLAGS = -fno-rtti -ffunction-sections -fdata-sections
+
+@@ -56,21 +57,16 @@ ifdef HOST_COMPILE
+ -I$(GSTREAMER_LITE_DIR)/gstreamer/libs \
+ $(PACKAGES_INCLUDES)
+
+- LDFLAGS = -Wl,-rpath,\$$ORIGIN -L$(BUILD_DIR) -lgstreamer-lite $(PACKAGES_LIBS) \
++ LDFLAGS := -Wl,-rpath-link,\$$ORIGIN -L$(BUILD_DIR) -lgstreamer-lite $(PACKAGES_LIBS) \
+ -z relro \
+- -static-libgcc -static-libstdc++ -Wl,--gc-sections
++ -static-libgcc -static-libstdc++ -Wl,--gc-sections \
++ ${LDFLAGS}
+ else
+ CFLAGS += $(EXTRA_CFLAGS)
+ INCLUDES = $(BASE_INCLUDES)
+ LDFLAGS = -Wl,-rpath,\$$ORIGIN -L$(BUILD_DIR) $(EXTRA_LDFLAGS)
+ endif
+
+-ifeq ($(BUILD_TYPE), Release)
+- CFLAGS += -Os
+-else
+- CFLAGS += -g -Wall -D_DEBUG
+-endif
+-
+ ifeq ($(ARCH), x32)
+ CFLAGS += -m32
+ LDFLAGS += -m32
+--
+2.21.0
+
diff --git a/dev-java/openjfx/files/11/strip-blank-elements-flags.patch b/dev-java/openjfx/files/11/strip-blank-elements-flags.patch
new file mode 100644
index 000000000000..87f0279979f7
--- /dev/null
+++ b/dev-java/openjfx/files/11/strip-blank-elements-flags.patch
@@ -0,0 +1,29 @@
+Without this, you'll get bizarre errors where linking fails because it looks for
+a literal "" arg.
+
+https://bugs.gentoo.org/715092
+https://bugs.gentoo.org/719484
+https://bugs.gentoo.org/799227
+https://bugs.gentoo.org/915727
+--- a/buildSrc/linux.gradle
++++ b/buildSrc/linux.gradle
+@@ -47,7 +47,8 @@ def commonFlags = [
+ "-Wno-error=cast-function-type",
+ "-Wextra", "-Wall", "-Wformat-security", "-Wno-unused", "-Wno-parentheses", "-Werror=trampolines"] // warning flags
+
+-commonFlags.addAll(System.getenv("CFLAGS").trim().split(" "))
++commonFlags.addAll(System.getenv("CFLAGS").strip().split(" "))
++commonFlags.removeAll([""])
+
+ if (!IS_64) {
+ commonFlags += "-m32"
+@@ -75,7 +76,8 @@ def staticLinkFlags = [].flatten()
+
+ def linkFlags = IS_STATIC_BUILD ? staticLinkFlags : dynamicLinkFlags;
+
+-linkFlags.addAll(System.getenv("LDFLAGS").trim().split(" "))
++linkFlags.addAll(System.getenv("LDFLAGS").strip().split(" "))
++linkFlags.removeAll([""])
+
+ if (IS_DEBUG_NATIVE) {
+ linkFlags += "-g"
diff --git a/dev-java/openjfx/files/11/use-system-swt-jar.patch b/dev-java/openjfx/files/11/use-system-swt-jar.patch
new file mode 100644
index 000000000000..39e2980f0147
--- /dev/null
+++ b/dev-java/openjfx/files/11/use-system-swt-jar.patch
@@ -0,0 +1,19 @@
+From c7a04feac8281cd3e53c8d0215a229bb6cd4fce8 Mon Sep 17 00:00:00 2001
+From: Georgy Yakovlev <gyakovlev@gentoo.org>
+Date: Sat, 1 Jun 2019 00:36:04 -0700
+Subject: [PATCH] use system swt jar
+
+--- a/build.gradle
++++ b/build.gradle
+@@ -2477,7 +2477,7 @@ project(":swt") {
+ commonModuleSetup(project, [ 'base', 'graphics' ])
+
+ dependencies {
+- compile name: SWT_FILE_NAME
++ compile files("__gentoo_swt_jar__")
+ }
+
+ classes {
+--
+2.21.0
+
diff --git a/dev-java/openjfx/files/11/wno-error-11.0.11.patch b/dev-java/openjfx/files/11/wno-error-11.0.11.patch
new file mode 100644
index 000000000000..184f8775a5f6
--- /dev/null
+++ b/dev-java/openjfx/files/11/wno-error-11.0.11.patch
@@ -0,0 +1,37 @@
+From 9df57c50dcf4b0ac729595600932f844e1f8d4a3 Mon Sep 17 00:00:00 2001
+From: Georgy Yakovlev <gyakovlev@gentoo.org>
+Date: Wed, 17 Nov 2021 19:52:13 -0800
+Subject: [PATCH] no -Werror
+
+--- a/buildSrc/linux.gradle
++++ b/buildSrc/linux.gradle
+@@ -231,7 +231,7 @@ FileTree ft_gtk = fileTree("${project(":graphics").projectDir}/src/main/native-g
+ LINUX.glass.glass = [:]
+ LINUX.glass.glass.nativeSource = ft_gtk_launcher.getFiles()
+ LINUX.glass.glass.compiler = compiler
+-LINUX.glass.glass.ccFlags = [cppFlags, "-Werror"].flatten()
++LINUX.glass.glass.ccFlags = [cppFlags].flatten()
+ LINUX.glass.glass.linker = linker
+ LINUX.glass.glass.linkFlags = IS_STATIC_BUILD? linkFlags : [linkFlags, "-lX11", "-ldl"].flatten()
+ LINUX.glass.glass.lib = "glass"
+@@ -241,7 +241,7 @@ LINUX.glass.glassgtk2.nativeSource = ft_gtk.getFiles()
+ LINUX.glass.glassgtk2.compiler = compiler
+ LINUX.glass.glassgtk2.ccFlags = IS_STATIC_BUILD ?
+ ["-fno-threadsafe-statics", cppFlags, gtk2CCFlags].flatten() :
+- [cppFlags, gtk2CCFlags, "-Werror"].flatten()
++ [cppFlags, gtk2CCFlags].flatten()
+ LINUX.glass.glassgtk2.linker = linker
+ LINUX.glass.glassgtk2.linkFlags = IS_STATIC_BUILD ? linkFlags : [linkFlags, gtk2LinkFlags].flatten()
+ LINUX.glass.glassgtk2.lib = "glassgtk2"
+@@ -251,7 +251,7 @@ LINUX.glass.glassgtk3.nativeSource = ft_gtk.getFiles()
+ LINUX.glass.glassgtk3.compiler = compiler
+ LINUX.glass.glassgtk3.ccFlags = IS_STATIC_BUILD ?
+ ["-fno-threadsafe-statics", cppFlags, gtk3CCFlags].flatten() :
+- [cppFlags, gtk3CCFlags, "-Werror"].flatten()
++ [cppFlags, gtk3CCFlags].flatten()
+ LINUX.glass.glassgtk3.linker = linker
+ LINUX.glass.glassgtk3.linkFlags = IS_STATIC_BUILD ? linkFlags : [linkFlags, gtk3LinkFlags].flatten()
+ LINUX.glass.glassgtk3.lib = "glassgtk3"
+--
+2.34.0
+
diff --git a/dev-java/openjfx/files/11/wno-error.patch b/dev-java/openjfx/files/11/wno-error.patch
new file mode 100644
index 000000000000..4c8dd6e8f247
--- /dev/null
+++ b/dev-java/openjfx/files/11/wno-error.patch
@@ -0,0 +1,37 @@
+From 737acaff3658663de61813ba877379841e76631e Mon Sep 17 00:00:00 2001
+From: Georgy Yakovlev <gyakovlev@gentoo.org>
+Date: Thu, 19 Mar 2020 09:50:22 -0700
+Subject: [PATCH] remove werror
+
+--- a/buildSrc/linux.gradle
++++ b/buildSrc/linux.gradle
+@@ -223,7 +223,7 @@ FileTree ft_gtk = fileTree("${project(":graphics").projectDir}/src/main/native-g
+ LINUX.glass.glass = [:]
+ 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"
+@@ -231,7 +231,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"
+@@ -239,7 +239,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"
+--
+2.24.1
+
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..4a482240dc6b
--- /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
++++ rt-8u202-b02-patched/modules/fxpackager/src/main/native/library/common/PosixPlatform.cpp
+@@ -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/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..7095841498a1
--- /dev/null
+++ b/dev-java/openjfx/files/8/0003-fix-cast-between-incompatible-function-types.patch
@@ -0,0 +1,68 @@
+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
+
+--- 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);
+ }
+ }
+ }
+--- 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..cabb36eefe54
--- /dev/null
+++ b/dev-java/openjfx/files/8/0005-don-t-include-xlocale.h.patch
@@ -0,0 +1,19 @@
+From 597f200762be416d5a62f1efd351cba6e47c1c4c Mon Sep 17 00:00:00 2001
+From: Georgy Yakovlev <gyakovlev@gentoo.org>
+Date: Thu, 30 May 2019 12:07:30 -0700
+Subject: [PATCH] don't include xlocale.h
+
+--- 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/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..abcdbab67ef3
--- /dev/null
+++ b/dev-java/openjfx/files/8/99-sysdeps.patch
@@ -0,0 +1,26 @@
+--- 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
+--- 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..771da0707088
--- /dev/null
+++ b/dev-java/openjfx/files/8/Wno-error.patch
@@ -0,0 +1,68 @@
+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
+
+--- 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"]
+--- 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()
+
+--- 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"]
+--- 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()
+
+--- 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"]
+--- 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..6dd2db128e90
--- /dev/null
+++ b/dev-java/openjfx/files/8/disable-online-repos.patch
@@ -0,0 +1,52 @@
+--- 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/don-t-force-msse.patch b/dev-java/openjfx/files/8/don-t-force-msse.patch
new file mode 100644
index 000000000000..6cdb19e5a002
--- /dev/null
+++ b/dev-java/openjfx/files/8/don-t-force-msse.patch
@@ -0,0 +1,38 @@
+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
+
+--- 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 \
+--- 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 \
+--- 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) \
+--
+2.26.2
+
diff --git a/dev-java/openjfx/files/8/fxpackager-don-t-include-obsolete-sys-sysctl.h.patch b/dev-java/openjfx/files/8/fxpackager-don-t-include-obsolete-sys-sysctl.h.patch
new file mode 100644
index 000000000000..6fd0a9852012
--- /dev/null
+++ b/dev-java/openjfx/files/8/fxpackager-don-t-include-obsolete-sys-sysctl.h.patch
@@ -0,0 +1,18 @@
+From 26d59b7c8cc2b40277756f55387606ba8a852b31 Mon Sep 17 00:00:00 2001
+From: Georgy Yakovlev <gyakovlev@gentoo.org>
+Date: Fri, 18 Sep 2020 21:43:57 -0700
+Subject: [PATCH] fxpackager: don't include obsolete sys/sysctl.h
+
+--- a/modules/fxpackager/src/main/native/library/common/PosixPlatform.cpp
++++ b/modules/fxpackager/src/main/native/library/common/PosixPlatform.cpp
+@@ -43,7 +43,6 @@
+ #include <sys/types.h>
+ #include <sys/wait.h>
+ #include <unistd.h>
+-#include <sys/sysctl.h>
+ #include <iostream>
+ #include <dlfcn.h>
+ #include <signal.h>
+--
+2.28.0
+
diff --git a/dev-java/openjfx/files/8/missing-casts.patch b/dev-java/openjfx/files/8/missing-casts.patch
new file mode 100644
index 000000000000..c3d45f4f07df
--- /dev/null
+++ b/dev-java/openjfx/files/8/missing-casts.patch
@@ -0,0 +1,22 @@
+--- a/modules/graphics/src/main/native-font/pango.c
++++ b/modules/graphics/src/main/native-font/pango.c
+@@ -225,7 +225,7 @@ JNIEXPORT jboolean JNICALL OS_NATIVE(FcConfigAppFontAddFile)
+ if (text) {
+ // rc = (jboolean)FcConfigAppFontAddFile(arg0, text);
+ if (fp) {
+- rc = (jboolean)((jboolean (*)(void *, const char *))fp)(arg0, text);
++ rc = (jboolean)((jboolean (*)(void *, const char *))fp)((void *)(intptr_t)arg0, text);
+ }
+ (*env)->ReleaseStringUTFChars(env, arg1, text);
+ }
+--- a/modules/graphics/src/main/native-prism-es2/x11/X11GLContext.c
++++ b/modules/graphics/src/main/native-prism-es2/x11/X11GLContext.c
+@@ -275,7 +275,7 @@ JNIEXPORT jlong JNICALL Java_com_sun_prism_es2_X11GLContext_nInitialize
+ dlsym(RTLD_DEFAULT, "glXSwapIntervalSGI");
+
+ if (ctxInfo->glXSwapIntervalSGI == NULL) {
+- ctxInfo->glXSwapIntervalSGI = glXGetProcAddress("glXSwapIntervalSGI");
++ ctxInfo->glXSwapIntervalSGI = (PFNGLXSWAPINTERVALSGIPROC)glXGetProcAddress("glXSwapIntervalSGI");
+ }
+
+ }
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..b8a0975965a8
--- /dev/null
+++ b/dev-java/openjfx/files/8/respect_flags.patch
@@ -0,0 +1,192 @@
+From 102cfe6848fe3e67c3d85cca8f3c02c1f316845b Mon Sep 17 00:00:00 2001
+From: Georgy Yakovlev <gyakovlev@gentoo.org>
+Date: Thu, 25 Mar 2021 10:06:49 -0700
+Subject: [PATCH] respect flags
+
+--- 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 toolchainDir
+ if (hasProperty('toolchainDir')) {
+--- a/modules/media/src/main/native/gstreamer/projects/linux/avplugin/Makefile
++++ b/modules/media/src/main/native/gstreamer/projects/linux/avplugin/Makefile
+@@ -22,7 +22,7 @@ TARGET = $(BUILD_DIR)/lib$(BASE_NAME).so
+ OBJBASE_DIR = $(BUILD_DIR)/obj/plugins/avplugin
+ endif
+
+-CFLAGS = -fPIC \
++CFLAGS := -fPIC \
+ -Wformat \
+ -Wextra \
+ -Wformat-security \
+@@ -34,13 +34,8 @@ CFLAGS = -fPIC \
+ -DGST_DISABLE_LOADSAVE \
+ -DGSTREAMER_LITE \
+ -DG_DISABLE_DEPRECATED \
+- -ffunction-sections -fdata-sections
+-
+-ifeq ($(BUILD_TYPE), Release)
+- CFLAGS += -Os
+-else
+- CFLAGS += -g -Wall
+-endif
++ -ffunction-sections -fdata-sections \
++ ${CFLAGS}
+
+ INCLUDES= -I../../../plugins \
+ -I../../../plugins/av \
+@@ -50,11 +45,12 @@ INCLUDES= -I../../../plugins \
+ -I$(GLIB_DIR)/glib \
+ -I$(GLIB_DIR)/gmodule
+
+-LDFLAGS = -L$(BUILD_DIR) \
++LDFLAGS := -L$(BUILD_DIR) \
+ -z relro \
+ -lgstreamer-lite \
+ -lglib-lite \
+- -static-libgcc -static-libstdc++ -Wl,--gc-sections
++ -static-libgcc -static-libstdc++ -Wl,--gc-sections \
++ ${LDFLAGS}
+
+ ifneq ($(strip $(LIBAV_DIR)),)
+ INCLUDES += -I$(LIBAV_DIR)/include
+--- a/modules/media/src/main/native/gstreamer/projects/linux/fxplugins/Makefile
++++ b/modules/media/src/main/native/gstreamer/projects/linux/fxplugins/Makefile
+@@ -19,7 +19,7 @@ DIRLIST = progressbuffer \
+
+ TARGET = $(BUILD_DIR)/lib$(BASE_NAME).so
+
+-CFLAGS = -fPIC \
++CFLAGS := -fPIC \
+ -Wformat \
+ -Wextra \
+ -Wformat-security \
+@@ -35,14 +35,8 @@ CFLAGS = -fPIC \
+ -DGST_DISABLE_GST_DEBUG \
+ -DGSTREAMER_LITE \
+ -DG_DISABLE_DEPRECATED \
+- -ffunction-sections -fdata-sections
+-
+-ifeq ($(BUILD_TYPE), Release)
+- CFLAGS += -Os
+-else
+- CFLAGS += -g -Wall
+-endif
+-
++ -ffunction-sections -fdata-sections \
++ ${CFLAGS}
+
+ INCLUDES = -I$(SRCBASE_DIR) \
+ $(addprefix -I$(SRCBASE_DIR)/,$(DIRLIST)) \
+@@ -52,9 +46,10 @@ INCLUDES = -I$(SRCBASE_DIR) \
+ -I$(GLIB_DIR)/glib \
+ -I$(GLIB_DIR)/gmodule
+
+-LDFLAGS = -L$(BUILD_DIR) -lgstreamer-lite -lglib-lite \
++LDFLAGS := -L$(BUILD_DIR) -lgstreamer-lite -lglib-lite \
+ -z relro \
+- -static-libgcc -static-libstdc++ -Wl,--gc-sections
++ -static-libgcc -static-libstdc++ -Wl,--gc-sections \
++ ${LDFLAGS}
+
+ ifeq ($(ARCH), x32)
+ CFLAGS += -m32
+--- a/modules/media/src/main/native/gstreamer/projects/linux/glib-lite/Makefile
++++ b/modules/media/src/main/native/gstreamer/projects/linux/glib-lite/Makefile
+@@ -40,20 +40,15 @@ CFLAGS += -fPIC \
+ -DMATCH_LIMIT=10000000 \
+ -DMATCH_LIMIT_RECURSION=10000000
+
+-ifeq ($(BUILD_TYPE), Release)
+- CFLAGS += -Os
+-else
+- CFLAGS += -g -Wall
+-endif
+-
+ INCLUDES = -I$(SRCBASE_DIR) \
+ -I$(SRCBASE_DIR)/glib \
+ -I$(SRCBASE_DIR)/build/linux \
+ -I$(LIBFFI_DIR)/include
+
+-LDFLAGS = -L$(BUILD_DIR) -lffi \
++LDFLAGS := -L$(BUILD_DIR) -lffi \
+ -z relro \
+- -static-libgcc -static-libstdc++ -Wl,--gc-sections
++ -static-libgcc -static-libstdc++ -Wl,--gc-sections \
++ ${LDFLAGS}
+
+ ifeq ($(ARCH), x32)
+ CFLAGS += -m32
+--- a/modules/media/src/main/native/gstreamer/projects/linux/gstreamer-lite/Makefile
++++ b/modules/media/src/main/native/gstreamer/projects/linux/gstreamer-lite/Makefile
+@@ -41,7 +41,7 @@ DIRLIST = gstreamer/gst \
+
+ TARGET = $(BUILD_DIR)/lib$(BASE_NAME).so
+
+-CFLAGS =-fPIC \
++CFLAGS :=-fPIC \
+ -Wformat \
+ -Wextra \
+ -Wformat-security \
+@@ -56,13 +56,8 @@ CFLAGS =-fPIC \
+ -DGST_DISABLE_GST_DEBUG \
+ -DGST_DISABLE_LOADSAVE \
+ -DG_DISABLE_DEPRECATED \
+- -ffunction-sections -fdata-sections
+-
+-ifeq ($(BUILD_TYPE), Release)
+- CFLAGS += -Os
+-else
+- CFLAGS += -g -Wall
+-endif
++ -ffunction-sections -fdata-sections \
++ ${CFLAGS}
+
+ INCLUDES = -I$(BASE_DIR)/plugins \
+ -I$(SRCBASE_DIR)/projects/build/linux/common \
+@@ -83,9 +78,10 @@ INCLUDES = -I$(BASE_DIR)/plugins \
+ PACKAGES_INCLUDES := $(shell pkg-config --cflags alsa)
+ PACKAGES_LIBS := $(shell pkg-config --libs alsa)
+
+-LDFLAGS = -L$(BUILD_DIR) -lm -lglib-lite $(PACKAGES_LIBS) \
++LDFLAGS := -L$(BUILD_DIR) -lm -lglib-lite $(PACKAGES_LIBS) \
+ -z relro \
+- -static-libgcc -static-libstdc++ -Wl,--gc-sections
++ -static-libgcc -static-libstdc++ -Wl,--gc-sections \
++ ${LDFLAGS}
+
+ ifeq ($(ARCH), x32)
+ CFLAGS += -m32
+--- a/modules/media/src/main/native/gstreamer/projects/linux/libffi/Makefile
++++ b/modules/media/src/main/native/gstreamer/projects/linux/libffi/Makefile
+@@ -20,12 +20,6 @@ CFLAGS += -c \
+ -DHAVE_AS_X86_PCREL \
+ -DGSTREAMER_LITE
+
+-ifeq ($(BUILD_TYPE), Release)
+- CFLAGS += -Os
+-else
+- CFLAGS += -O0 -g -Wall
+-endif
+-
+ INCLUDES = -I$(SRCBASE_DIR)/include
+
+ C_SOURCES = src/closures.c \
+--
+2.31.0
+
diff --git a/dev-java/openjfx/metadata.xml b/dev-java/openjfx/metadata.xml
new file mode 100644
index 000000000000..428651d61de7
--- /dev/null
+++ b/dev-java/openjfx/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>java@gentoo.org</email>
+ </maintainer>
+ <longdescription lang="en">
+ OpenJFX is an open source, next generation client application platform for desktop,
+ mobile and embedded systems built on Java.
+ </longdescription>
+ <use>
+ <flag name="media">Compile media module, based on gstreamer-minimal (does not pull gstreamer)</flag>
+ <flag name="source">Install JavaFX sources</flag>
+ </use>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/dev-java/openjfx/openjfx-11.0.11_p1-r5.ebuild b/dev-java/openjfx/openjfx-11.0.11_p1-r5.ebuild
new file mode 100644
index 000000000000..1186e000724a
--- /dev/null
+++ b/dev-java/openjfx/openjfx-11.0.11_p1-r5.ebuild
@@ -0,0 +1,237 @@
+# Copyright 2019-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MY_PV="${PV/_p/+}"
+EGRADLE_VER="4.10.3"
+
+inherit flag-o-matic java-pkg-2 multiprocessing toolchain-funcs
+
+DESCRIPTION="Java OpenJFX client application platform"
+HOMEPAGE="https://openjfx.io"
+
+SRC_URI="
+ https://hg.openjdk.java.net/${PN}/${SLOT}-dev/rt/archive/${MY_PV}.tar.bz2 -> ${P}.tar.bz2
+ https://downloads.gradle.org/distributions/gradle-${EGRADLE_VER}-bin.zip
+ https://repo.maven.apache.org/maven2/org/apache/lucene/lucene-sandbox/7.1.0/lucene-sandbox-7.1.0.jar
+ https://repo.maven.apache.org/maven2/org/apache/lucene/lucene-grouping/7.1.0/lucene-grouping-7.1.0.jar
+ https://repo.maven.apache.org/maven2/org/apache/lucene/lucene-queryparser/7.1.0/lucene-queryparser-7.1.0.jar
+ https://repo.maven.apache.org/maven2/org/apache/lucene/lucene-queries/7.1.0/lucene-queries-7.1.0.jar
+ https://repo.maven.apache.org/maven2/org/apache/lucene/lucene-core/7.1.0/lucene-core-7.1.0.jar
+ https://repo.maven.apache.org/maven2/org/antlr/gunit/3.5.2/gunit-3.5.2.jar
+ https://repo1.maven.org/maven2/org/antlr/antlr4/4.7.2/antlr4-4.7.2-complete.jar
+ https://repo.maven.apache.org/maven2/org/antlr/ST4/4.0.8/ST4-4.0.8.jar
+"
+
+S="${WORKDIR}/rt-${MY_PV}"
+
+LICENSE="GPL-2-with-classpath-exception"
+SLOT="${MY_PV%%[.+]*}"
+KEYWORDS="-* ~amd64 ~ppc64"
+IUSE="cpu_flags_x86_sse2 debug doc source +media"
+REQUIRED_USE="amd64? ( cpu_flags_x86_sse2 )"
+
+# Using higher version like swt-4.35 would lead to compile error:
+# import org.eclipse.swt.SWT;
+# ^
+# bad class file: /usr/share/swt/lib/swt.jar(/org/eclipse/swt/SWT.class)
+# class file has wrong version 61.0, should be 55.0
+RDEPEND="
+ app-accessibility/at-spi2-core
+ dev-java/swt:4.27[cairo,opengl]
+ dev-libs/glib:2
+ dev-libs/libxml2:2=
+ dev-libs/libxslt
+ media-libs/freetype:2
+ media-libs/fontconfig:1.0
+ media-libs/libjpeg-turbo
+ x11-libs/gdk-pixbuf
+ x11-libs/gtk+:2
+ x11-libs/gtk+:3
+ x11-libs/cairo[glib]
+ x11-libs/libX11
+ x11-libs/libXtst
+ x11-libs/libXxf86vm
+ x11-libs/pango
+ virtual/opengl
+ doc? ( dev-java/openjdk:${SLOT}[doc] )
+ !doc? (
+ || (
+ dev-java/openjdk-bin:${SLOT}
+ dev-java/openjdk:${SLOT}
+ )
+ )
+"
+
+DEPEND="${RDEPEND}
+ app-arch/unzip
+ app-arch/zip
+ dev-java/ant:0
+ dev-java/antlr:0
+ dev-java/antlr:3.5
+ dev-java/hamcrest-core:0
+ dev-java/stringtemplate:0
+ virtual/ttf-fonts
+ virtual/pkgconfig
+"
+
+PATCHES=(
+ "${FILESDIR}"/11/disable-buildSrc-tests.patch
+ "${FILESDIR}"/11/glibc-compatibility.patch
+ "${FILESDIR}"/11/respect-user-cflags-11.0.11.patch
+ "${FILESDIR}"/11/use-system-swt-jar.patch
+ "${FILESDIR}"/11/wno-error-11.0.11.patch
+ "${FILESDIR}"/11/don-t-force-msse-11.0.11.patch
+ "${FILESDIR}"/11/disable-architecture-verification.patch
+ "${FILESDIR}"/11/gstreamer-CVE-2021-3522.patch
+ "${FILESDIR}"/11/ffmpeg5.patch
+ "${FILESDIR}"/11/respect-cc.patch
+ "${FILESDIR}"/11/strip-blank-elements-flags.patch
+ "${FILESDIR}"/11/missing-casts.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"
+ #--debug
+ )
+
+ 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"
+}
+
+pkg_setup() {
+ JAVA_PKG_WANT_BUILD_VM="openjdk-${SLOT} openjdk-bin-${SLOT}"
+ JAVA_PKG_WANT_SOURCE="${SLOT}"
+ JAVA_PKG_WANT_TARGET="${SLOT}"
+
+ # The nastiness below is necessary while the gentoo-vm USE flag is
+ # masked. First we call java-pkg-2_pkg_setup if it looks like the
+ # flag was unmasked against one of the possible build VMs. If not,
+ # we try finding one of them in their expected locations. This would
+ # have been slightly less messy if openjdk-bin had been installed to
+ # /opt/${PN}-${SLOT} or if there was a mechanism to install a VM env
+ # file but disable it so that it would not normally be selectable.
+
+ local vm
+ for vm in ${JAVA_PKG_WANT_BUILD_VM}; do
+ if [[ -d ${EPREFIX}/usr/lib/jvm/${vm} ]]; then
+ java-pkg-2_pkg_setup
+ return
+ fi
+ done
+
+ if has_version -b dev-java/openjdk:${SLOT}; then
+ export JAVA_HOME=${EPREFIX}/usr/$(get_libdir)/openjdk-${SLOT}
+ export JDK_HOME="${JAVA_HOME}"
+ export ANT_RESPECT_JAVA_HOME=true
+ else
+ if [[ ${MERGE_TYPE} != "binary" ]]; then
+ JDK_HOME=$(best_version -b dev-java/openjdk-bin:${SLOT})
+ [[ -n ${JDK_HOME} ]] || die "Build VM not found!"
+ JDK_HOME=${JDK_HOME#*/}
+ JDK_HOME=${EPREFIX}/opt/${JDK_HOME%-r*}
+ export JDK_HOME
+ export JAVA_HOME="${JDK_HOME}"
+ export ANT_RESPECT_JAVA_HOME=true
+ fi
+ fi
+}
+
+src_unpack() {
+ unpack "${P}.tar.bz2"
+ unpack "gradle-${EGRADLE_VER}-bin.zip"
+
+ mkdir "${T}/jars" || die
+
+ local line jar
+ for line in ${SRC_URI}; do
+ if [[ ${line} =~ (http|https)://[a-zA-Z0-9.-_]*/(maven2|m2|eclipse)/(.*[.]jar)$ ]]; then
+ jar=$(basename "${BASH_REMATCH[-1]}")
+ cp -v "${DISTDIR}/${jar}" "${T}/jars/" || die
+ fi
+ done
+}
+
+src_prepare() {
+ default
+
+ local d="${T}/jars"
+
+ java-pkg_jar-from --build-only --with-dependencies --into "${d}" antlr
+ java-pkg_jar-from --build-only --with-dependencies --into "${d}" antlr-3.5
+ java-pkg_jar-from --build-only --with-dependencies --into "${d}" stringtemplate
+ java-pkg_jar-from --build-only --with-dependencies --into "${d}" hamcrest-core
+
+ sed -i "s#__gentoo_swt_jar__#$(java-pkg_getjars swt-4.27)#" "${S}"/build.gradle || die
+}
+
+src_configure() {
+ append-flags -Wno-error -fcommon
+ # This package is ridiculously brittle and fails when building e.g.
+ # bundled gstreamer with LTO.
+ filter-lto
+ tc-export AR CC CXX
+
+ # FIXME: still calls pkg-config etc by name without chost prefix
+ # FIXME: should we enable webkit? doubt so
+
+ # build is very sensitive to doc presence, take extra steps
+ if use doc; then
+ local jdk_doc
+ if has_version -b dev-java/openjdk:${SLOT}[doc]; then
+ jdk_doc="${EPREFIX}/usr/share/doc/openjdk-${SLOT}/html/api"
+ fi
+ [[ -r ${jdk_doc}/element-list ]] || die "JDK Docs not found, terminating build early"
+ fi
+
+ cat <<- _EOF_ > "${S}"/gradle.properties
+ COMPILE_TARGETS = linux
+ COMPILE_WEBKIT = false
+ COMPILE_MEDIA = $(usex media true false)
+ JDK_DOCS = https://docs.oracle.com/en/java/javase/${SLOT}/docs/api
+ JDK_DOCS_LINK = $(usex doc "${jdk_doc}" "")
+ BUILD_LIBAV_STUBS = false
+ GRADLE_VERSION_CHECK = false
+ LINT = none
+ CONF = $(usex debug DebugNative Release)
+ NUM_COMPILE_THREADS = $(makeopts_jobs)
+ JFX_DEPS_URL = ${T}/jars
+ COMPANY_NAME = "Gentoo"
+ _EOF_
+}
+
+src_compile() {
+ egradle zips $(usex doc "" "--exclude-task javadoc")
+}
+
+src_install() {
+ if ! use source ; then
+ rm -v build/sdk/lib/src.zip || die
+ fi
+
+ insinto "/usr/$(get_libdir)/${PN}-${SLOT}"
+ doins -r build/sdk/.
+ doins build/javafx-exports.zip
+
+ if use doc; then
+ docinto html
+ dodoc -r build/javadoc/.
+ dosym ../../../usr/share/doc/"${PF}" /usr/share/doc/"${PN}-${SLOT}"
+ fi
+}
diff --git a/dev-java/openjfx/openjfx-8.1000-r2.ebuild b/dev-java/openjfx/openjfx-8.1000-r2.ebuild
new file mode 100644
index 000000000000..303971b7904b
--- /dev/null
+++ b/dev-java/openjfx/openjfx-8.1000-r2.ebuild
@@ -0,0 +1,196 @@
+# Copyright 2020-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+JAVA_PKG_IUSE="doc source"
+
+inherit flag-o-matic java-pkg-2 java-pkg-simple multiprocessing toolchain-funcs
+
+EGRADLE_VER="4.10.3"
+EHG_COMMIT="9f49e3b6147f"
+
+DESCRIPTION="Java OpenJFX 8 client application platform"
+HOMEPAGE="https://openjfx.io"
+SRC_URI="
+ https://hg.openjdk.java.net/${PN}/8u-dev/rt/archive/${EHG_COMMIT}.tar.bz2 -> ${P}.tar.bz2
+ https://dev.gentoo.org/~gyakovlev/distfiles/${P}-backports.tar.bz2
+ https://downloads.gradle.org/distributions/gradle-${EGRADLE_VER}-bin.zip
+"
+# eclass overrides it, set back to normal
+S="${WORKDIR}/${P}"
+
+LICENSE="GPL-2-with-classpath-exception"
+SLOT="$(ver_cut 1)"
+KEYWORDS="~amd64 ~ppc64"
+IUSE="debug doc media cpu_flags_x86_sse2"
+REQUIRED_USE="amd64? ( cpu_flags_x86_sse2 )"
+RESTRICT="test" # needs junit version we don't have, fragile
+
+DEPEND="
+ app-arch/unzip
+ >=dev-java/ant-1.10.14:0
+ >=dev-java/antlr-2.7.7-r7:0
+ dev-java/antlr:3
+ dev-java/openjdk:8
+ dev-java/stringtemplate:0
+ dev-java/swt:4.10[cairo,opengl]
+ app-alternatives/yacc
+ app-alternatives/lex
+ virtual/jdk:1.8
+ virtual/pkgconfig
+"
+
+RDEPEND="
+ dev-java/swt:4.10[cairo,opengl]
+ virtual/jre:1.8
+"
+
+# FIXME: majority of flags are honored, needs a bit more patching
+QA_FLAGS_IGNORED=".*"
+
+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/10-javadoc-locale.patch
+ "${FILESDIR}"/8/Wno-error.patch
+ "${FILESDIR}"/8/don-t-force-msse.patch
+ "${FILESDIR}"/8/fxpackager-don-t-include-obsolete-sys-sysctl.h.patch
+ "${FILESDIR}"/8/missing-casts.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_unpack() {
+ default
+ mv -v "rt-${EHG_COMMIT}" "${P}" || die
+}
+
+src_prepare() {
+ eapply "${WORKDIR}/${P}-backports"
+ 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 ant.jar ant-1.8.2.jar
+ java-pkg_jar-from --build-only --into "${d}" ant 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_AVPLUGIN = $(usex media true 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
+ einfo "Configured with the following settings:"
+ cat gradle.properties || die
+
+}
+
+src_compile() {
+ append-cflags '-fcommon'
+ 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
+}