diff options
author | Holger Freyther <zecke@selfish.org> | 2007-03-31 15:57:22 +0000 |
---|---|---|
committer | Holger Freyther <zecke@selfish.org> | 2007-03-31 15:57:22 +0000 |
commit | f4a53b765a6801f836586b5ee662b5f9392dcfab (patch) | |
tree | 5abee85a9289926dbd90dbfa0f267eb1788af721 | |
parent | 2c6b0e8608bfcfc1f97f9c6aee5b4c88296c20b2 (diff) |
classes/patch.bbclass: Make sure to raise func_failed on any exception from within Import
non existing patches raised a IOError by the md5sum method which was not
catched at all and lead bitbake to exit due an unhandled exception. This
is bad for all autobuilders.
-rw-r--r-- | classes/patch.bbclass | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/classes/patch.bbclass b/classes/patch.bbclass index 0a7b94cffc..07d18470f7 100644 --- a/classes/patch.bbclass +++ b/classes/patch.bbclass @@ -3,10 +3,20 @@ def patch_init(d): import os, sys + class NotFoundError(Exception): + def __init__(self, path): + self.path = path + def __str__(self): + return "Error: %s not found." % self.path + def md5sum(fname): import md5, sys - f = file(fname, 'rb') + try: + f = file(fname, 'rb') + except IOError: + raise NotFoundError(fname) + m = md5.new() while True: d = f.read(8096) @@ -24,11 +34,6 @@ def patch_init(d): def __str__(self): return "Command Error: exit status: %d Output:\n%s" % (self.status, self.output) - class NotFoundError(Exception): - def __init__(self, path): - self.path = path - def __str__(self): - return "Error: %s not found." % self.path def runcmd(args, dir = None): import commands @@ -482,7 +487,7 @@ python patch_do_patch() { bb.note("Applying patch '%s'" % pname) try: patchset.Import({"file":unpacked, "remote":url, "strippath": pnum}, True) - except NotFoundError: + except: import sys raise bb.build.FuncFailed(str(sys.exc_value)) resolver.Resolve() |