#989845 pulseaudio: Needless Depends: on libasound2-plugins should be turned back into Recommends:

Package:
pulseaudio
Source:
pulseaudio
Description:
PulseAudio sound server
Submitter:
Dennis Filder
Date:
2021-11-25 10:15:03 UTC
Severity:
normal
Tags:
#989845#5
Date:
2021-06-14 18:24:56 UTC
From:
To:
While investigating #963582 I took a closer look at the dependencies
of pulseaudio, and I noticed something odd: As part of the changes for
0.99.1-1 the Recommends: on libasound2-plugins hard-coded in
debian/control was turned into a Depends:.  The commit message in
question[0] just reads: "tweak depends slightly" which is very quaint
considering that the transitive Depends: closure of libasound2-plugins
includes (among others) libavcodec58 and weighs in at a grand total of
200 MB.  The context of the changelog suggests that this was done to
make the package more similar to how Ubuntu packages pulseaudio, and
the maintainer just didn't realize the ramifications.

Considering that this was probably just a mistake and the inordinate
amount of additional disk space usage incurred by it I think this
change should be undone.

Regards,
Dennis Filder

0: https://salsa.debian.org/pulseaudio-team/pulseaudio/-/commit/89438173a5e1ad86b28763e28924baceb26b88a6

#989845#12
Date:
2021-07-29 13:10:58 UTC
From:
To:
Control: tags -1 help

Well, without libasound2-plugins plain alsa apps cannot output to
pulseaudio. That's the reason we want it. OTOH, this may fit the definition
of "all but unusual installations".

Happy to review a salsa MRs, especially if they also address 963582.

It is obviously too late for bullseye, but we can target the next release,
and doing this sort of change at the beginning of the cycle might be a good
idea.

#989845#19
Date:
2021-07-29 16:12:21 UTC
From:
To:
Using only packages depending on libpulse0 with pulseaudio is an
entirely valid use case (e.g. just using Firefox and a softphone on a
thin client).  These users shouldn't have to live with a 200 MB
burden.
the Depends is trivial, but fixing #963582 is not esp. if the Apparmor
profile has to be modularized, too, and because it will probably
require splitting off the X-related modules into a separate package.
I have done some exploratory work, but it is still just at the
proof-of-concept stage.  I will prepare a MR for that once I have
something that's a bit more presentable.

Regards,
Dennis.

#989845#24
Date:
2021-11-25 10:11:40 UTC
From:
To:
On Thu, 29 Jul 2021 18:12:21 +0200 Dennis Filder <d.filder@web.de> wrote:

 > Using only packages depending on libpulse0 with pulseaudio is an
 > entirely valid use case (e.g. just using Firefox and a softphone on a
 > thin client). These users shouldn't have to live with a 200 MB
 > burden.

I've just come across this issue when I was building a headless
Raspberry Pi with an attached USB speaker.  My use case involves
networking the speaker to play sound effects like door chimes and alert
tones.  I was installing Raspberry Pi OS Lite (no desktop) operating
system (version 30th Oct 2021), and when installing pulseaudio, apt
reported:

 > The following NEW packages will be installed:
 >   dbus-user-session fontconfig libaom0 libasound2-plugins libasyncns0
libavcodec58 libavresample4 libavutil56 libcairo-gobject2 libcairo2
 >   libcodec2-0.9 libdatrie1 libdav1d4 libdrm-amdgpu1 libdrm-nouveau2
libdrm-radeon1 libflac8 libgdk-pixbuf-2.0-0 libgdk-pixbuf2.0-bin
 >   libgdk-pixbuf2.0-common libgl1 libgl1-mesa-dri libglapi-mesa
libglvnd0 libglx-mesa0 libglx0 libgraphite2-3 libgsm1 libharfbuzz0b libice6
 >   libjack-jackd2-0 libllvm11 libltdl7 libmp3lame0 libogg0
libopenjp2-7 libopus0 libpango-1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0
 >   libpixman-1-0 libpulse0 libpulsedsp librsvg2-2 librsvg2-common
libsensors-config libsensors5 libshine3 libsm6 libsnappy1v5 libsndfile1
 >   libsoxr0 libspeex1 libspeexdsp1 libswresample3 libtdb1 libthai-data
libthai0 libtheora0 libtwolame0 libva-drm2 libva-x11-2 libva2
 >   libvdpau-va-gl1 libvdpau1 libvorbis0a libvorbisenc2 libvpx6
libvulkan1 libwavpack1 libwayland-client0 libwebpmux3
 >   libwebrtc-audio-processing1 libx11-xcb1 libx264-160 libx265-192
libxcb-dri2-0 libxcb-dri3-0 libxcb-glx0 libxcb-present0 libxcb-randr0
 >   libxcb-render0 libxcb-shm0 libxcb-sync1 libxcb-xfixes0 libxdamage1
libxfixes3 libxi6 libxrender1 libxshmfence1 libxtst6 libxvidcore4
 >   libxxf86vm1 libz3-4 libzvbi-common libzvbi0 mesa-va-drivers
mesa-vdpau-drivers mesa-vulkan-drivers ocl-icd-libopencl1 pulseaudio
 >   pulseaudio-utils rtkit shared-mime-info va-driver-all
vdpau-driver-all x11-common
 > 0 upgraded, 107 newly installed, 0 to remove and 0 not upgraded.
 > Need to get 69.3 MB of archives.
 > After this operation, 244 MB of additional disk space will be used.

`fontconfig` was definitely a surprise!

After looking at the dependency tree, it seemed that many of these
related to libasound2-plugins.  I know that the calculation is not this
simple, but installing libasound2-plugins alone reported:

 > 0 upgraded, 93 newly installed, 0 to remove and 0 not upgraded.
 > Need to get 66.8 MB of archives.
 > After this operation, 235 MB of additional disk space will be used.

libasound2-plugin requires 87% or the packages and 96% of the disk
space.  I suppose the other concern I have beyond just disk space is
whether any of these "extras" start systemd units, so also burning RAM
and CPU cycles on a low-power platform.

I'd vote in favour of an installation option that does not require
libasound2-plugins.

Cheers,

Steve Palmer