Draft: Initial systemd support
UPDATE 2024-04-28 by ollieparanoid: make merge requests to master_staging_systemd
instead of this branch now! See https://wiki.postmarketos.org/wiki/Systemd for usage. Most things that are open discussion threads here can probably be fixed on that branch instead.
previous description:
This MR introduces a new systemd subdirectory with the necessary packages to build postmarketOS images using the systemd init system and GNOME mobile UI.
See https://gitlab.com/postmarketOS/pmaports/-/issues/2632 for additional context.
Main issues:
- Bootstrapping locally is a bit finnicky. Binary repo will fix this.
- The gnome-mobile and mutter-mobile packages are currently moved from temp/ to systemd/, as pmbootstrap can't handle multiple versions.
- We need to adjust pmbootstrap to ignore the systemd/ subdirectory unless building with systemd enabled to keep the systemd packages isolated.
- When the binary repo is available, pmbootstrap should automatically add it to chroots iff systemd support is enabled.
Pushing to this MR
To keep things organised, this MR actually targets the systemd-prep branch (!4956), this way the commits from there don't show up in this MR as well. This sounds like a rebasing nightmare but it's actually quite simple with rebase.updateRefs
, for those unfamiliar it works like this:
- do
git config rebase.updateRefs true
- checkout the
systemd-prep
branch andgit pull
- checkout the
systemd
branch andgit pull
- do all your changes on the systemd branch, make fixup commits and do an interactive rebase against master
- push both branch when done
When doing the interactive rebase you'll see a new update-ref
line, this tells git to update the ref that the systemd-prep
branch name refers to. So in this way the two branches will remain in-sync and we don't have commits duplicated across MRs.