This is an automated email from the ASF dual-hosted git repository.
dataroaring pushed a commit to branch branch-3.0
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-3.0 by this push:
new ba592ed1229 [Chore](thirdparty) sync thirdparty from master (#53608)
ba592ed1229 is described below
commit ba592ed1229aa92962eb896681d85aafc27da63f
Author: Pxl <[email protected]>
AuthorDate: Mon Jul 21 12:21:43 2025 +0800
[Chore](thirdparty) sync thirdparty from master (#53608)
sync thirdparty from master
---
thirdparty/CHANGELOG.md | 32 +++++-
thirdparty/build-thirdparty.sh | 93 ++++++++++++++--
thirdparty/download-thirdparty.sh | 79 ++++++++++++-
.../patches/aws-sdk-cpp-1.11.119-cmake.patch | 11 ++
.../azure-sdk-for-cpp-azure-core_1.16.0.patch | 24 ++++
thirdparty/patches/brpc-uuid-string.patch | 123 +++++++++++++++++++++
thirdparty/patches/faiss-1.10.0.patch | 66 +++++++++++
thirdparty/patches/flatbuffers-2.0.0.patch | 11 ++
thirdparty/patches/grpc-1.54.3.patch | 11 ++
thirdparty/patches/libdivide-5.0.patch | 11 ++
thirdparty/patches/libuuid-1.0.3.patch | 19 ++++
.../patches/thrift-0.16-fix_mutex_include.patch | 9 ++
thirdparty/vars.sh | 49 +++++---
13 files changed, 507 insertions(+), 31 deletions(-)
diff --git a/thirdparty/CHANGELOG.md b/thirdparty/CHANGELOG.md
index 350e914572d..528c29a13d2 100644
--- a/thirdparty/CHANGELOG.md
+++ b/thirdparty/CHANGELOG.md
@@ -2,6 +2,14 @@
This file contains version of the third-party dependency libraries in the
build-env image. The docker build-env image is apache/doris, and the tag is
`build-env-${version}`
+## 20250715
+
+- Modified: azure-core 1.10.3 -> 1.16.0
+
+## 20250617
+
+- Modified: simdjson 3.0.1 -> 3.11.6
+
## 20250416
- Mofified: patch re2 to set `ignore_replace_escape` option
@@ -10,18 +18,38 @@ This file contains version of the third-party dependency
libraries in the build-
- Modified: jindofs 6.3.4 -> 6.8.2
-## 20250402
+## 20250405
-- Added: icu 75-1, develop ICU tokenizer based on ICU library.
+- Modified: libdivide 5.0 -> 5.2
+
+## 20250325
+
+- Added: jindofs 6.3.4 with jindofs ubuntu jar
## 20250324
- Added: pugixml 1.15, a C++ XML processing library.
+## 20250319
+
+- Added: jindofs 6.3.4
+
+## 20250318
+
+- Modified: hadoop-libs 3.3.6.5 -> 3.3.6.6
+
## 20250225
- Modified: hadoop-libs 3.3.6.4 -> 3.3.6.5
+## 20250123
+
+- Added: icu 75-1, develop ICU tokenizer based on ICU library.
+
+## 20241031
+
+- Modified: hadoop-libs 3.3.6.3 -> 3.3.6.4
+
## 20240815
- Modified: arrow 15.0.2 -> 17.0.0
diff --git a/thirdparty/build-thirdparty.sh b/thirdparty/build-thirdparty.sh
index bb3cc427ab3..6084026fd00 100755
--- a/thirdparty/build-thirdparty.sh
+++ b/thirdparty/build-thirdparty.sh
@@ -165,6 +165,12 @@ if [[ "${CC}" == *gcc ]]; then
warning_array_parameter='-Wno-array-parameter'
warning_narrowing='-Wno-narrowing'
warning_dangling_reference='-Wno-dangling-reference'
+
+ gcc_major_version=$("${CC}" -dumpversion | cut -d. -f1)
+ if [[ "${gcc_major_version}" -ge 15 ]]; then
+ warning_deprecated_literal_operator='-Wno-deprecated-literal-operator'
+ fi
+
boost_toolset='gcc'
elif [[ "${CC}" == *clang ]]; then
warning_uninitialized='-Wno-uninitialized'
@@ -758,10 +764,10 @@ build_mysql() {
fi
if [[ "${KERNEL}" != 'Darwin' ]]; then
- cflags='-static -pthread -lrt'
+ cflags='-static -pthread -lrt -std=gnu89'
cxxflags='-static -pthread -lrt'
else
- cflags='-pthread'
+ cflags='-pthread -std=gnu89'
cxxflags='-pthread'
fi
@@ -875,7 +881,7 @@ build_cyrus_sasl() {
check_if_source_exist "${CYRUS_SASL_SOURCE}"
cd "${TP_SOURCE_DIR}/${CYRUS_SASL_SOURCE}"
- CFLAGS="-fPIC -Wno-implicit-function-declaration" \
+ CFLAGS="-fPIC -std=gnu89 -Wno-implicit-function-declaration" \
CPPFLAGS="-I${TP_INCLUDE_DIR}" \
LDFLAGS="-L${TP_LIB_DIR}" \
LIBS="-lcrypto" \
@@ -919,7 +925,7 @@ build_odbc() {
cd "${TP_SOURCE_DIR}/${ODBC_SOURCE}"
- CFLAGS="-I${TP_INCLUDE_DIR} -Wno-int-conversion
-Wno-implicit-function-declaration" \
+ CFLAGS="-I${TP_INCLUDE_DIR} -Wno-int-conversion -std=gnu89
-Wno-implicit-function-declaration" \
LDFLAGS="-L${TP_LIB_DIR}" \
./configure --prefix="${TP_INSTALL_DIR}" --with-included-ltdl
--enable-static=yes --enable-shared=no
@@ -1052,13 +1058,13 @@ build_arrow() {
-DBoost_USE_STATIC_RUNTIME=ON \
-DARROW_GFLAGS_USE_SHARED=OFF \
-Dgflags_ROOT="${TP_INSTALL_DIR}" \
- -DGLOG_ROOT="${TP_INSTALL_DIR}" \
- -DRE2_ROOT="${TP_INSTALL_DIR}" \
+ -Dglog_ROOT="${TP_INSTALL_DIR}" \
+ -Dre2_ROOT="${TP_INSTALL_DIR}" \
-DZLIB_SOURCE=SYSTEM \
-DZLIB_LIBRARY="${TP_INSTALL_DIR}/lib/libz.a"
-DZLIB_INCLUDE_DIR="${TP_INSTALL_DIR}/include" \
-DRapidJSON_SOURCE=SYSTEM \
-DRapidJSON_ROOT="${TP_INSTALL_DIR}" \
- -DORC_ROOT="${TP_INSTALL_DIR}" \
+ -Dorc_ROOT="${TP_INSTALL_DIR}" \
-Dxsimd_SOURCE=BUNDLED \
-DBrotli_SOURCE=BUNDLED \
-DARROW_LZ4_USE_SHARED=OFF \
@@ -1069,7 +1075,7 @@ build_arrow() {
-Dzstd_SOURCE=SYSTEM \
-DSnappy_LIB="${TP_INSTALL_DIR}/lib/libsnappy.a"
-DSnappy_INCLUDE_DIR="${TP_INSTALL_DIR}/include" \
-DSnappy_SOURCE=SYSTEM \
- -DBOOST_ROOT="${TP_INSTALL_DIR}" --no-warn-unused-cli \
+ -DBoost_ROOT="${TP_INSTALL_DIR}" --no-warn-unused-cli \
-DARROW_JEMALLOC=OFF -DARROW_MIMALLOC=OFF \
-DJEMALLOC_HOME="${TP_INSTALL_DIR}" \
-DARROW_THRIFT_USE_SHARED=OFF \
@@ -1352,7 +1358,7 @@ build_aws_sdk() {
-DCMAKE_PREFIX_PATH="${TP_INSTALL_DIR}" -DBUILD_SHARED_LIBS=OFF
-DENABLE_TESTING=OFF \
-DCURL_LIBRARY_RELEASE="${TP_INSTALL_DIR}/lib/libcurl.a"
-DZLIB_LIBRARY_RELEASE="${TP_INSTALL_DIR}/lib/libz.a" \
-DBUILD_ONLY="core;s3;s3-crt;transfer;identity-management;sts" \
- -DCMAKE_CXX_FLAGS="-Wno-nonnull -Wno-deprecated-declarations
${warning_dangling_reference}" -DCPP_STANDARD=17
+ -DCMAKE_CXX_FLAGS="-Wno-nonnull ${warning_deprecated_literal_operator}
-Wno-deprecated-declarations ${warning_dangling_reference}" -DCPP_STANDARD=17
cd "${BUILD_DIR}"
@@ -1471,7 +1477,7 @@ build_krb5() {
with_crypto_impl='--with-crypto-impl=openssl'
fi
- CFLAGS="-fcommon -fPIC -I${TP_INSTALL_DIR}/include"
LDFLAGS="-L${TP_INSTALL_DIR}/lib" \
+ CFLAGS="-fcommon -fPIC -I${TP_INSTALL_DIR}/include -std=gnu89"
LDFLAGS="-L${TP_INSTALL_DIR}/lib" \
../configure --prefix="${TP_INSTALL_DIR}" --disable-shared
--enable-static \
--without-keyutils ${with_crypto_impl:+${with_crypto_impl}}
@@ -1531,6 +1537,9 @@ build_jemalloc_doris() {
WITH_LG_PAGE=''
fi
+ # It is not easy to remove `with-jemalloc-prefix`, which may affect the
compatibility between third-party and old version codes.
+ # Also, will building failed on Mac, it said can't find mallctl symbol.
because jemalloc's default prefix on macOS is "je_", not "".
+ # Maybe can use alias instead of overwrite.
CFLAGS="${cflags}" ../configure --prefix="${TP_INSTALL_DIR}"
--with-install-suffix="_doris" "${WITH_LG_PAGE}" \
--with-jemalloc-prefix=je --enable-prof --disable-cxx --disable-libdl
--disable-shared
@@ -1744,7 +1753,7 @@ build_jsoncpp() {
rm -rf "${BUILD_DIR}"
mkdir -p "${BUILD_DIR}"
cd "${BUILD_DIR}"
- "${CMAKE_CMD}" -G "${GENERATOR}" -DBUILD_STATIC_LIBS=ON
-DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release
-DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" ..
+ "${CMAKE_CMD}" -G "${GENERATOR}" -DJSONCPP_WITH_TESTS=OFF
-DBUILD_STATIC_LIBS=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release
-DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" ..
"${BUILD_SYSTEM}" -j "${PARALLEL}"
"${BUILD_SYSTEM}" install
}
@@ -1814,7 +1823,7 @@ build_azure() {
AZURE_PORTS="vcpkg-custom-ports"
AZURE_MANIFEST_DIR="."
- "${CMAKE_CMD}" -G "${GENERATOR}" -DVCPKG_MANIFEST_MODE=ON
-DVCPKG_OVERLAY_PORTS="${azure_dir}/${AZURE_PORTS}"
-DVCPKG_MANIFEST_DIR="${azure_dir}/${AZURE_MANIFEST_DIR}"
-DWARNINGS_AS_ERRORS=FALSE -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}"
-DCMAKE_BUILD_TYPE=Release ..
+ "${CMAKE_CMD}" -G "${GENERATOR}"
-DCMAKE_CXX_FLAGS="-Wno-maybe-uninitialized" -DDISABLE_RUST_IN_BUILD=ON
-DVCPKG_MANIFEST_MODE=ON -DVCPKG_OVERLAY_PORTS="${azure_dir}/${AZURE_PORTS}"
-DVCPKG_MANIFEST_DIR="${azure_dir}/${AZURE_MANIFEST_DIR}"
-DWARNINGS_AS_ERRORS=FALSE -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}"
-DCMAKE_BUILD_TYPE=Release ..
"${BUILD_SYSTEM}" -j "${PARALLEL}"
"${BUILD_SYSTEM}" install
fi
@@ -1882,6 +1891,66 @@ build_pugixml() {
cp "${TP_SOURCE_DIR}/${PUGIXML_SOURCE}/src/pugiconfig.hpp"
"${TP_INSTALL_DIR}/include/"
}
+build_openblas() {
+ check_if_source_exist "${OPENBLAS_SOURCE}"
+ cd "${TP_SOURCE_DIR}/${OPENBLAS_SOURCE}"
+
+ rm -rf "${BUILD_DIR}"
+ mkdir -p "${BUILD_DIR}"
+ cd "${BUILD_DIR}"
+ OPENBLAS_CMAKE_OPTIONS=(
+ "-DCMAKE_PREFIX_PATH=${TP_INSTALL_DIR}"
+ "-DCMAKE_INSTALL_PREFIX=${TP_INSTALL_DIR}"
+ "-DCMAKE_BUILD_TYPE=Release"
+ "-DBUILD_WITHOUT_LAPACK=OFF"
+ "-DNO_SHARED=TRUE"
+ "-DNO_AVX512=TRUE"
+ "-DC_LAPACK=TRUE"
+ "-DUSE_OPENMP=TRUE"
+ "-DBUILD_STATIC_LIBS=ON"
+ "-DNOFORTRAN=TRUE"
+ "-DBUILD_TESTING=OFF"
+ "-DBUILD_RELAPACK=ON"
+ "-DBUILD_BENCHMARKS=OFF"
+ )
+
+ echo "Building openblas at $(pwd) with cmake parameters:
${OPENBLAS_CMAKE_OPTIONS[*]}"
+
+ "${CMAKE_CMD}" -G "${GENERATOR}" "${OPENBLAS_CMAKE_OPTIONS[@]}" ..
+ "${BUILD_SYSTEM}" -j "${PARALLEL}"
+ "${BUILD_SYSTEM}" install
+}
+
+build_faiss() {
+ check_if_source_exist "${FAISS_SOURCE}"
+ echo "Building faiss ${FAISS_SOURCE}"
+ cd "${TP_SOURCE_DIR}"
+ # if faiss dir not exists, create a symlink to faiss source dir
+ # this symlink is necessary since faiss source code must be compiled in a
directory named faiss.
+ if [[ ! -d "${TP_SOURCE_DIR}/faiss" ]]; then
+ ln -s "${FAISS_SOURCE}" faiss
+ fi
+ cd "${TP_SOURCE_DIR}/faiss"
+
+ rm -rf "${BUILD_DIR}"
+ mkdir -p "${BUILD_DIR}"
+ cd "${BUILD_DIR}"
+
+ FAISS_CMAKE_OPTIONS=(
+ "-DDORIS_THIRD_LIB_INSTALL_DIR=${TP_INSTALL_DIR}"
+ "-DCMAKE_INSTALL_PREFIX=${TP_INSTALL_DIR}"
+ "-DCMAKE_BUILD_TYPE=Release"
+ "-DFAISS_ENABLE_GPU=OFF"
+ "-DFAISS_ENABLE_PYTHON=OFF"
+ )
+
+ echo "Building faiss at $(pwd) with cmake parameters:
${FAISS_CMAKE_OPTIONS[*]}"
+
+ "${CMAKE_CMD}" -G "${GENERATOR}" "${FAISS_CMAKE_OPTIONS[@]}" ..
+ "${BUILD_SYSTEM}" -j "${PARALLEL}"
+ "${BUILD_SYSTEM}" install
+}
+
if [[ "${#packages[@]}" -eq 0 ]]; then
packages=(
jindofs
diff --git a/thirdparty/download-thirdparty.sh
b/thirdparty/download-thirdparty.sh
index 5ca4eb44080..54bcf2148d2 100755
--- a/thirdparty/download-thirdparty.sh
+++ b/thirdparty/download-thirdparty.sh
@@ -425,6 +425,7 @@ if [[ " ${TP_ARCHIVES[*]} " =~ " AWS_SDK " ]]; then
bash ./prefetch_crt_dependency.sh
fi
patch -p1 <"${TP_PATCH_DIR}/aws-sdk-cpp-1.11.119.patch"
+ patch -p1 <"${TP_PATCH_DIR}/aws-sdk-cpp-1.11.119-cmake.patch"
else
bash ./prefetch_crt_dependency.sh
fi
@@ -436,7 +437,7 @@ fi
# patch simdjson, change simdjson::dom::element_type::BOOL to BOOLEAN to avoid
conflict with odbc macro BOOL
if [[ " ${TP_ARCHIVES[*]} " =~ " SIMDJSON " ]]; then
- if [[ "${SIMDJSON_SOURCE}" = "simdjson-3.0.1" ]]; then
+ if [[ "${SIMDJSON_SOURCE}" = "simdjson-3.11.6" ]]; then
cd "${TP_SOURCE_DIR}/${SIMDJSON_SOURCE}"
if [[ ! -f "${PATCHED_MARK}" ]]; then
patch -p1 <"${TP_PATCH_DIR}/simdjson-3.0.1.patch"
@@ -489,6 +490,58 @@ if [[ " ${TP_ARCHIVES[*]} " =~ " BASE64 " ]]; then
echo "Finished patching ${BASE64_SOURCE}"
fi
+# patch libuuid
+if [[ " ${TP_ARCHIVES[*]} " =~ " LIBUUID " ]]; then
+ if [[ "${LIBUUID_SOURCE}" = "libuuid-1.0.3" ]]; then
+ cd "${TP_SOURCE_DIR}/${LIBUUID_SOURCE}"
+ if [[ ! -f "${PATCHED_MARK}" ]]; then
+ patch -p1 <"${TP_PATCH_DIR}/libuuid-1.0.3.patch"
+ touch "${PATCHED_MARK}"
+ fi
+ cd -
+ fi
+ echo "Finished patching ${LIBUUID_SOURCE}"
+fi
+
+# patch libdivide
+if [[ " ${TP_ARCHIVES[*]} " =~ " LIBDIVIDE " ]]; then
+ if [[ "${LIBDIVIDE_SOURCE}" = "libdivide-5.0" ]]; then
+ cd "${TP_SOURCE_DIR}/${LIBDIVIDE_SOURCE}"
+ if [[ ! -f "${PATCHED_MARK}" ]]; then
+ patch -p1 <"${TP_PATCH_DIR}/libdivide-5.0.patch"
+ touch "${PATCHED_MARK}"
+ fi
+ cd -
+ fi
+ echo "Finished patching ${LIBDIVIDE_SOURCE}"
+fi
+
+# patch grpc
+if [[ " ${TP_ARCHIVES[*]} " =~ " GRPC " ]]; then
+ if [[ "${GRPC_SOURCE}" = "grpc-1.54.3" ]]; then
+ cd "${TP_SOURCE_DIR}/${GRPC_SOURCE}"
+ if [[ ! -f "${PATCHED_MARK}" ]]; then
+ patch -p1 <"${TP_PATCH_DIR}/grpc-1.54.3.patch"
+ touch "${PATCHED_MARK}"
+ fi
+ cd -
+ fi
+ echo "Finished patching ${GRPC_SOURCE}"
+fi
+
+# patch flatbuffer
+if [[ " ${TP_ARCHIVES[*]} " =~ " FLATBUFFERS " ]]; then
+ if [[ "${FLATBUFFERS_SOURCE}" = "flatbuffers-2.0.0" ]]; then
+ cd "${TP_SOURCE_DIR}/${FLATBUFFERS_SOURCE}"
+ if [[ ! -f "${PATCHED_MARK}" ]]; then
+ patch -p1 <"${TP_PATCH_DIR}/flatbuffers-2.0.0.patch"
+ touch "${PATCHED_MARK}"
+ fi
+ cd -
+ fi
+ echo "Finished patching ${FLATBUFFERS_SOURCE}"
+fi
+
# patch krb
if [[ " ${TP_ARCHIVES[*]} " =~ " KRB5 " ]]; then
if [[ "${KRB5_SOURCE}" = "krb5-1.19" ]]; then
@@ -537,6 +590,19 @@ if [[ " ${TP_ARCHIVES[*]} " =~ " THRIFT " ]]; then
echo "Finished patching ${THRIFT_SOURCE}"
fi
+# patch faiss cmake so that we can use openblas
+if [[ " ${TP_ARCHIVES[*]} " =~ " FAISS " ]]; then
+ if [[ "${FAISS_SOURCE}" = "faiss-1.10.0" ]]; then
+ cd "${TP_SOURCE_DIR}/${FAISS_SOURCE}"
+ if [[ ! -f "${PATCHED_MARK}" ]]; then
+ patch -p2 <"${TP_PATCH_DIR}/faiss-1.10.0.patch"
+ touch "${PATCHED_MARK}"
+ fi
+ cd -
+ fi
+ echo "Finished patching ${FAISS_SOURCE}"
+fi
+
# patch re2
if [[ " ${TP_ARCHIVES[*]} " =~ " RE2 " ]]; then
if [[ "${RE2_SOURCE}" == 're2-2021-02-02' ]]; then
@@ -553,4 +619,15 @@ if [[ " ${TP_ARCHIVES[*]} " =~ " RE2 " ]]; then
echo "Finished patching ${RE2_SOURCE}"
fi
+# patch azure
+if [[ " ${TP_ARCHIVES[*]} " =~ " AZURE " ]]; then
+ cd "${TP_SOURCE_DIR}/${AZURE_SOURCE}"
+ if [[ ! -f "${PATCHED_MARK}" ]]; then
+ patch -p1 <"${TP_PATCH_DIR}/azure-sdk-for-cpp-azure-core_1.16.0.patch"
+ touch "${PATCHED_MARK}"
+ fi
+ cd -
+ echo "Finished patching ${GRPC_SOURCE}"
+fi
+
# vim: ts=4 sw=4 ts=4 tw=100:
diff --git a/thirdparty/patches/aws-sdk-cpp-1.11.119-cmake.patch
b/thirdparty/patches/aws-sdk-cpp-1.11.119-cmake.patch
new file mode 100644
index 00000000000..0f9e38be507
--- /dev/null
+++ b/thirdparty/patches/aws-sdk-cpp-1.11.119-cmake.patch
@@ -0,0 +1,11 @@
+--- a/crt/aws-crt-cpp/crt/aws-c-cal/CMakeLists.txt 2025-01-06
21:23:51.057566544 +0800
++++ b/crt/aws-crt-cpp/crt/aws-c-cal/CMakeLists.txt 2025-01-06
16:50:56.480567259 +0800
+@@ -8,7 +8,7 @@
+ cmake_policy(SET CMP0069 NEW) # Enable LTO/IPO if available in the
compiler, see AwsCFlags
+ endif()
+
+-set(CMAKE_FIND_PACKAGE_PREFER_CONFIG TRUE)
++# set(CMAKE_FIND_PACKAGE_PREFER_CONFIG TRUE)
+
+ option(BYO_CRYPTO "Set this if you want to provide your own cryptography
implementation. This will cause the defaults to not be compiled." OFF)
+ option(USE_OPENSSL "Set this if you want to use your system's OpenSSL
1.0.2/1.1.1 compatible libcrypto" OFF)
diff --git a/thirdparty/patches/azure-sdk-for-cpp-azure-core_1.16.0.patch
b/thirdparty/patches/azure-sdk-for-cpp-azure-core_1.16.0.patch
new file mode 100644
index 00000000000..c0e8def8f26
--- /dev/null
+++ b/thirdparty/patches/azure-sdk-for-cpp-azure-core_1.16.0.patch
@@ -0,0 +1,24 @@
+From 0c18bd91955f6ad48582c01901ffadd4ad5a149c Mon Sep 17 00:00:00 2001
+From: BiteTheDDDDt <[email protected]>
+Date: Tue, 15 Jul 2025 12:57:25 +0800
+Subject: [PATCH] resolve missing uint8_t define
+
+---
+ .../azure-security-attestation/src/private/crypto/inc/crypto.hpp | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git
a/sdk/attestation/azure-security-attestation/src/private/crypto/inc/crypto.hpp
b/sdk/attestation/azure-security-attestation/src/private/crypto/inc/crypto.hpp
+index 9a98f204..8f338436 100644
+---
a/sdk/attestation/azure-security-attestation/src/private/crypto/inc/crypto.hpp
++++
b/sdk/attestation/azure-security-attestation/src/private/crypto/inc/crypto.hpp
+@@ -2,6 +2,7 @@
+ // Licensed under the MIT License.
+
+ #pragma once
++#include <cstdint>
+ #include <ctime>
+ #include <memory>
+ #include <string>
+--
+2.43.5
+
diff --git a/thirdparty/patches/brpc-uuid-string.patch
b/thirdparty/patches/brpc-uuid-string.patch
new file mode 100644
index 00000000000..99606aefce3
--- /dev/null
+++ b/thirdparty/patches/brpc-uuid-string.patch
@@ -0,0 +1,123 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -110,6 +110,34 @@ set(DEFINE_CLOCK_GETTIME "-DNO_CLOCK_GETTIME_IN_MAC")
+ endif()
+ set(CMAKE_CPP_FLAGS "${CMAKE_CPP_FLAGS} -Wno-deprecated-declarations
-Wno-inconsistent-missing-override")
++
++ # Check if xcrun exists and get SDK version if it does
++ execute_process(
++ COMMAND which xcrun
++ RESULT_VARIABLE XCRUN_RESULT
++ OUTPUT_QUIET
++ ERROR_QUIET
++ )
++
++ if(XCRUN_RESULT EQUAL 0)
++ # xcrun exists, detect SDK version
++ execute_process(
++ COMMAND xcrun --sdk macosx --show-sdk-version
++ OUTPUT_VARIABLE MACOSX_SDK_VERSION
++ OUTPUT_STRIP_TRAILING_WHITESPACE
++ )
++ message(STATUS "Detected macOS SDK version: ${MACOSX_SDK_VERSION}")
++
++ if(MACOSX_SDK_VERSION VERSION_LESS 10.14)
++ message(STATUS "macOS SDK version < 10.14; not applying
_DARWIN_C_SOURCE or uuid fix.")
++ else()
++ message(STATUS "macOS SDK version >= 10.14; applying
Darwin-specific uuid fix.")
++ add_definitions(-D_DARWIN_C_SOURCE)
++ add_definitions(-DUSE_DARWIN_UUID_FIX)
++ endif()
++ else()
++ message(STATUS "xcrun not found; skipping Darwin-specific SDK
checks.")
++ endif()
+ endif()
+
+ set(CMAKE_CPP_FLAGS "${CMAKE_CPP_FLAGS} ${DEFINE_CLOCK_GETTIME}
-DBRPC_WITH_GLOG=${WITH_GLOG_VAL} -DBRPC_WITH_RDMA=${WITH_RDMA_VAL}
-DGFLAGS_NS=${GFLAGS_NS}")
+
+diff --git a/src/brpc/macos_uuid_fix.h b/src/brpc/macos_uuid_fix.h
+new file mode 100644
+index 00000000..623a6454
+--- /dev/null
++++ b/src/brpc/macos_uuid_fix.h
+@@ -0,0 +1,9 @@
++#ifdef __APPLE__
++#ifdef USE_DARWIN_UUID_FIX
++#include <uuid/uuid.h>
++#ifndef _UUID_STRING_T
++#define _UUID_STRING_T
++typedef char uuid_string_t[37];
++#endif
++#endif
++#endif
+
+diff --git a/src/butil/mac/bundle_locations.mm
b/src/butil/mac/bundle_locations.mm
+--- a/src/butil/mac/bundle_locations.mm
++++ b/src/butil/mac/bundle_locations.mm
+@@ -1,7 +1,8 @@
+ // Copyright (c) 2012 The Chromium Authors. All rights reserved.
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
+
++#include "brpc/macos_uuid_fix.h"
+ #include "butil/mac/bundle_locations.h"
+
+ #include "butil/logging.h"
+
+diff --git a/src/butil/mac/foundation_util.h b/src/butil/mac/foundation_util.h
+--- a/src/butil/mac/foundation_util.h
++++ b/src/butil/mac/foundation_util.h
+@@ -2,6 +2,7 @@
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
+
++#include "brpc/macos_uuid_fix.h"
+ #ifndef BUTIL_MAC_FOUNDATION_UTIL_H_
+ #define BUTIL_MAC_FOUNDATION_UTIL_H_
+
+
+diff --git a/src/butil/mac/foundation_util.mm
b/src/butil/mac/foundation_util.mm
+--- a/src/butil/mac/foundation_util.mm
++++ b/src/butil/mac/foundation_util.mm
+@@ -2,6 +2,7 @@
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
+
++#include "brpc/macos_uuid_fix.h"
+ #include "butil/mac/foundation_util.h"
+
+ #include <stdlib.h>
+
+diff --git a/src/butil/threading/platform_thread_mac.mm
b/src/butil/threading/platform_thread_mac.mm
+--- a/src/butil/threading/platform_thread_mac.mm
++++ b/src/butil/threading/platform_thread_mac.mm
+@@ -3,3 +3,4 @@
+ // found in the LICENSE file.
+
++#include "brpc/macos_uuid_fix.h"
+ #include "butil/threading/platform_thread.h"
+
+diff --git a/src/butil/file_util_mac.mm b/src/butil/file_util_mac.mm
+--- a/src/butil/file_util_mac.mm
++++ b/src/butil/file_util_mac.mm
+@@ -2,6 +2,7 @@
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
+
++#include "brpc/macos_uuid_fix.h"
+ #include "butil/file_util.h"
+
+ #import <Foundation/Foundation.h>
+
+diff --git a/src/butil/strings/sys_string_conversions_mac.mm
b/src/butil/strings/sys_string_conversions_mac.mm
+--- a/src/butil/strings/sys_string_conversions_mac.mm
++++ b/src/butil/strings/sys_string_conversions_mac.mm
+@@ -2,5 +2,6 @@
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
+
++#include "brpc/macos_uuid_fix.h"
+ #include "butil/mac/foundation_util.h"
+ #include "butil/mac/scoped_cftyperef.h"
+
diff --git a/thirdparty/patches/faiss-1.10.0.patch
b/thirdparty/patches/faiss-1.10.0.patch
new file mode 100644
index 00000000000..8279f4d71a1
--- /dev/null
+++ b/thirdparty/patches/faiss-1.10.0.patch
@@ -0,0 +1,66 @@
+--- src/faiss-1.10.0/faiss/CMakeLists.txt 2025-02-01 05:52:00.000000000
+0800
++++ src/faiss-1.10.0/faiss/CMakeLists.txt.new 2025-03-28 19:45:37.513624103
+0800
+@@ -381,19 +381,51 @@
+ target_link_libraries(faiss_avx512 PRIVATE ${MKL_LIBRARIES})
+ target_link_libraries(faiss_avx512_spr PRIVATE ${MKL_LIBRARIES})
+ else()
+- find_package(BLAS REQUIRED)
+- target_link_libraries(faiss PRIVATE ${BLAS_LIBRARIES})
+- target_link_libraries(faiss_avx2 PRIVATE ${BLAS_LIBRARIES})
+- target_link_libraries(faiss_avx512 PRIVATE ${BLAS_LIBRARIES})
+- target_link_libraries(faiss_avx512_spr PRIVATE ${BLAS_LIBRARIES})
+- target_link_libraries(faiss_sve PRIVATE ${BLAS_LIBRARIES})
++ # If not found through find_package, look in the DORIS_THIRD_LIB_INSTALL_DIR
++ if(DEFINED DORIS_THIRD_LIB_INSTALL_DIR)
++ set(OpenBLAS_ROOT ${DORIS_THIRD_LIB_INSTALL_DIR})
++
++ # Check if libopenblas exists in DORIS_THIRD_LIB_INSTALL_DIR
++ if(EXISTS "${DORIS_THIRD_LIB_INSTALL_DIR}/lib/libopenblas.a")
++ set(OpenBLAS_LIB "${DORIS_THIRD_LIB_INSTALL_DIR}/lib/libopenblas.a")
++ endif()
++ # Terminate if OpenBLAS_LIB is not found
++ if(NOT OpenBLAS_LIB)
++ message(WARNING "OpenBLAS not found in DORIS_THIRD_LIB_INSTALL_DIR:
${DORIS_THIRD_LIB_INSTALL_DIR}")
++ endif()
+
+- find_package(LAPACK REQUIRED)
+- target_link_libraries(faiss PRIVATE ${LAPACK_LIBRARIES})
+- target_link_libraries(faiss_avx2 PRIVATE ${LAPACK_LIBRARIES})
+- target_link_libraries(faiss_avx512 PRIVATE ${LAPACK_LIBRARIES})
+- target_link_libraries(faiss_avx512_spr PRIVATE ${LAPACK_LIBRARIES})
+- target_link_libraries(faiss_sve PRIVATE ${LAPACK_LIBRARIES})
++ if(OpenBLAS_LIB)
++ set(OpenBLAS_LIBRARIES ${OpenBLAS_LIB})
++ set(OpenBLAS_FOUND TRUE)
++ message(STATUS "Found OpenBLAS in DORIS_THIRD_LIB_INSTALL_DIR:
${OpenBLAS_LIB}")
++ endif()
++ else()
++ message(WARNING "DORIS_THIRD_LIB_INSTALL_DIR is not defined. Please set
it to the directory where OpenBLAS is installed.")
++ endif()
++
++ if(OpenBLAS_FOUND)
++ message(STATUS "Using OpenBLAS: ${OpenBLAS_LIBRARIES}")
++ target_link_libraries(faiss PRIVATE ${OpenBLAS_LIBRARIES})
++ target_link_libraries(faiss_avx2 PRIVATE ${OpenBLAS_LIBRARIES})
++ target_link_libraries(faiss_avx512 PRIVATE ${OpenBLAS_LIBRARIES})
++ target_link_libraries(faiss_avx512_spr PRIVATE ${OpenBLAS_LIBRARIES})
++ target_link_libraries(faiss_sve PRIVATE ${OpenBLAS_LIBRARIES})
++ else()
++ # Fall back to separate BLAS and LAPACK if OpenBLAS is not found
++ find_package(BLAS REQUIRED)
++ target_link_libraries(faiss PRIVATE ${BLAS_LIBRARIES})
++ target_link_libraries(faiss_avx2 PRIVATE ${BLAS_LIBRARIES})
++ target_link_libraries(faiss_avx512 PRIVATE ${BLAS_LIBRARIES})
++ target_link_libraries(faiss_avx512_spr PRIVATE ${BLAS_LIBRARIES})
++ target_link_libraries(faiss_sve PRIVATE ${BLAS_LIBRARIES})
++
++ find_package(LAPACK REQUIRED)
++ target_link_libraries(faiss PRIVATE ${LAPACK_LIBRARIES})
++ target_link_libraries(faiss_avx2 PRIVATE ${LAPACK_LIBRARIES})
++ target_link_libraries(faiss_avx512 PRIVATE ${LAPACK_LIBRARIES})
++ target_link_libraries(faiss_avx512_spr PRIVATE ${LAPACK_LIBRARIES})
++ target_link_libraries(faiss_sve PRIVATE ${LAPACK_LIBRARIES})
++ endif()
+ endif()
+
+ install(TARGETS faiss
diff --git a/thirdparty/patches/flatbuffers-2.0.0.patch
b/thirdparty/patches/flatbuffers-2.0.0.patch
new file mode 100644
index 00000000000..096f9cb7ad4
--- /dev/null
+++ b/thirdparty/patches/flatbuffers-2.0.0.patch
@@ -0,0 +1,11 @@
+--- a/include/flatbuffers/stl_emulation.h 2021-05-11 02:45:16.000000000
+0800
++++ b/include/flatbuffers/stl_emulation.h 2025-01-06 22:43:47.538175771
+0800
+@@ -625,7 +625,7 @@
+ private:
+ // This is a naive implementation with 'count_' member even if (Extent !=
dynamic_extent).
+ pointer const data_;
+- const size_type count_;
++ size_type count_;
+ };
+
+ #if !defined(FLATBUFFERS_SPAN_MINIMAL)
diff --git a/thirdparty/patches/grpc-1.54.3.patch
b/thirdparty/patches/grpc-1.54.3.patch
new file mode 100644
index 00000000000..1f211eac3f7
--- /dev/null
+++ b/thirdparty/patches/grpc-1.54.3.patch
@@ -0,0 +1,11 @@
+--- a/src/core/lib/promise/detail/basic_seq.h 2025-01-06 22:41:37.857651534
+0800
++++ b/src/core/lib/promise/detail/basic_seq.h 2025-01-06 22:41:42.308703853
+0800
+@@ -471,7 +471,7 @@
+ cur_ = next;
+ state_.~State();
+ Construct(&state_,
+- Traits::template CallSeqFactory(f_, *cur_,
std::move(arg)));
++ Traits::CallSeqFactory(f_, *cur_, std::move(arg)));
+ return PollNonEmpty();
+ });
+ }
diff --git a/thirdparty/patches/libdivide-5.0.patch
b/thirdparty/patches/libdivide-5.0.patch
new file mode 100644
index 00000000000..e5d8b952d75
--- /dev/null
+++ b/thirdparty/patches/libdivide-5.0.patch
@@ -0,0 +1,11 @@
+--- a/libdivide.h 2025-01-06 22:27:33.308725176 +0800
++++ b/libdivide.h 2025-01-06 22:27:41.517821664 +0800
+@@ -3017,7 +3017,7 @@
+ T recover() const { return div.recover(); }
+
+ bool operator==(const divider<T, ALGO> &other) const {
+- return div.denom.magic == other.denom.magic && div.denom.more ==
other.denom.more;
++ return div.denom.magic == other.div.denom.magic && div.denom.more ==
other.div.denom.more;
+ }
+
+ bool operator!=(const divider<T, ALGO> &other) const { return !(*this ==
other); }
diff --git a/thirdparty/patches/libuuid-1.0.3.patch
b/thirdparty/patches/libuuid-1.0.3.patch
new file mode 100644
index 00000000000..30a2cb8f6b4
--- /dev/null
+++ b/thirdparty/patches/libuuid-1.0.3.patch
@@ -0,0 +1,19 @@
+--- a/gen_uuid.c 2025-01-06 21:27:05.241857362 +0800
++++ b/gen_uuid.c 2025-01-06 17:30:03.201419206 +0800
+@@ -38,6 +38,8 @@
+ */
+ #define _SVID_SOURCE
+
++#include "c.h"
++
+ #ifdef _WIN32
+ #define _WIN32_WINNT 0x0500
+ #include <windows.h>
+@@ -91,7 +93,6 @@
+ #include "uuidP.h"
+ #include "uuidd.h"
+ #include "randutils.h"
+-#include "c.h"
+
+ #ifdef HAVE_TLS
+ #define THREAD_LOCAL static __thread
diff --git a/thirdparty/patches/thrift-0.16-fix_mutex_include.patch
b/thirdparty/patches/thrift-0.16-fix_mutex_include.patch
new file mode 100644
index 00000000000..ca4315fde3a
--- /dev/null
+++ b/thirdparty/patches/thrift-0.16-fix_mutex_include.patch
@@ -0,0 +1,9 @@
+--- a/lib/cpp/src/thrift/concurrency/Mutex.h
++++ b/lib/cpp/src/thrift/concurrency/Mutex.h
+@@ -19,4 +19,5 @@
+ #ifndef _THRIFT_CONCURRENCY_MUTEX_H_
+ #define _THRIFT_CONCURRENCY_MUTEX_H_ 1
+
++#include <cstdint>
+ #include <memory>
+ #include <thrift/TNonCopyable.h>
diff --git a/thirdparty/vars.sh b/thirdparty/vars.sh
index d694968d86d..bc11d26d6b1 100644
--- a/thirdparty/vars.sh
+++ b/thirdparty/vars.sh
@@ -253,6 +253,8 @@ GRPC_SOURCE=grpc-1.54.3
GRPC_MD5SUM="af00a2edeae0f02bb25917cc3473b7de"
# arrow
+# Arrow 19.0.1 will MacOS compile error and decimal type error when convert to
Parquet.
+# https://github.com/apache/doris/pull/51217
ARROW_DOWNLOAD="https://github.com/apache/arrow/archive/refs/tags/apache-arrow-17.0.0.tar.gz"
ARROW_NAME="apache-arrow-17.0.0.tar.gz"
ARROW_SOURCE="arrow-apache-arrow-17.0.0"
@@ -394,10 +396,10 @@ HDFS3_SOURCE="doris-thirdparty-libhdfs3-v2.3.9"
HDFS3_MD5SUM="b3eaa03e5b184521e5ad5bf6cabea97e"
#libdivide
-LIBDIVIDE_DOWNLOAD="https://github.com/ridiculousfish/libdivide/archive/5.0.tar.gz"
-LIBDIVIDE_NAME="libdivide-5.0.tar.gz"
-LIBDIVIDE_SOURCE="libdivide-5.0"
-LIBDIVIDE_MD5SUM="7fd16b0bb4ab6812b2e2fdc7bfb81641"
+LIBDIVIDE_DOWNLOAD="https://github.com/ridiculousfish/libdivide/archive/refs/tags/v5.2.0.tar.gz"
+LIBDIVIDE_NAME="libdivide-5.2.0.tar.gz"
+LIBDIVIDE_SOURCE="libdivide-5.2.0"
+LIBDIVIDE_MD5SUM="4ba77777192c295d6de2b86d88f3239a"
#pdqsort
PDQSORT_DOWNLOAD="https://raw.githubusercontent.com/orlp/pdqsort/b1ef26a55cdb60d236a5cb199c4234c704f46726/pdqsort.h"
@@ -419,10 +421,10 @@ XSIMD_SOURCE=xsimd-13.0.0
XSIMD_MD5SUM="c661deb91836e82d3070f81032014fe6"
# simdjson
-SIMDJSON_DOWNLOAD="https://github.com/simdjson/simdjson/archive/refs/tags/v3.0.1.tar.gz"
-SIMDJSON_NAME=simdjson-3.0.1.tar.gz
-SIMDJSON_SOURCE=simdjson-3.0.1
-SIMDJSON_MD5SUM="993576b47249f2bade2bfb2552b2896a"
+SIMDJSON_DOWNLOAD="https://github.com/simdjson/simdjson/archive/refs/tags/v3.11.6.tar.gz"
+SIMDJSON_NAME=simdjson-3.11.6.tar.gz
+SIMDJSON_SOURCE=simdjson-3.11.6
+SIMDJSON_MD5SUM="e7d9c814a4fdd6e47119ce5cf4240f4e"
# nlohmann_json
NLOHMANN_JSON_DOWNLOAD="https://github.com/nlohmann/json/archive/refs/tags/v3.10.1.tar.gz"
@@ -461,10 +463,10 @@ FAST_FLOAT_SOURCE=fast_float-3.9.0
FAST_FLOAT_MD5SUM="5656b0d8b150a3b157cfb092d214f6ea"
# libhdfs
-HADOOP_LIBS_DOWNLOAD="https://github.com/apache/doris-thirdparty/archive/refs/tags/hadoop-3.3.6.5-for-doris.tar.gz"
-HADOOP_LIBS_NAME="hadoop-3.3.6.5-for-doris.tar.gz"
-HADOOP_LIBS_SOURCE="doris-thirdparty-hadoop-3.3.6.5-for-doris"
-HADOOP_LIBS_MD5SUM="c13f90ceb5ef9460b7d736c49d9b79fd"
+HADOOP_LIBS_DOWNLOAD="https://github.com/apache/doris-thirdparty/archive/refs/tags/hadoop-3.3.6.6-for-doris.tar.gz"
+HADOOP_LIBS_NAME="hadoop-3.3.6.6-for-doris.tar.gz"
+HADOOP_LIBS_SOURCE="doris-thirdparty-hadoop-3.3.6.6-for-doris"
+HADOOP_LIBS_MD5SUM="13b66d5f2abffd1740e692b65df5962e"
# AvxToNeon
AVX2NEON_DOWNLOAD="https://github.com/kunpengcompute/AvxToNeon/archive/refs/tags/v1.0.0.tar.gz"
@@ -509,10 +511,10 @@ BASE64_SOURCE="base64-0.5.2"
BASE64_MD5SUM="49e5a6c98bd0192aedd16c16eec39974"
# azure blob
-AZURE_DOWNLOAD="https://github.com/Azure/azure-sdk-for-cpp/archive/azure-core_1.10.3.tar.gz"
-AZURE_NAME="azure-core_1.10.3.tar.gz"
-AZURE_SOURCE="azure-sdk-for-cpp-azure-core_1.10.3"
-AZURE_MD5SUM="aa470cfdba93dd69a6f3112a6958c13c"
+AZURE_DOWNLOAD="https://github.com/Azure/azure-sdk-for-cpp/archive/azure-core_1.16.0.tar.gz"
+AZURE_NAME="azure-core_1.16.0.tar.gz"
+AZURE_SOURCE="azure-sdk-for-cpp-azure-core_1.16.0"
+AZURE_MD5SUM="0fb23eab695dc24b94456bf461e6af3b"
# libdragonbox for faster double/float to string
DRAGONBOX_DOWNLOAD="https://github.com/jk-jeon/dragonbox/archive/refs/tags/1.1.3.tar.gz"
@@ -538,6 +540,19 @@ PUGIXML_NAME=pugixml-1.15.tar.gz
PUGIXML_SOURCE=pugixml-1.15
PUGIXML_MD5SUM="3b894c29455eb33a40b165c6e2de5895"
+# openblas
+OPENBLAS_DOWNLOAD="https://github.com/OpenMathLib/OpenBLAS/releases/download/v0.3.29/OpenBLAS-0.3.29.tar.gz"
+OPENBLAS_NAME="OpenBLAS-0.3.29.tar.gz"
+OPENBLAS_SOURCE="OpenBLAS-0.3.29"
+OPENBLAS_MD5SUM="853a0c5c0747c5943e7ef4bbb793162d"
+
+# faiss
+FAISS_DOWNLOAD="https://github.com/facebookresearch/faiss/archive/refs/tags/v1.10.0.tar.gz"
+FAISS_NAME="faiss-1.10.0.tar.gz"
+FAISS_SOURCE="faiss-1.10.0"
+FAISS_MD5SUM="f31edf2492808b27cc963d0ab316a205"
+
+
# all thirdparties which need to be downloaded is set in array TP_ARCHIVES
export TP_ARCHIVES=(
'LIBEVENT'
@@ -618,6 +633,8 @@ export TP_ARCHIVES=(
'ICU'
'JINDOFS'
'PUGIXML'
+ 'OPENBLAS'
+ 'FAISS'
)
if [[ "$(uname -s)" == 'Darwin' ]]; then
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]