Signal-desktop won't start on MX Linux 19

This is a fresh install of MX Linux 19. I’ve booted into systemd mode, which is needed for snapd to run properly. I have some other snaps (like wormhole) installed and they work fine. Just not signal-desktop.

Here is the error message I get when I try to run signal-desktop from the command line:

$ signal-desktop 
Set Windows Application User Model ID (AUMID) { appUserModelId: 'org.whispersystems.signal-desktop' }
NODE_ENV production
NODE_CONFIG_DIR /snap/signal-desktop/189/resources/app.asar/config
NODE_CONFIG {}
ALLOW_CONFIG_MUTATIONS undefined
HOSTNAME undefined
NODE_APP_INSTANCE undefined
SUPPRESS_NO_CONFIG_WARNING undefined
userData: /home/xxx/snap/signal-desktop/189/.config/Signal
config/get: Did not find user config file, cache is now empty object
Unhandled Error: Error: /run/user/1000/snap.signal-desktop/.org.chromium.Chromium.CDtLsS: failed to map segment from shared object
    at process.func (electron/js2c/asar.js:155:31)
    at process.func [as dlopen] (electron/js2c/asar.js:155:31)
    at Object.Module._extensions..node (internal/modules/cjs/loader.js:828:18)
    at Object.func (electron/js2c/asar.js:155:31)
    at Object.func [as .node] (electron/js2c/asar.js:164:18)
    at Module.load (internal/modules/cjs/loader.js:645:32)
    at Function.Module._load (internal/modules/cjs/loader.js:560:12)
    at Module.require (internal/modules/cjs/loader.js:685:19)
    at require (internal/modules/cjs/helpers.js:16:16)
    at bindings (/snap/signal-desktop/189/resources/app.asar/node_modules/bindings/bindings.js:112:48)
Unhandled Error
Error: /run/user/1000/snap.signal-desktop/.org.chromium.Chromium.CDtLsS: failed to map segment from shared object
    at process.func (electron/js2c/asar.js:155:31)
    at process.func [as dlopen] (electron/js2c/asar.js:155:31)
    at Object.Module._extensions..node (internal/modules/cjs/loader.js:828:18)
    at Object.func (electron/js2c/asar.js:155:31)
    at Object.func [as .node] (electron/js2c/asar.js:164:18)
    at Module.load (internal/modules/cjs/loader.js:645:32)
    at Function.Module._load (internal/modules/cjs/loader.js:560:12)
    at Module.require (internal/modules/cjs/loader.js:685:19)
    at require (internal/modules/cjs/helpers.js:16:16)
    at bindings (/snap/signal-desktop/189/resources/app.asar/node_modules/bindings/bindings.js:112:48)

Thanks for the report.

What’s the output of snap version?
Do any other desktop apps such as discord work?

$ snap version
snap 2.42
snapd 2.42
series 16
debian 10
kernel 4.19.0-6-amd64

I’m working on downloading obs-studio, which is a desktop snap I use. I don’t use Discord.

I think I have additional relevant details for you. Since MX Linux doesn’t use systemd by default, but rather sysvinit, it logically follows that they don’t make any special efforts to help snapd work gracefully either (since snapd relies on systemd).

For example, after installing snapd, /snap/bin was not added to the PATH or either my user, nor the root user. So I added lines like:

export PATH="/snap/bin:$PATH"

…to the .bashrc of both my user and the root user.

Then when running bash interactively, as my user or the root user, snap doesn’t complain about the PATH.

But snap will still complain about /snap/bin not being in the PATH if I use snap as follows (as my non-root user):

sudo snap something

…because bash got used non-interactively for the root user. So just “sudo su -” to root, then run

snap something

…right? Wrong. Now any attempt of snap to put a graphical thing on the screen will fail (and I vaguely recall such complaints go by when signal-desktop was first installed). Why? Because “xhost +” wasn’t used by my non-root user, and “export DISPLAY=:0” wasn’t used as the root user. It seems snap really, really likes to be run using the “sudo snap something” method, so that graphical things won’t fail, in this way.

Now that a bunch of dependencies for signal-desktop are installed, am I going to need to remove --purge them all, and try this all over again, with more carefully tweaked environment variables for my user, and the root user? What should I be putting into .bashrc’s, etc. for my non-root user, and the root user?

I installed obs-studio, and mumble, and they work fine. I installed them by running the following commands, as root:

snap install obs-studio
snap install mumble

I also tried, as the root user:

snap remove --purge signal-desktop
snap install signal-desktop

…and still I get the same error message as above.

Same problem here on POP OS (Ubuntu) but using KDE… something is not right. signal-dektop does not give any output. it just exits immediatley.