It would be much better if JavaFX could use the system/AUR libraries/packages instead bringing its own version and compiling them locally. It elongates the build time a lot, also the build process could contain errors/issues that are potentially fixed in the system packages / other PKGBUILDs.
Search Criteria
Package Details: java21-openjfx-src 21.0.5.u0-1
Package Actions
Git Clone URL: | https://aur.archlinux.org/java21-openjfx.git (read-only, click to copy) |
---|---|
Package Base: | java21-openjfx |
Description: | Java OpenJFX client application platform (open-source implementation of JavaFX) - latest version |
Upstream URL: | https://wiki.openjdk.java.net/display/OpenJFX/Main |
Keywords: | java21 javafx openjfx |
Licenses: | GPL-2.0-only WITH Classpath-exception-2.0 |
Submitter: | Freso |
Maintainer: | Freso (AutoUpdateBot) |
Last Packager: | Freso |
Votes: | 0 |
Popularity: | 0.000000 |
First Submitted: | 2024-04-05 23:59 (UTC) |
Last Updated: | 2024-08-15 13:30 (UTC) |
Dependencies (24)
- alsa-lib (make)
- ant (ant-gitAUR) (make)
- cairo (cairo-gitAUR) (make)
- cmake (cmake-gitAUR) (make)
- ffmpeg4.4 (make)
- freetype2 (freetype2-qdoledAUR, freetype2-macosAUR, freetype2-gitAUR) (make)
- gdk-pixbuf2 (gdk-pixbuf2-gitAUR) (make)
- glib2 (glib2-gitAUR, glib2-selinuxAUR, glib2-patched-thumbnailerAUR) (make)
- gperf (gperf-gitAUR) (make)
- gradle7 (make)
- gtk2 (gtk2-maemoAUR, gtk2-patched-filechooser-icon-viewAUR) (make)
- gtk3 (gtk3-no_deadkeys_underlineAUR, gtk3-classicAUR, gtk3-classic-xfceAUR, gtk3-patched-filechooser-icon-viewAUR) (make)
- java-environment-openjdk (jdk10-openj9-binAUR, jdk16-adoptopenjdkAUR, liberica-jre-11-binAUR, jdk16-openjdkAUR, jdk14-openjdkAUR, jdk18-openjdkAUR, liberica-jre-11-full-binAUR, jdk13-openjdk-binAUR, liberica-jre-8-full-binAUR, jdk12-openjdkAUR, jdk11-dragonwell-standard-binAUR, jdk11-jetbrains-binAUR, zulu-13-binAUR, jdk8-dragonwell-extended-binAUR, jdk8-dragonwell-standard-binAUR, jdk11-dragonwell-extended-binAUR, jdk17-dragonwell-standard-binAUR, jdk8-dragonwell-extendedAUR, jdk13-openjdkAUR, jdk15-openjdkAUR, liberica-nik-24-full-binAUR, zulu-17-binAUR, zulu-11-binAUR, zulu-8-binAUR, liberica-jdk-17-full-binAUR, liberica-jdk-11-lite-binAUR, liberica-jdk-11-full-binAUR, liberica-jdk-11-binAUR, jdk19-openjdkAUR, jdk17-jetbrains-binAUR, zulu-jdk-fx-binAUR, java-openjdk-binAUR, jdk21-temurinAUR, jdk11-temurinAUR, liberica-jdk-full-binAUR, liberica-jdk-21-full-binAUR, liberica-jdk-8-full-binAUR, jdk17-temurinAUR, zulu-21-binAUR, jdk-temurinAUR, zulu-17-fx-binAUR, jdk8-perfAUR, zulu-fx-binAUR, zulu8-fx-binAUR, zulu11-fx-binAUR, zulu17-fx-binAUR, zulu21-fx-binAUR, jdk-openj9-binAUR, jdk11-openj9-binAUR, jre-jetbrainsAUR, jdk-openjdk-wakefieldAUR, jdk21-openj9-binAUR, zulu-23-binAUR, jdk21-jetbrains-binAUR, jre-zulu-binAUR, jre-zulu-fx-binAUR, jdk21-dragonwell-standard-binAUR, jdk21-dragonwell-extended-binAUR, jdk-android-studioAUR, jdk17-openj9-binAUR, zing-8-binAUR, zing-21-binAUR, java-openjdk-ea-binAUR, jdk-openjdk, jdk11-openjdk, jdk17-openjdk, jdk21-openjdk, jdk8-openjdk) (make)
- libgl (libglvnd-gitAUR, amdgpu-pro-oglp-legacyAUR, amdgpu-pro-oglpAUR, nvidia-340xx-utilsAUR, libglvnd) (make)
- libx11 (libx11-gitAUR) (make)
- libxtst (make)
- pango (pango-gitAUR) (make)
- perl (perl-gitAUR) (make)
- python (python37AUR, python311AUR, python310AUR) (make)
- qt5-base (qt5-base-gitAUR, qt5-base-headlessAUR) (make)
- ruby (make)
- unzip (unzip-natspecAUR, unzip-zstdAUR) (make)
- webkit2gtk (webkit2gtk-imgpasteAUR) (make)
- zip (zip-natspecAUR) (make)
Required by (0)
Sources (4)
Latest Comments
hron84 commented on 2024-10-09 20:31 (UTC)
n0s4 commented on 2024-10-02 13:10 (UTC)
I'm getting build error:
[18/4593] Building CXX object Source/WebCore/PAL/pal/CMakeFiles/PAL.dir/text/TextCodecCJK.cpp.o
cc1plus: warning: command-line option ‘-Wno-incompatible-pointer-types’ is valid for C/ObjC but not for C++
cc1plus: warning: command-line option ‘-Wno-int-conversion’ is valid for C/ObjC but not for C++
cc1plus: warning: command-line option ‘-Wno-discarded-qualifiers’ is valid for C/ObjC but not for C++
ninja: build stopped: subcommand failed.
> Task :web:compileNativeLinux FAILED
FAILURE: Build failed with an exception.
* Where:
Build file '/home/joe/Downloads/java21-openjfx/src/jfx21u-21.0.5-0/build.gradle' line: 3659
* What went wrong:
Execution failed for task ':web:compileNativeLinux'.
> Process 'command 'perl'' finished with non-zero exit value 1
* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 8s
59 actionable tasks: 9 executed, 50 up-to-date
==> ERROR: A failure occurred in build().
Aborting...
I have perl v5.40.0 installed.
Any suggestions?
dreieck commented on 2024-05-18 11:07 (UTC)
Please change options=(!lto)
to options+=('!lto')
, so that !lto
is appended but other options set by the user (e.g. in /etc/makepkg.conf
) stay in effect.
Regards and thanks for maintaining!
dreieck commented on 2024-05-18 10:12 (UTC) (edited on 2024-05-18 10:56 (UTC) by dreieck)
With up to date GCC 14.1.1, you need to add the following (or code with similar effect) to build()
:
_FIXWERROR_GCC14="-Wno-error=incompatible-pointer-types -Wno-error=sign-compare -Wno-error=int-conversion"
_SILENCEWARNINGS="-Wno-incompatible-pointer-types -Wno-sign-compare -Wno-int-conversion -Wno-missing-field-initializers -Wno-cast-function-type -Wno-discarded-qualifiers -Wno-deprecated-copy -Wno-missing-field-initializers -Wno-stringop-truncation -Wno-return-local-addr -Wno-dangling-pointer -Wno-address -Wno-switch -Wno-deprecated-declarations -Wno-stringop-overread -Wno-expansion-to-defined -Wno-array-bounds"
_CFLAGSADDITIONS=" ${_FIXWERROR_GCC14} ${_SILENCEWARNINGS}"
CFLAGS+="${_CFLAGSADDITIONS}"
CXXFLAGS+="${_CFLAGSADDITIONS}"
export CFLAGS
export CXXFLAGS
(_SILENCEWARNINGS
is optional, it also silences the printing of some compiler warnings.)
Otherwise build fails with
freetype.c:523:33: error: initialization of ‘jbyte *’ {aka ‘signed char *’} from incompatible pointer type ‘jfloat *’ {aka ‘float *’} [-Wincompatible-pointer-types]
and
freetype.c:387:21: warning: comparison of integer expressions of different signedness: ‘unsigned int’ and ‘int’ [-Wsign-compare]
and
pango.c:427:53: error: passing argument 2 of ‘g_utf8_strlen’ makes integer from pointer without a cast [-Wint-conversion]
:
> Task :graphics:compileFullJava
Note: /var/cache/makepkg/build/java21-openjfx/src/jfx21u-21.0.4-0/modules/javafx.graphics/src/main/java/javafx/scene/layout/Region.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
/var/cache/makepkg/build/java21-openjfx/src/jfx21u-21.0.4-0/modules/javafx.graphics/src/main/native-font/freetype.c: In function ‘Java_com_sun_javafx_font_freetype_OSFreetype_getBitmapData’:
/var/cache/makepkg/build/java21-openjfx/src/jfx21u-21.0.4-0/modules/javafx.graphics/src/main/native-font/freetype.c:387:21: warning: comparison of integer expressions of different signedness: ‘unsigned int’ and ‘int’ [-Wsign-compare]
387 | if (bitmap.rows > INT_MAX / bitmap.pitch) return NULL;
| ^
/var/cache/makepkg/build/java21-openjfx/src/jfx21u-21.0.4-0/modules/javafx.graphics/src/main/native-font/freetype.c: In function ‘checkSize’:
/var/cache/makepkg/build/java21-openjfx/src/jfx21u-21.0.4-0/modules/javafx.graphics/src/main/native-font/freetype.c:523:33: error: initialization of ‘jbyte *’ {aka ‘signed char *’} from incompatible pointer type ‘jfloat *’ {aka ‘float *’} [-Wincompatible-pointer-types]
523 | jbyte* newPointCoords = (jfloat*)realloc(info->pointCoords, info->lenCoords * sizeof(jfloat));
| ^
/var/cache/makepkg/build/java21-openjfx/src/jfx21u-21.0.4-0/modules/javafx.graphics/src/main/native-font/freetype.c:525:27: error: assignment to ‘jfloat *’ {aka ‘float *’} from incompatible pointer type ‘jbyte *’ {aka ‘signed char *’} [-Wincompatible-pointer-types]
525 | info->pointCoords = newPointCoords;
| ^
> Task :graphics:ccLinuxFontFreetype FAILED
FAILURE: Build failed with an exception.
> Task :graphics:compileFullJava
Note: /var/cache/makepkg/build/java21-openjfx/src/jfx21u-21.0.4-0/modules/javafx.graphics/src/main/java/javafx/scene/layout/Region.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
/var/cache/makepkg/build/java21-openjfx/src/jfx21u-21.0.4-0/modules/javafx.graphics/src/main/native-font/freetype.c: In function ‘Java_com_sun_javafx_font_freetype_OSFreetype_getBitmapData’:
/var/cache/makepkg/build/java21-openjfx/src/jfx21u-21.0.4-0/modules/javafx.graphics/src/main/native-font/freetype.c:387:21: warning: comparison of integer expressions of different signedness: ‘unsigned int’ and ‘int’ [-Wsign-compare]
387 | if (bitmap.rows > INT_MAX / bitmap.pitch) return NULL;
| ^
/var/cache/makepkg/build/java21-openjfx/src/jfx21u-21.0.4-0/modules/javafx.graphics/src/main/native-font/freetype.c: In function ‘checkSize’:
/var/cache/makepkg/build/java21-openjfx/src/jfx21u-21.0.4-0/modules/javafx.graphics/src/main/native-font/freetype.c:523:33: warning: initialization of ‘jbyte *’ {aka ‘signed char *’} from incompatible pointer type ‘jfloat *’ {aka ‘float *’} [-Wincompatible-pointer-types]
523 | jbyte* newPointCoords = (jfloat*)realloc(info->pointCoords, info->lenCoords * sizeof(jfloat));
| ^
/var/cache/makepkg/build/java21-openjfx/src/jfx21u-21.0.4-0/modules/javafx.graphics/src/main/native-font/freetype.c:525:27: warning: assignment to ‘jfloat *’ {aka ‘float *’} from incompatible pointer type ‘jbyte *’ {aka ‘signed char *’} [-Wincompatible-pointer-types]
525 | info->pointCoords = newPointCoords;
| ^
/var/cache/makepkg/build/java21-openjfx/src/jfx21u-21.0.4-0/modules/javafx.graphics/src/main/native-font/freetype.c: In function ‘Java_com_sun_javafx_font_freetype_OSFreetype_FT_1Set_1Transform’:
/var/cache/makepkg/build/java21-openjfx/src/jfx21u-21.0.4-0/modules/javafx.graphics/src/main/native-font/freetype.c:412:13: warning: dangling pointer ‘lpDelta’ to ‘vec’ may be used [-Wdangling-pointer=]
412 | FT_Set_Transform((FT_Face)arg0, lpMatrix, lpDelta);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/cache/makepkg/build/java21-openjfx/src/jfx21u-21.0.4-0/modules/javafx.graphics/src/main/native-font/freetype.c:405:19: note: ‘vec’ declared here
405 | FT_Vector vec = {arg2, arg3};
| ^~~
/var/cache/makepkg/build/java21-openjfx/src/jfx21u-21.0.4-0/modules/javafx.graphics/src/main/native-font/pango.c: In function ‘Java_com_sun_javafx_font_freetype_OSPango_g_1utf8_1strlen’:
/var/cache/makepkg/build/java21-openjfx/src/jfx21u-21.0.4-0/modules/javafx.graphics/src/main/native-font/pango.c:427:53: error: passing argument 2 of ‘g_utf8_strlen’ makes integer from pointer without a cast [-Wint-conversion]
427 | return (jlong)g_utf8_strlen((const gchar *)str, (const gchar *)pos);
| ^~~~~~~~~~~~~~~~~~
| |
| const gchar * {aka const char *}
In file included from /usr/include/glib-2.0/glib/gstring.h:35,
from /usr/include/glib-2.0/glib/giochannel.h:36,
from /usr/include/glib-2.0/glib.h:56,
from /usr/include/glib-2.0/gobject/gbinding.h:30,
from /usr/include/glib-2.0/glib-object.h:24,
from /usr/include/pango-1.0/pango/pango-coverage.h:25,
from /usr/include/pango-1.0/pango/pango-font.h:25,
from /usr/include/pango-1.0/pango/pango-attributes.h:25,
from /usr/include/pango-1.0/pango/pango.h:25,
from /var/cache/makepkg/build/java21-openjfx/src/jfx21u-21.0.4-0/modules/javafx.graphics/src/main/native-font/pango.c:31:
/usr/include/glib-2.0/glib/gunicode.h:834:49: note: expected ‘gssize’ {aka ‘long int’} but argument is of type ‘const gchar *’ {aka ‘const char *’}
834 | gssize max) G_GNUC_PURE;
| ~~~~~~~~~~~~~^~~
> Task :graphics:ccLinuxFontPango FAILED
FAILURE: Build failed with an exception.
> Task :graphics:compileFullJava
[...]
/var/cache/makepkg/build/java21-openjfx/src/jfx21u-21.0.4-0/modules/javafx.graphics/src/main/native-font/pango.c: In function ‘Java_com_sun_javafx_font_freetype_OSPango_g_1utf8_1strlen’:
/var/cache/makepkg/build/java21-openjfx/src/jfx21u-21.0.4-0/modules/javafx.graphics/src/main/native-font/pango.c:427:53: error: passing argument 2 of ‘g_utf8_strlen’ makes integer from pointer without a cast [-Wint-conversion]
427 | return (jlong)g_utf8_strlen((const gchar *)str, (const gchar *)pos);
| ^~~~~~~~~~~~~~~~~~
| |
| const gchar * {aka const char *}
In file included from /usr/include/glib-2.0/glib/gstring.h:35,
from /usr/include/glib-2.0/glib/giochannel.h:36,
from /usr/include/glib-2.0/glib.h:56,
from /usr/include/glib-2.0/gobject/gbinding.h:30,
from /usr/include/glib-2.0/glib-object.h:24,
from /usr/include/pango-1.0/pango/pango-coverage.h:25,
from /usr/include/pango-1.0/pango/pango-font.h:25,
from /usr/include/pango-1.0/pango/pango-attributes.h:25,
from /usr/include/pango-1.0/pango/pango.h:25,
from /var/cache/makepkg/build/java21-openjfx/src/jfx21u-21.0.4-0/modules/javafx.graphics/src/main/native-font/pango.c:31:
/usr/include/glib-2.0/glib/gunicode.h:834:49: note: expected ‘gssize’ {aka ‘long int’} but argument is of type ‘const gchar *’ {aka ‘const char *’}
834 | gssize max) G_GNUC_PURE;
| ~~~~~~~~~~~~~^~~
> Task :graphics:ccLinuxFontPango FAILED
FAILURE: Build failed with an exception.
Regards!
patlefort commented on 2024-04-21 17:35 (UTC)
Another small change: Can you please add --no-daemon
to your gradle command? We generally don't want to daemonize gradle when building packages.
Freso commented on 2024-04-21 11:59 (UTC)
Patches etc. are very welcome at https://gitlab.archlinux.org/freso/java-openjfx (java21-openjfx
branch) if you have any suggestions for how to fix the package. :)
Disabling the building of WebKit seems to unbreak the build. I’m not sure how essential the WebKit parts are to JavaFX overall, so a bit wary about changing this part of the PKGBUILD here. For anyone who wants to try it out, you can grab the package from this branch: https://gitlab.archlinux.org/freso/java-openjfx/-/tree/java21-openjfx-no-webkit
patlefort commented on 2024-04-17 13:41 (UTC)
Patch to fix issues:
- Fix wrong provides.
- Add LDFLAGS work around, it won't compile without it.
- Move conflicting files with java-openjfx package.
- Disable webkit, it doesn't compile, same problem as
java-openjfx
.
Also, can you please bump pkgrel instead of adding a .u to pkgver? That's what pkgrel is for.
diff --git a/PKGBUILD b/PKGBUILD
index b445826..f71b730 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -54,7 +54,7 @@ source=(
java-openjfx-no-xlocale.patch
)
b2sums=('e569482a6b89f541e0349772f4bc91c2f2fa97073da9a894c73d9d1107dc074b84d6ab004a259519bdaf03b6abf7fbf84cccd1e23234847f20627592050f2e5d'
- 'a77fd8814a5978827de01a652f7b945f3439df04606434ced8998c8d77a82985292490e6965299aeb52f9da3d8069b4091d75519bd4ec8a15f70bc6d28b13498'
+ '0c023ef99e7ee600710c54dad0ad59070620595109ca42c5057fa2ab74ef6d244631745f5cd4c1bea9c0321ee69f1e1efaab820ff124ad1d4f453121e77fd14f'
'609ffbc0938922f00ccebab6d1e9ab0d54b84f088f75c10c0eb4211ff1b33438481d76092eae8811a5e9f53dfc3ff422f7aa4e98abd8fc27fb73f1c3d4661c41'
'13216615c01b8d48d17889ffa22668c38568870d83ab30c542eb5b5620db305f02efb1acb99d9b5e89eb0a73a134bb336cb301f4de4e8855cae50efb099e384e')
@@ -77,6 +77,9 @@ build() {
# build against ffmpeg4.4
export PKG_CONFIG_PATH='/usr/lib/ffmpeg4.4/pkgconfig'
+
+ # Workaround for situation where the linker treats whitespace as arguments
+ export LDFLAGS="${LDFLAGS//+([[:space:]]|[[:blank:]])/ }"
gradle zips
}
@@ -94,14 +97,14 @@ package_java21-openjfx() {
'gtk3: GTK3 support',
'webkit2gtk: Web support'
)
- provides=(java21-openjfx=${pkgver%%.*})
+ provides=(java-openjfx=${pkgver%%.*})
cd $_jfxdir
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
+ cp -dr --no-preserve=ownership build/sdk/legal "${pkgdir}"/usr/share/licenses/java-${pkgver%%.*}-openjfx
}
package_java21-openjfx-doc() {
@@ -109,8 +112,8 @@ package_java21-openjfx-doc() {
cd $_jfxdir
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
+ cp -dr --no-preserve=ownership build/javadoc "${pkgdir}"/usr/share/doc/java-${pkgver%%.*}-openjfx
+ ln -s java-${pkgver%%.*}-openjfx "${pkgdir}"/usr/share/licenses/java-${pkgver%%.*}-openjfx-doc
}
package_java21-openjfx-src() {
@@ -119,7 +122,7 @@ package_java21-openjfx-src() {
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
+ ln -s java-${pkgver%%.*}-openjfx "${pkgdir}"/usr/share/licenses/java-${pkgver%%.*}-openjfx-src
}
# vim: ts=2 sw=2 et:
diff --git a/gradle.properties b/gradle.properties
index 56d4684..eaf8704 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -1,3 +1,3 @@
COMPILE_MEDIA = true
-COMPILE_WEBKIT = true
+COMPILE_WEBKIT = false
CONF = Release
Narwhal commented on 2024-04-10 08:08 (UTC)
The checksum for java-openjfx-21.0.3+1.tar.gz
seems incorrect. Validation fails.
Pinned Comments
Freso commented on 2024-04-21 11:59 (UTC)
Patches etc. are very welcome at https://gitlab.archlinux.org/freso/java-openjfx (
java21-openjfx
branch) if you have any suggestions for how to fix the package. :)Disabling the building of WebKit seems to unbreak the build. I’m not sure how essential the WebKit parts are to JavaFX overall, so a bit wary about changing this part of the PKGBUILD here. For anyone who wants to try it out, you can grab the package from this branch: https://gitlab.archlinux.org/freso/java-openjfx/-/tree/java21-openjfx-no-webkit