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