Switching from pipewire-media-session to wireplumber pamac tries to remove plasma

Hey everyone,

I’ve been testing pipewire for some time and almost everything works flawlessly, I wanted to switch to wireplumber for the session management rather than the default pipewire-media-session. I managed to install both of them, which doesn’t seem to be possible in Arch but you can do in Manjaro, there is a closed thread around this. This created another problem now where I wanted to remove the pipewire-media-session and only leave wireplumber, but as you can see from the output, pamac wants to go too far on this.

pamac remove pipewire-media-session
Preparing...
Checking dependencies...
Warning: bluedevil optionally requires pulseaudio-bluetooth: to connect to A2DP profile
Warning: kde-cli-tools optionally requires plasma-workspace: for kcmshell5
Warning: lib32-fluidsynth optionally requires pulseaudio: PulseAudio sound support
Warning: phonon-qt5 optionally requires pulseaudio: PulseAudio support
Warning: phonon-qt5-gstreamer optionally requires pulseaudio: PulseAudio support
Warning: pipewire optionally requires pipewire-media-session: Default session manager
Warning: pipewire optionally requires pipewire-alsa: ALSA configuration
Warning: pipewire optionally requires pipewire-jack: JACK support
Warning: pipewire optionally requires pipewire-pulse: PulseAudio replacement
Warning: pipewire optionally requires gst-plugin-pipewire: GStreamer support
Warning: zoom optionally requires pulseaudio-alsa: audio via PulseAudio

To remove (26):
  kget                        21.08.2-1   (Depends On: pipewire-media-session)  extra
  plasma-pa                   5.22.5-1    (Depends On: pipewire-media-session)  extra
  manjaro-bluetooth           20210928-1  (Depends On: pipewire-media-session)  extra
  plasma-nm                   5.22.5-1    (Depends On: pipewire-media-session)  extra
  sddm-breath2-theme          1.0.18-5    (Depends On: pipewire-media-session)  community
  kdeplasma-addons            5.22.5-1    (Depends On: pipewire-media-session)  extra
  plasma-desktop              5.22.5-1    (Depends On: pipewire-media-session)  extra
  plasma-wayland-session      5.22.5-2    (Depends On: pipewire-media-session)  extra
  manjaro-pipewire            20211001-1  (Depends On: pipewire-media-session)  extra
  pipewire-jack               1:0.3.38-1  (Depends On: pipewire-media-session)  extra
  pulseaudio-alsa             1:1.2.5-2   (Depends On: pipewire-media-session)  extra
  plasma-firewall             5.22.5-1    (Depends On: pipewire-media-session)  extra
  plasma-browser-integration  5.22.5-1    (Depends On: pipewire-media-session)  extra
  gst-plugin-pipewire         1:0.3.38-1  (Depends On: pipewire-media-session)  extra
  kinfocenter                 5.22.5-1    (Depends On: pipewire-media-session)  extra
  pipewire-alsa               1:0.3.38-1  (Depends On: pipewire-media-session)  extra
  powerdevil                  5.22.5-1    (Depends On: pipewire-media-session)  extra
  pulseaudio-ctl              1.70-1      (Depends On: pipewire-media-session)  community
  pipewire-pulse              1:0.3.38-1  (Depends On: pipewire-media-session)  extra
  kgamma5                     5.22.5-1    (Depends On: pipewire-media-session)  extra
  khotkeys                    5.22.5-1    (Depends On: pipewire-media-session)  extra
  sddm-kcm                    5.22.5-1    (Depends On: pipewire-media-session)  extra
  systemsettings              5.22.5-1    (Depends On: pipewire-media-session)  extra
  plasma-workspace            5.22.5-2    (Depends On: pipewire-media-session)  extra
  kwin                        5.22.5-1    (Depends On: pipewire-media-session)  extra
  pipewire-media-session      1:0.3.38-1                                        extra

Total removed size: 146.1 MB

Apply transaction ? [y/N] N

Probably needs some review before Manjaro gets trendy for the wrong reasons.

I wanted to switch mostly as I have also problem with my bluetooth speaker, after being disconnected I can select it for the output but the audio keeps playing on the laptop speakers.

I’m not sure why Pamac is confused about it, maybe create an issue. For now use Pacman. Installing wireplumber will remove pipewire-media-session:

sudo pacman -Syu wireplumber

