Click Clack (Flatpak?)

Forcing Lomiri to Face the Music

    About a week ago I posted a Mastodon poll asking people what packaging system they use for their GUI apps. The poll unsurprisingly came out about 50/50 between system packaging formats and Flatpak, with Snap and… compiling from source… getting just a few points. This is unsurprising why? Flatpak has been a growing form of distribution for user-facing programs for the Linux desktop. I say Linux desktop instead of a specific desktop like GNOME or KDE because Flatpak aims to be desktop and distro agnostic. While Snap says that it is distro agnostic, in reality it is heavily tied to both systemd and Canonical, taking an Ubuntu-first approach to desktop apps.

Click it!

    I bring Flatpak vs Snap up because recently it has been announced that Lomiri will be integrating Snaps in-line with the rest of the Ubuntu desktop. An interesting point brought up in that article written by the amazing @fredldotme is that Lomiri’s Click packages were a precursor to modern Snaps. (If you don’t know what a Click is, it is sort-of a home-grown packaging format made for Ubuntu Phone that creates Android-like permission controls for Linux apps using AppArmor.) Obviously, if that is the case, the next move would be to move towards using Snaps themselves as Clicks are the older option.

Oh Snap!

    The move towards using Snaps (or at least enabling them, since I am unsure what the UBports devs plan to do past enabling) is obviously a good one. Not only will Ubuntu Touch be much more interoperable with the wider Linux desktop, it will also be able to package the Lomiri apps for Snap, and thus allow them to run on other Linux distros that support Snap. The issue is that, at least in my small data set of my own followers, a lot of people seem to prefer Flatpak. You are probably thinking to yourself, “Okay, why not just package the apps as Flatpaks and install them using that format?”. Sadly, it isn’t that simple.

The Lomiri Problem

    Lomiri is an inherently flawed desktop for non-Ubuntu-Touch usage. There, I said it. The security model of Lomiri is finely tuned to work specifically with Ubuntu and AppArmor, but not with much else. While I have done my best to adjust this model for Alpine, and thus postmarketOS, there is still a lot to be desired. This security model is designed specifically to be able to run Click applications in AppArmor permission “boxes”, where they cannot touch an immutable file-system. This model does not work well with any package format other than Clicks. At the moment, .apk (Alpine Linux) packages work alright; they are still not as integrated, and may never be integrated, as well as Clicks. Because postmarketOS doesn’t use AppArmor for security (nor have the dependencies that Click packages expect), Lomiri on postmarketOS cannot install packages as Clicks.

    With Snaps, the UBports team is having to work to adjust how Snaps work and how the security model accompanies them for them to work properly with Lomiri. Efforts are being done to integrate Snaps into Lomiri just as well as Click apps. While this is great for Snap users, those who use Flatpaks will be left with the realization that they cannot even launch on Lomiri. Due to how Lomiri launches programs, the security model sees Flatpaks as a violation of security and kills them before they can even launch fully.

Your point is…?

    I am planning on getting Flatpaks to integrate into Lomiri.

WHAT?????

    I cannot tell if your reaction to that was annoyance that I have not fixed XYZ yet or excitement at the prospect of getting Flatpaks running on your favorite desktop. The reason I want to get Flatpaks working is two-fold. First, I want to be able to package Lomiri apps as Flatpaks and get them to integrate properly. While there have been efforts to get Lomiri apps running as Flatpaks, it hasn’t gotten far. My second reason for wanting to get Flatpaks to work on Lomiri is to prevent Lomiri from becoming even more entrenched in Ubuntu’s pseudo-proprietary environment. I really want the best for Lomiri; I want to see it up there with GNOME and KDE Plasma one day. (Okay, maybe not that high, but up there with Budgie and XFCE4.) If that is to happen it needs to support whatever the user wants to be able to do with it. If Lomiri becomes locked into Ubuntu and Debian and the like, running only packaging formats that Canonical wants it to, then Lomiri won’t seem interesting to the average user.

UBports is Awesome

    It may sound like I am doom-posting about Snaps, but promise me I am not. UBports does not have some evil agenda where they are working with Canonical to make the Linux kernel proprietary or something, they are just doing what makes sense for their platform. It is our job as users and fans of Lomiri to help develop Lomiri into what we want to see. That is why I am working on Flatpak support, because of my genuine love for Lomiri. Without UBports, Lomiri wouldn’t be where it is today, so I wouldn’t ever expect of them to take Lomiri in a direction that they wouldn’t want it to go. That is the wonder of open-source software. We, the users, can have a say in what happens with a project (within reason) by helping that project become better.

Conclusion

    Flatpak support is a must if Lomiri is to become one of the great desktops of the Linux world, and I plan to help make that happen.