fix(vm): macOS openshell-driver-vm release artifact missing com.apple.security.hypervisor entitlement
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 55/100
- Issue type
- Bug
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- macos, rust
- Domain
- build-system, release
Research direction
Start by tracing the release build that packages openshell-driver-vm-aarch64-apple-darwin.tar.gz, then read crates/openshell-driver-vm/entitlements.plist, the generated Homebrew formula, and install.sh. Verify the artifact with codesign, remove formula post_install signing and install.sh patch_homebrew_formula(), and confirm the release binary carries the hypervisor entitlement.
Written by the indexing model from the issue text.
Description
User Story
As a macOS user downloading openshell-driver-vm-aarch64-apple-darwin.tar.gz from a GitHub release,
I want the binary to work without manual codesigning,
so that VM sandbox creation succeeds out of the box regardless of install method.
Problem Statement
The macOS openshell-driver-vm binary in the GitHub release tarball is shipped unsigned — without the com.apple.security.hypervisor entitlement required by Apple's Hypervisor.framework. The entitlement is only applied at Homebrew install time via the formula's post_install hook, not during the CI build that produces the release artifact.
Impact / Why This Matters
When this happens, any non-Homebrew install path (direct tarball download, install.sh pre-release mode, CI environments) gets a binary that fails at runtime when it tries to create a microVM through libkrun.
This results in a confusing runtime crash with no clear indication that codesigning is the issue.
This matters because:
- The workaround is to manually run
codesign --entitlements <plist> --force -s - openshell-driver-vm, which requires knowing about macOS entitlements. - If Homebrew's
post_installis skipped (--skip-post-install) or fails, the binary is silently broken even for Homebrew users. - Codesigning logic (writing a plist, shelling out to
/usr/bin/codesign) does not belong in a package manager formula — it should be part of the build pipeline that produces the artifact.
Acceptance Criteria
-
openshell-driver-vm-aarch64-apple-darwin.tar.gzin GitHub releases contains a binary ad-hoc signed withcom.apple.security.hypervisor(verifiable viacodesign -d --entitlements - openshell-driver-vm) - The generated Homebrew formula no longer writes an entitlements plist or calls
codesigninpost_install -
install.shno longer containspatch_homebrew_formula()(dead code once formula codesigning is removed) - Existing Homebrew upgrade path works — a redundant
post_installcodesign from a cached older formula is harmless against a pre-signed binary -
crates/openshell-driver-vm/entitlements.plistremains the single source of truth for the entitlement
Reproduction Steps
- Download
openshell-driver-vm-aarch64-apple-darwin.tar.gzfrom a GitHub release - Extract:
tar -xzf openshell-driver-vm-aarch64-apple-darwin.tar.gz - Verify missing signature:
codesign -d --entitlements - openshell-driver-vm→ shows no entitlements - Attempt to create a VM sandbox — fails because Hypervisor.framework rejects the unsigned caller
Environment
- OS: macOS (Apple Silicon / aarch64-apple-darwin)
- Install method: direct GitHub release tarball download (non-Homebrew path)
- Dominant language
- Rust
- Stars
- 8.7k
- Forks
- 1.3k
- Avg merge
- 2d 8h
- Merged PRs (30d)
- 271
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from NVIDIA/OpenShell
-
area:docs
Difficulty 1/5 Under an hour Newbie friendliness 88/100
-
state:triage-needed
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
-
area:cli state:validated
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
-
state:triage-needed
Difficulty 1/5 Under an hour Newbie friendliness 90/100
-
area:build spike state:review-ready state:stale
Difficulty 2/5 Half a day Newbie friendliness 68/100
All issues in NVIDIA/OpenShell
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
Eynzof/Hermes-CN-Desktop#616 ·
-
bug rules
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
-
app bug
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
IronCoreLabs/ironcore-alloy#346 ·
-
good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 65/100