Home RSS icon Posts RSS icon Microblog

Probably not going to be able to package Snippet Pixie for the elementary 6 AppCenter

Today I published a rather sombre Always Developing session to YouTube. In it I go over how far I've managed to get with my attempt to package Snippet Pixie as a Flatpak.

Creating a Snippet Pixie Flatpack for elementary OS 6 AppCenter: Part 6 | Always Developing #50

As you can tell from this post's title, and first sentence, it's not looking good for getting Snippet Pixie packaged up using Flatpak, and therefore it's unlikely to make it into elementary OS 6.0's AppCenter.

elementary OS 6 Odin Available Now

This is a shame as I really like elementary OS, and I especially like what the elementary project is trying to do to encourage Linux application development via a number of initiatives, including the AppCenter. And elementary OS 6 is fantastic, the amount of work that has gone into it is mind boggling, it is a truly beautiful release that all involved should be extremely proud of.

However, the new AppCenter requires curated applications to be provided as Flatpak packages, and unfortunately Snippet Pixie uses a couple of technologies that the Flatpak sandbox will not allow as they have the potential to be abused.

I've made no bones about the fact that I prefer Canonical's more flexible Snap package format over Flatpak, and very much wish elementary could have used Snap instead, but given their criteria I totally agree that Flatpak is the correct choice for the AppCenter.

elementary AppCenter + Flatpak

It's just unfortunate that Flatpak does not have the equivalent of Snap's "classic" confinement which allows for an application to be distributed as a Snap but does not impose a sandbox on it. Snap has this "classic" confinement (i.e. not confined) mode to enable certain classes of application to be distributed which Snap's current sandbox features can't yet support, or may never support. I guess that's one of the main strengths of Snap, because there is a single Snap Store managed by a trustworthy company (Canonical, makers of Ubuntu), they have the ability to vet an application that needs to break out of the sandbox to ensure it is safe. This is different to Flatpak which does not have a single source of packages (even though flathub is effectively the de-facto single source), and so the Flatpak project can't vet each package for trustworthiness. You could argue that each repository of Flatpaks should verify each new package and determine whether its permissions are appropriate, but the Flatpak project can't stop a nefarious repository from springing up that distributes compromised versions of apps. So I understand why the Flatpak project is reticent to allow various potentially dangerous sandbox permissions, or enable a non-sandboxed mode.

Therefore Snippet Pixie is very unlikely to make it into the elementary OS 6.0 AppCenter. It is however available via the Snap Store, and nixpkgs.

Snippet Pixie on the Snap Store

Snippet Pixie on Nix Packages

In the future I may explore other means of distributing Snippet Pixie. I haven't as yet tried packaging it as an AppImage, and given that up until elementary OS 6.0 the AppCenter has been using Debian packages, maybe I should investigate whether packaging for Debian is a goer too. 🤷️

I may also explore using different technologies for building Snippet Pixie seeing as I no longer have a strong incentive for using the technology stack that elementary promotes. There are some definite shortcomings in the way I built Snippet Pixie that I'd like to address now that I know better, maybe a Snippet Pixie 2.0 rewrite in a different language could be on the horizon? Having said that, the whole Vala + GTK + Granite thing is pretty sweet, there definitely could be a case made for just improving what's already there?

Subscribe to my Always Developing YouTube channel to find out what I do next with Snippet Pixie!

Always Developing on YouTube

---

"Probably not going to be able to package Snippet Pixie for the elementary 6 AppCenter" was published on August 10, 2021.

~/