Skip to content

Xenon v4.11.2: installing and uninstalling on a Mac both finish

Choose a tag to compare

@github-actions github-actions released this 06 Aug 10:30
· 49 commits to main since this release

A patch release for the Mac. Nothing in the dashboard changed: this fixes two scripts that ran on macOS and stopped halfway through, one when installing Xenon and one when removing it.

If you are on Windows or Linux, nothing here affects you and Xenon will update itself whenever it likes. If you are on a Mac, 4.11.1 could neither install nor uninstall itself, and this is the build to have.

Fixed

Installing Xenon from the .dmg now finishes. The app opened, the setup window appeared, it found the release, downloaded it and verified its signature, and then stopped on the line right before it started copying anything, with INSTALL_ROOT: unbound variable. The window closed itself, nothing was installed, and the app sat on "Waiting for the Xenon service" forever. Nothing about it was visible from the outside.

The cause was one missing pair of braces. macOS still ships bash 3.2, released in 2007, and that version reads the bytes of the ellipsis glued to the end of a variable name as part of the name, so a message meant to say "Installing to ..." asked for a variable that does not exist, and the script is set to stop dead rather than carry on with an empty path. Every other shell handles it, including the one on Linux and the one your Terminal opens by default, which is why it only ever happened on a Mac.

Uninstalling on a Mac now works too. The same line was in the uninstaller, at the point where it stops the running dashboard, so it quit right there: no app removed, no login item removed, nothing. If you ran it in 4.11.1 and Xenon was still on your machine afterwards, that is why. Run it again from this version and it will finish the job.

Every script that ships with Xenon has been re-checked against the shell macOS actually runs them with, and a test now refuses to let that shape of line back into the project.

The full changelog is in CHANGELOG.md.