[Pkg-utopia-maintainers] Bug#1023758: pipewire: calls addgroup without an adduser dependency

Simon McVittie smcv at debian.org
Wed Nov 9 18:01:03 GMT 2022


Package: pipewire
Version: 0.3.59-1
Severity: serious
Justification: Policy §3.5

pipewire calls addgroup without a dependency on the adduser package,
which can fail if no other package happens to have pulled in adduser.
Until recently, apt hid this bug by depending on adduser, but now the
base-passwd package creates the _apt user and it is entirely feasible to
remove or not install adduser in container environments.

Various packages that are in pipewire's transitive Recommends or otherwise
normally installed on desktop-class systems (like dbus-system-bus-common
and polkitd) will normally also pull in adduser, again hiding this
bug, but polkit now depends on "adduser | systemd-sysusers", and I'm
considering doing the same in dbus-system-bus-common.

To reproduce:

$ podman run --pull=always --rm -it debian:sid-slim
# apt update
# apt upgrade
# apt purge adduser
# apt install --no-install-recommends pipewire

(Or use your favourite minimal container or chroot technology, if not
podman.)

Expected result: successful installation. (It's OK if pipewire is only
partially functional without its Recommends.)

Actual result:

> Setting up pipewire:amd64 (0.3.59-1+b1) ...
> /var/lib/dpkg/info/pipewire:amd64.postinst: 7: addgroup: not found

Options for resolving this include:

1. depend on adduser

2. depend on passwd instead, and use groupadd, like samba does:
   https://salsa.debian.org/samba-team/samba/-/commit/1eb07efc2fb4d9ed1218e4af367539bcae255b9e
   (note that passwd is Priority: required but not Essential: yes, so it
   gets installed by debootstrap but technically still needs a dependency)

3. install /usr/lib/sysusers.d/pipewire.conf containing something like:

       g pipewire - -

   then use dh_installsysusers (debhelper compat level 14 or
   dh --with=installsysusers), but be prepared to get bug reports similar
   to #1014805, #1016006 from sysvinit users who are upset that debhelper
   has generated a dependency on "systemd | ..."

4. install /usr/lib/sysusers.d/pipewire.conf as above, but do not use
   dh_installsysusers, and instead set up the user from handwritten
   postinst code using systemd-sysusers, adduser and/or groupadd
   (with an appropriate dependency)

I don't think there is yet project consensus on which one of those is best,
unfortunately.

    smcv



More information about the Pkg-utopia-maintainers mailing list