From 11e5d7bc814a265d338dbb06d82e7533c2187be2 Mon Sep 17 00:00:00 2001 From: Paul Eggleton Date: Thu, 19 Jan 2012 13:59:15 +0000 Subject: classes/patch: avoid backtrace when patch does not apply We don't need to see a Python stack backtrace when a patch does not apply, just the error output from patch, so trap these kinds of errors and ensure that we display the message and fail the task and nothing else. Fixes [YOCTO #1143] (From OE-Core rev: ce6c80a1e68c2af0b4b5fa27582ad9c9f119e5c1) Signed-off-by: Paul Eggleton Signed-off-by: Richard Purdie --- meta/lib/oe/patch.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'meta/lib') diff --git a/meta/lib/oe/patch.py b/meta/lib/oe/patch.py index f4ccb3e183..6f7f90095c 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 -- cgit v1.2.3-54-g00ecf