From 504cc9860e41887f73830e74372d03869e4cb970 Mon Sep 17 00:00:00 2001 From: Niko Mauno Date: Tue, 9 Jul 2024 12:22:11 +0000 Subject: systemd: Mitigate /var/log type mismatch issue When VOLATILE_LOG_DIR evaluates as True, the base-files recipe provides /var/log -> /var/volatile/log symlink which is in conflict with systemd upstream tmpfiles.d/var.conf.in which defines it as a directory. This generates following error in journal: Jul 03 14:28:00 qemux86-64 systemd-tmpfiles[165]: "/var/log" already exists and is not a directory. Mitigate the issue by defining /var/log as symlink corresponding to the one created by base-files, when appropriate. (From OE-Core rev: 711ee36e88c8968e3c45ea787b3adcf64352adf9) Signed-off-by: Niko Mauno Signed-off-by: Alexandre Belloni Signed-off-by: Richard Purdie --- meta/recipes-core/systemd/systemd_256.bb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/meta/recipes-core/systemd/systemd_256.bb b/meta/recipes-core/systemd/systemd_256.bb index 9bd59ef39f..3579c71891 100644 --- a/meta/recipes-core/systemd/systemd_256.bb +++ b/meta/recipes-core/systemd/systemd_256.bb @@ -314,9 +314,10 @@ do_install() { fi if "${@'true' if oe.types.boolean(d.getVar('VOLATILE_LOG_DIR')) else 'false'}"; then - # /var/log is typically a symbolic link to inside /var/volatile, - # which is expected to be empty. + # base-files recipe provides /var/log which is a symlink to /var/volatile/log rm -rf ${D}${localstatedir}/log + printf 'L\t\t%s/log\t\t-\t-\t-\t-\t%s/volatile/log\n' "${localstatedir}" \ + "${localstatedir}" >>${D}${nonarch_libdir}/tmpfiles.d/00-create-volatile.conf elif [ -e ${D}${localstatedir}/log/journal ]; then chown root:systemd-journal ${D}${localstatedir}/log/journal -- cgit v1.2.3-54-g00ecf