Update macOS, switch to new M4 hardware - #53316
Update macOS, switch to new M4 hardware#53316Billy O'Neal (BillyONeal) wants to merge 16 commits into
Conversation
Fix review observations from GPT 5.6-Sol by propagating setup and registration failures, making downloads fail reliably, using portable sed syntax, and preserving diagnostic state. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Note that isal and mpir still want host yasm but they are excluded on arm64-osx, and should they ever be touched again they should be switched to the `yasm` port rather than host bits given that official yasm releases have memory corruption bugs.
Update pinned versions: - macosvm 0.2-2 -> 0.2-3 - macOS 26.4.1 (25E253) -> 26.6 (25G72) - Xcode and Command Line Tools -> 26.6 - PowerShell 7.x -> 7.6.4 - Azure Pipelines agent 4.266.2 -> 5.276.0 - Node.js 22.x -> 24.x Also remove the obsolete Parallels directory layer while preserving vcpkg-osx filesystem names and PrOsx Azure DevOps pool names. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Migrates macOS CI provisioning to M4 hosts and updates the build image/toolchain.
Changes:
- Replaces legacy provisioning scripts with host/guest automation.
- Updates macOS, Xcode, Azure agent, macosvm, and Node.js versions.
- Revises KVM-based deployment documentation and account naming.
Reviewed changes
Copilot reviewed 10 out of 10 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
setup-guest.sh |
Removes obsolete provisioning script. |
setup-box.sh |
Removes obsolete guest setup script. |
register-guest.sh |
Removes legacy registration script. |
README.md |
Documents the new M4 workflow. |
host-register-guest.sh |
Adds guest agent registration. |
host-prepare.sh |
Adds host dependency setup. |
host-prepare-guest.sh |
Adds guest preparation orchestration. |
host-install-xcode.sh |
Adds Xcode installation automation. |
guest-prepare.sh |
Installs guest tools and agent. |
azure-pipelines.yml |
Selects the new pool and Node.js 24. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
|
Hot damn a no-op run in 52s I love it |
|
Full rebuild submitted: https://dev.azure.com/vcpkg/public/_build/results?buildId=135687&view=results |
|
M4: Elapsed time to handle pkgconf:arm64-osx: 5.4 s |
Well, pkgconf is reasonable C code ;-) Waiting for llvm. |
M4: Elapsed time to handle llvm:arm64-osx: 31 min |
The macOS 26.6 / Xcode 26.6 image enables newer C and C++ diagnostics and exposes several assumptions in older upstream sources. - bde: exempt Apple Clang from the sized-deallocation feature-macro assertion because Apple Clang implements the feature without defining the macro. - glpk: keep the legacy bool definitions before C23, but avoid redeclaring the C23 bool keyword when compiling in C23 mode. - highs: remove upstream compiler-name preferences so CMake honors the compiler selected by the user or vcpkg toolchain instead of finding an installed LLVM compiler. - krb5: expand the K5_AC_INIT wrapper in configure.ac so Autoconf 2.72 sees AC_INIT directly. - libtar: convert the basename and dirname compatibility functions from K&R definitions to modern prototypes accepted by C23 compilers. - nettle: give the bundled getopt and getenv declarations complete prototypes compatible with the macOS 26.6 SDK. - qt5-location: backport the newer Boost.MPL constant-expression path for its vendored Boost 1.65.1 headers. - rubberband: include stddef.h explicitly so size_t no longer depends on a transitive include. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: d554aa3e-c0dc-4402-b1df-5533037298bd
|
I have not reviewed the most recent commit myself and will look on Monday |
Prevent Autoconf from selecting C23 for legacy cyrus-sasl and GLPK sources, avoid host stripping during libtar Android installs, and remove stale CI baseline entries. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: e0959273-8dce-4e1c-8661-edc5d6f3c350
The M1 mac minis used for the vcpkg build lab are approaching 5 years old which is when the lab folks want to replace them. They've set up M4 mac minis for us to use. The new machines are in a more restricted network configuration which prevents us from SSHing to them -- KVM software only.