California's AB 1043 and similar state laws require operating
system providers to collect age data from users and expose it to applications via API. No Linux
distribution has shipped an application-facing compliance mechanism yet, but the infrastructure
is forming: systemd merged a birthDate field into user records on March 18, 2026,
and an xdg-desktop-portal PR defines the API layer. Outside of Linux, MidnightBSD has shipped
a complete age verification subsystem — the aged(8) daemon
— making it the first operating system to merge a native implementation. This section
documents what's been built and what's being proposed so we can build removal tools to match.
At the OS level, AB 1043 creates three obligations for operating system distributors:
An accessible interface during account setup that prompts for the user's age or date of birth. The statute requires this to be presented during the initial setup flow — not buried in settings.
A programmatic interface that reports the user's age bracket to applications at runtime. Applications are expected to query this API and adjust their behavior accordingly — restricting content, disabling features, or refusing to launch for underage users.
The system must expose the minimum information necessary. Rather than providing an exact age or date of birth, the API should report only an age bracket.
The statute defines four age categories that the OS must distinguish:
Under 13
13 – 15
16 – 17
18+
In the proposed D-Bus interface, bracket 0 means "unknown" — the user has not
provided age information. This is the value Ageless Linux intends to return for all queries.
Four implementation paths are under discussion across the Linux ecosystem, and one has shipped outside of it. Each is documented in detail:
The org.freedesktop.AgeVerification1 proposal — a standalone D-Bus service
with SetAge, SetDateOfBirth, and GetAgeBracket
methods. Proposed by Aaron Rainbolt (Kicksecure/Whonix) on March 1, 2026. Cross-posted
to Debian, Ubuntu, Fedora, and freedesktop.org mailing lists.
The GNOME/systemd user account service. A natural place for age data, but described as "effectively obsolete" by KDE developer David Edmundson. Not formally proposed.
The emerging stack: systemd PR #40954 (merged March 18, 2026) adds a birthDate
field to user records. xdg-desktop-portal PR #1922 (open) defines the application-facing
age range API. The original D-Bus proposal author now recommends this path. Ageless Linux
already neutralizes the data layer; the API layer is being monitored.
The first operating system to ship a native age verification implementation. A Unix daemon with SQLite storage, a C library in libutil, a CLI tool, and four Unix groups for package-level enforcement. Merged March 9, 2026. Enabled by default. Not a proposal — production code.
A fork of systemd that reverts the birthDate field and stays in sync with
upstream for everything else. The most maintained of eleven forks that appeared after the
merge. AUR packaging, a downstream hardened fork (sonicd), and significant media coverage.
Where every major distribution stands: Debian, Ubuntu, Fedora, Arch, Pop!_OS, openSUSE, Red Hat, Valve, Kicksecure/Whonix, MidnightBSD, and others. Updated as positions change.