Nitrux ❤ AppImage
So, 1.0.6 is out and the highlight is the removal of Snap support in the NX Software Center. The obvious question is why we removed support for Snaps from it.
Let’s begin with: While we removed support for Snaps from the software center you still can install and manage Snaps in Nitrux. You just won’t be able to do so using a nice UI, you will have to do it from the terminal.
The NX Software Center was created with the intention of serving portable apps such as Snaps, however it hasn’t gone without it’s fair share of difficulties. At first were the libraries that we had used: libsnapd-glib and libsnapd-qt, which at the time had very early support for Qt so in order for us to use them and create a Qt front-end we had to patch them. Eventually our changes made their way into upstream and both libraries were available in the Ubuntu repositories with the updated code.
As we continued to update the software center we came across another problem: We couldn’t create a Snap store of our own.
What does that mean, it means that the only official way to get a Snap is through the Ubuntu Store (read: repository). Say we wanted to create our own platform to serve Snaps, well we can’t because the server-side software needed to do that is not publicly available to use by 3rd parties (like us). That doesn’t mean you can’t install a Snap that doesn’t come from the Ubuntu Store however, you can, in the same way you can install an APK in Android (read: sideload). But like in Android it isn’t a good idea to do so because of security concerns.
We understand why that is the way it is (that there’s only a single sanctioned store), but it really was a downer.
From then on we really didn’t had any more problems in relation to the software center up until the past few days prior to this release when libsnapd-qt was mostly unusable. The library unfortunately isn’t actively maintained which is a huge problem for us and so when Qt was updated to 5.9.2 our software center simply wouldn’t work.
In the meantime we had been working on integrating AppImages to the NX Software Center. In Nitrux version 1.0.5 this integration had been fully added. Unlike Snaps, AppImages don’t require to set up a (single, proprietary, sanctioned) Store to download them and they also don’t need something like a daemon to work although we do use one to manage them from our UI, they also don’t require connecting Snaps with other Snaps (plugs) an AppImage while larger in size can have all of its dependencies inside a single file, in our case this is very important because packaging Snaps of KDE apps was ultimately futile but we managed to package KDE apps with AppImage. Concerning sandboxing we used firejail to provide the layer of security that might be missing from not getting an AppImage from a “sanctioned store”.
But best of all is that the library we use — libappimage is actively maintained, in fact it was created by one of our own developers, Alexis in tandem with the AppImage team.
Right now the software center offers the same functionality as it did when it had Snap support, installing, managing and removing AppImages. The Store UI components were removed since they were designed for Snaps categorization; noticed that empty app category? well that’s because web apps (which are also packaged as Snaps) used those categories. The Snaps that were listed on the software center were the non-webapps Snaps like Blender, Inkscape, etc.
To finalize: We will be working on restoring the UI to accommodate for AppImages instead of Snaps, continue our work with the AppImage team and reach out to other 3rd parties like Opendesktop.org to work with them on a web store or improving the one they might already have.
In other words, Nitrux ❤ AppImage.