Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support equivalent to dnf swap #3138

Open
vchernin opened this issue Sep 23, 2021 · 5 comments
Open

Support equivalent to dnf swap #3138

vchernin opened this issue Sep 23, 2021 · 5 comments

Comments

@vchernin
Copy link

I recently was testing Fedora 35, and run into some WirePlumber related issues. While on traditional Fedora you can use dnf swap to switch to pipewire-media-session, there is no such thing with rpm-ostree as far as I've seen.

Could a package swap feature be implemented in rpm-ostree?

@jlebon
Copy link
Member

jlebon commented Sep 24, 2021

Isn't that rpm-ostree override remove foo --install bar?

@vchernin
Copy link
Author

vchernin commented Sep 24, 2021

Thanks that worked, I've added it to the above wiki page.

Maybe that example or similar could be added under override in the man page?

@jlebon
Copy link
Member

jlebon commented Sep 27, 2021

Maybe that example or similar could be added under override in the man page?

We don't have many examples in our man pages, but we really should so 👍. Would you like to submit a patch?

@vchernin
Copy link
Author

vchernin commented Sep 27, 2021

I can defintely submit a patch for the man page!

One question though, is there a command to undo the swap? For my case to replace wireplumber with pipewire-media-session I did rpm-ostree override remove wireplumber --install pipewire-media-session which worked as mentioned above.

Later I wanted to undo that change and switch back to wireplumber. So I tried rpm-ostree override remove pipewire-media-session --install wireplumber. However this did not work:

$ rpm-ostree status
State: idle
Deployments:
● fedora:fedora/35/x86_64/testing/silverblue
                   Version: 35.20210921.0 (2021-09-21T18:37:44Z)
                BaseCommit: 0fa700f1752476c31b76ebdb894c2a89b1cbcdd9d84eea2afa1ffbdd4df5606e
              GPGSignature: Valid signature by 787EA6AE1147EEE56C40B30CDB4639719867C58F
       RemovedBasePackages: wireplumber 0.4.2-1.fc35
           LayeredPackages: easyeffects flatpak-builder pipewire-media-session

  fedora:fedora/35/x86_64/testing/silverblue
                   Version: 35.20210921.0 (2021-09-21T18:37:44Z)
                BaseCommit: 0fa700f1752476c31b76ebdb894c2a89b1cbcdd9d84eea2afa1ffbdd4df5606e
              GPGSignature: Valid signature by 787EA6AE1147EEE56C40B30CDB4639719867C58F
           LayeredPackages: easyeffects flatpak-builder
$ rpm-ostree override remove pipewire-media-session --install wireplumber
error: "wireplumber" is already provided by: wireplumber-0.4.2-1.fc35.x86_64. Use --allow-inactive to explicitly require it.

(adding --allow-inactive wasn't a recognized option here for some reason).

and neither did rpm-ostree override reset --all:

$ rpm-ostree override reset --all
Checking out tree 0fa700f... done
Resolving dependencies... done
error: Could not depsolve transaction; 1 problem detected:
 Problem: package wireplumber-0.4.2-1.fc35.x86_64 conflicts with pipewire-session-manager provided by pipewire-media-session-0.3.37-1.fc35.x86_64
  - package pipewire-media-session-0.3.37-1.fc35.x86_64 conflicts with pipewire-session-manager provided by wireplumber-0.4.2-1.fc35.x86_64
  - conflicting requests

I eventually resorted to rpm-ostree reset which worked.

Is that expected behaviour or just a quirk of how wireplumber and pipewire-media-session were packaged?

@jlebon
Copy link
Member

jlebon commented Sep 27, 2021

The inverse would be rpm-ostree override reset wireplumber --uninstall pipewire-media-session.

The --install and --uninstall switches were added exactly for this use case where you need a transactional package set modification that keeps all dependencies satisfied.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants