[bitbake-devel] [PATCH v3] bitbake/lib/bb/cookerdata.py: Improve response when bitbake-layers can't find layer conf file

Humberto Ibarra humberto.ibarra.lopez at intel.com
Thu May 12 19:17:51 UTC 2016


If an invalid layer is added to bblayers.conf, the parsing of said file
ends with a trace and an "Unable to parse" exception. This is not the
ideal output, especially considering that we know exactly why this is failing.

This patch handles this situation failing with a graceful error message. The
message shows the path to the conf file that couldn't be found.

[Yocto #9506]

Signed-off-by: Humberto Ibarra <humberto.ibarra.lopez at intel.com>
---
 bitbake/lib/bb/cookerdata.py | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/bitbake/lib/bb/cookerdata.py b/bitbake/lib/bb/cookerdata.py
index 50259a9..a1b0457 100644
--- a/bitbake/lib/bb/cookerdata.py
+++ b/bitbake/lib/bb/cookerdata.py
@@ -178,9 +178,13 @@ def catch_parse_error(func):
         try:
             return func(fn, *args)
         except IOError as exc:
-            import traceback
-            parselog.critical(traceback.format_exc())
-            parselog.critical("Unable to parse %s: %s" % (fn, exc))
+            import errno
+            if exc.errno == errno.ENOENT:
+                parselog.critical("Unable to find the configuration file: %s" % fn)
+            else:
+                import traceback
+                parselog.critical(traceback.format_exc())
+                parselog.critical("Unable to parse %s: %s" % (fn, exc))
             sys.exit(1)
         except bb.data_smart.ExpansionError as exc:
             import traceback
-- 
2.4.11




More information about the bitbake-devel mailing list