[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#1049418: xfce4-pulseaudio-plugin: Please loosen Recommends, and allow pipewire-pulse as an alternative to pulseaudio




On 08/09/2023 14:13, Yves-Alexis Perez wrote:
On Fri, 2023-09-08 at 10:53 +0700, Arnaud Rebillout wrote:
> Hope that it answers all your questions!

Hi Arnaud, thanks for the very detailed information, that's much helpful. And
it does make sense to use alternate dependencies indeed.

But here there might be some differences. In your initial mail you say:

> A minor issue, in Kali, is that we still have to install pulseaudio, due
> to the fact that xfce4-pulseaudio-plugin depends on pulseaudio. So
> pulseaudio must be installed, even though it's not running.

> On the same line, we also can't install the metapackage pipewire-audio,
> since it Conflicts with pulseaudio, hence breaks the xfce4 metapackage.

> Changing the Recommends field of xfce4-pulseaudio-plugin to
> 'pulseaudio|pipewire-pulse' would solve those two issues, and more
> generally it would make life easier for people who want to switch to
> pipewire and remove pulseaudio.

I don't think that's completely true. Recommends: can (and are, on Debian at least) installed by default (when doing apt install or apt-get install) but
you can totally remove it afterwards.

So I guess the only relevant use case is when a user
- has pipewire-pulse installed
- has *not* pulseaudio installed
- runs apt install xfce4-pulseaudio-plugin (or xfce4-plugins)

In that case, with the alternate recommends I'd assume it would consider the
recommends already satisfied and won't try to install pulseaudio.

I believe you are correct on that, 100% agree.


I don't think that's really what Kali is concerned about, but rather the
default installation.

So the issue we had in Kali was a bit different, I didn't go into the full details as I didn't want to bore you, but since we are here, let me try to explain.

Ideally, for the Kali XFCE desktop (implemented by the metapackage kali-desktop-xfce), I would like to depend on pipewire-audio. pipewire-audio is a metapackage that « depends on a recommended set of pipewire packages  for a standard audio desktop use ». It's maintained by the pipewire maintainers: they know best what packages are needed for a working pipewire audio setup (and btw, gnome-core depends on pipewire-audio, ie. they fully embraced pipewire).

However I could not do that, I couldn't depend on pipewire-audio. The issue is that pipewire-audio Conflicts/Replaces pulseaudio (due to some of its dependencies that are really NOT co-installable with pulseaudio). This is problematic for the upgrade scenario: all Kali XFCE users already have pulseaudio installed. So what would happen on apt full-upgrade?

What I found during my tests is that, if I make kali-desktop-xfce depends on pipewire-audio, "apt full-upgrade" will NOT completely upgrade the system. It refuses to remove the pulseaudio package automatically, therefore can't install pipewire-audio, and then the package "kali-desktop-xfce" is "held back". Apparently, as long as a package Depends or Recommends pulseaudio, apt will refuse to remove pulseaudio automatically (which makes sense IMO).

Due to this behavior, I couldn't use the pipewire-audio package, instead I have to list the packages required: https://gitlab.com/kalilinux/packages/kali-meta/-/blob/16b8d88a2b7c28f7129d1cc07bd5bf90392996a9/debian/control#L2424-2429

Long-term, this is not a good solution, I'd really prefer to use the pipewire-audio package. But I can't, as long as some packages depend on pulseaudio only, instead of 'pulseaudio | pipewire-pulse'. And as I can see, there are only two packages that are blocking: xfce4-pulseaudio-plugin and pavucontrol.

So that's why I opened this bug report. That's the long story :D


I'm not sure how Kali does it but afair on Debian the
initial installation (using d-i but also I think when using debootstrap or
other tools) doesn't install recommends by default (because it still uses
tasksel).

I think that it's not correct, the debian-installer indeed uses tasksel to install the desktop, but then tasksel sets Recommends to true, cf. https://salsa.debian.org/installer-team/tasksel/-/blob/edc9b2e20346279a10c48eeb750d0749fe7c19e2/tasksel.pl#L923. I don't know about debootstrap.

Best,

--

Arnaud Rebillout / OffSec / Kali Linux Developer


Reply to: