The developers of GNOME OS, an experimental distribution for GNOME developers and testers that allows them to assess the current state of the desktop environment, explore emerging features, and test their applications in the development branches of GNOME, have announced the transition to using the systemd-sysupdate component for atomic system updates. The aim of this change is to adapt GNOME OS nightly builds for daily quality control of GNOME development.
Currently, for forming and updating the contents of the root partition of GNOME OS, the OSTree system is utilized, which allows the system image to be atomically updated from a Git-like repository. The system partition is mounted in read-only mode, and updates are delivered in small portions containing changes relative to the previous state (delta updates), making it easy to roll back the system to previous versions and verify whether the identified bug is present during the testing of GNOME.
The systemd-sysupdate tool is available starting with systemd 251 and is designed for automatically identifying, downloading, and installing updates using an atomic mechanism for replacing partitions, files, or directories. Systemd-sysupdate allows the use of two independent partitions/files/directories, one containing the currently running resource and the other where the new update is installed, after which the partitions/files/directories are swapped.
Among the advantages of transitioning GNOME OS from OSTree to systemd-sysupdate is the ability to utilize a verified boot process, where the chain of trust extends from the bootloader to the system components of the distribution. Additionally, using systemd-sysupdate will enable more complete integration with systemd and leverage an architecture that treats ready-to-use system images as indivisible components.
Experiments in creating sysupdate images with UEFI Secure Boot support were conducted last fall. Currently, two variants of GNOME OS builds based on OSTree and systemd-sysupdate are available. The next step is to ensure sysupdate integration with GNOME and provide a graphical interface for system updates.
Currently, sysupdate-based update management is performed only from the command line and requires root privileges. A D-Bus service has already been developed for integration with GNOME, which, in conjunction with Polkit, allows updates to be managed by non-privileged users. The developed D-Bus service and the associated utility updatectl are intended for inclusion in the core of systemd.
In the future, it is planned to add sysupdate-based update management functionality to the GNOME Software application, for which an experimental plugin gs-plugin-systemd-sysupdate has been prepared, enabling OS updates via the DBus service to sysupdate. Among the unresolved tasks is the need to add delta update support to systemd-sysupdate (currently, images are loaded entirely) and to create tools for maintaining several versions of the operating system concurrently based on stable and in-development branches of GNOME.
Source: opennet.ru
