aboutsummaryrefslogtreecommitdiffstats
path: root/meta/classes
diff options
context:
space:
mode:
authorRoss Burton <ross.burton@intel.com>2016-05-03 17:28:01 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-05-09 08:03:57 +0100
commit05c59ed987cdddc00e9e217032a69197e40a8448 (patch)
tree3d753f759fd45da1fb0b97bd0923da9d1b792886 /meta/classes
parent386534f968f4da376ba7778b5d436bad4ce8355b (diff)
downloadopenembedded-core-contrib-05c59ed987cdddc00e9e217032a69197e40a8448.tar.gz
openembedded-core-contrib-05c59ed987cdddc00e9e217032a69197e40a8448.tar.bz2
openembedded-core-contrib-05c59ed987cdddc00e9e217032a69197e40a8448.zip
image_types: fix image/compression dependency collection
As compressions can be chained (i.e. cpio.bz2.md5sum) we need to walk the fstype list to collect the dependencies from each step. Signed-off-by: Ross Burton <ross.burton@intel.com>
Diffstat (limited to 'meta/classes')
-rw-r--r--meta/classes/image_types.bbclass36
1 files changed, 16 insertions, 20 deletions
diff --git a/meta/classes/image_types.bbclass b/meta/classes/image_types.bbclass
index 0b9758e42b..f74ae18c69 100644
--- a/meta/classes/image_types.bbclass
+++ b/meta/classes/image_types.bbclass
@@ -11,32 +11,28 @@ IMAGE_ROOTFS_ALIGNMENT ?= "1"
def imagetypes_getdepends(d):
def adddep(depstr, deps):
- for i in (depstr or "").split():
- if i not in deps:
- deps.append(i)
+ for d in (depstr or "").split():
+ # Add task dependency if not already present
+ if ":" not in d:
+ d += ":do_populate_sysroot"
+ deps.add(d)
- deps = []
- ctypes = d.getVar('COMPRESSIONTYPES', True).split()
fstypes = set((d.getVar('IMAGE_FSTYPES', True) or "").split())
fstypes |= set((d.getVar('IMAGE_FSTYPES_DEBUGFS', True) or "").split())
- for type in fstypes:
- if type in ["vmdk", "vdi", "qcow2", "hdddirect", "live", "iso", "hddimg"]:
- type = "ext4"
- basetype = type
- for ctype in ctypes:
- if type.endswith("." + ctype):
- basetype = type[:-len("." + ctype)]
- adddep(d.getVar("COMPRESS_DEPENDS_%s" % ctype, True), deps)
- break
+
+ deps = set()
+ for typestring in fstypes:
+ types = typestring.split(".")
+ basetype, resttypes = types[0], types[1:]
+
+ adddep(d.getVar('IMAGE_DEPENDS_%s' % basetype, True) , deps)
for typedepends in (d.getVar("IMAGE_TYPEDEP_%s" % basetype, True) or "").split():
adddep(d.getVar('IMAGE_DEPENDS_%s' % typedepends, True) , deps)
- adddep(d.getVar('IMAGE_DEPENDS_%s' % basetype, True) , deps)
-
- depstr = ""
- for dep in deps:
- depstr += " " + dep + ":do_populate_sysroot"
- return depstr
+ for ctype in resttypes:
+ adddep(d.getVar("COMPRESS_DEPENDS_%s" % ctype, True), deps)
+ # Sort the set so that ordering is consistant
+ return " ".join(sorted(deps))
XZ_COMPRESSION_LEVEL ?= "-e -6"
XZ_INTEGRITY_CHECK ?= "crc32"