Package Details: java21-openjfx 21.0.5.u0-1

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
Provides: java-openjfx
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 (32)

Required by (69)

Sources (4)

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

Latest Comments

hron84 commented on 2024-10-09 20:31 (UTC)

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.

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.