]> git.ipfire.org Git - thirdparty/systemd.git/commit
bootctl: rework bootctl-install.c in preparation of varlinkification
authorLennart Poettering <lennart@amutable.com>
Wed, 3 Sep 2025 10:11:00 +0000 (12:11 +0200)
committerLennart Poettering <lennart@amutable.com>
Fri, 6 Feb 2026 22:15:47 +0000 (23:15 +0100)
commit38433a6d06ef4b3fa1a8e0f92fc1a1e22cdbc499
tree65f43af4624b3db4591e87f8a98a7d27c17cd905
parenta53e3697860695bc4db922f7e5b7b3c87454f39a
bootctl: rework bootctl-install.c in preparation of varlinkification

This primarily introduces a context object for each operation, so that
we later can instantiate one for each varlink op we execute, and can
safely lifecycle all operation parameters for each subequent call.

This also reworks the root dir handling to be fd based.

This drops explicit CHASE_TRIGGER_AUTOFS from a bunch of chase() calls
that operate within the ESP/XBOOTLDR, while it keeps them in place for the
chase() calls that find the top-level ESP/XBOOTLDR inode. This reflects
the fact that we explicitly support autofs for the ESP/XBOOTLDR itself,
but below it expect no further mounts, just plain VFAT.

This changes behaviour of the interaction of $KERNEL_INSTALL_CONF_ROOT
and --root=: the former will now be taken relative to the host root, and
will no longer be affected by --root=. This follows similar behaviour in
kernel-install, where it is very explicitly documented in the man page
(the bootclt man page does not document this). This is strictly speaking
a compat breakage, but i think a very minor, niche one, and I think the
pain afflicted by this change is probably neglible compare to the
unsystematic behaviour comapred to kernel-install.
src/bootctl/bootctl-install.c