java17-openjfx-doc
java17-openjfx
scanned 2026-09-17 00:27:14.276658
The package installs a Ruby gem (getoptlong) during build for a legitimate build dependency of OpenJFX, which is a common and expected practice when building the project from source; this does not involve untrusted remote code execution or supply-chain risks.
Triggered rules
llm_review
The static rules flagged this MEDIUM, but an AI model (qwen/qwen3-235b-a22b-07-25) reviewed the full PKGBUILD and judged it LOW (confidence 95%): The package installs a Ruby gem (getoptlong) during build for a legitimate build dependency of OpenJFX, which is a common and expected practice when building the project from source; this does not involve untrusted remote code execution or supply-chain risks.
1 higher static finding superseded - not the current verdict (shown for transparency)
alt_pkg_manager_install
A non-pip/npm package manager (pipx, uv, poetry, cargo install, go install, gem, conda…) fetches and builds an external package at build time, outside source=() and makepkg's checksums.
-
PKGBUILD:136
gem install getoptlong
PKGBUILD
1 offending line(s) highlighted# Maintainer: Giovanni Santini <giovannisantini93@yahoo.it>
# Contributor: Levente Polyak <anthraxx[at]archlinux[dot]org>
# Contributor: 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=java17-openjfx
pkgname=(
java17-openjfx
java17-openjfx-doc
java17-openjfx-src
)
pkgver=17.0.18.u1
pkgrel=1
pkgdesc="Java OpenJFX 17 client application platform (open-source implementation of JavaFX)"
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
gtk2
gtk3
java-environment-openjdk=17
libgl
libx11
libxtst
pango
python
qt5-base
ruby
ruby-erb
unzip
webkit2gtk
zip
gcc13
)
source=(
# https://github.com/openjdk/jfx/archive/refs/tags/jfx-${pkgver//.u/+}.tar.gz
${pkgname}-${pkgver}.tar.gz::https://github.com/openjdk/jfx17u/archive/refs/tags/${pkgver//.u/+}.tar.gz
gradle.properties
java-openjfx-flags.patch
java-openjfx-no-xlocale.patch
java-openjfx-gstreamer-lite-gcc10-compat.patch
java-openjfx-env_compiler.patch
webcore_mapfile-vers.patch
)
b2sums=('f4b0708b5eba8a1bb1b9bbf50ffe278d81c003c112511b7ee274684283d6a5b9620a16d044bb60be0d540712ca349bd92882402d510da1dd15c3b2b9daac3f6e'
'a77fd8814a5978827de01a652f7b945f3439df04606434ced8998c8d77a82985292490e6965299aeb52f9da3d8069b4091d75519bd4ec8a15f70bc6d28b13498'
'a56a5cfebb44cdbe3ada9c6da88fda6427a5bd1bf9fcc491df289c4f5c0e96ac3614c619aaf9428340f11e9dabf0a85fc7db4f49754c2700587cc66fc15372fd'
'13216615c01b8d48d17889ffa22668c38568870d83ab30c542eb5b5620db305f02efb1acb99d9b5e89eb0a73a134bb336cb301f4de4e8855cae50efb099e384e'
'119fa1cc5da2cdefa22bbe9b6f76581faa74e05fa7b6e5576470fc0251c6e257f122fbba03754cc01f7c7251145cfa1cab4ffc2f9d59ff0c175a121e943a0f64'
'189f689fb43447b0aeb3cfac561be94f76b243bcf31736c528b9a1b9a528d71b7cb6d3a801b42d8cd10a235a6a8b1bdd31de39d2e09523c3b6a34e5e03d67770'
'f1ccc2e64632e83de9309ade3c3e24186b6ef77f91078d24ab483b05981b5bf01441da191bbbb046542fa2cf2f54b2c0fbe6ae1d313c1c54a82cb6c4751eff82')
prepare() {
# Patch files properly
cd jfx17u-${pkgver//.u/-}
ln -sf ../gradle.properties .
patch -Np1 -i ../java-openjfx-flags.patch
#patch -Np1 -i ../java-openjfx-no-xlocale.patch
patch -Np1 -i ../java-openjfx-gstreamer-lite-gcc10-compat.patch
patch -Np1 -i ../java-openjfx-env_compiler.patch
sed 's|, "-Werror"||g' -i buildSrc/linux.gradle
pushd modules/javafx.web/src/main/native/Source/WebCore >/dev/null
patch -N -i $srcdir/webcore_mapfile-vers.patch
popd >/dev/null
# Make Gradle wrapper executable
chmod +x gradlew
# Run Gradle stuff inside srcdir so that it can be easily cleaned
export GRADLE_USER_HOME="$srcdir/gradle"
# Ensure safety for CFLAGS and LDFLAGS
OLD_CFLAGS="$CFLAGS"
OLD_LDFLAGS="$LDFLAGS"
export CFLAGS="" LDFLAGS=""
# Use correct Java version
export PATH="/usr/lib/jvm/java-17-openjdk/bin:$PATH"
# Download most of the dependencies via metadata verification
./gradlew --no-daemon --write-verification-metadata sha256 help
# Restore the flags, if any
export CFLAGS="$OLD_CFLAGS" LDFLAGS="$OLD_LDFLAGS"
}
build() {
# cd jfx-${pkgver//.u/-}
cd jfx17u-${pkgver//.u/-}
# Run Gradle stuff inside srcdir so that it can be easily cleaned
export GRADLE_USER_HOME="$srcdir/gradle"
# build against ffmpeg4.4
export PKG_CONFIG_PATH='/usr/lib/ffmpeg4.4/pkgconfig'
# Workaround for situation where the linker treats whitespace as arguments
# From `java-openjfx` and comments
export LDFLAGS="${LDFLAGS//+([[:space:]]|[[:blank:]])/ }"
# Use Gradle wrapper rather than the repositories one for compatibility
# If needed, export JOBS to limit the jobs used for building Webkit
if [ -n "$JOBS" ]
then
export NUM_COMPILE_THREADS="$JOBS"
export NUMBER_OF_PROCESSORS="$JOBS"
fi
# Set correct Java version
export PATH="/usr/lib/jvm/java-17-openjdk/bin:$PATH"
# Use desired compiler (upstream CI use gcc-13)
export CC=gcc-13 CXX=g++-13
# Install required Ruby gems in a non-disruptive way
export GEM_HOME="$srcdir/rubygems"
export PATH="$PATH:$GEM_HOME/bin"
gem install getoptlong
# Do the thing
./gradlew --no-daemon --offline zips
# Clean up
gem uninstall getoptlong
}
package_java17-openjfx() {
depends=(
java-runtime-openjdk=17
libgl
libx11
libxtst
)
optdepends=(
'ffmpeg4.4: Media support',
'gtk2: GTK2 support',
'gtk3: GTK3 support',
'webkit2gtk: Web support'
)
provides=(java-openjfx=17)
# cd jfx-${pkgver//.u/-}
cd jfx17u-${pkgver//.u/-}
install -dm 755 "${pkgdir}"/usr/{lib/jvm/java-17-openjdk,share/licenses}
cp -dr --no-preserve=ownership build/sdk/lib "${pkgdir}"/usr/lib/jvm/java-17-openjdk/
cp -dr --no-preserve=ownership build/jmods "${pkgdir}"/usr/lib/jvm/java-17-openjdk/
cp -dr --no-preserve=ownership build/sdk/legal "${pkgdir}"/usr/share/licenses/java17-openjfx
}
package_java17-openjfx-doc() {
# cd jfx-${pkgver//.u/-}
cd jfx17u-${pkgver//.u/-}
install -dm 755 "${pkgdir}"/usr/share/{doc,licenses}
cp -dr --no-preserve=ownership build/javadoc "${pkgdir}"/usr/share/doc/java17-openjfx
ln -s java17-openjfx "${pkgdir}"/usr/share/licenses/java17-openjfx-doc
}
package_java17-openjfx-src() {
# cd jfx-${pkgver//.u/-}
cd jfx17u-${pkgver//.u/-}
install -dm 755 "${pkgdir}"/usr/{lib/jvm/java-17-openjdk,share/licenses}
install -m 644 build/sdk/src.zip "${pkgdir}"/usr/lib/jvm/java-17-openjdk/javafx-src.zip
ln -s java17-openjfx "${pkgdir}"/usr/share/licenses/java17-openjfx-src
}
# vim: ts=2 sw=2 et:
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-09-17 00:27:14 | Low | 2 |
| 2026-09-16 00:03:17 | Low | 2 |
| 2026-09-15 00:25:31 | Low | 2 |
| 2026-09-14 00:27:57 | Low | 2 |
| 2026-09-13 00:19:54 | Low | 2 |
| 2026-09-12 00:25:17 | Low | 2 |
| 2026-09-11 00:19:22 | Low | 2 |
| 2026-09-10 00:22:44 | Low | 2 |
| 2026-09-09 00:04:09 | Low | 2 |
| 2026-09-08 00:18:08 | Low | 2 |
| 2026-09-07 00:30:15 | Low | 2 |
| 2026-09-06 00:17:06 | Low | 2 |
| 2026-09-05 00:16:27 | Low | 2 |
| 2026-09-04 00:03:13 | Low | 2 |
| 2026-09-03 00:15:47 | Low | 2 |
| 2026-09-02 00:02:31 | Low | 2 |
| 2026-09-01 00:11:19 | Low | 2 |
| 2026-08-31 00:19:57 | Low | 2 |
| 2026-08-30 00:04:14 | Low | 2 |
| 2026-08-29 00:29:17 | Low | 2 |