Skip to content

ci(windows): overlay vcpkg pthreads port to fetch from GitHub - #6

Merged
dfattal merged 1 commit into
mainfrom
fix/vcpkg-pthreads-overlay-github
Oct 1, 2026
Merged

dfattal merged 1 commit into
mainfrom
fix/vcpkg-pthreads-overlay-github

Conversation

@dfattal

@dfattal dfattal commented Oct 1, 2026

Copy link
Copy Markdown
Contributor

Pre-emptive: the last run here (Aug 24) predates the break, but any new run would hit it. The workflow builds the runtime from the pinned checkout (RUNTIME_REF: v2.12.0), whose vcpkg.json pulls pthreads.

The overlay is vendored under cmake/ and wired in through the VCPKG_OVERLAY_PORTS job env var, because the manifest and config come from the pinned runtime checkout. Once RUNTIME_REF moves to a runtime release that carries the overlay, the env var and this copy can go.

Break

vcpkg's pthreads port downloads pthreads4w-code-v3.0.0.zip with vcpkg_from_sourceforge. SourceForge now serves an 859-byte HTML bot-check page to datacenter IPs, so every mirror fails with "unexpected hash" and the vcpkg install aborts.

Overlay

cmake/vcpkg-overlay-ports/pthreads/ is the same overlay as DisplayXR/displayxr-runtime#1776: a verbatim copy of microsoft/vcpkg ports/pthreads (3.0.0#14, unchanged on vcpkg master), except that vcpkg_from_sourceforge becomes vcpkg_from_github on GerHobbelt/pthread-win32 @ 07053a521b0a9deb6db2a649cde1f828f2eb1f4f.

How the source was verified:

  • That commit is refs/tags/Version-3-0-0-release^{} in upstream's own SourceForge git (git.code.sf.net/p/pthreads4w/code). Commit ids are content-addressed, so the tree is identical to upstream's.
  • The five files the port's patches touch have blob ids equal to the patches' recorded preimages (Makefile a703b9c, context.h 33294c1, version.rc aa0596c, pthread_getname_np.c 8fc32b1, implement.h 1579376).
  • All patches apply, and __PTW32_VERSION is 3,0,0,0.

🤖 Generated with Claude Code

SourceForge serves an HTML bot-check page to CI runners, so the
pthreads port's vcpkg_from_sourceforge download fails its hash on every
mirror; the runtime build this workflow drives pulls pthreads through
the pinned runtime's vcpkg manifest.

Add cmake/vcpkg-overlay-ports/pthreads (same overlay as
displayxr-runtime#1776: the vcpkg port verbatim, source fetched with
vcpkg_from_github from the Version-3-0-0-release commit 07053a52) and
point vcpkg at it with VCPKG_OVERLAY_PORTS, since the manifest comes
from the pinned runtime checkout (RUNTIME_REF v2.12.0).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@dfattal
dfattal merged commit d796cef into main Oct 1, 2026
1 check passed
@dfattal
dfattal deleted the fix/vcpkg-pthreads-overlay-github branch October 1, 2026 07:09
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