From: Anton Kachalov Date: Fri, 15 Jan 2021 15:43:23 +0000 (+0100) Subject: rootfs: add option to allow delayed postinsts on read-only rootfs X-Git-Tag: lucaceresoli/bug-15201-perf-libtraceevent-missing~9091 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0977204e16279b117811b5d5cdac5918287e95ac;p=thirdparty%2Fopenembedded%2Fopenembedded-core-contrib.git rootfs: add option to allow delayed postinsts on read-only rootfs Example use case in OpenBMC: rootfs is squashfs and the system has either overlayfs for whole rootfs or for some parts (e.g. /etc). This option will allow to create migration one-shot postinsts using "pkg_postinst_ontarget_${PN}" routines defined in recipes to fix files under upper workdir in overlayfs. Signed-off-by: Anton D. Kachalov Signed-off-by: Richard Purdie --- diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass index 045f4494c8b..3239d5cf5e4 100644 --- a/meta/classes/image.bbclass +++ b/meta/classes/image.bbclass @@ -33,7 +33,7 @@ INHIBIT_DEFAULT_DEPS = "1" # IMAGE_FEATURES may contain any available package group IMAGE_FEATURES ?= "" IMAGE_FEATURES[type] = "list" -IMAGE_FEATURES[validitems] += "debug-tweaks read-only-rootfs stateless-rootfs empty-root-password allow-empty-password allow-root-login post-install-logging" +IMAGE_FEATURES[validitems] += "debug-tweaks read-only-rootfs read-only-rootfs-delayed-postinsts stateless-rootfs empty-root-password allow-empty-password allow-root-login post-install-logging" # Generate companion debugfs? IMAGE_GEN_DEBUGFS ?= "0" diff --git a/meta/lib/oe/rootfs.py b/meta/lib/oe/rootfs.py index 4b747dd0f41..249c685dcfc 100644 --- a/meta/lib/oe/rootfs.py +++ b/meta/lib/oe/rootfs.py @@ -217,6 +217,9 @@ class Rootfs(object, metaclass=ABCMeta): self.progress_reporter.next_stage() if bb.utils.contains("IMAGE_FEATURES", "read-only-rootfs", + True, False, self.d) and \ + not bb.utils.contains("IMAGE_FEATURES", + "read-only-rootfs-delayed-postinsts", True, False, self.d): delayed_postinsts = self._get_delayed_postinsts() if delayed_postinsts is not None: