mirror of
https://github.com/systemd/systemd.git
synced 2026-06-30 19:57:29 +00:00
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.
This commit is contained in: