Hi Randy,
Thanks for looking at this.
On 01/01/2019 16:29, Randy MacLeod wrote:
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.
The configuration files from systemd may be LGPLv2 licensed, but this
package now only creates some configuration snippets which are
independent of systemd (it's just data, now). As such, one could
certainly put whatever license one wanted on this. Honestly, GPLv2 is
probably a stretch... I can hardly see that any license applies to this,
to be honest. Consider that:
/usr/lib/journald.conf.d/systemd-conf.conf
contains
ForwardToSyslog=yes
RuntimeMaxUse=64M
Just configuration data that the package creates dynamically.
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?
So, I looked into the systemd source and, as far as I can see, it seems
that systemd hardcodes the paths to configuration files, tmpfiles,
presets, etc. It's all really /usr/lib/... with no method of specifying
any other location. For this reason, I've used these explicit paths
above, strange though it may appear...
/Jonas
--
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core