From 38a306d00d42950ea8d04198123288ccfd7f370e Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Fri, 30 May 2014 15:56:11 +0100 Subject: [PATCH] bitbake: build/utils: Fix broken exception handling Checking for explicit exception names is bad, we also want to be able top rely on inheritance. Fix these checks to be part of the real except clauses so SkipPackage is recognised as being inherited from SkipRecipe. (Bitbake rev: b131229145e1f2c372d6230a7b554e436c13c3f9) Signed-off-by: Richard Purdie --- bitbake/lib/bb/build.py | 5 ++--- bitbake/lib/bb/utils.py | 9 ++------- 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/bitbake/lib/bb/build.py b/bitbake/lib/bb/build.py index 98ee36c..32022d8 100644 --- a/bitbake/lib/bb/build.py +++ b/bitbake/lib/bb/build.py @@ -242,10 +242,9 @@ def exec_func_python(func, d, runfile, cwd=None): try: comp = utils.better_compile(code, func, bbfile) utils.better_exec(comp, {"d": d}, code, bbfile) + except (bb.parse.SkipRecipe, bb.build.FuncFailed): + raise except: - if sys.exc_info()[0] in (bb.parse.SkipRecipe, bb.build.FuncFailed): - raise - raise FuncFailed(func, None) finally: bb.debug(2, "Python function %s finished" % func) diff --git a/bitbake/lib/bb/utils.py b/bitbake/lib/bb/utils.py index c179394..96d8218 100644 --- a/bitbake/lib/bb/utils.py +++ b/bitbake/lib/bb/utils.py @@ -354,16 +354,11 @@ def better_exec(code, context, text = None, realfile = ""): code = better_compile(code, realfile, realfile) try: exec(code, get_context(), context) - except bb.BBHandledException: - # Error already shown so passthrough - raise - except bb.data_smart.ExpansionError: + except (bb.BBHandledException, bb.parse.SkipRecipe, bb.build.FuncFailed, bb.data_smart.ExpansionError): + # Error already shown so passthrough, no need for traceback raise except Exception as e: (t, value, tb) = sys.exc_info() - - if t in [bb.parse.SkipRecipe, bb.build.FuncFailed]: - raise try: _print_exception(t, value, tb, realfile, text, context) except Exception as e: -- 2.7.4