I'm using the AppImage from the PR with no sound playback.
Terminal_log.txt
My box is running Fedora 26
@GuessWhatBBQ you mentioned in #3712 the following information:
Found a very stupid error on my part. Lmms defaulted the hardware device to null (I think anyway) which most likely turned invisible to my eye. Closing
What information can you provide about your setup? E.g. how is your desktop sound configured?
Also, for those that don't normally use Jack, can you give simple steps to reproduce, including how you configured your system, expected results and actual results?
Also, this bug will be merged with #3688 once we can reproduce.
I use qjackctl-0.4.4-2.fc26 with jack-audio-connection-kit-1.9.10-8.fc26 in my 64 bit Fedora workstation.
The steps I used are


2.Then run the AppImage in my terminal with this output
[guesswhatbbq@localhost Software]$ ./lmms-1.2.0-rc4.59-weakjack-linux-x86_64.AppImage
Notice: could not set realtime priority.
VST sync support disabled in your configuration
Cannot lock down 107335194 byte memory area (Cannot allocate memory)
Cannot use real-time scheduling (RR/15)(1: Operation not permitted)
JackClient::AcquireSelfRealTime error
no physical playback ports. you'll have to do connections at your own!



This terminal log is output when I run the AppImage without first starting a JACK server where lmms itself starts a server without making any connections as before and no luck.
@GuessWhatBBQ sorry if I've asked this already, but can you see if the WeakJack implementation that's been added to https://github.com/LMMS/lmms/pull/3688 corrects this? A download link is available in the first post. Edit: I see you've already linked the weakjack build in your original bug report. Can you try again for good measure please?
Nope still doesn't work.Jack works fine in the compiled version.I can't get any sound in the AppImage(Even under ALSA).
./lmms-1.2.0-rc3.89-linux-x86_64.AppImage
Notice: could not set realtime priority.
VST sync support disabled in your configuration
/usr/bin/jackd: /tmp/.mount_lmms-1DjanPn/usr/lib/libdbus-1.so.3: no version information available (required by /usr/bin/jackd)
Cannot create RT messagebuffer thread: Operation not permitted (1)
Retrying messagebuffer thread without RT scheduling
Messagebuffer not realtime; consider enabling RT scheduling for user
no message buffer overruns
Cannot create RT messagebuffer thread: Operation not permitted (1)
Retrying messagebuffer thread without RT scheduling
Messagebuffer not realtime; consider enabling RT scheduling for user
no message buffer overruns
Cannot create RT messagebuffer thread: Operation not permitted (1)
Retrying messagebuffer thread without RT scheduling
Messagebuffer not realtime; consider enabling RT scheduling for user
no message buffer overruns
unknown option character l
/usr/bin/jackd: /tmp/.mount_lmms-1DjanPn/usr/lib/libdbus-1.so.3: no version information available (required by /usr/bin/jackd)
jackdmp 1.9.10
Copyright 2001-2005 Paul Davis and others.
Copyright 2004-2014 Grame.
jackdmp comes with ABSOLUTELY NO WARRANTY
This is free software, and you are welcome to redistribute it
under certain conditions; see the file COPYING for details
Cannot create RT messagebuffer thread: Operation not permitted (1)
Retrying messagebuffer thread without RT scheduling
Messagebuffer not realtime; consider enabling RT scheduling for user
no message buffer overruns
Cannot create RT messagebuffer thread: Operation not permitted (1)
Retrying messagebuffer thread without RT scheduling
Messagebuffer not realtime; consider enabling RT scheduling for user
no message buffer overruns
Cannot create RT messagebuffer thread: Operation not permitted (1)
Retrying messagebuffer thread without RT scheduling
Messagebuffer not realtime; consider enabling RT scheduling for user
no message buffer overruns
`default' server already active
Failed to open server
jack_client_open() failed, status 0x11
Could not connect to JACK server.
No audio-driver working - falling back to dummy-audio-driver
You can render your songs and listen to the output files...
ALSA lib pcm_dsnoop.c:638:(snd_pcm_dsnoop_open) unable to open slave
ALSA lib pcm_dmix.c:1099:(snd_pcm_dmix_open) unable to open slave
ALSA lib pcm.c:2501:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2501:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2501:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib pcm_dmix.c:1099:(snd_pcm_dmix_open) unable to open slave
/usr/bin/jackd: /tmp/.mount_lmms-1DjanPn/usr/lib/libdbus-1.so.3: no version information available (required by /usr/bin/jackd)
Cannot create RT messagebuffer thread: Operation not permitted (1)
Retrying messagebuffer thread without RT scheduling
Messagebuffer not realtime; consider enabling RT scheduling for user
no message buffer overruns
Cannot create RT messagebuffer thread: Operation not permitted (1)
Retrying messagebuffer thread without RT scheduling
Messagebuffer not realtime; consider enabling RT scheduling for user
no message buffer overruns
Cannot create RT messagebuffer thread: Operation not permitted (1)
Retrying messagebuffer thread without RT scheduling
Messagebuffer not realtime; consider enabling RT scheduling for user
no message buffer overruns
unknown option character l
ALSA lib pcm_dsnoop.c:638:(snd_pcm_dsnoop_open) unable to open slave
ALSA lib pcm_dmix.c:1099:(snd_pcm_dmix_open) unable to open slave
ALSA lib pcm.c:2501:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2501:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2501:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib pcm_dmix.c:1099:(snd_pcm_dmix_open) unable to open slave
/usr/bin/jackd: /tmp/.mount_lmms-1DjanPn/usr/lib/libdbus-1.so.3: no version information available (required by /usr/bin/jackd)
Cannot create RT messagebuffer thread: Operation not permitted (1)
Retrying messagebuffer thread without RT scheduling
Messagebuffer not realtime; consider enabling RT scheduling for user
no message buffer overruns
Cannot create RT messagebuffer thread: Operation not permitted (1)
Retrying messagebuffer thread without RT scheduling
Messagebuffer not realtime; consider enabling RT scheduling for user
no message buffer overruns
Cannot create RT messagebuffer thread: Operation not permitted (1)
Retrying messagebuffer thread without RT scheduling
Messagebuffer not realtime; consider enabling RT scheduling for user
no message buffer overruns
unknown option character l
@probonopd the user is claiming JACK works fine with the compiled version but not AppImage. Logs suggest we may be bundling some dbus libraries. Could they cause these issues? I can try to remove it from the build.
This is best done by debugging it interactively with trial and error. A user who has the issue could download the AppImage, extract its content with --appimage-extract, and then delete the libraries that you suspect to cause the issue one by one. Each time run the application by executing AppRun and see whether it starts working. Probably the quickest way to debug this.
I'm willing to debug. Just need a list of the suspected libraries and maybe some sample commands.
./lmms-1.2.0-rc3.89-linux-x86_64.AppImage --appimage-extract
rm ./squashfs-root/usr/lib/... (whatever library you suspect... tresf suggests everything with dbus in its name)
./squashfs-root/AppRun # Run the app and see whether it works correctly
(rinse and repeat)
Dbus is a hunch because every modern Linux distribution ships with it, but that's why I tagged you @probonopd I figured you'd have seen this before with the hundreds of other project implementations. If not, we'll have to play some guesswork. I'm not sure if the jack team has experiencing with AppImages but they may be a good resource as well. I know falktx (kxstudio) is on the jack bug tracker. Perhaps he's worthy of a tag.
No, I haven't seen this particular issue before. rncbc also has done many AppImages of sound applications such as Qtractor, I'd assume he is very knowledgeable in this are, too. Maybe you want to ping him.
@probonopd thanks!
I can't find evidence he keeps the AppImage recipe in his source tracker. Do you have a cross-link to any of his AppImage work?
https://download.opensuse.org/repositories/home:/rncbc/AppImage/
https://download.opensuse.org/repositories/home:/rncbc/AppImage/
I saw the evidence he offered them, just no evidence of a working recipe he shared. I'll email him for pointers, thanks for the referral. :)
There are appimage.yml files on OBS for many of his projects in https://build.opensuse.org/project/show/home:rncbc.
For example, https://build.opensuse.org/package/view_file/home:rncbc/drumkv1/appimage.yml?expand=1
@probonopd thanks for sharing. This is a good starting point. He seems to just be deleting the jack dependency from the package, I think that puts him in worse condition than us (as WeakJack currently avoids the need to do this). I've emailed him in the meantime. 馃憤
Thanks. Great to see collaboration on that front. Possibly something to mention on the Desktop Linux Platforms Issues page; feel free to add it there.
He seems to just be deleting the jack dependency from the package
Indeed, this is not giving favorable results on systems without JACK:
https://github.com/AppImage/appimage.github.io/pull/128
Would https://github.com/x42/weakjack help here?
Would https://github.com/x42/weakjack help here?
Probably. Here's what the wiki for WeakJack says...
"The first call to jack_client_open() will try to find and load libjack, if it cannot be found, it will fail (return NULL and set jack_status_t if provided to JackFailure.)"
Apparently ringbuffer doesn't work though.
I was more interested in pulling the dbus libraries from the AppImage since it's a standard part of all modern linux distributions. Unfortunately, I don't know much about JACK (no pun intended).
@GuessWhatBBQ I attempted to setup a Ubuntu 14.04 VM with Jack as a baseline, but I couldn't get the Jack server to function. Next, I tried the same with Fedora 26 in a VM and qjackctl deadlocked the VM; Cadence from KXStudios couldn't detect the Jack server.
The next step is trying to reproduce on physical hardware, which I don't have, so you're our best chance of fixing this unless we have a volunteer.
Can you try the following and let us know if jack functions properly (adopted by @probonopd's instructions)?
./lmms-1.2.0-rc3.89-linux-x86_64.AppImage --appimage-extract
rm ./squashfs-root/usr/lib/libdbus-1.so.3
./squashfs-root/AppRun
# test jack
Reproduced, using Catia and a dummy Jack back-end.
It's not dbus, it's jack itself. This shouldn't be bundled with the AppImage at all, so it may have been left from a previous build.
For now, extract and remove the jack library and Jack will work.
./lmms-1.2.0-rc3.89-linux-x86_64.AppImage --appimage-extract
rm ./squashfs-root/usr/lib/libjack.so.0
./squashfs-root/AppRun
We'll fix this as soon as possible and upload a new AppImage.

So it turns out that quite a few libraries that we bundle link against libjack.so.0, so linuxdeployqt is going to continue bundling it too as it recursively searches for dependencies of dependencies.
Although WeakJack helps LMMS compile without hard-links to JACK, it does little to help the various bundled 3rd party libraries avoid the hard-linking.
Here's an AppImage that bundles Jack2 instead of Jack1 which seems to put a bandaid on the Fedora 26 issue. Next will be one with libjack.so.0 removed to see if that breaks any of the 3rd party libraries.
https://github.com/tresf/lmms/releases/download/v1.2.0-rc4/lmms-1.2.0-rc4.29-linux-x86_64.AppImage
As promised, here's the version with /usr/lib/libjack.so.0 removed from the AppImage.
https://github.com/tresf/lmms/releases/download/v1.2.0-rc4/lmms-1.2.0-rc4.30-linux-x86_64.AppImage
I haven't made a PR for this patch because it's so trivial. If it helps the situation, I'll just commit it. Testing appreciated.
diff --git a/cmake/linux/package_linux.sh.in b/cmake/linux/package_linux.sh.in
index b1f2b55..93d6ab7 100644
--- a/cmake/linux/package_linux.sh.in
+++ b/cmake/linux/package_linux.sh.in
@@ -164,6 +164,9 @@ ln -sr "$VSTBIN" "$VSTLIB"
# Remove wine library conflict
rm -f "${APPDIR}/usr/lib/libwine.so.1"
+# Remove bundled jack library
+rm -f "${APPDIR}/usr/lib/libjack.so.0"
+
# Create AppImage
echo -e "\nFinishing the AppImage..."
echo -e "\n\n>>>>> appimagetool" >> "$LOGFILE"
@tresf fails to run on a stock Ubuntu 14.04 with usr/bin/lmms.real: error while loading shared libraries: libjack.so.0: cannot open shared object file: No such file or directory.
This currently prevents LMMS from being included in the AppImageHub central directory of available AppImages.
Some sort of wrapper is needed that would at least show a GUI dialog box telling the user what to do, otherwise users launching this via the menu will just see nothing at all and think it is entirely broken. For example, a small wrapper could be written in Qt that would check for the existence of libjack.so.0 and would inform the user what to do if it is missing, otherwise launch lmms.real.
@probonopd can you test this one out? https://github.com/tresf/lmms/releases/download/v1.2.0-rc4/lmms-1.2.0-rc4.96-linux-x86_64.AppImage
Added some creative logic via https://github.com/tresf/lmms/commit/cefe47bafa90a3e37a4d8c169d7922a4756bf2ff
Yay! Looking good. Thank you very much.
https://github.com/AppImage/appimage.github.io/commit/d76534efceb8f13378f368f69eeb736435b0fa1d
@GuessWhatBBQ can you please test JACK with the latest installer on your system?
https://github.com/tresf/lmms/releases/download/v1.2.0-rc4/lmms-1.2.0-rc4.96-linux-x86_64.AppImage
Yup AppImage works right out of the box with JACK. Kudos @tresf. Closing
Here's the terminal output:
./lmms-1.2.0-rc4.96-linux-x86_64.AppImage
Jack appears to be installed on this system, so we'll use it.
Notice: could not set realtime priority.
VST sync support disabled in your configuration
Cannot lock down 107335194 byte memory area (Cannot allocate memory)
Cannot use real-time scheduling (RR/15)(1: Operation not permitted)
JackClient::AcquireSelfRealTime error
Most helpful comment
Yup AppImage works right out of the box with JACK. Kudos @tresf. Closing