From 0566f265bb79f9a10a3863ec7707c7267f512cb8 Mon Sep 17 00:00:00 2001 From: Chen Qi Date: Thu, 12 Jun 2014 04:10:58 -0400 Subject: busybox: handle syslog related files properly If CONFIG_SYSLOGD is not enabled, then the related service file should not be installed as it will always fail at system start-up. The error message is as following. [FAILED] Failed to start System Logging Service. The same logic applies to CONFIG_KLOGD. So we should first check the configuration before we install these service files. [YOCTO #5302] Signed-off-by: Chen Qi --- meta/recipes-core/busybox/busybox.inc | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/meta/recipes-core/busybox/busybox.inc b/meta/recipes-core/busybox/busybox.inc index f6cb039543..bd66e4f148 100644 --- a/meta/recipes-core/busybox/busybox.inc +++ b/meta/recipes-core/busybox/busybox.inc @@ -272,18 +272,21 @@ do_install () { fi if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then - install -d ${D}${systemd_unitdir}/system - sed 's,@base_sbindir@,${base_sbindir},g' < ${WORKDIR}/busybox-syslog.service.in \ - > ${D}${systemd_unitdir}/system/busybox-syslog.service - sed 's,@base_sbindir@,${base_sbindir},g' < ${WORKDIR}/busybox-klogd.service.in \ - > ${D}${systemd_unitdir}/system/busybox-klogd.service - - if [ -f ${WORKDIR}/busybox-syslog.default ] ; then - install -d ${D}${sysconfdir}/default - install -m 0644 ${WORKDIR}/busybox-syslog.default ${D}${sysconfdir}/default/busybox-syslog + if grep -q "CONFIG_SYSLOGD=y" ${B}/.config; then + install -d ${D}${systemd_unitdir}/system + sed 's,@base_sbindir@,${base_sbindir},g' < ${WORKDIR}/busybox-syslog.service.in \ + > ${D}${systemd_unitdir}/system/busybox-syslog.service + if [ -f ${WORKDIR}/busybox-syslog.default ] ; then + install -d ${D}${sysconfdir}/default + install -m 0644 ${WORKDIR}/busybox-syslog.default ${D}${sysconfdir}/default/busybox-syslog + fi + ln -sf /dev/null ${D}${systemd_unitdir}/system/syslog.service + fi + if grep -q "CONFIG_KLOGD=y" ${B}/.config; then + install -d ${D}${systemd_unitdir}/system + sed 's,@base_sbindir@,${base_sbindir},g' < ${WORKDIR}/busybox-klogd.service.in \ + > ${D}${systemd_unitdir}/system/busybox-klogd.service fi - - ln -sf /dev/null ${D}${systemd_unitdir}/system/syslog.service fi # Remove the sysvinit specific configuration file for systemd systems to avoid confusion -- cgit 1.2.3-korg