Skip to content

Check and supply MicroVM filesystem tools in supported macOS installations #3951

Description

@shiju-nv

User Story

As a macOS user or administrator, I want the supported installation to account for the filesystem tools the VM backend needs, so that creating a sandbox does not depend on my interactive shell or an undocumented package.

Problem Statement

The VM driver uses host mke2fs or mkfs.ext4 and debugfs for image operations. Tool discovery checks PATH and selected installation directories. The inspected formula does not declare e2fsprogs as a dependency, and a service can receive a different environment from the user's shell.

Impact / Why This Matters

A machine can have working OpenShell binaries while still lacking a required image-preparation tool. A setup that works in one developer shell may fail under the service or on another Mac, requiring the operator to diagnose packaging and path differences.

Proposed Design

Account for the required tools in each supported installation path and run a preflight using the same resolution logic and environment used for execution. Report the selected paths and distinguish a missing tool from a tool that starts and fails. Check requirements before accepting image preparation. Document remaining host dependencies accurately.

Acceptance Criteria

  • Each supported installer supplies or explicitly declares all required host filesystem tools.
  • The documented service environment finds the same intended tools as preflight.
  • Missing, non-executable and incompatible tools fail before sandbox image preparation with a useful correction.
  • A tool execution failure retains its real error rather than silently selecting a different installed copy.
  • Installation verification covers a clean host, an ordinary Homebrew prefix, and any explicitly supported private prefix.

Alternatives Considered

Documentation alone leaves the dependency unchecked. PR #3477 already proposes the discovery change.

Agent Investigation

#3400 and #3477 own the existing discovery change. #2308 is closed; its comments corrected a host-versus-guest packaging claim and discussed sparse templates only as an experiment. This Mac already had the required tools. A clean-host missing-tool test remains to be run.

Checklist

  • I've reviewed existing issues and the published docs
  • This is a design proposal, not a "please build this" request

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions