fix(vm): macOS openshell-driver-vm release artifact missing com.apple.security.hypervisor entitlement
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 55/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- macos, rust
- Ambito
- build-system, release
Direzione di ricerca
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.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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)
- Lingua principale
- Rust
- Stelle
- 8.7k
- Fork
- 1.3k
- Merge medio
- 2g 8h
- PR unite (30g)
- 271
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di NVIDIA/OpenShell
-
area:docs
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
-
state:triage-needed
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
-
area:cli state:validated
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
-
state:triage-needed
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
-
area:build spike state:review-ready state:stale
Difficoltà 2/5 Mezza giornata Idoneità per principianti 68/100
Tutte le issue di NVIDIA/OpenShell
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
-
issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
-
agentic-workflows
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
web-infra-dev/rspack#15847 ·