Skip to content

fix(bootstrap): pin and verify the Homebrew, mise and fisher installers (#68) - #94

Draft
AH-Merii wants to merge 2 commits into
mainfrom
fix/pin-installers
Draft

AH-Merii wants to merge 2 commits into
mainfrom
fix/pin-installers

Conversation

@AH-Merii

@AH-Merii AH-Merii commented Sep 7, 2026

Copy link
Copy Markdown
Owner

bootstrap.sh and the plugins task piped three remote installers — Homebrew's, mise's and fisher's — straight into a shell, unpinned and unverified, so a fresh machine ran whatever those URLs happened to serve that day as its first act, before anything in this repo existed to check it. fisher's used curl -sL without -f, so an error page would have been sourced into fish as a script.

The two pins could not be done the same way. Homebrew's installer repo has no tags and no releases, so a commit is the only thing to pin to. mise's has to come from a release asset rather than mise.run, because that script embeds the checksums of its own release's binaries — setting MISE_VERSION on it instead makes it fetch checksums over the network at install time, which is the property being removed here.

I have not run any of the three installers, so the first real bootstrap is also the first end-to-end test of the pins. What would show up there and not here is a URL that stops serving the pinned bytes, which fetch_verified rejects rather than installs.

Closes #68

…rs (#68)

Homebrew/install has no tags, so its installer is pinned to a commit of main; the mise
installer is pinned to release v2026.9.1 (it embeds the checksums of that release's
binaries). Both are downloaded to a mktemp -d dir, sha256-checked against a hash recorded
next to the ref at the top of the script, and only then run. On apt and dnf, mise comes
from its signed extrepo / COPR repos first, with the pinned installer as the fallback.
fisher is fetched with curl -fsSL and pinned to tag 4.4.8. README documents how to bump.
…ise installer on apt and dnf

Review of #94: the apt extrepo chain is untested on Ubuntu and adds a third-party repo, and
#93 removes the dnf branch. The pinned, hash-checked installer already meets #68.

@AH-Merii AH-Merii left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

heads up​

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

bootstrap/plugins: pin and verify the Homebrew, mise and fisher installers

1 participant