diff options
-rw-r--r-- | meta/classes/patch.bbclass | 5 | ||||
-rw-r--r-- | meta/lib/oe/patch.py | 10 |
2 files changed, 9 insertions, 6 deletions
diff --git a/meta/classes/patch.bbclass b/meta/classes/patch.bbclass index 471c32bce..1ea4bc5e0 100644 --- a/meta/classes/patch.bbclass +++ b/meta/classes/patch.bbclass @@ -155,7 +155,10 @@ python patch_do_patch() { patchset.Import({"file":local, "strippath": parm['striplevel']}, True) except Exception as exc: bb.fatal(str(exc)) - resolver.Resolve() + try: + resolver.Resolve() + except bb.BBHandledException as e: + bb.fatal(str(e)) } patch_do_patch[vardepsexclude] = "PATCHRESOLVE" diff --git a/meta/lib/oe/patch.py b/meta/lib/oe/patch.py index f4ccb3e18..6f7f90095 100644 --- a/meta/lib/oe/patch.py +++ b/meta/lib/oe/patch.py @@ -2,14 +2,14 @@ import oe.path import os import bb.utils, bb.msg, bb.data, bb.fetch2 -class NotFoundError(Exception): +class NotFoundError(bb.BBHandledException): def __init__(self, path): self.path = path def __str__(self): return "Error: %s not found." % self.path -class CmdError(Exception): +class CmdError(bb.BBHandledException): def __init__(self, exitstatus, output): self.status = exitstatus self.output = output @@ -207,7 +207,7 @@ class QuiltTree(PatchSet): # read series -> self.patches seriespath = os.path.join(self.dir, 'patches', 'series') if not os.path.exists(self.dir): - raise Exception("Error: %s does not exist." % self.dir) + raise NotFoundError(self.dir) if os.path.exists(seriespath): series = file(seriespath, 'r') for line in series.readlines(): @@ -228,7 +228,7 @@ class QuiltTree(PatchSet): if sys.exc_value.output.strip() == "No patches applied": return else: - raise sys.exc_value + raise output = [val for val in output.split('\n') if not val.startswith('#')] for patch in self.patches: if os.path.basename(patch["quiltfile"]) == output[-1]: @@ -336,7 +336,7 @@ class NOOPResolver(Resolver): except Exception: import sys os.chdir(olddir) - raise sys.exc_value + raise # Patch resolver which relies on the user doing all the work involved in the # resolution, with the exception of refreshing the remote copy of the patch |