The IMAGE_DEPENDS variable can be overriden to add dependencies for individual image types. Those dependencies are added to the do_rootfs task, while they really should be added to the specific image type tasks. Also, the IMAGE_DEPENDS variable is not documented anywhere.
I did look and the code in image_types.bbclass does indeed put the dependencies onto do_rootfs rather than the specific image creation tasks. I think we want to move to a model where these tasks have explicit dependencies, e.g. instead of IMAGE_DEPENDS_jffs2 = "mtd-utils-native" we'd have do_image_jffs2[depends] += "mtd-utils-native:do_populate_sysroot". Since we're into feature freeze, I'm not sure how far we want to change things at this point in the release cycle and this may well need to be a 2.4 M1 activity. The end result may be the deprecation and removal of IMAGE_DEPENDS.
I guess the rootfs dependencies are leftovers from the switch to the separated image tasks. I kind of like the way I can add just recipe names without the :do_populate_sysroot, but I can see the point in eliminating this set of variables. Anyway, it can certainly wait until 2.4.
Replaced usage of IMAGE_DEPENDS with explicitly added dependencies to do_image_<image type> tasks: http://lists.openembedded.org/pipermail/openembedded-core/2017-June/138217.html
Looks good to me.
Surprisingly I manage to get to v4 so far :) http://lists.openembedded.org/pipermail/openembedded-core/2017-June/138386.html
v5! http://lists.openembedded.org/pipermail/openembedded-core/2017-June/138388.html
The fix has been accepted to poky master. Commit id: f93d58378fb4095a18c1403de03ca0e13ce465cd