systemd: Assumptions, Bullying, Consent

A few days ago, a friend of mine upgraded her laptop from Debian Wheezy to Debian testing with apt-get dist-upgrade. As a result, the system would not start. Since then, both of us have spent several hours to work around bugs in dpkg, network-manager, systemd and xfce4-panel.

The reason for most bugs were implicit, non-declared dependencies. Mouse and keyboard did, for example, not work under Xorg with a Linux kernel 3.2.0 from Debian Wheezy, but did work with a Linux kernel 3.16.0 from Debian testing. Since the X server relies on udev (a component of systemd) to provide a list of input devices, I strongly suspect that udev now depends on a specific Linux kernel version.

Some time during the day I read parts of the systemd source code. You can get a copy of the systemd source code with git clone http://anongit.freedesktop.org/git/systemd/systemd.git. What I found is that systemd makes a lot of assumptions about the environment it runs in. In the code one can find lots of comments like these:

commentfilename
If it's a valid capability we default to assume that we have itsrc/core/condition.c
if we don't know anything, we consider the system onlinesrc/libsystemd/sd-network/network-util.c
We don't know, so assume yessrc/tmpfiles/tmpfiles.c

I originally looked for similar comments because I found the given defaults amusing – assuming that a system is online if an explicit check does not provide a conclusive answer seems a bit optimistic, maybe even naïve to me. On second thought though, I find the attitude behind these comments disturbing.

I suspect that We don't know, so assume yes may indicate that a speaker is trying to avoid a no by avoiding the question – paying lip service to the idea that others have a say in the matter. Related tactics involve withdrawing positive interaction when encountering opposition, insisting there are no alternatives, declaring that everyone else is doing it, promising that everything will be fine and later breaking the promise, denying wrongdoing, denying one's own privileged position and labeling those who do not give in as primarily emotion-driven assholes or haters.

Now have you seen someone doing these things? Because I have – and I consider such repeated abusive behaviour bullying. And while I consider it inexcusable, I find it understandable that people react with hostility towards a (perceived) bully, even towards people they perceive as being allied with a bully.

Personal computers nowadays serve as extensions of our mind. I think that because of that intimate relationship between users and their computing systems system software should conform to a standard of enthusiastic consent – where only yes means yes, anything else means no, and user consent can be withdrawn at any time.

When I reported that systemd is missing an explicit dependency on the required Linux kernel version (Debian bug #771561) to Debian, reportbug silently attached the contents of my /etc/fstab (Debian bug #743158).