[gnome-continuous-yocto/gnomeostree-3.28-rocko: 1635/8267] useradd-staticids.bbclass: trigger reparsing when table files change



commit a9aef4087b0755286b998fb3a0e4d81157236644
Author: Patrick Ohly <patrick ohly intel com>
Date:   Thu Jul 28 11:43:02 2016 +0200

    useradd-staticids.bbclass: trigger reparsing when table files change
    
    This addresses (among others) the following problem:
    - USERADD_ERROR_DYNAMIC=error causes a recipe to get skipped
      because a static ID entry is missing
    - the entry gets added to the file
    - using the recipe still fails with the same error as before
      because the recipe gets loaded from the cache instead
      of re-parsing it with the new table content
    
    (From OE-Core rev: 799c93592a9aac571d6dc05529437c0eec7b08b8)
    
    Signed-off-by: Patrick Ohly <patrick ohly intel com>
    Signed-off-by: Ross Burton <ross burton intel com>
    Signed-off-by: Richard Purdie <richard purdie linuxfoundation org>

 meta/classes/useradd-staticids.bbclass |   13 +++++++++++++
 1 files changed, 13 insertions(+), 0 deletions(-)
---
diff --git a/meta/classes/useradd-staticids.bbclass b/meta/classes/useradd-staticids.bbclass
index 149245b..46d4a4b 100644
--- a/meta/classes/useradd-staticids.bbclass
+++ b/meta/classes/useradd-staticids.bbclass
@@ -285,6 +285,19 @@ def update_useradd_static_config(d):
 
         return ";".join(newparams).strip()
 
+    # The parsing of the current recipe depends on the content of
+    # the files listed in USERADD_UID/GID_TABLES. We need to tell bitbake
+    # about that explicitly to trigger re-parsing and thus re-execution of
+    # this code when the files change.
+    bbpath = d.getVar('BBPATH', True)
+    for varname, default in (('USERADD_UID_TABLES', 'files/passwd'),
+                             ('USERADD_GID_TABLES', 'files/group')):
+        tables = d.getVar(varname, True)
+        if not tables:
+            tables = default
+        for conf_file in tables.split():
+            bb.parse.mark_dependency(d, bb.utils.which(bbpath, conf_file))
+
     # Load and process the users and groups, rewriting the adduser/addgroup params
     useradd_packages = d.getVar('USERADD_PACKAGES', True)
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]