Add MSYS2 depext declarations and UCRT64 support#29579
Open
Add MSYS2 depext declarations and UCRT64 support#29579
Conversation
eac185a to
0d89543
Compare
aa6c276 to
2c718c6
Compare
The x86_64-w64-mingw32-pkgconf binary is only provided by MSYS2 packages. On Cygwin, cross-compilation uses the native pkgconf with --personality instead. The sole consumer (conf-pkg-config) already gates its dependency on os-distribution = "msys2", so narrowing available is safe.
2b69462 to
e26ca33
Compare
Member
|
@dra27 what do you think? Seems fine to merge from what I can understand |
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.
Summary
conf-m4,conf-perl, andconf-findutilsconf-mingw-w64-*-x86_64packages that previously hardcoded a dependency onmsys2-mingw64conf-mingw-w64-pkgconf-x86_64to MSYS2 only (it was never installable on Cygwin)These changes were discovered whilst adding MSYS2 support to ocaml/setup-ocaml.
Changes
MSYS base package depexts
m4,perl, andfindutilsare MSYS base packages, available across all MSYS2 environments (UCRT64, CLANG64, CLANGARM64, MSYS, MINGW64, MINGW32). A single{os-distribution = "msys2"}filter suffices to cover them all.UCRT64 support for mingw-w64 packages
The MSYS2 project deprecated the MINGW64 environment in March 2026, recommending UCRT64 as the replacement. Six
conf-mingw-w64-*-x86_64packages hardcoded a dependency onmsys2-mingw64, making them unusable with UCRT64. For each package:dependsis relaxed from"msys2-mingw64"to("msys2-mingw64" | "msys2-ucrt64")depextsuses%{msys2:package-prefix}%variable interpolation to resolve the correct pacman package name for the active environment, rather than hardcoding environment-specific namesSince
msys2-mingw64andmsys2-ucrt64shareconflict-class: "msys2-env", the solver correctly selects exactly one.Affected packages:
conf-mingw-w64-gcc-x86_64,conf-mingw-w64-bzip2-x86_64,conf-mingw-w64-zlib-x86_64,conf-mingw-w64-zstd-x86_64,conf-mingw-w64-pkgconf-x86_64,conf-mingw-w64-gmp-x86_64.Restrict conf-mingw-w64-pkgconf-x86_64 to MSYS2
conf-mingw-w64-pkgconf-x86_64checks for thex86_64-w64-mingw32-pkgconfbinary, which is only provided by MSYS2 packages. On Cygwin, cross-compilation uses the nativepkgconfwith--personalityinstead, and nomingw64-x86_64-pkgconfCygwin package exists. The sole consumer (conf-pkg-config) already gates its dependency onos-distribution = "msys2", so narrowingavailablefromos = "win32"toos = "win32" & os-distribution = "msys2"is safe.Closes #29575, closes #29576, closes #29577, closes #29578.