From d2396b99de86a478d26c115c05b9888a49f42d64 Mon Sep 17 00:00:00 2001 From: Nico Schottelius Date: Sun, 23 May 2021 11:36:35 +0200 Subject: [PATCH] blog: do not rely on systemd --- blog/do-not-rely-on-systemd.mdwn | 88 ++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 blog/do-not-rely-on-systemd.mdwn diff --git a/blog/do-not-rely-on-systemd.mdwn b/blog/do-not-rely-on-systemd.mdwn new file mode 100644 index 00000000..f41f4194 --- /dev/null +++ b/blog/do-not-rely-on-systemd.mdwn @@ -0,0 +1,88 @@ +[[!meta title="Do not make your software rely on systemd"]] + +## TL;DR + + Do not make your software rely on systemd. + +## Introduction + +There is some software out there that is leaning towards requiring +systemd. This will render that software unusable on non-systemd Linux +distributions. If you develop software, I urge you to not rely on +systemd features, because there are many situations in which you +cannot use systemd. + +## The Open Source community + +While for many of you systemd might be something you use on a daily +basis, there is a big part of the Open Source community that does not +use systemd, for a variety of reasons. Without going into detail, +systemd does not exist in a variety of Linux distributions like +[Alpine Linux](https://alpinelinux.org/), +[Devuan](https://www.devuan.org/) or [OpenWrt](https://openwrt.org/) +nor on the BSDs. + +However, even if it existed, people might choose to opt-out of the +systemd ecosystem because of compatibility, security, stability +or any other kind of reason. + +## Why are we building Open Source Software? + +The Open Source / FOSS movement originated many years (decades!) ago +with the goal of creating usable systems. Systems that are not locked +in, systems that allow you to freely modify software and eventually: +support a wider audience, be more inclusive. + +## Majority is not the right argument + +If you assume that everyone has a systemd environment, I need to raise +a flag here: you are not the majority. If you are using that line of +argument, I will answer with: the majority of systems is running +Microsoft Windows, so all software should be written only with Windows +in mind. And that is problematic, because you are fully dependent on a +single vendor with an ecosystem that one cannot change. + +Now, you can argue that systemd is Open Source and it could be +modified. While in theory this is true, the systemd authors do have +strong opinions that conflict (details omitted here intentionally) +with others. In this regard, systemd is similar to a closed ecosystem, +because it does not make everyone benefit from it. + +## Problematic direction + +Recently I see some software that assumes the existence of systemd by +default. Either by using it as a cgroupdriver or by relying on +systemctl. While *some* software can be patched, the *notion in the +documenation* inclines towards "systemd only support". And that is the +reason why I am writing this blog + +## systemd is not for everyone + +You can argue for hours or days whether feature x of systemd is good +or not. However it is a fact that systemd is not for everyone and it +is not suitable for every situation that Open Source software usually +operates in. + + Forcing systemd on users does not work (and is not even realistic). + +Even if you had the means to try forcing people into systemd, it +simply does not work, because it is not suited for running on embedded +systems for instance. + +## Call for action + +I am aware that generations of hackers have changed, that Open Source +has become much more accessible and that not everyone using Open +Source is a hacker anymore. That is not a problem, but actually a +significant achievement of the Open Source community. But it also +means that we have more diversity and a broader audience. + +However we shall not forget our roots and why Open Source Software +actually works: it is because we work together and respect different +approaches and we try to be inclusive. In terms of systems, as well as +humans. That said, I really urge you: + + Respect diversity, do not rely on systemd in your software. + + +[[!tag foss systemd unix]]