ci(windows): pre-populate msys2 pkgconf 1~2.2.0-1 for vcpkg 2024.10.21#5943
Merged
ci(windows): pre-populate msys2 pkgconf 1~2.2.0-1 for vcpkg 2024.10.21#5943
Conversation
thirdparty/vcpkg/downloads/ is already used by thirdparty/install.bat
to pre-seed C:\vcpkg\downloads\ with msys2 .pkg.tar.zst archives
that vcpkg pins by SHA512 but msys2 mirrors have rotated out of
their live repos. This adds one more entry:
msys2-mingw-w64-x86_64-pkgconf-1~2.2.0-1-any.pkg.tar.zst
SHA512 eb6ba49d56b0edc4f605ad896ac9deb2202c853c821f1c28a26e3c71a5083e893c
8697d174b141da9dc6561620ea218166bd041664d54a0ab51b93bad246ed7a
Pinned by vcpkg 2024.10.21's
scripts/cmake/vcpkg_find_acquire_program(PKGCONFIG).cmake. vcpkg
checks local downloads/ first: if the file exists and its SHA512
matches, the network fetch is skipped. msys2 mirrors currently serve
a newer -N suffix build of the same 2.2.0 upstream, so every pinned
URL returns 404; this workaround unblocks any port that rebuilds
from source and calls vcpkg_fixup_pkgconfig() (blosc, freetype,
libharu, ...).
Note: vcpkg 2026.03.18 (used by the msvc-2022 matrix entries) pins
a completely different URL (pkgconf-2.5.1-1 from the msys repo,
still available); that matrix entry is not affected and no file is
needed for it. This fix is scoped to the 2024.10.21 / msvc-2019
path.
Alternative long-term fix is to bump matrix.vcpkg-version off
2024.10.21. That's a bigger change with wider blast radius; this
PR is the minimal targeted workaround.
Fedr
added a commit
that referenced
this pull request
Apr 20, 2026
Run 24670365594 on this branch hit the same msys2 mirror-404 class of failure we saw before, this time on a different pinned package: error: Missing msys2-msys2-runtime-3.5.3-3-x86_64.pkg.tar.zst and downloads are blocked by x-block-origin ...404 from all 6 mirrors error: building zlib:x64-windows-meshlib failed with: BUILD_FAILED Same mechanism, different file. vcpkg_acquire_msys() downloads an entire msys2 environment (bash, coreutils, file, gawk, grep, gzip, diffutils, make, pkgconf, sed — plus transitive deps like msys2-runtime), each pinned by SHA512 to a specific build. msys2 mirrors rotate old builds out of their live repos. We already pre-staged pkgconf in #5943; this commit adds the msys2-runtime file that failed next. File: msys2-msys2-runtime-3.5.3-3-x86_64.pkg.tar.zst SHA512: 35fd12556a53aa57d8f9500c5c98d5e1fc64c6fbba34cc97e2ff78893e5b1b63c 417bc1c8d1e62b26b2a93aef120fa1f9f82aad67dff4cc44af169d0d29d68f7 Matches the pin in vcpkg 2024.10.21's scripts/cmake/vcpkg_acquire_msys.cmake (line 444-445). thirdparty/install.bat copies thirdparty/vcpkg/downloads/ into C:\vcpkg\downloads\ before vcpkg install; vcpkg_download_distfile() checks the local file first and skips the network fetch if the SHA matches. Same caveat as with the pkgconf pre-staging: this is a point fix. vcpkg_acquire_msys() pulls several more packages that are equally exposed to msys2's retention policy; if any of those also fail in a future run, they will need the same treatment. A bigger fix (bump matrix.vcpkg-version off 2024.10.21 onto a release with still-live msys2 pins) is out of scope for this branch.
MaxRayskiy
pushed a commit
that referenced
this pull request
Apr 21, 2026
Run 24670365594 on this branch hit the same msys2 mirror-404 class of failure we saw before, this time on a different pinned package: error: Missing msys2-msys2-runtime-3.5.3-3-x86_64.pkg.tar.zst and downloads are blocked by x-block-origin ...404 from all 6 mirrors error: building zlib:x64-windows-meshlib failed with: BUILD_FAILED Same mechanism, different file. vcpkg_acquire_msys() downloads an entire msys2 environment (bash, coreutils, file, gawk, grep, gzip, diffutils, make, pkgconf, sed — plus transitive deps like msys2-runtime), each pinned by SHA512 to a specific build. msys2 mirrors rotate old builds out of their live repos. We already pre-staged pkgconf in #5943; this commit adds the msys2-runtime file that failed next. File: msys2-msys2-runtime-3.5.3-3-x86_64.pkg.tar.zst SHA512: 35fd12556a53aa57d8f9500c5c98d5e1fc64c6fbba34cc97e2ff78893e5b1b63c 417bc1c8d1e62b26b2a93aef120fa1f9f82aad67dff4cc44af169d0d29d68f7 Matches the pin in vcpkg 2024.10.21's scripts/cmake/vcpkg_acquire_msys.cmake (line 444-445). thirdparty/install.bat copies thirdparty/vcpkg/downloads/ into C:\vcpkg\downloads\ before vcpkg install; vcpkg_download_distfile() checks the local file first and skips the network fetch if the SHA matches. Same caveat as with the pkgconf pre-staging: this is a point fix. vcpkg_acquire_msys() pulls several more packages that are equally exposed to msys2's retention policy; if any of those also fail in a future run, they will need the same treatment. A bigger fix (bump matrix.vcpkg-version off 2024.10.21 onto a release with still-live msys2 pins) is out of scope for this branch.
MaxRayskiy
pushed a commit
that referenced
this pull request
Apr 21, 2026
Run 24670365594 on this branch hit the same msys2 mirror-404 class of failure we saw before, this time on a different pinned package: error: Missing msys2-msys2-runtime-3.5.3-3-x86_64.pkg.tar.zst and downloads are blocked by x-block-origin ...404 from all 6 mirrors error: building zlib:x64-windows-meshlib failed with: BUILD_FAILED Same mechanism, different file. vcpkg_acquire_msys() downloads an entire msys2 environment (bash, coreutils, file, gawk, grep, gzip, diffutils, make, pkgconf, sed — plus transitive deps like msys2-runtime), each pinned by SHA512 to a specific build. msys2 mirrors rotate old builds out of their live repos. We already pre-staged pkgconf in #5943; this commit adds the msys2-runtime file that failed next. File: msys2-msys2-runtime-3.5.3-3-x86_64.pkg.tar.zst SHA512: 35fd12556a53aa57d8f9500c5c98d5e1fc64c6fbba34cc97e2ff78893e5b1b63c 417bc1c8d1e62b26b2a93aef120fa1f9f82aad67dff4cc44af169d0d29d68f7 Matches the pin in vcpkg 2024.10.21's scripts/cmake/vcpkg_acquire_msys.cmake (line 444-445). thirdparty/install.bat copies thirdparty/vcpkg/downloads/ into C:\vcpkg\downloads\ before vcpkg install; vcpkg_download_distfile() checks the local file first and skips the network fetch if the SHA matches. Same caveat as with the pkgconf pre-staging: this is a point fix. vcpkg_acquire_msys() pulls several more packages that are equally exposed to msys2's retention policy; if any of those also fail in a future run, they will need the same treatment. A bigger fix (bump matrix.vcpkg-version off 2024.10.21 onto a release with still-live msys2 pins) is out of scope for this branch.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Adds one file under
thirdparty/vcpkg/downloads/:This is the exact file that the Windows vcpkg 2024.10.21 matrix entry tries to fetch inside
vcpkg_fixup_pkgconfig()and currently 404s on every msys2 mirror. The SHA512 matches what vcpkg pins inscripts/cmake/vcpkg_find_acquire_program(PKGCONFIG).cmake.How the mechanism works
thirdparty/install.batalready does this before the firstvcpkg install:So any file placed under
thirdparty/vcpkg/downloads/ends up inC:\vcpkg\downloads\at install time. When vcpkg later needs to acquire a package by URL,vcpkg_download_distfile()checks the local downloads directory first: if a file with the expected filename exists and its SHA512 matches, the network fetch is skipped entirely.Same mechanism is already in use — there are 7 pre-committed
msys-*.pkg.tar.*files in that directory today, put there for the same reason (older msys2 pins that have been pruned from mirrors).Scope
msvc-2019 Release CMake 2024.10.21matrix entry. Fresh vcpkg builds of blosc, freetype, libharu, and any other port that callsvcpkg_fixup_pkgconfig()will now succeed instead of hitting the 404.msvc-2022 Debug MSBuild 2026.03.18andmsvc-2022 Release CMake 2026.03.18matrix entries. Those use vcpkg 2026.03.18, which pins a completely different URL (pkgconf-2.5.1-1from themsys/x86_64/directory, still live on mirrors).Verification I did before committing
sha512sumagainst the file and confirmed it's byte-identical to the hash vcpkg pins.msys2--prefixed, notmsys-; vcpkg changed the prefix convention at some point, which is why the pre-existing files in the folder use the old naming).2024.10.21'svcpkg_find_acquire_program(PKGCONFIG).cmaketo confirm this is the exact URL/hash pair that the failing build stack would reach.2026.03.18's equivalent to confirm it targets a different URL entirely — this PR does not help or hurt that path.Limitations / future work
matrix.vcpkg-versioninbuild-test-windows.ymloff 2024.10.21 to a release whose pkgconf pin is still on msys2 mirrors. That's a larger change because the 2024.10.21 entry is wired to msvc-2019 and possibly to specific downstream-compatibility expectations; out of scope here.