image-account-extenstion: rebuild on varflag changes

Message ID 20240417075851.3916384-1-benedikt.niedermayr@siemens.com
State Rejected, archived
Headers show
Series image-account-extenstion: rebuild on varflag changes | expand

Commit Message

Benedikt Niedermayr April 17, 2024, 7:58 a.m. UTC
From: Benedikt Niedermayr <benedikt.niedermayr@siemens.com>

When adding items (e.g. foo) to the USER or GROUP variables, the
buildsystem automatically creates new variables (USER_foo).
One can then set these variables, or more precise, the variable
flags (e.g. USER_foo[password]) to control differents aspects
of the user creation.
Isar does not trigger a rebuild when applying changes to these
variable flags since they are not recognized by the
tasks signature generation.

Signed-off-by: Benedikt Niedermayr <benedikt.niedermayr@siemens.com>
---
 meta/classes/image-account-extension.bbclass | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

Patch

diff --git a/meta/classes/image-account-extension.bbclass b/meta/classes/image-account-extension.bbclass
index 3d4e1d1dd175..7cfd5a6b9de5 100644
--- a/meta/classes/image-account-extension.bbclass
+++ b/meta/classes/image-account-extension.bbclass
@@ -8,6 +8,16 @@ 
 USERS ??= ""
 GROUPS ??= ""
 
+python() {
+    for entry in (d.getVar("GROUPS") or "").split():
+        group_entry = "GROUP_{}".format(entry)
+        d.appendVarFlag("image_postprocess_accounts", "vardeps", " {}".format(group_entry))
+
+    for entry in (d.getVar("USERS") or "").split():
+        user_entry = "USER_{}".format(entry)
+        d.appendVarFlag("image_postprocess_accounts", "vardeps", " {}".format(user_entry))
+}
+
 def image_create_groups(d: "DataSmart") -> None:
     """Creates the groups defined in the ``GROUPS`` bitbake variable.
 
@@ -134,7 +144,7 @@  python image_postprocess_accounts() {
     import os
     if d.getVar("SOURCE_DATE_EPOCH") != None:
         os.environ["SOURCE_DATE_EPOCH"] = d.getVar("SOURCE_DATE_EPOCH")
- 
+
     image_create_groups(d)
     image_create_users(d)
 }