From 542289e02dec80d057e30f3d7a101c374a94d804 Mon Sep 17 00:00:00 2001 From: Billy O'Neal Date: Thu, 14 May 2026 10:37:29 -0700 Subject: [PATCH] [duckdb] Avoid stdext::checked_array_iterator. (#51749) --- .../avoid-stdext-checked-array-iterator.diff | 13 +++++++++++++ ports/duckdb/library-linkage.diff | 8 ++++---- ports/duckdb/portfile.cmake | 14 ++++++++------ ports/duckdb/vcpkg.json | 1 + versions/baseline.json | 2 +- versions/d-/duckdb.json | 5 +++++ 6 files changed, 32 insertions(+), 11 deletions(-) create mode 100644 ports/duckdb/avoid-stdext-checked-array-iterator.diff diff --git a/ports/duckdb/avoid-stdext-checked-array-iterator.diff b/ports/duckdb/avoid-stdext-checked-array-iterator.diff new file mode 100644 index 0000000000..3a8ac64e04 --- /dev/null +++ b/ports/duckdb/avoid-stdext-checked-array-iterator.diff @@ -0,0 +1,13 @@ +diff --git a/third_party/fmt/include/fmt/format.h b/third_party/fmt/include/fmt/format.h +index 4c51630..bc2496c 100644 +--- a/third_party/fmt/include/fmt/format.h ++++ b/third_party/fmt/include/fmt/format.h +@@ -321,7 +321,7 @@ inline typename Container::value_type* get_data(Container& c) { + return c.data(); + } + +-#ifdef _SECURE_SCL ++#if defined(_SECURE_SCL) && defined(_MSC_VER) && _MSC_VER < 1951 + // Make a checked iterator to avoid MSVC warnings. + template using checked_ptr = stdext::checked_array_iterator; + template checked_ptr make_checked(T* p, std::size_t size) { diff --git a/ports/duckdb/library-linkage.diff b/ports/duckdb/library-linkage.diff index 9f6214c6ae..ce71ddeb4e 100644 --- a/ports/duckdb/library-linkage.diff +++ b/ports/duckdb/library-linkage.diff @@ -1,8 +1,8 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt -index 4e9d498..70414b4 100644 +index 3246265..295da5f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -410,7 +410,6 @@ option(EXTENSION_STATIC_BUILD +@@ -420,7 +420,6 @@ option(EXTENSION_STATIC_BUILD FALSE) if(WIN32 OR ZOS) @@ -10,7 +10,7 @@ index 4e9d498..70414b4 100644 add_definitions(-D_SILENCE_ALL_MS_EXT_DEPRECATION_WARNINGS=1) endif() -@@ -857,6 +856,7 @@ if (NOT EXTENSION_CONFIG_BUILD AND NOT ${EXTENSION_TESTS_ONLY} AND NOT CLANG_TID +@@ -863,6 +862,7 @@ if (NOT ${EXTENSION_CONFIG_BUILD} AND NOT ${EXTENSION_TESTS_ONLY} AND NOT CLANG_ message(STATUS "Extensions will be deployed to: ${LOCAL_EXTENSION_REPO_DIR}") endif() endif() @@ -18,7 +18,7 @@ index 4e9d498..70414b4 100644 function(build_loadable_extension_directory NAME ABI_TYPE OUTPUT_DIRECTORY EXTENSION_VERSION CAPI_VERSION PARAMETERS) set(TARGET_NAME ${NAME}_loadable_extension) -@@ -875,6 +875,8 @@ function(build_loadable_extension_directory NAME ABI_TYPE OUTPUT_DIRECTORY EXTEN +@@ -881,6 +881,8 @@ function(build_loadable_extension_directory NAME ABI_TYPE OUTPUT_DIRECTORY EXTEN if(EMSCRIPTEN) add_library(${TARGET_NAME} STATIC ${FILES}) diff --git a/ports/duckdb/portfile.cmake b/ports/duckdb/portfile.cmake index f3d1ec849f..59b2b772d6 100644 --- a/ports/duckdb/portfile.cmake +++ b/ports/duckdb/portfile.cmake @@ -1,15 +1,17 @@ vcpkg_from_github( - OUT_SOURCE_PATH SOURCE_PATH - REPO duckdb/duckdb - REF v${VERSION} - SHA512 2287ff1af67808e495ca4da527bd54e9c9f2044ed1bb4749cdaeee7993a7b0edca73cccd476a607442a4bf313b43e2358bf6ca28035e2dbe52b16847f6e5b30a - HEAD_REF main + OUT_SOURCE_PATH SOURCE_PATH + REPO duckdb/duckdb + REF v${VERSION} + SHA512 2287ff1af67808e495ca4da527bd54e9c9f2044ed1bb4749cdaeee7993a7b0edca73cccd476a607442a4bf313b43e2358bf6ca28035e2dbe52b16847f6e5b30a + HEAD_REF main PATCHES library-linkage.diff + avoid-stdext-checked-array-iterator.diff ) + # Remove vendored dependencies which are optional or not properly namespaced file(REMOVE_RECURSE - "${SOURCE_PATH}/extension/third_party/icu" + "${SOURCE_PATH}/extension/icu/third_party/icu" "${SOURCE_PATH}/third_party/catch" "${SOURCE_PATH}/third_party/imdb" "${SOURCE_PATH}/third_party/snowball" diff --git a/ports/duckdb/vcpkg.json b/ports/duckdb/vcpkg.json index dd7666f371..8efca8bf73 100644 --- a/ports/duckdb/vcpkg.json +++ b/ports/duckdb/vcpkg.json @@ -1,6 +1,7 @@ { "name": "duckdb", "version": "1.4.4", + "port-version": 1, "description": "High-performance in-process analytical database system", "homepage": "https://duckdb.org", "license": null, diff --git a/versions/baseline.json b/versions/baseline.json index bb6b27f748..4cbebe4296 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -2638,7 +2638,7 @@ }, "duckdb": { "baseline": "1.4.4", - "port-version": 0 + "port-version": 1 }, "duckx": { "baseline": "1.2.2", diff --git a/versions/d-/duckdb.json b/versions/d-/duckdb.json index 019d96a698..ce8c9d4bac 100644 --- a/versions/d-/duckdb.json +++ b/versions/d-/duckdb.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "6ba0158231318c84f32a9c56525d13d733e89161", + "version": "1.4.4", + "port-version": 1 + }, { "git-tree": "1d8bae3bb7089ffc184af199c454e7aa704e4eee", "version": "1.4.4",