[Git][debian-gis-team/josm-installer][master] 3 commits: Updated linux directory to r18515.

Bas Couwenberg (@sebastic) gitlab at salsa.debian.org
Tue Jul 12 19:53:30 BST 2022



Bas Couwenberg pushed to branch master at Debian GIS Project / josm-installer


Commits:
d7b54029 by Bas Couwenberg at 2022-07-12T20:45:15+02:00
Updated linux directory to r18515.

- - - - -
5d6d90cd by Bas Couwenberg at 2022-07-12T20:49:04+02:00
Merge josm launcher improvements.

- - - - -
47b47f45 by Bas Couwenberg at 2022-07-12T20:53:04+02:00
Fix typo in README.

- - - - -


6 changed files:

- debian/README.Debian
- debian/changelog
- − debian/get-orig-source
- josm
- linux/latest/usr/bin/josm-latest
- linux/tested/usr/bin/josm


Changes:

=====================================
debian/README.Debian
=====================================
@@ -8,7 +8,7 @@ provided by the JOSM project.
 Both josm and josm-installer use the 'tested' variant, but josm-installer can
 also be used to download the 'latest' variant.
 
-The josm-installer package contain the desktop integration for JOSM, the
+The josm-installer package contains the desktop integration for JOSM, the
 josm-installer script to download the JAR, and a systemd service and timer
 to periodically download new builds of the JAR.
 


=====================================
debian/changelog
=====================================
@@ -1,8 +1,9 @@
-josm-installer (0.0.1+svn18512) UNRELEASED; urgency=medium
+josm-installer (0.0.1+svn18515) UNRELEASED; urgency=medium
 
-  * Updated linux directory to r18512.
+  * Updated linux directory to r18515.
+  * Merge josm launcher improvements.
 
- -- Bas Couwenberg <sebastic at debian.org>  Sat, 09 Jul 2022 11:41:41 +0200
+ -- Bas Couwenberg <sebastic at debian.org>  Tue, 12 Jul 2022 20:44:17 +0200
 
 josm-installer (0.0.1+svn18500) unstable; urgency=medium
 


