I was tasked with summarizing the proposal for Flathub Flatpaks and the surrounding discussion.
I tried to capture the most important arguments and attribute them to sources.
The discussion is long and split over multiple locations, so I apologize in advance if I got something wrong or missed something important. Corrections and clarifications are welcome. I’ll update this doc. Comments in quotes in brackets [like this] are mine.
The proposal
The current proposal is [1], “proposal v2”.
The main part is:
Allow image based Fedora Desktop outputs (and only those),
to self-determine if they want to
make use of filters on the Fedora flatpak repository for pre-installed Fedora Flatpaks
and enable verifid floss [verified_floss] subset FlatHub by default.
This is a dense sentence, so let’s discuss some points:
-
Effectively, most Fedora Flatpaks will be hidden by default, not shown to users who search using
flatpakorgnome-software. -
Users can restore full Fedora Flatpak visibility by a config change. It’s not clear to me if this will be a simple toggle or a more complicated procedure.
-
For this change to have good UX, FlatHub must be enabled by default, because otherwise would see an almost empty “app store”. This is against the existing policy (Making sure you're not a bot!) so that policy would need to be adjusted.
The third-party nature of the repository must be apparent to the
user when they enable it, as should the non-free status of its
content, if such. To ensure this, repository files must initially
include the enabled=0 (or equivalent) setting, and the user must
explicitly enable third-party repositories to install from them. -
This Proposal limits this to image-based desktop outputs. This is certaily a prerogative of the Change Owner to limit it like this. But the Workstation WG is already considering an identical change. Flatpaks are definitely crucial for image-based outputs, but are also used on package-based installs. I also think that we have to assume that whatever decision is made here will set the policy for other outputs. It doesn’t make much sense to allow flathub flatpaks in only some deliverables.
If output maintainers choose to enable Flathub by default, they must use flatpak filters to ensure the the Fedora Flatpak remote is used for all pre-installed user applications (the ones pre-installed from the ISO and the runtimes).
This requirement for pre-installed flatpaks is for legal reasons and to ensure our control over the basic deliverable.
Fedora contributors may package any application as Fedora Flatpak, but those Flatpaks will not be made available immediately to user of the desktops that have Flathub enabled by default, unless they are preinstalled applications.
Users that want to have access to all Flatpaks from Fedora can remove the filter or add an additional remote definition that the filter doesn’t apply to.
Outputs making use of this filter are expected to provide a disabled and unfiltered remote definition for Fedora Flatpaks
This is item 2. above. The details of how this would be implemented haven’t been specified.
What is changing and why
The main stated motivation for the change is [1]:
- Less confusion for Fedora users who expect to use Flathub applications
This needs clarification. When using commandline flatpak, the choice is explicit and impossible to miss. KDE Discover shows the source prominently. But even Gnome Software shows the source and allows a choice to be made for each installation. The dropdown that shows this is fairly small, but it is there. So the users already could make the choice, but the default was to use Fedora Flatpaks and the option wasn’t prominently visible.
verified_floss means [11]:
Verification is the process by which Flathub and developers confirm that an app is published by the original developer or an authorized party.
It does not mean that the flatpak is built from source. There is no mechanism or even statistics what percentage of flapaks is just rebundling [3, 14].
As a minor aside, I’m not sure if verified apps can depend on non-verified runtimes.
[3]:
a few applications on Flathub are built on non-Flathub infrastructure, notably Firefox and OBS Studio. It would be better to build everything on Flathub’s infrastructure to reduce risk of infrastructure compromise, but as long as this practice is limited to only a few well-known applications using trusted infrastructure, then the risk is lower and it’s not necessarily a serious problem.
After some discussion, the v2 Proposal was amended to use verified_floss.
But a lot of interesting applications are outside of that subset.
E.g. in [6] a user lists the apps the are using from Flathub (blender, spotify, signal, proton mail bridge) — none are in verified_floss.
I think it is possible that users will still be confused why they cannot find those apps.
[2] handles this explicitly:
Fedora can safely enable the floss subset by default, and replace the “Enable Third-Party Repositories” button with an “Enable Proprietary Software Sources” button that would allow users to switch from the floss subset to the full Flathub if they so choose.
A number of people (me too) have made proposals along those lines:
Jens P> Personally I am more in favor of giving users the option at install time or during initial setup to select Flathub. By that I mean they could chose if they want to just use the default Fedora Flatpaks or select to use Flathub as their preferred remote source (perhaps the actual UI should be to allow changing the priority order of the remotes). This would be more consistent IMO: defaulting to Fedora but allowing users to choose flathub easily if they want that.
John H> At this point, I believe it would be best to simply allow the flathub remote to be enabled by default and indicate to the user clearly what the difference is and how to verify in the desktop environment what version of software they have. There could also be a short tutorial, notification pop-up, etc. just after installation.
Safety and security
In general, flatpaks use limited sandboxing.
E.g. [4]:
Almost all popular apps on Flathub still come with filesystem=host or filesystem=home permissions, in other words, write access to the user home directory (and more) so all it takes to escape the sandbox is trivial
echo download_and_execute_evil >> ~/.bashrc. That’s it.
I looked at the list of most popular flatpaks on flathub (1st page [7]), and all are listed as “unsafe”.
There is also the question of runtimes.
Fedora uses a rolling release of Qt and other runtimes and flatpaks are forced to work with it. This is a double-edged sword. OTOH, this seems to be source of breakage, when the app doesn’t work or work well with the latest upstream. OTOH, on Flathub, “994 out of 3,438 apps are currently using an EOL runtime”. When combined with the lack of sandboxing, this is problematic.
[8] > The “KDE” runtime on Flathub follows QT minor releases. Their wiki states “Once a new Qt minor version is released we will wait one month for marking the previous -2 branch as EOL”. The KDE runtime maintainers are telling users and developers that they have a stable, supported QT runtime for 12 months. This presents the appearance of a KDE-maintained LTS release of QT.
[8] > The problem is, no one is actively maintaining that release. If I report security flaws in QT (and I have), the maintainer will backport a fix from a newer QT minor release. But no one is actively monitoring QT in that runtime for CVEs.
[8] > Today, one of the most visible reasons that it looks like Flathub decouples applications from the base OS lifecycle better than Fedora does is that the KDE runtime is shipping an insecure, unmaintained QT release, while Fedora ships QT as a rolling release, because that’s the only secure way to ship QT.
Nevertheless, I think this is a good counterargument:
JPL> The fundamental difference is who is choosing. When upstreams choose to publish a flatpak they are making a statement as to which runtime they support. The fedora flatpaks as constructed right now are not upstream choices.
In [2], proposals how to improve this on Flathub have been made, in particular changing the Flathub policies. But no such changes have been made.
[2] is also a year old at this point, but it didn’t embrace flathub without reservation:
Flathub has a few serious problems, and needs to make some policy changes before Fedora enables it by default.
Flathub is, frankly, not safe enough to be enabled by default in Fedora Workstation today.
Lack of source and build system provenance […] This is a serious problem, and it would be unacceptable for Fedora to embrace Flathub before it is fixed.
Lack of separation between FOSS, legally encumbered, and proprietary software: this is not a real problem. Flathub already has a floss subset […] Desktop users invariably wish to install encumbered software;
Lack of systemic upgrading of applications to the latest runtime […] This is a serious problem, and it would be unacceptable for Fedora to embrace Flathub before it is fixed.
Lack of coordination of changes to non-runtime dependencies: this is a difference from Fedora, but it’s not necessarily a problem.
Lack of systemic community engagement: it’s silly to claim that Flathub has no community. Unresponsive Flathub maintainers are a real problem, but Fedora has an unresponsive maintainer problem too, so this can hardly count as a point against Flathub.
The proposal in [2]:
- Open source software must be built from source on trusted infrastructure.
- Applications must not depend on end-of-life runtimes.
- Applications must use flatpak-external-data-checker to monitor bundled dependencies wherever possible.
- Sandbox holes must be phased out, except where this is fundamentally technically infeasible.
Little progress has been made on 1, 2, and 4, and 3 has seen limited adoption.
Legal support
The maintainers of each image-based desktop output are empowered to make a choice to enable Flathub by default or not.
We already have a legal decision that its allowed from a compliance standpoint.
Not much to add here. We are allowed to do this.
Architecture support
Concerns have been raised that flathub does not provide flatpaks for all architectures.
Going one by one:
-
Arm32: we have dropped support for arm32 in Fedora, so this is not a concern.
-
Aarch64: it seems flathub has fairly good support:
Jaiden R> We don’t ship Fedora Flatpaks downstream in Ultramarine,
but we don’t have the same needs as Fedora. We support x86 and
aarch, and Flathub offers the majority of their packages for aarch. -
PowerPC: no support and no plan for it. PowerPC is our primary architecture and we have desktop deliverables (KDE) and they see use.
-
Risc-V: no support, no clear plan. Even if Fedora/RH helps flathub with infra, I think it’s unlikely that the majority of apps wiill be built for Risc-V quickly.
One suggestion made was:
Whenever a Flathub app is not available for ARM, we should allowlist a Fedora Flatpak for that app if one exists, so the Fedora version takes precedence over the Flathub version (preferably on all architectures).
This would make the proposal moot, because PowerPC is a primary arch.
Also “based on updated CLE discussion […], RISC-V primary arch enablement is currently anticipated to be 15 to 18 months out”.
So we have to assume that we’ll need to use the Fedora Flatpaks and allow different sources on different architectures.
Also, [Michael C] “RISC-V users will still have access to RPMs. They just might have a hard time if trying to use an immutable system”. I think this is a valid point. Early RISC-V boards are going to be underresourced, so using package-based installations and rpms makes sense. I think image-based RISC-V installations are not an immediate concern.
Upgrades and retirement
This is a complicated topic and I’m sure I missed some parts of the discussion.
In short, if a remote provided a flatpak and stops doing that, the user is never moved to another source and keeps the obsolete version.
any application allowed through the preinstall filter can never be disallowed
since doing so breaks their ability to receive updates
(unlike DNF, there is no mechanism for auto-switching sources,
handling package retirement, removing obsolete software, etc. for Flatpak).
There was a discussion whether the preinstall filter would be expected to change often. It turns out that Gnome default apps change regularly (~1–2 per release):
Mike B> But then again, what are the chances that an app appearing in the filtered remote, as per this change proposal, would be retired a few releases later, given that these Flatpaks would mainly be GNOME core apps?
Neal> pretty high (F44 Change Proposal: Filter Fedora Flatpaks Atomic Desktops v2 [SelfContained] - #39 by ngompa)
Neal> GNOME Console would have to remain in our filter list permanently.
Also, the Proposal states
Users that are using Fedora Flatpaks may have to enable the full fedora flatpak remote to keep receiving updates.
This raises a risk: without the explicit action, users will be stranded with obsolete versions of apps outside the filtered subset. I think the Proposal needs to address this.
Fedora flatpaks and attracting contributors
Fedora Flatpaks continue to fail to attract interested developers. The quality is lower than Flathub.
This is hard to quantify. Actually often the reason is that the underlying rpm is missing features. Obviously, Fedora has strict rules about codecs and licensing. So the shortcoming might not have to do anything with the flatpak part. But users don’t care about this, they want the app that works.
The Proposal doesn’t mention this, but I think this is one of the crucial reasons why users like flathub. It offers more software with less restrictions. This is fine, but I think we should be open about this.
Gordon Messmer in [5] raises the issue that to become a flatpaker, once needs to be in @packager. But [15] only lists “new package”, “comaintainer”, “adopt orphaned” as possibilities. So we ask potential maintainers to learn and to commit to something that is unrelated to flatpaks. We could attract more Fedora flatpak contributors is we relaxed this policy.
OTOH, flatpak fixes often require .spec changes, so flatpakers would also need to know rpms and build them. So some nuance is needed here, but we should consider relaxing the policy.
MJG> I just wish it’d be easier (or clearer, maybe it’s easy already) to build a Fedora flatpak along with your rpm package even if you don’t use it yourself, similar to how you build rpms for a ton of architectures which you’re not going to use either (as the standard one-arch-packager).
More philosophical concerns
A number of comments expressed dissatisfaction with Fedora hiding its own outputs.
(“Fedora hiding its own outputs from users is a pretty dark signal”).
It’s not entirely clear if it would be possible to show Fedora Flatpaks but with lower priority.
[2] discussed a number of arrangements, so “filtered fedora > flathub floss_verified > unfiltered fedora” could maybe be an option. Maybe this should be discussed more as an alternative to the current form of the Proposal.
[8] > Furthermore, while Flathub enables upstreams to build and distribute their software in a way that all may easily consume it, as far as Free and Open Source Software is concerned, that does not preclude others from doing the same. In other words, just because a FOSS upstream has their preferred packaging does not negate or counteract the rights of downstreams to distribute their own packages of the same software in line with the license which the upstreams have themselves freely chosen.
[8] > Unfortunately, this has been forgotten or ignored by certain upstreams, which, now being empowered to build and ship their projects themselves, suddenly believe that nobody else should distribute their software, and have even become outright hostile to downstreams in general.
[2] > Feedback from Fedora’s user base has been clear: among users who like Flatpaks, Flathub is extremely popular. When installing a Flatpak application, users generally expect it to come from Flathub. In contrast, many users of Fedora Flatpaks do not install them intentionally, but rather by accident, only because they are the preferred software source in GNOME Software. Users are often frustrated to discover that Fedora Flatpaks are not supported by upstream software developers and have a different set of bugs than upstream Flatpaks do. It is also common for users and even Fedora developers to entirely remove the Fedora Flatpak application source.
JPL> I could argue that an expansive reading of the existing packaging policy concerning justification of downstream patches which is supported by the principle of upstream first would imply that anytime we are not preferring the verified upstream flatpak that should require an exceptional justification process.
I think this is completely bogus. In general, Fedora’s raison d’etre is to take upstream software and package it. Both licensing and standard practice allow this. I agree with the sentinment expressed in [8] above. We might want to start using 3rd party packaging, but it is certainly our right to use our own.
JPL> I do not expect everyone to agree with regard to the benefits. This is why the proposal is explictly opt-in.. not a requirement for all outputs.
I think this is not a good argument. Because the choice is made at some SIG level, but of course individual users have their preferences too, and in this area those preferences don’t need to be aligned with the SIG choice at all. User choice is an important consideration too.
JPL> flatpak as a technology is meant to be federated, and how we are approaching that isn’t really working for that. If it were working we wouldn’t need a filter to resolve the conflict inherent in what should be additive non-interfering application choice.
Arguably the proposal with a filter isn’t federation either. In fact, it could that we’re going from a more federated system to a centralized system with a single gatekeeper, akin to properietary app stores. Federation is clearly hard, but improvements in the UI could also make it better.
Handling of the proposal and comments on the proposal itself
Jef raise the problem that FESCo hasn’t voted on the v2 proposal quickly. This is a valid point — contributors should be able to expect a resolution within a reasonable time frame, and this hasn’t happened here. The discussion has mostly died down at least two weeks ago.
Here are the reasons which I think contributed to this:
- the topic is surprisingly complex and we’re all a bit tired: the people who want to use flathub, the people who prefer our flatpaks, FESCo members, etc.
- we had a FOSDEM and F44 Beta in the meantime, so people were busy
- the v2 proposal avoids criticizing Fedora flatpaks, but of course since we are switching from our thing to something external, the question “why, what is wrong with our thing” is only natural. Various people have raised this in the discussion. Actually, v1 of the proposal was open in this regard: it enumerates a bunch of shortcomings of our flatpaks.
- subsequently, the motivations that are listed are weak. The reader is left to guess what the actual motivations are. In the discussion thread, this was raised multiple times. I made an attempt to clarify the motiviations in this text.
- there are some important choices and tradeoffs in what is enabled in the filter. I would expect the proposal to enumerate the options and provide rationale why
verified_flossis the best choice. This is missing. - If we enable
verified_flossby default, a lot of apps will be excluded. Do we change the “enable 3rd party repositories” toggle to “enable proprietary and non-verified flatpaks”? This is also missing from the proposal.
Proposal> If FESCO is not prepared to make it explicit that floss verified flathub is allowed to be enabled, there is a fallback position where Fesco could decide to allow the filtering Fedora Flatpaks while keeping the choice to enable Flathub by default as a discretionary case-by-case policy as a compromise that allows the filter implementation to exist. This fallback decision would result in outputs where Fedora users would be asked to choose to enable the flatpak remote(s) they want to rely on for additional software treating the full Fedora and Flathub as peer remotes.
I don’t understand this.
Proposal> Contingency deadline: Beta/Final freeze
The idea here is to make a choice ![]()
JPL> So the opt-in filter is a compromise that we can implement right now, while we figure out the full technical solution and restructure our flatpak offerings so that they are not in direct conflict with upstream efforts.
JPL> This is no getting around that this proposal is a compromise. A compromise that is implementable within the existing constraints that reduce the heat and friction between different points of view inside the existing Fedora contributor base about the interplay between upstream first policy and the mandate to provide an integrated solution as part of Fedora.
This is from the discussion. I think it’d be helpful if this was part of the Proposal. Also, if this is a compromise for current technology, what is the long-term plan?
[1] https://fedoraproject.org/wiki/Changes/FilterFedoraFlatpaksAtomicDesktopsv2
[2] https://blogs.gnome.org/mcatanzaro/2025/07/21/fedora-must-carefully-embrace-flathub/
[3] https://hackmd.io/@travier/rJCQMdZBee “List of Flatpaks on Flathub apps not built from source”
[4] https://flatkill.org/2020/
[5] https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/message/PMUCDS26MOHHIG3VEGTSRMQYWGMDWK52/ “Recruiting flatpak maintainers”
[6] https://discussion.fedoraproject.org/t/f43-change-proposal-filter-fedora-flatpaks-for-atomic-desktops-self-contained/157262/5
[7] https://flathub.org/en/apps/collection/popular/1
[8] https://yselkowitz.github.io/blog/2025/02/25/the-case-for-fedora-flatpaks.html
[9] https://docs.fedoraproject.org/en-US/flatpak/tutorial/ (not referenced in the text, just interesting)
[10] https://src.fedoraproject.org/flatpaks/blender/blob/stable/f/container.yaml (not referenced)
[11] https://docs.flathub.org/docs/for-app-authors/verification
[12] https://docs.flathub.org/docs/category/for-app-authors (not referenced)
[13] https://github.com/skyler544/minus-one/blob/main/build_files/ensure-flathub.sh (not referenced)
[14] https://pagure.io/fedora-workstation/issue/492
[15] https://docs.fedoraproject.org/en-US/fesco/Packager_sponsor_policy/#requesting_sponsorship
Last edited by @zbyszek 2026-03-10T13:48:49Z
Last edited by @zbyszek 2026-03-10T13:48:49Z