Modify

Opened 2 years ago

Closed 2 years ago

Last modified 2 years ago

#22157 closed defect (fixed)

java options from start script not passed

Reported by: skyper Owned by: team
Priority: critical Milestone:
Component: Ubuntu package Version:
Keywords: template_report java option script Cc:

Description

What steps will reproduce the problem?

  1. Install the Ubuntu package
  2. Start JOSM by typing josm in a terminal
  3. Look at the status report

What is the expected result?

VM arguments: [--module-path /usr/share/openjfx/lib --add-modules java.scripting,java.sql,javafx.controls,javafx.media,javafx.swing,javafx.web -Djosm.restart=true, -Djava.net.useSystemProxies=true --add-exports=java.base/sun.security.action=ALL-UNNAMED --add-exports=java.desktop/com.sun.imageio.plugins.jpeg=ALL-UNNAMED --add-exports=java.desktop/com.sun.imageio.spi=ALL-UNNAMED]

What happens instead?

VM arguments: [-Djosm.restart=true, -Djava.net.useSystemProxies=true]

Please provide any additional information below. Attach a screenshot if possible.

I have set up a new machine. On my old one I never had this problem. Same is true for josm-latest

Relative:URL: ^/trunk
Repository:UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b
Last:Changed Date: 2022-05-29 21:53:52 +0200 (Sun, 29 May 2022)
Revision:18463
Build-Date:2022-05-30 01:30:57
URL:https://josm.openstreetmap.de/svn/trunk

Identification: JOSM/1.5 (18463 en) Linux Debian GNU/Linux 11 (bullseye)
Memory Usage: 236 MB / 2970 MB (67 MB allocated, but free)
Java version: 17.0.3+7-Debian-1deb11u1, Debian, OpenJDK 64-Bit Server VM
Look and Feel: javax.swing.plaf.metal.MetalLookAndFeel
Screen: :0.0 1920×1080 (scaling 1.00×1.00) :0.1 1920×1080 (scaling 1.00×1.00)
Maximum Screen Size: 1920×1080
Best cursor sizes: 16×16→16×16, 32×32→32×32
Environment variable LANG: en_US.UTF-8
System property file.encoding: UTF-8
System property sun.jnu.encoding: UTF-8
Locale info: en_US
Numbers with default locale: 1234567890 -> 1234567890
Desktop environment: GNOME
fonts-noto: fonts-noto:all-20201225-1
VM arguments: [-Djosm.restart=true, -Djava.net.useSystemProxies=true]

Plugins:
+ FastDraw (35893)

Attachments (1)

josm-latest (4.1 KB ) - added by taylor.smock 2 years ago.

Download all attachments as: .zip

Change History (26)

comment:1 by taylor.smock, 2 years ago

Sanity check: Does attachment:22088.3.patch:ticket:22088 work? It has a more robust Java version check.

in reply to:  1 comment:2 by skyper, 2 years ago

Replying to taylor.smock:

Sanity check: Does attachment:22088.3.patch:ticket:22088 work? It has a more robust Java version check.

No, same result.

One difference might be that I only have openjdk-17-jre installed on the new machine and no default-jre (which is openjdk-11-jre) but I already tried to have openjdk-11-jre installed along side without any different result.

Edit:
As far as I remember, the old machine was dist-upgraded to Debian 11 from 10 and maybe earlier even from 9 while the new machine is a fresh installation of Debian 11.

Last edited 2 years ago by skyper (previous) (diff)

comment:3 by taylor.smock, 2 years ago

I was hoping.

OK. What does echo "$(java -version 2>&1 | head -n1 | awk '{print $3}' | awk -F'.' '{gsub(/"/, ""); print $1}')" output?

Also, you can you change the set -e on the third line to set -ex and post the output from the next run?

in reply to:  3 comment:4 by skyper, 2 years ago

Replying to taylor.smock:

I was hoping.

I am sorry to have to disappoint you.

OK. What does echo "$(java -version 2>&1 | head -n1 | awk '{print $3}' | awk -F'.' '{gsub(/"/, ""); print $1}')" output?

17

Also, you can you change the set -e on the third line to set -ex and post the output from the next run?

I see no difference between -e and -ex:

user@localhost:~$ which josm-latest 
/usr/local/bin/josm-latest
user@localhost:~$ josm-latest 
Using /bin/java to execute josm-latest.
2022-06-21 19:11:25.993 INFO: Log level is at INFO (INFO, 800)
2022-06-21 19:11:30.514 INFO: Obtained 82 Tag2Link rules from resource://META-INF/resources/webjars/tag2link/2021.3.21/index.json
2022-06-21 19:11:33.881 INFO: loading plugin 'utilsplugin2' (version 35978)
2022-06-21 19:11:33.947 INFO: Reassigning shortcut 'tools:sourcetag' from null to 576 because of conflict with Ctrl+Alt+S
2022-06-21 19:11:33.961 INFO: Silent shortcut conflict: 'tools:sourcetag' moved by 'system:savesession' to 'Alt+Shift+F1'.
2022-06-21 19:11:34.384 INFO: Changeset updater active (checks every 60 minutes if open changesets have been closed)
Last edited 2 years ago by skyper (previous) (diff)

comment:5 by taylor.smock, 2 years ago

The output should have gone from something like this:

dpkg: no packages found matching openjdk-*-jre
dpkg: no packages found matching openjdk-*-jre:amd64
Using /usr/lib/jvm/default-java/bin/java to execute josm-latest.
Error: Unable to access jarfile /usr/share/josm-latest/josm-latest.jar

to something like this

