Skip to content

Instantly share code, notes, and snippets.

@awdemos
Last active May 2, 2026 23:43
Show Gist options
  • Select an option

  • Save awdemos/2afc60416a62eae2b92ef7eb145dd0f7 to your computer and use it in GitHub Desktop.

Select an option

Save awdemos/2afc60416a62eae2b92ef7eb145dd0f7 to your computer and use it in GitHub Desktop.
Disable Fedora Age Verification
Fedora Atomic (e.g., Silverblue, Kinoite) uses rpm-ostree for immutable /usr, so traditional `systemctl mask` on host services like systemd-userdbd requires layering or overrides, while user-level masking persists across rebase. These steps target age verification via systemd-userdb birthDate field and AccountsService integration. Reboot and `rpm-ostree status` after; test in toolbox for safety. [discussion.fedoraproject](https://discussion.fedoraproject.org/t/a-practical-architectural-solution-to-os-level-age-verification-laws/183387)
## Core Removal
Layer tools to override packages or drop-ins for persistence post-rebase.
- **User-level mask (quickest, survives updates)**: `systemctl --user mask --now systemd-userdbd.service systemd-userdbd.socket xdg-desktop-portal.service`—blocks per-user D-Bus queries. [github](https://github.com/systemd/systemd/issues/15175)
- **Host mask systemd-userdbd**: `rpm-ostree override remove systemd-userdbd` then `rpm-ostree install systemd` (or layer `systemd-libs`); rebase with `rpm-ostree rebase --uninstall systemd-userdbd` if available. [github](https://github.com/coreos/rpm-ostree/issues/4938)
- **Pin pre-feature systemd**: Download RPM (e.g., systemd-256.x pre-PR#40954), `rpm-ostree override replace ./systemd-*.rpm`; avoids upstream changes. [discussion.fedoraproject](https://discussion.fedoraproject.org/t/a-practical-architectural-solution-to-os-level-age-verification-laws/183387?page=2)
## Metadata Edit
AccountsService files are in /var/lib (writable).
- Edit `/var/lib/AccountsService/users/$USER`: Add `BirthDate=1980-01-01` or `AgeBracket=18+`; `sudo systemctl restart accounts-daemon`. [facebook](https://www.facebook.com/groups/GNUAndLinux/posts/10174734331440019/)
- Persist via rpm-ostree: `rpm-ostree layer --allow-inactive accounts-service` if needed for daemon. [docs.fedoraproject](https://docs.fedoraproject.org/en-US/quick-docs/displaying_user_prompt_on_gnome_login_screen/)
## Decision Matrix
| Method | Pros | Cons | Atomic Fit |
|--------|------|------|------------|
| User mask | No rebase disruption; app-level block [github](https://github.com/systemd/systemd/issues/15175) | User-session only | Best starter |
| rpm-ostree override | Removes package files [github](https://github.com/coreos/rpm-ostree/issues/4938) | Breaks on conflicts | For host services |
| Custom OSTree | Full rebuild sans feature [news.ycombinator](https://news.ycombinator.com/item?id=39315880) | High effort | Expert |
| Forked systemd | Clean upstream sync [youtube](https://www.youtube.com/watch?v=J7ErSdJLa3w) | Compile Rust-like | Long-term |
## Expert Commentary
Atomic's design favors overrides for compliance opt-out, akin to open-source patching ethos—use `rpm-ostree status --json` for verification. Socratic: Prioritizing AI dev stability in Abilene, does CA law apply, or preempt via Texas stance? Fork "Liberated systemd" for immutable purity if overrides insufficient. [news.ycombinator](https://news.ycombinator.com/item?id=39315880)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment