#232 silverblue: allow removal of third-party-repo packages
Closed a year ago by sgallagh. Opened 2 years ago by mershl.
Unknown source rawhide  into  rawhide

file modified
+5 -4
@@ -592,10 +592,11 @@

  Requires:       fedora-release-ostree-desktop = %{version}-%{release}

  

  # Third-party repositories, disabled by default unless the user opts in through fedora-third-party

- # Requires(meta) to avoid ordering loops - does not need to be installed before the release package

- # Keep this in sync with workstation below

- Requires(meta):	fedora-flathub-remote

- Requires(meta):	fedora-workstation-repositories

+ # Degrade Requires(meta) to Recommends to allow removal by user, but still ensure an installation

+ # by default.

+ # Keep this in sync with workstation below (Recommends instead of Requires(meta))

+ Recommends:	fedora-flathub-remote

+ Recommends:	fedora-workstation-repositories

  

  # fedora-release-common Requires: fedora-release-identity, so at least one

  # package must provide it. This Recommends: pulls in

https://github.com/fedora-silverblue/issue-tracker/issues/379 (adapted to also include fedora-flathub-remote)

fedora-workstation-repositories and fedora-flathub-remote are packages providing 3rd party non-free software repositories for gnome-software.

As of Silverblue 36 both of these packages are listed required by the meta-package fedora-release-silverblue, which makes it impossible to rpm-ostree override remove these packages on a Silverblue system.

To Reproduce:

$ rpm-ostree override remove gnome-software-rpm-ostree gnome-software fedora-workstation-repositories

error: Could not depsolve transaction; 1 problem detected:
 Problem: package fedora-release-silverblue-36-20.noarch requires fedora-workstation-repositories, but none of the providers can be installed
  - conflicting requests

Proposal
A) Move require dependency from fedora-release-silverblue to gnome-software which should still install the package by default, but allow its removal when doing it in one transaction with gnome-software.
B) Degrade Requires to Recommends relation from fedora-release-silverblue to fedora-workstation-repositories which should still install the package by default, but allow its removal.

This PR covers proposal B). Proposal A) could also cover other Fedora editions by removing Requires from all editions and rely on the dependency coming from the gnome-software package.

Feel free to modify the PR as you see fit.

Build failed. More information on how to proceed and troubleshoot errors available at https://fedoraproject.org/wiki/Zuul-based-ci

Please point to the decision of the Silverblue SIG to remove this. Packages that are required by fedora-release-$edition are considered to be "API" for that Edition. We shouldn't remove it without approval from that SIG.

To clarify: on Silverblue this change does not lead to any visible change. Recommended packages are installed by default.

Adaptions affecting other editions can be handled by a separate decision board / PR.

I think there is basic consensus on this in https://github.com/fedora-silverblue/issue-tracker/issues/379

However it was also suggested there to extend this also to Workstation itself.
So it would be reasonable to also open a Workstation WG ticket to cover that part.
Though I feel this should not be controversial: we are just allowing users the option
to remove these extra 3rd party repo configs.

One issue here: going from Requires(meta) to Recommends also changes installation ordering. I'm not certain if this will be safe to do.

The Requires(meta) directive tells RPM that the ordering doesn't matter and thus it doesn't need to be installed before the fedora-release-silverblue package. The Recommends, however, tells RPM that it should try to order it before fedora-release-silverblue, which could lead to dependency loops (in particular, fedora-flathub-remote pulls in flatpak, which in turn pulls in half the distribution).

@sgallagh the main motivation is to avoid a hard requirement from the meta-package fedora-release-silverblue to both 3rd party repo packages, to allow their removal on an rpm-ostree managed system. Do you have a suggestion how this could be achieved otherwise? What do you think about moving these requirements to their actual users (e.g. flatpak or gnome-software)?

I think the best approach would be to remove the Requires(meta) entirely and add the packages instead to the Silverblue ISO directly as part of the default installation. That would make them removable, but still installed by default.

Pull-Request has been closed by sgallagh

a year ago
Metadata