++ readlink -n -f /etc/alternatives/java
+ ALTERNATIVE_JDK=/usr/lib/jvm/java-11-openjdk-amd64/bin/java
+ '[' -v JAVA_HOME ']'
+ JAVA_CMDS=
++ command -v dpkg
+ '[' -x /usr/bin/dpkg ']'
+ dpkg_java
++ dpkg --print-architecture
+ ARCH=amd64
+ dpkg --get-selections 'openjdk-*-jre'
+ grep 'install$'
dpkg: no packages found matching openjdk-*-jre
+ dpkg --get-selections 'openjdk-*-jre:amd64'
+ grep 'install$'
dpkg: no packages found matching openjdk-*-jre:amd64
+ JAVA_CMDS=' /usr/lib/jvm/default-java/bin/java /usr/bin/java'
+ JOSM_VERSION=josm-latest
+ '[' -f /etc/default/josm-latest ']'
+ JAVA_OPTS='-Djosm.restart=true -Djosm.dir.name="josm-latest" -Djava.net.useSystemProxies=true '
+ '[' -z '' ']'
+ for jcmd in $JAVA_CMDS
++ readlink -n -f /usr/lib/jvm/default-java/bin/java
+ '[' z/usr/lib/jvm/java-11-openjdk-amd64/bin/java = z/usr/lib/jvm/java-11-openjdk-amd64/bin/java ']'
+ '[' -z '' ']'
+ '[' -x /usr/lib/jvm/default-java/bin/java ']'
+ JAVACMD=/usr/lib/jvm/default-java/bin/java
+ break
+ '[' -z /usr/lib/jvm/default-java/bin/java ']'
+ '[' /usr/lib/jvm/default-java/bin/java ']'
+ echo 'Using /usr/lib/jvm/default-java/bin/java to execute josm-latest.'
Using /usr/lib/jvm/default-java/bin/java to execute josm-latest.
++ /usr/lib/jvm/default-java/bin/java -version
++ head -n1
++ awk '{print $3}'
++ awk -F. '{gsub(/"/, ""); print $1}'
+ JAVA_VERSION=11
+ JAVAFX_HOME=/usr/share/openjfx/lib
+ JOSM_PATH=/usr/share/josm-latest/josm-latest.jar
+ [[ 11 -ge 11 ]]
+ JAVA_OPTS='--module-path /usr/share/openjfx/lib --add-modules java.scripting,java.sql,javafx.controls,javafx.media,javafx.swing,javafx.web -Djosm.restart=true -Djosm.dir.name="josm-latest" -Djava.net.useSystemProxies=true '
+ JAVA_OPTS='--module-path /usr/share/openjfx/lib --add-modules java.scripting,java.sql,javafx.controls,javafx.media,javafx.swing,javafx.web -Djosm.restart=true -Djosm.dir.name="josm-latest" -Djava.net.useSystemProxies=true  --add-exports=java.base/sun.security.action=ALL-UNNAMED'
+ JAVA_OPTS='--module-path /usr/share/openjfx/lib --add-modules java.scripting,java.sql,javafx.controls,javafx.media,javafx.swing,javafx.web -Djosm.restart=true -Djosm.dir.name="josm-latest" -Djava.net.useSystemProxies=true  --add-exports=java.base/sun.security.action=ALL-UNNAMED --add-exports=java.desktop/com.sun.imageio.plugins.jpeg=ALL-UNNAMED'
+ JAVA_OPTS='--module-path /usr/share/openjfx/lib --add-modules java.scripting,java.sql,javafx.controls,javafx.media,javafx.swing,javafx.web -Djosm.restart=true -Djosm.dir.name="josm-latest" -Djava.net.useSystemProxies=true  --add-exports=java.base/sun.security.action=ALL-UNNAMED --add-exports=java.desktop/com.sun.imageio.plugins.jpeg=ALL-UNNAMED --add-exports=java.desktop/com.sun.imageio.spi=ALL-UNNAMED'
+ set +e
+ true
+ /usr/lib/jvm/default-java/bin/java --module-path /usr/share/openjfx/lib --add-modules java.scripting,java.sql,javafx.controls,javafx.media,javafx.swing,javafx.web -Djosm.restart=true '-Djosm.dir.name="josm-latest"' -Djava.net.useSystemProxies=true --add-exports=java.base/sun.security.action=ALL-UNNAMED --add-exports=java.desktop/com.sun.imageio.plugins.jpeg=ALL-UNNAMED --add-exports=java.desktop/com.sun.imageio.spi=ALL-UNNAMED -jar /usr/share/josm-latest/josm-latest.jar
Error: Unable to access jarfile /usr/share/josm-latest/josm-latest.jar
+ '[' z1 '!=' z9 ']'
+ break

I'll attach my copy of josm-latest (modified) so you can check.

by taylor.smock, 2 years ago

Attachment: josm-latest added

in reply to:  5 comment:6 by skyper, 2 years ago

Well, I purged default-jre aka openjdk-11-jre and only have openjdk-17-jre installed. Following the links, /bin/java and /usr/bin/java both point to /etc/alternatives/java which points to /usr/lib/jvm/java-17-openjdk-amd64/bin/java

Replying to taylor.smock:

I'll attach my copy of josm-latest (modified) so you can check.

$ diff -s /usr/local/bin/josm-latest Downloads/josm-latest 
Files /usr/local/bin/josm-latest and Downloads/josm-latest are identical

I did patch and use the correct file.

Last edited 2 years ago by skyper (previous) (diff)

comment:7 by taylor.smock, 2 years ago

Can you try running the Downloads/josm-latest file directly (i.e., bash Downloads/josm-latest)? I don't know what shell you are using, but this should (at least) help narrow down the problem.
The set -ex option really ought to be printing more information than was in comment:4.

in reply to:  7 ; comment:8 by skyper, 2 years ago

Replying to taylor.smock:

Can you try running the Downloads/josm-latest file directly (i.e., bash Downloads/josm-latest)? I don't know what shell you are using, but this should (at least) help narrow down the problem.

I use bash and the gnome-terminal and it works with both Downloads/josm-latest and /usr/local/bin/josm-latest. My system, so far, is quite minimalistic, so I might miss some common libraries.

