Update macOS, switch to new M4 hardware (#53316)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
Billy O'Neal 2026-08-14 14:38:49 -07:00 committed by GitHub
parent 764ad0a297
commit 173a20135d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
46 changed files with 669 additions and 371 deletions

View File

@ -93,6 +93,7 @@ else()
--with-dblib=lmdb
--with-gss_impl=mit
--disable-macos-framework
ac_cv_prog_cc_c23=no
)
vcpkg_make_install()
endif()

View File

@ -1,7 +1,7 @@
{
"name": "cyrus-sasl",
"version": "2.1.28",
"port-version": 4,
"port-version": 5,
"description": "Cyrus SASL is an implementation of SASL that makes it easy for application developers to integrate authentication mechanisms into their application in a generic way.",
"homepage": "https://github.com/cyrusimap/cyrus-sasl",
"license": null,

View File

@ -1,67 +1,67 @@
set(DISTFILE_SHA512_HASH 4e92195fa058c707146f2690f3a38b46c33add948c852f67659ca005a6aa980bbf97be96528b0f8391690facb880ac2126cd60198c6c175e7f3f06cca7e29f9d)
vcpkg_download_distfile(
DISTFILE
FILENAME "glpk.tar.gz"
URLS "https://ftpmirror.gnu.org/gnu/glpk/glpk-${VERSION}.tar.gz" "https://ftp.gnu.org/gnu/glpk/glpk-${VERSION}.tar.gz"
SHA512 ${DISTFILE_SHA512_HASH}
)
vcpkg_extract_source_archive(
SOURCE_PATH
ARCHIVE "${DISTFILE}"
PATCHES
configure.ac.patch
)
vcpkg_list(SET CONFIGURE_OPTIONS)
if("dl" IN_LIST FEATURES)
vcpkg_list(APPEND CONFIGURE_OPTIONS --enable-dl=dlfcn "LIBS=-ldl \$LIBS")
else()
vcpkg_list(APPEND CONFIGURE_OPTIONS --disable-dl)
endif()
if("gmp" IN_LIST FEATURES)
vcpkg_list(APPEND CONFIGURE_OPTIONS --with-gmp)
string(APPEND requires " gmp")
else()
vcpkg_list(APPEND CONFIGURE_OPTIONS --without-gmp)
endif()
if("mysql" IN_LIST FEATURES)
vcpkg_list(APPEND CONFIGURE_OPTIONS
--enable-mysql
"CPPFLAGS=-I${CURRENT_INSTALLED_DIR}/include/mysql \$CPPFLAGS"
)
string(APPEND libs " -lmysql")
else()
vcpkg_list(APPEND CONFIGURE_OPTIONS --disable-mysql)
endif()
if("odbc" IN_LIST FEATURES)
vcpkg_list(APPEND CONFIGURE_OPTIONS --enable-odbc)
else()
vcpkg_list(APPEND CONFIGURE_OPTIONS --disable-odbc)
endif()
vcpkg_configure_make(
SOURCE_PATH "${SOURCE_PATH}"
AUTOCONFIG
NO_ADDITIONAL_PATHS
DETERMINE_BUILD_TRIPLET
OPTIONS
${CONFIGURE_OPTIONS}
)
vcpkg_install_make()
set(libname glpk)
configure_file("${CMAKE_CURRENT_LIST_DIR}/glpk.pc.in" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/glpk.pc" @ONLY)
if(NOT VCPKG_BUILD_TYPE)
configure_file("${CMAKE_CURRENT_LIST_DIR}/glpk.pc.in" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/glpk.pc" @ONLY)
endif()
vcpkg_fixup_pkgconfig()
vcpkg_copy_pdbs()
vcpkg_copy_tools(TOOL_NAMES glpsol AUTO_CLEAN)
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING")
set(DISTFILE_SHA512_HASH 4e92195fa058c707146f2690f3a38b46c33add948c852f67659ca005a6aa980bbf97be96528b0f8391690facb880ac2126cd60198c6c175e7f3f06cca7e29f9d)
vcpkg_download_distfile(
DISTFILE
FILENAME "glpk.tar.gz"
URLS "https://ftpmirror.gnu.org/gnu/glpk/glpk-${VERSION}.tar.gz" "https://ftp.gnu.org/gnu/glpk/glpk-${VERSION}.tar.gz"
SHA512 ${DISTFILE_SHA512_HASH}
)
vcpkg_extract_source_archive(
SOURCE_PATH
ARCHIVE "${DISTFILE}"
PATCHES
configure.ac.patch
)
vcpkg_list(SET CONFIGURE_OPTIONS ac_cv_prog_cc_c23=no)
if("dl" IN_LIST FEATURES)
vcpkg_list(APPEND CONFIGURE_OPTIONS --enable-dl=dlfcn "LIBS=-ldl \$LIBS")
else()
vcpkg_list(APPEND CONFIGURE_OPTIONS --disable-dl)
endif()
if("gmp" IN_LIST FEATURES)
vcpkg_list(APPEND CONFIGURE_OPTIONS --with-gmp)
string(APPEND requires " gmp")
else()
vcpkg_list(APPEND CONFIGURE_OPTIONS --without-gmp)
endif()
if("mysql" IN_LIST FEATURES)
vcpkg_list(APPEND CONFIGURE_OPTIONS
--enable-mysql
"CPPFLAGS=-I${CURRENT_INSTALLED_DIR}/include/mysql \$CPPFLAGS"
)
string(APPEND libs " -lmysql")
else()
vcpkg_list(APPEND CONFIGURE_OPTIONS --disable-mysql)
endif()
if("odbc" IN_LIST FEATURES)
vcpkg_list(APPEND CONFIGURE_OPTIONS --enable-odbc)
else()
vcpkg_list(APPEND CONFIGURE_OPTIONS --disable-odbc)
endif()
vcpkg_configure_make(
SOURCE_PATH "${SOURCE_PATH}"
AUTOCONFIG
NO_ADDITIONAL_PATHS
DETERMINE_BUILD_TRIPLET
OPTIONS
${CONFIGURE_OPTIONS}
)
vcpkg_install_make()
set(libname glpk)
configure_file("${CMAKE_CURRENT_LIST_DIR}/glpk.pc.in" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/glpk.pc" @ONLY)
if(NOT VCPKG_BUILD_TYPE)
configure_file("${CMAKE_CURRENT_LIST_DIR}/glpk.pc.in" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/glpk.pc" @ONLY)
endif()
vcpkg_fixup_pkgconfig()
vcpkg_copy_pdbs()
vcpkg_copy_tools(TOOL_NAMES glpsol AUTO_CLEAN)
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING")

View File

@ -2,7 +2,7 @@
"$schema": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg.schema.json",
"name": "glpk",
"version": "5.0",
"port-version": 3,
"port-version": 4,
"maintainers": "Fabio A. Correa Duran",
"description": [
"The GNU Linear Programming Kit (GLPK) solves large-scale linear programming (LP), mixed integer programming (MIP), and related problems.",

View File

@ -1,11 +1,12 @@
diff --git a/highs.pc.in b/highs.pc.in
index 2ac74f4..fbd153d 100644
--- a/highs.pc.in
+++ b/highs.pc.in
@@ -7,5 +7,5 @@ URL: https://github.com/ERGO-Code/HiGHS
Version: @HIGHS_VERSION_MAJOR@.@HIGHS_VERSION_MINOR@.@HIGHS_VERSION_PATCH@
Libs: -L${libdir} -lhighs
-#TODO Libs.private (when HiGHS lib is build as static lib)
Cflags: -I${includedir}
Requires:
+Requires.private: zlib
diff --git a/highs.pc.in b/highs.pc.in
index 4c00116..792ec17 100644
--- a/highs.pc.in
+++ b/highs.pc.in
@@ -7,6 +7,6 @@ Description: Linear Optimization Software
URL: https://github.com/ERGO-Code/HiGHS
Version: @HIGHS_VERSION_MAJOR@.@HIGHS_VERSION_MINOR@.@HIGHS_VERSION_PATCH@
Libs: -L${libdir} -lhighs
-#TODO Libs.private (when HiGHS lib is build as static lib)
Cflags: -I${includedir}
Requires:
+Requires.private: zlib

View File

@ -5,6 +5,7 @@ vcpkg_from_github(
SHA512 0ea407784bc6c8e31c72fbcdcab201e8a7cc7debbca57504e74177658208151e90637e5fb1e0cdf1b1ae6b677e7865e77771ec025b17f8223f74d00fc6420546
HEAD_REF master
PATCHES
respect-user-selected-compiler.patch
fix-pkgconfig-zlib.patch
)

View File

@ -0,0 +1,20 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 79ef1f0..6790d5c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -6,15 +6,6 @@
# policies up to CMake 3.27
cmake_minimum_required(VERSION 3.15...3.27)
-# set preference for clang compiler and intel compiler over gcc and other compilers
-include(Platform/${CMAKE_SYSTEM_NAME}-Determine-C OPTIONAL)
-include(Platform/${CMAKE_SYSTEM_NAME}-C OPTIONAL)
-set(CMAKE_C_COMPILER_NAMES clang gcc icx cc ${CMAKE_C_COMPILER_NAMES})
-
-include(Platform/${CMAKE_SYSTEM_NAME}-Determine-CXX OPTIONAL)
-include(Platform/${CMAKE_SYSTEM_NAME}-CXX OPTIONAL)
-set(CMAKE_CXX_COMPILER_NAMES clang++ g++ icpx c++ ${CMAKE_CXX_COMPILER_NAMES})
-
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
option(HIGHS_VCPKG "Vcpkg integration: " OFF)

View File

@ -1,6 +1,7 @@
{
"name": "highs",
"version": "1.15.1",
"port-version": 1,
"description": "High performance library to solve linear, mixed-integer, and convex quadratic optimization problems.",
"homepage": "https://highs.dev",
"license": "MIT AND BSD-3-Clause AND Zlib",

View File

@ -0,0 +1,12 @@
diff --git a/src/configure.ac b/src/configure.ac
index 4325fae..2865a26 100644
--- a/src/configure.ac
+++ b/src/configure.ac
@@ -1,4 +1,6 @@
-K5_AC_INIT([aclocal.m4])
+AC_INIT(Kerberos 5, K5_VERSION, K5_BUGADDR, krb5)
+AC_CONFIG_SRCDIR([aclocal.m4])
+build_dynobj=no
# If $runstatedir isn't set by autoconf (<2.70), set it manually.
if test x"$runstatedir" = x; then

View File

@ -7,6 +7,7 @@ vcpkg_from_github(
PATCHES
static-deps.diff
define-des-zeroblock.diff
autoconf-2.72.patch # https://github.com/krb5/krb5/commit/b7290e0cab5b7e39cd4aa7c098beb18a886d4a1d
)
if (VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW)

View File

@ -2,7 +2,7 @@
"$schema": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg.schema.json",
"name": "krb5",
"version": "1.22.2",
"port-version": 1,
"port-version": 2,
"description": [
"Kerberos is a network authentication protocol.",
"It is designed to provide strong authentication for client/server applications by using secret-key cryptography.",

View File

@ -4,13 +4,25 @@ vcpkg_download_distfile(ARCHIVE
SHA512 907d98ea2bd2e2a43604243fc7fd6c252aa02c3fdd79e21f2a784adf821cb18107e6e23a25ad0c64329fbe84e859da5c807272759a8bcd85a37b929c80af4a13
)
vcpkg_extract_source_archive(SOURCE_PATH ARCHIVE "${ARCHIVE}")
vcpkg_configure_make(
SOURCE_PATH "${SOURCE_PATH}"
vcpkg_extract_source_archive(
SOURCE_PATH
ARCHIVE "${ARCHIVE}"
)
vcpkg_install_make()
vcpkg_make_configure(
SOURCE_PATH "${SOURCE_PATH}"
AUTORECONF
OPTIONS
ac_cv_prog_cc_c23=no
)
set(install_options)
if(VCPKG_CROSSCOMPILING)
# Avoid using the host strip tool on cross-compiled target binaries.
list(APPEND install_options "INSTALL_PROGRAM='$(INSTALL)'")
endif()
vcpkg_make_install(OPTIONS ${install_options})
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share")

View File

@ -1,8 +1,14 @@
{
"name": "libtar",
"version": "1.2.20",
"port-version": 1,
"port-version": 2,
"description": "libtar - C library for manipulating tar files",
"homepage": "https://repo.or.cz/libtar.git",
"supports": "!windows"
"supports": "!windows",
"dependencies": [
{
"name": "vcpkg-make",
"host": true
}
]
}

View File

@ -1,117 +1,117 @@
vcpkg_from_gitlab(
GITLAB_URL https://git.lysator.liu.se/
OUT_SOURCE_PATH SOURCE_PATH
REPO nettle/nettle
REF nettle_3.10_release_20240616
SHA512 8767e4f0c34ce76ead5d66f06f97e6b184d439fa94f848ee440196fafde3da2ea7cfc54f9bd8f9ab6a99929b0d14b3d5a28857e05d954551e94b619598c17659
HEAD_REF master
PATCHES
subdirs.patch
fix-libdir.patch
compile.patch
host-tools.patch
ccas.patch
msvc-support.patch
)
vcpkg_cmake_get_vars(cmake_vars_file)
include("${cmake_vars_file}")
# Maintainer switch: Temporarily set this to 1 to re-generate the lists
# of exported symbols. This is needed when the version is bumped.
set(GENERATE_SYMBOLS 0)
if(GENERATE_SYMBOLS)
if(VCPKG_DETECTED_CMAKE_C_COMPILER_ID STREQUAL "MSVC")
vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
else()
set(GENERATE_SYMBOLS 0)
endif()
endif()
vcpkg_list(SET OPTIONS)
if("tools" IN_LIST FEATURES)
vcpkg_list(APPEND OPTIONS --enable-tools)
endif()
# As in gmp
set(disable_assembly OFF)
set(ccas "")
set(asmflags "")
if(VCPKG_DETECTED_CMAKE_C_COMPILER_ID STREQUAL "MSVC")
vcpkg_list(APPEND OPTIONS ac_cv_func_memset=yes)
if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86")
string(APPEND asmflags " --target=i686-pc-windows-msvc -m32")
elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
string(APPEND asmflags " --target=x86_64-pc-windows-msvc")
elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64")
string(APPEND asmflags " --target=arm64-pc-windows-msvc")
else()
set(disable_assembly ON)
endif()
if(NOT disable_assembly)
vcpkg_find_acquire_program(CLANG)
set(ccas "${CLANG}")
endif()
else()
set(ccas "${VCPKG_DETECTED_CMAKE_C_COMPILER}")
endif()
if(disable_assembly)
vcpkg_list(APPEND OPTIONS "--enable-assembler=no")
elseif(ccas)
cmake_path(GET ccas PARENT_PATH ccas_dir)
vcpkg_add_to_path("${ccas_dir}")
cmake_path(GET ccas FILENAME ccas_command)
vcpkg_list(APPEND OPTIONS "CCAS=${ccas_command}" "ASM_FLAGS=${asmflags}")
endif()
if(VCPKG_CROSSCOMPILING)
set(ENV{HOST_TOOLS_PREFIX} "${CURRENT_HOST_INSTALLED_DIR}/manual-tools/${PORT}")
endif()
if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW)
file(GLOB def_files "${CMAKE_CURRENT_LIST_DIR}/*.def")
file(COPY ${def_files} DESTINATION "${SOURCE_PATH}")
vcpkg_list(APPEND OPTIONS "MSVC_TARGET=${VCPKG_TARGET_ARCHITECTURE}")
else()
vcpkg_list(APPEND OPTIONS "MSVC_TARGET=no")
endif()
vcpkg_configure_make(
SOURCE_PATH "${SOURCE_PATH}"
AUTOCONFIG
OPTIONS
${OPTIONS}
--disable-documentation
--disable-openssl
"gmp_cv_prog_exeext_for_build=${VCPKG_HOST_EXECUTABLE_SUFFIX}"
OPTIONS_DEBUG
--disable-tools
)
vcpkg_install_make()
vcpkg_fixup_pkgconfig()
if(NOT VCPKG_CROSSCOMPILING)
set(tool_names desdata eccdata) # aes gcm sha twofish?
list(TRANSFORM tool_names PREPEND "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/")
list(TRANSFORM tool_names APPEND "${VCPKG_HOST_EXECUTABLE_SUFFIX}")
file(COPY ${tool_names} DESTINATION "${CURRENT_PACKAGES_DIR}/manual-tools/${PORT}")
vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/manual-tools/${PORT}")
endif()
if("tools" IN_LIST FEATURES)
vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin")
endif()
file(REMOVE_RECURSE
"${CURRENT_PACKAGES_DIR}/debug/share"
"${CURRENT_PACKAGES_DIR}/debug/include"
)
vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYINGv3")
if(GENERATE_SYMBOLS)
include("${CMAKE_CURRENT_LIST_DIR}/lib-to-def.cmake")
lib_to_def(BASENAME nettle REGEX "_*nettle_")
lib_to_def(BASENAME hogweed REGEX "_*nettle_")
endif()
vcpkg_from_gitlab(
GITLAB_URL https://git.lysator.liu.se/
OUT_SOURCE_PATH SOURCE_PATH
REPO nettle/nettle
REF nettle_3.10_release_20240616
SHA512 8767e4f0c34ce76ead5d66f06f97e6b184d439fa94f848ee440196fafde3da2ea7cfc54f9bd8f9ab6a99929b0d14b3d5a28857e05d954551e94b619598c17659
HEAD_REF master
PATCHES
subdirs.patch
fix-libdir.patch
compile.patch
host-tools.patch
ccas.patch
msvc-support.patch
)
vcpkg_cmake_get_vars(cmake_vars_file)
include("${cmake_vars_file}")
# Maintainer switch: Temporarily set this to 1 to re-generate the lists
# of exported symbols. This is needed when the version is bumped.
set(GENERATE_SYMBOLS 0)
if(GENERATE_SYMBOLS)
if(VCPKG_DETECTED_CMAKE_C_COMPILER_ID STREQUAL "MSVC")
vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
else()
set(GENERATE_SYMBOLS 0)
endif()
endif()
vcpkg_list(SET OPTIONS ac_cv_prog_cc_c23=no)
if("tools" IN_LIST FEATURES)
vcpkg_list(APPEND OPTIONS --enable-tools)
endif()
# As in gmp
set(disable_assembly OFF)
set(ccas "")
set(asmflags "")
if(VCPKG_DETECTED_CMAKE_C_COMPILER_ID STREQUAL "MSVC")
vcpkg_list(APPEND OPTIONS ac_cv_func_memset=yes)
if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86")
string(APPEND asmflags " --target=i686-pc-windows-msvc -m32")
elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
string(APPEND asmflags " --target=x86_64-pc-windows-msvc")
elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64")
string(APPEND asmflags " --target=arm64-pc-windows-msvc")
else()
set(disable_assembly ON)
endif()
if(NOT disable_assembly)
vcpkg_find_acquire_program(CLANG)
set(ccas "${CLANG}")
endif()
else()
set(ccas "${VCPKG_DETECTED_CMAKE_C_COMPILER}")
endif()
if(disable_assembly)
vcpkg_list(APPEND OPTIONS "--enable-assembler=no")
elseif(ccas)
cmake_path(GET ccas PARENT_PATH ccas_dir)
vcpkg_add_to_path("${ccas_dir}")
cmake_path(GET ccas FILENAME ccas_command)
vcpkg_list(APPEND OPTIONS "CCAS=${ccas_command}" "ASM_FLAGS=${asmflags}")
endif()
if(VCPKG_CROSSCOMPILING)
set(ENV{HOST_TOOLS_PREFIX} "${CURRENT_HOST_INSTALLED_DIR}/manual-tools/${PORT}")
endif()
if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW)
file(GLOB def_files "${CMAKE_CURRENT_LIST_DIR}/*.def")
file(COPY ${def_files} DESTINATION "${SOURCE_PATH}")
vcpkg_list(APPEND OPTIONS "MSVC_TARGET=${VCPKG_TARGET_ARCHITECTURE}")
else()
vcpkg_list(APPEND OPTIONS "MSVC_TARGET=no")
endif()
vcpkg_configure_make(
SOURCE_PATH "${SOURCE_PATH}"
AUTOCONFIG
OPTIONS
${OPTIONS}
--disable-documentation
--disable-openssl
"gmp_cv_prog_exeext_for_build=${VCPKG_HOST_EXECUTABLE_SUFFIX}"
OPTIONS_DEBUG
--disable-tools
)
vcpkg_install_make()
vcpkg_fixup_pkgconfig()
if(NOT VCPKG_CROSSCOMPILING)
set(tool_names desdata eccdata) # aes gcm sha twofish?
list(TRANSFORM tool_names PREPEND "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/")
list(TRANSFORM tool_names APPEND "${VCPKG_HOST_EXECUTABLE_SUFFIX}")
file(COPY ${tool_names} DESTINATION "${CURRENT_PACKAGES_DIR}/manual-tools/${PORT}")
vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/manual-tools/${PORT}")
endif()
if("tools" IN_LIST FEATURES)
vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin")
endif()
file(REMOVE_RECURSE
"${CURRENT_PACKAGES_DIR}/debug/share"
"${CURRENT_PACKAGES_DIR}/debug/include"
)
vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYINGv3")
if(GENERATE_SYMBOLS)
include("${CMAKE_CURRENT_LIST_DIR}/lib-to-def.cmake")
lib_to_def(BASENAME nettle REGEX "_*nettle_")
lib_to_def(BASENAME hogweed REGEX "_*nettle_")
endif()

View File

@ -1,7 +1,7 @@
{
"name": "nettle",
"version": "3.10",
"port-version": 1,
"port-version": 2,
"description": "Nettle is a low-level cryptographic library that is designed to fit easily in more or less any context: In crypto toolkits for object-oriented languages (C++, Python, Pike, ...), in applications like LSH or GNUPG, or even in kernel space.",
"homepage": "https://git.lysator.liu.se/nettle/nettle",
"license": null,

View File

@ -0,0 +1,14 @@
diff --git a/src/3rdparty/mapbox-gl-native/deps/boost/1.65.1/include/boost/mpl/aux_/integral_wrapper.hpp b/src/3rdparty/mapbox-gl-native/deps/boost/1.65.1/include/boost/mpl/aux_/integral_wrapper.hpp
index 6bc05f7..f4e9acb 100644
--- a/src/3rdparty/mapbox-gl-native/deps/boost/1.65.1/include/boost/mpl/aux_/integral_wrapper.hpp
+++ b/src/3rdparty/mapbox-gl-native/deps/boost/1.65.1/include/boost/mpl/aux_/integral_wrapper.hpp
@@ -56,7 +56,8 @@ struct AUX_WRAPPER_NAME
// have to #ifdef here: some compilers don't like the 'N + 1' form (MSVC),
// while some other don't like 'value + 1' (Borland), and some don't like
// either
-#if BOOST_WORKAROUND(__EDG_VERSION__, <= 243)
+#if BOOST_WORKAROUND(__EDG_VERSION__, <= 243) \
+ || __cplusplus >= 201103L
private:
BOOST_STATIC_CONSTANT(AUX_WRAPPER_VALUE_TYPE, next_value = BOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (N + 1)));
BOOST_STATIC_CONSTANT(AUX_WRAPPER_VALUE_TYPE, prior_value = BOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (N - 1)));

View File

@ -1,3 +1,10 @@
message(STATUS "${PORT} has a spurious failure in which it is unable to create a parent directory! Just retry.")
include(${CURRENT_INSTALLED_DIR}/share/qt5/qt_port_functions.cmake)
qt_submodule_installation(PATCHES missing-include.patch disable-enum-warning.patch add-stdint.diff add-float-cast.diff)
qt_submodule_installation(
PATCHES
missing-include.patch
disable-enum-warning.patch
add-stdint.diff
add-float-cast.diff
fix-boost-mpl-constant-expression.patch
)

View File

@ -1,6 +1,7 @@
{
"name": "qt5-location",
"version": "5.15.19",
"port-version": 1,
"description": "The Qt Location API helps you create viable mapping solutions using the data available from some of the popular location services.",
"license": null,
"dependencies": [

View File

@ -0,0 +1,73 @@
diff --git a/src/external/s2/base/macros.h b/src/external/s2/base/macros.h
index eaf28fe..d556332 100644
--- a/src/external/s2/base/macros.h
+++ b/src/external/s2/base/macros.h
@@ -133,62 +133,13 @@ char (&ArraySizeHelper(const T (&array)[N]))[N];
#define AS_STRING(x) AS_STRING_INTERNAL(x)
#define AS_STRING_INTERNAL(x) #x
-
-// One of the type traits, is_pod, makes it possible to query whether
-// a type is a POD type. It is impossible for type_traits.h to get
-// this right without compiler support, so it fails conservatively. It
-// knows that fundamental types and pointers are PODs, but it can't
-// tell whether user classes are PODs. The DECLARE_POD macro is used
-// to inform the type traits library that a user class is a POD.
-//
-// Implementation note: the typedef at the end is just to make it legal
-// to put a semicolon after DECLARE_POD(foo).
-//
-// The only reason this matters is that a few parts of the google3
-// code base either require their template arguments to be PODs
-// (e.g. compact_vector) or are able to use a more efficient code path
-// when their template arguments are PODs (e.g. sparse_hash_map). You
-// should use DECLARE_POD if you have written a class that you intend
-// to use with one of those components, and if you know that your
-// class satisfies all of the conditions to be a POD type.
-//
-// So what's a POD? The C++ standard (clause 9 paragraph 4) gives a
-// full definition, but a good rule of thumb is that a struct is a POD
-// ("plain old data") if it doesn't use any of the features that make
-// C++ different from C. A POD struct can't have constructors,
-// destructors, assignment operators, base classes, private or
-// protected members, or virtual functions, and all of its member
-// variables must themselves be PODs.
-
-#define DECLARE_POD(TypeName) \
-namespace std { \
-template<> struct is_pod<TypeName> : true_type { }; \
-} \
-typedef int Dummy_Type_For_DECLARE_POD \
-
-// We once needed a different technique to assert that a nested class
-// is a POD. This is no longer necessary, and DECLARE_NESTED_POD is
-// just a synonym for DECLARE_POD. We continue to provide
-// DECLARE_NESTED_POD only so we don't have to change client
-// code. Regardless of whether you use DECLARE_POD or
-// DECLARE_NESTED_POD: use it after the outer class. Using it within a
-// class definition will give a compiler error.
+// These macros are a mess of undefined behavior that specialize std::is_pod to
+// pretend that non-POD types are POD, which is both invalid and would do very
+// broken things. Fortunately s2 internally does not actually rely on this and
+// we can make them no-ops.
+#define DECLARE_POD(TypeName)
#define DECLARE_NESTED_POD(TypeName) DECLARE_POD(TypeName)
-
-// Declare that TemplateName<T> is a POD whenever T is
-#define PROPAGATE_POD_FROM_TEMPLATE_ARGUMENT(TemplateName) \
-namespace std { \
-template <typename T> struct is_pod<TemplateName<T> > : std::is_trivial<T> { }; \
-} \
-typedef int Dummy_Type_For_PROPAGATE_POD_FROM_TEMPLATE_ARGUMENT
-
-// Macro that does nothing if TypeName is a POD, and gives a compiler
-// error if TypeName is a non-POD. You should put a descriptive
-// comment right next to the macro call so that people can tell what
-// the compiler error is about.
-//
-// Implementation note: this works by taking the size of a type that's
-// complete when TypeName is a POD and incomplete otherwise.
+#define PROPAGATE_POD_FROM_TEMPLATE_ARGUMENT(TemplateName)
template <bool IsPod> struct ERROR_TYPE_MUST_BE_POD;
template <> struct ERROR_TYPE_MUST_BE_POD<true> { };

View File

@ -8,6 +8,7 @@ vcpkg_from_github(
UWP_index_set.patch
fix-zlib.patch
cstdlib.diff
fix-s2-is-pod.patch # Based on https://github.com/realm/realm-core/commit/d8f21f9b98cae76e8dc235558c2f71ea27997f10
)
vcpkg_list(SET REALMCORE_CMAKE_OPTIONS)

View File

@ -1,6 +1,7 @@
{
"name": "realm-core",
"version": "14.14.0",
"port-version": 1,
"description": "Realm is a mobile database that runs directly inside phones, tablets or wearables.",
"homepage": "https://github.com/realm/realm-core",
"license": null,

View File

@ -0,0 +1,13 @@
diff --git a/src/common/mathmisc.h b/src/common/mathmisc.h
index d8bcc14..eece584 100644
--- a/src/common/mathmisc.h
+++ b/src/common/mathmisc.h
@@ -24,6 +24,8 @@
#ifndef RUBBERBAND_MATHMISC_H
#define RUBBERBAND_MATHMISC_H
+#include <stddef.h>
+
#include "sysutils.h"
#ifndef M_PI

View File

@ -4,6 +4,8 @@ vcpkg_from_github(
REF "v${VERSION}"
SHA512 f581e900a71f78fde3361d2bed2fe165952c2ca087168c5f4e4994586bd832267eea58e0662a74b6a7430bc361fe80b5307b2ee6bf631a3561a8cba86e1cd3f2
HEAD_REF default
PATCHES
fix-size-t.patch # https://github.com/breakfastquay/rubberband/pull/131
)

View File

@ -1,7 +1,7 @@
{
"name": "rubberband",
"version": "4.0.0",
"port-version": 1,
"port-version": 2,
"description": "A high quality software library for audio time-stretching and pitch-shifting.",
"homepage": "https://www.breakfastquay.com/rubberband/",
"license": "GPL-2.0-or-later",

View File

@ -1,19 +1,46 @@
# `vcpkg-eg-mac` VMs
This is the checklist for what the vcpkg team does when updating the macOS machines in the pool.
The hosts do not accept incoming SSH connections. Perform all host-side work in a terminal opened
through the KVM. Use the KVM software's "paste from clipboard" function to transfer commands and
short-lived credentials to the host. SSH commands in this document connect from the host to its
guest VM, not from a developer workstation to the host.
Before publishing the VM update changes, update the Azure Agent URI in
`scripts/azure-pipelines/osx/guest-prepare.sh` to the current version. You can find this by going to the
agent pool, selecting "New agent", picking macOS, and copying the link. For example:
https://download.agent.dev.azure.com/agent/5.277.0/vsts-agent-osx-arm64-5.277.0.tar.gz
Install and enable Homebrew on each host before cloning vcpkg:
```sh
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
eval "$(/opt/homebrew/bin/brew shellenv)"
```
Publish the changes to a fork and branch that the hosts can access. Keep a clone of
`microsoft/vcpkg` on each host as `origin`, add the operator's fork as a separate remote, and check
out the working revision to provide the scripts used by these instructions:
```sh
git clone https://github.com/microsoft/vcpkg ~/vcpkg
git -C ~/vcpkg remote add <WORKING-REMOTE> https://github.com/<GITHUB-USER>/vcpkg
git -C ~/vcpkg fetch <WORKING-REMOTE> <WORKING-BRANCH>
git -C ~/vcpkg checkout --detach FETCH_HEAD
```
For example, BillyONeal's fork should be added as remote `BillyONeal` with URL
`https://github.com/BillyONeal/vcpkg`. Do not use `origin` for the working branch unless the changes
have already been merged into `microsoft/vcpkg`. If the working branch is updated, repeat the
`fetch` and detached `checkout` commands above on each host.
## Creating new base images
### Prerequisites
- [ ] [macosvm](https://github.com/s-u/macosvm) allow-listed
by macOS for arm64. Note that the directory 'Parallels' is still used when using `macosvm`
just so that scripts know where to find the VM and friends.
- [ ] An Xcode .xip - you can get this from Apple's developer website,
although you'll need to sign in first: <https://developer.apple.com/downloads>
If you are doing this from a local macos box, you can skip to the "update the macos host" step.
- [ ] An Xcode Command Line Tools installer
- [ ] PowerShell 7.x, Azure CLI, and `az login` with your Microsoft corp credentials
- [ ] The matching macOS IPSW, Xcode 26.6 `.xip`, and Xcode 26.6 Command Line Tools `.dmg`
uploaded to the `assets` container in the `vcpkgimageminting` storage account.
- [ ] PowerShell 7.x, Azure CLI, and `az login` with your Microsoft corp credentials on a workstation
that can mint SAS tokens for the storage account.
### Instructions (ARM64)
@ -21,27 +48,51 @@ This is the checklist for what the vcpkg team does when updating the macOS machi
and delete one of the agents that are idle.
- [ ] Go to that machine in the KVM. (Passwords are stored as secrets in the CPP_GITHUB\vcpkg\vcpkgmm-passwords key vault)
- [ ] Update the macos host
- [ ] (Once only) install `macosvm` to `~` (this tarball is also backed up in our `vcpkg-image-minting` storage account). For example from a dev workstation:
- [ ] Prepare the host. This enables Homebrew, installs AzCopy if needed, and installs `macosvm` to `~`:
```sh
~/vcpkg/scripts/azure-pipelines/osx/host-prepare.sh
```
ssh vcpkg@HOSTMACHINE
curl -L -o macosvm-0.2-2-arm64-darwin21.tar.gz https://github.com/s-u/macosvm/releases/download/0.2-2/macosvm-0.2-2-arm64-darwin21.tar.gz
tar xvf macosvm-0.2-2-arm64-darwin21.tar.gz
rm macosvm-0.2-2-arm64-darwin21.tar.gz
exit
- [ ] On a workstation, generate download commands with short-lived, blob-scoped credentials for
the matching IPSW, Xcode archive, and Command Line Tools installer in the `assets` container:
```powershell
function Get-AssetDownloadCommand {
Param([Parameter(Mandatory=$true)][ValidateNotNullOrEmpty()][string]$FileName)
$accountName = 'vcpkgimageminting'
$containerName = 'assets'
$uNow = (Get-Date).ToUniversalTime()
$start = $uNow.ToString('s') + 'Z'
$expiry = $uNow.AddHours(1).ToString('s') + 'Z'
$sas = az storage blob generate-sas --as-user --auth-mode login --account-name $accountName --container-name $containerName --name $FileName --permissions r --start $start --expiry $expiry --https-only --output tsv
return "azcopy copy `"https://vcpkgimageminting.blob.core.windows.net/assets/$($FileName)?$($sas)`" `"$FileName`""
}
Get-AssetDownloadCommand -FileName UniversalMac_26.6.1_25G76_Restore.ipsw
Get-AssetDownloadCommand -FileName Xcode_26.6_Apple_silicon.xip
Get-AssetDownloadCommand -FileName Command_Line_Tools_26.6_Apple_silicon.dmg
```
- [ ] Download the matching `.ipsw` for the macOS copy to install. See https://mrmacintosh.com/apple-silicon-m1-full-macos-restore-ipsw-firmware-files-database/ ; links there to find the .ipsw. Example:
https://updates.cdn-apple.com/2026WinterFCS/fullrestores/122-28781/DCB2FF13-06CB-44C2-BCA2-DFCAF3521D46/UniversalMac_26.4.1_25E253_Restore.ipsw
- [ ] Determine the VM name using the form "vcpkg-osx-<date>-arm64", for example "vcpkg-osx-2026-01-12-arm64".
- [ ] Open a terminal and run the following commands to create the VM with vcpkg-osx-2026-01-12-arm64 and UniversalMac_26.4.1_25E253_Restore.ipsw replaced as appropriate. This must be run in the KVM as it uses a GUI:
This creates a user-delegation SAS for each blob. Each credential is read-only, HTTPS-only, and
valid for one hour. A SAS is not single-use and can be reused until it expires, so do not retain
the generated commands after the downloads finish.
If a matching IPSW has not yet been added to the container, use the
[M4 Apple Silicon IPSW firmware database](https://mrmacintosh.com/apple-silicon-m1-full-macos-restore-ipsw-firmware-files-database/)
to locate it and upload it first.
- [ ] In the host's KVM terminal, change to `~`, then use the KVM software's "paste from
clipboard" function to paste and run each generated command:
```sh
cd ~
# Paste and run the three azcopy commands generated on the workstation.
```
mkdir -p ~/Parallels/vcpkg-osx-2026-01-12-arm64
cd ~/Parallels/vcpkg-osx-2026-01-12-arm64
~/macosvm --disk disk.img,size=500g --aux aux.img -c 8 -r 12g --restore ~/UniversalMac_26.4.1_25E253_Restore.ipsw ./vm.json
- [ ] Determine the VM directory name using the form "vcpkg-osx-YYYY-MM-DD-arm64", for example "vcpkg-osx-2026-08-07-arm64".
- [ ] Open a terminal and run the following commands to create the VM with vcpkg-osx-YYYY-MM-DD-arm64 and UniversalMac_26.6.1_25G76_Restore.ipsw replaced as appropriate. This must be run in the KVM as it uses a GUI:
```
mkdir -p ~/vcpkg-osx-YYYY-MM-DD-arm64
cd ~/vcpkg-osx-YYYY-MM-DD-arm64
~/macosvm --disk disk.img,size=500g,sync=none,cache=cached --aux aux.img -c 10 -r 18g --restore ~/UniversalMac_26.6.1_25G76_Restore.ipsw ./vm.json
~/macosvm -g ./vm.json
```
- [ ] Follow prompts as you would on real hardware.
* Set up as new.
* Account name: vcpkg
* Account name: builduser
* A very similar password
* Do not allow computer account password to be reset with your Apple Account.
* Apple ID: 'Set Up Later' / Skip
@ -52,38 +103,32 @@ This is the checklist for what the vcpkg team does when updating the macOS machi
- [ ] Set the desktop wallpaper to a fixed color from Settings -> Wallpaper . (This makes the KVM a lot easier to use :) )
- [ ] Disable automatic updates in the VM: Settings -> General -> Automatic Updates -> Disable them all
- [ ] Enable remote login in the VM: Settings -> General -> Sharing -> Remote Login
- [ ] Set the vcpkg user to be able to use sudo without a password, and install Xcode. For example from a dev workstation:
```
scp path/to/Xcode.xip vcpkg@HOSTMACHINE:/Users/vcpkg/Xcode.xip
ssh vcpkg@HOSTMACHINE
rm ~/.ssh/known_hosts
scp Xcode.xip vcpkg@vcpkgs-Virtual-Machine.local:/Users/vcpkg/Xcode.xip
ssh vcpkg@vcpkgs-Virtual-Machine.local
printf 'vcpkg\tALL=(ALL)\tNOPASSWD:\tALL\n' | sudo tee -a '/etc/sudoers.d/vcpkg'
sudo chmod 0440 '/etc/sudoers.d/vcpkg'
sudo mdutil -ad
xip --expand Xcode.xip
sudo mv Xcode.app /Applications/Xcode.app
rm Xcode.xip
exit
- [ ] Install Xcode from the host's vcpkg clone. This prompts for the guest password to install an
SSH key and enable passwordless sudo, then transfers and expands Xcode:
```sh
cd ~/vcpkg/scripts/azure-pipelines/osx
./host-install-xcode.sh
```
- [ ] Open Xcode from Applications in the guest GUI. Uncheck the "code completion model" and accept the EULA.
- [ ] Update the Azure Agent URI in setup-box.sh to the current version. You can find this by going to the agent pool, selecting "New agent", picking macOS, and copying the link. For example https://download.agent.dev.azure.com/agent/4.266.2/vsts-agent-osx-arm64-4.266.2.tar.gz
- [ ] Copy setup-box.sh and the xcode installer renamed to 'clt.dmg' to the host. For example from a dev workstation:
```
scp ./setup-guest.sh vcpkg@HOSTMACHINE:/Users/vcpkg
scp ./setup-box.sh vcpkg@HOSTMACHINE:/Users/vcpkg
scp path/to/console/tools.dmg vcpkg@HOSTMACHINE:/Users/vcpkg/clt.dmg
ssh vcpkg@HOSTMACHINE
chmod +x setup-guest.sh
./setup-guest.sh
rm setup-guest.sh
rm setup-box.sh
rm clt.dmg
exit
- [ ] After completing the Xcode GUI step, run the guest preparation script. It installs the Command
Line Tools, build dependencies, and the Azure Pipelines agent:
```sh
cd ~/vcpkg/scripts/azure-pipelines/osx
./host-prepare-guest.sh
```
- [ ] Shut down the VM cleanly.
- [ ] Package the VM into a tarball and upload it to blob storage. From a dev workstation, get the azcopy command to do the upload with:
- [ ] Delete the temporary installation assets from the host:
```sh
rm ~/UniversalMac_26.6.1_25G76_Restore.ipsw \
~/Xcode_26.6_Apple_silicon.xip \
~/Command_Line_Tools_26.6_Apple_silicon.dmg
```
- [ ] In the host's KVM terminal, package the VM into an archive:
```sh
cd ~
aa archive -d vcpkg-osx-YYYY-MM-DD-arm64 -o vcpkg-osx-YYYY-MM-DD-arm64.aar -enable-holes
```
- [ ] In PowerShell on a workstation, generate the AzCopy upload command:
```powershell
function Get-AzCopyWriteCommand {
Param([Parameter(Mandatory=$true)][ValidateNotNullOrEmpty()][string]$FileName)
@ -96,18 +141,10 @@ This is the checklist for what the vcpkg team does when updating the macOS machi
return "azcopy copy --check-length=false `"$($FileName)`" `"https://vcpkgimageminting.blob.core.windows.net/pvms/$($FileName)?$($sas)`""
}
Get-AzCopyWriteCommand -FileName vcpkg-osx-2026-01-12-arm64.aar
Get-AzCopyWriteCommand -FileName vcpkg-osx-YYYY-MM-DD-arm64.aar
```
Then:
```
ssh vcpkg@HOSTMACHINE
cd ~/Parallels
aa archive -d vcpkg-osx-<date>-arm64 -o vcpkg-osx-<date>-arm64.aar -enable-holes
brew install azcopy
# (The azcopy command line generated above)
exit
```
- [ ] Go to https://dev.azure.com/vcpkg/public/_settings/agentqueues and create a new self hosted Agent pool named `PrOsx-YYYY-MM-DD-arm64` based on the current date. Grant microsoft.vcpkg.ci and microsoft.vcpkg.pr access.
- [ ] Paste and run the generated AzCopy command in the host's KVM terminal.
- [ ] Go to https://dev.azure.com/vcpkg/public/_settings/agentqueues and create a new self hosted Agent pool named `PrOsx-YYYY-MM-DD-arm64`. Grant microsoft.vcpkg.ci and microsoft.vcpkg.pr access.
- [ ] Follow the "Deploying images" steps below for each machine in the fleet.
## Deploying images
@ -119,15 +156,15 @@ Run these steps on each machine to add to the fleet. Skip steps that were done i
- [ ] If this machine was used before, delete it from the pool of which it is a member from https://dev.azure.com/vcpkg/public/_settings/agentqueues
- [ ] Log in to the machine using the KVM.
- [ ] Check for software updates in macOS system settings
- [ ] (Once only) install `macosvm` to `~` (this tarball is also backed up in our `vcpkg-image-minting` storage account). From a developer machine:
- [ ] Ensure the host's vcpkg clone is at the published working revision, then prepare the host. This
enables Homebrew, installs AzCopy if needed, and installs `macosvm` to `~`:
```sh
ssh vcpkg@HOSTMACHINE
curl -L -o macosvm-0.2-2-arm64-darwin21.tar.gz https://github.com/s-u/macosvm/releases/download/0.2-2/macosvm-0.2-2-arm64-darwin21.tar.gz
tar xvf macosvm-0.2-2-arm64-darwin21.tar.gz
rm macosvm-0.2-2-arm64-darwin21.tar.gz
exit
git -C ~/vcpkg fetch <WORKING-REMOTE> <WORKING-BRANCH>
git -C ~/vcpkg checkout --detach FETCH_HEAD
~/vcpkg/scripts/azure-pipelines/osx/host-prepare.sh
```
- [ ] Skip if this is the image building machine. Mint a SAS token URI to the box to use from the Azure portal if you don't already have one, and download the VM. (Recommend running this via SSH from domain joined machine due to containing SAS tokens). From a developer machine, get the azcopy command with:
- [ ] Skip if this is the image building machine. In PowerShell on a workstation, mint a SAS token
and generate the AzCopy command with:
```powershell
function Get-AzCopyReadCommand {
Param([Parameter(Mandatory=$true)][ValidateNotNullOrEmpty()][string]$FileName)
@ -140,45 +177,43 @@ Run these steps on each machine to add to the fleet. Skip steps that were done i
return "azcopy copy `"https://vcpkgimageminting.blob.core.windows.net/pvms/$($FileName)?$($sas)`" `"$($FileName)`""
}
Get-AzCopyReadCommand -FileName vcpkg-osx-2026-01-12-arm64.aar
Get-AzCopyReadCommand -FileName vcpkg-osx-YYYY-MM-DD-arm64.aar
```
Then run:
In the host's KVM terminal, use the KVM software's "paste from clipboard" function to paste and
run the generated command, then run:
```sh
ssh vcpkg@HOSTMACHINE
brew install azcopy
mkdir -p ~/Parallels
cd ~/Parallels
# (The azcopy command line generated above)
aa extract -d vcpkg-osx-<DATE>-arm64 -i ./vcpkg-osx-<DATE>-arm64.aar -enable-holes
exit
aa extract -d vcpkg-osx-YYYY-MM-DD-arm64 -i ./vcpkg-osx-YYYY-MM-DD-arm64.aar -enable-holes
```
- [ ] Open a separate terminal window on the host and start the VM by running:
```sh
cd ~/Parallels/vcpkg-osx-<DATE>-arm64
cd ~/vcpkg-osx-YYYY-MM-DD-arm64
~/macosvm ./vm.json
```
- [ ] Generate an access token to add the agent to the pool:
- [ ] In PowerShell on a workstation, generate a short-lived access token to add the agent to the
pool:
```pwsh
az account get-access-token --resource 499b84ac-1321-427f-aa17-267ca6975798 --query accessToken --output tsv
```
- [ ] Copy the guest deploy script to the host, and run it with the access token/OAuth token from the `az account get-access-token` command above as the first parameter. From a developer machine pwsh:
```pwsh
scp register-guest.sh vcpkg@HOSTMACHINE:/Users/vcpkg/register-guest.sh
ssh vcpkg@HOSTMACHINE
rm .ssh/known_hosts
chmod +x register-guest.sh
./register-guest.sh TOKEN-GOES-HERE AGENT-NUMBER-GOES-HERE
rm register-guest.sh
- [ ] In the host's KVM terminal, use the KVM software's "paste from clipboard" function to paste
the short-lived access token into the guest deploy command from the vcpkg clone. The script
accepts a host name in the form `vcpkg-m4-NNN` case-insensitively, registers the Azure DevOps
agent as `VCPKG-M4-NNN`, and stops with an error if the host name or agent pool cannot be
determined unambiguously:
```sh
~/vcpkg/scripts/azure-pipelines/osx/host-register-guest.sh TOKEN-GOES-HERE
```
- [ ] That will cleanly shut down the VM. In the KVM's terminal, relaunch the VM in ephemeral mode with:
- [ ] After successful registration, the script will cleanly shut down the VM. If registration fails,
the VM remains running for diagnosis. In the KVM's terminal, relaunch the successfully registered
VM in ephemeral mode:
```sh
~/macosvm --ephemeral ./vm.json
```
- [ ] Open a terminal window on the host and run the agent
```sh
ssh -i ~/Parallels/*/id_guest vcpkg@vcpkgs-Virtual-Machine.local
ssh -i ~/vcpkg-osx-*-arm64/id_guest builduser@buildusers-Virtual-Machine.local
~/myagent/run.sh
```
- [ ] Check that the machine shows up in the pool, and lock the vcpkg user on the host.
- [ ] Check that the machine shows up in the pool, and lock the current user account on the host.
- [ ] Lock the screen on the host.
- [ ] Update the "vcpkg Macs" spreadsheet line for the machine with the new pool.

View File

@ -19,7 +19,7 @@ jobs:
- job: ${{ parameters.jobName }}
condition: and(succeeded(), contains('^${{ replace(parameters.jobName, '_', '-') }}$', '${{ parameters.tripletPattern }}'))
pool:
name: PrOsx-2026-01-12-arm64
name: PrOsx-2026-08-07-arm64
workspace:
clean: resources
timeoutInMinutes: 2880 # 2 days
@ -64,7 +64,7 @@ jobs:
- task: UseNode@1
displayName: 'Ensure Node.js is available'
inputs:
version: '22.x'
version: '24.x'
- bash: |
cd scripts/azure-pipelines/owners-db && npm ci || true
# Construct the blob base url using the secret SAS token set earlier

View File

@ -0,0 +1,21 @@
#!/bin/sh
set -e
hdiutil attach clt.dmg -mountpoint /Volumes/setup-installer
sudo installer -pkg "/Volumes/setup-installer/Command Line Tools.pkg" -target /
hdiutil detach /Volumes/setup-installer
rm clt.dmg
sudo xcode-select -s /Applications/Xcode.app
curl -fsSL -o "$HOME/Downloads/install-homebrew.sh" https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh
NONINTERACTIVE=1 /bin/bash "$HOME/Downloads/install-homebrew.sh"
rm "$HOME/Downloads/install-homebrew.sh"
(echo; echo 'eval "$(/opt/homebrew/bin/brew shellenv)"') >> "$HOME/.zprofile"
eval "$(/opt/homebrew/bin/brew shellenv)"
brew install autoconf-archive autoconf automake azcopy azure-cli bison cmake gettext gfortran gnu-sed gperf libtool meson nasm ninja pkg-config powershell
mkdir "$HOME/Data"
# NOTE: update this URI when publishing a VM update
curl -fsSL -o "$HOME/Downloads/azure-agent.tar.gz" https://download.agent.dev.azure.com/agent/5.277.0/vsts-agent-osx-arm64-5.277.0.tar.gz
mkdir "$HOME/myagent"
tar xf "$HOME/Downloads/azure-agent.tar.gz" -C "$HOME/myagent"
rm "$HOME/Downloads/azure-agent.tar.gz"
rm guest-prepare.sh

View File

@ -0,0 +1,19 @@
#!/bin/sh
set -e
VM_DIRECTORY=`ls "$HOME" | grep vcpkg-osx-`
SSH_KEY="$HOME/$VM_DIRECTORY/id_guest"
SSH_PUBLIC_KEY="$SSH_KEY.pub"
mkdir -p "$HOME/.ssh"
touch "$HOME/.ssh/known_hosts"
ssh-keygen -R buildusers-Virtual-Machine.local -f "$HOME/.ssh/known_hosts"
ssh-keygen -P '' -f "$SSH_KEY"
echo "Enter the guest builduser password to install the SSH key"
ssh-copy-id -i "$SSH_PUBLIC_KEY" builduser@buildusers-Virtual-Machine.local
echo "Enter the guest builduser password to enable passwordless sudo"
ssh -t -i "$SSH_KEY" builduser@buildusers-Virtual-Machine.local \
"printf 'builduser\tALL=(ALL)\tNOPASSWD:\tALL\n' | sudo tee /etc/sudoers.d/builduser >/dev/null && sudo chmod 0440 /etc/sudoers.d/builduser"
scp -i "$SSH_KEY" "$HOME/Xcode_26.6_Apple_silicon.xip" builduser@buildusers-Virtual-Machine.local:Xcode.xip
ssh -i "$SSH_KEY" builduser@buildusers-Virtual-Machine.local \
"sudo mdutil -ad && xip --expand Xcode.xip && sudo mv Xcode.app /Applications/Xcode.app && rm Xcode.xip"

View File

@ -0,0 +1,10 @@
#!/bin/sh
set -e
export VM_DIRECTORY=`ls "$HOME" | grep vcpkg-osx-`
export SSH_KEY="$HOME/$VM_DIRECTORY/id_guest"
ssh -i "$SSH_KEY" builduser@buildusers-Virtual-Machine.local echo hello from \`hostname\`
scp -i "$SSH_KEY" "$HOME/Command_Line_Tools_26.6_Apple_silicon.dmg" builduser@buildusers-Virtual-Machine.local:clt.dmg
scp -i "$SSH_KEY" ./guest-prepare.sh builduser@buildusers-Virtual-Machine.local:guest-prepare.sh
ssh -i "$SSH_KEY" builduser@buildusers-Virtual-Machine.local chmod +x guest-prepare.sh
ssh -i "$SSH_KEY" builduser@buildusers-Virtual-Machine.local ./guest-prepare.sh

View File

@ -0,0 +1,19 @@
#!/bin/sh
set -e
if [ ! -x /opt/homebrew/bin/brew ]; then
echo "Homebrew must be installed on the host before running this script" >&2
exit 1
fi
eval "$(/opt/homebrew/bin/brew shellenv)"
grep -Fq '/opt/homebrew/bin/brew shellenv' "$HOME/.zprofile" 2>/dev/null || \
printf '%s\n' 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> "$HOME/.zprofile"
brew install azcopy
if [ ! -x "$HOME/macosvm" ]; then
archive="$(mktemp)"
curl -fL -o "$archive" https://github.com/s-u/macosvm/releases/download/0.2-3/macosvm-0.2-3-darwin21.tar.gz
tar -xvf "$archive" -C "$HOME"
rm "$archive"
fi

View File

@ -0,0 +1,41 @@
#!/bin/sh
set -e
if [ "$#" -ne 1 ]; then
echo "Usage: $0 <token>" >&2
exit 1
fi
HOST_NAME=$(hostname) || {
echo "Failed to determine the host name" >&2
exit 1
}
HOST_NAME=${HOST_NAME%%.*}
HOST_NAME=$(printf '%s' "$HOST_NAME" | tr '[:lower:]' '[:upper:]')
case "$HOST_NAME" in
VCPKG-M4-[0-9][0-9][0-9]) ;;
*)
echo "Host name '$HOST_NAME' does not match required format 'VCPKG-M4-NNN'" >&2
exit 1
;;
esac
export AGENT=$HOST_NAME
echo "THIS IS AGENT: $AGENT"
export POOL=`echo "$HOME"/vcpkg-osx-*-arm64/ | sed -En 's/.+\/vcpkg-osx-([0-9]{4}-[0-9]{2}-[0-9]{2})-arm64\/$/PrOsx-\1-arm64/p'`
case "$POOL" in
PrOsx-[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]-arm64) ;;
*)
echo "Failed to determine exactly one agent pool from ~/vcpkg-osx-*-arm64" >&2
exit 1
;;
esac
# on arm64, DNS works
export SSH_COOKIE=builduser@buildusers-Virtual-Machine.local
mkdir -p "$HOME/.ssh"
touch "$HOME/.ssh/known_hosts"
ssh-keygen -R buildusers-Virtual-Machine.local -f "$HOME/.ssh/known_hosts"
echo "POOL: $POOL"
echo "SSH_COOKIE: $SSH_COOKIE"
ssh -o "StrictHostKeyChecking=no" -i "$HOME"/vcpkg-osx-*-arm64/id_guest "$SSH_COOKIE" "\$HOME/myagent/config.sh --unattended --url https://dev.azure.com/vcpkg --work \$HOME/Data/work --auth pat --token $1 --pool $POOL --agent $AGENT --replace --acceptTeeEula"
ssh -o "StrictHostKeyChecking=no" -i "$HOME"/vcpkg-osx-*-arm64/id_guest "$SSH_COOKIE" "sudo shutdown -h now"

View File

@ -1,18 +0,0 @@
#!/bin/sh
if [ -z "$1" ]; then
echo "Token missing"
exit 1
fi
if [ -z "$2" ]; then
echo "Agent number missing"
exit 1
fi
export AGENT=CPPMAC-ARM64-$2
echo "THIS IS AGENT: $AGENT"
export POOL=`echo ~/Parallels/*/ | sed -nr 's/\/Users\/vcpkg\/Parallels\/vcpkg-osx-([0-9]{4}-[0-9]{2}-[0-9]{2})-arm64\/$/PrOsx-\1-arm64/p'`
# on arm64, DNS works
export SSH_COOKIE=vcpkg@vcpkgs-Virtual-Machine.local
echo "POOL: $POOL"
echo "SSH_COOKIE: $SSH_COOKIE"
ssh $SSH_COOKIE -o "StrictHostKeyChecking=no" -i ~/Parallels/*/id_guest "~/myagent/config.sh --unattended --url https://dev.azure.com/vcpkg --work ~/Data/work --auth pat --token $1 --pool $POOL --agent $AGENT --replace --acceptTeeEula"
ssh $SSH_COOKIE -o "StrictHostKeyChecking=no" -i ~/Parallels/*/id_guest "sudo shutdown -h now"

View File

@ -1,17 +0,0 @@
#!/bin/sh
hdiutil attach clt.dmg -mountpoint /Volumes/setup-installer
sudo installer -pkg "/Volumes/setup-installer/Command Line Tools.pkg" -target /
hdiutil detach /Volumes/setup-installer
rm clt.dmg
sudo xcode-select -s /Applications/Xcode.app
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
(echo; echo 'eval "$(/opt/homebrew/bin/brew shellenv)"') >> /Users/vcpkg/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"
brew install autoconf-archive autoconf automake azcopy azure-cli bison cmake gettext gfortran gnu-sed gperf gtk-doc libtool meson mono nasm ninja pkg-config powershell python-setuptools texinfo yasm
mkdir ~/Data
curl -s -o ~/Downloads/azure-agent.tar.gz https://download.agent.dev.azure.com/agent/4.266.2/vsts-agent-osx-arm64-4.266.2.tar.gz
mkdir ~/myagent
tar xf ~/Downloads/azure-agent.tar.gz -C ~/myagent
rm ~/Downloads/azure-agent.tar.gz
rm setup-box.sh

View File

@ -1,13 +0,0 @@
#!/bin/sh
export VM_DIRECTORY=`ls ~/Parallels | grep vcpkg-osx`
export SSH_KEY="$HOME/Parallels/$VM_DIRECTORY/id_guest"
export SSH_PUBLIC_KEY="$SSH_KEY.pub"
ssh-keygen -P '' -f "$SSH_KEY"
echo Type 'vcpkg' and press enter
ssh-copy-id -i "$SSH_PUBLIC_KEY" vcpkg@vcpkgs-Virtual-Machine.local
echo Keys deployed
ssh vcpkg@vcpkgs-Virtual-Machine.local -i "$SSH_KEY" echo hello from \`hostname\`
scp -i "$SSH_KEY" ./clt.dmg vcpkg@vcpkgs-Virtual-Machine.local:/Users/vcpkg/clt.dmg
scp -i "$SSH_KEY" ./setup-box.sh vcpkg@vcpkgs-Virtual-Machine.local:/Users/vcpkg/setup-box.sh
ssh vcpkg@vcpkgs-Virtual-Machine.local -i "$SSH_KEY" chmod +x /Users/vcpkg/setup-box.sh
ssh vcpkg@vcpkgs-Virtual-Machine.local -i "$SSH_KEY" /Users/vcpkg/setup-box.sh

View File

@ -53,6 +53,7 @@ backward-cpp:arm-neon-android=fail
backward-cpp:arm64-android=fail
backward-cpp:x64-android=fail
bddisasm:arm64-linux=fail
bde:arm64-osx=fail # https://github.com/bloomberg/bde-tools/issues/54
berkeleydb:arm-neon-android=fail
berkeleydb:arm64-android=fail
berkeleydb:x64-android=fail
@ -829,9 +830,6 @@ libressl:x64-windows-static-md=skip
libressl:x64-windows-static=skip
libressl:x64-windows=skip
libressl:x86-windows=skip
libtar:arm-neon-android=fail
libtar:arm64-android=fail
libtar:arm64-linux=fail
libtomcrypt:arm64-windows-static-md=fail
libtomcrypt:arm64-windows=fail
libtorch:x86-windows=fail
@ -1023,9 +1021,6 @@ qtwayland:arm64-osx=skip # Missing system libraries
qtwebengine:arm64-android=fail
qtwebengine:x64-android=fail
quickjs-ng:arm64-linux=fail
realm-core:arm-neon-android=fail # https://github.com/realm/realm-core/issues/8093
realm-core:arm64-android=fail
realm-core:x64-android=fail
rendergraph:arm64-linux=fail
restbed:arm64-linux=fail
restbed:x64-linux=fail # requires c++23

View File

@ -138,6 +138,7 @@ awlib[graphics]:arm64-linux=cascade
azure-kinect-sensor-sdk:arm64-linux=cascade
babl[introspection]:arm64-linux=cascade
bddisasm:arm64-linux=fail
bde:arm64-osx=fail # https://github.com/bloomberg/bde-tools/issues/54
bext-text:arm64-linux=pass
bgfx:arm64-linux=fail
bitserializer[rapidyaml-archive]:arm64-windows=cascade
@ -374,8 +375,6 @@ glpk[dl]:arm64-linux=cascade
glpk[dl](!windows | uwp)=cascade
glpk[mysql]:arm64-linux=cascade
glpk[mysql]:arm64-osx=cascade
glpk[mysql]:arm64-windows=cascade
glpk[mysql]:x86-windows=cascade
glpk[odbc]:arm64-linux=cascade
glpk[odbc](!windows | uwp)=cascade
glui:arm64-linux=cascade
@ -661,7 +660,6 @@ libressl:arm64-linux=skip
libsbml[expat, libxml2]=options # have to select excatly one xml lib(they are features)
libsmb2[krb5]:arm64-linux=cascade
libssh[core,openssl,mbedtls]=options # we have to select feature openssl or mbedtls
libtar:arm64-linux=fail
libtcod[sdl]:arm64-linux=cascade
libtomcrypt(arm & windows)=fail
libtorch:x86-windows=fail
@ -1259,9 +1257,6 @@ qwtw:x64-windows=cascade
qzxing:arm64-linux=cascade
raylib:arm64-linux=cascade
raylib-cpp:arm64-linux=cascade
realm-core:arm-neon-android=fail # https://github.com/realm/realm-core/issues/8093
realm-core:arm64-android=fail
realm-core:x64-android=fail
realsense2:arm64-linux=cascade
rendergraph:arm64-linux=fail
restbed:arm64-linux=fail
@ -1281,7 +1276,6 @@ rtabmap[opencv-cuda](!x64 | android | osx)=cascade
rtabmap[openmp]:arm64-osx=feature-fails # No openmp on default osx toolchain
rtaudio[pulse]:arm64-linux=cascade
rtlsdr:arm64-linux=cascade
rubberband:arm64-linux=cascade
ryml:arm64-windows=cascade
s2n=skip # builds too slow
sail[jpegxl]:arm-neon-android=cascade

View File

@ -2370,7 +2370,7 @@
},
"cyrus-sasl": {
"baseline": "2.1.28",
"port-version": 4
"port-version": 5
},
"czmq": {
"baseline": "4.2.1",
@ -3510,7 +3510,7 @@
},
"glpk": {
"baseline": "5.0",
"port-version": 3
"port-version": 4
},
"glslang": {
"baseline": "16.4.0",
@ -3850,7 +3850,7 @@
},
"highs": {
"baseline": "1.15.1",
"port-version": 0
"port-version": 1
},
"highway": {
"baseline": "1.4.0",
@ -4618,7 +4618,7 @@
},
"krb5": {
"baseline": "1.22.2",
"port-version": 1
"port-version": 2
},
"krpc": {
"baseline": "0.6.0",
@ -5782,7 +5782,7 @@
},
"libtar": {
"baseline": "1.2.20",
"port-version": 1
"port-version": 2
},
"libtasn1": {
"baseline": "4.19.0",
@ -7102,7 +7102,7 @@
},
"nettle": {
"baseline": "3.10",
"port-version": 1
"port-version": 2
},
"networkdirect-sdk": {
"baseline": "2.0.1",
@ -8322,7 +8322,7 @@
},
"qt5-location": {
"baseline": "5.15.19",
"port-version": 0
"port-version": 1
},
"qt5-macextras": {
"baseline": "5.15.19",
@ -8798,7 +8798,7 @@
},
"realm-core": {
"baseline": "14.14.0",
"port-version": 0
"port-version": 1
},
"realsense2": {
"baseline": "2.56.5",
@ -9042,7 +9042,7 @@
},
"rubberband": {
"baseline": "4.0.0",
"port-version": 1
"port-version": 2
},
"ruckig": {
"baseline": "0.17.3",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "cfd86e8f7f6c334cc47af6291cc22e234e68d36a",
"version": "2.1.28",
"port-version": 5
},
{
"git-tree": "b8f1a9c198fe99f9c37b4ca305f86dfd365e4f37",
"version": "2.1.28",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "2e4e4c4118efd08fdeafc707d9a1590539b84507",
"version": "5.0",
"port-version": 4
},
{
"git-tree": "00933f2c7f77149899b7c69c6d09410fca7f5b1d",
"version": "5.0",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "9ce6b8be37e9ea56e12b9dcbc5eb87895c0569cd",
"version": "1.15.1",
"port-version": 1
},
{
"git-tree": "0c70fd2590487bd56505ed8824ae764063330728",
"version": "1.15.1",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "d9285e6e0ec6ac29cd42d0df2f50191a05297942",
"version": "1.22.2",
"port-version": 2
},
{
"git-tree": "95f4778a75c8e514f20fcabea74e41a2e2664f1f",
"version": "1.22.2",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "6b7cb351ee5be6f5011e3bdf8898b49fe8123597",
"version": "1.2.20",
"port-version": 2
},
{
"git-tree": "52ef8acf2b8ff12c21e9a52b9e0f0d14d050f97e",
"version": "1.2.20",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "a09249e27abfa9283fe3117595f60d97950c3a09",
"version": "3.10",
"port-version": 2
},
{
"git-tree": "8e33e188623d99135e4d6db52d98840da86ffc0d",
"version": "3.10",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "f82ad6cd2215b194767cca1879dcb48df6ffc8ad",
"version": "5.15.19",
"port-version": 1
},
{
"git-tree": "42e67aecbf59c47a6fa3159b8b58ad3ea8b71deb",
"version": "5.15.19",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "5fe8525c282bc8b1ab2b1b24071131dbd3634f52",
"version": "14.14.0",
"port-version": 1
},
{
"git-tree": "0b7c8987b46212a0064ac55102fdb71ae057a597",
"version": "14.14.0",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "c3471671b12bd26c9c1ab2e555740b48e90d4645",
"version": "4.0.0",
"port-version": 2
},
{
"git-tree": "7d948232485cc496cf6c92b9f09a2274a208db03",
"version": "4.0.0",