Flatpak packages

Issue #831 new
Felix Krull created an issue

Speedcrunch should offer Flatpak packages. Flatpak is an(other) attempt at a distribution-independent binary package format for Linux. Notably, applications are sandboxed and use shared "runtimes" that mean not every application has to ship its own copy of common dependencies.

Flatpaks can be distributed as bundle files or from a self-hosted repository, but can optionally be published on Flathub, a standard app-store-type repository.

Advantages over the current binary packages

  • Only one package (per architecture) to support a wide range of distributions rather than three.
  • Flathub provides automatic updates as well as easy discoverability from e.g. GNOME Software.
  • Better desktop integration (see KDE wiki).
  • We don't have to compile and ship our own Qt. It takes a long time to build and getting the options right so e.g. accessibility works correctly is hard. Flatpak's runtimes make this someone else's problem.

Disadvantages compared to the current binary packages

  • Requires the Flatpak tools to be installed. They are packaged on most (?) distributions and pre-installed on at least Fedora and Linux Mint.
  • Requires installing the KDE runtime which weighs in at a cool ~1.1 GB (uncompressed). This would be shared with other applications using it.

Alternatives

The big competitor is probably Ubuntu's Snap. It's also sandboxed, uses very similar management tools, and has an optional app-store-type repository. The biggest difference is that it doesn't have runtimes. There is a "core" snap but it doesn't include GUI toolkits. This also means that it doesn't have any theme support. (Edit: Snap has "reusable parts" which appear to be recipes to build common software. You're still bundling everything though.)

There's also AppImage, but it's not much more than yet another self-extracting archive format. Specifically, it has no auto-update mechanism and requires bundling all dependencies.

Rationale

Building cross-distro binaries and packages has always been possible, but it's never been good. The distribution model provides close integration because everything is built against the same libraries (and sometimes lovingly hand-patched to fit together even better); you can't compete with that if your application stands out the moment you launch it because you have to ship your own build of the toolkit so the theme doesn't match.

IMO, Flatpak is now close to as good as distribution packages in terms of OS integration, installation, update, without offloading all of that to the application developers.

(Also, yes, I'm volunteering for this, but not right now, so I'll leave it unassigned.)

Comments (7)

  1. Helder Correia repo owner

    Interesting, never heard of any other than Snap. Can't believe it's 2018 and the Linux world is still trying to solve this issue.

  2. Helder Correia repo owner

    @fk I guess you meant GitLab, not GitHub. Regardless, my user name is the same across all main Git hosting platforms (@heldercorreia).

  3. Felix Krull reporter

    @heldercorreia That's convenient, because I did in fact mean Github. The Flathub process involves requesting a Github repository. I only put it on Gitlab because it's convenient for building and downloading artifacts. Sorry for the confusion. :)

    In any case, here's the submission PR: https://github.com/flathub/flathub/pull/746

  4. skierpage

    This seems to be implemented! https://flathub.org/apps/details/org.speedcrunch.SpeedCrunch has details about SpeedCrunch, and installing from Flathub installs SpeedCrunch 0.12 and it works great in Fedora 👏 . However before closing this bug, the Installation chapter in the documentation and the Download page need to mention this. Something like

    SpeedCrunch is available as a Flatpak at https://flathub.org/apps/details/org.speedcrunch.SpeedCrunch for easy installation in most Linux distributions.

  5. Log in to comment