Accompanying non-systemd distros to replace GNOME’s new dependencies on systemd

Hello,

Happy to hear that you’re interested in collaborating on this, thank you.

The work isn’t done or in place upstream yet. I prioritized getting the blog post out first. So please look at Draft: Remove builtin startup (!145) · Merge requests · GNOME / gnome-session · GitLab

I don’t know how Shepherd works, so I can’t really give specific advice. However, you’ll need to replace the following with a Shepherd integration:

  • the systemd user service unit files. These are spread across all the different packages: localsearch, gnome-settings-daemon, gnome-disk-utility, and of course gnome-session itself
  • leader-main.c, which currently does some basic environment setup and then asks systemd to start gnome-session-${XDG_SESSION_TYPE}@${SESSION}.target and then handles session shutdown (SIGTERM → tell systemd to stop the service, services stop → quit the leader)
  • tools/gnome-session-ctl, which is called by various systemd checkpoints to communicate to the service and the leader when things happen

As for userdb, reach out on the systemd mailing list with questions. I’ll be happy to assist there

Best,
Adrian

3 Likes