lib/oe/image.py: Handle compressed IMAGE_TYPEDEP values

When computing the dependency graph for the image generation, we need
to take into account the compression type and identify the base type
it relates to. This allow for a more robust graph generation even when
using composed image types.

(From OE-Core rev: 6e7d1de6cc99ed2def346dc40310573f5f0ce5ca)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Otavio Salvador
2014-12-24 14:32:11 -02:00
committed by Richard Purdie
parent 7856fb3f0c
commit 01c7d083ef

View File

@@ -48,11 +48,13 @@ class ImageDepGraph(object):
graph = dict()
def add_node(node):
base_type = self._image_base_type(node)
deps = (self.d.getVar('IMAGE_TYPEDEP_' + node, True) or "")
if deps != "":
base_deps = (self.d.getVar('IMAGE_TYPEDEP_' + base_type, True) or "")
if deps != "" or base_deps != "":
graph[node] = deps
for dep in deps.split():
for dep in deps.split() + base_deps.split():
if not dep in graph:
add_node(dep)
else:
@@ -72,6 +74,18 @@ class ImageDepGraph(object):
for item in remove_list:
self.graph.pop(item, None)
def _image_base_type(self, type):
ctypes = self.d.getVar('COMPRESSIONTYPES', True).split()
if type in ["vmdk", "live", "iso", "hddimg"]:
type = "ext3"
basetype = type
for ctype in ctypes:
if type.endswith("." + ctype):
basetype = type[:-len("." + ctype)]
break
return basetype
def _compute_dependencies(self):
"""
returns dict object of nodes with [no_of_depends_on, no_of_depended_by]