Disable running populate-systemd-preset at build time by default.
Although systemd runs enable-only presets at first boot, running this
step during image creation changes the enabled state of units before
systemd’s first-boot logic runs, ignores disable rules, and can cause
some services to fail during runtime.
Downstream users can opt in when preset population is required.
Opt-in:
ROOTFS_FEATURES:append = " populate-systemd-preset"
RECIPE-API-CHANGELOG.md | 14 ++++++++++++++
meta/classes-recipe/image.bbclass | 1 -
2 files changed, 14 insertions(+), 1 deletion(-)
diff --git a/RECIPE-API-CHANGELOG.md b/RECIPE-API-CHANGELOG.md
index 0bad8a44..46c8c905 100644
--- a/RECIPE-API-CHANGELOG.md
+++ b/RECIPE-API-CHANGELOG.md
@@ -962,3 +962,17 @@ INSTALLER_UNATTENDED_ABORT_ENABLE = "1"
# Optional: set countdown timeout in seconds (default 5)
INSTALLER_UNATTENDED_ABORT_TIMEOUT = "5"
```
+
+### Make populate-systemd-preset opt-in
+
+Running populate-systemd-preset at build time is disabled by default.
+Although systemd runs enable-only presets by default at first boot,
+running this step at build time changes the enabled state of units
+before systemd’s first-boot logic runs, ignores disable rules, and
+can cause some services to fail during runtime.
+
+Downstream users can explicitly enable this feature when preset
+population is required during image creation.
+
+Opt-in:
+ ROOTFS_FEATURES:append = " populate-systemd-preset"
diff --git a/meta/classes-recipe/image.bbclass b/meta/classes-recipe/image.bbclass
index e605bc80..47ed068d 100644
--- a/meta/classes-recipe/image.bbclass
+++ b/meta/classes-recipe/image.bbclass
@@ -101,7 +101,6 @@ ROOTFS_FEATURES += "\
export-dpkg-status \
clean-log-files \
clean-debconf-cache \
- populate-systemd-preset \
generate-sbom \
"
ROOTFS_PACKAGES += "${IMAGE_PREINSTALL} ${@isar_multiarch_packages('IMAGE_INSTALL', d)}"
--
2.47.3