[OE-core] [PATCH 2/7] systemd-conf: simplify creation of configuration
Randy MacLeod
randy.macleod at windriver.com
Tue Jan 1 15:29:58 UTC 2019
On 12/31/18 7:05 AM, Jonas Bonn wrote:
> The configuration files that systemd installs are just skeletons
> detailing the available options and their default values. The
> recommended means of changing the configuration is to provide snippets
> in configuration directories. For example, journald.conf settings are
> best set in /usr/lib/journald.conf.d/ and can be overridden by the user
> by providing overriding snippets in /etc/systemd/journald.conf.d/.
>
> The base configuration files have the lowest priority; they will always
> be overridden by any snippets. As such, it's probably best to not
> provide them at all. This also moves us a step closer to an empty /etc
> which is should be a long term goal in order to allow running OE as a
> "stateless system".
>
> This patch moves the systemd configuration to snippets in
> /usr/lib/*.conf.d. This simplifies the recipe considerably since it now
> just sets up a couple of text files and doesn't even need access to the
> systemd source anymore.
> ---
> meta/recipes-core/systemd/systemd-conf.bb | 34 +++++++++--------------
> 1 file changed, 13 insertions(+), 21 deletions(-)
>
> diff --git a/meta/recipes-core/systemd/systemd-conf.bb b/meta/recipes-core/systemd/systemd-conf.bb
> index 7fe2e1105b..a504afe3e7 100644
> --- a/meta/recipes-core/systemd/systemd-conf.bb
> +++ b/meta/recipes-core/systemd/systemd-conf.bb
> @@ -1,9 +1,8 @@
> -require systemd.inc
> -
> SUMMARY = "Systemd system configuration"
> DESCRIPTION = "Systemd may require slightly different configuration for \
> different machines. For example, qemu machines require a longer \
> DefaultTimeoutStartSec setting."
> +LICENSE = "GPLv2"
Systemd claims that these conf files are: LGPLv2.1+ licensed.
https://github.com/systemd/systemd/blob/master/sysusers.d/systemd.conf.m4
https://github.com/systemd/systemd/blob/master/modprobe.d/systemd.conf
>
> PACKAGE_ARCH = "${MACHINE_ARCH}"
>
> @@ -13,36 +12,29 @@ ${sysconfdir}/systemd/logind.conf \
> ${sysconfdir}/systemd/system.conf \
> ${sysconfdir}/systemd/user.conf"
>
> -FILES_${PN} = "${sysconfdir}/systemd"
> -
> -do_configure[noexec] = '1'
> -do_compile[noexec] = '1'
> +FILES_${PN} = "/usr/lib/journald.conf.d/* \
> +/usr/lib/logind.conf.d/* \
> +/usr/lib/system.conf.d/* \
> +"
>
> do_install() {
> - rm -rf ${D}/${sysconfdir}/systemd
> - install -d ${D}/${sysconfdir}/systemd
> -
> - install -m 0644 ${S}/src/coredump/coredump.conf ${D}${sysconfdir}/systemd/coredump.conf
> -
> - install -m 0644 ${S}/src/journal/journald.conf ${D}${sysconfdir}/systemd/journald.conf
> + install -d ${D}/usr/lib/journald.conf.d
Should the recipe use /usr/lib or is / should there be a
'systemdconfdir' var?
Otherwise, LGTM.
../Randy
> # Enable journal to forward message to syslog daemon
> - sed -i -e 's/.*ForwardToSyslog.*/ForwardToSyslog=yes/' ${D}${sysconfdir}/systemd/journald.conf
> + echo "ForwardToSyslog=yes" >> ${D}/usr/lib/journald.conf.d/${PN}.conf
> # Set the maximium size of runtime journal to 64M as default
> - sed -i -e 's/.*RuntimeMaxUse.*/RuntimeMaxUse=64M/' ${D}${sysconfdir}/systemd/journald.conf
> + echo "RuntimeMaxUse=64M" >> ${D}/usr/lib/journald.conf.d/${PN}.conf
>
> - install -m 0644 ${S}/src/login/logind.conf.in ${D}${sysconfdir}/systemd/logind.conf
> + install -d ${D}/usr/lib/logind.conf.d
> # Set KILL_USER_PROCESSES to yes
> - sed -i -e 's/@KILL_USER_PROCESSES@/yes/' ${D}${sysconfdir}/systemd/logind.conf
> + echo "KillUserProcesses=yes" >> ${D}/usr/lib/logind.conf.d/${PN}.conf
>
> - install -m 0644 ${S}/src/core/system.conf.in ${D}${sysconfdir}/systemd/system.conf
> + install -d ${D}/usr/lib/system.conf.d
> # Set MEMORY_ACCOUNTING_DEFAULT to yes
> - sed -i -e 's/@MEMORY_ACCOUNTING_DEFAULT@/yes/' ${D}${sysconfdir}/systemd/system.conf
> -
> - install -m 0644 ${S}/src/core/user.conf ${D}${sysconfdir}/systemd/user.conf
> + echo "DefaultMemoryAccounting=yes" >> ${D}/usr/lib/system.conf.d/${PN}.conf
> }
>
> # Based on change from YP bug 8141, OE commit 5196d7bacaef1076c361adaa2867be31759c1b52
> do_install_append_qemuall() {
> # Change DefaultTimeoutStartSec from 90s to 240s
> - echo "DefaultTimeoutStartSec = 240s" >> ${D}${sysconfdir}/systemd/system.conf
> + echo "DefaultTimeoutStartSec = 240s" >> ${D}/usr/lib/system.conf.d/${PN}.conf
> }
>
--
# Randy MacLeod
# Wind River Linux
More information about the Openembedded-core
mailing list