[Git][debian-gis-team/josm][master] Replace bash.patch with josm-launch.patch with more improvements.
Bas Couwenberg (@sebastic)
gitlab at salsa.debian.org
Sat Jul 9 10:56:16 BST 2022
Bas Couwenberg pushed to branch master at Debian GIS Project / josm
Commits:
8252d184 by Bas Couwenberg at 2022-07-09T11:55:52+02:00
Replace bash.patch with josm-launch.patch with more improvements.
- - - - -
4 changed files:
- debian/changelog
- − debian/patches/bash.patch
- + debian/patches/josm-launcher.patch
- debian/patches/series
Changes:
=====================================
debian/changelog
=====================================
@@ -1,3 +1,9 @@
+josm (0.0.svn18513+dfsg-2) UNRELEASED; urgency=medium
+
+ * Replace bash.patch with josm-launch.patch with more improvements.
+
+ -- Bas Couwenberg <sebastic at debian.org> Sat, 09 Jul 2022 11:55:21 +0200
+
josm (0.0.svn18513+dfsg-1) unstable; urgency=medium
* New hotfix tested snapshot.
=====================================
debian/patches/bash.patch deleted
=====================================
@@ -1,13 +0,0 @@
-Description: Fix bash path.
-Author: Bas Couwenberg <sebastic at debian.org>
-Bug: https://josm.openstreetmap.de/ticket/22088
-Forwarded: https://josm.openstreetmap.de/ticket/22193
-
---- a/native/linux/tested/usr/bin/josm
-+++ b/native/linux/tested/usr/bin/josm
-@@ -1,4 +1,4 @@
--#!/usr/bin/env bash
-+#!/bin/bash
- # Simple wrapper script used to start JOSM in Debian
- set -e
-
=====================================
debian/patches/josm-launcher.patch
=====================================
@@ -0,0 +1,238 @@
+Description: Improve josm launchers.
+ * Use `/bin/bash` instead of `/usr/bin/env bash`
+ usrmerge systems have both `/bin/bash` and `/usr/bin/bash`,
+ non-usrmerge systems only have `/bin/bash`.
+ * Set `ALTERNATIVE_JDK` only if `/etc/alternatives/java` exists.
+ While not only Debian based distributions use the alternatives system,
+ not all distributions do.
+ * Use 4 spaces for indentation consistently.
+ Some indentation used tabs, others 2 spaces.
+ * Simplify `java_version` function.
+ Use `java --version` to get output on `STDOUT` instead of `-version`
+ output on `STDERR`.
+ * Don't use `command -v` to test whether `dpkg` is available.
+ The command may be an alias which results in output like:
+ ```
+ dpkg is aliased to `donalds-porn-kink-game'
+ ```
+ * Fix issues reported by `shellcheck`.
+ SC2086 is disabled for `$JAVA_OPTS` because that only works unquoted.
+Author: Bas Couwenberg <sebastic at debian.org>
+Bug: https://josm.openstreetmap.de/ticket/22193
+
+--- a/native/linux/latest/usr/bin/josm-latest
++++ b/native/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 | head -n1 | awk '{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
+--- a/native/linux/tested/usr/bin/josm
++++ b/native/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,46 +15,48 @@ 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"
+- # 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"
++ # 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 | head -n1 | awk '{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"
+@@ -72,7 +76,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
+@@ -85,6 +89,7 @@ if [ "$JAVACMD" ]; then
+ fi
+ set +e
+ while true; do
++ # shellcheck disable=SC2086
+ $JAVACMD $JAVA_OPTS -jar "${JOSM_PATH}" "$@"
+ if [ "z$?" != "z9" ]; then
+ break
=====================================
debian/patches/series
=====================================
@@ -5,4 +5,4 @@
07-use_system_fonts.patch
08-use_noto_font.patch
09-no-java-8.patch
-bash.patch
+josm-launcher.patch
View it on GitLab: https://salsa.debian.org/debian-gis-team/josm/-/commit/8252d18408efba5acafcdee557a26c5fc35b11b4
--
View it on GitLab: https://salsa.debian.org/debian-gis-team/josm/-/commit/8252d18408efba5acafcdee557a26c5fc35b11b4
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/20220709/fab29355/attachment-0001.htm>
More information about the Pkg-grass-devel
mailing list