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-doc 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: | 1 |
Popularity: | 0.102370 |
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 (cmake3AUR, cmake-gitAUR) (make)
- ffmpeg4.4 (make)
- freetype2 (freetype2-qdoled-aw3225qfAUR, freetype2-gitAUR, freetype2-macosAUR, freetype2-qdoledAUR) (make)
- gdk-pixbuf2 (gdk-pixbuf2-gitAUR, gdk-pixbuf2-noglycinAUR) (make)
- glib2 (glib2-gitAUR, glib2-selinuxAUR, glib2-patched-thumbnailerAUR) (make)
- gperf (gperf-gitAUR) (make)
- gradle7 (make)
- gtk2 (gtk2-patched-filechooser-icon-viewAUR) (make)
- gtk3 (gtk3-no_deadkeys_underlineAUR, gtk3-classic-xfceAUR, gtk3-patched-filechooser-icon-viewAUR, gtk3-classicAUR) (make)
- java-environment-openjdk (jdk10-openj9-binAUR, jdk16-adoptopenjdkAUR, liberica-jre-11-binAUR, jdk16-openjdkAUR, jdk14-openjdkAUR, jdk18-openjdkAUR, liberica-jre-11-full-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, jdk13-openjdkAUR, jdk15-openjdkAUR, zulu-8-binAUR, liberica-jdk-11-lite-binAUR, jdk19-openjdkAUR, zulu-jdk-fx-binAUR, zulu-fx-binAUR, zulu11-fx-binAUR, zulu17-fx-binAUR, zulu21-fx-binAUR, jdk11-openj9-binAUR, jre-zulu-binAUR, jre-zulu-fx-binAUR, jdk-android-studioAUR, zulu-11-binAUR, openjdk-liberica8-full-binAUR, openjdk-liberica11-full-binAUR, openjdk-liberica17-full-binAUR, openjdk-liberica21-full-binAUR, openjdk-liberica-full-binAUR, jdk17-jetbrains-binAUR, jdk21-dragonwell-standard-binAUR, jdk8-dragonwell-extendedAUR, liberica-jdk-11-binAUR, liberica-jdk-11-full-binAUR, liberica-jdk-17-full-binAUR, jdk23-temurinAUR, zing-23-binAUR, jdk17-dragonwell-standard-binAUR, jdk21-dragonwell-extended-binAUR, jdk-openjdk-wakefieldAUR, zing-21-binAUR, zing-8-binAUR, zing-17-binAUR, jdk8-perfAUR, openjdk-zulu-ca-fx-binAUR, openjdk-zulu8-ca-fx-binAUR, openjdk-zulu11-ca-fx-binAUR, openjdk-zulu17-ca-fx-binAUR, openjdk-zulu21-ca-fx-binAUR, liberica-jdk-21-full-binAUR, liberica-jdk-8-full-binAUR, zulu-21-binAUR, jdk21-temurinAUR, jdk17-temurinAUR, jdk11-temurinAUR, zulu-24-binAUR, liberica-nik-23-full-binAUR, liberica-jdk-21-binAUR, zulu-17-binAUR, jdk21-openj9-binAUR, jdk17-openj9-binAUR, jdk21-jetbrains-binAUR, zulu-17-fx-binAUR, zulu8-fx-binAUR, liberica-nik-24-full-binAUR, jdk-openj9-binAUR, java-openjdk-binAUR, liberica-jdk-full-binAUR, jdk24-openjdkAUR, jdk23-openjdkAUR, jdk22-openjdkAUR, liberica-jdk-25-full-binAUR, jdk-temurinAUR, liberica-nik-25-full-binAUR, jdk25-openj9-binAUR, java-openjdk-ea-binAUR, jdk25-openjdk-wakefieldAUR, jre-jetbrainsAUR, jdk-openjdk, jdk11-openjdk, jdk17-openjdk, jdk21-openjdk, jdk8-openjdk) (make)
- libgl (libglvnd-gitAUR, amdgpu-pro-oglp-legacyAUR, nvidia-340xx-utilsAUR, amdgpu-pro-oglpAUR, libglvnd) (make)
- libx11 (libx11-gitAUR) (make)
- libxtst (make)
- pango (pango-gitAUR) (make)
- perl (perl-gitAUR) (make)
- python (python37AUR) (make)
- qt5-base (qt5-base-gitAUR, qt5-base-headlessAUR) (make)
- Show 4 more dependencies...
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