$ bash Downloads/josm-latest 
++ readlink -n -f /etc/alternatives/java
+ ALTERNATIVE_JDK=/usr/lib/jvm/java-17-openjdk-amd64/bin/java
+ '[' -v JAVA_HOME ']'
+ JAVA_CMDS=
++ command -v dpkg
+ '[' -x /usr/bin/dpkg ']'
+ dpkg_java
++ dpkg --print-architecture
+ ARCH=amd64
+ dpkg --get-selections 'openjdk-*-jre'
+ grep 'install$'
+ JAVA_CMDS=' /usr/lib/jvm/java-17-openjdk/bin/java /usr/lib/jvm/java-17-openjdk-amd64/bin/java'
+ JAVA_CMDS=' /usr/lib/jvm/java-17-openjdk/bin/java /usr/lib/jvm/java-17-openjdk-amd64/bin/java /usr/lib/jvm/java-11-openjdk/bin/java /usr/lib/jvm/java-11-openjdk-amd64/bin/java'
+ JAVA_CMDS=' /usr/lib/jvm/java-17-openjdk/bin/java /usr/lib/jvm/java-17-openjdk-amd64/bin/java /usr/lib/jvm/java-11-openjdk/bin/java /usr/lib/jvm/java-11-openjdk-amd64/bin/java /usr/lib/jvm/java-8-openjdk/bin/java /usr/lib/jvm/java-8-openjdk-amd64/bin/java'
+ JAVA_CMDS=' /usr/lib/jvm/java-17-openjdk/bin/java /usr/lib/jvm/java-17-openjdk-amd64/bin/java /usr/lib/jvm/java-11-openjdk/bin/java /usr/lib/jvm/java-11-openjdk-amd64/bin/java /usr/lib/jvm/java-8-openjdk/bin/java /usr/lib/jvm/java-8-openjdk-amd64/bin/java /usr/lib/jvm/java-18-openjdk/bin/java /usr/lib/jvm/java-18-openjdk-amd64/bin/java'
+ JAVA_CMDS=' /usr/lib/jvm/java-17-openjdk/bin/java /usr/lib/jvm/java-17-openjdk-amd64/bin/java /usr/lib/jvm/java-11-openjdk/bin/java /usr/lib/jvm/java-11-openjdk-amd64/bin/java /usr/lib/jvm/java-8-openjdk/bin/java /usr/lib/jvm/java-8-openjdk-amd64/bin/java /usr/lib/jvm/java-18-openjdk/bin/java /usr/lib/jvm/java-18-openjdk-amd64/bin/java /usr/lib/jvm/java-16-openjdk/bin/java /usr/lib/jvm/java-16-openjdk-amd64/bin/java'
+ JAVA_CMDS=' /usr/lib/jvm/java-17-openjdk/bin/java /usr/lib/jvm/java-17-openjdk-amd64/bin/java /usr/lib/jvm/java-11-openjdk/bin/java /usr/lib/jvm/java-11-openjdk-amd64/bin/java /usr/lib/jvm/java-8-openjdk/bin/java /usr/lib/jvm/java-8-openjdk-amd64/bin/java /usr/lib/jvm/java-18-openjdk/bin/java /usr/lib/jvm/java-18-openjdk-amd64/bin/java /usr/lib/jvm/java-16-openjdk/bin/java /usr/lib/jvm/java-16-openjdk-amd64/bin/java /usr/lib/jvm/java-15-openjdk/bin/java /usr/lib/jvm/java-15-openjdk-amd64/bin/java'
+ JAVA_CMDS=' /usr/lib/jvm/java-17-openjdk/bin/java /usr/lib/jvm/java-17-openjdk-amd64/bin/java /usr/lib/jvm/java-11-openjdk/bin/java /usr/lib/jvm/java-11-openjdk-amd64/bin/java /usr/lib/jvm/java-8-openjdk/bin/java /usr/lib/jvm/java-8-openjdk-amd64/bin/java /usr/lib/jvm/java-18-openjdk/bin/java /usr/lib/jvm/java-18-openjdk-amd64/bin/java /usr/lib/jvm/java-16-openjdk/bin/java /usr/lib/jvm/java-16-openjdk-amd64/bin/java /usr/lib/jvm/java-15-openjdk/bin/java /usr/lib/jvm/java-15-openjdk-amd64/bin/java /usr/lib/jvm/java-14-openjdk/bin/java /usr/lib/jvm/java-14-openjdk-amd64/bin/java'
+ JAVA_CMDS=' /usr/lib/jvm/java-17-openjdk/bin/java /usr/lib/jvm/java-17-openjdk-amd64/bin/java /usr/lib/jvm/java-11-openjdk/bin/java /usr/lib/jvm/java-11-openjdk-amd64/bin/java /usr/lib/jvm/java-8-openjdk/bin/java /usr/lib/jvm/java-8-openjdk-amd64/bin/java /usr/lib/jvm/java-18-openjdk/bin/java /usr/lib/jvm/java-18-openjdk-amd64/bin/java /usr/lib/jvm/java-16-openjdk/bin/java /usr/lib/jvm/java-16-openjdk-amd64/bin/java /usr/lib/jvm/java-15-openjdk/bin/java /usr/lib/jvm/java-15-openjdk-amd64/bin/java /usr/lib/jvm/java-14-openjdk/bin/java /usr/lib/jvm/java-14-openjdk-amd64/bin/java /usr/lib/jvm/java-13-openjdk/bin/java /usr/lib/jvm/java-13-openjdk-amd64/bin/java'
+ JAVA_CMDS=' /usr/lib/jvm/java-17-openjdk/bin/java /usr/lib/jvm/java-17-openjdk-amd64/bin/java /usr/lib/jvm/java-11-openjdk/bin/java /usr/lib/jvm/java-11-openjdk-amd64/bin/java /usr/lib/jvm/java-8-openjdk/bin/java /usr/lib/jvm/java-8-openjdk-amd64/bin/java /usr/lib/jvm/java-18-openjdk/bin/java /usr/lib/jvm/java-18-openjdk-amd64/bin/java /usr/lib/jvm/java-16-openjdk/bin/java /usr/lib/jvm/java-16-openjdk-amd64/bin/java /usr/lib/jvm/java-15-openjdk/bin/java /usr/lib/jvm/java-15-openjdk-amd64/bin/java /usr/lib/jvm/java-14-openjdk/bin/java /usr/lib/jvm/java-14-openjdk-amd64/bin/java /usr/lib/jvm/java-13-openjdk/bin/java /usr/lib/jvm/java-13-openjdk-amd64/bin/java /usr/lib/jvm/java-12-openjdk/bin/java /usr/lib/jvm/java-12-openjdk-amd64/bin/java'
+ JAVA_CMDS=' /usr/lib/jvm/java-17-openjdk/bin/java /usr/lib/jvm/java-17-openjdk-amd64/bin/java /usr/lib/jvm/java-11-openjdk/bin/java /usr/lib/jvm/java-11-openjdk-amd64/bin/java /usr/lib/jvm/java-8-openjdk/bin/java /usr/lib/jvm/java-8-openjdk-amd64/bin/java /usr/lib/jvm/java-18-openjdk/bin/java /usr/lib/jvm/java-18-openjdk-amd64/bin/java /usr/lib/jvm/java-16-openjdk/bin/java /usr/lib/jvm/java-16-openjdk-amd64/bin/java /usr/lib/jvm/java-15-openjdk/bin/java /usr/lib/jvm/java-15-openjdk-amd64/bin/java /usr/lib/jvm/java-14-openjdk/bin/java /usr/lib/jvm/java-14-openjdk-amd64/bin/java /usr/lib/jvm/java-13-openjdk/bin/java /usr/lib/jvm/java-13-openjdk-amd64/bin/java /usr/lib/jvm/java-12-openjdk/bin/java /usr/lib/jvm/java-12-openjdk-amd64/bin/java /usr/lib/jvm/java-10-openjdk/bin/java /usr/lib/jvm/java-10-openjdk-amd64/bin/java'
+ JAVA_CMDS=' /usr/lib/jvm/java-17-openjdk/bin/java /usr/lib/jvm/java-17-openjdk-amd64/bin/java /usr/lib/jvm/java-11-openjdk/bin/java /usr/lib/jvm/java-11-openjdk-amd64/bin/java /usr/lib/jvm/java-8-openjdk/bin/java /usr/lib/jvm/java-8-openjdk-amd64/bin/java /usr/lib/jvm/java-18-openjdk/bin/java /usr/lib/jvm/java-18-openjdk-amd64/bin/java /usr/lib/jvm/java-16-openjdk/bin/java /usr/lib/jvm/java-16-openjdk-amd64/bin/java /usr/lib/jvm/java-15-openjdk/bin/java /usr/lib/jvm/java-15-openjdk-amd64/bin/java /usr/lib/jvm/java-14-openjdk/bin/java /usr/lib/jvm/java-14-openjdk-amd64/bin/java /usr/lib/jvm/java-13-openjdk/bin/java /usr/lib/jvm/java-13-openjdk-amd64/bin/java /usr/lib/jvm/java-12-openjdk/bin/java /usr/lib/jvm/java-12-openjdk-amd64/bin/java /usr/lib/jvm/java-10-openjdk/bin/java /usr/lib/jvm/java-10-openjdk-amd64/bin/java /usr/lib/jvm/java-9-openjdk/bin/java /usr/lib/jvm/java-9-openjdk-amd64/bin/java'
+ JAVA_CMDS=' /usr/lib/jvm/java-17-openjdk/bin/java /usr/lib/jvm/java-17-openjdk-amd64/bin/java /usr/lib/jvm/java-11-openjdk/bin/java /usr/lib/jvm/java-11-openjdk-amd64/bin/java /usr/lib/jvm/java-8-openjdk/bin/java /usr/lib/jvm/java-8-openjdk-amd64/bin/java /usr/lib/jvm/java-18-openjdk/bin/java /usr/lib/jvm/java-18-openjdk-amd64/bin/java /usr/lib/jvm/java-16-openjdk/bin/java /usr/lib/jvm/java-16-openjdk-amd64/bin/java /usr/lib/jvm/java-15-openjdk/bin/java /usr/lib/jvm/java-15-openjdk-amd64/bin/java /usr/lib/jvm/java-14-openjdk/bin/java /usr/lib/jvm/java-14-openjdk-amd64/bin/java /usr/lib/jvm/java-13-openjdk/bin/java /usr/lib/jvm/java-13-openjdk-amd64/bin/java /usr/lib/jvm/java-12-openjdk/bin/java /usr/lib/jvm/java-12-openjdk-amd64/bin/java /usr/lib/jvm/java-10-openjdk/bin/java /usr/lib/jvm/java-10-openjdk-amd64/bin/java /usr/lib/jvm/java-9-openjdk/bin/java /usr/lib/jvm/java-9-openjdk-amd64/bin/java /usr/lib/jvm/java-19-openjdk/bin/java /usr/lib/jvm/java-19-openjdk-amd64/bin/java'
+ JAVA_CMDS=' /usr/lib/jvm/java-17-openjdk/bin/java /usr/lib/jvm/java-17-openjdk-amd64/bin/java /usr/lib/jvm/java-11-openjdk/bin/java /usr/lib/jvm/java-11-openjdk-amd64/bin/java /usr/lib/jvm/java-8-openjdk/bin/java /usr/lib/jvm/java-8-openjdk-amd64/bin/java /usr/lib/jvm/java-18-openjdk/bin/java /usr/lib/jvm/java-18-openjdk-amd64/bin/java /usr/lib/jvm/java-16-openjdk/bin/java /usr/lib/jvm/java-16-openjdk-amd64/bin/java /usr/lib/jvm/java-15-openjdk/bin/java /usr/lib/jvm/java-15-openjdk-amd64/bin/java /usr/lib/jvm/java-14-openjdk/bin/java /usr/lib/jvm/java-14-openjdk-amd64/bin/java /usr/lib/jvm/java-13-openjdk/bin/java /usr/lib/jvm/java-13-openjdk-amd64/bin/java /usr/lib/jvm/java-12-openjdk/bin/java /usr/lib/jvm/java-12-openjdk-amd64/bin/java /usr/lib/jvm/java-10-openjdk/bin/java /usr/lib/jvm/java-10-openjdk-amd64/bin/java /usr/lib/jvm/java-9-openjdk/bin/java /usr/lib/jvm/java-9-openjdk-amd64/bin/java /usr/lib/jvm/java-19-openjdk/bin/java /usr/lib/jvm/java-19-openjdk-amd64/bin/java /usr/lib/jvm/default-java/bin/java /usr/bin/java'
+ JOSM_VERSION=josm-latest
+ '[' -f /etc/default/josm-latest ']'
+ . /etc/default/josm-latest
+ JAVA_OPTS='-Djosm.restart=true -Djosm.dir.name="josm-latest" -Djava.net.useSystemProxies=true '
+ '[' -z '' ']'
+ for jcmd in $JAVA_CMDS
++ readlink -n -f /usr/lib/jvm/java-17-openjdk/bin/java
+ '[' z/usr/lib/jvm/java-17-openjdk-amd64/bin/java = z ']'
+ for jcmd in $JAVA_CMDS
++ readlink -n -f /usr/lib/jvm/java-17-openjdk-amd64/bin/java
+ '[' z/usr/lib/jvm/java-17-openjdk-amd64/bin/java = z/usr/lib/jvm/java-17-openjdk-amd64/bin/java ']'
+ '[' -z '' ']'
+ '[' -x /usr/lib/jvm/java-17-openjdk-amd64/bin/java ']'
+ JAVACMD=/usr/lib/jvm/java-17-openjdk-amd64/bin/java
+ break
+ '[' -z /usr/lib/jvm/java-17-openjdk-amd64/bin/java ']'
+ '[' /usr/lib/jvm/java-17-openjdk-amd64/bin/java ']'
+ echo 'Using /usr/lib/jvm/java-17-openjdk-amd64/bin/java to execute josm-latest.'
Using /usr/lib/jvm/java-17-openjdk-amd64/bin/java to execute josm-latest.
++ /usr/lib/jvm/java-17-openjdk-amd64/bin/java -version
++ head -n1
++ awk -F. '{gsub(/"/, ""); print $1}'
++ awk '{print $3}'
+ JAVA_VERSION=17
+ JAVAFX_HOME=/usr/share/openjfx/lib
+ JOSM_PATH=/usr/share/josm-latest/josm-latest.jar
+ [[ 17 -ge 11 ]]
+ JAVA_OPTS='--module-path /usr/share/openjfx/lib --add-modules java.scripting,java.sql,javafx.controls,javafx.media,javafx.swing,javafx.web -Djosm.restart=true -Djosm.dir.name="josm-latest" -Djava.net.useSystemProxies=true '
+ JAVA_OPTS='--module-path /usr/share/openjfx/lib --add-modules java.scripting,java.sql,javafx.controls,javafx.media,javafx.swing,javafx.web -Djosm.restart=true -Djosm.dir.name="josm-latest" -Djava.net.useSystemProxies=true  --add-exports=java.base/sun.security.action=ALL-UNNAMED'
+ JAVA_OPTS='--module-path /usr/share/openjfx/lib --add-modules java.scripting,java.sql,javafx.controls,javafx.media,javafx.swing,javafx.web -Djosm.restart=true -Djosm.dir.name="josm-latest" -Djava.net.useSystemProxies=true  --add-exports=java.base/sun.security.action=ALL-UNNAMED --add-exports=java.desktop/com.sun.imageio.plugins.jpeg=ALL-UNNAMED'
+ JAVA_OPTS='--module-path /usr/share/openjfx/lib --add-modules java.scripting,java.sql,javafx.controls,javafx.media,javafx.swing,javafx.web -Djosm.restart=true -Djosm.dir.name="josm-latest" -Djava.net.useSystemProxies=true  --add-exports=java.base/sun.security.action=ALL-UNNAMED --add-exports=java.desktop/com.sun.imageio.plugins.jpeg=ALL-UNNAMED --add-exports=java.desktop/com.sun.imageio.spi=ALL-UNNAMED'
+ set +e
+ true
+ /usr/lib/jvm/java-17-openjdk-amd64/bin/java --module-path /usr/share/openjfx/lib --add-modules java.scripting,java.sql,javafx.controls,javafx.media,javafx.swing,javafx.web -Djosm.restart=true '-Djosm.dir.name="josm-latest"' -Djava.net.useSystemProxies=true --add-exports=java.base/sun.security.action=ALL-UNNAMED --add-exports=java.desktop/com.sun.imageio.plugins.jpeg=ALL-UNNAMED --add-exports=java.desktop/com.sun.imageio.spi=ALL-UNNAMED -jar /usr/share/josm-latest/josm-latest.jar

