toolbox: Add tooling for exporting system extension from container
systemd-sysext provides a mechanism to extend the underlying system in a well-defined manner without tainting /usr.
Extend the existing toolbox tooling to allow creating a system extension from the toolbox container, as long as the base system is compatible (which right now means F41).
The workflow implemented here is as follows:
$ (cd mutter; meson-build --sysext)
$ (cd gnome-shell; meson-build --sysext)
$ sysext-update
This sets up a system extension that contains mutter and gnome-shell, installs it to /run/extensions, and merges it.
After a log out, the custom built gnome-shell replaces the executable from the host. If things go wrong, a reboot will restore the original system (because runtime extensions don't persist).
If everything works well, sysext-update --system
can be used to
make the extension persistent.
Includes !3497 (merged).