88 lines
3.5 KiB
Markdown
88 lines
3.5 KiB
Markdown
[[!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]]
|