comment:9 by taylor.smock, 2 years ago

Thanks. Looking at the last line, it should be working:
+ /usr/lib/jvm/java-17-openjdk-amd64/bin/java --module-path /usr/share/openjfx/lib --add-modules java.scripting,java.sql,javafx.controls,javafx.media,javafx.swing,javafx.web -Djosm.restart=true '-Djosm.dir.name="josm-latest"' -Djava.net.useSystemProxies=true --add-exports=java.base/sun.security.action=ALL-UNNAMED --add-exports=java.desktop/com.sun.imageio.plugins.jpeg=ALL-UNNAMED --add-exports=java.desktop/com.sun.imageio.spi=ALL-UNNAMED -jar /usr/share/josm-latest/josm-latest.jar

Does the status report show the correct arguments?

in reply to:  8 comment:10 by skyper, 2 years ago

Replying to skyper:

I use bash and the gnome-terminal and it works with both Downloads/josm-latest and /usr/local/bin/josm-latest.

Sorry, I just rechecked and I still use /usr/bin/dash as standard shell.

Edit:
Not true:

user@localhost:~$ ls -l /bin/sh
lrwxrwxrwx 1 root root 4 Dec 10  2020 /bin/sh -> dash
user@localhost:~$ ls -l /bin/bash
-rwxr-xr-x 1 root root 1234376 Aug  4  2021 /bin/bash
user@localhost:~$ diff -s /bin/bash /usr/bin/bash
Files /bin/bash and /usr/bin/bash are identical
Last edited 2 years ago by skyper (previous) (diff)

