Skip to content

Appimage Animation Audio Support

Eoin O'Neill requested to merge (removed):qtmultimedia-appimage into krita/4.3

This is a work in progress to get Krita's audio system working within an AppImage context. The proof is in the pudding though, so here's a link to a working appimage with animation audio.

As described in our Phabrictator post, Emmet and I did the following major steps to get this functional:

  • QtMultimedia needs to be added to the cmake arguments inside of the 3rdparty/ext_qt (iirc), building them on the build factory so we can wget during docker setup. (Currently, I'm building krita from source in the docker environment.)

  • linuxdeployqt cannot automatically/bundle GStreamer or any of our GStreamer plugin dependencies. We need to install those via dockerfile, and then (inside the docker) install them into our AppDir/ manually. Also, we need to add a couple of AppDir-relative GStreamer path environment variables inside Krita's main.cc.

  • For whatever reason, we're having difficulty getting linuxdeployqt to automatically bundle the required mediaservice qt plugin even when it's manually added to the AppDir. To workaround this, we've removed linuxdeployqt's -appimage argument, which causes it to simply wrangle our deps into the AppDir, and then we're building the appimage as a separate step using the appimagetool program. We're not exactly sure why this is the case, it may just be a bug with linuxdeployqt but the workaround isn't so bad. (It's also not as complicated as I'm making it sound.)

We might want to filter out some GStreamer plugins to get a cleaner, leaner AppImage. That's not majorly urgent, though.

Remaining Tasks

  • Cleanup build_image.sh script to have minimal-necessary changes. Some elements are still there from when I was struggling with linuxdeployqt to include some libraries.
Edited by Eoin O'Neill

Merge request reports