Flathub and Fedora Flatpak repos installed at the same time

Hello, this is mostly a general question to the guys who maintain Silverblue, how this thing will properly work

So I assume at some point Silverblue will get Fedora Flatpak repos preinstalled and possibly with some apps from there too. To my understanding Fedora Platform and Fedora SDK contain both GNOME and Freedesktop SDKs and Platforms

I also assume that most of Fedora users will install Flathub too, which will lead to have several Flatpak Runtimes, that not only that will reserve extra disk space, but they will also require very large and often updates too (that is already annoying). Is that a wanted behavior?

I noticed and a different issue. I installed GNOME Characters from Fedora

GNOME Characters - Character map application

          ID: org.gnome.Characters
         Ref: app/org.gnome.Characters/x86_64/stable
        Arch: x86_64
      Branch: stable
     License: BSD-3-Clause AND GPL-2.0+
      Origin: fedora-testing
  Collection: 
Installation: system
   Installed: 1.1 MB
     Runtime: org.fedoraproject.Platform/x86_64/f29
         Sdk: org.fedoraproject.Sdk/x86_64/f29

      Commit: 6e5a13cb22959117248b956a8762dfbdb66a28d699d521bc2b8952db566cec43
     Subject: Export org.gnome.Characters
        Date: 2019-03-22 11:52:09 +0000
      Alt-id: 18564f138f1de36c1284fc6a6f07e9789ed7dbc1a6e23097224a8aa6d637551a

Now if for some reason we want to get GNOME Characters from Flathub, we can’t

flatpak install flathub org.gnome.Characters

error: org.gnome.Characters/x86_64/stable is already installed from remote fedora-testing

And of course all this adds more complexity to the user, plus perhaps makes bug reporting more tricky too, since we have to report against different runtimes (eg Fedora Vs GNOME)

Thoughts?

2 Likes

Good thoughts. I think it should give an error if you already have it installed from another repository IMO. Then you need to uninstall the existing one and then install the new one. I think there should be a way to set the default primary repository to install from. For sure having most of the common applications preinstalled from Fedora would help avoid some of these conflicts. However, I would not want it to install the kitchen sink either. So what is the right set of default apps to install?

I thought you were able to have multiple versions of the same flatpak app on a system, I mean that is one of the features of Silverblue was the way I understood it.

You can have multiple copies of a Flatpak if they use different IDs or are in different installations, but not multiple copies of the same Flatpak with the same ID on the same installation.

Yes, that much I understood. So if a Fedora flatpak package is the same as the package offered by flathub, there should be no problem that Fedora’s ref takes precedence over flathub on Fedora Silverblue IMO.

but what if the version is different on Fedora OCI than Flathub? can they guarantee sync?? and in any case if Fedora has their own Flatpak Repos, Purism its own, Elementary it’s own, and why not GNOME making its own too (which actually makes sense), then whats the point of Flathub? for Ubuntu that is using Snaps? :stuck_out_tongue:

i mean why maintainers/authors will upload in Flathub, if they have to support more stores with the same apps?

Okay so this link https://docs.fedoraproject.org/en-US/flatpak/tutorial/ you can see how Fedora flatpaks are made. According to that the following is part of the process to make a flatpak, their example is feedreader, which is available on flathub as well. The example uses this command to start the process of making a flatpak Fedora’s way $ fedmod rpm2flatpak --flatpak-common --flathub=feedreader feedreader
According to the documentation --flathub=feedreader option causes fedmod rpm2flatpak to check if there is already a feedreader flatpak made, if so use that. So I guess that leaves developers to choose where they want their respective flatpak’s “living”, either Fedora’s repo or Flathub. It also obviously takes care of mitigating some of the potential for sychronisation errors.

So that sounds okay to you? first go to Flathub, submit your app there, and then point Fedora OCI there? I dont know, but if every single distro does that, then we’ll go back exactly where we begun with packaging, and none author will ever get bothered, but instead we’ll have maintainers to do the packaging, whenever they remember it…

and as you know, it already works hard (app authors dont submit) with Flathub, so imagine if you gave them extra work…

Well,
It’s not what “sounds Okay to me”, just what is at this point in time. I didn’t come up with the concept, I’m just trying to use it. I like to (but don’t always get the chance) give everything a good honest try before I go and offer up my opinion of it. Now if you have experiences with packaging already, then you are likely more acutely aware of issues around flatpaks on Fedora than I. I followed that tutorial to make a flatpak of IntelliJ’s IDEA IDE and I got it to work. That tells me it is doable, but not how efficient it is.

Unless you’re member of JetBrains team, that only shows the actual issue, that original authors don’t submit, and my debating is that the extra repositories for the exact same stuff, will make the platform (Flatpak) less attractive

2 Likes

That is a valid point for sure. It tends to muddy the water for the users.

I was wondering if Fedora made Flatpaks can be added to Flathub. Is that possible? Not sure of the reason why Fedora wants to have a separate repository. As long as the package is built and signed with Fedora keys, it could be validated anyway. I would think this could be automated with the Fedora build system somehow.

