Patch Tuesday for May 2026#51854
Conversation
There was a problem hiding this comment.
Pull request overview
This PR updates the Windows CI image/toolchain for the May 2026 patch cycle, including Visual Studio 2026 Build Tools/MSVC 19.51 support, additional preinstalled build tools, and port fixes/baselines needed for the new compiler.
Changes:
- Updates Windows image provisioning scripts to install VS Build Tools, CMake, Ninja, 7Zip, Git, Azure CLI, and related dependencies.
- Adds MSVC 19.51 compatibility fixes or baselines for Qt, WebRTC, Sail, OpenCV2, and related CI test ports.
- Refreshes affected port versions and the versions baseline.
Reviewed changes
Copilot reviewed 49 out of 49 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
scripts/azure-pipelines/windows/utility-prefix.ps1 |
Adds shared asset URL/download/install helpers. |
scripts/azure-pipelines/windows/deploy-visual-studio.ps1 |
Updates VS installation to VS 2026 Build Tools/MSVC 19.51. |
scripts/azure-pipelines/windows/deploy-sevenzip.ps1 |
Adds 7Zip installation script. |
scripts/azure-pipelines/windows/deploy-git.ps1 |
Adds Git for Windows installation script. |
scripts/azure-pipelines/windows/deploy-cmake.ps1 |
Adds CMake installation script. |
scripts/azure-pipelines/windows/deploy-ninja.ps1 |
Adds Ninja installation script. |
scripts/azure-pipelines/windows/deploy-*.ps1 |
Refactors several installers to use shared asset/download helpers. |
scripts/azure-pipelines/windows/create-image.ps1 |
Adds new provisioning steps to minted Windows images. |
scripts/azure-pipelines/windows/provision-entire-image.ps1 |
Runs the new local provisioning scripts. |
scripts/azure-pipelines/windows/bootstrap-from-source.cmd |
Points bootstrap to the VS 2026 Build Tools environment. |
scripts/azure-pipelines/windows*/azure-pipelines.yml |
Updates Windows image demand version. |
scripts/azure-pipelines/windows-unstable/rearrange-msvc-drop-layout.ps1 |
Updates MSVC drop layout path for VS 2026. |
scripts/vcpkg-tools.json |
Updates tracked tool metadata, including Python entries. |
scripts/ci.baseline.txt |
Baselines OpenCV2 Windows failures. |
scripts/ci.feature.baseline.txt |
Baselines OpenCV2 Windows feature failures. |
scripts/test_ports/vcpkg-ci-opencv/vcpkg.json |
Skips OpenCV2 test coverage on Windows. |
ports/qtbase/* |
Adds QtBase WinRT coroutine warning suppression and bumps port version. |
ports/qtconnectivity/* |
Adds Qt Connectivity WinRT coroutine warning suppression and bumps port version. |
ports/qtspeech/* |
Adds Qt Speech WinRT coroutine warning suppression and bumps port version. |
ports/sail/* |
Prevents installation of binary dependencies and refreshes Sail patches/versioning. |
ports/webrtc/* |
Adds WebRTC Windows toolchain patches for VS 2026/MSVC 19.51 and bumps port version. |
versions/baseline.json |
Updates baseline port-versions for changed ports. |
versions/q-/qtbase.json |
Adds qtbase port-version entry. |
versions/q-/qtconnectivity.json |
Adds qtconnectivity port-version entry. |
versions/q-/qtspeech.json |
Adds qtspeech port-version entry. |
versions/s-/sail.json |
Adds sail port-version entry. |
versions/w-/webrtc.json |
Adds webrtc port-version entry. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
dc8d395 to
e4dce71
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 29 out of 29 changed files in this pull request and generated 5 comments.
Comments suppressed due to low confidence (2)
scripts/vcpkg-tools.json:101
- The git tool entries list version "2.7.4", but the URL/archive point to Git for Windows 2.54.0. This mismatch can make tool selection/reporting confusing and may prevent expected updates if the version field is used as the cache key; update the version to match the referenced artifact.
{
"name": "git",
"os": "windows",
"arch": "amd64",
"version": "2.7.4",
"executable": "mingw64/bin/git.exe",
"url": "https://github.com/git-for-windows/git/releases/download/v2.54.0.windows.1/PortableGit-2.54.0-64-bit.7z.exe",
"sha512": "0783e36b8809b55c2786d68af1e8de732d9121ad7e55b50a24c4779b2431adce0e4234d79db1ec83b4d8b300924b2b325459fb11da53ef9b114239340ccb4a9e",
"archive": "PortableGit-2.54.0-64-bit.7z.exe"
},
scripts/vcpkg-tools.json:252
- For the 7zip tool, the download URL ends with "7z2601-arm64.exe" but the "archive" field is "7z2601-arm64.7z.exe". If the tooling relies on the archive name matching the downloaded asset name, this will break acquisition/extraction; align the archive filename with the URL (or vice versa).
"name": "7zip",
"os": "windows",
"arch": "arm64",
"version": "26.01",
"executable": "7z.exe",
"url": "https://github.com/ip7z/7zip/releases/download/26.01/7z2601-arm64.exe",
"sha512": "57d2fb50a28952daf31407ce3f4b05356309f7dd93f24752f9ee56b57642dbdde93a5e3577e4c8833383ced699ab514ea7c1bc12f626a686b3f266c018223bdd",
"archive": "7z2601-arm64.7z.exe"
},
REGRESSION: llfio:x64-windows failed with BUILD_FAILED. If expected, add llfio:x64-windows=fail to D:\a\_work\1\s\scripts\azure-pipelines/../ci.baseline.txt.
REGRESSION: llfio:x64-windows-release failed with BUILD_FAILED. If expected, add llfio:x64-windows-release=fail to D:\a\_work\1\s\scripts\azure-pipelines/../ci.baseline.txt.
REGRESSION: llfio:x64-windows-static failed with BUILD_FAILED. If expected, add llfio:x64-windows-static=fail to D:\a\_work\1\s\scripts\azure-pipelines/../ci.baseline.txt.
REGRESSION: llfio:x64-windows-static-md failed with BUILD_FAILED. If expected, add llfio:x64-windows-static-md=fail to D:\a\_work\1\s\scripts\azure-pipelines/../ci.baseline.txt.I filed #51900 but I'm not 100% sure that one is correct so here I have baselined REGRESSION: vcpkg-ci-gdal:arm64-windows cascaded, but it is required to pass. (D:\a\_work\1\s\scripts\azure-pipelines/../ci.baseline.txt).
REGRESSION: vcpkg-ci-opencv:arm64-windows cascaded, but it is required to pass. (D:\a\_work\1\s\scripts\azure-pipelines/../ci.baseline.txt).
REGRESSION: vcpkg-ci-gdal:arm64-windows-static-md cascaded, but it is required to pass. (D:\a\_work\1\s\scripts\azure-pipelines/../ci.baseline.txt).
REGRESSION: vcpkg-ci-opencv:arm64-windows-static-md cascaded, but it is required to pass. (D:\a\_work\1\s\scripts\azure-pipelines/../ci.baseline.txt).These are fallout from the HDF5 ICE. I think I have no choice but to baseline :( REGRESSION: libtorch:x86-windows failed with BUILD_FAILED. If expected, add libtorch:x86-windows=fail to D:\a\_work\1\s\scripts\azure-pipelines/../ci.baseline.txt.This is exposed by Installing 1628/2778 libtorch[core,gflags,glog,opencv,zstd]:x86-windows@2.7.1...
libtorch[core,gflags,glog,opencv,zstd]:x86-windows@2.7.1 package ABI: fb001dba7352be7cf81c6216260bf897796b3f70b593450e0885e4680a4ea93b
Building libtorch[core,gflags,glog,opencv,zstd]:x86-windows@2.7.1...
error: building libtorch:x86-windows failed with: CASCADED_DUE_TO_MISSING_DEPENDENCIES
due to the following missing dependencies:
sleef[core]:x86-windowsREGRESSION: salome-med-fichier:x86-windows failed with BUILD_FAILED. If expected, add salome-med-fichier:x86-windows=fail to D:\a\_work\1\s\scripts\azure-pipelines/../ci.baseline.txt.
REGRESSION: salome-med-fichier:x64-windows failed with BUILD_FAILED. If expected, add salome-med-fichier:x64-windows=fail to D:\a\_work\1\s\scripts\azure-pipelines/../ci.baseline.txt.
REGRESSION: salome-med-fichier:x64-windows-static failed with BUILD_FAILED. If expected, add salome-med-fichier:x64-windows-static=fail to D:\a\_work\1\s\scripts\azure-pipelines/../ci.baseline.txt.
REGRESSION: salome-med-fichier:x64-windows-static-md failed with BUILD_FAILED. If expected, add salome-med-fichier:x64-windows-static-md=fail to D:\a\_work\1\s\scripts\azure-pipelines/../ci.baseline.txt.Broken because I now install CMake with CMake's default installer which chooses a path with spaces. #51901 REGRESSION: dcmtk:arm64-windows failed with BUILD_FAILED. If expected, add dcmtk:arm64-windows=fail to D:\a\_work\1\s\scripts\azure-pipelines/../ci.baseline.txt.
REGRESSION: dcmtk:arm64-windows-static-md failed with BUILD_FAILED. If expected, add dcmtk:arm64-windows-static-md=fail to D:\a\_work\1\s\scripts\azure-pipelines/../ci.baseline.txt.This isn't actually a regression, I think I forgot the |
hmm no?If the compiler ICEs kick the damn compiler team to provide a work around? Dropping HDF5 into the baseline will result in a lot of cascades. |
I do not have any ability to "kick" the compiler team to do anything. Even if I did, they would be unlikely to do much about an ICE they have already fixed. (I was going to file it to Developer Community but the ICE does not repro on 19.52)
It does but I'm not sure what else to do. If it was a frontend ICE I can often workaround those, but backend/optimizer ICEs are usually harder because most "obvious" things you can do the optimizer will "helpfully" fix/transform back into the thing that triggers the crash. (It being a backend ICE is why this only affects arm64-windows) |
MSVC 19.51 removes all std::tr1 and there are hundreds of references in ~84 files to that in opencv2. The resulting patch would not meet vcpkg's requirements. The last opencv2 release is from 2019 and it is unlikely that they will ever fix this. Skips rather than fails because this will never be fixed. It still works on non-Windows and older Windows compilers so no reason to deindex it right now, but we have to disable testing of it in our lab. (Sorry @cenit :( )
Filed ned14/llfio#175 as a potential fix with upstream.
Other changes: * Merge the HDF5 patches together. * Change "comment out" patch changes into deletions to reduce the patch size. * Rename "other fixes" patch to describe what it does.
Build fails with hard coded assumptions rejecting x86 (it wants only i686) implying that this has never wrorked. Also tries to pass _addcarry_u64 on x86 which is not a thing.
9e1a164 to
51cee85
Compare
I guess we could try pragma disabling the optimizer around that function |
std::tr1parts which has been removed in that compiler release. opencv2 is long unmaintained by the opencv developers; the last version is from 2019. I have not deindexed it because @cenit seems like he cares about it, and we still have some places where it works.GPT 5.4 made contributions to the PowerShell improvements. It was unable to fix any of the regressions on its own, but it may have been able to do so if the line endings bug was fixed. (This bug causes copilot-cli to destroy every .patch/.diff it touches) github/copilot-cli#1148
I ran this on my workstation and fixed a slew of regressions already:
REGRESSION: ampl-mp:x64-windows failed with BUILD_FAILED. If expected, add ampl-mp:x64-windows=fail to scripts\ci.baseline.txt.
#51753
REGRESSION: arcticdb-sparrow:x64-windows failed with BUILD_FAILED. If expected, add arcticdb-sparrow:x64-windows=fail to scripts\ci.baseline.txt.
#51754
REGRESSION: breakpad:x64-windows failed with BUILD_FAILED. If expected, add breakpad:x64-windows=fail to scripts\ci.baseline.txt.
#51774
REGRESSION: cppcoro:x64-windows failed with BUILD_FAILED. If expected, add cppcoro:x64-windows=fail to scripts\ci.baseline.txt.
#51757
REGRESSION: cppmicroservices:x64-windows failed with BUILD_FAILED. If expected, add cppmicroservices:x64-windows=fail to scripts\ci.baseline.txt.
#51758
REGRESSION: cpprestsdk:x64-windows failed with BUILD_FAILED. If expected, add cpprestsdk:x64-windows=fail to scripts\ci.baseline.txt.
#51750
REGRESSION: crashpad:x64-windows failed with BUILD_FAILED. If expected, add crashpad:x64-windows=fail to scripts\ci.baseline.txt.
#51756
REGRESSION: duckdb:x64-windows failed with BUILD_FAILED. If expected, add duckdb:x64-windows=fail to scripts\ci.baseline.txt.
#51749
REGRESSION: ezfoundation:x64-windows failed with BUILD_FAILED. If expected, add ezfoundation:x64-windows=fail to scripts\ci.baseline.txt.
#51748
REGRESSION: geogram:x64-windows failed with BUILD_FAILED. If expected, add geogram:x64-windows=fail to scripts\ci.baseline.txt.
BrunoLevy/geogram#353
#51747
REGRESSION: hyperscan:x64-windows failed with BUILD_FAILED. If expected, add hyperscan:x64-windows=fail to scripts\ci.baseline.txt.
#51775
REGRESSION: jinja2cpplight:x64-windows failed with BUILD_FAILED. If expected, add jinja2cpplight:x64-windows=fail to scripts\ci.baseline.txt.
#51777
REGRESSION: llgi:x64-windows failed with BUILD_FAILED. If expected, add llgi:x64-windows=fail to scripts\ci.baseline.txt.
#51778
REGRESSION: luminoengine:x64-windows failed with BUILD_FAILED. If expected, add luminoengine:x64-windows=fail to scripts\ci.baseline.txt.
LuminoEngine/Lumino#221
LuminoEngine/Lumino#222
LuminoEngine/Lumino#223
#51785
REGRESSION: opencv2:x64-windows failed with BUILD_FAILED. If expected, add opencv2:x64-windows=fail to scripts\ci.baseline.txt.
Not fixable in a patch, there are hundreds of references in hundreds of files to std::tr1
REGRESSION: openvino:x64-windows failed with BUILD_FAILED. If expected, add openvino:x64-windows=fail to scripts\ci.baseline.txt.
#51789
REGRESSION: tcl:x64-windows failed with BUILD_FAILED. If expected, add tcl:x64-windows=fail to scripts\ci.baseline.txt.
#51751 (NOT ME)
REGRESSION: pagmo2:x64-windows failed with BUILD_FAILED.
#51800
REGRESSION: pe-parse:x64-windows failed with BUILD_FAILED.
#51801
REGRESSION: rpclib:x64-windows failed with BUILD_FAILED.
#51802
rpclib/rpclib#325
rpclib/rpclib#326
REGRESSION: scylla-wrapper:x64-windows failed with BUILD_FAILED.
#51803
REGRESSION: qt5-3d:x64-windows failed with BUILD_FAILED.
Actually caused by assimp: #51810
REGRESSION: serf:x64-windows failed with BUILD_FAILED.
#51806
REGRESSION: zeroc-ice:x64-windows failed with BUILD_FAILED.
This one has hard coded separate .sln files for each paritcular Visual Studio version, and they have no v145 version available. So we have no choice but to baseline for now.
REGRESSION: qt:x64-windows cascaded, but it is required to pass.
REGRESSION: qtconnectivity:x64-windows failed with BUILD_FAILED.
REGRESSION: qtspeech:x64-windows failed with BUILD_FAILED.
REGRESSION: qtwebengine:x64-windows failed with BUILD_FAILED.
#51811
REGRESSION: simpleble:x64-windows failed with BUILD_FAILED.
#51812
simpleble/simpleble#476
REGRESSION: sleef:x64-windows failed with BUILD_FAILED.
#51813
shibatch/sleef#710
REGRESSION: systemc:x64-windows failed with BUILD_FAILED.
#51814
accellera-official/systemc#159
REGRESSION: vtk-m:x64-windows failed with BUILD_FAILED.
#51815
REGRESSION: webrtc:x64-windows failed with BUILD_FAILED.
#51852
REGRESSION: sail:x64-windows failed with POST_BUILD_CHECKS_FAILED. If expected, add sail:x64-windows=fail to scripts\ci.baseline.txt.
#51853
REGRESSION: azure-storage-cpp:x64-windows failed with BUILD_FAILED. If expected, add azure-storage-cpp:x64-windows=fail to scripts\ci.baseline.txt.
microsoft/cpprestsdk#1844
#51865
REGRESSION: vtk:x64-windows failed with BUILD_FAILED. If expected, add vtk:x64-windows=fail to scripts\ci.baseline.txt.
#51869
REGRESSION: tcl:x64-windows failed with POST_BUILD_CHECKS_FAILED. If expected, add tcl:x64-windows=fail to scripts\ci.baseline.txt.
#51870
REGRESSION: rego-cpp:arm64-windows failed with BUILD_FAILED.
#51880