FS#68848 - [pulseaudio-jack] Incompatibility with pipewire-pulse due to 'pulseaudio=14.0' hard dependency
Attached to Project:
Arch Linux
Opened by Alexander Michalopoulos (Nocifer) - Friday, 04 December 2020, 11:36 GMT
Last edited by David Runge (dvzrv) - Tuesday, 08 February 2022, 17:29 GMT
Opened by Alexander Michalopoulos (Nocifer) - Friday, 04 December 2020, 11:36 GMT
Last edited by David Runge (dvzrv) - Tuesday, 08 February 2022, 17:29 GMT
|
Details
Pipewire is quickly approaching the point where it can
completely replace Pulseaudio for everyday use, but for the
time being I find myself in need of running Jack through
Pulseaudio (instead of running Jack directly through
Pipewire) so I can keep using the various GUI tools like
session managers, DE sound applets, etc that only know how
to talk to Pulseaudio.
The problem here is that pulseaudio-jack (the Jack -> Pulseaudio bridge) conflicts with pipewire-pulse (the Pulseaudio -> Pipewire bridge), because it's set to depend on 'pulseaudio=14.0' and pipewire-pulse does not satisfy this version requirement (I suppose it reports its own version string, 0.3.17 at the time of writing this), so pulseaudio-jack tries to instead pull its parent package pulseaudio (which is what really produces the conflict with pipewire-pulse), despite pipewire-pulse being fully compatible in all other respects. Manually changing pulseaudio-jack's requirement from 'pulseaudio=14.0' to simply 'pulseaudio' and building the package results in everything working smoothly. If there is no real reason for specifically depending on 'pulseaudio=14.0' (i.e. some known incompatibility with Pulseaudio<14.0) I would propose that pulseaudio's subpackages like pulseaudio-jack are set to depend on 'pulseaudio' instead, so that they can be installed alongside Pipewire. |
This task depends upon
Closed by David Runge (dvzrv)
Tuesday, 08 February 2022, 17:29 GMT
Reason for closing: Won't fix
Additional comments about closing: The specific requirements are there, because pulseaudio introduces breakage on minor version bumps and thus the components must not drift.
Tuesday, 08 February 2022, 17:29 GMT
Reason for closing: Won't fix
Additional comments about closing: The specific requirements are there, because pulseaudio introduces breakage on minor version bumps and thus the components must not drift.
$ pactl info | grep -P 'Server (Name|Version)'
Server Name: PulseAudio (on PipeWire 0.3.17)
Server Version: 14.0.0
...so I guess providing pulseaudio=14 makes sense
On a side note, there is also the fact that pipewire-pulse.{socket,service} should be part of pipewire-pulse and not the main pipewire package, but that should probably go to a different bug report.
Apparently something in my system update tries to pull in pipewire-pulse, resulting in a conflict that seems related to this old issue.
looking for conflicting packages...
:: pipewire-pulse and pulseaudio are in conflict. Remove pulseaudio? [y/N] y
error: failed to prepare transaction (could not satisfy dependencies)
:: removing pulseaudio breaks dependency 'pulseaudio=14.2-2' required by pulseaudio-jack
Also it's a bit silly by pulseeffects upstream to first depend on pulseaudio and then make a breaking switch to pipewire with the same program.
I
t's good to hear that pipewire works fine for you, however I'm not so sure it works just fine as PA and JACK replacement at the same time and I frankly don't want to play crashtestdummy for it.
Thankfully now that I know that pulseeffects pulled in pipewire it was easy enough to work around for me, simply be uninstalling pulseeffects. I can live without that but I need JACK and PA (and ALSA ofc.) working.
Also, I don't think PulseEffects switching backends is that silly, I mean, at some point in the near future Pipewire *will* replace PulseAudio as the default sound server, so why not do it early if the change can be transparent for the end user, which it would be if these packaging issues didn't exist? Also, do keep in mind that they keep the 4.x branch around for the time being, precisely for those of us who don't want to become crash-test dummies for Pipewire :)
As for compatibility, Pipewire still does not work properly as a full Jack replacement because among other things it does not support the D-Bus version of Jack, so most modern apps fail to recognize and connect to Jack if it's running through Pipewire (not to mention the lack of tooling for this use case). So for the time being using Pipewire on its own via pipewire-jack is out of the question, and that's why I need pulseaudio-jack, so I can use Jack as per normal and route that through "Pulseaudio", aka Pipewire emulation. When set up like this, so far everything works just fine, because Pipewire does indeed do a good job emulating Pulseaudio.
*Update*: in case it helps anyone else, the problem turned out to be a set of .pacnew files in /etc/pipewire/media-session.d/ that hadn't automatically overwritten their counterparts, even though those had never been edited.
Now, if only we could package pipewire-pulse and/or pulseaudio-jack in such a way that it would transparently replace pulseaudio :P