summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrederik Schwan2023-10-08 22:19:43 +0200
committerFrederik Schwan2023-10-08 22:19:50 +0200
commit9dc34eeaa67e84fe58a4a45b08f13a5534ac625b (patch)
tree3ba3d3537a21997fece4c92ff8ae9bba68d8277f
downloadaur-9dc34eeaa67e84fe58a4a45b08f13a5534ac625b.tar.gz
initial import from [extra]
-rw-r--r--.SRCINFO54
-rw-r--r--PKGBUILD124
-rw-r--r--gradle.properties3
-rw-r--r--java-openjfx-flags.patch243
-rw-r--r--java-openjfx-no-xlocale.patch16
5 files changed, 440 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..3f1e43171b64
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,54 @@
+pkgbase = java-openjfx
+ pkgdesc = Java OpenJFX client application platform (open-source implementation of JavaFX) - latest version
+ pkgver = 21.u31
+ pkgrel = 1
+ url = https://wiki.openjdk.java.net/display/OpenJFX/Main
+ arch = x86_64
+ license = custom
+ makedepends = alsa-lib
+ makedepends = ant
+ makedepends = cairo
+ makedepends = cmake
+ makedepends = ffmpeg4.4
+ makedepends = freetype2
+ makedepends = gdk-pixbuf2
+ makedepends = glib2
+ makedepends = gperf
+ makedepends = gradle7
+ makedepends = gtk2
+ makedepends = gtk3
+ makedepends = java-environment-openjdk=17
+ makedepends = libgl
+ makedepends = libx11
+ makedepends = libxtst
+ makedepends = pango
+ makedepends = perl
+ makedepends = python
+ makedepends = qt5-base
+ makedepends = ruby
+ makedepends = unzip
+ makedepends = webkit2gtk
+ makedepends = zip
+ source = https://github.com/openjdk/jfx21u/archive/refs/tags/21+31.tar.gz
+ source = gradle.properties
+ source = java-openjfx-flags.patch
+ source = java-openjfx-no-xlocale.patch
+ b2sums = 125079b6250fac52850ad11b12fb5436c45d14969298ea3123c57f332200db130e8928ca25579620b62715937bfe061e9dbf07c55acf2499aa1d550b9522d51a
+ b2sums = a77fd8814a5978827de01a652f7b945f3439df04606434ced8998c8d77a82985292490e6965299aeb52f9da3d8069b4091d75519bd4ec8a15f70bc6d28b13498
+ b2sums = 609ffbc0938922f00ccebab6d1e9ab0d54b84f088f75c10c0eb4211ff1b33438481d76092eae8811a5e9f53dfc3ff422f7aa4e98abd8fc27fb73f1c3d4661c41
+ b2sums = 13216615c01b8d48d17889ffa22668c38568870d83ab30c542eb5b5620db305f02efb1acb99d9b5e89eb0a73a134bb336cb301f4de4e8855cae50efb099e384e
+
+pkgname = java-openjfx
+ depends = java-runtime-openjdk=21
+ depends = libgl
+ depends = libx11
+ depends = libxtst
+ optdepends = ffmpeg4.4: Media support,
+ optdepends = gtk2: GTK2 support,
+ optdepends = gtk3: GTK3 support,
+ optdepends = webkit2gtk: Web support
+ provides = java-openjfx=21
+
+pkgname = java-openjfx-doc
+
+pkgname = java-openjfx-src
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..11993258c122
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,124 @@
+# Maintainer: Levente Polyak <anthraxx[at]archlinux[dot]org>
+# Maintainer: Frederik Schwan <freswa at archlinux dot org>
+# Contributor: Maxime Gauduin <alucryd@archlinux.org>
+# Contributor: Guillaume Alaux <guillaume@archlinux.org>
+# Contributor: William Gathoye <william + archlinux at gathoye dot be>
+# Contributor: Emanuel Couto <emanuel dot amaral dot couto at gmail dot com>
+# Contributor: Richard Jackson <rdjack21 at gmail dot com>
+# Contributor: Tinx <arch at tinx dot eu>
+# Contributor: Jens Kapitza <j dot kapitza at schwarze-allianz dot de>
+# Contributor: Olli <olli at coderkun dot de>
+
+pkgbase=java-openjfx
+pkgname=(
+ java-openjfx
+ java-openjfx-doc
+ java-openjfx-src
+)
+pkgver=21.u31
+pkgrel=1
+pkgdesc="Java OpenJFX client application platform (open-source implementation of JavaFX) - latest version"
+arch=(x86_64)
+url=https://wiki.openjdk.java.net/display/OpenJFX/Main
+license=(custom)
+makedepends=(
+ alsa-lib
+ ant
+ cairo
+ cmake
+ ffmpeg4.4
+ freetype2
+ gdk-pixbuf2
+ glib2
+ gperf
+ gradle7
+ gtk2
+ gtk3
+ java-environment-openjdk=17
+ libgl
+ libx11
+ libxtst
+ pango
+ perl
+ python
+ qt5-base
+ ruby
+ unzip
+ webkit2gtk
+ zip
+)
+source=(
+ https://github.com/openjdk/jfx${pkgver//.*}u/archive/refs/tags/${pkgver//.u/+}.tar.gz
+ # ${pkgname}-${pkgver}.tar.gz::https://github.com/openjdk/jfx${pkgver%%.*}u/archive/refs/tags/${pkgver//.u/+}.tar.gz
+ gradle.properties
+ java-openjfx-flags.patch
+ java-openjfx-no-xlocale.patch
+)
+b2sums=('125079b6250fac52850ad11b12fb5436c45d14969298ea3123c57f332200db130e8928ca25579620b62715937bfe061e9dbf07c55acf2499aa1d550b9522d51a'
+ 'a77fd8814a5978827de01a652f7b945f3439df04606434ced8998c8d77a82985292490e6965299aeb52f9da3d8069b4091d75519bd4ec8a15f70bc6d28b13498'
+ '609ffbc0938922f00ccebab6d1e9ab0d54b84f088f75c10c0eb4211ff1b33438481d76092eae8811a5e9f53dfc3ff422f7aa4e98abd8fc27fb73f1c3d4661c41'
+ '13216615c01b8d48d17889ffa22668c38568870d83ab30c542eb5b5620db305f02efb1acb99d9b5e89eb0a73a134bb336cb301f4de4e8855cae50efb099e384e')
+
+prepare() {
+ cd jfx${pkgver//.*}u-${pkgver//.u/-}
+ # cd jfx${pkgver%%.*}u-${pkgver//.u/-}
+
+ ln -sf ../gradle.properties .
+ patch -Np1 -i ../java-openjfx-flags.patch
+ patch -Np1 -i ../java-openjfx-no-xlocale.patch
+ sed 's|, "-Werror"||g' -i buildSrc/linux.gradle
+}
+
+build() {
+ cd jfx${pkgver//.*}u-${pkgver//.u/-}
+ # cd jfx${pkgver%%.*}u-${pkgver//.u/-}
+
+ # build against ffmpeg4.4
+ export PKG_CONFIG_PATH='/usr/lib/ffmpeg4.4/pkgconfig'
+
+ gradle zips
+}
+
+package_java-openjfx() {
+ depends=(
+ java-runtime-openjdk=${pkgver%%.*}
+ libgl
+ libx11
+ libxtst
+ )
+ optdepends=(
+ 'ffmpeg4.4: Media support',
+ 'gtk2: GTK2 support',
+ 'gtk3: GTK3 support',
+ 'webkit2gtk: Web support'
+ )
+ provides=(java-openjfx=${pkgver%%.*})
+
+ cd jfx${pkgver//.*}u-${pkgver//.u/-}
+ # cd jfx${pkgver%%.*}u-${pkgver//.u/-}
+
+ install -dm 755 "${pkgdir}"/usr/{lib/jvm/java-${pkgver%%.*}-openjdk,share/licenses}
+ cp -dr --no-preserve=ownership build/sdk/lib "${pkgdir}"/usr/lib/jvm/java-${pkgver%%.*}-openjdk/
+ cp -dr --no-preserve=ownership build/jmods "${pkgdir}"/usr/lib/jvm/java-${pkgver%%.*}-openjdk/
+ cp -dr --no-preserve=ownership build/sdk/legal "${pkgdir}"/usr/share/licenses/java-openjfx
+}
+
+package_java-openjfx-doc() {
+ cd jfx${pkgver//.*}u-${pkgver//.u/-}
+ # cd jfx${pkgver%%.*}u-${pkgver//.u/-}
+
+ install -dm 755 "${pkgdir}"/usr/share/{doc,licenses}
+ cp -dr --no-preserve=ownership build/javadoc "${pkgdir}"/usr/share/doc/java-openjfx
+ ln -s java-openjfx "${pkgdir}"/usr/share/licenses/java-openjfx-doc
+}
+
+package_java-openjfx-src() {
+ cd jfx${pkgver//.*}u-${pkgver//.u/-}
+ # cd jfx${pkgver%%.*}u-${pkgver//.u/-}
+
+ install -dm 755 "${pkgdir}"/usr/{lib/jvm/java-${pkgver%%.*}-openjdk,share/licenses}
+ install -m 644 build/sdk/src.zip "${pkgdir}"/usr/lib/jvm/java-${pkgver%%.*}-openjdk/javafx-src.zip
+ ln -s java-openjfx "${pkgdir}"/usr/share/licenses/java-openjfx-src
+}
+
+# vim: ts=2 sw=2 et:
diff --git a/gradle.properties b/gradle.properties
new file mode 100644
index 000000000000..56d468493e61
--- /dev/null
+++ b/gradle.properties
@@ -0,0 +1,3 @@
+COMPILE_MEDIA = true
+COMPILE_WEBKIT = true
+CONF = Release
diff --git a/java-openjfx-flags.patch b/java-openjfx-flags.patch
new file mode 100644
index 000000000000..06936dc4874a
--- /dev/null
+++ b/java-openjfx-flags.patch
@@ -0,0 +1,243 @@
+From 6a90da118a7ab787c675e25ff871f7f8aa03dc53 Mon Sep 17 00:00:00 2001
+From: Frederik Schwan <frederik.schwan@linux.com>
+Date: Wed, 19 Oct 2022 12:18:28 +0200
+Subject: [PATCH] use the systems CFLAGS and LDFLAGS
+
+(cherry picked from commit 7895d73c94aebec4786ab5dbdcdac0361aa3c548)
+---
+ buildSrc/linux.gradle | 8 ++++++--
+ .../gstreamer/projects/linux/avplugin/Makefile | 16 ++++++----------
+ .../gstreamer/projects/linux/fxplugins/Makefile | 17 ++++++-----------
+ .../projects/linux/gstreamer-lite/Makefile | 16 ++++++----------
+ .../native/jfxmedia/projects/linux/Makefile | 16 ++++++----------
+ 5 files changed, 30 insertions(+), 43 deletions(-)
+
+diff --git a/buildSrc/linux.gradle b/buildSrc/linux.gradle
+index 387d5eee06..ac3be55f6a 100644
+--- a/buildSrc/linux.gradle
++++ b/buildSrc/linux.gradle
+@@ -43,8 +43,11 @@ LINUX.library = { name -> return (IS_STATIC_BUILD ? "lib${name}.a" : "lib${name}
+ 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().replaceAll(" +", " ").split(" "))
++
+ if (!IS_64) {
+ commonFlags += "-m32"
+ }
+@@ -70,6 +73,7 @@ def dynamicLinkFlags = ["-static-libgcc", "-static-libstdc++", "-shared", common
+ def staticLinkFlags = [].flatten()
+
+ def linkFlags = IS_STATIC_BUILD ? staticLinkFlags : dynamicLinkFlags;
++linkFlags.addAll(System.getenv("LDFLAGS").trim().split(" "))
+
+ if (IS_DEBUG_NATIVE) {
+ linkFlags += "-g"
+@@ -284,7 +288,7 @@ LINUX.iio.nativeSource = [
+ LINUX.iio.compiler = compiler
+ LINUX.iio.ccFlags = [cFlags, "-fvisibility=hidden"].flatten()
+ LINUX.iio.linker = IS_STATIC_BUILD ? "ld" : linker
+-LINUX.iio.linkFlags = [linkFlags].flatten()
++LINUX.iio.linkFlags = [linkFlags, "-ljpeg"].flatten()
+ LINUX.iio.lib = "javafx_iio"
+
+ LINUX.prismES2 = [:]
+@@ -332,5 +336,5 @@ LINUX.media.ar = "${toolchainDir}ar"
+ LINUX.webkit = [:]
+ LINUX.webkit.compiler = compiler
+ LINUX.webkit.linker = linker
+-LINUX.webkit.ccFlags = commonFlags.flatten()
++LINUX.webkit.ccFlags = [commonFlags, "-fno-lto"].flatten()
+ LINUX.webkit.linkFlags = linkFlags.flatten()
+diff --git a/modules/javafx.media/src/main/native/gstreamer/projects/linux/avplugin/Makefile b/modules/javafx.media/src/main/native/gstreamer/projects/linux/avplugin/Makefile
+index fbc3f45650..0e674d27ff 100644
+--- 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 \
+@@ -31,18 +31,13 @@ CFLAGS = -fPIC \
+ -DGSTREAMER_LITE \
+ -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_48 \
+ -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_48 \
+- -ffunction-sections -fdata-sections
++ -ffunction-sections -fdata-sections \
++ ${CFLAGS}
+
+ ifneq (,$(findstring $(ARCH), x64 x32))
+ CFLAGS += -msse2
+ endif
+
+-ifeq ($(BUILD_TYPE), Release)
+- CFLAGS += -Os
+-else
+- CFLAGS += -g -Wall
+-endif
+-
+ PACKAGES_INCLUDES := $(shell pkg-config --cflags glib-2.0)
+ PACKAGES_LIBS := $(shell pkg-config --libs glib-2.0 gobject-2.0)
+
+@@ -52,11 +47,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
+diff --git a/modules/javafx.media/src/main/native/gstreamer/projects/linux/fxplugins/Makefile b/modules/javafx.media/src/main/native/gstreamer/projects/linux/fxplugins/Makefile
+index d831760bbc..d29e13c765 100644
+--- 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 \
+@@ -33,19 +33,13 @@ CFLAGS = -fPIC \
+ -DGSTREAMER_LITE \
+ -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_48 \
+ -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_48 \
+- -ffunction-sections -fdata-sections
++ -ffunction-sections -fdata-sections \
++ ${CFLAGS}
+
+ ifneq (,$(findstring $(ARCH), x64 x32))
+ CFLAGS += -msse2
+ endif
+
+-ifeq ($(BUILD_TYPE), Release)
+- CFLAGS += -Os
+-else
+- CFLAGS += -g -Wall
+-endif
+-
+-
+ INCLUDES = -I$(SRCBASE_DIR) \
+ $(addprefix -I$(SRCBASE_DIR)/,$(DIRLIST)) \
+ -I../../../gstreamer-lite/gstreamer \
+@@ -54,9 +48,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
+diff --git 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
+index 86ef57d154..0942421aa0 100644
+--- 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 \
+@@ -55,13 +55,8 @@ CFLAGS =-fPIC \
+ -DGST_DISABLE_LOADSAVE \
+ -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_48 \
+ -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_48 \
+- -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 \
+@@ -79,9 +74,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
+diff --git a/modules/javafx.media/src/main/native/jfxmedia/projects/linux/Makefile b/modules/javafx.media/src/main/native/jfxmedia/projects/linux/Makefile
+index fc10e0f88b..e944f6e3ce 100644
+--- 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,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 \
+@@ -54,7 +54,8 @@ CFLAGS = -DTARGET_OS_LINUX=1 \
+ -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_48 \
+ -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_48 \
+ -Werror=deprecated-declarations \
+- -ffunction-sections -fdata-sections
++ -ffunction-sections -fdata-sections \
++ ${CFLAGS}
+
+ CPPFLAGS = -fno-rtti -ffunction-sections -fdata-sections
+
+@@ -89,21 +90,16 @@ ifdef HOST_COMPILE
+ -I$(PLUGINS_DIR) \
+ $(PACKAGES_INCLUDES)
+
+- LDFLAGS = -Wl,-rpath,\$$ORIGIN -L$(BUILD_DIR) -lgstreamer-lite $(PACKAGES_LIBS) \
++ LDFLAGS := -Wl,-rpath,\$$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.38.1
diff --git a/java-openjfx-no-xlocale.patch b/java-openjfx-no-xlocale.patch
new file mode 100644
index 000000000000..da3ac418836f
--- /dev/null
+++ b/java-openjfx-no-xlocale.patch
@@ -0,0 +1,16 @@
+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;
+