Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Flatpak integration #1251

Closed
orowith2os opened this issue Mar 5, 2023 · 1 comment
Closed

Flatpak integration #1251

orowith2os opened this issue Mar 5, 2023 · 1 comment
Labels

Comments

@orowith2os
Copy link

orowith2os commented Mar 5, 2023

Some Flatpak integration would be useful to AppImage since Flatpak is cross-distro (bundling glibc and some more common libraries that a host system might not contain), provides a stable ABI in it's runtime, and has sandboxing (it also sets XDG base directory variables, so apps don't clutter the home folder). Both AppImage and Flatpak are commonly used by projects, so some Flatpak integration in AppImage would help in distribution, since packagers then have an idea of what the application would need of the package.

Features that Flatpak integration would provide are as follows:

  • A stable runtime, and more cross-distro portability than before. It would also be more efficient than bundling everything with an AppImage.
  • Sandboxing, so app files are separate from the home folder and don't conflict with native apps, and apps only have access to what they need.
  • Easy to use, as there aren't any dependency issues on the host system. If the user has used Flatpak, AppImage will work too.
  • Space efficient, since most dependencies are contained in flatpak runtimes. Any dependencies bundled in an AppImage won't be subject to deduplication like Flatpak has, but this is a pretty decent alternative.
  • Easier Flatpak packaging, as AppImages would now define what permissions they need on the end users system.

This would mean that some projects, like QT helpers for AppImage, may become obsolete as they could just use the org.kde.Platform. It would also help address some use cases Flatpak doesn't support, such as portable and runnable application binaries.

Closes #152, #171, #225, #452, #839, #992. Possibly #116 as most every Linux distribution that's not Ubuntu supports Flatpak.

@probonopd
Copy link
Member

probonopd commented Mar 5, 2023

That approach is like running another OS (with supposedly stable APIs and ABIs) on the real OS, futher removing pressure on Linux distribution vendors to align on anything in order to create a sane platform. Worse, that "other OS" can be a different version for different applications, adding a lot of required space if you want to keep many AppImages, including old versions. Most crucially, it would break the ease of use that comes from the principle that AppImages must not depend on anything that is not there on most mainstream distributions by default. To illustrate this point: If I want to archive an application today, all I need to keep is the AppImage file plus one Live ISO of a Linux distribution that can run it. With the suggested approach, how could I even be sure that the required runtimes are still available 10 years down the road?

So, this approach would degrade AppImage user experience by introducing many of the same downsides that Flatpak has.

If you really want to be independent from the OS, the way to go is to bundle everything inside the AppImage, down to (and including) glibc.

@AppImage AppImage locked and limited conversation to collaborators Mar 5, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

2 participants