From Fedora Project Wiki

Filtered Flathub Applications

Summary

Enabling third-party repositories will now create a Flathub remote that is a filtered view of Flathub.

Owner

Current status

  • Targeted release: Fedora Linux 35
  • Last updated: 2021-06-29
  • FESCo issue: will be assigned by the Wrangler
  • Tracker bug: will be assigned by the Wrangler
  • Release notes tracker: will be assigned by the Wrangler

Detailed Description

Note that this proposal is about user experience, procedures, and technology - the high-level concept has already been discussed and approved by the Fedora Council and FESCO.

Enabling third-party repositories will now create a Flathub remote that is a filtered view of Flathub. This means that applications on Flathub that have been explicitly approved (by a new process proposed here) will be available in GNOME Software and on the flatpak command line. If the user follows following the instructions on https://flatpak.org/setup/Fedora/, then the filter is removed, and the user gets a full view of Flathub.

Roughly speaking, the criteria for including software is a) will not cause legal or other problems for Fedora to point to b) does not overlap Fedora Flatpaks or software in Fedora that could easily be made into a Flatpak c) works reasonably well. For Fedora 35, We expect to include all software from the top 50 most popular applications on Flathub that meet these criteria plus selected other software of interest to the Fedora target audience - Fedora community members are welcome to propose additions.

Already reviewed: Zoom, Microsoft Teams, Skype, Bitwarden, Postman, Minecraft
Other likely software from the top 50: Discord, Anydesk, WPS Office, OnlyOffice, MasterPDFEditor, Slack, UngoogledChromium, Flatseal, WhatsAppQT, GreenWithEnvy

The expectation is that many included applications will be things that are hard or impossible to package in Fedora - proprietary applications, Electron-based applications, and so forth. This is consistent with the third-party software policy, and does not reflect a change from what we do currently with third-party repositories.

Fedora Workstation Issue: #108 Add selected Flathub apps to the third-party repos

Conformance to Fedora policies

The goal here is to be in conformance with the Fedora Third-Party Repository Policy. The current form of this policy was explicitly written and approved with the filtered view of Flathub being one of the use cases. See https://pagure.io/fesco/fesco-docs/pull-request/34

In detail, this proposal meets Key requirements for third-party repositories. We consider each application included in the filter as a separate "mini" repository

Third-party repositories must be approved by an active Fedora working group or SIG, or by FESCo. Groups who approve the inclusion of third party repositories must have a documented process which allows for community input, which produces a traceable history for each decision (for example, a ticket or other record).

The traceable process is filing a merge request to https://pagure.io/fedora-flathub-filter/

Additionally, repositories included in an edition or spin’s third-party repository list must conform to the following requirements:

  • Just as with any software hosted by Fedora, third party repositories must not contain material that poses an undue legal risk for the Fedora Project or its sponsors. This risk includes, but is not limited to, software with known patent issues, copyright issues, or software tailored for conducting illegal activities. Fedora working groups should evaluate if a proposed addition or provider poses a significant risk, and if in doubt, confer with Fedora Legal for advice.

This is done for each pull request to the fedora-flathub-filter repository.

  • Changes made by one Edition or spin should not impact other Fedora editions or spins.

Each spin has the ability to include filtered view of Flathub or not. We do not foresee having *separate* filters for different spins.

  • Working groups and SIGs should maintain oversight over the software that is made available through third-party repositories, to prevent unvetted software being made available to Fedora users. As part of this, third-party repositories should allow easy auditing by Fedora Legal. This requirement implies that third-party repositories should limit themselves to a small number of packages, or that measures should be put in place to define which packages are made available from a particular repository by default.

The filter is a "measure ... to define which packages are made available".

Technical implementation

  • The fedora-third-party script added by Changes/Third_Party_Software_Mechanism will also include support for Flatpak repositories.
  • A new package fedora-flathub-repository will be added with a configuration file /etc/fedora-third-party.d/flathub.conf and a file /etc/flatpak/filters/fedora-flathub.filter that is referenced by the flathub remote when created.
  • The filter is maintained by the scripts and procedures in https://pagure.io/fedora-flathub-filter/ - additions correspond to pull requests.
  • If the user explicitly installs Flathub, by, for example, following the instructions on https://flatpak.org/setup/Fedora/, then the filter is removed, and the user gets a full view of Flathub. (This is standard behavior already implemented in the Flatpak client)

Feedback

Benefit to Fedora

Fedora users who opt-in to third-party software repositories will have immediate access to more software out-of-the-box.

Scope

  • Proposal owners
    • Add flatpak support to the fedora-third-party script
    • Add a fedora-flathub-repository package that is built from the output of fedora-flathub-filter and integrates with the fedora-third-party repository package.
  • Other developers:
    • No actions needed
  • Release engineering: #10187
    • No actions needed
  • Policies and guidelines: N/A (not needed for this Change)
  • Trademark approval: N/A (not needed for this Change)
  • Alignment with Objectives: No significant alignment

Upgrade/compatibility impact

The expectation is that:

  • If the system already has a flathub remote installed, nothing happens, whether or not the user has opted-in to third-party software.
  • If the system does not have a flathub remote installed, and the user opts-in to third-party software at upgrade time, then the filtered-in apps are then available.

How To Test

  • On a fresh install or upgrade, if the user opts-in to third-party software, applications such as Skype are visible in GNOME Software and flatpak search.
  • On a fresh install or upgrade, if the user does not opt-in to third-party software, applications such as Skype are not visible in GNOME Software and flatpak search.
  • If https://flatpak.org/setup/Fedora/ is followed before upgrade, the remote remains unfiltered.
  • If https://flatpak.org/setup/Fedora/ is followed after upgrade, the remote becomes unfiltered.

User Experience

Fedora users who opt-in to third-party software repositories will have immediate access to more software out-of-the-box.

Dependencies

This depends on Changes/Third_Party_Software_Mechanism

Contingency Plan

  • Contingency mechanism: remove the dependency of fedora-workstation-release on fedora-flathub-repository
  • Contingency deadline: release candidate
  • Blocks release? No - the contingency plan could be used at any point

Documentation

The review process is described at https://pagure.io/fedora-flathub-filter/

Release Notes

With Fedora 35, if the user opts-in to third-party software repositories selected applications from https://flathub.org are now available by default in GNOME Software, in KDE Discover, and on the Flatpak command line.