path: root/meta/classes
diff options
authorPatrick Ohly <patrick.ohly@intel.com>2016-05-18 19:24:14 +0300
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-05-22 16:09:22 +0100
commit85855af359c2c3bfc1eaa942c95f1f7d7cc6698e (patch)
tree9ff1367c27766b5a0e710505112b05cda103047e /meta/classes
parent6cc65261169c9d4da61a85596e3f7864699d50d0 (diff)
image.bbclass: support duplicate compression types
When a derived distro adds a certain type, say zip, to COMPRESSIONTYPES and later OE-core does the same, we end up with the type being listed twice, and that would have undesired effects (commands generated twice). So to support such loosely coupled extension, we de-duplicated the list of types first. Alternatively, such a situation could also be treated as error. But that seems unnecessary because typically commands for the same type will also do the same thing. Signed-off-by: Patrick Ohly <patrick.ohly@intel.com> Signed-off-by: Ed Bartosh <eduard.bartosh@intel.com> Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
Diffstat (limited to 'meta/classes')
1 files changed, 9 insertions, 1 deletions
diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass
index 6b9f9798db..0e81b4e7e0 100644
--- a/meta/classes/image.bbclass
+++ b/meta/classes/image.bbclass
@@ -297,7 +297,15 @@ python setup_debugfs () {
python () {
vardeps = set()
- ctypes = d.getVar('COMPRESSIONTYPES', True).split()
+ # We allow COMPRESSIONTYPES to have duplicates. That avoids breaking
+ # derived distros when OE-core or some other layer independently adds
+ # the same type. There is still only one command for each type, but
+ # presumably the commands will do the same when the type is the same,
+ # even when added in different places.
+ #
+ # Without de-duplication, gen_conversion_cmds() below
+ # would create the same compression command multiple times.
+ ctypes = set(d.getVar('COMPRESSIONTYPES', True).split())
old_overrides = d.getVar('OVERRIDES', 0)
def _image_base_type(type):