]> code.ossystems Code Review - openembedded-core.git/commitdiff
useradd-staticids.bbclass: catch missing uid/gid exceptions
authorMikko Ylinen <mikko.ylinen@intel.com>
Fri, 21 Oct 2016 07:05:45 +0000 (10:05 +0300)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Fri, 28 Oct 2016 10:27:33 +0000 (11:27 +0100)
The change to get rid of FuncFailed exceptions changed the behavior
of how missing uid/gid error are be handled. Instead of catching
the exception and handling that via bb.parse.SkipPackage(), a fatal
error was called.

This won't work with recipes that are unused and therefore do not have
UID/GIDs defined. The problem triggers when parsing all recipes (e.g.,
oe-selftest runs bitbake -p).

The right way to handle this is to raise bb.parse.SkipPackage(). This
will error correctly once the recipe is needed.

Signed-off-by: Mikko Ylinen <mikko.ylinen@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
meta/classes/useradd-staticids.bbclass

index afb580aedc29efe6b163b9a46dafd78423ecf496..4162774e9c7e93a143a58619056be542d5b4cb14 100644 (file)
@@ -53,8 +53,7 @@ def update_useradd_static_config(d):
     def handle_missing_id(id, type, pkg):
         # For backwards compatibility we accept "1" in addition to "error"
         if d.getVar('USERADD_ERROR_DYNAMIC', True) == 'error' or d.getVar('USERADD_ERROR_DYNAMIC', True) == '1':
-            #bb.error("Skipping recipe %s, package %s which adds %sname %s does not have a static ID defined." % (d.getVar('PN', True),  pkg, type, id))
-            bb.fatal("%s - %s: %sname %s does not have a static ID defined." % (d.getVar('PN', True), pkg, type, id))
+            raise NotImplementedError("%s - %s: %sname %s does not have a static ID defined. Skipping it." % (d.getVar('PN', True), pkg, type, id))
         elif d.getVar('USERADD_ERROR_DYNAMIC', True) == 'warn':
             bb.warn("%s - %s: %sname %s does not have a static ID defined." % (d.getVar('PN', True), pkg, type, id))
 
@@ -323,7 +322,7 @@ python __anonymous() {
         and not bb.data.inherits_class('native', d):
         try:
             update_useradd_static_config(d)
-        except bb.build.FuncFailed as f:
+        except NotImplementedError as f:
             bb.debug(1, "Skipping recipe %s: %s" % (d.getVar('PN', True), f))
             raise bb.parse.SkipPackage(f)
 }