[packages/jpackage-utils] add fallback logic when looking for jvm; rel 16
atler
atler at pld-linux.org
Fri Sep 25 00:28:56 CEST 2026
commit 0dbfd2adcbb2503f536e87f9a84dda9c68a0f4fe
Author: Jan Palus <atler at pld-linux.org>
Date: Fri Sep 25 00:25:22 2026 +0200
add fallback logic when looking for jvm; rel 16
when no default jre is installed ano no JAVA_HOME is configured look
among installed jvms and pick one.
fallback-jvm.patch | 47 +++++++++++++++++++++++++++++++++++++++++++++++
jpackage-utils.spec | 4 +++-
2 files changed, 50 insertions(+), 1 deletion(-)
---
diff --git a/jpackage-utils.spec b/jpackage-utils.spec
index 2550340..61efee4 100644
--- a/jpackage-utils.spec
+++ b/jpackage-utils.spec
@@ -3,7 +3,7 @@ Summary: JPackage utilities
Summary(pl.UTF-8): Narzędzia JPackage
Name: jpackage-utils
Version: 1.7.5
-Release: 15
+Release: 16
License: BSD-like
Group: Development/Languages/Java
Source0: %{name}-%{version}.tar.bz2
@@ -15,6 +15,7 @@ Patch3: %{name}-readlink.patch
Patch4: %{name}-jvm_exports_via_link.patch
Patch5: java_version.patch
Patch6: no-which.patch
+Patch7: fallback-jvm.patch
URL: http://www.jpackage.org/
BuildRequires: rpmbuild(macros) >= 1.555
Requires: /bin/egrep
@@ -87,6 +88,7 @@ pliki XSL dla programu maven2, plik nagłówkowy dla plików spec itp.
%patch -P4 -p1
%patch -P5 -p1
%patch -P6 -p1
+%patch -P7 -p1
# we cp -a complete dir from source
find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
diff --git a/fallback-jvm.patch b/fallback-jvm.patch
new file mode 100644
index 0000000..4dd6899
--- /dev/null
+++ b/fallback-jvm.patch
@@ -0,0 +1,47 @@
+--- jpackage-utils-1.7.5/java-utils/java-functions.old 2026-09-25 00:20:50.618607318 +0200
++++ jpackage-utils-1.7.5/java-utils/java-functions 2026-09-25 00:19:10.012745470 +0200
+@@ -27,6 +27,33 @@
+ [ -z "$JAVA_HOME" -a -d "$JVM_ROOT/java" ] && JAVA_HOME="$JVM_ROOT/java"
+ [ -z "$JAVA_HOME" -a -d "$JVM_ROOT/jre" ] && JAVA_HOME="$JVM_ROOT/jre"
+
++_find_fallback_jvm() {
++ local preferred_version=$1 jvm_selection_cmd java_home
++
++ if [ -n "$1" ]; then
++ # if preferred version is passed take first version which is exactly the same or nearest higher version
++ jvm_selection_cmd="sort -n -k1,1 -k2,2r | awk '\$1>=$preferred_version { print \$0; exit }'"
++ else
++ # with no preference take the highest version installed
++ jvm_selection_cmd="sort -nr -k1,2 | head -n1"
++ fi
++
++ java_home=$(find "$JVM_ROOT" -name java -type f -executable | # all java executables \
++ xargs -r -I{} sh -c 'printf "%s %s\n" "$({} -version 2>&1 | awk "\$2 == \"version\" { gsub(/\"/,\"\",\$3); print \$3 }")" "{}"' | # format as <version> <java path> \
++ awk 'BEGIN { FS="." } $1==1 { print $2 " " $0 } $1>1 { print $1 " " $0 }' | # prefix with feature version <feature> <version> <java path> \
++ eval $jvm_selection_cmd | # select row according to criteria \
++ cut -f3- -d' ' | # extract java path \
++ sed 's;\(^'$JVM_ROOT'/[^/]*\).*;\1;') # use only $JVM_ROOT subdir
++
++ if [ -d "$java_home" ]; then
++ JAVA_HOME="$java_home"
++ export JAVA_HOME
++ return 0
++ fi
++
++ return 1
++}
++
+ # Set the java virtual machine
+ set_jvm() {
+ # use $JAVA_HOME if defined
+@@ -53,6 +80,10 @@
+ return
+ fi
+
++ if _find_fallback_jvm "$@"; then
++ return
++ fi
++
+ echo "Can't find java virtual machine, aborting." >&2
+ return 1
+ }
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/jpackage-utils.git/commitdiff/0dbfd2adcbb2503f536e87f9a84dda9c68a0f4fe
More information about the pld-cvs-commit
mailing list