summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta/classes/image.bbclass9
-rwxr-xr-xmeta/recipes-core/systemd/systemd-systemctl/systemctl9
2 files changed, 13 insertions, 5 deletions
diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass
index a23403c082..d2b2fb979e 100644
--- a/meta/classes/image.bbclass
+++ b/meta/classes/image.bbclass
@@ -33,7 +33,7 @@ INHIBIT_DEFAULT_DEPS = "1"
33# IMAGE_FEATURES may contain any available package group 33# IMAGE_FEATURES may contain any available package group
34IMAGE_FEATURES ?= "" 34IMAGE_FEATURES ?= ""
35IMAGE_FEATURES[type] = "list" 35IMAGE_FEATURES[type] = "list"
36IMAGE_FEATURES[validitems] += "debug-tweaks read-only-rootfs empty-root-password allow-empty-password allow-root-login post-install-logging" 36IMAGE_FEATURES[validitems] += "debug-tweaks read-only-rootfs stateless-rootfs empty-root-password allow-empty-password allow-root-login post-install-logging"
37 37
38# Generate companion debugfs? 38# Generate companion debugfs?
39IMAGE_GEN_DEBUGFS ?= "0" 39IMAGE_GEN_DEBUGFS ?= "0"
@@ -665,12 +665,11 @@ reproducible_final_image_task () {
665 fi 665 fi
666} 666}
667 667
668IMAGE_EXTRADEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd-systemctl-native', '', d)}"
669
670systemd_preset_all () { 668systemd_preset_all () {
671 systemctl --root="${IMAGE_ROOTFS}" --preset-mode=enable-only preset-all 669 systemctl --root="${IMAGE_ROOTFS}" --preset-mode=enable-only preset-all
672} 670}
673 671
674IMAGE_PREPROCESS_COMMAND_append = " ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd_preset_all;', '', d)} reproducible_final_image_task; " 672IMAGE_EXTRADEPENDS += "${@ 'systemd-systemctl-native' if bb.utils.contains('DISTRO_FEATURES', 'systemd', True, False, d) and not bb.utils.contains('IMAGE_FEATURES', 'stateless-rootfs', True, False, d) else ''}"
673IMAGE_PREPROCESS_COMMAND_append = " ${@ 'systemd_preset_all;' if bb.utils.contains('DISTRO_FEATURES', 'systemd', True, False, d) and not bb.utils.contains('IMAGE_FEATURES', 'stateless-rootfs', True, False, d) else ''} reproducible_final_image_task; "
675 674
676CVE_PRODUCT = "" 675CVE_PRODUCT = ""
diff --git a/meta/recipes-core/systemd/systemd-systemctl/systemctl b/meta/recipes-core/systemd/systemd-systemctl/systemctl
index d7d4e0d29a..7fdaf8ce03 100755
--- a/meta/recipes-core/systemd/systemd-systemctl/systemctl
+++ b/meta/recipes-core/systemd/systemd-systemctl/systemctl
@@ -241,6 +241,15 @@ def preset_all(root):
241 if state == "enable" or state is None: 241 if state == "enable" or state is None:
242 enable(root, service, location, services) 242 enable(root, service, location, services)
243 243
244 # If we populate the systemd links we also create /etc/machine-id, which
245 # allows systemd to boot with the filesystem read-only before generating
246 # a real value and then committing it back.
247 #
248 # For the stateless configuration, where /etc is generated at runtime
249 # (for example on a tmpfs), this script shouldn't run at all and we
250 # allow systemd to completely populate /etc.
251 (root / SYSCONFDIR / "machine-id").touch()
252
244 253
245def mask(root, *services): 254def mask(root, *services):
246 systemdir = root / SYSCONFDIR / "systemd" / "system" 255 systemdir = root / SYSCONFDIR / "systemd" / "system"