Link to gitlab issue: Pamac tries to remove my whole desktop when removing pipewire-media-session (#1181) · Issues · Applications / pamac · GitLab

Sorry @Yochanan, I uninstalled wireplumber and tried to install it using pacman, but it doesn’t seem to get the conflict, maybe the packages are configured differently in Manjaro than Arch?

sudo pacman -Syu wireplumber
:: Synchronizing package databases...
 core is up to date
 extra is up to date
 community is up to date
 multilib is up to date
:: Starting full system upgrade...
resolving dependencies...
looking for conflicting packages...

Packages (1) wireplumber-0.4.3-1

Total Installed Size:  1.82 MiB

:: Proceed with installation? [Y/n]

We import those packages directly from Arch, there is no difference. Please post the full output of that command.

That is to be expected. You tell it to remove pipewire-media-session. Without this, having pipewire doesn’t make sense, so pipewire is also removed. Most (or all?) Desktop/Window managers have a hard dependency on pipewire, so they are removed as well.

What you should do is pamac install wireplumber which leads to the removal of pipewire-media-session:

# pamac install wireplumber

Preparing...

Choose optional dependencies for wireplumber:
1:  wireplumber-docs: Documentation

Enter a selection (default=none): 

Synchronisiere Paketdatenbanken...
Resolving dependencies...
Checking inter-conflicts...

To install (1):
  wireplumber             0.4.5-2                                   extra  343.4 kB
To remove (1):
  pipewire-media-session  1:0.4.1-1  (Conflicts With: wireplumber)  extra

Total download size: 343.4 kB
Total installed size: 1.9 MB
Total removed size: 455.6 kB

Apply transaction ? [y/N] 
1 Like

Not sure what is wrong with my configuration but, I’m not getting any of the conflicts that you suggest.

I initially installed manjaro-pipewire with all the packages as you can see per the output

pamac search -i pipewire
manjaro-pipewire                                                                                                                                                                                                           20211001-1  extra 
    Manjaro meta package for complete PipeWire support.
gst-plugin-pipewire                                                                                                                                                                                                        1:0.3.38-1  extra 
    Multimedia graph framework - pipewire plugin
pipewire-zeroconf                                                                                                                                                                                                          1:0.3.38-1  extra 
    Low-latency audio/video router and processor - Zeroconf support
pipewire-pulse                                                                                                                                                                                                             1:0.3.38-1  extra 
    Low-latency audio/video router and processor - PulseAudio replacement
pipewire-media-session                                                                                                                                                                                                     1:0.3.38-1  extra 
    Low-latency audio/video router and processor - Session manager
pipewire-jack                                                                                                                                                                                                              1:0.3.38-1  extra 
    Low-latency audio/video router and processor - JACK support
pipewire-alsa                                                                                                                                                                                                              1:0.3.38-1  extra 
    Low-latency audio/video router and processor - ALSA configuration
pipewire                                                                                                                                                                                                                   1:0.3.38-1  extra 
    Low-latency audio/video router and processor

I try to install wireplumber, having pipewire-media-session installed, but I don’t get any as you do and the install completes successfully

sudo pamac install wireplumber
Preparing...
Synchronizing package databases...
Resolving dependencies...
Checking inter-conflicts...

To install (1):
  wireplumber  0.4.3-1    community  

Total installed size: 1.9 MB

Apply transaction ? [y/N] y
Checking keyring...                                                                                                                                                                                                                     [1/1]
Checking integrity...                                                                                                                                                                                                                   [1/1]
Loading packages files...                                                                                                                                                                                                               [1/1]
Checking file conflicts...                                                                                                                                                                                                              [1/1]
Checking available disk space...                                                                                                                                                                                                        [1/1]
Installing wireplumber (0.4.3-1)...                                                                                                                                                                                                     [1/1]
Running post-transaction hooks...
Reloading system manager configuration...                                                                                                                                                                                               [1/2]
Arming ConditionNeedsUpdate...                                                                                                                                                                                                          [2/2]
Transaction successfully finished.

Now I have both installed

pamac search -i wireplumber
wireplumber                                                                                                                                                                                                               0.4.3-1  community 
    Session / policy manager implementation for PipeWire

and if I try to remove the pipewire-media-session, pamac tries to remove my whole desktop, surely there must be something not configured properly to get something like this.

sudo pamac remove pipewire-media-session
Preparing...
Checking dependencies...
Warning: bluedevil optionally requires pulseaudio-bluetooth: to connect to A2DP profile
Warning: kde-cli-tools optionally requires plasma-workspace: for kcmshell5
Warning: lib32-fluidsynth optionally requires pulseaudio: PulseAudio sound support
Warning: phonon-qt5 optionally requires pulseaudio: PulseAudio support
Warning: phonon-qt5-gstreamer optionally requires pulseaudio: PulseAudio support
Warning: pipewire optionally requires pipewire-media-session: Default session manager
Warning: pipewire optionally requires pipewire-alsa: ALSA configuration
Warning: pipewire optionally requires pipewire-jack: JACK support
Warning: pipewire optionally requires pipewire-pulse: PulseAudio replacement
Warning: pipewire optionally requires gst-plugin-pipewire: GStreamer support
Warning: zoom optionally requires pulseaudio-alsa: audio via PulseAudio

To remove (26):
  kget                        21.08.2-1   (Depends On: pipewire-media-session)  extra
  plasma-pa                   5.22.5-1    (Depends On: pipewire-media-session)  extra
  manjaro-bluetooth           20210928-1  (Depends On: pipewire-media-session)  extra
  plasma-nm                   5.22.5-1    (Depends On: pipewire-media-session)  extra
  sddm-breath2-theme          1.0.18-5    (Depends On: pipewire-media-session)  community
  kdeplasma-addons            5.22.5-1    (Depends On: pipewire-media-session)  extra
  plasma-desktop              5.22.5-1    (Depends On: pipewire-media-session)  extra
  plasma-wayland-session      5.22.5-2    (Depends On: pipewire-media-session)  extra
  manjaro-pipewire            20211001-1  (Depends On: pipewire-media-session)  extra
  pipewire-jack               1:0.3.38-1  (Depends On: pipewire-media-session)  extra
  pulseaudio-alsa             1:1.2.5-2   (Depends On: pipewire-media-session)  extra
  plasma-firewall             5.22.5-1    (Depends On: pipewire-media-session)  extra
  plasma-browser-integration  5.22.5-1    (Depends On: pipewire-media-session)  extra
  gst-plugin-pipewire         1:0.3.38-1  (Depends On: pipewire-media-session)  extra
  kinfocenter                 5.22.5-1    (Depends On: pipewire-media-session)  extra
  pipewire-alsa               1:0.3.38-1  (Depends On: pipewire-media-session)  extra
  powerdevil                  5.22.5-1    (Depends On: pipewire-media-session)  extra
  pulseaudio-ctl              1.70-1      (Depends On: pipewire-media-session)  community
  pipewire-pulse              1:0.3.38-1  (Depends On: pipewire-media-session)  extra
  kgamma5                     5.22.5-1    (Depends On: pipewire-media-session)  extra
  khotkeys                    5.22.5-1    (Depends On: pipewire-media-session)  extra
  sddm-kcm                    5.22.5-1    (Depends On: pipewire-media-session)  extra
  systemsettings              5.22.5-1    (Depends On: pipewire-media-session)  extra
  plasma-workspace            5.22.5-2    (Depends On: pipewire-media-session)  extra
  kwin                        5.22.5-1    (Depends On: pipewire-media-session)  extra
  pipewire-media-session      1:0.3.38-1                                        extra

Total removed size: 146.1 MB

Apply transaction ? [y/N]

Sorry about the delay I didn’t had time to look into this until now.
Thanks for the help anyway, I’ll keep investigating to see what I can find

I put more details about the issue on the gitlab ticket, I will try to follow the issue there to avoid duplicating the content in both places, hopefully we can get to the bottom of it and post the solution here too

1 Like

Warning
Never use sudo with pamac. It will ask for escalated rights if it needs them

https://wiki.manjaro.org/index.php/Pamac#Using_the_Pamac_CLI

For what we were able to find, my packages for pipewire-media-session and wireplumber don’t seem to have any conflicts listed. I tried the same on another laptop and it worked without issues, conflict was raised and I can only install one of them.

For the moment I have a workaround even though it means I need to keep both packages installed. I’ll post it here in case someone else finds themselves in the same situation.

systemctl --user disable pipewire-media-session.service
systemctl --user enable wireplumber.service

cascade again?
What if you include the --unneeded flag @mingue

pamac remove --unneeded pipewire-media-session

You’re probably right, my example is from the testing branch and I guess by your version numbers, you’re on the stable branch.

Not possible for me, this is the output (stable branch):

~ >>> pamac install wireplumber                                                                                                                                                                                             [130]
Preparing...
Warning: removing pipewire-media-session breaks dependency 'pipewire-media-session' required by gst-plugin-pipewire
Add gst-plugin-pipewire to remove
Error: Failed to prepare transaction:
could not satisfy dependencies:
- removing pipewire-media-session breaks dependency 'pipewire-media-session' required by kwin,
- if possible, remove kwin and retry
- removing gst-plugin-pipewire breaks dependency 'gst-plugin-pipewire' required by manjaro-pipewire,
- if possible, remove manjaro-pipewire and retry
Resolving dependencies...
Checking inter-conflicts...
Error: Failed to prepare transaction:
could not satisfy dependencies:
- removing pipewire-media-session breaks dependency 'pipewire-media-session' required by kwin,
- if possible, remove kwin and retry
- removing gst-plugin-pipewire breaks dependency 'gst-plugin-pipewire' required by manjaro-pipewire,
- if possible, remove manjaro-pipewire and retry

Then, you probably have to wait until the versions in the stable branch have their dependencies sorted out.

Maybe your mirrors are out-of-date?

I updated the mirror list in pamac but the command still gives me the same output. Guess I’ll have to wait for another Manjaro release :confused:

Well, if you need it immediately, you could switch to another TTY, use systemctl isolate multi-user.target to switch to runlevel 3, and then use your command which removes all of KDE. Afterward, install all missing packages again.
It depends on how “hard” gst depends on it, so it might work.

Thanks for the tip but I’ll rather wait for another update than risk breaking my KDE again. I just don’t get it that despite being regarded as one of the most stable distros, Manjaro frequently has such bumps when trying to do a simple update (about 3-4 times a year for me).

But then again I haven’t tried any other rolling release distros so can’t really compare.

Do me a favor and run (this will not execute anything)

pamac remove pipewire-media-session --unneeded -d

(you may also directly compare this without the --unneeded flag, but keep the -d for dry-run)

Is your system up-to-date? From the comments of the stable update announcement of yesterday, the packages in question now conflict correctly.

It doesnt matter - the basic issue is still (years later!) that pamac defaults to a brute ‘cascade’ removal.

The equivalent in pacman being -c, which is warned against in archwiki.

To remove a package, its dependencies and all the packages that depend on the target package:

Warning: This operation is recursive, and must be used with care since it can remove many potentially needed packages.

pacman -Rsc *package_name*

Yet this is what pamac does by default unless you use --unneeded.

Again… we can compare with pacman and use the p (print) option to avoid making a real transaction:

$ pacman -Rp pipewire-media-session
error: failed to prepare transaction (could not satisfy dependencies)
:: removing pipewire-media-session breaks dependency 'pipewire-session-manager' required by kwin
$ pacman -Rsp pipewire-media-session
error: failed to prepare transaction (could not satisfy dependencies)
:: removing pipewire-media-session breaks dependency 'pipewire-session-manager' required by kwin
$ pacman -Rcp pipewire-media-session
sddm-kcm-5.23.3-1
plasma-desktop-5.23.3-1
kinfocenter-5.23.3-1
kgamma5-5.23.3-1
systemsettings-5.23.3-1
sddm-breath2-theme-1.0.20-1
sddm-breath-theme-0.4.0-2
powerdevil-5.23.3-1
plasma5-applets-simplemonitor-0.6-1
plasma-wayland-session-5.23.3-1
plasma-pa-5.23.3-1
plasma-nm-5.23.3-1
plasma-browser-integration-5.23.3-1
matcha-kde-20190810-1
khotkeys-5.23.3-1
kdeplasma-addons-5.23.3-1
plasma-workspace-5.23.3-1
kwin-5.23.3-1
pipewire-media-session-1:0.4.1-1
$ pacman -Rscp pipewire-media-session
sddm-kcm-5.23.3-1
plasma-desktop-5.23.3-1
polkit-kde-agent-5.23.3-1
accountsservice-0.6.55-3
kinfocenter-5.23.3-1
wayland-utils-1.0.0-2
vulkan-tools-1.2.194-1
kgamma5-5.23.3-1
systemsettings-5.23.3-1
sddm-breath2-theme-1.0.20-1
sddm-breath-theme-0.4.0-2
powerdevil-5.23.3-1
plasma5-applets-simplemonitor-0.6-1
plasma-wayland-session-5.23.3-1
xorg-xwayland-21.1.3-1
plasma-pa-5.23.3-1
plasma-nm-5.23.3-1
networkmanager-qt-5.88.0-1
modemmanager-qt-5.88.0-1
plasma-browser-integration-5.23.3-1
matcha-kde-20190810-1
khotkeys-5.23.3-1
kdelibs4support-5.88.0-1
kemoticons-5.88.0-1
kdeplasma-addons-5.23.3-1
kunitconversion-5.88.0-1
plasma-workspace-5.23.3-1
xorg-xsetroot-1.1.2-2
xorg-xmessage-1.0.5-2
prison-5.88.0-1
qrencode-4.1.1-1
libdmtx-0.7.5-2
plasma-integration-5.23.3-1
ttf-hack-3.003-3
libqalculate-3.21.0-1
kquickcharts-5.88.0-1
kio-fuse-5.0.1-1
kholidays-1:5.88.0-1
kde-cli-tools-5.23.3-1
kdesu-5.88.0-1
kactivitymanagerd-5.23.3-1
kactivities-stats-5.88.0-1
appstream-qt-0.14.6-1
appstream-0.14.6-1
kwin-5.23.3-1
libqaccessibilityclient-0.4.1-2
kwayland-server-5.23.3-1
pipewire-media-session-1:0.4.1-1

But hey, whatdoiknow :woman_shrugging:

1 Like

Literally just had the exact same issue; somehow had both wireplumber and pipewire-media-session at the same time. What fixed it for me was doing an update with pacman, removing wireplumber with pamac, doing an update with pamac, then installing wireplumber with pacman in that order.

Didn’t manually remove pipewire-media-session at all, and removing wireplumber didn’t remove any other packages other than itself.