https://fedoraproject.org/wiki/Changes/Filtered_Flathub_Applications

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


== 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
<code>flatpak</code> 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<br>
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:
[https://pagure.io/fedora-workstation/issue/108 #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
[https://docs.fedoraproject.org/en-US/fesco/Third_Party_Repository_Policy/
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
[https://docs.fedoraproject.org/en-US/fesco/Third_Party_Repository_Policy/#_key_requirements_for_third_party_repositories
Key requirements for third-party repositories]. We consider each
application included in the filter as a separate "mini" repository

<blockquote>
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).
</blockquote>

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

<blockquote>
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.
</blockquote>

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

<blockquote>
* Changes made by one Edition or spin should not impact other Fedora
editions or spins.
</blockquote>

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

<blockquote>
* 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.
</blockquote>

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

== Technical implementation ==

* The <code>fedora-third-party</code> script added by
[[Changes/Third_Party_Software_Mechanism]] will also include support
for Flatpak repositories.
* A new package <code>fedora-flathub-repository</code> will be added
with a configuration file
<code>/etc/fedora-third-party.d/flathub.conf</code> and a file
<code>/etc/flatpak/filters/fedora-flathub.filter</code> that is
referenced by the <code>flathub</code> 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)


== 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: [https://pagure.io/releng/issue/10187 #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.


-- 
Ben Cotton
He / Him / His
Fedora Program Manager
Red Hat
TZ=America/Indiana/Indianapolis
_______________________________________________
devel-announce mailing list -- devel-announce@lists.fedoraproject.org
To unsubscribe send an email to devel-announce-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel-announce@lists.fedoraproject.org
Do not reply to spam on the list, report it: 
https://pagure.io/fedora-infrastructure

Reply via email to