Mass surveillance is bad, actually. So here's a fork of systemd with surveillance enablement removed, which will be kept up-to-date with other changes in systemd/main. However you use this, or do not, is your choice and yours alone.
Note: https://github.com/Jeffrey-Sardina/liberated-systemd and https://github.com/Jeffrey-Sardina/systemd are interchangeable aliases. Most documenation refers to the latter for consistency, but either may be used.
The purpose of Liberated systemd is to do exactly one thing, and do it well: removing surveillance enablement from base systemd. Specifically, here is what I mean by surveillance: surveillance is the tooling that enables or facilitates collection of any personal information that does not arise from technical needs for systemd. The primary offender of this is, of course, age verification. If systemd later adds in support for other surveillance mechanisms, those will also be removed.
What this also means is that Liberated systemd is not a divergent development project. It will not introduce new features, correct bugs or security issues, or implement optimizations. If you want to contribute to any of those things, the correct way to do so is to raise a PR against the base systemd/systemd repo. This repo exists only to remove surveillance enablement.
Detailed blog post: https://medium.com/@jeffrey.sardina/installing-liberating-systemd-a-guide-by-the-author-2a9823192dd3
In short, first,you must understand the risks. Liberated systemd currently is, essentially, a nightly build. This means:
- it might not be as stable as a named release of base systemd
- it might have new, changed, or deprecated features relative to the most recent named releases of base systemd
- therefore, there is potential for version mismatches with what your OS expects, as the nightly version is likely newer than that named release most distros install
Further, Systemd is the first process to run on your computer -- if you corrupt it, your computer will not boot. So whenever you go about changing the installed version -- be very careful. This means:
- record everything you do
- have backups of all your data
- have a live-bootable USB / CD / etc just in case
- go slowly, and understand the effects of all commands before you run them
- Don't install anything else at the same time as Liberated systemd, and reboot after you install. This way, if you run into issues, you can track down what caused it more easily. Only install other programs once you've verified Liberated systemd is working correctly on a fresh boot.
- make sure your distro is using systemd! Almost all Linux distros do (Debian, Ubuntu, Arch, Fedora, Red Hat, etc). But some distros, such as Artix and Void, use other init systems (and are anti-surveillance already). Liberated systemd only matters if your distro runs systemd.
Everyone's local setup is different, and what works for one personmight not work for you. I highly recommend test-installing in a VM before running on your actual computer.
Here is the set of commands you can use to install Liberated systemd from source. This is how I run Liberated systemd on my Arch and Ubuntu (26.04 / "resolute") systems, although the commands should work on any Linux distro. First, we check the current version of systemd:
systemctl --version # output will contain something like "systemd 259 (259.5-0ubuntu2)"You'll also need to know your OS release:
cat /etc/*-release # see the line DISTRIB_RELEASE=<release>
# in some cases (such as Ubuntu) you instead must use DISTRIB_CODENAME=<release>Then, we pull and build Liberated systemd from source:
# pull Liberated systemd source code
git clone https://github.com/Jeffrey-Sardina/systemd.git # this is an alias of https://github.com/Jeffrey-Sardina/liberated-systemd
# pull mkosi -- latest version
git clone https://github.com/systemd/mkosi.git
# build the newimage with MKOSI
# your distribtuion must beone of: fedora,debian,kali,ubuntu,postmarketos,arch,opensuse,mageia,centos,rhel,rhel-ubi,openmandriva,rocky,alma,azure,custom
# replace <distribution> and <release> with their correct values
# this may take some time
cd systemd/ # or `cd liberated-systemd/`, if you cloned from the other alias
../mkosi/bin/mkosi -d <distribution> -r <release> -t none -f # see: https://systemd.io/HACKING/Finally, we install the built packages (again, see https://systemd.io/HACKING/). The command differs based on your OS:
# Fedora/CentOS
run0 dnf upgrade build/mkosi.builddir/<distribution>~<release>~<architecture>/*.rpm
#Debian/Ubuntu
run0 apt-get install build/mkosi.builddir/<distribution>~<release>~<architecture>/*.deb
# the ./ is needed to tell apt to look for local files, rather than online ones
# Arch Linux
run0 pacman --upgrade --needed --noconfirm build/mkosi.builddir/<distribution>~<release>~<architecture>/*.pkg.tar
# OpenSUSE
run0 zypper --non-interactive install --allow-unsigned-rpm build/mkosi.builddir/<distribution>~<release>~<architecture>/*.rpmFinally, check the version again to verify you have upgraded:
systemctl --version # output should be different than the previous version checkReboot your computer, and congratulations! Your computer is now liberated from age verification enablement!
**Note that installing this way won't have automatic upodate. You'll need to update manually to keep your system secure with the latest security patches.
There are community-made packages you can install (aside - I'm stunned that others have done this, and absolutely love it!). That said, I did not create these, have not tested them, and cannot take credit (or responsibility) for them - so make sure you understand what they are doing before you install them. But if you'd like, here is a list of the ones I am aware of:
- For Arch (via AUR): https://aur.archlinux.org/packages/systemd-liberated-git (Credit: zeakz)
Liberated systemd will be updated at least weekly. Note that the base systemd repo is updated very frequently -- typically 20-30 commits in a day. Many of these come from merging PRs with multiple commits in their history. As a result, it's quite common to see Liberated systemd behind by 50 or more commits -- even when its code is only a few days behind. So check on the commit dates as well if you want to know how up-to-date Liberated systemd is.
I do currently have a setup that would allow automating these updates. I have so far held back from full automation, however, since I prefer to scan new commits manually to make sure there are no more surveillance-enabling changes. So far this approach has worked well. If the manner in which I maintain this changes, I'll update here.
It's quite simple: systemd, very nicely, has (mostly) atomic commits. There is exactly one commit (https://github.com/systemd/systemd/commit/acb6624fa19ddd68f9433fb0838db119fe18c3ed) that added in all tooling (both functional and data-wise) needed to enable age verification. I reversed the surveillance enablement in this commit, and have kept all other changes since. You can see the patch file used to revert the commit here: https://github.com/Jeffrey-Sardina/systemd-suite/blob/main/main.patch
Since age collection is not needed for any aspect of systemd, this does not affect other aspects of systemd. Any downstream systems that attempt to call age-verification-related functions on Liberated systemd will therefore encounter an error. This is done by design. This is also why I have not simply created a "default age" as a lie -- it's about denying applications the ability to assume the presence of an API that enables mass surveillance.
To see how I run testing for this fork, see: https://github.com/Jeffrey-Sardina/systemd-suite. (In short, I run their unit tests and CI pipeline before pushing changes. This includes testing Liberated systemd in a VM.)
In order to allow users to avoid MicroSlop's ecosystem, this repository is made available via Gitea and Codeberg, on top of GitHub. The contents of all repositories are identical, and updated at the same time.
- github - https://github.com/Jeffrey-Sardina/systemd
- codeberg (mirror) - https://codeberg.org/Jeffrey-Sardina/systemd
- gitea (mirror) - https://gitea.com/Jeffrey-Sardina/systemd
Note that https://github.com/Jeffrey-Sardina/systemd and https://github.com/Jeffrey-Sardina/liberated-systemd are fully interchangeable aliases. https://github.com/Jeffrey-Sardina/liberated-systemd was created to allow the repo to be indexed on search engines. Both point to the same repo.
If you are interested, you can find the Liberated systemd dev log here: https://github.com/Jeffrey-Sardina/systemd-suite/blob/main/DEV-LOG.md.
Only in meta-data files. Specifically, aside from code changes needed to liberate systemd from surveillance tooling, I have edited:
- this README (
/README.md) - the Code of Conduct (
docs/CODE_OF_CONDUCT.md)- the section giving contacts of base
systemddevs has been removed -- since the moderators of basesystemdare, obviously, not a part of Liberatedsystemd.
- the section giving contacts of base
- the Contributing page (
docs/CONTRIBUTING.md)- this has been edited to explain how to contribute to Liberated
systemd.
- this has been edited to explain how to contribute to Liberated
- the Security page (
docs/SECURITY.md)- this has been edited to direct all security-related concerns to base
systemd.
- this has been edited to direct all security-related concerns to base
- the Citation file (
CITATION.cff)- this has been edited to correctly identify this repo as Liberated
systemd, a fork ofsystemd/systemd.
- this has been edited to correctly identify this repo as Liberated
The original systemd readme is included below for reference.
System and Service Manager
Most documentation is available on systemd's web site.
Assorted, older, general information about systemd can be found in the systemd Wiki.
Information about build requirements is provided in the README file.
Consult our NEWS file for information about what's new in the most recent systemd versions.
Please see the Code Map for information about this repository's layout and content.
Please see the Hacking guide for information on how to hack on systemd and test your modifications.
Please see our Contribution Guidelines for more information about filing GitHub Issues and posting GitHub Pull Requests.
When preparing patches for systemd, please follow our Coding Style Guidelines.
If you are looking for support, please contact our mailing list, join our IRC channel #systemd on libera.chat or Matrix channel
Stable branches with backported patches are available in the stable repo.
We have a security bug bounty program sponsored by the Sovereign Tech Fund hosted on YesWeHack
Repositories with distribution packages built from git main are available on OBS, and also repositories with packages built from the latest stable release
