Linux is the reason Windows apps are bloated these days

https://discuss.tchncs.de/post/50468743

Electron is the only cross platform gui toolkit…

If you ignore QT, GTK and everything else.

I’m so glad that Microsoft makes an awesome cross platfor— wait, no, but they contribute code to— hmmm … Hey, what does Microsoft do to make apps more portable again?

Flatpak
AppImage
Snap

Hell, let’s not forget
Python
Perl
Java
POSIX

The first 3 are Linux only. It’s irrelevant.
Also each is pretty bad in terms of usability and practicality, either losing integration because “containerized” or taking GBs of space or both
AppImages can get quite large because each app is self-contained, but the “losing integration” part is nonsense these days for any of these formars. That’s why we have portals, and if those aren’t enough you can still give the app full permissions.
Appimages are usually quite reasonable in size, it’s Flatpak that usually require 2/3 GB per app since every package has its own version of KDE/Gnome or other runtimes so every app still has to download a new one.

That’s simply not true, if the required dependencies are already downloaded they get used by every Flatpak app. If you have three apps requiring the Gnome 46 libs those only exist once.

I don’t know where this myth about Flatpaks always being gigabytes in size originates from or why it’s so persistent, but it’s wrong.

I’m not saying that’s not true.

I’m saying I’ve almost never downloaded a Flatpak that didn’t require a new dependency downloaded.

When I removed all my flatpk some time ago, I had: Steam, Viking, Discord, FreeCad and Flatseal to manage them. All of them and their dependencies used something arounx 17 GB of disk space (most of which was of course several versions of dependency runtimes), and that was after I removed all the unused runtimes that forn some reason it doesn’t remove after I uninstall or they are upgraded.

I’m sure if I installed more Flatpaks, some dependencies would eventually be reused, but you still need a good collection of them at any given time. So in pracrice you still need a lot lf space unfortunately.

In my experience the issue is different flatpaks depending on different versions of gnome platform or mesa or whatever, so you have multiple versions of the same library.

I have plenty of storage though so I don’t care that much.

I don’t know where this myth about Flatpaks always being gigabytes in size originates from or why it’s so persistent, but it’s wrong.

Alright, here is ~25 GUI apps flatpak vs appimage:

  • 6 GiB flatpak.
  • 2.7 GIB appimage.

If you do not have such filesystem (ext4), then it is more like 15 GIB vs 2.9 GiB lol.

This comparison is missing the flatpak equivalents of kdeconnect, deadbeef and a few CLI tools that I have on right btw, flatpak-dedup-checker for some reason doesn’t check the /var/lib/flatpak/repo directory which is usually another +1GiB in best case scenario.

losing integration because “containerized”

Bollocks. I’ve seen that many times with Flatpak (can’t speak for Snap), and every single time it was either because the packager failed to set up permissions or because the user messed with permissions that the application needed. Break off the tip of a screwdriver and it will no longer function as a screwdriver.

And I know you’re talking out of your ass because AppImage isn’t even sandboxed.

taking GBs of space

That part is true and accurate, and for a very good reason: dependency pinning. System packages can break if they don’t have the correct versions of shared libraries. If a package requires a very old version of a library, and doesn’t link it statically or supply it with the package, it can misbehave, have missing features, or refuse to even start. Flatpak (and probably Snap too, can’t speak for it) solves that by letting the packager specify (pin) the exact version of a dependency. If five separate packages require five different versions of the GNOME application framework, then they will download five separate packages of the correct version. AppImage solves it by being monolithic: everything is packaged together into a single executable.

I don’t know if it’s still the case, but up to a couple of years ago, Flatpak was configured so that externally mounted folders were not accessible. I discovered that when Steam on flatpak refused to install games on my hdd, and it was quite frustrating to figure out how to enable it.

Snaps integration is even worse as I’ve seen browser extensions state they straight don’t work on snap’s browsers. Also desktop integration on gnone (even files drag and drop between snaps) are broken on the ubuntu installations I tried.

yet they still miss a central package repository, and that’s a big problem.

github.com/ivan-hc/AM

GitHub - ivan-hc/AM: AppImage Package Manager: AppImage sandboxing, local and system installation, update all AppImages, an extensible database of AppImages and portable apps, lists for AppImages and other GNU/Linux binaries, integrate AppImages by drag/drop or install unlisted AppImages, conversion of old AppImage types... and more! Manage AppImages like never before!

AppImage Package Manager: AppImage sandboxing, local and system installation, update all AppImages, an extensible database of AppImages and portable apps, lists for AppImages and other GNU/Linux bi...

GitHub
It’s a package repository, but I would hardly call it “central”

Well, upstream is now considering either merging or just pointing to the AM repository because it is bigger and better maintained.

github.com/AppImage/appimage.github.io/…/3595

Make this a community effort? · Issue #3595 · AppImage/appimage.github.io

tl;dr: Let's consider to make this repository a true community effort, or merge/replace it with another. Some history first. A long time ago, I invented the AppImage file format so that I (and you!...

GitHub
That’s good, AppImage is still my favourite of the “distro-agnostic” package systems and I think it really is missing a central repository solution.
losing integration because “containerized”

Bollocks. I’ve seen that many times with Flatpak (can’t speak for Snap), and every single time it was either because the packager failed to set up permissions or because the user messed with permissions that the application needed. Break off the tip of a screwdriver and it will no longer function as a screwdriver.

Well then I guess you haven’t tried to get a password manager like KeepassXC to work with a Flatpak browser, because none of the solutions I’ve seen are “fix the permissions”.

From what I’ve read it seems you shouldn’t run a browser as a flatpak anyway, as this somehow weakens the built-in isolation.

I think I originally read about this somewhere librewolf-related but can’t seem to find it now.

I did find this similar discussion: https://discuss.privacyguides.net/t/correct-way-to-install-browsers-on-linux-securely/27046/6

Correct way to install browsers on Linux securely?

Does not interfere with the sandbox You can use Snaps on other distros, for example on Arch. Simply layer the browser with ostree or similar. That’s not always true. There is an official Flatpak for Firefox, yet it does not have the same sandboxing as via non-Flatpak installation. Same for Tor Browser Launcher Flatpak.

Privacy Guides Community
Flatpak is good. I say that as both a user of them and a dev of applications that are published as flatpaks.
I like having options