1 Like

mmorrell2016

I was wondering if Fedora made Flatpaks can be added to Flathub. Is that possible? Not sure of the reason why Fedora wants to have a separate repository. As long as the package is built and signed with Fedora keys, it could be validated anyway. I would think this could be automated with the Fedora build system somehow.

So we can have a pre-installed flatpak repo and programs. There are people who would be very unhappy with pre-installed Flathub since it contains proprietary software.

Here some arguments (apart that Flathub includes Free Software too)

  1. Ubuntu+Ubuntu based have massive user-base, they include drivers and other proprietary things on repos, and I never read a single complain for it. In fact, “working out of box” is one of the main reasons Ubuntu gained all this popularity at first place

  2. When Fedora OPT-OUT Chrome and NVIDIA repos, I only saw very positive comments, and again I can’t recall a single complain. In fact even Fedora desktop team was very happy about that. At least many guys I know of

  3. As long as proprietary software is OPT-OUT, the license is clearly mentioned on GNOME Software, and it is the choice of a user to install it, I don’t see anything going against Fedora FS policies

Sure there are such people, but I don’t find “smart” to make unhappy 90/100, just to please 10/100 of Fedora users, and in line to make Linux desktop less accessible (aka usable) for people

I can understand that Red Hat wants to “control” the software they ship for the enterprise installations (mostly in RHEL), but I opened this question on Fedora Silverblue that targets regular desktop requirements, and thus I believe the policies and goals here should be different

Flathub has already a very good team of maintainers, it gets good community support (users and companies like Endless), and it would be for everyone’s benefit if Fedora supporting it, by defaulting it; and of course this is how appStores works everywhere else. My opinion of course

5 Likes

That’s probably just a shortcut, so that you don’t have to write all of the metadata yourself, but the flatpak will be different.

I think it’s unlikely that distributions will use flathub as a source for their core applications anytime soon. There might be licensing issues, the proprietary repos in Workstation are limited to a handful of applications and OPT-IN, but it’s probably also a question of (quality) control. You’d have to enable and use a repository that you don’t control.

And I don’t think the situation is that bad. Yes, people might have to use more than one repository and more than one runtime but there still are advantages. You don’t have to host all applications on flathub to reduce fragmentation. Linus Torvalds can now build a flatpak of his diving software, host his own repository or put it on fltahub, and everyone will be able to use it.

This might lead to a reduced set of applications in the repositories provided by the various distributions, but I don’t see any big distribution giving up control of the core applications they’re shipping.

Indeed it will, although in this case it would still be based upon the same version of RPM that the flatpak hosted on Flathub is made from. I didn’t mean to imply this was entirely distro agnostic, I was more pointing out that it is what appears to be the intended path for Fedora as the Fedora flatpak repo evolves.

I don’t think Distros need to provide everything OOTB. I know that sounds counter to what everyone likes to think of as the acceptable user experience. I just don’t feel that is the ‘place Fedora lives’ or any of the Linux based distributions live for that matter. I have always appreciated the effort the Linux developers (and I am talking in general here) put into making apps/tools/utilities that do one thing but do it well. How those things get tied together is largely a decision that is best met by the user themselves. In the Fedora world it’s ‘Freedom, Friends, Features, First’ that doesn’t mention comfort of use. Although their Mission and Foundations page does say this…

The Fedora Project is a community of people working together to build a free and open source software platform and to collaborate on and share user-focused solutions built on that platform.

So it’s first with features, and that will inevitably mean growing pains when new features are introduced, such as flatpaks.

Convenience is just one argument, even though I think most people expect an OS to ship with certain apps. Without a browser, a filemanager and a terminal even power users will be unhappy and then you are already forced to decide which flatpak repo(s) you want to activate by default. Other reasons are licensing issues and trust in the ability of the maintainers to reliably ship updates, keep track of CVEs etc.

According to this video from DevConf Fedora isn’t comfortable with enabling flathub by default because of licensing, so there has to be another source for default apps.

And there is another DevConf video about the general state of Flatpak in Fedora. The short version seems to be that the Fedora Project aims to do it better.

With flathub it will be the same as with rpmfusion or ppa/copr-repositories. Distributions will ship their own flatpak repository with core stuff and apps tailored to their distribution and if a user isn’t happy with that offering, one can add flathub or other repos provided by some upstream. The difference is just that these repositories aren’t distro-specific anymore so everyone can use them.

2 Likes

I find the fact that Flathub includes proprietary applications to be a very very lame excuse to build your own. In stead of building a competing repository, why not just create a “free/proprietary software” AppData boolean + repository filter query that’s set to free-only by default on Fedora so that the user is required to explicitly and manually enable access to proprietary applications?

But there is a browser (Firefox), a terminal (RXVT) and a filemanager (Nautilus) on a bare bones Fedora Silverblue installation.

Yes, but these are part of the rpm-ostree image and should be replaced with flatpaks. And these flatpaks will, as it stands, come from the fedora repository.