=====================================
debian/get-orig-source deleted
=====================================
@@ -1,56 +0,0 @@
-#!/bin/sh
-
-set -e
-
-COMPRESS=xz
-
-NAME=$(dpkg-parsechangelog -S Source)
-VERSION=$(dpkg-parsechangelog -S Version)
-
-PACKAGE=$NAME
-
-DEBIANDIR=$(readlink -f $(dirname $0))
-PACKAGEDIR=$(readlink -f $(dirname ${DEBIANDIR}))
-PARENTDIR=$(readlink -f $(dirname ${PACKAGEDIR}))
-
-TMPDIR=$(mktemp -d)
-
-cd ${TMPDIR}
-
-TARDIR=${NAME}-${VERSION}
-
-# RDNAPTRANS2008
-# http://gnss-data.kadaster.nl/root/misc/rdnaptrans2008/RDNAPTRANS2008.zip
-#
-# Download page:
-# https://www.kadaster.nl/rdnaptrans2008-download-
-
-wget "https://salsa.debian.org/debian-gis-team/proj-rdnap/-/archive/upstream/2008/proj-rdnap-upstream-2008.zip" -O proj-rdnap-upstream-2008.zip
-
-unzip proj-rdnap-upstream-2008.zip -d proj-rdnap-upstream-2008
-
-mv proj-rdnap-upstream-2008/proj-rdnap-upstream-2008 "${TARDIR}"
-
-# RDNAPTRANS2018
-# https://kadaster.nl/documents/1888506/2496175/RDNAPTRANS.zip/827827a3-b88a-5d16-55b6-7f83010e1b2f
-#
-# Download page:
-# https://formulieren.kadaster.nl/page/download-rdnaptrans
-
-wget "https://kadaster.nl/documents/1888506/2496175/RDNAPTRANS.zip/827827a3-b88a-5d16-55b6-7f83010e1b2f" -O RDNAPTRANS.zip
-
-unzip RDNAPTRANS.zip -d RDNAPTRANS2018
-
-mv RDNAPTRANS2018/* "${TARDIR}"
-
-ORIGTARFILE="${PACKAGE}_${VERSION}.orig.tar.${COMPRESS}"
-
-GZIP="--best --no-name" XZ_OPT="-6v" tar --owner=root --group=root --mode=a+rX -caf ${ORIGTARFILE} "${TARDIR}"
-
-mv ${ORIGTARFILE} ${PARENTDIR}
-
-rm -rf ${TARDIR}
-cd -
-rm -rf ${TMPDIR}
-
-exit 0


=====================================
josm
=====================================
@@ -2,10 +2,10 @@
 # Simple wrapper script used to start JOSM in Debian
 set -e
 
-JOSM_JAR="/usr/share/josm/josm.jar"
+JOSM_PATH="/usr/share/josm/josm.jar"
 
-if [ ! -e "${JOSM_JAR}" ]; then
-    echo "JOSM JAR not found: ${JOSM_JAR}" >&2
+if [ ! -e "${JOSM_PATH}" ]; then
+    echo "JOSM JAR not found: ${JOSM_PATH}" >&2
     echo "Execute josm-installer as root" >&2
 
     exit 1
@@ -13,40 +13,62 @@ fi
 
 # First, the alternative (if known to work) or users preference as defined by $JAVA_HOME. Next, use OpenJDK.
 # Override to a specific one using $JAVACMD
-ALTERNATIVE_JDK=$(readlink -n -f /etc/alternatives/java)
+if [ -e "/etc/alternatives/java" ]; then
+    ALTERNATIVE_JDK=$(readlink -n -f /etc/alternatives/java)
+fi
 
-# Let's get the current architecture -- needed for multiarchified Java
-ARCH=$(dpkg --print-architecture 2> /dev/null || true)
+if [ -v JAVA_HOME ]; then
+    JAVA_CMDS="$JAVA_HOME/bin/java"
+else
+    JAVA_CMDS=""
+fi
 
-JAVA_CMDS="$JAVA_HOME/bin/java"
+dpkg_java() {
+    # Let's get the current architecture -- needed for multiarchified Java
+    ARCH=$(dpkg --print-architecture 2> /dev/null || true)
+    # If OpenJDK is only available headless, do not try it
+    if dpkg --get-selections "openjdk-*-jre" | grep install$ > /dev/null \
+    || dpkg --get-selections "openjdk-*-jre:$ARCH" | grep install$ > /dev/null ; then
+        # LTS versions in decreased order
+        JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-17-openjdk/bin/java /usr/lib/jvm/java-17-openjdk-$ARCH/bin/java"
+        JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-11-openjdk/bin/java /usr/lib/jvm/java-11-openjdk-$ARCH/bin/java"
+        JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-8-openjdk/bin/java /usr/lib/jvm/java-8-openjdk-$ARCH/bin/java"
+        # Released versions in decreased order
+        JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-18-openjdk/bin/java /usr/lib/jvm/java-18-openjdk-$ARCH/bin/java"
+        JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-16-openjdk/bin/java /usr/lib/jvm/java-16-openjdk-$ARCH/bin/java"
+        JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-15-openjdk/bin/java /usr/lib/jvm/java-15-openjdk-$ARCH/bin/java"
+        JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-14-openjdk/bin/java /usr/lib/jvm/java-14-openjdk-$ARCH/bin/java"
+        JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-13-openjdk/bin/java /usr/lib/jvm/java-13-openjdk-$ARCH/bin/java"
+        JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-12-openjdk/bin/java /usr/lib/jvm/java-12-openjdk-$ARCH/bin/java"
+        JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-10-openjdk/bin/java /usr/lib/jvm/java-10-openjdk-$ARCH/bin/java"
+        JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-9-openjdk/bin/java /usr/lib/jvm/java-9-openjdk-$ARCH/bin/java"
+        # Development version(s)
+        JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-19-openjdk/bin/java /usr/lib/jvm/java-19-openjdk-$ARCH/bin/java"
+    fi
+}
 
-# If OpenJDK is only available headless, do not try it
-if dpkg --get-selections "openjdk-*-jre" | grep install$ > /dev/null \
-|| dpkg --get-selections "openjdk-*-jre:$ARCH" | grep install$ > /dev/null ; then
-	# LTS versions in decreased order
-	JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-11-openjdk/bin/java /usr/lib/jvm/java-11-openjdk-$ARCH/bin/java"
-	JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-8-openjdk/bin/java /usr/lib/jvm/java-8-openjdk-$ARCH/bin/java"
-	# Released versions in decreased order
-	JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-14-openjdk/bin/java /usr/lib/jvm/java-14-openjdk-$ARCH/bin/java"
-	JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-13-openjdk/bin/java /usr/lib/jvm/java-13-openjdk-$ARCH/bin/java"
-	JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-12-openjdk/bin/java /usr/lib/jvm/java-12-openjdk-$ARCH/bin/java"
-	JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-10-openjdk/bin/java /usr/lib/jvm/java-10-openjdk-$ARCH/bin/java"
-	JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-9-openjdk/bin/java /usr/lib/jvm/java-9-openjdk-$ARCH/bin/java"
-	# Development version
-	JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-15-openjdk/bin/java /usr/lib/jvm/java-15-openjdk-$ARCH/bin/java"
+java_version() {
+    ${1} -version 2>&1 | head -n1 | awk -F'"' '{print $2}' | awk -F'.' '{print $1}'
+}
+
+if dpkg --version > /dev/null 2>&1; then
+    dpkg_java
 fi
+
 # Undetermined version
 JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/default-java/bin/java /usr/bin/java"
+JOSM_VERSION="josm"
 
-if [ -f /etc/default/josm ]; then
-    . /etc/default/josm
+if [ -f "/etc/default/${JOSM_VERSION}" ]; then
+    # shellcheck source=/etc/default/josm
+    . "/etc/default/${JOSM_VERSION}"
 fi
 
 JAVA_OPTS="-Djosm.restart=true -Djava.net.useSystemProxies=true $JAVA_OPTS"
 
-if [ -z "${JAVACMD}" ]; then
+if [ -z "${JAVACMD}" ] && [ -n "${ALTERNATIVE_JDK}" ]; then
     for jcmd in $JAVA_CMDS; do
-        if [ "z$ALTERNATIVE_JDK" = "z$(readlink -n -f "$jcmd")" ] && [ -z "${JAVACMD}" ]; then
+        if [ "z$ALTERNATIVE_JDK" = "z$(readlink -n -f "$jcmd")" ] && [ -z "${JAVACMD}" ] && [ -x "$jcmd" ]; then
             JAVACMD="$jcmd"
             break
         fi
@@ -63,15 +85,22 @@ if [ -z "${JAVACMD}" ]; then
 fi
 
 if [ "$JAVACMD" ]; then
-    echo "Using $JAVACMD to execute josm." || true
-    if [[ "${JAVACMD}" =~ 'java-9' ]] || [[ "${JAVACMD}" =~ 'java-10' ]]; then
+    echo "Using $JAVACMD to execute ${JOSM_VERSION}." || true
+    JAVA_VERSION=$(java_version "${JAVACMD}")
+    JAVAFX_HOME="${JAVAFX_HOME:-/usr/share/openjfx/lib}"
+    JOSM_PATH="${JOSM_PATH:-/usr/share/${JOSM_VERSION}/${JOSM_VERSION}.jar}"
+    if [[ "${JAVA_VERSION}" -ge 11 ]]; then
+        JAVA_OPTS="--module-path ${JAVAFX_HOME} --add-modules java.scripting,java.sql,javafx.controls,javafx.media,javafx.swing,javafx.web $JAVA_OPTS"
+        JAVA_OPTS="$JAVA_OPTS --add-exports=java.base/sun.security.action=ALL-UNNAMED"
+        JAVA_OPTS="$JAVA_OPTS --add-exports=java.desktop/com.sun.imageio.plugins.jpeg=ALL-UNNAMED"
+        JAVA_OPTS="$JAVA_OPTS --add-exports=java.desktop/com.sun.imageio.spi=ALL-UNNAMED"
+    elif [[ "${JAVA_VERSION}" -ge 9 ]]; then
         JAVA_OPTS="--add-modules java.activation,java.se.ee $JAVA_OPTS"
-    elif [[ "${JAVACMD}" =~ 'java-1' ]]; then
-        JAVA_OPTS="--add-modules java.scripting,java.sql $JAVA_OPTS"
     fi
     set +e
     while true; do
-        $JAVACMD $JAVA_OPTS -jar "${JOSM_JAR}" "$@"
+        # shellcheck disable=SC2086
+        $JAVACMD $JAVA_OPTS -jar "${JOSM_PATH}" "$@"
         if [ "z$?" != "z9" ]; then
             break
         fi


=====================================
linux/latest/usr/bin/josm-latest
=====================================
@@ -1,10 +1,12 @@
-#!/usr/bin/env bash
+#!/bin/bash
 # Simple wrapper script used to start JOSM in Debian
 set -e
 
 # First, the alternative (if known to work) or users preference as defined by $JAVA_HOME. Next, use OpenJDK.
 # Override to a specific one using $JAVACMD
-ALTERNATIVE_JDK=$(readlink -n -f /etc/alternatives/java || true)
+if [ -e "/etc/alternatives/java" ]; then
+    ALTERNATIVE_JDK=$(readlink -n -f /etc/alternatives/java)
+fi
 
 if [ -v JAVA_HOME ]; then
     JAVA_CMDS="$JAVA_HOME/bin/java"
@@ -13,47 +15,49 @@ else
 fi
 
 dpkg_java() {
-  # Let's get the current architecture -- needed for multiarchified Java
-  ARCH=$(dpkg --print-architecture 2> /dev/null || true)
-  # If OpenJDK is only available headless, do not try it
-	if dpkg --get-selections "openjdk-*-jre" | grep install$ > /dev/null \
-	|| dpkg --get-selections "openjdk-*-jre:$ARCH" | grep install$ > /dev/null ; then
-		# LTS versions in decreased order
-		JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-17-openjdk/bin/java /usr/lib/jvm/java-17-openjdk-$ARCH/bin/java"
-		JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-11-openjdk/bin/java /usr/lib/jvm/java-11-openjdk-$ARCH/bin/java"
-		JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-8-openjdk/bin/java /usr/lib/jvm/java-8-openjdk-$ARCH/bin/java"
-		# Released versions in decreased order
-		JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-18-openjdk/bin/java /usr/lib/jvm/java-18-openjdk-$ARCH/bin/java"
-		JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-16-openjdk/bin/java /usr/lib/jvm/java-16-openjdk-$ARCH/bin/java"
-		JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-15-openjdk/bin/java /usr/lib/jvm/java-15-openjdk-$ARCH/bin/java"
-		JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-14-openjdk/bin/java /usr/lib/jvm/java-14-openjdk-$ARCH/bin/java"
-		JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-13-openjdk/bin/java /usr/lib/jvm/java-13-openjdk-$ARCH/bin/java"
-		JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-12-openjdk/bin/java /usr/lib/jvm/java-12-openjdk-$ARCH/bin/java"
-		JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-10-openjdk/bin/java /usr/lib/jvm/java-10-openjdk-$ARCH/bin/java"
-		JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-9-openjdk/bin/java /usr/lib/jvm/java-9-openjdk-$ARCH/bin/java"
-		# Development version(s)
-		JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-19-openjdk/bin/java /usr/lib/jvm/java-19-openjdk-$ARCH/bin/java"
-	fi
+    # Let's get the current architecture -- needed for multiarchified Java
+    ARCH=$(dpkg --print-architecture 2> /dev/null || true)
+    # If OpenJDK is only available headless, do not try it
+    if dpkg --get-selections "openjdk-*-jre" | grep install$ > /dev/null \
+    || dpkg --get-selections "openjdk-*-jre:$ARCH" | grep install$ > /dev/null ; then
+        # LTS versions in decreased order
+        JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-17-openjdk/bin/java /usr/lib/jvm/java-17-openjdk-$ARCH/bin/java"
+        JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-11-openjdk/bin/java /usr/lib/jvm/java-11-openjdk-$ARCH/bin/java"
+        JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-8-openjdk/bin/java /usr/lib/jvm/java-8-openjdk-$ARCH/bin/java"
+        # Released versions in decreased order
+        JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-18-openjdk/bin/java /usr/lib/jvm/java-18-openjdk-$ARCH/bin/java"
+        JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-16-openjdk/bin/java /usr/lib/jvm/java-16-openjdk-$ARCH/bin/java"
+        JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-15-openjdk/bin/java /usr/lib/jvm/java-15-openjdk-$ARCH/bin/java"
+        JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-14-openjdk/bin/java /usr/lib/jvm/java-14-openjdk-$ARCH/bin/java"
+        JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-13-openjdk/bin/java /usr/lib/jvm/java-13-openjdk-$ARCH/bin/java"
+        JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-12-openjdk/bin/java /usr/lib/jvm/java-12-openjdk-$ARCH/bin/java"
+        JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-10-openjdk/bin/java /usr/lib/jvm/java-10-openjdk-$ARCH/bin/java"
+        JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-9-openjdk/bin/java /usr/lib/jvm/java-9-openjdk-$ARCH/bin/java"
+        # Development version(s)
+        JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-19-openjdk/bin/java /usr/lib/jvm/java-19-openjdk-$ARCH/bin/java"
+    fi
 }
 
 java_version() {
-  ${1} -version 2>&1 | head -n1 | awk '{print $3}' | awk -F'.' '{gsub(/"/, ""); print $1}' | cat
+    ${1} -version 2>&1 | head -n1 | awk -F'"' '{print $2}' | awk -F'.' '{print $1}'
 }
 
-if [ -x "$(command -v dpkg)" ]; then
-	dpkg_java
+if dpkg --version > /dev/null 2>&1; then
+    dpkg_java
 fi
+
 # Undetermined version
 JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/default-java/bin/java /usr/bin/java"
 JOSM_VERSION="josm-latest"
 
 if [ -f "/etc/default/${JOSM_VERSION}" ]; then
+    # shellcheck source=/etc/default/josm-latest
     . "/etc/default/${JOSM_VERSION}"
 fi
 
 JAVA_OPTS="-Djosm.restart=true -Djosm.dir.name=JOSM-latest -Djava.net.useSystemProxies=true $JAVA_OPTS"
 
-if [ -z "${JAVACMD}" ]; then
+if [ -z "${JAVACMD}" ] && [ -n "${ALTERNATIVE_JDK}" ]; then
     for jcmd in $JAVA_CMDS; do
         if [ "z$ALTERNATIVE_JDK" = "z$(readlink -n -f "$jcmd")" ] && [ -z "${JAVACMD}" ] && [ -x "$jcmd" ]; then
             JAVACMD="$jcmd"
@@ -73,7 +77,7 @@ fi
 
 if [ "$JAVACMD" ]; then
     echo "Using $JAVACMD to execute ${JOSM_VERSION}." || true
-    JAVA_VERSION=$(java_version ${JAVACMD})
+    JAVA_VERSION=$(java_version "${JAVACMD}")
     JAVAFX_HOME="${JAVAFX_HOME:-/usr/share/openjfx/lib}"
     JOSM_PATH="${JOSM_PATH:-/usr/share/${JOSM_VERSION}/${JOSM_VERSION}.jar}"
     if [[ "${JAVA_VERSION}" -ge 11 ]]; then
@@ -86,6 +90,7 @@ if [ "$JAVACMD" ]; then
     fi
     set +e
     while true; do
+        # shellcheck disable=SC2086
         $JAVACMD $JAVA_OPTS -jar "${JOSM_PATH}" "$@"
         if [ "z$?" != "z9" ]; then
             break


=====================================
linux/tested/usr/bin/josm
=====================================
@@ -1,10 +1,12 @@
-#!/usr/bin/env bash
+#!/bin/bash
 # Simple wrapper script used to start JOSM in Debian
 set -e
 
 # First, the alternative (if known to work) or users preference as defined by $JAVA_HOME. Next, use OpenJDK.
 # Override to a specific one using $JAVACMD
-ALTERNATIVE_JDK=$(readlink -n -f /etc/alternatives/java || true)
+if [ -e "/etc/alternatives/java" ]; then
+    ALTERNATIVE_JDK=$(readlink -n -f /etc/alternatives/java)
+fi
 
 if [ -v JAVA_HOME ]; then
     JAVA_CMDS="$JAVA_HOME/bin/java"
@@ -13,47 +15,49 @@ else
 fi
 
 dpkg_java() {
-  # Let's get the current architecture -- needed for multiarchified Java
-  ARCH=$(dpkg --print-architecture 2> /dev/null || true)
-  # If OpenJDK is only available headless, do not try it
-	if dpkg --get-selections "openjdk-*-jre" | grep install$ > /dev/null \
-	|| dpkg --get-selections "openjdk-*-jre:$ARCH" | grep install$ > /dev/null ; then
-		# LTS versions in decreased order
-		JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-17-openjdk/bin/java /usr/lib/jvm/java-17-openjdk-$ARCH/bin/java"
-		JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-11-openjdk/bin/java /usr/lib/jvm/java-11-openjdk-$ARCH/bin/java"
-		JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-8-openjdk/bin/java /usr/lib/jvm/java-8-openjdk-$ARCH/bin/java"
-		# Released versions in decreased order
-		JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-18-openjdk/bin/java /usr/lib/jvm/java-18-openjdk-$ARCH/bin/java"
-		JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-16-openjdk/bin/java /usr/lib/jvm/java-16-openjdk-$ARCH/bin/java"
-		JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-15-openjdk/bin/java /usr/lib/jvm/java-15-openjdk-$ARCH/bin/java"
-		JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-14-openjdk/bin/java /usr/lib/jvm/java-14-openjdk-$ARCH/bin/java"
-		JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-13-openjdk/bin/java /usr/lib/jvm/java-13-openjdk-$ARCH/bin/java"
-		JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-12-openjdk/bin/java /usr/lib/jvm/java-12-openjdk-$ARCH/bin/java"
-		JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-10-openjdk/bin/java /usr/lib/jvm/java-10-openjdk-$ARCH/bin/java"
-		JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-9-openjdk/bin/java /usr/lib/jvm/java-9-openjdk-$ARCH/bin/java"
-		# Development version(s)
-		JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-19-openjdk/bin/java /usr/lib/jvm/java-19-openjdk-$ARCH/bin/java"
-	fi
+    # Let's get the current architecture -- needed for multiarchified Java
+    ARCH=$(dpkg --print-architecture 2> /dev/null || true)
+    # If OpenJDK is only available headless, do not try it
+    if dpkg --get-selections "openjdk-*-jre" | grep install$ > /dev/null \
+    || dpkg --get-selections "openjdk-*-jre:$ARCH" | grep install$ > /dev/null ; then
+        # LTS versions in decreased order
+        JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-17-openjdk/bin/java /usr/lib/jvm/java-17-openjdk-$ARCH/bin/java"
+        JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-11-openjdk/bin/java /usr/lib/jvm/java-11-openjdk-$ARCH/bin/java"
+        JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-8-openjdk/bin/java /usr/lib/jvm/java-8-openjdk-$ARCH/bin/java"
+        # Released versions in decreased order
+        JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-18-openjdk/bin/java /usr/lib/jvm/java-18-openjdk-$ARCH/bin/java"
+        JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-16-openjdk/bin/java /usr/lib/jvm/java-16-openjdk-$ARCH/bin/java"
+        JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-15-openjdk/bin/java /usr/lib/jvm/java-15-openjdk-$ARCH/bin/java"
+        JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-14-openjdk/bin/java /usr/lib/jvm/java-14-openjdk-$ARCH/bin/java"
+        JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-13-openjdk/bin/java /usr/lib/jvm/java-13-openjdk-$ARCH/bin/java"
+        JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-12-openjdk/bin/java /usr/lib/jvm/java-12-openjdk-$ARCH/bin/java"
+        JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-10-openjdk/bin/java /usr/lib/jvm/java-10-openjdk-$ARCH/bin/java"
+        JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-9-openjdk/bin/java /usr/lib/jvm/java-9-openjdk-$ARCH/bin/java"
+        # Development version(s)
+        JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-19-openjdk/bin/java /usr/lib/jvm/java-19-openjdk-$ARCH/bin/java"
+    fi
 }
 
 java_version() {
-  ${1} -version 2>&1 | head -n1 | awk '{print $3}' | awk -F'.' '{gsub(/"/, ""); print $1}' | cat
+    ${1} -version 2>&1 | head -n1 | awk -F'"' '{print $2}' | awk -F'.' '{print $1}'
 }
 
-if [ -x "$(command -v dpkg)" ]; then
-	dpkg_java
+if dpkg --version > /dev/null 2>&1; then
+    dpkg_java
 fi
+
 # Undetermined version
 JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/default-java/bin/java /usr/bin/java"
 JOSM_VERSION="josm"
 
 if [ -f "/etc/default/${JOSM_VERSION}" ]; then
+    # shellcheck source=/etc/default/josm
     . "/etc/default/${JOSM_VERSION}"
 fi
 
 JAVA_OPTS="-Djosm.restart=true -Djava.net.useSystemProxies=true $JAVA_OPTS"
 
-if [ -z "${JAVACMD}" ]; then
+if [ -z "${JAVACMD}" ] && [ -n "${ALTERNATIVE_JDK}" ]; then
     for jcmd in $JAVA_CMDS; do
         if [ "z$ALTERNATIVE_JDK" = "z$(readlink -n -f "$jcmd")" ] && [ -z "${JAVACMD}" ] && [ -x "$jcmd" ]; then
             JAVACMD="$jcmd"
@@ -73,7 +77,7 @@ fi
 
 if [ "$JAVACMD" ]; then
     echo "Using $JAVACMD to execute ${JOSM_VERSION}." || true
-    JAVA_VERSION=$(java_version ${JAVACMD})
+    JAVA_VERSION=$(java_version "${JAVACMD}")
     JAVAFX_HOME="${JAVAFX_HOME:-/usr/share/openjfx/lib}"
     JOSM_PATH="${JOSM_PATH:-/usr/share/${JOSM_VERSION}/${JOSM_VERSION}.jar}"
     if [[ "${JAVA_VERSION}" -ge 11 ]]; then
@@ -86,6 +90,7 @@ if [ "$JAVACMD" ]; then
     fi
     set +e
     while true; do
+        # shellcheck disable=SC2086
         $JAVACMD $JAVA_OPTS -jar "${JOSM_PATH}" "$@"
         if [ "z$?" != "z9" ]; then
             break



View it on GitLab: https://salsa.debian.org/debian-gis-team/josm-installer/-/compare/efd28a6df2bdd1f3d48a154e81ecab6cdc06cea8...47b47f457662d97461954f09e37f93b1fd6bc432

-- 
View it on GitLab: https://salsa.debian.org/debian-gis-team/josm-installer/-/compare/efd28a6df2bdd1f3d48a154e81ecab6cdc06cea8...47b47f457662d97461954f09e37f93b1fd6bc432
You're receiving this email because of your account on salsa.debian.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-grass-devel/attachments/20220712/f8fb0eab/attachment-0001.htm>


More information about the Pkg-grass-devel mailing list