From 049f89155b1e80875aad6e53b21808b827c06915 Mon Sep 17 00:00:00 2001 From: Chen Qi Date: Fri, 20 Dec 2013 10:45:52 +0800 Subject: image.bbclass: add ability to set systemd default target Add ability to set the default target for systemd images. The default target for system is controlled by SYSTEMD_DEFAULT_TARGET. The default value for this variable is derived from checking whether IMAGE_FEATURES contains 'x11-base' or not. Each image could override this value in its own recipe. For now, we don't need to do any change, because all images that support graphical environment has 'x11-base' in its IMAGE_FEATURES. [YOCTO #3816] Signed-off-by: Chen Qi Signed-off-by: Saul Wold --- meta/classes/image.bbclass | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass index c59572104d..4c63bc28fd 100644 --- a/meta/classes/image.bbclass +++ b/meta/classes/image.bbclass @@ -186,6 +186,9 @@ IMAGE_MANIFEST = "${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.manifest" ROOTFS_POSTPROCESS_COMMAND =+ "write_image_manifest ; " # Set default postinst log file POSTINST_LOGFILE ?= "${localstatedir}/log/postinstall.log" +# Set default target for systemd images +SYSTEMD_DEFAULT_TARGET ?= '${@base_contains("IMAGE_FEATURES", "x11-base", "graphical.target", "multi-user.target", d)}' +ROOTFS_POSTPROCESS_COMMAND += '${@base_contains("DISTRO_FEATURES", "systemd", "set_systemd_default_target; ", "", d)}' # some default locales IMAGE_LINGUAS ?= "de-de fr-fr en-gb" @@ -596,6 +599,13 @@ postinst_enable_logging () { echo "LOGFILE=${POSTINST_LOGFILE}" >> ${IMAGE_ROOTFS}${sysconfdir}/default/postinst } +# Modify systemd default target +set_systemd_default_target () { + if [ -d ${IMAGE_ROOTFS}${sysconfdir}/systemd/system -a -e ${IMAGE_ROOTFS}${systemd_unitdir}/system/${SYSTEMD_DEFAULT_TARGET} ]; then + ln -sf ${systemd_unitdir}/system/${SYSTEMD_DEFAULT_TARGET} ${IMAGE_ROOTFS}${sysconfdir}/systemd/system/default.target + fi +} + # Turn any symbolic /sbin/init link into a file remove_init_link () { if [ -h ${IMAGE_ROOTFS}/sbin/init ]; then -- cgit v1.2.3