Skip to content

build(vcpkg): overlay pthreads port to fetch from GitHub - #25

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 Windows run here (Aug 28) predates the break, but vcpkg.json pulls pthreads on Windows, so the next run would fail at configure.

Adds a vcpkg-configuration.json with overlay-ports only, and no registry or baseline change. The build still uses the runner image's vcpkg (VCPKG_INSTALLATION_ROOT), so every other port resolves exactly as before.

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 and the Windows configure (manifest mode) cannot install
pthreads.

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
register it in a new vcpkg-configuration.json.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@dfattal
dfattal merged commit 78c3047 into main Oct 1, 2026
5 checks 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