WEFT_OS/crates
Marco Allegretti d2cb693c55 feat(appd): MountOrchestrator -- EROFS+dm-verity image mount on app launch
Add crates/weft-appd/src/mount.rs with MountOrchestrator.

On each app launch, supervise() calls MountOrchestrator::mount_if_needed
which looks for <app_id>.app.img, <app_id>.hash, and <app_id>.roothash
in the app store roots. If all three exist and weft-mount-helper is
available (WEFT_MOUNT_HELPER env or /usr/lib/weft/ default paths), it:

  - creates /tmp/weft-mnt-<session_id>/<app_id>/
  - invokes weft-mount-helper mount to set up dm-verity and EROFS mount
  - sets WEFT_APP_STORE=/tmp/weft-mnt-<session_id> in the child env so
    the runtime resolves the package from the mounted read-only image

After the process exits, umount() invokes weft-mount-helper umount and
removes the temporary directory.

Falls back to directory-based install silently if no image is found,
mount-helper is absent, or the mount fails.

Test: find_image_returns_none_when_absent.
2026-03-11 15:47:23 +01:00
..
weft-appd feat(appd): MountOrchestrator -- EROFS+dm-verity image mount on app launch 2026-03-11 15:47:23 +01:00
weft-build-meta Initialize Rust workspace and repository metadata 2026-03-10 18:47:06 +01:00
weft-compositor feat(protocol): add wl_surface arg to create_window in weft-shell-unstable-v1 2026-03-11 14:33:17 +01:00
weft-ipc-types feat: weft-mount-helper -- setuid helper for EROFS+dm-verity mounts 2026-03-11 15:43:59 +01:00
weft-mount-helper feat: weft-mount-helper -- setuid helper for EROFS+dm-verity mounts 2026-03-11 15:43:59 +01:00
weft-pack feat: weft-mount-helper -- setuid helper for EROFS+dm-verity mounts 2026-03-11 15:43:59 +01:00
weft-runtime feat(runtime): seccomp blocklist filter via optional seccomp feature 2026-03-11 15:34:21 +01:00
weft-servo-shell feat(servo-shell): implement weft-shell-protocol Wayland client 2026-03-11 14:59:58 +01:00