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: otaylor@xxxxxxxxxx == 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 mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx 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@xxxxxxxxxxxxxxxxxxxxxxx Do not reply to spam on the list, report it: https://pagure.io/fedora-infrastructure