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

== Summary ==
Update mechanism for opting-in to "Third-Party Software Repositories"
so that the repositories are immediately enabled.

== Owner ==
* Name: [[User:otaylor| Owen Taylor]]
* Email: otay...@redhat.com


== Detailed Description ==
''''''Note that this proposal is about a change to how third-party
repositories are enabled, not about including anything new in
Fedora.'''''

Currently, when the user opts in to "Enable Third-Party Software
repositories", the` fedora-workstation-repositories` package is
installed, but with the repositories disabled.
With this change, `fedora-workstation-repositories` will be installed
by default (required by `fedora-release-workstation`), and opting in
to "Third-party Software Repositories" will actually enable the
repositories.

Fedora Workstation Issue:
[https://pagure.io/fedora-workstation/issue/105 #105 Ship
fedora-workstation-repositories on install media]

== Conformance to Fedora policies ==

[https://docs.fedoraproject.org/en-US/fesco/Third_Party_Repository_Policy/
Third-Party Repository Policy]:

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

This proposals is a new implementation of "explictly enable
third-party repositories". There is no proposed change to which
third-party repostories are shipped - and in particular this change
does not include splitting fedora-workstation-repositories to conform
to the recommendation of the current guidelines.

== Technical implementation ==

* There is a <code>fedora-third-party</code> package with a
<code>fedora-third-party</code> script with
<code>enable/disable/refresh/query</code> subcommands. The status is
stored in <code>/etc/fedora-third-party.conf</code>
* Packages like <code>fedora-workstation-repositories</code> that
include third-party repositories will drop config files into
<code>/etc/fedora-third-party.d/*.conf</code>. There will be a
post-transaction file trigger to run <code>fedora-third-party
refresh</code>, which applies the users opt-in status to newly
installed repository files.
* We add a new page to GNOME Initial Setup that asks a single
question, *along the lines of*:<br>
'''Enable Third Party Software repositories?''' <br>
☑ Access additional software from selected third party sources. Some
of this software is proprietary and therefore has restrictions on use,
sharing, and access to source code. <br>
[Find out 
more...](https://fedoraproject.org/wiki/Workstation/Third_Party_Software_Repositories)
* If the user leaves the box checked, GNOME Initial setup runs
`fedora-third-party enable`.
* For upgrades, GNOME Software shows an info-bar with the same
question if no status is stored in `/etc/fedora-thirdparty.conf`

== Feedback ==
<!-- Summarize the feedback from the community and address why you
chose not to accept proposed alternatives. This section is optional
for all change proposals but is strongly suggested. Incorporating
feedback here as it is raised gives FESCo a clearer view of your
proposal and leaves a good record for the future. If you get no
feedback, that is useful to note in this section as well. For
innovative or possibly controversial ideas, consider collecting
feedback before you file the change proposal. -->

== Benefit to Fedora ==

The main benefit of this proposal is the removal of the state where
the user has opted in to third party repositories but they are not
actually enabled. PackageKit supports the
<code>enabled_metadata=1</code> key in a repository file, which allows
applications to be searched in this state, but this is not supported
by DNF.

The new method is also easily extensible to Flatpaks, where there also
no equivalent to <code>enabled_metadata=1</code>, even in GNOME
Software.

== Scope ==
* Proposal owners: Create and test proposed
<code>fedora-third-party</code> package. Implement the graphical
controls for this in GNOME Software and gnome-initial-setup.
* Release engineering: [https://pagure.io/releng/issue/10186 #10186]
No changes are required.
* Policies and guidelines: Third-party Software guidelines will need
minor changes to remove references to `enabled_metadata=1`. Pending
finalization of technical implementation.
* Trademark approval: N/A (not needed for this Change)
* Alignment with Objectives: No real alignment

== Upgrade/compatibility impact ==
Because the "opt-in" status to 3rd party software is currently
represented by whether fedora-workstation-repositories is installed,
and because fedora-workstation-repositories will become an
installed-by-default package, users will need to opt-in again.

They can do this either by responding in the infobar that will be
displayed in GNOME Software, or by running <code>fedora-third-party
enable</code> on the command line.

== How To Test ==
* A fresh install of Fedora Workstation where the user ''does not''
opt-in should have all repositories disabled.
* A fresh install of Fedora Workstation where the user ''does'' opt-in
should have all 3rd-party repositories enabled.
* On an upgrade from F34, if the user opts-out, the enablement status
of third-party repositories should be ''unchanged'' (try enabling one
before the upgrade)
* On an upgrade from F35, if the user opts-in, all 3rd party
repositories should be enabled.

== User Experience ==
The user will get less confusing behavior around third-party
repositories - enabled will mean enabled and will take affect no
matter how they are installing packages.

See https://hackmd.io/@owtaylor/fedora-third-party-repos for a
detailed description of the *current* experience along with some notes
about the desired behavior.

== Dependencies ==
The changes are limited to the following packages:

* The new `fedora-third-party` package
* `fedora-workstation-repositories`
* `gnome-software`
* `gnome-initial-setup`
* `fedora-release-workstation` and other release packages that will
now require fedora-workstation-repositories.

This change proposal is a prerequisite for a separate change proposal
to add a filtered view of Flathub to the set of third-party
repositories.

== Contingency Plan ==
* Contingency mechanism: revert all changes back to the F34 state.
(This will also require reverting the filtered-view-of-Flathub
change.)
* Contingency deadline: beta freeze
* Blocks release? Yes - this needs to be finished or reverted

== Documentation ==
'''This should be a link to a man page for the `fedora-third-party` tool'''

== Release Notes ==
Fedora optionally provides repository definitions allowing users to
install certain third-party software. This used to be done as a
two-step process where when the user asked to enable third-party
repositories, the repository definitions were installed but not
actually enabled, and they had to be separately enabled. With Fedora
35, this is simplified so that the repository definitions are
installed by default, but only enabled if the user opts in.

If you are upgrading from an older version of Fedora, you'll need to
opt-in again - this can be done by running GNOME Software and
accepting the prompt that is shown on the initial page. Alternatively,
you can run <code>fedora-third-party enable</code> from the command
line. If you do not wish to enable third-party repositories, no action
is needed.


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