Skip to content

Patch Tuesday for May 2026#51854

Open
BillyONeal wants to merge 30 commits into
microsoft:masterfrom
BillyONeal:patch-tuesday-may-2026
Open

Patch Tuesday for May 2026#51854
BillyONeal wants to merge 30 commits into
microsoft:masterfrom
BillyONeal:patch-tuesday-may-2026

Conversation

@BillyONeal
Copy link
Copy Markdown
Member

@BillyONeal BillyONeal commented May 18, 2026

  • Update to Visual Studio 2026 18.6.0 Build Tools / MSVC 19.51.
    • Skipped opencv2 entirely. opencv2 depends on std::tr1 parts 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.
  • Add tools that vcpkg usually needs to the build machine to avoid needing to fetch/unpack these every build:
    • CMake
    • Ninja
    • 7Zip
    • Git
  • Azure CLI 2.86.0
  • Python 3.14.5
  • Fixed the "provision-entire-image.ps1" workflow for creating local VMs claiming that it was downloading from the internet even when it was using a side by side local installer.
  • Deduplicated some of the installation logic from the deploy .ps1s.
  • Ensure that all the .ps1s have LF line endings.

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

@BillyONeal BillyONeal added the depends:different-pr This PR or Issue depends on a PR which has been filed label May 18, 2026
@BillyONeal BillyONeal requested a review from Copilot May 18, 2026 22:24
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment thread scripts/azure-pipelines/windows/utility-prefix.ps1 Outdated
Comment thread ports/qtconnectivity/portfile.cmake Outdated
Comment thread scripts/azure-pipelines/windows/deploy-visual-studio.ps1
@BillyONeal BillyONeal marked this pull request as draft May 19, 2026 02:37
@BillyONeal BillyONeal force-pushed the patch-tuesday-may-2026 branch from dc8d395 to e4dce71 Compare May 20, 2026 22:26
@BillyONeal BillyONeal marked this pull request as ready for review May 20, 2026 22:27
@BillyONeal BillyONeal requested a review from Copilot May 20, 2026 22:29
@BillyONeal BillyONeal removed the depends:different-pr This PR or Issue depends on a PR which has been filed label May 20, 2026
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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"
    },

Comment thread scripts/azure-pipelines/windows/utility-prefix.ps1
Comment thread scripts/vcpkg-tools.json
Comment thread scripts/vcpkg-tools.json
Comment thread scripts/azure-pipelines/windows/deploy-visual-studio.ps1
Comment thread scripts/ci.feature.baseline.txt Outdated
@BillyONeal
Copy link
Copy Markdown
Member Author

BillyONeal commented May 21, 2026

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 llfio.

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 sleef being fixed. Looking at a recent CI run: https://dev.azure.com/vcpkg/public/_build/results?buildId=131921&view=logs&j=878666d5-db33-5b27-9e7d-b0c7ee352005&t=69176ca8-c93b-5311-0f74-6cb12a2b3f92

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-windows
REGRESSION: 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 --overlay-ports scripts/test_ports in my local run. dcmtk[tools]:arm64-windows explodes with a bunch of "not implemented" errors.

@Neumann-A
Copy link
Copy Markdown
Contributor

These are fallout from the HDF5 ICE. I think I have no choice but to baseline :(

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.

@BillyONeal
Copy link
Copy Markdown
Member Author

hmm no?If the compiler ICEs kick the damn compiler team to provide a work around?

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)

Dropping HDF5 into the baseline will result in a lot of cascades.

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)

BillyONeal added 15 commits May 21, 2026 17:33
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 :( )
BillyONeal added 13 commits May 21, 2026 17:33
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.
@BillyONeal
Copy link
Copy Markdown
Member Author

Dropping HDF5 into the baseline will result in a lot of cascades.

It does but I'm not sure what else to do.

I guess we could try pragma disabling the optimizer around that function

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.

3 participants