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?

3 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.

2 Likes

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?

2 Likes

Okay so this link Packaging Tutorial :: Fedora Docs 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ā€¦

2 Likes

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

4 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

8 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?

2 Likes

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.