summaryrefslogtreecommitdiff
path: root/classes
diff options
context:
space:
mode:
authorIhar Hrachyshka <ihar.hrachyshka@gmail.com>2009-09-07 03:10:13 +0000
committerKoen Kooi <koen@openembedded.org>2010-03-27 15:33:39 +0100
commit4a115f89bba023724e662b5e6959f2292f1ab103 (patch)
treebf3c09df5f8baa14a8ef14c4a8009a0a16ee8fbc /classes
parent7de56d6f7403f519b176439ba67b6e4ea11cd628 (diff)
Fixed concurrency problem for ZIP packed recipes.
The problem occured when unzip-native is not yet staged, and ZIP archive unpacking already started resulting in failed do_unpack task. Added NEED_UNZIP_FOR_UNPACK variable to use in recipes which do_unpack with unzip utility but doesn't have '.zip' in SRC_URI (f.e. .EXE windows self-extraction binaries). Signed-off-by: Ihar Hrachyshka <ihar.hrachyshka@gmail.com> Signed-off-by: Koen Kooi <koen@openembedded.org>
Diffstat (limited to 'classes')
-rw-r--r--classes/base.bbclass9
1 files changed, 9 insertions, 0 deletions
diff --git a/classes/base.bbclass b/classes/base.bbclass
index cda9b8f293..e8657387a3 100644
--- a/classes/base.bbclass
+++ b/classes/base.bbclass
@@ -392,6 +392,15 @@ python () {
depends = depends + " git-native:do_populate_staging"
bb.data.setVarFlag('do_fetch', 'depends', depends, d)
+ # unzip-native should already be staged before unpacking ZIP recipes
+ need_unzip = bb.data.getVar('NEED_UNZIP_FOR_UNPACK', d, 1)
+ src_uri = bb.data.getVar('SRC_URI', d, 1)
+
+ if ".zip" in src_uri or need_unzip == "1":
+ depends = bb.data.getVarFlag('do_unpack', 'depends', d) or ""
+ depends = depends + " unzip-native:do_populate_staging"
+ bb.data.setVarFlag('do_unpack', 'depends', depends, d)
+
# 'multimachine' handling
mach_arch = bb.data.getVar('MACHINE_ARCH', d, 1)
pkg_arch = bb.data.getVar('PACKAGE_ARCH', d, 1)