[gnome-continuous-yocto/gnomeostree-3.28-rocko: 8122/8267] bitbake: main: Give a user readable error if we can't locate topdir



commit f7b90ab3eaf832bd81f3efc1dab4dcf6863ac284
Author: Richard Purdie <richard purdie linuxfoundation org>
Date:   Sat Oct 21 12:50:07 2017 +0100

    bitbake: main: Give a user readable error if we can't locate topdir
    
    Currently if you run bitbake in an invalid directory, the user experience
    is poor:
    
    birbake/lib/bb/main.py", line 427, in setup_bitbake
        topdir, lock = lockBitbake()
      File "./bitbake/lib/bb/main.py", line 494, in lockBitbake
        lockfile = topdir + "/bitbake.lock"
    TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'
    
    This ensures we exit straight away with a better error message.
    
    [YOCTO #12163]
    
    (Bitbake rev: 2a931d5e4ac092ce275f3a51e22b802689f511e6)
    
    Signed-off-by: Richard Purdie <richard purdie linuxfoundation org>

 bitbake/lib/bb/main.py |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)
---
diff --git a/bitbake/lib/bb/main.py b/bitbake/lib/bb/main.py
index a488c3d..7711b29 100755
--- a/bitbake/lib/bb/main.py
+++ b/bitbake/lib/bb/main.py
@@ -47,6 +47,9 @@ logger = logging.getLogger("BitBake")
 class BBMainException(Exception):
     pass
 
+class BBMainFatal(bb.BBHandledException):
+    pass
+
 def present_options(optionlist):
     if len(optionlist) > 1:
         return ' or '.join([', '.join(optionlist[:-1]), optionlist[-1]])
@@ -461,6 +464,8 @@ def setup_bitbake(configParams, configuration, extrafeatures=None):
 
                 if server_connection or configParams.server_only:
                     break
+            except BBMainFatal:
+                raise
             except (Exception, bb.server.process.ProcessTimeout) as e:
                 if not retries:
                     raise
@@ -491,6 +496,9 @@ def setup_bitbake(configParams, configuration, extrafeatures=None):
 
 def lockBitbake():
     topdir = bb.cookerdata.findTopdir()
+    if not topdir:
+        bb.error("Unable to find conf/bblayers.conf or conf/bitbake.conf. BBAPTH is unset and/or not in a 
build directory?")
+        raise BBMainFatal
     lockfile = topdir + "/bitbake.lock"
     return topdir, bb.utils.lockfile(lockfile, False, False)
 


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