classes/image-postproc: Enable systemd units based on systemd presets

Message ID 20250626103450.713318-1-alexander.heinisch@siemens.com
State Superseded, archived
Headers show
Series classes/image-postproc: Enable systemd units based on systemd presets | expand

Commit Message

alexander.heinisch June 26, 2025, 10:34 a.m. UTC
From: Alexander Heinisch <alexander.heinisch@siemens.com>

By default population of the presets is automatically done by systemd
on first-boot.
There are several issues with that:
1. The rootfs we get as a build artifact does not reflect the actual
system running in the field.
2. For setups without writeable /etc this fails. With that addition
it happens already at build time. Note we are only enabling additional
services, so services enabled during the package installation won't be
changed.

Signed-off-by: Alexander Heinisch <alexander.heinisch@siemens.com>
---
 meta/classes/image-postproc-extension.bbclass | 5 +++++
 1 file changed, 5 insertions(+)

Comments

Jan Kiszka June 26, 2025, 11:40 a.m. UTC | #1
On 26.06.25 12:34, alexander.heinisch via isar-users wrote:
> From: Alexander Heinisch <alexander.heinisch@siemens.com>
> 
> By default population of the presets is automatically done by systemd
> on first-boot.
> There are several issues with that:
> 1. The rootfs we get as a build artifact does not reflect the actual
> system running in the field.
> 2. For setups without writeable /etc this fails. With that addition

You likely want to start a new line or even paragraph after that last
sentence.

> it happens already at build time. Note we are only enabling additional
> services, so services enabled during the package installation won't be
> changed.

IOW, you only expect good things from this change, and there is no
reason to make this extension opt-in? Opt'ing out should be doable via
ROOTFS_POSTPROCESS_COMMAND:remove - if needed at all. Still, this is
some change we may want to consider documenting in RECIPES-API-CHANGELOG.

> 
> Signed-off-by: Alexander Heinisch <alexander.heinisch@siemens.com>
> ---
>  meta/classes/image-postproc-extension.bbclass | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/meta/classes/image-postproc-extension.bbclass b/meta/classes/image-postproc-extension.bbclass
> index 991bac4c..269b86c0 100644
> --- a/meta/classes/image-postproc-extension.bbclass
> +++ b/meta/classes/image-postproc-extension.bbclass
> @@ -95,3 +95,8 @@ image_posprocess_disable_systemd_firstboot() {
>          fi
>      fi
>  }
> +
> +ROOTFS_POSTPROCESS_COMMAND =+ "image_postprocess_populate_systemd_preset"
> +image_postprocess_populate_systemd_preset() {
> +    sudo chroot '${ROOTFSDIR}' systemctl preset-all --preset-mode="enable-only"
> +}

Jan

Patch

diff --git a/meta/classes/image-postproc-extension.bbclass b/meta/classes/image-postproc-extension.bbclass
index 991bac4c..269b86c0 100644
--- a/meta/classes/image-postproc-extension.bbclass
+++ b/meta/classes/image-postproc-extension.bbclass
@@ -95,3 +95,8 @@  image_posprocess_disable_systemd_firstboot() {
         fi
     fi
 }
+
+ROOTFS_POSTPROCESS_COMMAND =+ "image_postprocess_populate_systemd_preset"
+image_postprocess_populate_systemd_preset() {
+    sudo chroot '${ROOTFSDIR}' systemctl preset-all --preset-mode="enable-only"
+}