* [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
* [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
* 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
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