* [PATCH] busybox: fix for syslog service in systemd
@ 2016-07-26 7:33 mingli.yu
2016-07-26 7:33 ` [PATCH 1/2] " mingli.yu
2016-07-26 7:33 ` [PATCH 2/2] busybox: handle syslog mingli.yu
0 siblings, 2 replies; 4+ messages in thread
From: mingli.yu @ 2016-07-26 7:33 UTC (permalink / raw)
To: openembedded-core
commit 9943ffeeed5c612d1bc44a12607d553f7704dc7e
Author: Chen Qi <Qi.Chen@windriver.com>
Date: Thu Sep 11 04:55:35 2014 -0400
busybox: fix for syslog service in systemd
This patch includes the following changes:
1. Explicitly set StandardOutput of the log daemon to null.
This would avoid creating a feedback loop of the syslog service.
See link below for more information.
http://www.freedesktop.org/wiki/Software/systemd/syslog/
2. Use ALTERNATIVE machanism to manage the syslog service file.
This is because that other package may also provide a syslog
implementation.
3. Make the syslog daemon socket activated only. Otherwise, things
would crash if we install busybox-syslog and other syslog packages
together in one image.
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
commit 425d7b8605612cdc65daf2c1ef6cf5655ad8f227
Author: Yadi.hu <yadi.hu@windriver.com>
Date: Wed Jun 1 17:54:17 2016 -0700
busybox: handle syslog
If CONFIG_KLOGD is not enabled, then the related service file should
not be installed, The error message is below:
Cannot add dependency job for unit busybox-klogd.service,
ignoring: Unit busybox-klogd.service failed to load:
No such file or directory.
So we should first check the configuration before we install these
service files.
Signed-off-by: Yadi.hu <yadi.hu@windriver.com>
Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
^ permalink raw reply [flat|nested] 4+ messages in thread* [PATCH 1/2] busybox: fix for syslog service in systemd 2016-07-26 7:33 [PATCH] busybox: fix for syslog service in systemd mingli.yu @ 2016-07-26 7:33 ` mingli.yu 2016-07-29 16:44 ` Aníbal Limón 2016-07-26 7:33 ` [PATCH 2/2] busybox: handle syslog mingli.yu 1 sibling, 1 reply; 4+ messages in thread From: mingli.yu @ 2016-07-26 7:33 UTC (permalink / raw) To: openembedded-core This patch includes the following changes: 1. Explicitly set StandardOutput of the log daemon to null. This would avoid creating a feedback loop of the syslog service. See link below for more information. http://www.freedesktop.org/wiki/Software/systemd/syslog/ 2. Use ALTERNATIVE machanism to manage the syslog service file. This is because that other package may also provide a syslog implementation. 3. Make the syslog daemon socket activated only. Otherwise, things would crash if we install busybox-syslog and other syslog packages together in one image. Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Mingli Yu <mingli.yu@windriver.com> --- meta/recipes-core/busybox/busybox.inc | 9 +++++++-- meta/recipes-core/busybox/files/busybox-klogd.service.in | 4 +--- meta/recipes-core/busybox/files/busybox-syslog.service.in | 7 +++---- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/meta/recipes-core/busybox/busybox.inc b/meta/recipes-core/busybox/busybox.inc index 5e91a26..2865b36 100644 --- a/meta/recipes-core/busybox/busybox.inc +++ b/meta/recipes-core/busybox/busybox.inc @@ -295,13 +295,12 @@ do_install () { if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then 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 \ + sed -e 's,@base_sbindir@,${base_sbindir},g' -e 's,@SYSCONFDIR@,${sysconfdir},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 @@ -338,6 +337,12 @@ python () { d.appendVar('ALTERNATIVE_%s-syslog' % (pn), ' syslog-startup-conf') d.setVarFlag('ALTERNATIVE_LINK_NAME', 'syslog-startup-conf', '%s/syslog-startup.conf' % (d.getVar('sysconfdir', True))) d.setVarFlag('ALTERNATIVE_TARGET', 'syslog-startup-conf', '%s/syslog-startup.conf.%s' % (d.getVar('sysconfdir', True), d.getVar('BPN', True))) + + if bb.utils.contains('DISTRO_FEATURES', 'systemd', True, False, d): + pn = d.getVar('PN', True) + d.appendVar('ALTERNATIVE_%s-syslog' % (pn), ' syslog-service') + d.setVarFlag('ALTERNATIVE_LINK_NAME', 'syslog-service', '%s/systemd/system/syslog.service' % (d.getVar('sysconfdir', True))) + d.setVarFlag('ALTERNATIVE_TARGET', 'syslog-service', '%s/system/busybox-syslog.service' % (d.getVar('systemd_unitdir', True))) } python do_package_prepend () { diff --git a/meta/recipes-core/busybox/files/busybox-klogd.service.in b/meta/recipes-core/busybox/files/busybox-klogd.service.in index d7c7755..90cfc50 100644 --- a/meta/recipes-core/busybox/files/busybox-klogd.service.in +++ b/meta/recipes-core/busybox/files/busybox-klogd.service.in @@ -3,6 +3,4 @@ Description=Kernel Logging Service [Service] ExecStart=@base_sbindir@/klogd -n - -[Install] -WantedBy=multi-user.target +StandardOutput=null diff --git a/meta/recipes-core/busybox/files/busybox-syslog.service.in b/meta/recipes-core/busybox/files/busybox-syslog.service.in index 2e04321..c84edaf 100644 --- a/meta/recipes-core/busybox/files/busybox-syslog.service.in +++ b/meta/recipes-core/busybox/files/busybox-syslog.service.in @@ -1,13 +1,12 @@ [Unit] Description=System Logging Service Wants=busybox-klogd.service +Requires=syslog.socket [Service] -EnvironmentFile=-/etc/default/busybox-syslog +EnvironmentFile=-@SYSCONFDIR@/default/busybox-syslog ExecStart=@base_sbindir@/syslogd -n $OPTIONS -Sockets=syslog.socket +StandardOutput=null [Install] -WantedBy=multi-user.target Also=busybox-klogd.service -Alias=syslog.service -- 2.8.1 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH 1/2] busybox: fix for syslog service in systemd 2016-07-26 7:33 ` [PATCH 1/2] " mingli.yu @ 2016-07-29 16:44 ` Aníbal Limón 0 siblings, 0 replies; 4+ messages in thread From: Aníbal Limón @ 2016-07-29 16:44 UTC (permalink / raw) To: mingli.yu, openembedded-core [-- Attachment #1: Type: text/plain, Size: 4865 bytes --] On 07/26/2016 02:33 AM, mingli.yu@windriver.com wrote: > This patch includes the following changes: > 1. Explicitly set StandardOutput of the log daemon to null. > This would avoid creating a feedback loop of the syslog service. > See link below for more information. > http://www.freedesktop.org/wiki/Software/systemd/syslog/ > > 2. Use ALTERNATIVE machanism to manage the syslog service file. > This is because that other package may also provide a syslog > implementation. > > 3. Make the syslog daemon socket activated only. Otherwise, things > would crash if we install busybox-syslog and other syslog packages > together in one image. > > Signed-off-by: Chen Qi <Qi.Chen@windriver.com> > Signed-off-by: Mingli Yu <mingli.yu@windriver.com> > --- > meta/recipes-core/busybox/busybox.inc | 9 +++++++-- > meta/recipes-core/busybox/files/busybox-klogd.service.in | 4 +--- > meta/recipes-core/busybox/files/busybox-syslog.service.in | 7 +++---- > 3 files changed, 11 insertions(+), 9 deletions(-) > > diff --git a/meta/recipes-core/busybox/busybox.inc b/meta/recipes-core/busybox/busybox.inc > index 5e91a26..2865b36 100644 > --- a/meta/recipes-core/busybox/busybox.inc > +++ b/meta/recipes-core/busybox/busybox.inc > @@ -295,13 +295,12 @@ do_install () { > if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then > 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 \ > + sed -e 's,@base_sbindir@,${base_sbindir},g' -e 's,@SYSCONFDIR@,${sysconfdir},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 > @@ -338,6 +337,12 @@ python () { > d.appendVar('ALTERNATIVE_%s-syslog' % (pn), ' syslog-startup-conf') > d.setVarFlag('ALTERNATIVE_LINK_NAME', 'syslog-startup-conf', '%s/syslog-startup.conf' % (d.getVar('sysconfdir', True))) > d.setVarFlag('ALTERNATIVE_TARGET', 'syslog-startup-conf', '%s/syslog-startup.conf.%s' % (d.getVar('sysconfdir', True), d.getVar('BPN', True))) > + > + if bb.utils.contains('DISTRO_FEATURES', 'systemd', True, False, d): > + pn = d.getVar('PN', True) > + d.appendVar('ALTERNATIVE_%s-syslog' % (pn), ' syslog-service') > + d.setVarFlag('ALTERNATIVE_LINK_NAME', 'syslog-service', '%s/systemd/system/syslog.service' % (d.getVar('sysconfdir', True))) > + d.setVarFlag('ALTERNATIVE_TARGET', 'syslog-service', '%s/system/busybox-syslog.service' % (d.getVar('systemd_unitdir', True))) > } > > python do_package_prepend () { > diff --git a/meta/recipes-core/busybox/files/busybox-klogd.service.in b/meta/recipes-core/busybox/files/busybox-klogd.service.in > index d7c7755..90cfc50 100644 > --- a/meta/recipes-core/busybox/files/busybox-klogd.service.in > +++ b/meta/recipes-core/busybox/files/busybox-klogd.service.in > @@ -3,6 +3,4 @@ Description=Kernel Logging Service > > [Service] > ExecStart=@base_sbindir@/klogd -n > - > -[Install] > -WantedBy=multi-user.target Hi Mingil, This commit breaks the build when was tested in master-next [1], i guess you are trying to use another syslog service in busybox images but when you disable busybox-syslog for start by default (line below) the sanity testing fails. [1] https://autobuilder.yoctoproject.org/main/builders/nightly-qa-systemd/builds/868/steps/Running%20Sanity%20Tests/logs/stdio > +StandardOutput=null > diff --git a/meta/recipes-core/busybox/files/busybox-syslog.service.in b/meta/recipes-core/busybox/files/busybox-syslog.service.in > index 2e04321..c84edaf 100644 > --- a/meta/recipes-core/busybox/files/busybox-syslog.service.in > +++ b/meta/recipes-core/busybox/files/busybox-syslog.service.in > @@ -1,13 +1,12 @@ > [Unit] > Description=System Logging Service > Wants=busybox-klogd.service > +Requires=syslog.socket > > [Service] > -EnvironmentFile=-/etc/default/busybox-syslog > +EnvironmentFile=-@SYSCONFDIR@/default/busybox-syslog > ExecStart=@base_sbindir@/syslogd -n $OPTIONS > -Sockets=syslog.socket > +StandardOutput=null > > [Install] > -WantedBy=multi-user.target The same here, Kind regards, alimon > Also=busybox-klogd.service > -Alias=syslog.service > [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 836 bytes --] ^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH 2/2] busybox: handle syslog 2016-07-26 7:33 [PATCH] busybox: fix for syslog service in systemd mingli.yu 2016-07-26 7:33 ` [PATCH 1/2] " mingli.yu @ 2016-07-26 7:33 ` mingli.yu 1 sibling, 0 replies; 4+ messages in thread From: mingli.yu @ 2016-07-26 7:33 UTC (permalink / raw) To: openembedded-core If CONFIG_KLOGD is not enabled, then the related service file should not be installed, The error message is below: Cannot add dependency job for unit busybox-klogd.service, ignoring: Unit busybox-klogd.service failed to load: No such file or directory. So we should first check the configuration before we install these service files. Signed-off-by: Yadi.hu <yadi.hu@windriver.com> Signed-off-by: Mingli Yu <mingli.yu@windriver.com> --- meta/recipes-core/busybox/busybox.inc | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/meta/recipes-core/busybox/busybox.inc b/meta/recipes-core/busybox/busybox.inc index 2865b36..acb96ad 100644 --- a/meta/recipes-core/busybox/busybox.inc +++ b/meta/recipes-core/busybox/busybox.inc @@ -293,20 +293,24 @@ do_install () { fi if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then + 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 + if grep -q "CONFIG_SYSLOGD=y" ${B}/.config; then install -d ${D}${systemd_unitdir}/system sed -e 's,@base_sbindir@,${base_sbindir},g' -e 's,@SYSCONFDIR@,${sysconfdir},g' < ${WORKDIR}/busybox-syslog.service.in \ > ${D}${systemd_unitdir}/system/busybox-syslog.service + if [ ! -e ${D}${systemd_unitdir}/system/busybox-klogd.service ] ; then + sed -i '/klog/d' ${D}${systemd_unitdir}/system/busybox-syslog.service + fi 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 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 fi # Remove the sysvinit specific configuration file for systemd systems to avoid confusion -- 2.8.1 ^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2016-07-29 16:44 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2016-07-26 7:33 [PATCH] busybox: fix for syslog service in systemd mingli.yu 2016-07-26 7:33 ` [PATCH 1/2] " mingli.yu 2016-07-29 16:44 ` Aníbal Limón 2016-07-26 7:33 ` [PATCH 2/2] busybox: handle syslog mingli.yu
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox