On 2/10/24 05:40, Peter Kjellerstedt wrote:
CAUTION: This email comes from a non Wind River email account!
Do not click links or open attachments unless you recognize the sender and know
the content is safe.
-----Original Message-----
From:[email protected]
<[email protected]> On Behalf Of Changqing Li
Sent: den 7 februari 2024 09:34
To:[email protected]
Subject: [OE-core] [PATCH V3] systemd: fix a dead link under /var/log
From: Changqing Li<[email protected]>
Commit 6fe23ff31c0 changed README to a symlink to README.logs, and
install README.logs under systemd doc dir.
But for OE, systemd doc dir is splited into package systemd-doc, when it
is not installed on the target, there will be an dead link:
Eg:
root@intel-x86-64:/var/log# ls -l README
lrwxrwxrwx 1 root root 39 Jun 20 08:57 README ->
../../usr/share/doc/systemd/README.logs
root@intel-x86-64:/var/log# ls -l ../../usr/share/doc/systemd/README.logs
ls: cannot access '../../usr/share/doc/systemd/README.logs': No such file
or directory
Package this link into systemd-doc to fix above issue, meantime, set
symlink according to log dir path
Signed-off-by: Changqing Li<[email protected]>
---
meta/recipes-core/systemd/systemd_255.1.bb | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/meta/recipes-core/systemd/systemd_255.1.bb
b/meta/recipes-core/systemd/systemd_255.1.bb
index 9e09c89355..eccc916af4 100644
--- a/meta/recipes-core/systemd/systemd_255.1.bb
+++ b/meta/recipes-core/systemd/systemd_255.1.bb
@@ -386,6 +386,18 @@ do_install() {
sed -i -e
's/#RebootWatchdogSec=10min/RebootWatchdogSec=${WATCHDOG_TIMEOUT}/' \
${D}/${sysconfdir}/systemd/system.conf
fi
While here, please correct the indentation of the above if statement
to use tabs like the rest of the do_install() function does.
+
+ if [ -f "${D}${prefix}/lib/tmpfiles.d/legacy.conf" ]; then
+ sed -i -e '/^L \/var\/log\/README/d'
${D}${prefix}/lib/tmpfiles.d/legacy.conf
+
+ touch ${D}${prefix}/lib/tmpfiles.d/legacy-doc.conf
+ if"${@'true' if oe.types.boolean(d.getVar('VOLATILE_LOG_DIR')) else
'false'}"; then
+ echo "L /var/log/README - - - -
../../../${datadir}/doc/systemd/README.logs" >
${D}${prefix}/lib/tmpfiles.d/legacy-doc.conf
+ else
+ echo "L /var/log/README - - - -
../../${datadir}/doc/systemd/README.logs" >
${D}${prefix}/lib/tmpfiles.d/legacy-doc.conf
+ fi
+
+ fi
The above solution is error prone as VOLATILE_LOG_DIR may have been
redefined in a way that does not meet the expectations above. It is
better to reuse what systemd's build system produced. You should also
use ${nonarch_libdir} instead of ${prefix}/lib. Taken together:
entry=$(grep '^L /var/log/README'
${D}${nonarch_libdir}/tmpfiles.d/legacy.conf 2>/dev/null)
if [ "$entry" ]; then
echo "$entry" >
${D}${nonarch_libdir}/tmpfiles.d/legacy-doc.conf
sed -i -e '\%^L /var/log/README%d'
${D}${nonarch_libdir}/tmpfiles.d/legacy.conf
fi
That way the link will only be setup via legacy-doc.conf if it was
present in legacy.conf in the first place.
Hi,
Thanks, other comments fixed in V4, and checking of VOLATILE_LOG_DIR is
needed, please see commit message in V4.
Regards
Changqing
}
python populate_packages:prepend (){
@@ -622,6 +634,8 @@ FILES:${PN}-udev-rules = "\
${rootlibexecdir}/udev/rules.d/99-systemd.rules \
"
+FILES:${PN}-doc:append = " ${prefix}/lib/tmpfiles.d/legacy-doc.conf"
There should be no need to use :append here:
FILES:${PN}-doc += "${nonarch_libdir}/tmpfiles.d/legacy-doc.conf"
+
CONFFILES:${PN} = "${sysconfdir}/systemd/coredump.conf \
${sysconfdir}/systemd/journald.conf \
${sysconfdir}/systemd/logind.conf \
--
2.25.1
//Peter
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#195822):
https://lists.openembedded.org/g/openembedded-core/message/195822
Mute This Topic: https://lists.openembedded.org/mt/104215027/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-