Files
ports/graphics/openjump/files/patch-bin_oj__linux.sh
T
2026-10-04 04:07:15 +00:00

74 lines
3.0 KiB
Bash

--- bin/oj_linux.sh 2026-04-03 21:13:54.084260000 +0200
+++ bin/oj_linux.sh 2026-04-03 21:19:43.098211000 +0200
@@ -4,9 +4,11 @@
## if unset defaults to
## JUMP_HOME (oj app folder) if writable or $HOME/.openjump (user home)
#JUMP_SETTINGS="/tmp/foobar"
+JUMP_SETTINGS="$HOME/.openjump"
## uncomment and put the path to your jre here
#JAVA_HOME="/home/ed/jre1.6.0_21"
+JAVA_HOME=${JAVA_HOME}
## uncomment and change your memory configuration here
## Xms is initial size, Xmx is maximum size
@@ -282,7 +282,7 @@
echo ---GDAL_DATA---
echo $GDAL_DATA
- NATIVE_PATH="$NATIVE_PATH:/usr/local/opt/sqlite/lib/:/usr/local/lib/"
+ NATIVE_PATH="$NATIVE_PATH:/usr/local/lib/"
CLASSPATH="/usr/local/lib/gdal.jar:$CLASSPATH"
## add lib/native/[arch/] to lib path
@@ -304,7 +304,7 @@
echo ---GDAL_DATA---
echo $GDAL_DATA
- NATIVE_PATH="$GDALPATH:$GDALPATH/lib:$GDALPATH/java:$NATIVE_PATH:/usr/lib/jni"
+ NATIVE_PATH="$GDALPATH:$GDALPATH/lib:$GDALPATH/java:$NATIVE_PATH:/usr/lib/jni:/usr/local/lib:${PREFIX}/lib"
CLASSPATH="$GDALPATH/java/gdal.jar:/usr/share/java/gdal.jar:$CLASSPATH"
export LD_LIBRARY_PATH="$NATIVE_PATH:$LD_LIBRARY_PATH"
@@ -323,7 +323,15 @@
echo ---Detect maximum memory limit---
# use previously set or detect RAM size in bytes
-RAM_SIZE=${RAM_SIZE-$(expr "$(awk '/MemTotal/{print $2}' /proc/meminfo)" \* 1024)}
+# Try Linux /proc/meminfo first, then FreeBSD sysctl
+if [ -z "$RAM_SIZE" ]; then
+ if [ -f /proc/meminfo ]; then
+ RAM_SIZE=$(expr "$(awk '/MemTotal/{print $2}' /proc/meminfo)" \* 1024)
+ elif command -v sysctl > /dev/null 2>&1; then
+ # FreeBSD: hw.physmem gives size in bytes
+ RAM_SIZE=$(sysctl -n hw.physmem 2>/dev/null)
+ fi
+fi
if [ -n "$JAVA_MAXMEM" ]; then
echo "max. memory limit defined via JAVA_MAXMEM=$JAVA_MAXMEM"
elif ! is_number "$RAM_SIZE"; then
@@ -353,11 +361,22 @@
echo set max. memory limit to $MEM_MAX_MB MiB
fi
+
+# Check Java version and add necessary options for Java 9+
+java_version=$("$JAVA" -version 2>&1 | head -1)
+major_version=$(echo "$java_version" | sed -n 's/.*"\([0-9]*\).*/\1/p')
+if [ -z "$major_version" ]; then
+ major_version=$(echo "$java_version" | sed -n 's/.*version \([0-9]*\).*/\1/p')
+fi
+if [ "$major_version" -ge 9 ] 2>/dev/null; then
+ JAVA_OPTS="$JAVA_OPTS --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/jdk.internal.loader=ALL-UNNAMED --enable-native-access=ALL-UNNAMED"
+fi
+
# eventually try to start if no errors so far
if [ -z "$ERROR" ]; then
echo ---Start OJ---
# log.dir needs a trailing slash for path concatenation in log4j.xml
-"$JAVA" -Djava.system.class.loader=com.vividsolutions.jump.workbench.plugin.PlugInClassLoader -cp "$CLASSPATH" -Dlog.dir="$JUMP_SETTINGS/" $JAVA_OPTS $MAIN -state "$JUMP_SETTINGS/" $JUMP_OPTS "$@"
+"$JAVA" -Djava.library.path="$NATIVE_PATH" -Djava.system.class.loader=com.vividsolutions.jump.workbench.plugin.PlugInClassLoader -cp "$CLASSPATH" -Dlog.dir="$JUMP_SETTINGS/" $JAVA_OPTS $MAIN -state "$JUMP_SETTINGS/" $JUMP_OPTS "$@"
# result of jre call
ERROR=$?
fi