[gnome-continuous-yocto/gnomeostree-3.28-rocko: 3993/8267] sysklogd: do more to properly work with systemd



commit e30f00bca5f61e9693d59e763a3dce633d76f00b
Author: Mark Asselstine <mark asselstine windriver com>
Date:   Tue Jan 3 12:01:58 2017 -0500

    sysklogd: do more to properly work with systemd
    
    It was noticed that syslogd and klogd were no longer running on system
    startup, meaning no /var/log/messages etc.. It appears as though
    sysklogd has never been updated to follow the expected logging
    requirement for systemd as described here:
    https://www.freedesktop.org/wiki/Software/systemd/syslog/
    
    As such no service was started and no logging present. Using the above
    guidelines we create two new service files syslogd.service and
    klogd.service. We make use of tmpfiles.d in order to ensure the
    xconsole device node exists and do other minor recipe cleanup to
    ensure peaceful coexistence with sysvinit and systemd implementations.
    
    The systemd documentation also asks that for a logger which is not
    rsyslog that we also enable 'ForwardToSyslog=' in journald.conf, but
    this is already the case so no action is required.
    
    With this change in place syslogd and klogd are started at system
    startup and the expected logs are available.
    
    Unfortunately I was not able to find any work done on this upstream or
    in other distros so this is my best effort at making this work.
    
    (From OE-Core rev: 914e08cf627e54e5019eda2154663c30b9a68ded)
    
    Signed-off-by: Mark Asselstine <mark asselstine windriver com>
    Signed-off-by: Ross Burton <ross burton intel com>
    Signed-off-by: Richard Purdie <richard purdie linuxfoundation org>

 meta/recipes-extended/sysklogd/files/klogd.service |   13 ++++++++++++
 .../sysklogd/files/syslogd.service                 |   14 +++++++++++++
 .../sysklogd/files/tmpfiles.sysklogd.conf          |    1 +
 meta/recipes-extended/sysklogd/sysklogd.inc        |   21 ++++++++++++++++++-
 4 files changed, 47 insertions(+), 2 deletions(-)
---
diff --git a/meta/recipes-extended/sysklogd/files/klogd.service 
b/meta/recipes-extended/sysklogd/files/klogd.service
new file mode 100644
index 0000000..0c888c4
--- /dev/null
+++ b/meta/recipes-extended/sysklogd/files/klogd.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=Kernel Logging Service
+After=syslogd.service
+
+[Service]
+Type=forking
+ExecStart=/sbin/klogd
+PIDFile=/var/run/klogd.pid
+StandardOutput=null
+Restart=on-failure
+
+[Install]
+WantedBy=multi-user.target
diff --git a/meta/recipes-extended/sysklogd/files/syslogd.service 
b/meta/recipes-extended/sysklogd/files/syslogd.service
new file mode 100644
index 0000000..eeaff3d
--- /dev/null
+++ b/meta/recipes-extended/sysklogd/files/syslogd.service
@@ -0,0 +1,14 @@
+[Unit]
+Description=System Logging Service
+Requires=syslog.socket
+
+[Service]
+Type=forking
+ExecStart=/sbin/syslogd
+PIDFile=/var/run/syslogd.pid
+StandardOutput=null
+Restart=on-failure
+
+[Install]
+WantedBy=multi-user.target
+Alias=syslog.service
diff --git a/meta/recipes-extended/sysklogd/files/tmpfiles.sysklogd.conf 
b/meta/recipes-extended/sysklogd/files/tmpfiles.sysklogd.conf
new file mode 100644
index 0000000..f4aecd3
--- /dev/null
+++ b/meta/recipes-extended/sysklogd/files/tmpfiles.sysklogd.conf
@@ -0,0 +1 @@
+p /dev/xconsole 0640 root adm
diff --git a/meta/recipes-extended/sysklogd/sysklogd.inc b/meta/recipes-extended/sysklogd/sysklogd.inc
index 5c15ffe..f9af0a4 100644
--- a/meta/recipes-extended/sysklogd/sysklogd.inc
+++ b/meta/recipes-extended/sysklogd/sysklogd.inc
@@ -11,17 +11,24 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b \
                     file://klogd.c;beginline=2;endline=19;md5=7e87ed0ae6142de079bce738c10c899d \
                    "
 
-inherit update-rc.d update-alternatives
+inherit update-rc.d update-alternatives systemd
 
 SRC_URI = "http://www.infodrom.org/projects/sysklogd/download/sysklogd-${PV}.tar.gz \
            file://no-strip-install.patch \
            file://0001-Fix-build-with-musl.patch \
            file://sysklogd \
            file://syslog.conf \
+           file://syslogd.service \
+           file://klogd.service \
+           file://tmpfiles.sysklogd.conf \
            "
 
 SRC_URI_append_e500v2 = " file://no-vectorization.patch"
 
+SYSTEMD_PACKAGES = "${PN}"
+SYSTEMD_SERVICE_${PN} = "syslogd.service klogd.service"
+SYSTEMD_AUTO_ENABLE = "enable"
+
 INITSCRIPT_NAME = "syslog"
 CONFFILES_${PN} = "${sysconfdir}/syslog.conf.${BPN}"
 
@@ -39,13 +46,23 @@ do_install () {
        install -m 644 ${WORKDIR}/syslog.conf ${D}${sysconfdir}/syslog.conf
        install -d ${D}${sysconfdir}/init.d
        install -m 755 ${WORKDIR}/sysklogd ${D}${sysconfdir}/init.d/syslog
+       install -d ${D}${systemd_unitdir}/system
+       install -m 644 ${WORKDIR}/syslogd.service ${D}${systemd_unitdir}/system
+       install -m 644 ${WORKDIR}/klogd.service ${D}${systemd_unitdir}/system
+       if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true', 'false', d)}; then
+               install -d ${D}${exec_prefix}/lib/tmpfiles.d
+               install -m 644 ${WORKDIR}/tmpfiles.sysklogd.conf 
${D}${exec_prefix}/lib/tmpfiles.d/sysklogd.conf
+       fi
 }
 
+FILES_${PN} += 
"${@bb.utils.contains('DISTRO_FEATURES','systemd','${exec_prefix}/lib/tmpfiles.d/sysklogd.conf', '', d)}"
+
 # sysklogd package has no internal systemd support, so we weigh busybox's
 # sysklogd utility over it in case of systemd
 ALTERNATIVE_PRIORITY = "${@bb.utils.contains('DISTRO_FEATURES','systemd','10','100',d)}"
 
-ALTERNATIVE_${PN} = "syslogd klogd syslog-init syslog-conf"
+ALTERNATIVE_${PN} = "syslogd klogd syslog-conf \
+    ${@bb.utils.contains('DISTRO_FEATURES','sysvinit','syslog-init','',d)}"
 
 ALTERNATIVE_LINK_NAME[syslogd] = "${base_sbindir}/syslogd"
 ALTERNATIVE_LINK_NAME[klogd] = "${base_sbindir}/klogd"


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]