blog: do not rely on systemd
This commit is contained in:
parent
cce3c2471c
commit
d2396b99de
1 changed files with 88 additions and 0 deletions
88
blog/do-not-rely-on-systemd.mdwn
Normal file
88
blog/do-not-rely-on-systemd.mdwn
Normal file
|
@ -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]]
|
Loading…
Reference in a new issue