diff mbox series

[RFC] systemd: Remove handling of fallback resolv.conf without resolved

Message ID a19a769788f8b2110238f8be3d7ddc181bf2ce58.1783361167.git.joerg.sommer@navimatix.de
State New
Headers show
Series [RFC] systemd: Remove handling of fallback resolv.conf without resolved | expand

Commit Message

Jörg Sommer July 6, 2026, 6:06 p.m. UTC
From: Jörg Sommer <joerg.sommer@navimatix.de>

The origin of this code is “systemd: arrange for volatile
/etc/resolv.conf” [1] to provide a symlink to /run for resolv.conf to allow
updates on read-only rootfs, because sysvinit did so, too. But this
conflicted with packages like connman [YOCTO #11331], [YOCTO #6700] they
also provide a resolv.conf and resulted in an update-alternative handling
for resolv.conf; “systemd: enable resolved and networkd” [2]. Later, the
installation of the alternatives was made depending on resolved; “systemd:
Expose resolv-conf alternative only when resolved is built” [3].

So, now, when you install systemd without resolved on a read-only rootfs,
you get /etc/resolv-conf.systemd which is unused, because no
update-alternatives run, no resolv.conf, and a warning from tmpfiles that
resolv.conf cannot be created:

    systemd-tmpfiles[114]: symlink(../run/systemd/resolve/resolv.conf, /etc/resolv.conf) failed: Read-only file system

Hence, do nothing with resolv.conf if resolved is not installed. A sane
fallback for resolv.conf with ro rootfs support should be provided by
base-files.

[1] 7f087f161e8942bcd35f88999dfca418f01cd7fa
[2] d9b6d538e3d81ab0d5e7b7b6adecef555d782217
[3] 91efc50723229672b6e8187b69b183cba525f199

Signed-off-by: Jörg Sommer <joerg.sommer@navimatix.de>
---
 meta/recipes-core/systemd/systemd_259.5.bb | 7 +------
 1 file changed, 1 insertion(+), 6 deletions(-)
diff mbox series

Patch

diff --git a/meta/recipes-core/systemd/systemd_259.5.bb b/meta/recipes-core/systemd/systemd_259.5.bb
index 447974373f..1f988e8177 100644
--- a/meta/recipes-core/systemd/systemd_259.5.bb
+++ b/meta/recipes-core/systemd/systemd_259.5.bb
@@ -324,12 +324,7 @@  do_install() {
 	   ! ${@bb.utils.contains('PACKAGECONFIG', 'networkd', 'true', 'false', d)}; then
 		echo 'd /run/systemd/netif/links 0755 root root -' >>${D}${exec_prefix}/lib/tmpfiles.d/systemd.conf
 	fi
-	if ! ${@bb.utils.contains('PACKAGECONFIG', 'resolved', 'true', 'false', d)}; then
-		echo 'L! ${sysconfdir}/resolv.conf - - - - ../run/systemd/resolve/resolv.conf' >>${D}${exec_prefix}/lib/tmpfiles.d/etc.conf
-		echo 'd /run/systemd/resolve 0755 root root -' >>${D}${exec_prefix}/lib/tmpfiles.d/systemd.conf
-		echo 'f /run/systemd/resolve/resolv.conf 0644 root root' >>${D}${exec_prefix}/lib/tmpfiles.d/systemd.conf
-		ln -s ../run/systemd/resolve/resolv.conf ${D}${sysconfdir}/resolv-conf.systemd
-	else
+	if ${@bb.utils.contains('PACKAGECONFIG', 'resolved', 'true', 'false', d)}; then
 		rc="../run/systemd/resolve/${@bb.utils.contains('RESOLV_CONF', 'stub-resolv', 'stub-', '', d)}resolv.conf"
 		sed -i -e "s%^L! /etc/resolv.conf.*$%L! /etc/resolv.conf - - - - $rc%" ${D}${exec_prefix}/lib/tmpfiles.d/systemd-resolve.conf
 		ln -s $rc ${D}${sysconfdir}/resolv-conf.systemd