Three days after systemd merged
PR #40954
(adding a birthDate field to user records), Jeffrey Sardina published a fork that
reverts the change and nothing else. Liberated systemd strips the age verification infrastructure
from systemd and stays in sync with upstream for everything else. It is the most prominent of at
least eleven forks that appeared in the days following the merge.
Repository: github.com/Jeffrey-Sardina/systemd — 719 stars, 32 forks as of April 2026
Companion repo: systemd-suite — patch management, testing automation, CI validation
Maintainer: Jeffrey Sardina, researcher at Trinity College Dublin (ADAPT Centre)
License: GPL-2.0 / LGPL-2.1 (matching upstream systemd)
Created: March 21, 2026 — three days after the birthDate merge
Liberated systemd applies a single patch (main.patch) that reverts the upstream
commit adding birthDate support. The patch modifies 14 files — 10 functional
(source code, tests, man pages, documentation) and 4 repo-level metadata (rebranding to
Liberated systemd). The scope is narrow by design:
src/basic/time-util.c # date parsing utilities added for birthDate src/basic/time-util.h src/home/homectl.c # --birth-date= CLI option src/shared/user-record.c # birthDate field in user record structs src/shared/user-record.h src/shared/user-record-show.c # display code for birthDate src/test/test-time-util.c # associated tests src/test/test-user-record.c man/homectl.xml # man page documentation docs/USER_RECORD.md # userdb field documentation
The maintainer explicitly chose not to insert a fake default date of birth. Applications that call the age verification API get an error — the field does not exist. This is a deliberate design decision:
"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." — Jeffrey Sardina, Liberated systemd README
This contrasts with Ageless Linux's approach (setting birthDate to the epoch
or null) and is arguably more aggressive: rather than neutralizing the data, it removes the
infrastructure entirely.
The fork rebases against upstream systemd at least weekly. The systemd-suite repo is working toward automating this to near-real-time. Before pushing, the maintainer runs systemd's own CI pipeline (building from source and verifying that a VM boots). Because the birthDate code was a self-contained addition rather than a deeply integrated feature, most upstream commits merge without conflicts.
No major distribution has adopted Liberated systemd as its default. Packaging exists for individual users on Arch Linux:
The Arch User Repository provides systemd-liberated-git,
systemd-liberated-libs-git, systemd-liberated-ukify-git, and
systemd-liberated-tests-git — drop-in replacements for the official
systemd packages built from the Liberated systemd source.
Jarmoco/systemd-ageless-archpkg
provides a ready-to-use pacman repository with pre-built packages. Add it to
pacman.conf and the liberated packages replace official ones via standard
package management. Also supports local builds via PKGBUILD.
Liberated systemd is the most maintained of at least eleven forks that appeared after the birthDate merge. One notable second-generation fork uses it as upstream:
supersonic-xserver/sonicd
(27 stars) — a hardened fork that uses Liberated systemd as its upstream, adding
Clang/LLVM compilation, CodeQL security fixes, and a bypassAgeVerification
boolean field that defaults to true. Includes a null-attestation D-Bus interface
(src/aged/aged_bypass) and a management tool (sonicd-age-toggle.sh).
The remaining forks range from straightforward reverts to protest projects. Most are single-commit forks with no ongoing maintenance. Representative examples:
realName fieldSeveral additional protest forks exist with more colorful names. All share the same approach: revert the birthDate commit. Only Liberated systemd and sonicd maintain ongoing sync with upstream.
The systemd contributor who authored the original birthDate PR faced harassment, doxxing, and death threats after the merge, forcing them to disable issues and pull requests across their GitHub repositories. They subsequently proposed a compromise: implementing age verification as a configurable option in the Calamares installer framework, with an on/off default that individual distributions could set. This would let distributions that do not want age verification leave it off without maintaining a fork.
The contributor also predicted a future split in the Linux ecosystem — "mostly along the lines of independent distributions and those with corporate backing" — over how age verification infrastructure is handled.
The fork and the broader reaction to the birthDate merge received significant coverage:
Liberated systemd and Ageless Linux address the same problem from different layers of the stack. They are complementary, not competing:
become-ageless.sh sets
birthDate to the epoch (1970-01-01) or null. The field exists;
it reports nothing useful.The distinction matters at scale. Liberated systemd's approach breaks any application that assumes the field exists — a harder stance that forces the ecosystem to handle the absence. Ageless Linux's approach preserves API compatibility while rendering the data meaningless — a softer stance that avoids breakage but still defeats the purpose of age collection. Both refuse the premise that operating systems should facilitate age verification.