[oe-commits] [openembedded-core] 01/02: base: Improve module import error message

git at git.openembedded.org git at git.openembedded.org
Wed Oct 2 14:05:43 UTC 2019


This is an automated email from the git hooks/post-receive script.

rpurdie pushed a commit to branch master-next
in repository openembedded-core.

commit 9da9d787db1906c2ba37dd738b7cf06c9ad0b9c3
Author: Richard Purdie <richard.purdie at linuxfoundation.org>
AuthorDate: Wed Oct 2 14:59:18 2019 +0100

    base: Improve module import error message
    
    Turn:
    
    ERROR: Unable to parse Var <OE_IMPORTED[:=]>
    Traceback (most recent call last):
      File "Var <OE_IMPORTED[:=]>", line 1, in <module>
      File "/media/build1/poky/meta/classes/base.bbclass", line 35, in oe_import(d=<bb.data_smart.DataSmart object at 0x7f1d941ad208>):
             for toimport in oe.data.typed_value("OE_IMPORTS", d):
        >        imported = __import__(toimport)
                 inject(toimport.split(".", 1)[0], imported)
      File "/media/build1/poky/meta/lib/oe/sstatesig.py", line 267, in <module>:
    
        >class SignatureGeneratorOEEquivHash(SignatureGeneratorOEBasicHashMixIn, bb.siggen.SignatureGeneratorUniHashMixIn, bb.siggen.SignatureGeneratorBasicHash):
             name = "OEEquivHash"
    bb.data_smart.ExpansionError: Failure expanding variable OE_IMPORTED[:=], expression was ${@oe_import(d)} which triggered exception AttributeError: module 'bb.siggen' has no attribute 'SignatureGeneratorUniHashMixIn'
    
    into:
    ERROR: Error importing OE modules: module 'bb.siggen' has no attribute 'SignatureGeneratorUniHashMixIn'
    
    which can then trigger a version mismatch error message.
    
    Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
---
 meta/classes/base.bbclass | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass
index 0c8a4b2..d3184ec 100644
--- a/meta/classes/base.bbclass
+++ b/meta/classes/base.bbclass
@@ -32,9 +32,11 @@ def oe_import(d):
 
     import oe.data
     for toimport in oe.data.typed_value("OE_IMPORTS", d):
-        imported = __import__(toimport)
-        inject(toimport.split(".", 1)[0], imported)
-
+        try:
+            imported = __import__(toimport)
+            inject(toimport.split(".", 1)[0], imported)
+        except AttributeError as e:
+            bb.error("Error importing OE modules: %s" % str(e))
     return ""
 
 # We need the oe module name space early (before INHERITs get added)

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Openembedded-commits mailing list