Skip to content

Embed the vdpm that can list the channels it names - #177

Merged
frangarcj merged 1 commit into
masterfrom
next-vdpm-014
Aug 28, 2026
Merged

Embed the vdpm that can list the channels it names#177
frangarcj merged 1 commit into
masterfrom
next-vdpm-014

Conversation

@frangarcj

Copy link
Copy Markdown
Contributor

VDPM_TAG moves from v0.1.3 to v0.1.4, cut for this.

Two things the core has been shipping broken.

vdpm channels could not run on Windows. include/list-channels.ps1 looked for vdpm-channel.exe in bin/; the bootstrap installs it under share/vdpm/msys/usr/bin/. What makes it sharper than a missing file is where you arrive from: that is the command vdpm's own error message sends you to when you do not name a series. The way out of the error was the error.

v0.1.3   $channelTool = Join-Path $sdkRoot "bin/vdpm-channel.exe"
v0.1.4   $channelTool = Join-Path $sdkRoot "share/vdpm/msys/usr/bin/vdpm-channel.exe"

refresh-repositories.{sh,ps1} still defaulted to stable. Which is not a series, so it 404s. The frontend refuses without a name; both helpers walked straight past that when run directly — which is what anybody following a written procedure does. The vdpm-side commit repaired the test covering it first: it ran the helper under sh, and on any machine where /bin/sh is dash it died at set -o pipefail before reaching the name check, so every name passed and the test reported OK having tested nothing.

Also in this tag: host-triplet recognising musl and FreeBSD, surviving pipefail, and agreeing with Windows about its patterns; and the bootstrap naming the real failure when no seed serves the detected host.

Why this is a hand-move

vdpm sits in the untracked half of cmake/pin-tracking.json:

a released tag; the vdpm release process moves it, and the core embeds the matching bundle

So the release comes first and the pin follows. v0.1.4 is published and out of draft: nine host bundles, uploaded, downloaded back and diff -ru'd before undrafting, with vdpm-0.1.4-x86_64-w64-mingw32.tar.bz2 among them — the one carrying the fix.

What CI actually checks here

scripts/ci/build-host.sh downloads vdpm-0.1.4-<host>.tar.bz2 for every packaged host and verifies it against the release's own sidecar rather than a hash pinned here, so a bundle that did not publish, or published wrong, fails the leg that needs it. The bootstrap smoke test then installs it and runs vdpm --help, pacman --version and arm-vita-eabi-gcc --version out of the result, wherever the host can run its own output.

That is the check that matters for a pin like this, and it only exists on the real build.

All 9 CI tests and 6 protocol tests pass locally.


AI tools were used in preparing this PR (Claude Opus 5, Anthropic).

vdpm 0.1.4 fixes two things the core has been shipping broken.

`vdpm channels` could not run on Windows: list-channels.ps1 looked for
vdpm-channel.exe in bin/, and the bootstrap installs it under
share/vdpm/msys/usr/bin/. That is the command vdpm's own error message
sends you to when you do not name a series, so the way out of the error
was itself the error.

And refresh-repositories.{sh,ps1} still defaulted to a series called
stable, which is not a series and 404s. vdpm refuses without a name; the
helpers walked straight past that when run by hand, which is how anybody
following a script would reach them.

It also carries host-triplet recognising musl and FreeBSD and agreeing
with Windows about its patterns, and the bootstrap naming the real
failure when no seed serves the detected host.

The pin is untracked in cmake/pin-tracking.json on purpose -- "a
released tag; the vdpm release process moves it, and the core embeds the
matching bundle" -- so it moves by hand, with the release cut first.
v0.1.4 is published: nine host bundles, uploaded, downloaded back and
diffed before it left draft.
@frangarcj
frangarcj merged commit e873ab7 into master Aug 28, 2026
17 of 20 checks passed
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.

1 participant