summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRobert Yang <liezhi.yang@windriver.com>2016-02-19 00:48:34 -0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-02-21 09:31:59 +0000
commit9b48bfbc2f60bdaa792a98485db68699e0635cbe (patch)
tree81896195abca33dc28a584248f0a7dccc70168f4
parent1116572916443109176c0df32efc275eceeb706a (diff)
downloadopenembedded-core-contrib-9b48bfbc2f60bdaa792a98485db68699e0635cbe.tar.gz
openembedded-core-contrib-9b48bfbc2f60bdaa792a98485db68699e0635cbe.tar.bz2
openembedded-core-contrib-9b48bfbc2f60bdaa792a98485db68699e0635cbe.zip
image.bbclass: fix circular dependency when IMAGE_FSTYPES append hddimg
Fixed: IMAGE_FSTYPES_append = " hddimg" $ bitbake -g core-image-minimal-initramfs NOTE: Resolving any missing task queue dependencies NOTE: Preparing RunQueue ERROR: Task /path/to/core-image-minimal-initramfs.bb (do_bootimg) has circular dependency on /path/to/core-image-minimal-initramfs.bb (do_image_complete) ERROR: Command execution failed: Exited with 1 This is because IMAGE_FSTYPES = "${INITRAMFS_FSTYPES}", and if IMAGE_FSTYPES append hddimg, then core-image-minimal-initramfs.bb would be circular dependency: do_bootimg -> do_image_complete -> do_bootimg. Now we check and error out. Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/classes/image-live.bbclass11
1 files changed, 10 insertions, 1 deletions
diff --git a/meta/classes/image-live.bbclass b/meta/classes/image-live.bbclass
index aafa7d5b23..d2314aaf0a 100644
--- a/meta/classes/image-live.bbclass
+++ b/meta/classes/image-live.bbclass
@@ -9,7 +9,6 @@ LABELS_append = " ${SYSLINUX_LABELS} "
ROOTFS ?= "${DEPLOY_DIR_IMAGE}/${IMAGE_LINK_NAME}.ext4"
-do_bootimg[depends] += "${INITRD_IMAGE}:do_image_complete"
do_bootimg[depends] += "${PN}:do_image_ext4"
inherit bootimg
@@ -18,3 +17,13 @@ IMAGE_TYPEDEP_live = "ext4"
IMAGE_TYPEDEP_iso = "ext4"
IMAGE_TYPEDEP_hddimg = "ext4"
IMAGE_TYPES_MASKED += "live hddimg iso"
+
+python() {
+ image_b = d.getVar('IMAGE_BASENAME', True)
+ initrd_i = d.getVar('INITRD_IMAGE', True)
+ if image_b == initrd_i:
+ bb.error('INITRD_IMAGE %s cannot use image live, hddimg or iso.' % initrd_i)
+ bb.fatal('Check IMAGE_FSTYPES and INITRAMFS_FSTYPES settings.')
+ else:
+ d.appendVarFlag('do_bootimg', 'depends', ' %s:do_image_complete' % initrd_i)
+}