Silverblue should use Flatpak user repos by default

Currently, Silverblue uses Fedora’s flatpak repo as a system repo.

I believe this is unfavorable because of two main reasons.

  • It slows down gnome-software because of extra calls needed and if a user-repo is installed, it needs to build collect metadata twice.
  • System flatpak repos make development of flatpaks harder because flatpak-builder doesn’t let you install things you make with --install flag, the --user flag is needed but then you will end up with double the runtimes or extensions which is undesirable.

This would become very difficult to manage on a multi-user system, especially since each individual would be responsible for upgrading and maintaining their apps. Also, I tend to prefer the system/user divide in development, as it makes breaking stuff a lot less spooky.

I think most people are not on multi-user system but even then, do most multi-user systems use the same applications? It’s not like Flatpaks require reboots either so I’m not entirely sure why it would be an issue :thinking:

I also don’t quite understand why it makes breaking stuff less spooky. I mean, unless you work on runtimes and extensions?

The system/user installation preference is not the major issue with Fedora/Flatpak fragmentation, nor is it hard to configure anyway.
Beyond that, one may also specify additional installations, besides these two, and handle them independently of each other.

The issue with Fedora’s builds is they’re often less polished and lack plugin support.
Packages distributed by Fedora being built by Fedora is a requirement and that’s probably the main driver behind the existence of this whole repo as Flathub itself is also pretty much RedHat driven anyway.

1 Like

Is the reason that system is used by default to be able to update apps for all users on one go? I understand that this might make sense for managed computers like in enterprise but makes no sense for a family sharing a computer or other personal computing use cases.

Is there some document/group responsible for this decision where I would be able to chime in?

Would it be possible to default to to user installation and allow corporate users to chose system during fedora install? Corporate users will probably thoroughly tweak the installation anyway, so this might be a good way to give home users saner defaults.

A lot of people using SSD root + HDD home fs configurations would also be affected by this suggestion as their --user installed Flatpaks would be loaded from the HDD, which doesn’t feel like a sane default.

1 Like

That’s a great reason for this, so thanks for pointing this out.

In any case, for users with a single hard drive, arguably most users, the change in this default will be an improvement. Advanced users which spend the time to manage partitions and different hard drives could also decide by themselves where do they want their flatpaks installed without bothering less advanced users, which may not have the knowledge or interest to take this decision, hence my proposal to change this default.

Other option is that the install process defaults to user install but changes to system if the user assigns mount points manually, or maybe a warning can be added if the case that you expose is detected by the installer so the user can choose to change where to install flatpaks by default.

In any case, I am thinking about this problem looking for the most sane default for the non-technical user, which I hope we agree is the user we need to keep in mind when setting defaults if we want to expand the Fedora (and in general Linux) user base.

Why is that? I’ve yet to read any groundreaking issue with --system that would render this change desirable.

Sure, not everyone has an HDD mounted on /home, but a substantial amount of people do, far more than the ones who would use flatpak-builder imho, plus the latter’s users are more likely to be advanced users who’d easily figure out stuff on their own, whereas affected newcomers would just assume Fedora is laggy.

The Gnome Software issue mentioned in the OP is indeed important, but only affects users explicitly mixing installations and besides that, Gnome Software also happens to be buggy as hell regardless of Flatpak.

From my recent experience with switching to --user only, It happens to be significantly better. I’m unsure how a system-only experience would be however, I suspect the extra calls with system install would still make for a worse experience.

Worth mentioning that I did not consider multi-user systems since I had never met someone using Silverblue in that scenario and I had not considered multi-drives systems because in my mind, default is the automatic install which only does one drive.

I think one issue with this conversation is the lack of data. It’s hard to tell how many systems are multi-user or use multiple drives or simply auto-install on a single drive.

I guess with that in mind, it would be fine to keep the current default even if I think it’s badly suited for single-user systems on single drives.

I think an option in the installer is likely to be ignored and require too much work for the benefits it would give. I’ll just have to make a mental note to myself to make sure to remove all system flatpak repos from my systems after install.

I think something that would be incredibly useful too would be a command in flatpak itself to move all currently installed applications are repos from a system-install to user-install and vice-versa. This would require admin privileges to avoid a single user to make bad decisions on a multi-user system.