Check the existence of systemctl before invoking it. This is because even if 'systemd' is in DISTRO_FEATURES, it's possible that systemd is not even installed. e.g. container-test-image in meta-selftest layer. This would fix the following test case when using systemd as the init manager.
containerimage.ContainerImageTests.test_expected_files Also remove the IMAGE_EXTRADEPENDS setting, as nothing references this variable. Signed-off-by: Chen Qi <[email protected]> --- meta/classes/image.bbclass | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass index d2b2fb9..2115c6c 100644 --- a/meta/classes/image.bbclass +++ b/meta/classes/image.bbclass @@ -666,10 +666,11 @@ reproducible_final_image_task () { } systemd_preset_all () { - systemctl --root="${IMAGE_ROOTFS}" --preset-mode=enable-only preset-all + if [ -e ${STAGING_DIR_NATIVE}${bindir}/systemctl ]; then + systemctl --root="${IMAGE_ROOTFS}" --preset-mode=enable-only preset-all + fi } -IMAGE_EXTRADEPENDS += "${@ 'systemd-systemctl-native' if bb.utils.contains('DISTRO_FEATURES', 'systemd', True, False, d) and not bb.utils.contains('IMAGE_FEATURES', 'stateless-rootfs', True, False, d) else ''}" IMAGE_PREPROCESS_COMMAND_append = " ${@ 'systemd_preset_all;' if bb.utils.contains('DISTRO_FEATURES', 'systemd', True, False, d) and not bb.utils.contains('IMAGE_FEATURES', 'stateless-rootfs', True, False, d) else ''} reproducible_final_image_task; " CVE_PRODUCT = "" -- 1.9.1 -- _______________________________________________ Openembedded-core mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-core
