DMX 5.3.5 has been released at Dec 28, 2024 (and could be published only now). It brings a major bug fix regarding the Webclient’s topic label rendering on the canvas, a regression introduced in DMX 5.3.4. Furthermore there are quite some improvements and extended possibilities for plugin developers. For details see the Changelog.
Thanks Jörg @jri for the good news. Regarding the dmx-headless Debian package, I have a question: Will it also be updated to 5.3.5?
@jpn I am running DMX 5.3.4. on Debian GNU/Linux 12 (bookworm). 3 packages are still in the upgrade pipeline.
ca-certificates-java/stable,stable 20230710~deb12u1 all [upgradable from: 20190909+deb11u1]
libsemanage-common/stable,stable 3.4-1 all [upgradable from: 3.1-1]
passwd/stable,stable 1:4.13+dfsg1-1+b1 amd64 [upgradable from: 1:4.8.1-1]
and there seem to be a problem with the InRelease key. (apt-key is deprecated)
W: https://download.dmx.systems/repos/ubuntu/xenial/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.
What should I consider when updating to the latest dmx-headless version 5.3.5? Should I wait for the new dmx-headless version or try one of the two packages dmx-latest-headless or dmx-latest?
which will remove
dmx-latest-headless libsemanage1 openjdk-8-jre openjdk-8-jre-headless
to be able to install:
libsemanage2 libsepol2
and to upgrade:
ca-certificates-java libsemanage-common passwd
NB. Package openjdk-8-jre-headless is replaced by:
nvidia-openjdk-8-jre
But:
The following packages have unmet dependencies:
dmx-latest-headless : Depends: openjdk-8-jre-headless but it is not installable
Since Java 8 is deprecated and not supported by many distributions anymore, I tend to release the next debian package with Java 11 support. It feels a bit useless to build a debian package that one cannot install on recent distros. I’ll have to check with @jri how to best proceed.
Regarding the gpg.key, debian is not complaining about the key itself, but how it is stored on your local machine - see apt-key(8) — apt — Debian testing — Debian Manpages . I will update the installation script with the next release of the debian package.
@jpn basically you can build a DMX distribution that is supported by Java 11 and above by following these steps in the dmx-platform project:
git checkout 568-java-11
mvn clean install -P all,dist
The zip-distro is then found in modules/dmx-distribution/target/dmx-5.3.5.zip
This distro will work with Java 9 or later.
The actual build steps can be done with Java 8 or later.
For building you need Node.js 16, not 18 or later.
Note: this builds the generic DMX distro. Building a Debian package requires extra steps, you’re familiar with then
# apt install default-jre-headless
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
You might want to run 'apt --fix-broken install' to correct these.
The following packages have unmet dependencies:
default-jre-headless : Depends: openjdk-17-jre-headless but it is not going to be installed
E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).
and
apt --fix-broken install
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Correcting dependencies... Done
The following additional packages will be installed:
default-jre-headless openjdk-17-jre-headless
Suggested packages:
default-jre libnss-mdns fonts-dejavu-extra fonts-ipafont-gothic fonts-ipafont-mincho fonts-wqy-microhei
| fonts-wqy-zenhei fonts-indic
The following NEW packages will be installed:
default-jre-headless openjdk-17-jre-headless
0 upgraded, 2 newly installed, 0 to remove and 3 not upgraded.
1 not fully installed or removed.
Need to get 43.8 MB of archives.
After this operation, 193 MB of additional disk space will be used.
Do you want to continue? [Y/n]
Get:1 http://deb.debian.org/debian bookworm/main amd64 openjdk-17-jre-headless amd64 17.0.15+6-1~deb12u1 [43.8 MB]
Get:2 http://deb.debian.org/debian bookworm/main amd64 default-jre-headless amd64 2:1.17-74 [2,936 B]
Fetched 43.8 MB in 0s (111 MB/s)
Selecting previously unselected package openjdk-17-jre-headless:amd64.
(Reading database ... 60433 files and directories currently installed.)
Preparing to unpack .../openjdk-17-jre-headless_17.0.15+6-1~deb12u1_amd64.deb ...
Unpacking openjdk-17-jre-headless:amd64 (17.0.15+6-1~deb12u1) ...
Selecting previously unselected package default-jre-headless.
Preparing to unpack .../default-jre-headless_2%3a1.17-74_amd64.deb ...
Unpacking default-jre-headless (2:1.17-74) ...
Setting up openjdk-17-jre-headless:amd64 (17.0.15+6-1~deb12u1) ...
update-alternatives: using /usr/lib/jvm/java-17-openjdk-amd64/bin/java to provide /usr/bin/java (java) in auto mode
update-alternatives: using /usr/lib/jvm/java-17-openjdk-amd64/bin/jpackage to provide /usr/bin/jpackage (jpackage) in auto mode
update-alternatives: using /usr/lib/jvm/java-17-openjdk-amd64/bin/keytool to provide /usr/bin/keytool (keytool) in auto mode
update-alternatives: using /usr/lib/jvm/java-17-openjdk-amd64/bin/rmiregistry to provide /usr/bin/rmiregistry (rmiregistry) in auto mode
update-alternatives: using /usr/lib/jvm/java-17-openjdk-amd64/lib/jexec to provide /usr/bin/jexec (jexec) in auto mode
Setting up default-jre-headless (2:1.17-74) ...
Setting up dmx-headless (5.3.5~2deb+b22407) ...
Configuration file '/etc/dmx/config.properties'
==> Modified (by you or by a script) since installation.
==> Package distributor has shipped an updated version.
What would you like to do about it ? Your options are:
Y or I : install the package maintainer's version
N or O : keep your currently-installed version
D : show the differences between the versions
Z : start a shell to examine the situation
The default action is to keep your current version.
*** config.properties (Y/I/N/O/D/Z) [default=N] ?
Running /var/lib/dpkg/info/dmx-headless.postinst configure 5.3.4~1deb+b20408 ...
Running /var/lib/dpkg/info/dmx-headless.postinst configure 5.3.4~1deb+b20408 ...
enabling dmx.service
Created symlink /etc/systemd/system/multi-user.target.wants/dmx.service → /lib/systemd/system/dmx.service.
Note: I keep my current config.properties.
But, Service Unavailable
/bin/sh: 1: -Xms256M: not found
and
apt install dmx-latest-headless
brings me back to a running service.
# sudo systemctl status dmx
● dmx.service - DMX - The Context Machine
Loaded: loaded (/lib/systemd/system/dmx.service; enabled; preset: enabled)
Drop-In: /etc/systemd/system/dmx.service.d
└─override.conf
Active: active (running) since Fri 2025-06-06 11:59:43 CEST; 7min ago
Docs: https://docs.dmx.systems
Main PID: 5072 (sh)
Tasks: 59 (limit: 4530)
Memory: 367.3M
CPU: 14.829s
CGroup: /system.slice/dmx.service
├─5072 /bin/sh -c "/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java -Xms1024M -Xmx2048M -Dfile.encoding=UTF-8 -Dfelix.system.properties=file:/etc/dmx/config.properties -Dfelix.config.properties=file:/etc/dmx/config.properties -Dpidfile.path=/var/run/dmx/dmx.pid -Djava.awt.headless=true -jar /usr/share/dmx/bin/felix.jar"
└─5073 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java -Xms1024M -Xmx2048M -Dfile.encoding=UTF-8 -Dfelix.system.properties=file:/etc/dmx/config.properties -Dfelix.config.properties=file:/etc/dmx/config.properties -Dpidfile.path=/var/run/dmx/dmx.pid -Djava.awt.headless=true -jar /usr/share/dmx/bin/felix.jar
Jun 06 11:59:43 dmx systemd[1]: Starting dmx.service - DMX - The Context Machine...
Jun 06 11:59:43 dmx systemd[1]: Started dmx.service - DMX - The Context Machine.
Note: override.conf where I override heap settings:
### Editing /etc/systemd/system/dmx.service.d/override.conf
### Anything between here and the comment below will become the new contents of the file
[Service]
Environment="JAVA_XMS=1024"
Environment="JAVA_XMX=2048"
### Lines below this comment will be discarded
### /lib/systemd/system/dmx.service
[…]
We should look at /lib/systemd/system/dmx.service, right?
Yes, I forgot to replace Java-11 with what ever is the “default” now. Could you please run the following command on your debian machine and post the result: /bin/sh -c 'echo "$( update-alternatives --list java | grep -E "java-[1|2]*-" | grep bin/java$ )"'. I just want to check the command runs on your machine.
BTW, switching between latest snapshot releases and stable releases requires to uninstall the snapshot before with apt remove (not purge). Remember to backup your db anyway!