diff --git a/ports/duckdb/httpfs.patch b/ports/duckdb/httpfs.patch new file mode 100644 index 00000000000000..9909e771ac17d8 --- /dev/null +++ b/ports/duckdb/httpfs.patch @@ -0,0 +1,20 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 4496860..fdda539 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1257,7 +1257,14 @@ endforeach() + # Load extensions passed through cmake config var + foreach(EXT IN LISTS BUILD_EXTENSIONS) + if(NOT "${EXT}" STREQUAL "") +- duckdb_extension_load(${EXT}) ++ if("${EXT}" STREQUAL "httpfs") ++ duckdb_extension_load(${EXT} ++ SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/extension/httpfs ++ INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/extension/httpfs/extension/httpfs/include ++ ) ++ else() ++ duckdb_extension_load(${EXT}) ++ endif() + endif() + endforeach() + diff --git a/ports/duckdb/portfile.cmake b/ports/duckdb/portfile.cmake index 5e687193e59b10..15f26fa066f23e 100644 --- a/ports/duckdb/portfile.cmake +++ b/ports/duckdb/portfile.cmake @@ -2,12 +2,13 @@ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO duckdb/duckdb REF v${VERSION} - SHA512 f5bca7a3b6f763b4b1a1f39e53c6f818925584fb44886e291ac3546fe50de545e80d16b4120f0126020e44b601a1b9193f4faad7a3dc8799cda843b1965038f2 + SHA512 7e2ec4f6d6be6d500b148bd845cc51fe8985190eed8ab6f6fe79012c216cad5592ab3329e2df6b091abcc6ea8937d66f47272baead798c7d711e5d73aa9ffaa7 HEAD_REF master PATCHES bigobj.patch unvendor_icu_and_find_dependency.patch # https://github.com/duckdb/duckdb/pull/16176 + https://github.com/duckdb/duckdb/pull/16197 -) + httpfs.patch + ) # Remove vendored dependencies which are not properly namespaced file(REMOVE_RECURSE @@ -17,6 +18,16 @@ file(REMOVE_RECURSE "${SOURCE_PATH}/third_party/tpce-tool" ) +vcpkg_from_github( + OUT_SOURCE_PATH DUCKDB_HTTPFS_SOURCE_PATH + REPO duckdb/duckdb_httpfs + REF 85ac4667bcb0d868199e156f8dd918b0278db7b9 + SHA512 5790ed795d394dd1b512aac0d1f1dc5976588d93b34381cab1d78c256428f3047682c7b662b1c855d3b19a9dbf99a6c64f32152dba347c18f2a36e19bcc3c5df + HEAD_REF main +) + +file(RENAME "${DUCKDB_HTTPFS_SOURCE_PATH}" "${SOURCE_PATH}/extension/httpfs") + string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" DUCKDB_BUILD_STATIC) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" DUCKDB_BUILD_DYNAMIC) diff --git a/ports/duckdb/unvendor_icu_and_find_dependency.patch b/ports/duckdb/unvendor_icu_and_find_dependency.patch index 204015b048d8b6..0e1df5eab402e8 100644 --- a/ports/duckdb/unvendor_icu_and_find_dependency.patch +++ b/ports/duckdb/unvendor_icu_and_find_dependency.patch @@ -16,26 +16,28 @@ index ef61b6b..2e5270e 100644 get_filename_component(DuckDB_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) set(DuckDB_INCLUDE_DIRS "@CONF_INCLUDE_DIRS@") diff --git a/extension/icu/CMakeLists.txt b/extension/icu/CMakeLists.txt -index 65cbe38..6a38f93 100644 +index 65cbe38..b5585e4 100644 --- a/extension/icu/CMakeLists.txt +++ b/extension/icu/CMakeLists.txt -@@ -3,10 +3,13 @@ cmake_minimum_required(VERSION 2.8.12...3.29) +@@ -3,11 +3,14 @@ cmake_minimum_required(VERSION 2.8.12...3.29) project(ICUExtension) include_directories(include) -include_directories(third_party/icu/common) -include_directories(third_party/icu/i18n) +- +-add_subdirectory(third_party) +option(WITH_INTERNAL_ICU "Use vendored copy of icu" TRUE) +if(WITH_INTERNAL_ICU) + include_directories(third_party/icu/common) + include_directories(third_party/icu/i18n) --add_subdirectory(third_party) + add_subdirectory(third_party) +endif() - ++ set(ICU_EXTENSION_FILES ${ICU_LIBRARY_FILES} + icu_extension.cpp @@ -26,6 +29,10 @@ set(ICU_EXTENSION_FILES build_static_extension(icu ${ICU_EXTENSION_FILES}) @@ -48,15 +50,15 @@ index 65cbe38..6a38f93 100644 set(PARAMETERS "-no-warnings") build_loadable_extension(icu ${PARAMETERS} ${ICU_EXTENSION_FILES}) diff --git a/extension/icu/icu-datefunc.cpp b/extension/icu/icu-datefunc.cpp -index 995f594..a8092b6 100644 +index 0c38827..c744b68 100644 --- a/extension/icu/icu-datefunc.cpp +++ b/extension/icu/icu-datefunc.cpp @@ -72,7 +72,7 @@ unique_ptr ICUDateFunc::Bind(ClientContext &context, ScalarFunctio } - void ICUDateFunc::SetTimeZone(icu::Calendar *calendar, const string_t &tz_id) { + bool ICUDateFunc::TrySetTimeZone(icu::Calendar *calendar, const string_t &tz_id) { - auto tz = icu_66::TimeZone::createTimeZone(icu::UnicodeString::fromUTF8(icu::StringPiece(tz_id.GetString()))); + auto tz = icu::TimeZone::createTimeZone(icu::UnicodeString::fromUTF8(icu::StringPiece(tz_id.GetString()))); if (*tz == icu::TimeZone::getUnknown()) { delete tz; - throw NotImplementedException("Unknown TimeZone '%s'", tz_id.GetString()); + return false; diff --git a/ports/duckdb/vcpkg.json b/ports/duckdb/vcpkg.json index 0ebab7d1069af9..651b03b1ac2555 100644 --- a/ports/duckdb/vcpkg.json +++ b/ports/duckdb/vcpkg.json @@ -1,6 +1,6 @@ { "name": "duckdb", - "version": "1.2.0", + "version": "1.2.1", "description": "High-performance in-process analytical database system", "homepage": "https://duckdb.org", "license": "MIT", diff --git a/versions/baseline.json b/versions/baseline.json index 5ed690f82b69a8..06024de9ee045c 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -2425,7 +2425,7 @@ "port-version": 0 }, "duckdb": { - "baseline": "1.2.0", + "baseline": "1.2.1", "port-version": 0 }, "duckx": { diff --git a/versions/d-/duckdb.json b/versions/d-/duckdb.json index faf6ece81d9546..b1ad1487fc1397 100644 --- a/versions/d-/duckdb.json +++ b/versions/d-/duckdb.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "213b32d9a3a2f7ef1676b475d18efa7d20879888", + "version": "1.2.1", + "port-version": 0 + }, { "git-tree": "02e6c406fafcd36a23c51998c14c1e95653b2254", "version": "1.2.0",