These notes capture project-specific behavior that is easy to miss from the code alone.
xis Homebrew-only.ichecks compiled vendor packages first, then falls back to Homebrew.i ffmpegintentionally installsffmpeg-full.- Real
iinstalls must be run as root.
xinstalls ephemerally under/tmp/x/<formula>.iinstalls into/opt/<package>.idoes not encode versions in the install directory name.idoes not create/opt/<package>symlinks to versioned dirs.- For
i, Homebrew dependencies are merged into the main prefix rather than installed underpkgs/. - When merged files conflict during
istaging, later files overwrite earlier ones. - For
i, only the explicit package's executables should get stubs in/usr/local/bin.
- Stub PATH entries are deduplicated.
- Only add an
sbinPATH entry if that directory exists. - For Homebrew
iinstalls, the root executable set is tracked via.pkg/root-executables.json. - Python
iinstalls also manage dispatcher stubs such aspython,pip,python3, andpip3.
- Homebrew path relocation still rewrites
/opt/homebrew/...references. - Rewrite
@@HOMEBREW_PREFIX@@/etc/openssl@3/cert.pemtoOUR_PREFIX/ssl/cert.pembefore the generic/etcrelocation rules. - When
openssl@3is present, post-install movesshare/ca-certificates/tossl/and renamescacert.pemtocert.pemto keep rewritten binary paths short enough. - Homebrew formulas with
servicemetadata are installable, butpkgdoes not manage those services. - Homebrew formulas with
post_installare unsupported except:openssl@3,ca-certificates, andpython@<major>.<minor>duringiinstalls. - Unsupported Homebrew formulas should fail with:
Unsupported formula: use \brew install foo``.
- Vendor
version()returnsResult<semver::Version, String>. - Vendor code owns version normalization such as stripping a leading
v. - Treat the vendor inventory as code, not documentation: list
./vendorto see the current package modules, and checksrc/vendor.rsfor the registry that is actually compiled in. - When adding or removing a vendor package, keep
src/vendor.rsand its tests in sync with the files undervendor/.
ghdownloads GitHub release zips fromcli/cli.nodeuses GitHub releases for version discovery fromnodejs/node, but downloads tarballs fromhttps://nodejs.org/dist/....nodecurrently exposesnode,npm, andnpx.nodedoes not currently exposecorepack.
- In this environment,
cargomay not be onPATH. - If that happens, use
/Users/mxcl/.cargo/bin/cargo.