aboutsummaryrefslogtreecommitdiffstats
path: root/meta/classes/patch.bbclass
diff options
context:
space:
mode:
authorChris Larson <kergoth@openedhand.com>2006-08-22 08:58:02 +0000
committerChris Larson <kergoth@openedhand.com>2006-08-22 08:58:02 +0000
commit7aa52d7fd99c68d36bb9903de84a6e240ab767cf (patch)
tree7781c50d02a3c3d9661826766ebf9976826b6912 /meta/classes/patch.bbclass
parent9649cf3dae0f8a56975730aa29ac3bd7f4d6a209 (diff)
downloadopenembedded-core-contrib-7aa52d7fd99c68d36bb9903de84a6e240ab767cf.tar.gz
Clean up the way patch.bbclass's runcmd handles the directory not existing.
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@624 311d38ba-8fff-0310-9ca6-ca027cbcb966
Diffstat (limited to 'meta/classes/patch.bbclass')
-rw-r--r--meta/classes/patch.bbclass21
1 files changed, 17 insertions, 4 deletions
diff --git a/meta/classes/patch.bbclass b/meta/classes/patch.bbclass
index 0f0d6a686f..aa54d9b32f 100644
--- a/meta/classes/patch.bbclass
+++ b/meta/classes/patch.bbclass
@@ -21,12 +21,20 @@ def patch_init():
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
if dir:
olddir = os.path.abspath(os.curdir)
+ if not os.path.exists(dir):
+ raise NotFoundError(dir)
os.chdir(dir)
# print("cwd: %s -> %s" % (olddir, self.dir))
@@ -120,9 +128,8 @@ def patch_init():
pass
else:
raise PatchError("Unable to clean patches from tree:\n"+str(sys.exc_value))
- except OSError:
- if str(sys.exc_value).startswith('OSError: [Errno 2]'):
- pass
+ except NotFoundError:
+ pass
runcmd(["rm", "-rf", os.path.join(self.dir, "patches"), os.path.join(self.dir, ".pc")])
self.initialized = True
@@ -311,6 +318,8 @@ def patch_init():
g["QuiltTree"] = QuiltTree
g["Resolver"] = Resolver
g["UserResolver"] = UserResolver
+ g["NotFoundError"] = NotFoundError
+ g["CmdError"] = CmdError
addtask patch after do_unpack
do_patch[dirs] = "${WORKDIR}"
@@ -400,6 +409,10 @@ python base_do_patch() {
continue
bb.note("Applying patch '%s'" % pname)
- patchset.Import({"file":unpacked, "remote":url, "strippath": pnum}, True)
+ try:
+ patchset.Import({"file":unpacked, "remote":url, "strippath": pnum}, True)
+ except NotFoundError:
+ import sys
+ raise bb.build.FuncFailed(str(sys.exc_value))
resolver.Resolve()
}