WiP Improve casync seeding and slot detection (UBIFS support) #1832
+121
−24
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR improves the robustness of RAUC when working with UBIFS and casync, specifically addressing issues with seeding from the active rootfs.
It implements the approach suggested in the discussion of #774 by using ext_mount_point as the source for a read-only bind mount when seeding. This avoids issues with re-mounting already mounted filesystems (like UBIFS) and allows safe seeding from the active slot.
Additionally, it improves slot detection by:
Resolving symlinks when matching devices in r_slot_find_by_device.
Resolving UBI volume names (e.g. ubi0:volname) to their device nodes to correctly detect external mount points.
Replaces #774
Fixes #772
Disclaimer: I'm neither a C developer nor do I have deep knowledge of rauc. So I only figured out what the problems are, and did the tests. The patches are written by AI and reviewed by myself with my limited knowledge.