in reply to:  9 comment:11 by skyper, 2 years ago

Replying to taylor.smock:

Does the status report show the correct arguments?

Yes, with bash but not with dash.

$ dash Downloads/josm-latest 
+ readlink -n -f /etc/alternatives/java
+ ALTERNATIVE_JDK=/usr/lib/jvm/java-17-openjdk-amd64/bin/java
+ [ -v JAVA_HOME ]
Downloads/josm-latest: 9: [: -v: unexpected operator
+ JAVA_CMDS=
+ command -v dpkg
+ [ -x /usr/bin/dpkg ]
+ dpkg_java
+ dpkg --print-architecture
+ ARCH=amd64
+ dpkg --get-selections openjdk-*-jre
+ grep install$
+ JAVA_CMDS= /usr/lib/jvm/java-17-openjdk/bin/java /usr/lib/jvm/java-17-openjdk-amd64/bin/java
+ JAVA_CMDS= /usr/lib/jvm/java-17-openjdk/bin/java /usr/lib/jvm/java-17-openjdk-amd64/bin/java /usr/lib/jvm/java-11-openjdk/bin/java /usr/lib/jvm/java-11-openjdk-amd64/bin/java
+ JAVA_CMDS= /usr/lib/jvm/java-17-openjdk/bin/java /usr/lib/jvm/java-17-openjdk-amd64/bin/java /usr/lib/jvm/java-11-openjdk/bin/java /usr/lib/jvm/java-11-openjdk-amd64/bin/java /usr/lib/jvm/java-8-openjdk/bin/java /usr/lib/jvm/java-8-openjdk-amd64/bin/java
+ JAVA_CMDS= /usr/lib/jvm/java-17-openjdk/bin/java /usr/lib/jvm/java-17-openjdk-amd64/bin/java /usr/lib/jvm/java-11-openjdk/bin/java /usr/lib/jvm/java-11-openjdk-amd64/bin/java /usr/lib/jvm/java-8-openjdk/bin/java /usr/lib/jvm/java-8-openjdk-amd64/bin/java /usr/lib/jvm/java-18-openjdk/bin/java /usr/lib/jvm/java-18-openjdk-amd64/bin/java
+ JAVA_CMDS= /usr/lib/jvm/java-17-openjdk/bin/java /usr/lib/jvm/java-17-openjdk-amd64/bin/java /usr/lib/jvm/java-11-openjdk/bin/java /usr/lib/jvm/java-11-openjdk-amd64/bin/java /usr/lib/jvm/java-8-openjdk/bin/java /usr/lib/jvm/java-8-openjdk-amd64/bin/java /usr/lib/jvm/java-18-openjdk/bin/java /usr/lib/jvm/java-18-openjdk-amd64/bin/java /usr/lib/jvm/java-16-openjdk/bin/java /usr/lib/jvm/java-16-openjdk-amd64/bin/java
+ JAVA_CMDS= /usr/lib/jvm/java-17-openjdk/bin/java /usr/lib/jvm/java-17-openjdk-amd64/bin/java /usr/lib/jvm/java-11-openjdk/bin/java /usr/lib/jvm/java-11-openjdk-amd64/bin/java /usr/lib/jvm/java-8-openjdk/bin/java /usr/lib/jvm/java-8-openjdk-amd64/bin/java /usr/lib/jvm/java-18-openjdk/bin/java /usr/lib/jvm/java-18-openjdk-amd64/bin/java /usr/lib/jvm/java-16-openjdk/bin/java /usr/lib/jvm/java-16-openjdk-amd64/bin/java /usr/lib/jvm/java-15-openjdk/bin/java /usr/lib/jvm/java-15-openjdk-amd64/bin/java
+ JAVA_CMDS= /usr/lib/jvm/java-17-openjdk/bin/java /usr/lib/jvm/java-17-openjdk-amd64/bin/java /usr/lib/jvm/java-11-openjdk/bin/java /usr/lib/jvm/java-11-openjdk-amd64/bin/java /usr/lib/jvm/java-8-openjdk/bin/java /usr/lib/jvm/java-8-openjdk-amd64/bin/java /usr/lib/jvm/java-18-openjdk/bin/java /usr/lib/jvm/java-18-openjdk-amd64/bin/java /usr/lib/jvm/java-16-openjdk/bin/java /usr/lib/jvm/java-16-openjdk-amd64/bin/java /usr/lib/jvm/java-15-openjdk/bin/java /usr/lib/jvm/java-15-openjdk-amd64/bin/java /usr/lib/jvm/java-14-openjdk/bin/java /usr/lib/jvm/java-14-openjdk-amd64/bin/java
+ JAVA_CMDS= /usr/lib/jvm/java-17-openjdk/bin/java /usr/lib/jvm/java-17-openjdk-amd64/bin/java /usr/lib/jvm/java-11-openjdk/bin/java /usr/lib/jvm/java-11-openjdk-amd64/bin/java /usr/lib/jvm/java-8-openjdk/bin/java /usr/lib/jvm/java-8-openjdk-amd64/bin/java /usr/lib/jvm/java-18-openjdk/bin/java /usr/lib/jvm/java-18-openjdk-amd64/bin/java /usr/lib/jvm/java-16-openjdk/bin/java /usr/lib/jvm/java-16-openjdk-amd64/bin/java /usr/lib/jvm/java-15-openjdk/bin/java /usr/lib/jvm/java-15-openjdk-amd64/bin/java /usr/lib/jvm/java-14-openjdk/bin/java /usr/lib/jvm/java-14-openjdk-amd64/bin/java /usr/lib/jvm/java-13-openjdk/bin/java /usr/lib/jvm/java-13-openjdk-amd64/bin/java
+ JAVA_CMDS= /usr/lib/jvm/java-17-openjdk/bin/java /usr/lib/jvm/java-17-openjdk-amd64/bin/java /usr/lib/jvm/java-11-openjdk/bin/java /usr/lib/jvm/java-11-openjdk-amd64/bin/java /usr/lib/jvm/java-8-openjdk/bin/java /usr/lib/jvm/java-8-openjdk-amd64/bin/java /usr/lib/jvm/java-18-openjdk/bin/java /usr/lib/jvm/java-18-openjdk-amd64/bin/java /usr/lib/jvm/java-16-openjdk/bin/java /usr/lib/jvm/java-16-openjdk-amd64/bin/java /usr/lib/jvm/java-15-openjdk/bin/java /usr/lib/jvm/java-15-openjdk-amd64/bin/java /usr/lib/jvm/java-14-openjdk/bin/java /usr/lib/jvm/java-14-openjdk-amd64/bin/java /usr/lib/jvm/java-13-openjdk/bin/java /usr/lib/jvm/java-13-openjdk-amd64/bin/java /usr/lib/jvm/java-12-openjdk/bin/java /usr/lib/jvm/java-12-openjdk-amd64/bin/java
+ JAVA_CMDS= /usr/lib/jvm/java-17-openjdk/bin/java /usr/lib/jvm/java-17-openjdk-amd64/bin/java /usr/lib/jvm/java-11-openjdk/bin/java /usr/lib/jvm/java-11-openjdk-amd64/bin/java /usr/lib/jvm/java-8-openjdk/bin/java /usr/lib/jvm/java-8-openjdk-amd64/bin/java /usr/lib/jvm/java-18-openjdk/bin/java /usr/lib/jvm/java-18-openjdk-amd64/bin/java /usr/lib/jvm/java-16-openjdk/bin/java /usr/lib/jvm/java-16-openjdk-amd64/bin/java /usr/lib/jvm/java-15-openjdk/bin/java /usr/lib/jvm/java-15-openjdk-amd64/bin/java /usr/lib/jvm/java-14-openjdk/bin/java /usr/lib/jvm/java-14-openjdk-amd64/bin/java /usr/lib/jvm/java-13-openjdk/bin/java /usr/lib/jvm/java-13-openjdk-amd64/bin/java /usr/lib/jvm/java-12-openjdk/bin/java /usr/lib/jvm/java-12-openjdk-amd64/bin/java /usr/lib/jvm/java-10-openjdk/bin/java /usr/lib/jvm/java-10-openjdk-amd64/bin/java
+ JAVA_CMDS= /usr/lib/jvm/java-17-openjdk/bin/java /usr/lib/jvm/java-17-openjdk-amd64/bin/java /usr/lib/jvm/java-11-openjdk/bin/java /usr/lib/jvm/java-11-openjdk-amd64/bin/java /usr/lib/jvm/java-8-openjdk/bin/java /usr/lib/jvm/java-8-openjdk-amd64/bin/java /usr/lib/jvm/java-18-openjdk/bin/java /usr/lib/jvm/java-18-openjdk-amd64/bin/java /usr/lib/jvm/java-16-openjdk/bin/java /usr/lib/jvm/java-16-openjdk-amd64/bin/java /usr/lib/jvm/java-15-openjdk/bin/java /usr/lib/jvm/java-15-openjdk-amd64/bin/java /usr/lib/jvm/java-14-openjdk/bin/java /usr/lib/jvm/java-14-openjdk-amd64/bin/java /usr/lib/jvm/java-13-openjdk/bin/java /usr/lib/jvm/java-13-openjdk-amd64/bin/java /usr/lib/jvm/java-12-openjdk/bin/java /usr/lib/jvm/java-12-openjdk-amd64/bin/java /usr/lib/jvm/java-10-openjdk/bin/java /usr/lib/jvm/java-10-openjdk-amd64/bin/java /usr/lib/jvm/java-9-openjdk/bin/java /usr/lib/jvm/java-9-openjdk-amd64/bin/java
+ JAVA_CMDS= /usr/lib/jvm/java-17-openjdk/bin/java /usr/lib/jvm/java-17-openjdk-amd64/bin/java /usr/lib/jvm/java-11-openjdk/bin/java /usr/lib/jvm/java-11-openjdk-amd64/bin/java /usr/lib/jvm/java-8-openjdk/bin/java /usr/lib/jvm/java-8-openjdk-amd64/bin/java /usr/lib/jvm/java-18-openjdk/bin/java /usr/lib/jvm/java-18-openjdk-amd64/bin/java /usr/lib/jvm/java-16-openjdk/bin/java /usr/lib/jvm/java-16-openjdk-amd64/bin/java /usr/lib/jvm/java-15-openjdk/bin/java /usr/lib/jvm/java-15-openjdk-amd64/bin/java /usr/lib/jvm/java-14-openjdk/bin/java /usr/lib/jvm/java-14-openjdk-amd64/bin/java /usr/lib/jvm/java-13-openjdk/bin/java /usr/lib/jvm/java-13-openjdk-amd64/bin/java /usr/lib/jvm/java-12-openjdk/bin/java /usr/lib/jvm/java-12-openjdk-amd64/bin/java /usr/lib/jvm/java-10-openjdk/bin/java /usr/lib/jvm/java-10-openjdk-amd64/bin/java /usr/lib/jvm/java-9-openjdk/bin/java /usr/lib/jvm/java-9-openjdk-amd64/bin/java /usr/lib/jvm/java-19-openjdk/bin/java /usr/lib/jvm/java-19-openjdk-amd64/bin/java
+ JAVA_CMDS= /usr/lib/jvm/java-17-openjdk/bin/java /usr/lib/jvm/java-17-openjdk-amd64/bin/java /usr/lib/jvm/java-11-openjdk/bin/java /usr/lib/jvm/java-11-openjdk-amd64/bin/java /usr/lib/jvm/java-8-openjdk/bin/java /usr/lib/jvm/java-8-openjdk-amd64/bin/java /usr/lib/jvm/java-18-openjdk/bin/java /usr/lib/jvm/java-18-openjdk-amd64/bin/java /usr/lib/jvm/java-16-openjdk/bin/java /usr/lib/jvm/java-16-openjdk-amd64/bin/java /usr/lib/jvm/java-15-openjdk/bin/java /usr/lib/jvm/java-15-openjdk-amd64/bin/java /usr/lib/jvm/java-14-openjdk/bin/java /usr/lib/jvm/java-14-openjdk-amd64/bin/java /usr/lib/jvm/java-13-openjdk/bin/java /usr/lib/jvm/java-13-openjdk-amd64/bin/java /usr/lib/jvm/java-12-openjdk/bin/java /usr/lib/jvm/java-12-openjdk-amd64/bin/java /usr/lib/jvm/java-10-openjdk/bin/java /usr/lib/jvm/java-10-openjdk-amd64/bin/java /usr/lib/jvm/java-9-openjdk/bin/java /usr/lib/jvm/java-9-openjdk-amd64/bin/java /usr/lib/jvm/java-19-openjdk/bin/java /usr/lib/jvm/java-19-openjdk-amd64/bin/java /usr/lib/jvm/default-java/bin/java /usr/bin/java
+ JOSM_VERSION=josm-latest
+ [ -f /etc/default/josm-latest ]
+ . /etc/default/josm-latest
+ JAVA_OPTS=-Djosm.restart=true -Djosm.dir.name="josm-latest" -Djava.net.useSystemProxies=true 
+ [ -z  ]
+ readlink -n -f /usr/lib/jvm/java-17-openjdk/bin/java
+ [ z/usr/lib/jvm/java-17-openjdk-amd64/bin/java = z ]
+ readlink -n -f /usr/lib/jvm/java-17-openjdk-amd64/bin/java
+ [ z/usr/lib/jvm/java-17-openjdk-amd64/bin/java = z/usr/lib/jvm/java-17-openjdk-amd64/bin/java ]
+ [ -z  ]
+ [ -x /usr/lib/jvm/java-17-openjdk-amd64/bin/java ]
+ JAVACMD=/usr/lib/jvm/java-17-openjdk-amd64/bin/java
+ break
+ [ -z /usr/lib/jvm/java-17-openjdk-amd64/bin/java ]
+ [ /usr/lib/jvm/java-17-openjdk-amd64/bin/java ]
+ echo Using /usr/lib/jvm/java-17-openjdk-amd64/bin/java to execute josm-latest.
Using /usr/lib/jvm/java-17-openjdk-amd64/bin/java to execute josm-latest.
+ /usr/lib/jvm/java-17-openjdk-amd64/bin/java -version
+ head -n1
+ awk {print $3}
+ awk -F. {gsub(/"/, ""); print $1}
+ JAVA_VERSION=17
+ JAVAFX_HOME=/usr/share/openjfx/lib
+ JOSM_PATH=/usr/share/josm-latest/josm-latest.jar
+ [[ 17 -ge 11 ]]
Downloads/josm-latest: 75: [[: not found
+ [[ 17 -ge 9 ]]
Downloads/josm-latest: 80: [[: not found
+ set +e
+ true
+ /usr/lib/jvm/java-17-openjdk-amd64/bin/java -Djosm.restart=true -Djosm.dir.name="josm-latest" -Djava.net.useSystemProxies=true -jar /usr/share/josm-latest/josm-latest.jar
Last edited 2 years ago by skyper (previous) (diff)

comment:12 by taylor.smock, 2 years ago

OK. What happens if you change the first line from /bin/bash to /usr/bin/bash or /usr/bin/env bash?

in reply to:  12 comment:13 by skyper, 2 years ago

Replying to taylor.smock:

OK. What happens if you change the first line from /bin/bash to /usr/bin/bash or /usr/bin/env bash?

It works with both. Strange, though, as /bin/bash and /usr/bin/bash are identical.

Last edited 2 years ago by skyper (previous) (diff)

comment:14 by skyper, 2 years ago

Priority: majorcritical

I had a Ubuntu-22.04 Live-System lying around and installed josm-latest with the same result as on my Debian: Only the patched version invoked with bash /usr/local/bin/josm-latest worked as expected. Current version does not work, even invoked by bash /usr/bin/josm-latest.

Relative:URL: ^/trunk
Repository:UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b
Last:Changed Date: 2022-06-21 18:31:54 +0200 (Tue, 21 Jun 2022)
Revision:18496
Build-Date:2022-06-22 01:30:56
URL:https://josm.openstreetmap.de/svn/trunk

Identification: JOSM/1.5 (18496 de) Linux Ubuntu 22.04 LTS
Memory Usage: 284 MB / 2968 MB (134 MB allocated, but free)
Java version: 17.0.3+7-Ubuntu-0ubuntu0.22.04.1, Private Build, OpenJDK 64-Bit Server VM
Look and Feel: javax.swing.plaf.metal.MetalLookAndFeel
Screen: :0.0 1920×1080 (scaling 1.00×1.00)
Maximum Screen Size: 1920×1080
Best cursor sizes: 16×16→16×16, 32×32→32×32
Environment variable LANG: de_DE.UTF-8
System property file.encoding: UTF-8
System property sun.jnu.encoding: UTF-8
Locale info: de_DE
Numbers with default locale: 1234567890 -> 1234567890
Desktop environment: ubuntu:GNOME
Java ATK Wrapper package: libatk-wrapper-java:all-0.38.0-5build1
fonts-noto: fonts-noto:all-20201225-1build1
VM arguments: [-Djosm.restart=true, -Djosm.dir.name=JOSM-latest, -Djava.net.useSystemProxies=true]

in reply to:  14 ; comment:15 by taylor.smock, 2 years ago

Replying to skyper:

I had a Ubuntu-22.04 Live-System lying around and installed josm-latest with the same result as on my Debian: Only the patched version invoked with bash /usr/local/bin/josm-latest worked as expected. Current version does not work, even invoked by bash /usr/bin/josm-latest.

Which patched version? Is it just the /bin/bash -> /usr/bin/bash (or /usr/bin/env bash) change, or that in addition to #22088?

EDIT: NVM. I'll apply #22088 with the /usr/bin/env bash change due to comment:4 (Using /bin/java to execute josm-latest.), as the script won't find the java version in cases where /bin/java or /usr/bin/java are used.

Last edited 2 years ago by taylor.smock (previous) (diff)

in reply to:  15 ; comment:16 by skyper, 2 years ago

Replying to taylor.smock:

Replying to skyper:

I had a Ubuntu-22.04 Live-System lying around and installed josm-latest with the same result as on my Debian: Only the patched version invoked with bash /usr/local/bin/josm-latest worked as expected. Current version does not work, even invoked by bash /usr/bin/josm-latest.

Which patched version? Is it just the /bin/bash -> /usr/bin/bash (or /usr/bin/env bash) change, or that in addition to #22088?

The patch for #22088. Changing /bin/bash -> /usr/bin/bash does only work with the patch, current version does still not work.

EDIT: NVM. I'll apply #22088 with the /usr/bin/env bash change due to comment:4 (Using /bin/java to execute josm-latest.), as the script won't find the java version in cases where /bin/java or /usr/bin/java are used.

As far as I understood /usr/bin/env bash does not allow to pass options to bash. I get the correct Using /usr/lib/jvm/java-17-openjdk-amd64/bin/java to execute josm-latest. with /usr/bin/bash and the patch for #22088.

in reply to:  16 ; comment:17 by taylor.smock, 2 years ago

Replying to skyper:

As far as I understood /usr/bin/env bash does not allow to pass options to bash. I get the correct Using /usr/lib/jvm/java-17-openjdk-amd64/bin/java to execute josm-latest. with /usr/bin/bash and the patch for #22088.

This would matter if I were to do something like /usr/bin/env bash -x. But I'll probably just hardcode /usr/bin/bash, just to avoid PATH issues.

comment:18 by taylor.smock, 2 years ago

Resolution: fixed
Status: newclosed

In 18497/josm:

Fix #22088: Debian start script does not properly check if a path does not exist or is not executable

This also fixes #22157: java options from start script not passed

#22157 had two issues:

  1. The start script fell back to /bin/java, which did not allow for version information (we were using the path to java to get the version information)
  2. #!/bin/bash was not working properly

(1) was fixed in the patch for #22088, while (2) was a single-line change.

#22088 largely made the start scripts more portable, and some variables can be
overridden via environment variables.

  • JAVAFX_HOME (defaults to /usr/share/openjfx/lib)
  • JOSM_PATH (defaults to /usr/share/${JOSM_VERSION}/${JOSM_VERSION}.jar, with JOSM_VERSION being one of josm or josm-latest)
  • JAVA_VERSION is now parsed from $JAVACMD -version instead of the binary path
  • The JAVACMD should now always be executable
  • dpkg is no longer required, although it is still checked for, which allows us to prioritize specific Java versions
  • The differences between the josm-latest and josm binaries is 2 lines

comment:19 by taylor.smock, 2 years ago

@skyper: As soon as there is an updated deb package, please update and ensure that everything works. It should, but I'm nervous about this change so close to a possible release weekend.

in reply to:  17 comment:20 by skyper, 2 years ago

Replying to taylor.smock:

Replying to skyper:

As far as I understood /usr/bin/env bash does not allow to pass options to bash. I get the correct Using /usr/lib/jvm/java-17-openjdk-amd64/bin/java to execute josm-latest. with /usr/bin/bash and the patch for #22088.

This would matter if I were to do something like /usr/bin/env bash -x. But I'll probably just hardcode /usr/bin/bash, just to avoid PATH issues.

Actually, I do not know which of the two solutions is better and I still do not get why #!/bin/bashdoes not work in first place, but I am only a linux user and no expert. Maybe some real expert can explain it to us (or find the bug in Debian/Ubuntu).
I am happy about any solution which fixes this ticket.

in reply to:  18 ; comment:21 by skyper, 2 years ago

Replying to taylor.smock:

#22088 largely made the start scripts more portable, and some variables can be
overridden via environment variables.

  • JAVAFX_HOME (defaults to /usr/share/openjfx/lib)
  • JOSM_PATH (defaults to /usr/share/${JOSM_VERSION}/${JOSM_VERSION}.jar, with

Mmh, we also have /etc/default/josm(-latest) for variables.

in reply to:  19 comment:22 by skyper, 2 years ago

Replying to taylor.smock:

@skyper: As soon as there is an updated deb package, please update and ensure that everything works. It should, but I'm nervous about this change so close to a possible release weekend.

I try, but that will be around 5am CEST and I am not sure if I will have time tomorrow. I definitely won't have the Ubuntu-Live-System running til then, so I can only check on my Debian system.

in reply to:  21 comment:23 by taylor.smock, 2 years ago

Replying to 20, 21, and 22:

Actually, I do not know which of the two solutions is better and I still do not get why #!/bin/bashdoes not work in first place, but I am only a linux user and no expert. Maybe some real expert can explain it to us (or find the bug in Debian/Ubuntu).

I am no expert either, despite having run Gentoo in the past. :)
Best guess, there is some code somewhere that expects /bin/bash to work one way and /usr/bin/bash to work another, so they special cased it. Or #! decided it would be a good idea to override /bin/bash with some other shell.

Mmh, we also have /etc/default/josm(-latest) for variables.

This was previously only relevant for JAVA_OPTS. It will also work with the mentioned variables.

I try, but that will be around 5am CEST and I am not sure if I will have time tomorrow. I definitely won't have the Ubuntu-Live-System running til then, so I can only check on my Debian system.

Totally fair. That is where I was kind of expecting you to do the testing anyway (if it works there, it should work under Ubuntu).

comment:24 by skyper, 2 years ago

It is working:

user@localhost:~$ which josm-latest
/usr/bin/josm-latest
user@localhost:~$ josm-latest
Using /usr/lib/jvm/java-17-openjdk-amd64/bin/java to execute josm-latest.
…
Relative:URL: ^/trunk
Repository:UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b
Last:Changed Date: 2022-06-23 00:47:56 +0200 (Thu, 23 Jun 2022)
Revision:18499
Build-Date:2022-06-23 01:30:56
URL:https://josm.openstreetmap.de/svn/trunk

Identification: JOSM/1.5 (18499 en) Linux Debian GNU/Linux 11 (bullseye)
Memory Usage: 242 MB / 2970 MB (103 MB allocated, but free)
Java version: 17.0.3+7-Debian-1deb11u1, Debian, OpenJDK 64-Bit Server VM
Look and Feel: javax.swing.plaf.metal.MetalLookAndFeel
Screen: :0.0 1920×1080 (scaling 1.00×1.00) :0.1 1920×1080 (scaling 1.00×1.00)
Maximum Screen Size: 1920×1080
Best cursor sizes: 16×16→16×16, 32×32→32×32
Environment variable LANG: en_US.UTF-8
System property file.encoding: UTF-8
System property sun.jnu.encoding: UTF-8
Locale info: en_US
Numbers with default locale: 1234567890 -> 1234567890
Desktop environment: GNOME
fonts-noto: fonts-noto:all-20201225-1
VM arguments: [--module-path=/usr/share/openjfx/lib, --add-modules=java.scripting,java.sql,javafx.controls,javafx.media,javafx.swing,javafx.web, -Djosm.restart=true, -Djosm.dir.name="josm-latest", -Djava.net.useSystemProxies=true, --add-exports=java.base/sun.security.action=ALL-UNNAMED, --add-exports=java.desktop/com.sun.imageio.plugins.jpeg=ALL-UNNAMED, --add-exports=java.desktop/com.sun.imageio.spi=ALL-UNNAMED]
Last edited 2 years ago by skyper (previous) (diff)

comment:25 by taylor.smock, 2 years ago

Good. :)

Modify Ticket

Change Properties
Set your email in Preferences
Action
as closed The owner will remain team.
as The resolution will be set.
The resolution will be deleted. Next status will be 'reopened'.

Add Comment


E-mail address and name can be saved in the Preferences .
 
Note: See TracTickets for help on using tickets.