[gnome-continuous-yocto/gnomeostree-3.28-rocko: 4345/8267] bitbake: build.py: avoid exception when function is not defined



commit 478644aedf04ba4d861e27e2955a6afecd1bc311
Author: Patrick Ohly <patrick ohly intel com>
Date:   Tue Jan 24 17:32:24 2017 +0100

    bitbake: build.py: avoid exception when function is not defined
    
    exc_func() fails with a hard to debug exception when the
    function does not exist, for example due to a typo:
    
      ERROR: ...: Traceback (most recent call last):
        File "/work/bitbake/lib/bb/build.py", line 644, in exec_task
          return _exec_task(fn, task, d, quieterr)
        File "/work/bitbake/lib/bb/build.py", line 584, in _exec_task
          exec_func(func, localdata)
        File "/work/bitbake/lib/bb/build.py", line 198, in exec_func
          cleandirs = flags.get('cleandirs')
      AttributeError: 'NoneType' object has no attribute 'get'
    
    There is code further down which will print a warning, but we don't
    reach that unless we allow None as result of of d.getVarFlags() first.
    
    The warning is further down intentionally and has to stay there, to
    ensure that 'cleandirs' gets executed also for empty functions.
    
    (Bitbake rev: 25df3db5eeda9dbf417e67e96845f376e5c8e6b3)
    
    Signed-off-by: Patrick Ohly <patrick ohly intel com>
    Signed-off-by: Richard Purdie <richard purdie linuxfoundation org>

 bitbake/lib/bb/build.py |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
---
diff --git a/bitbake/lib/bb/build.py b/bitbake/lib/bb/build.py
index c6104a4..c08ef89 100644
--- a/bitbake/lib/bb/build.py
+++ b/bitbake/lib/bb/build.py
@@ -195,13 +195,13 @@ def exec_func(func, d, dirs = None, pythonexception=False):
         oldcwd = None
 
     flags = d.getVarFlags(func)
-    cleandirs = flags.get('cleandirs')
+    cleandirs = flags.get('cleandirs') if flags else None
     if cleandirs:
         for cdir in d.expand(cleandirs).split():
             bb.utils.remove(cdir, True)
             bb.utils.mkdirhier(cdir)
 
-    if dirs is None:
+    if flags and dirs is None:
         dirs = flags.get('dirs')
         if dirs:
             dirs = d.expand(dirs).split()


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