Distribute .repo files for modular repositories from a separate package
Summary
Reintroduce the fedora-repos-modular package. Have the /etc/yum.repos.d/*-modular.repo
files in it instead of fedora-repos.
We install/keep fedora-repos-modular by default, users (admins) can uninstall it if desired. No defaults are changed.
Owner
- Name: Miro Hrončok
- Email: mhroncok@redhat.com
Current status
- Targeted release: Fedora 33
- Last updated: 2020-07-10
- FESCo issue: #2412
- Tracker bug: #1852028
- Release notes tracker: #518
Detailed Description
As a Fedora user, who doesn't consume any modules, I'd like an easy way to disable modular repos to save some traffic, disk space and time.
Currently, I can do it by editing all /etc/yum.repos.d/*-modular.repo
files and changing:
enabled=1
To:
enabled=0
This has downsides: When the files are changed in next update, I won't get them updated, because they are shipped as %config(noreplace)
. (If they were not shipped as %config(noreplace)
, it would be even worse, as my changes would be overridden.) It's also multiple files. I can make mistakes and break other files by accident.
In order to not to have to resort to manually editing RPM-package shipped configuration, I propose to have a better way of disabling modular repos, namely via: sudo dnf remove fedora-repos-modular
.
In this change, we move modular repos into a separate package (subpackage of fedora-repos).
Basically revert this plus some extra comps/kickstarts changes:
https://src.fedoraproject.org/rpms/fedora-repos/c/7b32bee388d093c446017f1e33309d9b96b24e15
Current fedora-repos Pull Request:
https://src.fedoraproject.org/rpms/fedora-repos/pull-request/62
Comps change:
https://pagure.io/fedora-comps/pull-request/510
Feedback
This was proposed in early May 2020 on the devel mailing list:
The proposal received only positive feedback.
This was then opened as a pull request in:
https://src.fedoraproject.org/rpms/fedora-repos/pull-request/62
Where it received thorough review and positive feedback, until it was blocked by an unrelated modularity discussion that slightly touched this topic. FESCo sentiment was positive or neutral (however, one FESCo member doubted the usefulness of this, saying it is pointless).
https://src.fedoraproject.org/rpms/fedora-repos/pull-request/62#comment-45303
https://pagure.io/fesco/issue/2114#comment-654115 and below
Later, the spirit of this change was approved by FESCo in https://pagure.io/fesco/issue/2406
Why don't we...?
Why don't we have config overrides for system provided repo files?
It would be great if DNF supported system-repos in /usr/share
and override options in /etc
, but that is not (yet) the case. Feel free to work on this feature, but the change owner won't.
Why don't we disable modular repos by default?
This would require much bigger and heated discussion. Let it happen elsewhere. This self-contained change proposal maintains the status quo and only creates a way for users to opt out form the modular repos, when they so desire. It does not disable anything.
Why are you against ...?
This change is not against modularity, it is not against default modular streams, it is not against the people who created modularity, it is not against ELN, it is not against you. This change proposal maintains the status quo by default and only creates a way for users to opt out form the modular repos, when they so desire. The maintenance burden of having one extra repo package is considered insignificant compared to the benefit. This is not a death of a thousands cuts proposal with a hidden agenda, this is a proposal that adds a significant benefit.
Benefit to Fedora
Users who don't consume modules have the ability to disable modular repositories in a safe and supported way. This can save their traffic, disk space and time.
Container maintainers can benefit form this change as well by disabling modular repos first by a single command or not having it at all from start, if they so desire.
Package maintainers can benefit from this change by not using modular repos when repoquerying non-modular repos, if they so desire.
Mirror operators can benefit from this change by saving their traffic if the users actually do disable the repos, while there is no downside if they don't.
Scope
- Proposal owners:
- Finish and merge https://src.fedoraproject.org/rpms/fedora-repos/pull-request/62
- Ensure fedora-repos-modular are installed by default on Fedora 33 (fresh installs) via https://pagure.io/fedora-comps/pull-request/510
- Ensure fedora-repos-modular are installed by default on Fedora 33 (upgrades from previous releases) via https://src.fedoraproject.org/rpms/fedora-repos/pull-request/62
- Other developers: no action required
- Release engineering: no action required (possibly building the updated fedora-repos package if provenpackagers can't)
- Policies and guidelines: nada
- Trademark approval: zip
Upgrade/compatibility impact
It is expected that users who upgrade from previous Fedora releases will have fedora-repos-modular installed during the upgrade to Fedora 33 or 34. It is expected that rawhide users who will have fedora-repos-modular installed during regular packages upgrade.
If this is not the case, it should be treated like a bug.
How To Test
Install Fedora 33 (any edition or flavor), check that modular repos are still installed and enabled by default.
Update to Fedora 33 (from Fedora 31 or 32), check that modular repos are still installed and enabled by default.
Check that you can remove the fedora-repos-modular package (e.g. via sudo dnf remove fedora-repos-modular
) and it removes the modular repos.
Check that you can install the fedora-repos-modular package again (e.g. via sudo dnf install fedora-repos-modular
) and it adds the modular repos, enabled (unless you have previously edited the repo files).
User Experience
Users can disable or enable modular repos by removing or installing fedora-repos-modular. This is significantly better UX than editing config files.
Dependencies
No dependencies.
Contingency Plan
- Contingency mechanism: If the outlined constraints are seriously broken and beyond fixing, QA can decide to revert the change.
- Contingency deadline: Beta Freeze
- Blocks release? No
- Blocks product? No
Documentation
Documentation shall be added about disabling/enabling the modular repos.