Skip to contentSkip to conversation

Add unzip DEPENDS for .zip SRC_URI files

PATCH Superseded Tom Rini 1 participant 2 messages Jul 15, 2011

v2 of 3 Superseded Latest is v3 →

lore
Share & tools
lore

Tom Rini

author
#0 lore raw

v2 cover Add unzip DEPENDS for .zip SRC_URI files

Hey all,

In doing some world builds I ran into "oops, we don't make .zip files depend on unzip-native". So this is a port of the commit from oe.dev that does this.

v2: Don brown paper bag, s/do_populate_staging/do_populate_sysroot, test The following changes since commit e66c2999afa2b3efbce8bb46c89f9db5e15f35c7:
Saul Wold (1):
libx11: ensure nativesdk uses correct DEPENDS and XCB flags

are available in the git repository at:

git://git.openembedded.org/openembedded-core-contrib trini/add-zip-native-check
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=trini/add-zip-native-check

Ihar Hrachyshka (1):
Fixed concurrency problem for ZIP packed recipes.

 meta/classes/base.bbclass |    9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)
author
#1 lore raw

PATCH v2 1/1 Fixed concurrency problem for ZIP packed recipes.

From: Ihar Hrachyshka <[email protected]>

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).

---
 meta/classes/base.bbclass |    9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)
meta/classes/base.bbclass +9 -0
index 0c2c546..35fcec2 100644
@@ -354,6 +354,15 @@ python () {
         depends = depends + " xz-native:do_populate_sysroot"
         bb.data.setVarFlag('do_unpack', '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_sysroot"
+        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)
Signature · 1 line
1.7.0.4