systemd guys rewrote libdbus to simplify it. Independent benchmarkers found systemd's implementation to be 3.6 times faster (slide 21 in https://github.com/gregkh/presentation-kdbus/blob/master/stuff/EG-SI-IPC%20CommonAPI%20CPP.pptx?raw=true [PPTX]). Many programmers decided to depend on to systemd's implementation, sd-bus, because they like their programs to be simpler and faster.

Call that a "bad excuse" if you want. I call that a "valid reason". And sd-bus is contained in libsystemd. It does not impose a specific init system. It imposes the Linux kernel though, whereas libdbus, GDBus or QtDBus are portable (one of them can be used in another version of the program).

As for GNOME, you certainly refer to the dependence on logind. logind replaced ConsoleKit, which is no longer maintained because its developers have found logind better. With the second sentence on https://www.freedesktop.org/wiki/Software/ConsoleKit/ they warn, in bold letters, against the use of ConsoleKit:

ConsoleKit is currently not actively maintained. The focus has shifted to the built-in seat/user/session management of Software/systemd called systemd-logind!

Depending on logind rather than ConsoleKit is not a "bad excuse". ConsoleKits's development stopped more than four years ago: https://cgit.freedesktop.org/ConsoleKit/log/

Well, unless the programmer prefers to drop basic functionalities (see https://www.freedesktop.org/software/systemd/man/systemd-logind.service.html for a list) of her program rather than depending on a systemd module. Nowadays, elogind is an option too:

Elogind is the systemd project's "logind", extracted out to be a standalone daemon. (...) All of the credit for elogind should go to the systemd developers.

Elogind has been developed for use in GuixSD, the OS distribution of
GNU Guix.  See http://gnu.org/s/guix for more on Guix.  GuixSD uses a
specific init manager (DMD), for reasons that are not relevant here,
but still aims to eventually be a full-featured distribution that can
run GNOME and other desktop environments.  However, to run GNOME these
days means that you need to have support for the login1 D-Bus
interface, which is currently only provided by systemd.  That is the
origin of this project: to take the excellent logind functionality
from systemd and provide it as a standalone package.
We like systemd.  We realize that there are people out there that hate
it.  You're welcome to use elogind for whatever purpose you like --
as-is, or as a jumping-off point for other things -- but please don't
use it as part of some anti-systemd vendetta.  Systemd hackers are
smart folks that are trying to solve interesting problems on the free
desktop, and their large adoption is largely because they solve
problems that users and developers of user-focused applications care
about.  We are appreciative of their logind effort and think that
everyone deserves to run it if they like, even if they use a different
PID 1.
https://raw.githubusercontent.com/elogind/elogind/master/README

As for PulseAudio (I imagine that is what you mean by "audio-mixers"), it is the same: it used to depend on ConsoleKit. According to https://wiki.gentoo.org/wiki/PulseAudio#Without_udev.2Fsystemd it is possible to run PulseAudio without logind but "this breaks both auto-detection and hot-plugging -- needlessly making your life harder".

Reply via email to