Skip to content

Commit bcf0144

Browse files
Bump the vcpkg builtin-baseline. (#5010)
[SC-48154](https://app.shortcut.com/tiledb-inc/story/48154/2-26-bump-the-vcpkg-builtin-baseline) This PR bumps the vcpkg `builtin-baseline` which causes all of our dependencies to be updated to the most recent versions available on vcpkg. Some of our custom ports are no longer needed and were removed as well. To view the full list of updated ports, you can clone vcpkg and run `git diff 72010900b7cee36cea77aebb97695095c9358eaf 101cc9a69a1061969caf4b73579a34873fdd60fe -- .\versions\baseline.json > baseline.diff`. This is an abridged summary of the updated ports that we depend on: |Port|Old version|New version| |----|-----------|-----------| |aws-sdk-cpp|1.11.215|1.11.352| |azure-core-cpp|1.10.3|1.13.0| |azure-identity-cpp|1.6.0|1.8.0| |azure-storage-blobs-cpp|12.10.0|12.11.0| |azure-storage-common-cpp|12.5.0|12.6.0| |catch2|3.4.0|3.6.0| |capnproto|1.0.1|1.0.2| |curl|8.4.0|8.8.0| |fmt|10.1.1|10.2.1| |google-cloud-cpp|2.19.0|2.25.0| |libwebp|1.3.2|1.4.0| |libxml2|2.11.6|2.11.7| |openssl|3.1.4|3.3.1| |pcre2|10.42|10.43| |spdlog|1.12.0|1.14.1| |zlib|1.3|1.3.1| |zstd|1.5.5|1.5.6| The bump to the baseline might cause configure errors due to the vcpkg repository being out of date In this case, try one of the following things: * If you are using a cloned vcpkg repository and specified to the Core either a custom toolchain file, or the `VCPKG_ROOT` environment variable, update the vcpkg repository to the latest available commit, and try configuring again. * If you rely on the Core's build system to automatically download vcpkg (the default case), try deleting `build/_deps` and configure again. If it doesn't work, try performing a clean build. Let me know if any additional testing is required. --- TYPE: BUILD DESC: Update vcpkg version baseline to microsoft/vcpkg@101cc9a.
1 parent 2edb451 commit bcf0144

37 files changed

+1724
-2532
lines changed

cmake/Options/TileDBToolchain.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ if (NOT DEFINED CMAKE_TOOLCHAIN_FILE)
3636
# Inspired from https://github.com/Azure/azure-sdk-for-cpp/blob/azure-core_1.10.3/cmake-modules/AzureVcpkg.cmake
3737
message("TILEDB_DISABLE_AUTO_VCPKG is not defined. Fetch a local copy of vcpkg.")
3838
# To help with resolving conflicts, when you update the commit, also update its date.
39-
set(VCPKG_COMMIT_STRING 72010900b7cee36cea77aebb97695095c9358eaf) # 2023-12-05
39+
set(VCPKG_COMMIT_STRING 7aeffc91033ad35cc4e2c152f213a866ec6c11ac) # 2024-07-13
4040
message("Vcpkg commit string used: ${VCPKG_COMMIT_STRING}")
4141
include(FetchContent)
4242
FetchContent_Declare(

ports/README.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,13 @@ $ git commit
2626

2727
After copying the port, add an entry to the table below. You should also contribute your changes to vcpkg and/or the upstream package repository.
2828

29+
For ease of review when patching existing ports, you are recommended to make one commit that copies the upstream port unchanged, and another commit that makes the changes you need.
30+
2931
## List of port overlays
3032

31-
| Port | Reason |
32-
|----------------------------|---------------------------------------------------------------------------------------------------------|
33-
| `libmagic` | Updating to the upstream port deferred due to failures. |
34-
| `pcre2` | To be removed alongside libmagic. |
35-
| `azure-storage-common-cpp` | Patching to disable default features on libxml2 (https://github.com/Azure/azure-sdk-for-cpp/pull/5221). |
36-
| `libfaketime` | Port does not yet exist upstream |
37-
| `vcpkg-cmake-config` | Patching to fix build issues with CMake 3.29.1. (https://github.com/microsoft/vcpkg/pull/38017) |
38-
| `google-cloud-cpp` | Patching to remove dependency on GMock. (https://github.com/microsoft/vcpkg/pull/39802) |
33+
| Port | Reason |
34+
|---------------|----------------------------------------------------------------------------------------------------------------------------|
35+
| `aws-c-io` | Patching to fix MinGW build failures. (https://github.com/awslabs/aws-c-io/pull/664) |
36+
| `aws-sdk-cpp` | Patching to fix MinGW build failures, and to avoid building test-only SDKs (https://github.com/aws/aws-sdk-cpp/pull/3061). |
37+
| `libmagic` | Updating to the upstream port deferred due to failures. |
38+
| `libfaketime` | Port does not yet exist upstream |
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
diff --git a/source/windows/secure_channel_tls_handler.c b/source/windows/secure_channel_tls_handler.c
2+
index b62b1a0..48f4556 100644
3+
--- a/source/windows/secure_channel_tls_handler.c
4+
+++ b/source/windows/secure_channel_tls_handler.c
5+
@@ -53,7 +53,7 @@ struct secure_channel_ctx {
6+
struct aws_tls_ctx ctx;
7+
struct aws_string *alpn_list;
8+
SCHANNEL_CRED credentials;
9+
- PCERT_CONTEXT pcerts;
10+
+ PCCERT_CONTEXT pcerts;
11+
HCERTSTORE cert_store;
12+
HCERTSTORE custom_trust_store;
13+
HCRYPTPROV crypto_provider;
14+
@@ -188,7 +188,7 @@ static int s_manually_verify_peer_cert(struct aws_channel_handler *handler) {
15+
int result = AWS_OP_ERR;
16+
CERT_CONTEXT *peer_certificate = NULL;
17+
HCERTCHAINENGINE engine = NULL;
18+
- CERT_CHAIN_CONTEXT *cert_chain_ctx = NULL;
19+
+ PCCERT_CHAIN_CONTEXT cert_chain_ctx = NULL;
20+
21+
/* get the peer's certificate so we can validate it.*/
22+
SECURITY_STATUS status =

ports/aws-c-io/portfile.cmake

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
vcpkg_from_github(
2+
OUT_SOURCE_PATH SOURCE_PATH
3+
REPO awslabs/aws-c-io
4+
REF "v${VERSION}"
5+
SHA512 b5dc81635ce775c3783df2d4f6ccf0890b1e1669bddb1c10f6d200203684e84504ca87099cb88874010df28f98f658da5a4eacb9e4df0408d40d845f3d394f48
6+
HEAD_REF master
7+
PATCHES
8+
"fix-pointer-mismatch.patch"
9+
)
10+
11+
vcpkg_cmake_configure(
12+
SOURCE_PATH "${SOURCE_PATH}"
13+
OPTIONS
14+
"-DCMAKE_MODULE_PATH=${CURRENT_INSTALLED_DIR}/share/aws-c-common" # use extra cmake files
15+
-DBUILD_TESTING=FALSE
16+
)
17+
18+
vcpkg_cmake_install()
19+
20+
string(REPLACE "dynamic" "shared" subdir "${VCPKG_LIBRARY_LINKAGE}")
21+
vcpkg_cmake_config_fixup(CONFIG_PATH "lib/${PORT}/cmake/${subdir}" DO_NOT_DELETE_PARENT_CONFIG_PATH)
22+
vcpkg_cmake_config_fixup(CONFIG_PATH "lib/${PORT}/cmake")
23+
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/${PORT}/${PORT}-config.cmake" [[/${type}/]] "/")
24+
25+
file(REMOVE_RECURSE
26+
"${CURRENT_PACKAGES_DIR}/debug/include"
27+
"${CURRENT_PACKAGES_DIR}/debug/lib/${PORT}"
28+
"${CURRENT_PACKAGES_DIR}/debug/share"
29+
"${CURRENT_PACKAGES_DIR}/lib/${PORT}"
30+
)
31+
32+
vcpkg_copy_pdbs()
33+
34+
vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE")

ports/aws-c-io/vcpkg.json

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
{
2+
"name": "aws-c-io",
3+
"version": "0.14.9",
4+
"description": "Handles all IO and TLS work for application protocols.",
5+
"homepage": "https://github.com/awslabs/aws-c-io",
6+
"license": "Apache-2.0",
7+
"supports": "!(windows & arm) & !uwp",
8+
"dependencies": [
9+
"aws-c-cal",
10+
"aws-c-common",
11+
{
12+
"name": "s2n",
13+
"platform": "!uwp & !windows"
14+
},
15+
{
16+
"name": "vcpkg-cmake",
17+
"host": true
18+
},
19+
{
20+
"name": "vcpkg-cmake-config",
21+
"host": true
22+
}
23+
]
24+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
diff --git a/toolchains/core-config.cmake b/toolchains/core-config.cmake
2+
index d90bfaf747..ab14402577 100644
3+
--- a/toolchains/core-config.cmake
4+
+++ b/toolchains/core-config.cmake
5+
@@ -15,5 +15,9 @@ if (AWSSDK_CRYPTO_IN_SOURCE_BUILD)
6+
find_dependency(crypto)
7+
find_dependency(ssl)
8+
endif()
9+
+find_dependency(ZLIB)
10+
+if("@ENABLE_CURL_CLIENT@")
11+
+ find_dependency(CURL)
12+
+endif()
13+
set(BUILD_SHARED_LIBS ${BUILD_SHARED_LIBS_PREV})
14+
include("${CMAKE_CURRENT_LIST_DIR}/@[email protected]")
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
diff --git a/cmake/AWSSDKConfig.cmake b/cmake/AWSSDKConfig.cmake
2+
--- a/cmake/AWSSDKConfig.cmake (revision 2f90f9fd6c56460bd382243aa215fcddcb5883c8)
3+
+++ b/cmake/AWSSDKConfig.cmake (date 1636913220527)
4+
@@ -54,18 +54,14 @@
5+
string(REPLACE ";" "${AWS_MODULE_DIR};" SYSTEM_MODULE_PATH "${CMAKE_SYSTEM_PREFIX_PATH}${AWS_MODULE_DIR}")
6+
list(APPEND CMAKE_MODULE_PATH ${AWS_MODULE_PATH} ${SYSTEM_MODULE_PATH})
7+
8+
-# On Windows, dlls are treated as runtime target and installed in bindir
9+
if (WIN32 AND AWSSDK_INSTALL_AS_SHARED_LIBS)
10+
- set(AWSSDK_INSTALL_LIBDIR "${AWSSDK_INSTALL_BINDIR}")
11+
# If installed CMake scripts are associated with dll library, define USE_IMPORT_EXPORT for customers
12+
add_definitions(-DUSE_IMPORT_EXPORT)
13+
endif()
14+
15+
16+
# Compute the default installation root relative to this file.
17+
-# from prefix/lib/cmake/AWSSDK/xx.cmake to prefix
18+
get_filename_component(AWSSDK_DEFAULT_ROOT_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
19+
-get_filename_component(AWSSDK_DEFAULT_ROOT_DIR "${AWSSDK_DEFAULT_ROOT_DIR}" PATH)
20+
get_filename_component(AWSSDK_DEFAULT_ROOT_DIR "${AWSSDK_DEFAULT_ROOT_DIR}" PATH)
21+
get_filename_component(AWSSDK_DEFAULT_ROOT_DIR "${AWSSDK_DEFAULT_ROOT_DIR}" PATH)
22+
get_filename_component(AWS_NATIVE_SDK_ROOT "${CMAKE_CURRENT_SOURCE_DIR}" ABSOLUTE)
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
diff --git a/src/aws-cpp-sdk-core/source/http/windows/WinHttpSyncHttpClient.cpp b/src/aws-cpp-sdk-core/source/http/windows/WinHttpSyncHttpClient.cpp
2+
index b8ab519..7cd91e9 100644
3+
--- a/src/aws-cpp-sdk-core/source/http/windows/WinHttpSyncHttpClient.cpp
4+
+++ b/src/aws-cpp-sdk-core/source/http/windows/WinHttpSyncHttpClient.cpp
5+
@@ -19,6 +19,9 @@
6+
7+
#include <Windows.h>
8+
#include <winhttp.h>
9+
+#ifdef __MINGW32__
10+
+#include <WinSock2.h>
11+
+#endif
12+
#include <mstcpip.h> // for tcp_keepalive
13+
#include <sstream>
14+
#include <iostream>
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
diff --git a/cmake/external_dependencies.cmake b/cmake/external_dependencies.cmake
2+
index acf16c0..3a49fb4 100644
3+
--- a/cmake/external_dependencies.cmake
4+
+++ b/cmake/external_dependencies.cmake
5+
@@ -80,23 +80,12 @@ if(NOT NO_HTTP_CLIENT AND NOT USE_CRT_HTTP_CLIENT)
6+
set(BUILD_CURL 1)
7+
message(STATUS " Building Curl as part of AWS SDK")
8+
else()
9+
- include(FindCURL)
10+
+ find_package(CURL REQUIRED)
11+
if(NOT CURL_FOUND)
12+
message(FATAL_ERROR "Could not find curl")
13+
+ else()
14+
+ set(CURL_LIBRARIES CURL::libcurl)
15+
endif()
16+
-
17+
- # When built from source using cmake, curl does not include
18+
- # CURL_INCLUDE_DIRS or CURL_INCLUDE_DIRS so we need to use
19+
- # find_package to fix it
20+
- if ("${CURL_INCLUDE_DIRS}" STREQUAL "" AND "${CURL_LIBRARIES}" STREQUAL "")
21+
- message(STATUS "Could not find curl include or library path, falling back to find with config.")
22+
- find_package(CURL)
23+
- set(CURL_LIBRARIES CURL::libcurl)
24+
- else ()
25+
- message(STATUS " Curl include directory: ${CURL_INCLUDE_DIRS}")
26+
- List(APPEND EXTERNAL_DEPS_INCLUDE_DIRS ${CURL_INCLUDE_DIRS})
27+
- set(CLIENT_LIBS ${CURL_LIBRARIES})
28+
- endif ()
29+
set(CLIENT_LIBS_ABSTRACT_NAME curl)
30+
message(STATUS " Curl target link: ${CURL_LIBRARIES}")
31+
endif()
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
[CmdletBinding()]
2+
param(
3+
[Parameter(Mandatory=$true)][string]$SourcesRef,
4+
[Parameter(Mandatory=$false)][string]$PortDirectory = $PSScriptRoot,
5+
[Parameter(Mandatory=$false)][string]$vcpkg = "$PSScriptRoot/../../vcpkg"
6+
)
7+
8+
$ErrorActionPreference = "Stop"
9+
10+
$ManifestIn = "$PortDirectory/vcpkg.in.json"
11+
$ManifestOut = "$PortDirectory/vcpkg.json"
12+
13+
$ExtractedSources = "${env:TEMP}/aws-sdk-cpp-generateFeatures-$SourcesRef"
14+
if (-not (Test-Path $ExtractedSources)) {
15+
if (Test-Path "$ExtractedSources.tmp") {
16+
Remove-Item -Force "$ExtractedSources.tmp"
17+
}
18+
git clone --depth=1 "https://github.com/aws/aws-sdk-cpp" "$ExtractedSources.tmp" | Out-Host
19+
git -c "$ExtractedSources.tmp" checkout $SourcesRef
20+
Move-Item "$ExtractedSources.tmp" "$ExtractedSources"
21+
}
22+
Write-Host "Using sources directory: $ExtractedSources"
23+
24+
25+
$subfolders = Get-ChildItem -Path "$ExtractedSources\generated\src\aws-cpp-sdk-*", "$ExtractedSources\src\aws-cpp-sdk*" | Sort-Object -Property Name
26+
27+
$manifest = Get-Content $ManifestIn | ConvertFrom-Json
28+
$manifest | Add-Member `
29+
-NotePropertyName '$note' `
30+
-NotePropertyValue 'Automatically generated by generateFeatures.ps1'
31+
$manifest | Add-Member -NotePropertyName 'features' -NotePropertyValue @{}
32+
33+
function GetDescription($dir, $modulename)
34+
{
35+
if (Test-Path "$dir\CMakeLists.txt")
36+
{
37+
$descs = @(Select-String -Path "$dir\CMakeLists.txt" -Pattern "`"C\+\+ SDK for the AWS [^`"]*`"")
38+
if ($descs.count -eq 1) {
39+
$desc = $descs[0].Matches.Value -replace "`"",""
40+
"$desc"
41+
}
42+
else { "C++ SDK for the AWS $modulename service" }
43+
}
44+
else { "C++ SDK for the AWS $modulename service" }
45+
}
46+
47+
$featureDependencies = @{}
48+
Select-String -Path "$ExtractedSources\cmake\sdksCommon.cmake" -Pattern "list\(APPEND SDK_DEPENDENCY_LIST `"([\w-]+):([\w-,]+)`"\)" -AllMatches `
49+
| ForEach-Object { $_.Matches } `
50+
| ForEach-Object { $featureDependencies[$_.Groups[1].Value] = @($_.Groups[2].Value -split "," `
51+
| Where-Object { $_ -ne "core" }) }
52+
53+
foreach ($subfolder in $subfolders)
54+
{
55+
$modulename = $subfolder.name -replace "^aws-cpp-sdk-",""
56+
if ($modulename -match "-tests`$") { continue }
57+
if ($modulename -match "-sample`$") { continue }
58+
if ($modulename -eq "core") { continue }
59+
60+
$lowermodulename = $modulename.ToLower()
61+
62+
$featureObj = @{ description = (GetDescription $subfolder $modulename) }
63+
64+
if ($featureDependencies.ContainsKey($lowermodulename)) {
65+
$featureObj.dependencies = ,@{ name = "aws-sdk-cpp"; "default-features" = $false; "features" = $featureDependencies[$lowermodulename] }
66+
}
67+
68+
$manifest.features.Add("$lowermodulename", $featureObj)
69+
}
70+
71+
[IO.File]::WriteAllText($ManifestOut, (ConvertTo-Json -Depth 10 -InputObject $manifest))
72+
73+
& $vcpkg format-manifest --feature-flags=-manifests $ManifestOut

0 commit comments

Comments
 (0)