• Re: Bug #998063: debian-policy: New virtual package: {default-,}dbus-sy

    From Simon McVittie@21:1/5 to Simon McVittie on Fri Dec 24 11:10:01 2021
    Sending this to -devel since Sean pointed out that new general-purpose
    virtual package names are meant to go there, not just to a Policy bug.

    On Fri, 29 Oct 2021 at 11:12:07 +0100, Simon McVittie wrote:
    We now have two implementations of the D-Bus well-known system bus
    available in Debian:

    * dbus, the portable reference implementation
    * dbus-broker, a Linux-specific reimplementation

    so it seems like a good time to introduce {default-,}dbus-system-bus
    virtual packages, mirroring {default-,}dbus-session-bus.

    At the moment, dbus is the default for all architectures. It is possible
    that dbus-broker might take over as the default on Linux architectures
    in some future release (but it is explicitly not portable, so dbus will probably always be the default on kFreeBSD and Hurd, similar to how we
    choose dbus-user-session vs. dbus-launch).

    Packages depending on "dbus" can currently count on having most aspects of the reference implementation available (except for the session bus, which requires either dbus-user-session or dbus-launch), but I would prefer to
    move towards packages explicitly declaring a dependency on one or more of:

    * default-dbus-system-bus | dbus-system-bus:
    the well-known system bus, as required by e.g. Avahi, polkit, udisks2

    * dbus-daemon: ability to run the dbus-daemon(1) and dbus-run-session(1)
    executables, or rely on having the D-Bus machine ID /var/lib/dbus/machine-id
    (dbus-session-bus and dbus-system-bus both imply some sort of machine
    ID, but it might be systemd's /etc/machine-id)

    * dbus-bin: ability to run assorted CLI tools such as dbus-send(1) and
    dbus-monitor(1)

    A patch against Policy can be found on https://bugs.debian.org/998063,
    but the important content is:

    - name: dbus-system-bus
    description: provides the D-Bus well-known system bus as a system service, including service activation
    - name: default-dbus-system-bus
    description: Debian's preferred implementation of dbus-system-bus, possibly architecture-specific

    This split is already implemented in bookworm, and a few packages already depend on the new virtual package names.

    dbus in bullseye had a Provides: for default-dbus-system-bus,
    dbus-system-bus, dbus-daemon and dbus-bin in preparation for the split,
    so this dependency change can safely be backported from bookworm to bullseye-backports without changes (but will need to be reverted in the
    rare case of a backport from bookworm to buster-backports-sloppy).

    On the Policy bug, Adam Borowski queried whether it would be better to repurpose the dbus package name as the virtual package and use a new
    package name for the reference implementation, similar to the way the
    sysvinit package name was repurposed to mean "an init system" during the transition to systemd, with the real SysV init renamed to sysvinit-core. I think this would not have been correct, because packages that depend on
    dbus have historically been able to rely on the combined functionality
    of what we're now calling dbus-system-bus, dbus-daemon and dbus-bin,
    and should continue to be able to do so.

    smcv

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)