Hello all,
Over the past few months, I've been working on building new image build descriptions for the CentOS Hyperscale SIG and Fedora Cloud WG so we can migrate away from Oz/ImageFactory[0].
One detour that I took as part of doing this is an attempt to simplify the creation of live media. The tool I'm using for the Hyperscale SIG live media for CentOS Stream 9 is called kiwi[1] and it notably does not support the same script merging+inheritance model that Lorax[2] and livecd-tools[3] support that we rely on for correctly assembling the livesys init script (!!!) used to bootstrap the live environment correctly.
I took a day to analyze the scripts across all the live media we have right now and made an initial attempt to convert them into more regular scripts that are invoked from systemd services. The result is livesys-scripts, which just landed in Fedora and EPEL 8/9.
The project sources for livesys-scripts is here: https://pagure.io/livesys-scripts
The livesys-scripts package should be agnostic to the image build tool. If you're previously relying on assembling the init script (e.g. fedora-kickstarts), the way to switch over is:
1. Delete the init script assembly logic from your kickstarts 2. Add livesys-scripts to %packages section 3. Enable livesys.service and livesys-late.service in services stanza 4. If your live ISO has a desktop environment in it, set livesys_session in /etc/sysconfig/livesys to load the correct subscript in %post. (The choices currently are: gnome, kde, cinnamon, mate, xfce, lxqt, lxde, soas, i3)
If more desktops need to be supported, contribution via pull request is welcome! :)
The intent of this is to make it easier to support building Fedora(ish) live media across a wider range of tools and also to synchronize what it does with improvements in dracut over time. The livesys-scripts are old and much of its functionality belongs in dracut itself. This is something that will hopefully be corrected in the near future...
So, give it a try and let me know how it goes! :)
[0]: https://imgfac.org/ [1]: http://osinside.github.io/kiwi/ [2]: https://weldr.io/lorax/ [3]: https://github.com/livecd-tools/livecd-tools