This is an automated email from the ASF dual-hosted git repository.

morningman pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/master by this push:
     new 2185268bab [enhancement](thirdparty) upgrade thirdparty libs (#23290)
2185268bab is described below

commit 2185268bab2f5890a2c3c9a3c315375a971c4416
Author: Xinyi Zou <[email protected]>
AuthorDate: Wed Aug 23 20:25:49 2023 +0800

    [enhancement](thirdparty) upgrade thirdparty libs (#23290)
    
    protobuf 3.15.0 -> 21.11
    glog 0.4.0 -> 0.6.0
    lz4 1.9.3 -> 1.9.4
    curl 7.79.0 -> 8.2.1
    brpc 1.4.0 -> 1.6.0
    zstd 1.5.2 -> 1.5.5
    arrow 7.0.0 -> 13.0.0
    abseil 20220623.1 -> 20230125.3
    orc 1.7.2 -> 1.9.0
    jemalloc for arrow 5.2.1 -> 5.3.0
    xsimd 7.0.0 -> 13.0.0
    opentelemetry-proto 0.19.0 -> 1.0.0
    opentelemetry 1.8.3 -> 1.10.0
    
    new:
    c-ares -> 1.19.1
    grpc -> 1.54.3
---
 thirdparty/CHANGELOG.md                            |  17 +
 thirdparty/build-thirdparty.sh                     | 169 +++++++---
 thirdparty/download-thirdparty.sh                  |  40 ++-
 thirdparty/patches/absl.patch                      |   7 +-
 ...arrow-7.0.0.patch => apache-arrow-12.0.1.patch} |  52 +--
 thirdparty/patches/brpc-1.5.0-clang16.patch        |  22 --
 thirdparty/patches/brpc-1.5.0-gcc13.patch          |  12 -
 thirdparty/patches/glog-0.6.0.patch                | 354 +++++++++++++++++++++
 ...-1.8.3.patch => opentelemetry-cpp-1.10.0.patch} |  97 +++---
 thirdparty/vars.sh                                 | 126 ++++----
 10 files changed, 664 insertions(+), 232 deletions(-)

diff --git a/thirdparty/CHANGELOG.md b/thirdparty/CHANGELOG.md
index c90363fcb7..be6bfb8fdd 100644
--- a/thirdparty/CHANGELOG.md
+++ b/thirdparty/CHANGELOG.md
@@ -2,6 +2,23 @@
 
 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}`
 
+## v20230411
+- Modified: protobuf 3.15.0 -> 21.11
+- Modified: glog 0.4.0 -> 0.6.0
+- Modified: lz4 1.9.3 -> 1.9.4
+- Modified: curl 7.79.0 -> 8.2.1
+- Modified: brpc 1.4.0 -> 1.6.0
+- Modified: zstd 1.5.2 -> 1.5.5
+- Modified: arrow 7.0.0 -> 13.0.0
+- Modified: abseil 20220623.1 -> 20230125.3
+- Modified: orc 1.7.2 -> 1.9.0
+- Modified: jemalloc for arrow 5.2.1 -> 5.3.0
+- Modified: xsimd 7.0.0 -> 13.0.0
+- Modified: opentelemetry-proto 0.19.0 -> 1.0.0
+- Modified: opentelemetry 1.8.3 -> 1.10.0
+- Added: c-ares -> 1.19.1
+- Added: grpc -> 1.54.3
+
 ## v20230721
 
 - Modified hadoop libhdfs 3.3.4.4 -> 3.3.4.5
diff --git a/thirdparty/build-thirdparty.sh b/thirdparty/build-thirdparty.sh
index ec8aa049b9..fa329f48de 100755
--- a/thirdparty/build-thirdparty.sh
+++ b/thirdparty/build-thirdparty.sh
@@ -416,19 +416,6 @@ build_thrift() {
 build_protobuf() {
     check_if_source_exist "${PROTOBUF_SOURCE}"
     cd "${TP_SOURCE_DIR}/${PROTOBUF_SOURCE}"
-    rm -fr gmock
-
-    # NOTE(amos): -Wl,--undefined=pthread_create force searching for pthread 
symbols.
-    # See https://stackoverflow.com/a/65348893/1329147 for detailed 
explanation.
-    mkdir gmock
-    cd gmock
-    tar xf "${TP_SOURCE_DIR}/${GTEST_NAME}"
-
-    mv "${GTEST_SOURCE}" gtest
-
-    cd "${TP_SOURCE_DIR}/${PROTOBUF_SOURCE}"
-
-    ./autogen.sh
 
     if [[ "${KERNEL}" == 'Darwin' ]]; then
         ldflags="-L${TP_LIB_DIR}"
@@ -436,21 +423,20 @@ build_protobuf() {
         ldflags="-L${TP_LIB_DIR} -static-libstdc++ -static-libgcc 
-Wl,--undefined=pthread_create"
     fi
 
-    CXXFLAGS="-fPIC -O2 -I${TP_INCLUDE_DIR}" \
-        LDFLAGS="${ldflags}" \
-        ./configure --prefix="${TP_INSTALL_DIR}" --disable-shared 
--enable-static --with-zlib="${TP_INSTALL_DIR}/include"
+    mkdir -p cmake/build
+    cd cmake/build
 
-    # ATTN: If protoc is not built fully statically the linktime libc may 
newer than runtime.
-    #       This will casue protoc cannot run
-    #       If you really need to dynamically link protoc, please set the 
environment variable DYN_LINK_PROTOC=1
-
-    if [[ "${DYN_LINK_PROTOC:-0}" == "1" || "${KERNEL}" == 'Darwin' ]]; then
-        echo "link protoc dynamiclly"
-    else
-        cd src
-        sed -i 's/^AM_LDFLAGS\(.*\)$/AM_LDFLAGS\1 -all-static/' Makefile
-        cd -
-    fi
+    CXXFLAGS="-O2 -I${TP_INCLUDE_DIR}" \
+        LDFLAGS="${ldflags}" \
+        "${CMAKE_CMD}" -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_PREFIX_PATH="${TP_INSTALL_DIR}" \
+        -Dprotobuf_USE_EXTERNAL_GTEST=ON \
+        -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
+        -Dprotobuf_BUILD_SHARED_LIBS=OFF \
+        -Dprotobuf_BUILD_TESTS=OFF \
+        -Dprotobuf_WITH_ZLIB_DEFAULT=ON \
+        -Dprotobuf_ABSL_PROVIDER=package \
+        -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" ../..
 
     make -j "${PARALLEL}"
     make install
@@ -481,16 +467,28 @@ build_glog() {
     check_if_source_exist "${GLOG_SOURCE}"
     cd "${TP_SOURCE_DIR}/${GLOG_SOURCE}"
 
-    # to generate config.guess and config.sub to support aarch64
-    rm -rf config.*
-    autoreconf -i
+    if [[ "${GLOG_SOURCE}" == "glog-0.4.0" ]]; then
+        # to generate config.guess and config.sub to support aarch64
+        rm -rf config.*
+        autoreconf -i
+
+        CPPFLAGS="-I${TP_INCLUDE_DIR} -fpermissive -fPIC" \
+            LDFLAGS="-L${TP_LIB_DIR}" \
+            ./configure --prefix="${TP_INSTALL_DIR}" --enable-frame-pointers 
--disable-shared --enable-static
 
-    CPPFLAGS="-I${TP_INCLUDE_DIR} -fpermissive -fPIC" \
+        make -j "${PARALLEL}"
+        make install
+    elif [[ "${GLOG_SOURCE}" == "glog-0.6.0" ]]; then
         LDFLAGS="-L${TP_LIB_DIR}" \
-        ./configure --prefix="${TP_INSTALL_DIR}" --enable-frame-pointers 
--disable-shared --enable-static
+            "${CMAKE_CMD}" -S . -B build -G "Unix Makefiles" 
-DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" \
+            -DCMAKE_BUILD_TYPE=Release \
+            -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
+            -DWITH_UNWIND=OFF \
+            -DBUILD_SHARED_LIBS=OFF
+
+        cmake --build build --target install
+    fi
 
-    make -j "${PARALLEL}"
-    make install
     strip_lib libglog.a
 }
 
@@ -673,7 +671,8 @@ build_re2() {
     check_if_source_exist "${RE2_SOURCE}"
     cd "${TP_SOURCE_DIR}/${RE2_SOURCE}"
 
-    "${CMAKE_CMD}" -DCMAKE_BUILD_TYPE=Release -G "${GENERATOR}" 
-DBUILD_SHARED_LIBS=0 -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}"
+    "${CMAKE_CMD}" -DCMAKE_BUILD_TYPE=Release -G "${GENERATOR}" 
-DBUILD_SHARED_LIBS=0 -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
+        -DCMAKE_PREFIX_PATH="${TP_INSTALL_DIR}" 
-DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}"
     "${BUILD_SYSTEM}" -j "${PARALLEL}" install
     strip_lib libre2.a
 }
@@ -813,8 +812,12 @@ build_brpc() {
 
     # Currently, BRPC can't be built for static libraries only (without .so). 
Therefore, we should add `-fPIC`
     # to the dependencies which are required by BRPC. Dependencies: zlib, 
glog, protobuf, leveldb
+    # If BUILD_SHARED_LIBS=OFF, on centos 5.4 will error: `undefined reference 
to `google::FlagRegisterer`, no error on MacOS.
+    # If glog is compiled before gflags, the above error will not exist, this 
works in glog 0.4,
+    # but glog 0.6 enforces dependency on gflags.
+    # glog must be enabled, otherwise error: `flag 'v' was defined more than 
once` (in files 'glog-0.6.0/src/vlog_is_on.cc' and 
'brpc-1.6.0/src/butil/logging.cc')
     LDFLAGS="${ldflags}" \
-        "${CMAKE_CMD}" -G "${GENERATOR}" -DBUILD_SHARED_LIBS=1 -DWITH_GLOG=ON 
-DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" \
+        "${CMAKE_CMD}" -G "${GENERATOR}" -DBUILD_SHARED_LIBS=ON -DWITH_GLOG=ON 
-DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" \
         -DCMAKE_LIBRARY_PATH="${TP_INSTALL_DIR}/lib64" 
-DCMAKE_INCLUDE_PATH="${TP_INSTALL_DIR}/include" \
         -DBUILD_BRPC_TOOLS=OFF \
         -DPROTOBUF_PROTOC_EXECUTABLE="${TP_INSTALL_DIR}/bin/protoc" ..
@@ -939,6 +942,56 @@ build_flatbuffers() {
     cp libflatbuffers.a ../../../installed/lib/libflatbuffers.a
 }
 
+# c-ares
+build_cares() {
+    check_if_source_exist "${CARES_SOURCE}"
+    cd "${TP_SOURCE_DIR}/${CARES_SOURCE}"
+
+    mkdir -p build
+    cd build
+    cmake -DCMAKE_BUILD_TYPE=Release \
+        -DCARES_STATIC=ON \
+        -DCARES_SHARED=OFF \
+        -DCARES_STATIC_PIC=ON \
+        -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" ..
+    make
+    make install
+}
+
+# grpc
+build_grpc() {
+    check_if_source_exist "${GRPC_SOURCE}"
+    cd "${TP_SOURCE_DIR}/${GRPC_SOURCE}"
+
+    mkdir -p cmake/build
+    cd cmake/build
+
+    cmake -DgRPC_INSTALL=ON \
+        -DgRPC_BUILD_TESTS=OFF \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" \
+        -DgRPC_CARES_PROVIDER=package \
+        -Dc-ares_DIR="${TP_INSTALL_DIR}" \
+        -DgRPC_ABSL_PROVIDER=package \
+        -Dabsl_DIR="${TP_INSTALL_DIR}" \
+        -DgRPC_PROTOBUF_PROVIDER=package \
+        -DProtobuf_DIR="${TP_INSTALL_DIR}" \
+        -DgRPC_RE2_PROVIDER=package \
+        -Dre2_DIR:STRING="${TP_INSTALL_DIR}" \
+        -DgRPC_SSL_PROVIDER=package \
+        -DOPENSSL_ROOT_DIR="${TP_INSTALL_DIR}" \
+        -DgRPC_ZLIB_PROVIDER=package \
+        -DZLIB_ROOT="${TP_INSTALL_DIR}" \
+        -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
+        ../..
+
+    make -j "${PARALLEL}"
+    make install
+
+    # for grpc > v1.55, cmake 2.22 does not support find_dependency, delete 
this line after cmake version upgrade.
+    # sed -i 's/find_dependency/find_package/g' 
"${TP_INSTALL_DIR}"/lib64/cmake/grpc/gRPCConfig.cmake
+}
+
 # arrow
 build_arrow() {
     check_if_source_exist "${ARROW_SOURCE}"
@@ -958,6 +1011,8 @@ build_arrow() {
     export ARROW_ZLIB_URL="${TP_SOURCE_DIR}/${ZLIB_NAME}"
     export ARROW_XSIMD_URL="${TP_SOURCE_DIR}/${XSIMD_NAME}"
     export ARROW_ORC_URL="${TP_SOURCE_DIR}/${ORC_NAME}"
+    export ARROW_GRPC_URL="${TP_SOURCE_DIR}/${GRPC_NAME}"
+    export ARROW_PROTOBUF_URL="${TP_SOURCE_DIR}/${PROTOBUF_NAME}"
 
     if [[ "${KERNEL}" != 'Darwin' ]]; then
         ldflags="-L${TP_LIB_DIR} -static-libstdc++ -static-libgcc"
@@ -973,22 +1028,38 @@ build_arrow() {
         -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" \
         -DCMAKE_INSTALL_LIBDIR=lib64 \
         -DARROW_BOOST_USE_SHARED=OFF \
+        -DARROW_WITH_GRPC=ON \
+        -DgRPC_SOURCE=SYSTEM \
+        -DgRPC_ROOT="${TP_INSTALL_DIR}" \
+        -DARROW_WITH_PROTOBUF=ON \
+        -DProtobuf_SOURCE=SYSTEM \
+        -DProtobuf_LIB="${TP_INSTALL_DIR}/lib/libprotoc.a" 
-DProtobuf_INCLUDE_DIR="${TP_INSTALL_DIR}/include" \
+        -DARROW_FLIGHT=ON \
+        -DARROW_FLIGHT_SQL=ON \
         -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}" \
+        -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}" \
+        -Dxsimd_SOURCE=BUNDLED \
         -DBrotli_SOURCE=BUNDLED \
+        -DARROW_LZ4_USE_SHARED=OFF \
         -DLZ4_LIB="${TP_INSTALL_DIR}/lib/liblz4.a" 
-DLZ4_INCLUDE_DIR="${TP_INSTALL_DIR}/include/lz4" \
         -DLz4_SOURCE=SYSTEM \
+        -DARROW_ZSTD_USE_SHARED=OFF \
         -DZSTD_LIB="${TP_INSTALL_DIR}/lib/libzstd.a" 
-DZSTD_INCLUDE_DIR="${TP_INSTALL_DIR}/include" \
         -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 \
+        -Djemalloc_SOURCE=BUNDLED \
+        -DARROW_THRIFT_USE_SHARED=OFF \
+        -DThrift_SOURCE=SYSTEM \
         -DThrift_ROOT="${TP_INSTALL_DIR}" ..
 
     "${BUILD_SYSTEM}" -j "${PARALLEL}"
@@ -1014,8 +1085,9 @@ build_abseil() {
         -DABSL_ENABLE_INSTALL=ON \
         -DBUILD_DEPS=ON \
         -DCMAKE_BUILD_TYPE=Release \
-        -DBUILD_SHARED_LIBS=OFF \
-        -DCMAKE_CXX_STANDARD=11
+        -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
+        -DABSL_PROPAGATE_CXX_STD=ON \
+        -DBUILD_SHARED_LIBS=OFF
 
     cmake --build "${BUILD_DIR}" -j "${PARALLEL}"
     cmake --install "${BUILD_DIR}" --prefix "${TP_INSTALL_DIR}"
@@ -1527,8 +1599,19 @@ build_opentelemetry() {
     mkdir -p "${BUILD_DIR}"
     cd "${BUILD_DIR}"
 
-    "${CMAKE_CMD}" -G "${GENERATOR}" 
-DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" 
-DCMAKE_PREFIX_PATH="${TP_INSTALL_DIR}" -DBUILD_TESTING=OFF \
-        -DWITH_OTLP=ON -DWITH_OTLP_GRPC=OFF -DWITH_OTLP_HTTP=ON 
-DWITH_ZIPKIN=ON -DWITH_EXAMPLES=OFF ..
+    CXXFLAGS="-O2 -I${TP_INCLUDE_DIR}" \
+        LDFLAGS="-L${TP_LIB_DIR}" \
+        "${CMAKE_CMD}" -G "${GENERATOR}" 
-DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" \
+        -DCMAKE_PREFIX_PATH="${TP_INSTALL_DIR}" \
+        -DBUILD_TESTING=OFF \
+        -DWITH_OTLP_GRPC=ON \
+        -DBUILD_SHARED_LIBS=OFF \
+        -DWITH_OTLP_HTTP=ON \
+        -DWITH_ABSEIL=ON \
+        -DWITH_FUNC_TESTS=OFF \
+        -DWITH_ZIPKIN=ON \
+        -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
+        -DWITH_EXAMPLES=OFF ..
 
     "${BUILD_SYSTEM}" -j "${PARALLEL}"
     "${BUILD_SYSTEM}" install
@@ -1629,10 +1712,11 @@ if [[ "${#packages[@]}" -eq 0 ]]; then
         lzo2
         zstd
         boost # must before thrift
-        protobuf
+        abseil
         gflags
         gtest
         glog
+        protobuf # after gtest
         rapidjson
         snappy
         gperftools
@@ -1649,8 +1733,9 @@ if [[ "${#packages[@]}" -eq 0 ]]; then
         librdkafka
         flatbuffers
         orc
+        cares
+        grpc # after cares, protobuf
         arrow
-        abseil
         s2
         bitshuffle
         croaringbitmap
diff --git a/thirdparty/download-thirdparty.sh 
b/thirdparty/download-thirdparty.sh
index 6a7e62d0b2..39b97b2c0b 100755
--- a/thirdparty/download-thirdparty.sh
+++ b/thirdparty/download-thirdparty.sh
@@ -231,12 +231,21 @@ cd -
 echo "Finished patching ${ABSEIL_SOURCE}"
 
 # glog patch
-cd "${TP_SOURCE_DIR}/${GLOG_SOURCE}"
-if [[ ! -f "${PATCHED_MARK}" ]]; then
-    patch -p1 <"${TP_PATCH_DIR}/glog-0.4.0.patch"
-    touch "${PATCHED_MARK}"
+if [[ "${GLOG_SOURCE}" == "glog-0.4.0" ]]; then
+    cd "${TP_SOURCE_DIR}/${GLOG_SOURCE}"
+    if [[ ! -f "${PATCHED_MARK}" ]]; then
+        patch -p1 <"${TP_PATCH_DIR}/glog-0.4.0.patch"
+        touch "${PATCHED_MARK}"
+    fi
+    cd -
+elif [[ "${GLOG_SOURCE}" == "glog-0.6.0" ]]; then
+    cd "${TP_SOURCE_DIR}/${GLOG_SOURCE}"
+    if [[ ! -f "${PATCHED_MARK}" ]]; then
+        patch -p1 <"${TP_PATCH_DIR}/glog-0.6.0.patch"
+        touch "${PATCHED_MARK}"
+    fi
+    cd -
 fi
-cd -
 echo "Finished patching ${GLOG_SOURCE}"
 
 # gtest patch
@@ -307,15 +316,16 @@ fi
 echo "Finished patching ${ROCKSDB_SOURCE}"
 
 # opentelemetry patch is used to solve the problem that threadlocal depends on 
GLIBC_2.18
+# fix error: unknown type name 'uint64_t'
 # see: https://github.com/apache/doris/pull/7911
-if [[ "${OPENTELEMETRY_SOURCE}" == "opentelemetry-cpp-1.8.3" ]]; then
+if [[ "${OPENTELEMETRY_SOURCE}" == "opentelemetry-cpp-1.10.0" ]]; then
     rm -rf 
"${TP_SOURCE_DIR}/${OPENTELEMETRY_SOURCE}/third_party/opentelemetry-proto"/*
     cp -r "${TP_SOURCE_DIR}/${OPENTELEMETRY_PROTO_SOURCE}"/* 
"${TP_SOURCE_DIR}/${OPENTELEMETRY_SOURCE}/third_party/opentelemetry-proto"
     mkdir -p 
"${TP_SOURCE_DIR}/${OPENTELEMETRY_SOURCE}/third_party/opentelemetry-proto/.git"
 
     cd "${TP_SOURCE_DIR}/${OPENTELEMETRY_SOURCE}"
     if [[ ! -f "${PATCHED_MARK}" ]]; then
-        patch -p1 <"${TP_PATCH_DIR}/opentelemetry-cpp-1.8.3.patch"
+        patch -p1 <"${TP_PATCH_DIR}/opentelemetry-cpp-1.10.0.patch"
         touch "${PATCHED_MARK}"
     fi
     cd -
@@ -323,10 +333,10 @@ fi
 echo "Finished patching ${OPENTELEMETRY_SOURCE}"
 
 # arrow patch is used to get the raw orc reader for filter prune.
-if [[ "${ARROW_SOURCE}" == "apache-arrow-7.0.0" ]]; then
+if [[ "${ARROW_SOURCE}" == "apache-arrow-12.0.1" ]]; then
     cd "${TP_SOURCE_DIR}/${ARROW_SOURCE}"
     if [[ ! -f "${PATCHED_MARK}" ]]; then
-        patch -p1 <"${TP_PATCH_DIR}/apache-arrow-7.0.0.patch"
+        patch -p1 <"${TP_PATCH_DIR}/apache-arrow-12.0.1.patch"
         touch "${PATCHED_MARK}"
     fi
     cd -
@@ -400,15 +410,3 @@ if [[ "${SIMDJSON_SOURCE}" = "simdjson-3.0.1" ]]; then
     cd -
 fi
 echo "Finished patching ${SIMDJSON_SOURCE}"
-
-if [[ "${BRPC_SOURCE}" == 'brpc-1.4.0' ]]; then
-    cd "${TP_SOURCE_DIR}/${BRPC_SOURCE}"
-    if [[ ! -f "${PATCHED_MARK}" ]]; then
-        for patch_file in "${TP_PATCH_DIR}"/brpc-*; do
-            patch -p1 <"${patch_file}"
-        done
-        touch "${PATCHED_MARK}"
-    fi
-    cd -
-fi
-echo "Finished patching ${BRPC_SOURCE}"
diff --git a/thirdparty/patches/absl.patch b/thirdparty/patches/absl.patch
index a5568ea6f7..4a16368a9b 100644
--- a/thirdparty/patches/absl.patch
+++ b/thirdparty/patches/absl.patch
@@ -1,11 +1,11 @@
 diff --git a/absl/container/internal/btree.h b/absl/container/internal/btree.h
-index 01f4e749..3ff8e798 100644
+index d734676a..43216318 100644
 --- a/absl/container/internal/btree.h
 +++ b/absl/container/internal/btree.h
-@@ -75,16 +75,6 @@ namespace absl {
+@@ -76,16 +76,6 @@ namespace absl {
  ABSL_NAMESPACE_BEGIN
  namespace container_internal {
- 
+
 -#ifdef ABSL_BTREE_ENABLE_GENERATIONS
 -#error ABSL_BTREE_ENABLE_GENERATIONS cannot be directly set
 -#elif defined(ABSL_HAVE_ADDRESS_SANITIZER) || \
@@ -18,4 +18,3 @@ index 01f4e749..3ff8e798 100644
 -
  template <typename Compare, typename T, typename U>
  using compare_result_t = absl::result_of_t<const Compare(const T &, const U 
&)>;
- 
diff --git a/thirdparty/patches/apache-arrow-7.0.0.patch 
b/thirdparty/patches/apache-arrow-12.0.1.patch
similarity index 83%
rename from thirdparty/patches/apache-arrow-7.0.0.patch
rename to thirdparty/patches/apache-arrow-12.0.1.patch
index 072ea9b567..9a4f12e14b 100644
--- a/thirdparty/patches/apache-arrow-7.0.0.patch
+++ b/thirdparty/patches/apache-arrow-12.0.1.patch
@@ -1,30 +1,30 @@
 diff --git a/cpp/src/arrow/adapters/orc/adapter.cc 
b/cpp/src/arrow/adapters/orc/adapter.cc
-index 03243e751..1eb9b2c81 100644
+index ac2a3db64..630d45798 100644
 --- a/cpp/src/arrow/adapters/orc/adapter.cc
 +++ b/cpp/src/arrow/adapters/orc/adapter.cc
 @@ -47,9 +47,6 @@
  #include "arrow/util/visibility.h"
  #include "orc/Exceptions.hh"
- 
+
 -// alias to not interfere with nested orc namespace
 -namespace liborc = orc;
 -
  #define ORC_THROW_NOT_OK(s)                   \
    do {                                        \
      Status _s = (s);                          \
-@@ -198,6 +195,8 @@ class ORCFileReader::Impl {
+@@ -202,6 +199,8 @@ class ORCFileReader::Impl {
      return Init();
    }
- 
+
 +  virtual liborc::Reader* GetRawORCReader() { return reader_.get(); }
 +
    Status Init() {
      int64_t nstripes = reader_->getNumberOfStripes();
      stripes_.resize(nstripes);
-@@ -504,6 +503,32 @@ class ORCFileReader::Impl {
+@@ -479,6 +478,32 @@ class ORCFileReader::Impl {
      return Status::OK();
    }
- 
+
 +  Result<std::shared_ptr<RecordBatchReader>> NextStripeReader(
 +      int64_t batch_size, const std::vector<std::string>& include_names) {
 +    if (current_row_ >= NumberOfRows()) {
@@ -51,32 +51,32 @@ index 03243e751..1eb9b2c81 100644
 +                                             pool_);
 +  }
 +
-   Status NextStripeReader(int64_t batch_size, 
std::shared_ptr<RecordBatchReader>* out) {
-     return NextStripeReader(batch_size, {}, out);
-   }
-@@ -531,6 +556,8 @@ Result<std::unique_ptr<ORCFileReader>> ORCFileReader::Open(
+   Result<std::shared_ptr<RecordBatchReader>> NextStripeReader(
+       int64_t batch_size, const std::vector<int>& include_indices) {
+     if (current_row_ >= NumberOfRows()) {
+@@ -544,6 +569,8 @@ Result<std::unique_ptr<ORCFileReader>> ORCFileReader::Open(
    return std::move(result);
  }
- 
+
 +liborc::Reader* ORCFileReader::GetRawORCReader() { return 
impl_->GetRawORCReader(); }
 +
  Result<std::shared_ptr<const KeyValueMetadata>> ORCFileReader::ReadMetadata() 
{
    return impl_->ReadMetadata();
  }
-@@ -653,6 +680,11 @@ Result<std::shared_ptr<RecordBatchReader>> 
ORCFileReader::NextStripeReader(
-   return reader;
+@@ -605,6 +632,11 @@ Result<std::shared_ptr<RecordBatchReader>> 
ORCFileReader::NextStripeReader(
+   return impl_->NextStripeReader(batch_size, include_indices);
  }
- 
+
 +Result<std::shared_ptr<RecordBatchReader>> ORCFileReader::NextStripeReader(
 +    int64_t batch_size, const std::vector<std::string>& include_names) {
 +  return impl_->NextStripeReader(batch_size, include_names);
 +}
 +
  int64_t ORCFileReader::NumberOfStripes() { return impl_->NumberOfStripes(); }
- 
+
  int64_t ORCFileReader::NumberOfRows() { return impl_->NumberOfRows(); }
 diff --git a/cpp/src/arrow/adapters/orc/adapter.h 
b/cpp/src/arrow/adapters/orc/adapter.h
-index 223efa515..04e6b0612 100644
+index 013be7860..7fd06bcb8 100644
 --- a/cpp/src/arrow/adapters/orc/adapter.h
 +++ b/cpp/src/arrow/adapters/orc/adapter.h
 @@ -30,6 +30,10 @@
@@ -87,23 +87,23 @@ index 223efa515..04e6b0612 100644
 +
 +// alias to not interfere with nested orc namespace
 +namespace liborc = orc;
- 
+
  namespace arrow {
  namespace adapters {
-@@ -51,6 +55,9 @@ class ARROW_EXPORT ORCFileReader {
-   static Status Open(const std::shared_ptr<io::RandomAccessFile>& file, 
MemoryPool* pool,
-                      std::unique_ptr<ORCFileReader>* reader);
- 
+@@ -53,6 +57,9 @@ class ARROW_EXPORT ORCFileReader {
+  public:
+   ~ORCFileReader();
+
 +  /// \brief Get ORC reader from inside.
 +  liborc::Reader* GetRawORCReader();
 +
    /// \brief Creates a new ORC reader
    ///
    /// \param[in] file the data source
-@@ -240,6 +247,19 @@ class ARROW_EXPORT ORCFileReader {
-   Result<std::shared_ptr<RecordBatchReader>> NextStripeReader(
-       int64_t batch_size, const std::vector<int>& include_indices);
- 
+@@ -174,6 +181,19 @@ class ARROW_EXPORT ORCFileReader {
+   Result<std::shared_ptr<RecordBatchReader>> GetRecordBatchReader(
+       int64_t batch_size, const std::vector<std::string>& include_names);
+
 +  /// \brief Get a stripe level record batch iterator with specified row count
 +  ///         in each record batch. NextStripeReader serves as a fine grain
 +  ///         alternative to ReadStripe which may cause OOM issue by loading
@@ -119,4 +119,4 @@ index 223efa515..04e6b0612 100644
 +
    /// \brief The number of stripes in the file
    int64_t NumberOfStripes();
- 
+
diff --git a/thirdparty/patches/brpc-1.5.0-clang16.patch 
b/thirdparty/patches/brpc-1.5.0-clang16.patch
deleted file mode 100644
index 42bb5bc5c9..0000000000
--- a/thirdparty/patches/brpc-1.5.0-clang16.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-diff --git a/src/bthread/task_group.cpp b/src/bthread/task_group.cpp
-index 6f5a4abd..e3aef91c 100644
---- a/src/bthread/task_group.cpp
-+++ b/src/bthread/task_group.cpp
-@@ -248,7 +248,7 @@ int TaskGroup::init(size_t runqueue_capacity) {
-     return 0;
- }
- 
--#if defined(__linux__) && defined(__aarch64__) && defined(__clang__)
-+#if defined(__clang__)
-     __attribute__((optnone))
- #endif
- void TaskGroup::task_runner(intptr_t skip_remained) {
-@@ -570,7 +570,7 @@ void TaskGroup::sched(TaskGroup** pg) {
-     sched_to(pg, next_tid);
- }
- 
--#if defined(__linux__) && defined(__aarch64__) && defined(__clang__)
-+#if defined(__clang__)
-     __attribute__((optnone))
- #endif
- void TaskGroup::sched_to(TaskGroup** pg, TaskMeta* next_meta) {
diff --git a/thirdparty/patches/brpc-1.5.0-gcc13.patch 
b/thirdparty/patches/brpc-1.5.0-gcc13.patch
deleted file mode 100644
index 0cf7988d1d..0000000000
--- a/thirdparty/patches/brpc-1.5.0-gcc13.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/src/brpc/http2.h b/src/brpc/http2.h
-index 9a40d40..69d3087 100644
---- a/src/brpc/http2.h
-+++ b/src/brpc/http2.h
-@@ -18,6 +18,7 @@
- #ifndef BAIDU_RPC_HTTP2_H
- #define BAIDU_RPC_HTTP2_H
- 
-+#include <cstdint>
- #include "brpc/http_status_code.h"
- 
- // To baidu-rpc developers: This is a header included by user, don't depend
diff --git a/thirdparty/patches/glog-0.6.0.patch 
b/thirdparty/patches/glog-0.6.0.patch
new file mode 100644
index 0000000000..1997f860cb
--- /dev/null
+++ b/thirdparty/patches/glog-0.6.0.patch
@@ -0,0 +1,354 @@
+diff --git a/src/glog/logging.h.in b/src/glog/logging.h.in
+index 95a573b..57d2e9b 100644
+--- a/src/glog/logging.h.in
++++ b/src/glog/logging.h.in
+@@ -425,6 +425,12 @@ typedef void(*CustomPrefixCallback)(std::ostream& s, 
const LogMessageInfo& l, vo
+   using fLS::FLAGS_##name
+ #endif
+
++// Set max log file num
++DECLARE_int32(log_filenum_quota);
++
++// Set log file split method
++DECLARE_string(log_split_method);
++
+ // Set whether appending a timestamp to the log file name
+ DECLARE_bool(timestamp_in_logfile_name);
+
+diff --git a/src/logging.cc b/src/logging.cc
+index 4028ccc..fd60fc3 100644
+--- a/src/logging.cc
++++ b/src/logging.cc
+@@ -34,6 +34,7 @@
+ #include <algorithm>
+ #include <cassert>
+ #include <iomanip>
++#include <list>
+ #include <string>
+ #ifdef HAVE_UNISTD_H
+ # include <unistd.h>  // For _exit.
+@@ -50,6 +51,7 @@
+ #include <iostream>
+ #include <cstdarg>
+ #include <cstdlib>
++#include <dirent.h>
+ #ifdef HAVE_PWD_H
+ # include <pwd.h>
+ #endif
+@@ -204,6 +206,12 @@ GLOG_DEFINE_string(log_backtrace_at, "",
+ GLOG_DEFINE_bool(log_utc_time, false,
+     "Use UTC time for logging.");
+
++GLOG_DEFINE_string(log_split_method, "day",
++                   "split log by size, day, hour");
++
++GLOG_DEFINE_int32(log_filenum_quota, 10,
++                  "max log file num in log dir");
++
+ // TODO(hamaji): consider windows
+ #define PATH_SEPARATOR '/'
+
+@@ -429,6 +437,15 @@ namespace  {
+
+ namespace {
+
++typedef struct filetime {
++    std::string name;
++    time_t time;
++
++    bool operator < (const struct filetime& o) const {
++        return o.time > time;
++    }
++} Filetime;
++
+ // Encapsulates all file-system related state
+ class LogFileObject : public base::Logger {
+  public:
+@@ -459,6 +476,7 @@ class LogFileObject : public base::Logger {
+   // can avoid grabbing a lock.  Usually Flush() calls it after
+   // acquiring lock_.
+   void FlushUnlocked();
++  void CheckFileNumQuota();
+
+  private:
+   static const uint32 kRolloverAttemptFrequency = 0x20;
+@@ -476,6 +494,9 @@ class LogFileObject : public base::Logger {
+   unsigned int rollover_attempt_;
+   int64 next_flush_time_;         // cycle count at which to flush log
+   WallTime start_time_;
++  std::list<Filetime> file_list_;
++  bool inited_;
++  struct ::tm tm_time_;
+
+   // Actually create a logfile using the value of base_filename_ and the
+   // optional argument time_pid_string
+@@ -665,7 +686,7 @@ inline void LogDestination::FlushLogFiles(int 
min_severity) {
+   // all this stuff.
+   MutexLock l(&log_mutex);
+   for (int i = min_severity; i < NUM_SEVERITIES; i++) {
+-    LogDestination* log = log_destination(i);
++    LogDestination* log = log_destinations_[i];
+     if (log != NULL) {
+       log->logger_->Flush();
+     }
+@@ -876,9 +897,12 @@ inline void LogDestination::LogToAllLogfiles(LogSeverity 
severity,
+   } else if (FLAGS_logtostderr) {  // global flag: never log to file
+     ColoredWriteToStderr(severity, message, len);
+   } else {
+-    for (int i = severity; i >= 0; --i) {
+-      LogDestination::MaybeLogToLogfile(i, timestamp, message, len);
+-    }
++    if (severity >= 1) {
++        LogDestination::MaybeLogToLogfile(1, timestamp, message, len);
++        LogDestination::MaybeLogToLogfile(0, timestamp, message, len);
++    } else if (severity == 0) {
++        LogDestination::MaybeLogToLogfile(0, timestamp, message, len);
++    } else {}
+   }
+ }
+
+@@ -976,6 +1000,7 @@ LogFileObject::LogFileObject(LogSeverity severity,
+     file_length_(0),
+     rollover_attempt_(kRolloverAttemptFrequency-1),
+     next_flush_time_(0),
++    inited_(false),
+     start_time_(WallTime_Now()) {
+   assert(severity >= 0);
+   assert(severity < NUM_SEVERITIES);
+@@ -1045,11 +1070,11 @@ bool LogFileObject::CreateLogfile(const string& 
time_pid_string) {
+   string_filename += filename_extension_;
+   const char* filename = string_filename.c_str();
+   //only write to files, create if non-existant.
+-  int flags = O_WRONLY | O_CREAT;
+-  if (FLAGS_timestamp_in_logfile_name) {
+-    //demand that the file is unique for our timestamp (fail if it exists).
+-    flags = flags | O_EXCL;
+-  }
++  int flags = O_WRONLY | O_CREAT | O_APPEND;
++  // if (FLAGS_timestamp_in_logfile_name) {
++  //   //demand that the file is unique for our timestamp (fail if it exists).
++  //   flags = flags | O_EXCL;
++  // }
+   int fd = open(filename, flags, FLAGS_logfile_mode);
+   if (fd == -1) return false;
+ #ifdef HAVE_FCNTL
+@@ -1097,6 +1122,10 @@ bool LogFileObject::CreateLogfile(const string& 
time_pid_string) {
+     }
+   }
+ #endif
++  Filetime ft;
++  ft.name = string_filename;
++  file_list_.push_back(ft);
++
+   // We try to create a symlink called <program_name>.<severity>,
+   // which is easier to use.  (Every time we create a new logfile,
+   // we destroy the old symlink and create a new one, so it always
+@@ -1138,6 +1167,59 @@ bool LogFileObject::CreateLogfile(const string& 
time_pid_string) {
+   return true;  // Everything worked
+ }
+
++void LogFileObject::CheckFileNumQuota() {
++    struct dirent *entry;
++    DIR *dp;
++
++    const vector<string> & log_dirs = GetLoggingDirectories();
++    if (log_dirs.size() < 1) return;
++
++    //fprintf(stderr, "log dir: %s\n", log_dirs[0].c_str());
++
++    // list file in log dir
++    dp = opendir(log_dirs[0].c_str());
++    if (dp == NULL) {
++        fprintf(stderr, "open log dir %s fail\n", log_dirs[0].c_str());
++        return;
++    }
++
++    file_list_.clear();
++    while ((entry = readdir(dp)) != NULL) {
++        if (DT_DIR == entry->d_type ||
++                DT_LNK == entry->d_type) {
++            continue;
++        }
++        std::string filename = std::string(entry->d_name);
++        //fprintf(stderr, "filename: %s\n", filename.c_str());
++
++        if (filename.find(symlink_basename_ + '.' + 
LogSeverityNames[severity_]) == 0) {
++            std::string filepath = log_dirs[0] + "/" + filename;
++
++            struct stat fstat;
++            if (::stat(filepath.c_str(), &fstat) < 0) {
++                fprintf(stderr, "state %s fail\n", filepath.c_str());
++                closedir(dp);
++                return;
++            }
++            //fprintf(stderr, "filepath: %s\n", filepath.c_str());
++
++            Filetime file_time;
++            file_time.time = fstat.st_mtime;
++            file_time.name = filepath;
++            file_list_.push_back(file_time);
++        }
++    }
++    closedir(dp);
++
++    file_list_.sort();
++
++    while (FLAGS_log_filenum_quota > 0 && file_list_.size() >= 
FLAGS_log_filenum_quota) {
++       // fprintf(stderr, "delete %s\n", file_list_.front().name.c_str());
++        unlink(file_list_.front().name.c_str());
++        file_list_.pop_front();
++    }
++}
++
+ void LogFileObject::Write(bool force_flush,
+                           time_t timestamp,
+                           const char* message,
+@@ -1149,13 +1231,55 @@ void LogFileObject::Write(bool force_flush,
+     return;
+   }
+
+-  if (file_length_ >> 20U >= MaxLogSize() || PidHasChanged()) {
++  struct ::tm tm_time;
++
++  bool is_split = false;
++  if ("day" == FLAGS_log_split_method) {
++      localtime_r(&timestamp, &tm_time);
++      if (tm_time.tm_year != tm_time_.tm_year
++              || tm_time.tm_mon != tm_time_.tm_mon
++              || tm_time.tm_mday != tm_time_.tm_mday) {
++          is_split = true;
++      }
++  } else if ("hour" == FLAGS_log_split_method) {
++      localtime_r(&timestamp, &tm_time);
++      if (tm_time.tm_year != tm_time_.tm_year
++              || tm_time.tm_mon != tm_time_.tm_mon
++              || tm_time.tm_mday != tm_time_.tm_mday
++              || tm_time.tm_hour != tm_time_.tm_hour) {
++          is_split = true;
++      }
++  } else if (file_length_ >> 20U >= MaxLogSize()) {
++      // PidHasChanged()) {
++      is_split = true;
++  }
++
++  if (is_split) {
+     if (file_ != NULL) fclose(file_);
+     file_ = NULL;
+     file_length_ = bytes_since_flush_ = dropped_mem_length_ = 0;
+     rollover_attempt_ = kRolloverAttemptFrequency - 1;
+   }
+
++  if ((file_ == NULL) && (!inited_) && (FLAGS_log_split_method == "size")) {
++    CheckFileNumQuota();
++    const char* filename = file_list_.back().name.c_str();
++    int fd = open(filename, O_WRONLY | O_CREAT | O_APPEND, 
FLAGS_logfile_mode);
++    if (fd != -1) {
++#ifdef HAVE_FCNTL
++      // Mark the file close-on-exec. We don't really care if this fails
++      fcntl(fd, F_SETFD, FD_CLOEXEC);
++#endif
++      file_ = fopen(filename, "a+"); // Read and append a FILE*.
++      if (file_ == NULL) {      // Man, we're screwed!, try to create new log 
file
++        close(fd);
++      }
++      fseek(file_, 0, SEEK_END);
++      file_length_ = bytes_since_flush_ = ftell(file_);
++      inited_ = true;
++    }
++  }
++
+   // If there's no destination file, make one before outputting
+   if (file_ == NULL) {
+     // Try to rollover the log file every 32 log messages.  The only time
+@@ -1164,7 +1288,15 @@ void LogFileObject::Write(bool force_flush,
+     if (++rollover_attempt_ != kRolloverAttemptFrequency) return;
+     rollover_attempt_ = 0;
+
+-    struct ::tm tm_time;
++    if (!inited_) {
++        CheckFileNumQuota();
++        inited_ = true;
++    } else {
++        while (FLAGS_log_filenum_quota > 0 && file_list_.size() >= 
FLAGS_log_filenum_quota) {
++            unlink(file_list_.front().name.c_str());
++            file_list_.pop_front();
++        }
++    }
+     if (FLAGS_log_utc_time) {
+       gmtime_r(&timestamp, &tm_time);
+     } else {
+@@ -1176,13 +1308,19 @@ void LogFileObject::Write(bool force_flush,
+     time_pid_stream.fill('0');
+     time_pid_stream << 1900+tm_time.tm_year
+                     << setw(2) << 1+tm_time.tm_mon
+-                    << setw(2) << tm_time.tm_mday
+-                    << '-'
+-                    << setw(2) << tm_time.tm_hour
+-                    << setw(2) << tm_time.tm_min
+-                    << setw(2) << tm_time.tm_sec
+-                    << '.'
+-                    << GetMainThreadPid();
++                    << setw(2) << tm_time.tm_mday;
++
++    if ("hour" == FLAGS_log_split_method) {
++        time_pid_stream << setw(2) << tm_time.tm_hour;
++    } else if ("day" != FLAGS_log_split_method) {
++        time_pid_stream << '-'
++            << setw(2) << tm_time.tm_hour
++            << setw(2) << tm_time.tm_min
++            << setw(2) << tm_time.tm_sec;
++    }
++
++    tm_time_ = tm_time;
++
+     const string& time_pid_string = time_pid_stream.str();
+
+     if (base_filename_selected_) {
+@@ -1216,9 +1354,7 @@ void LogFileObject::Write(bool force_flush,
+       // deadlock. Simply use a name like invalid-user.
+       if (uidname.empty()) uidname = "invalid-user";
+
+-      stripped_filename = stripped_filename+'.'+hostname+'.'
+-                          +uidname+".log."
+-                          +LogSeverityNames[severity_]+'.';
++      stripped_filename = stripped_filename + "." + 
LogSeverityNames[severity_] + ".log.";
+       // We're going to (potentially) try to put logs in several different 
dirs
+       const vector<string> & log_dirs = GetLoggingDirectories();
+
+@@ -1243,36 +1379,6 @@ void LogFileObject::Write(bool force_flush,
+       }
+     }
+
+-    // Write a header message into the log file
+-    ostringstream file_header_stream;
+-    file_header_stream.fill('0');
+-    file_header_stream << "Log file created at: "
+-                       << 1900+tm_time.tm_year << '/'
+-                       << setw(2) << 1+tm_time.tm_mon << '/'
+-                       << setw(2) << tm_time.tm_mday
+-                       << ' '
+-                       << setw(2) << tm_time.tm_hour << ':'
+-                       << setw(2) << tm_time.tm_min << ':'
+-                       << setw(2) << tm_time.tm_sec << (FLAGS_log_utc_time ? 
" UTC\n" : "\n")
+-                       << "Running on machine: "
+-                       << LogDestination::hostname() << '\n';
+-
+-    if(!g_application_fingerprint.empty()) {
+-      file_header_stream << "Application fingerprint: " << 
g_application_fingerprint << '\n';
+-    }
+-    const char* const date_time_format = FLAGS_log_year_in_prefix
+-                                             ? "yyyymmdd hh:mm:ss.uuuuuu"
+-                                             : "mmdd hh:mm:ss.uuuuuu";
+-    file_header_stream << "Running duration (h:mm:ss): "
+-                       << PrettyDuration(static_cast<int>(WallTime_Now() - 
start_time_)) << '\n'
+-                       << "Log line format: [IWEF]" << date_time_format << " "
+-                       << "threadid file:line] msg" << '\n';
+-    const string& file_header_string = file_header_stream.str();
+-
+-    const size_t header_len = file_header_string.size();
+-    fwrite(file_header_string.data(), 1, header_len, file_);
+-    file_length_ += header_len;
+-    bytes_since_flush_ += header_len;
+   }
+
+   // Write to LOG file
\ No newline at end of file
diff --git a/thirdparty/patches/opentelemetry-cpp-1.8.3.patch 
b/thirdparty/patches/opentelemetry-cpp-1.10.0.patch
similarity index 93%
rename from thirdparty/patches/opentelemetry-cpp-1.8.3.patch
rename to thirdparty/patches/opentelemetry-cpp-1.10.0.patch
index 534d6056f6..b0e7102a6d 100644
--- a/thirdparty/patches/opentelemetry-cpp-1.8.3.patch
+++ b/thirdparty/patches/opentelemetry-cpp-1.10.0.patch
@@ -1,21 +1,6 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index f4fa0649..a64e74bc 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -118,9 +118,8 @@ option(WITH_GSL
- 
- option(WITH_ABSEIL "Whether to use Abseil for C++latest features" OFF)
- 
-+set(OPENTELEMETRY_INSTALL_default ON)
- if(NOT CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
--  set(OPENTELEMETRY_INSTALL_default ON)
--else()
-   set(OPENTELEMETRY_INSTALL_default OFF)
- endif()
- option(OPENTELEMETRY_INSTALL "Whether to install opentelemetry targets"
 diff --git a/api/include/opentelemetry/common/threadlocal.h 
b/api/include/opentelemetry/common/threadlocal.h
 new file mode 100644
-index 00000000..23a39e14
+index 00000000..623a6454
 --- /dev/null
 +++ b/api/include/opentelemetry/common/threadlocal.h
 @@ -0,0 +1,123 @@
@@ -26,12 +11,12 @@ index 00000000..23a39e14
 +
 +#include "opentelemetry/version.h"
 +
-+//
++
 +// GCC can be told that a certain branch is not likely to be taken (for
 +// instance, a CHECK failure), and use that information in static analysis.
 +// Giving it this information can help it optimize for the common case in
 +// the absence of better information (ie. -fprofile-arcs).
-+//
++
 +#define LIKELY(expr) __builtin_expect(!!(expr), 1)
 +#define UNLIKELY(expr) __builtin_expect(!!(expr), 0)
 +
@@ -144,27 +129,27 @@ index 00000000..23a39e14
 +OPENTELEMETRY_END_NAMESPACE
 \ No newline at end of file
 diff --git a/api/include/opentelemetry/context/runtime_context.h 
b/api/include/opentelemetry/context/runtime_context.h
-index bec96a9a..2349a29c 100644
+index 2cd5b0ff..9e3c5c47 100644
 --- a/api/include/opentelemetry/context/runtime_context.h
 +++ b/api/include/opentelemetry/context/runtime_context.h
 @@ -5,6 +5,7 @@
- 
+
  #include "opentelemetry/common/macros.h"
  #include "opentelemetry/context/context.h"
 +#include "opentelemetry/common/threadlocal.h"
- 
- OPENTELEMETRY_BEGIN_NAMESPACE
- namespace context
-@@ -189,7 +190,7 @@ class ThreadLocalContextStorage : public 
RuntimeContextStorage
+ #include "opentelemetry/nostd/shared_ptr.h"
+ #include "opentelemetry/nostd/string_view.h"
+ #include "opentelemetry/nostd/unique_ptr.h"
+@@ -193,7 +194,7 @@ class ThreadLocalContextStorage : public 
RuntimeContextStorage
    ThreadLocalContextStorage() noexcept = default;
- 
+
    // Return the current context.
 -  Context GetCurrent() noexcept override { return GetStack().Top(); }
 +  Context GetCurrent() noexcept override { return GetStack()->Top(); }
- 
+
    // Resets the context to the value previous to the passed in token. This 
will
    // also detach all child contexts of the passed in token.
-@@ -197,23 +198,23 @@ class ThreadLocalContextStorage : public 
RuntimeContextStorage
+@@ -201,23 +202,23 @@ class ThreadLocalContextStorage : public 
RuntimeContextStorage
    bool Detach(Token &token) noexcept override
    {
      // In most cases, the context to be detached is on the top of the stack.
@@ -175,26 +160,26 @@ index bec96a9a..2349a29c 100644
 +      GetStack()->Pop();
        return true;
      }
- 
+
 -    if (!GetStack().Contains(token))
 +    if (!GetStack()->Contains(token))
      {
        return false;
      }
- 
+
 -    while (!(token == GetStack().Top()))
 +    while (!(token == GetStack()->Top()))
      {
 -      GetStack().Pop();
 +      GetStack()->Pop();
      }
- 
+
 -    GetStack().Pop();
 +    GetStack()->Pop();
- 
+
      return true;
    }
-@@ -222,14 +223,14 @@ class ThreadLocalContextStorage : public 
RuntimeContextStorage
+@@ -226,14 +227,14 @@ class ThreadLocalContextStorage : public 
RuntimeContextStorage
    // that can be used to reset to the previous Context.
    nostd::unique_ptr<Token> Attach(const Context &context) noexcept override
    {
@@ -202,19 +187,19 @@ index bec96a9a..2349a29c 100644
 +    GetStack()->Push(context);
      return CreateToken(context);
    }
- 
+
 -private:
    // A nested class to store the attached contexts in a stack.
    class Stack
    {
 +  public:
      friend class ThreadLocalContextStorage;
- 
+
      Stack() noexcept : size_(0), capacity_(0), base_(nullptr) {}
-@@ -316,9 +317,10 @@ class ThreadLocalContextStorage : public 
RuntimeContextStorage
+@@ -320,9 +321,10 @@ class ThreadLocalContextStorage : public 
RuntimeContextStorage
      Context *base_;
    };
- 
+
 -  OPENTELEMETRY_API_SINGLETON Stack &GetStack()
 +  OPENTELEMETRY_API_SINGLETON Stack *GetStack()
    {
@@ -231,20 +216,32 @@ index 2e8f3bb6..224e6463 100644
 @@ -1,7 +1,7 @@
  # Copyright The OpenTelemetry Authors
  # SPDX-License-Identifier: Apache-2.0
- 
+
 -add_library(opentelemetry_sdk INTERFACE)
 +add_library(opentelemetry_sdk INTERFACE 
../api/include/opentelemetry/common/threadlocal.h)
  target_include_directories(
    opentelemetry_sdk
    INTERFACE "$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include>"
+diff --git a/sdk/include/opentelemetry/sdk/metrics/data/circular_buffer.h 
b/sdk/include/opentelemetry/sdk/metrics/data/circular_buffer.h
+index 1608a3a0..6af2bd06 100644
+--- a/sdk/include/opentelemetry/sdk/metrics/data/circular_buffer.h
++++ b/sdk/include/opentelemetry/sdk/metrics/data/circular_buffer.h
+@@ -7,6 +7,7 @@
+
+ #include <limits>
+ #include <vector>
++#include <stdint.h>
+
+ OPENTELEMETRY_BEGIN_NAMESPACE
+ namespace sdk
 diff --git a/sdk/src/common/CMakeLists.txt b/sdk/src/common/CMakeLists.txt
-index b23a93e8..1cc0e0f2 100644
+index 7bb645f5..041d8ede 100644
 --- a/sdk/src/common/CMakeLists.txt
 +++ b/sdk/src/common/CMakeLists.txt
 @@ -1,7 +1,7 @@
  # Copyright The OpenTelemetry Authors
  # SPDX-License-Identifier: Apache-2.0
- 
+
 -set(COMMON_SRCS random.cc core.cc global_log_handler.cc env_variables.cc)
 +set(COMMON_SRCS random.cc core.cc global_log_handler.cc env_variables.cc 
threadlocal.cc)
  if(WIN32)
@@ -256,26 +253,26 @@ index 77b88cfa..dc71f9c1 100644
 +++ b/sdk/src/common/random.cc
 @@ -3,6 +3,7 @@
  // SPDX-License-Identifier: Apache-2.0
- 
+
  #include "src/common/random.h"
 +#include "opentelemetry/common/threadlocal.h"
  #include "src/common/platform/fork.h"
- 
+
  #include <cstring>
 @@ -29,33 +30,37 @@ class TlsRandomNumberGenerator
      platform::AtFork(nullptr, nullptr, OnFork);
    }
- 
+
 -  static FastRandomNumberGenerator &engine() noexcept { return engine_; }
 +  static FastRandomNumberGenerator *engine() noexcept { return engine_; }
- 
+
  private:
 -  static thread_local FastRandomNumberGenerator engine_;
 +  // static thread_local FastRandomNumberGenerator engine_;
 +  DECLARE_STATIC_THREAD_LOCAL_TELEMETRY(FastRandomNumberGenerator, engine_);
- 
+
    static void OnFork() noexcept { Seed(); }
- 
+
    static void Seed() noexcept
    {
 +    INIT_STATIC_THREAD_LOCAL_TELEMETRY(FastRandomNumberGenerator, engine_);
@@ -285,12 +282,12 @@ index 77b88cfa..dc71f9c1 100644
 +    engine_->seed(seed_seq);
    }
  };
- 
+
 -thread_local FastRandomNumberGenerator TlsRandomNumberGenerator::engine_{};
 +// thread_local FastRandomNumberGenerator TlsRandomNumberGenerator::engine_{};
 +DEFINE_STATIC_THREAD_LOCAL_TELEMETRY(FastRandomNumberGenerator, 
TlsRandomNumberGenerator, engine_);
  }  // namespace
- 
+
 -FastRandomNumberGenerator &Random::GetRandomNumberGenerator() noexcept
 +FastRandomNumberGenerator *Random::GetRandomNumberGenerator() noexcept
  {
@@ -299,13 +296,13 @@ index 77b88cfa..dc71f9c1 100644
 +  BLOCK_STATIC_THREAD_LOCAL_TELEMTRY(TlsRandomNumberGenerator, 
random_number_generator);
    return TlsRandomNumberGenerator::engine();
  }
- 
+
  uint64_t Random::GenerateRandom64() noexcept
  {
 -  return GetRandomNumberGenerator()();
 +  return GetRandomNumberGenerator()->operator()();
  }
- 
+
  void Random::GenerateRandomBuffer(opentelemetry::nostd::span<uint8_t> buffer) 
noexcept
 diff --git a/sdk/src/common/random.h b/sdk/src/common/random.h
 index ecd6dabc..1aaa2204 100644
@@ -409,4 +406,4 @@ index 00000000..ec2038b4
 +}
 +}  // namespace internal_threadlocal
 +OPENTELEMETRY_END_NAMESPACE
-\ No newline at end of file
+\ No newline at end of file
\ No newline at end of file
diff --git a/thirdparty/vars.sh b/thirdparty/vars.sh
index 435434927f..8fdafe184b 100644
--- a/thirdparty/vars.sh
+++ b/thirdparty/vars.sh
@@ -73,10 +73,11 @@ THRIFT_SOURCE=thrift-0.16.0
 THRIFT_MD5SUM="44cf1b54b4ec1890576c85804acfa637"
 
 # protobuf
-PROTOBUF_DOWNLOAD="https://github.com/google/protobuf/archive/v3.15.0.tar.gz";
-PROTOBUF_NAME=protobuf-3.15.0.tar.gz
-PROTOBUF_SOURCE=protobuf-3.15.0
-PROTOBUF_MD5SUM="3fb6c41f7b3c621424543f43d54baa42"
+# brpc is not yet compatible with protobuf >= 22
+PROTOBUF_DOWNLOAD="https://github.com/protocolbuffers/protobuf/releases/download/v21.11/protobuf-all-21.11.tar.gz";
+PROTOBUF_NAME="protobuf-all-21.11.tar.gz"
+PROTOBUF_SOURCE=protobuf-21.11
+PROTOBUF_MD5SUM="b3b104f0374802e1add5d5d7a5a845ac"
 
 # gflags
 GFLAGS_DOWNLOAD="https://github.com/gflags/gflags/archive/v2.2.2.tar.gz";
@@ -85,10 +86,10 @@ GFLAGS_SOURCE=gflags-2.2.2
 GFLAGS_MD5SUM="1a865b93bacfa963201af3f75b7bd64c"
 
 # glog
-GLOG_DOWNLOAD="https://github.com/google/glog/archive/v0.4.0.tar.gz";
-GLOG_NAME=glog-0.4.0.tar.gz
-GLOG_SOURCE=glog-0.4.0
-GLOG_MD5SUM="0daea8785e6df922d7887755c3d100d0"
+GLOG_DOWNLOAD="https://github.com/google/glog/archive/refs/tags/v0.6.0.tar.gz";
+GLOG_NAME="glog-v0.6.0.tar.gz"
+GLOG_SOURCE=glog-0.6.0
+GLOG_MD5SUM="c98a6068bc9b8ad9cebaca625ca73aa2"
 
 # gtest
 
GTEST_DOWNLOAD="https://github.com/google/googletest/archive/release-1.11.0.tar.gz";
@@ -115,10 +116,10 @@ ZLIB_SOURCE=zlib-1.2.11
 ZLIB_MD5SUM="1c9f62f0778697a09d36121ead88e08e"
 
 # lz4
-LZ4_DOWNLOAD="https://github.com/lz4/lz4/archive/v1.9.3.tar.gz";
-LZ4_NAME=lz4-1.9.3.tar.gz
-LZ4_SOURCE=lz4-1.9.3
-LZ4_MD5SUM="3a1ab1684e14fc1afc66228ce61b2db3"
+LZ4_DOWNLOAD="https://github.com/lz4/lz4/archive/v1.9.4.tar.gz";
+LZ4_NAME=lz4-1.9.4.tar.gz
+LZ4_SOURCE=lz4-1.9.4
+LZ4_MD5SUM="e9286adb64040071c5e23498bf753261"
 
 # bzip
 BZIP_DOWNLOAD="https://fossies.org/linux/misc/bzip2-1.0.8.tar.gz";
@@ -127,7 +128,7 @@ BZIP_SOURCE=bzip2-1.0.8
 BZIP_MD5SUM="67e051268d0c475ea773822f7500d0e5"
 
 # lzo2
-LZO2_DOWNLOAD="http://www.oberhumer.com/opensource/lzo/download/lzo-2.10.tar.gz";
+LZO2_DOWNLOAD="https://fossies.org/linux/misc/lzo-2.10.tar.gz";
 LZO2_NAME=lzo-2.10.tar.gz
 LZO2_SOURCE=lzo-2.10
 LZO2_MD5SUM="39d3f3f9c55c87b1e5d6888e1420f4b5"
@@ -139,10 +140,10 @@ 
RAPIDJSON_SOURCE=rapidjson-1a803826f1197b5e30703afe4b9c0e7dd48074f5
 RAPIDJSON_MD5SUM="f2212a77e055a15501477f1e390007ea"
 
 # curl
-CURL_DOWNLOAD="https://curl.se/download/curl-7.79.0.tar.gz";
-CURL_NAME=curl-7.79.0.tar.gz
-CURL_SOURCE=curl-7.79.0
-CURL_MD5SUM="b40e4dc4bbc9e109c330556cd58c8ec8"
+CURL_DOWNLOAD="https://curl.se/download/curl-8.2.1.tar.gz";
+CURL_NAME="curl-8.2.1.tar.gz"
+CURL_SOURCE=curl-8.2.1
+CURL_MD5SUM="b25588a43556068be05e1624e0e74d41"
 
 # RE2
 RE2_DOWNLOAD="https://github.com/google/re2/archive/2021-02-02.tar.gz";
@@ -197,10 +198,10 @@ LEVELDB_SOURCE=leveldb-1.23
 LEVELDB_MD5SUM="afbde776fb8760312009963f09a586c7"
 
 # brpc
-BRPC_DOWNLOAD="https://github.com/apache/brpc/archive/refs/tags/1.4.0.tar.gz";
-BRPC_NAME="brpc-1.4.0.tar.gz"
-BRPC_SOURCE="brpc-1.4.0"
-BRPC_MD5SUM="6af9d50822c33a3abc56a1ec0af0e0bc"
+BRPC_DOWNLOAD="https://github.com/apache/brpc/archive/refs/tags/1.6.0.tar.gz";
+BRPC_NAME="brpc-1.6.0.tar.gz"
+BRPC_SOURCE="brpc-1.6.0"
+BRPC_MD5SUM="0d37cea25bd006e89806f461ef7e39ba"
 
 # rocksdb
 ROCKSDB_DOWNLOAD="https://github.com/facebook/rocksdb/archive/v5.14.2.tar.gz";
@@ -221,10 +222,10 @@ LIBRDKAFKA_SOURCE=librdkafka-1.8.2
 LIBRDKAFKA_MD5SUM="0abec0888d10c9553cdcbcbf9172d558"
 
 # zstd
-ZSTD_DOWNLOAD="https://github.com/facebook/zstd/releases/download/v1.5.2/zstd-1.5.2.tar.gz";
-ZSTD_NAME=zstd-1.5.2.tar.gz
-ZSTD_SOURCE=zstd-1.5.2
-ZSTD_MD5SUM="072b10f71f5820c24761a65f31f43e73"
+ZSTD_DOWNLOAD="https://github.com/facebook/zstd/releases/download/v1.5.5/zstd-1.5.5.tar.gz";
+ZSTD_NAME=zstd-1.5.5.tar.gz
+ZSTD_SOURCE=zstd-1.5.5
+ZSTD_MD5SUM="63251602329a106220e0a5ad26ba656f"
 
 # brotli
 BROTLI_DOWNLOAD="https://github.com/google/brotli/archive/v1.0.9.tar.gz";
@@ -238,17 +239,30 @@ FLATBUFFERS_NAME=flatbuffers-2.0.0.tar.gz
 FLATBUFFERS_SOURCE=flatbuffers-2.0.0
 FLATBUFFERS_MD5SUM="a27992324c3cbf86dd888268a23d17bd"
 
+# c-ares
+CARES_DOWNLOAD="https://github.com/c-ares/c-ares/releases/download/cares-1_19_1/c-ares-1.19.1.tar.gz";
+CARES_NAME="c-ares-1.19.1.tar.gz"
+CARES_SOURCE=c-ares-1.19.1
+CARES_MD5SUM="dafc5825a92dc907e144570e4e75a908"
+
+# grpc
+# grpc v1.55 and above require protobuf >= 22
+GRPC_DOWNLOAD="https://github.com/grpc/grpc/archive/refs/tags/v1.54.3.tar.gz";
+GRPC_NAME="grpc-v1.54.3.tar.gz"
+GRPC_SOURCE=grpc-1.54.3
+GRPC_MD5SUM="af00a2edeae0f02bb25917cc3473b7de"
+
 # arrow
-ARROW_DOWNLOAD="https://archive.apache.org/dist/arrow/arrow-7.0.0/apache-arrow-7.0.0.tar.gz";
-ARROW_NAME="apache-arrow-7.0.0.tar.gz"
-ARROW_SOURCE="apache-arrow-7.0.0"
-ARROW_MD5SUM="316ade159901646849b3b4760fa52816"
+ARROW_DOWNLOAD="https://github.com/apache/arrow/archive/refs/tags/apache-arrow-13.0.0.tar.gz";
+ARROW_NAME="apache-arrow-13.0.0.tar.gz"
+ARROW_SOURCE="arrow-apache-arrow-13.0.0"
+ARROW_MD5SUM="8ec1ec6a119514bcaea1cf7aabc9df1f"
 
 # Abseil
-ABSEIL_DOWNLOAD="https://github.com/abseil/abseil-cpp/archive/refs/tags/20220623.1.tar.gz";
-ABSEIL_NAME=abseil-cpp-20220623.1.tar.gz
-ABSEIL_SOURCE=abseil-cpp-20220623.1
-ABSEIL_MD5SUM="2aea7c1171c4c280f755de170295afd6"
+ABSEIL_DOWNLOAD="https://github.com/abseil/abseil-cpp/archive/refs/tags/20230125.3.tar.gz";
+ABSEIL_NAME="abseil-cpp-20230125.3.tar.gz"
+ABSEIL_SOURCE=abseil-cpp-20230125.3
+ABSEIL_MD5SUM="9b6dae642c4bd92f007ab2c148bc0498"
 
 # S2
 
S2_DOWNLOAD="https://github.com/google/s2geometry/archive/refs/tags/v0.10.0.tar.gz";
@@ -281,16 +295,16 @@ PARALLEL_HASHMAP_SOURCE="parallel-hashmap-1.3.8"
 PARALLEL_HASHMAP_MD5SUM="1b8130d0b4f656257ef654699bfbf941"
 
 # orc
-ORC_DOWNLOAD="https://archive.apache.org/dist/orc/orc-1.7.2/orc-1.7.2.tar.gz";
-ORC_NAME=orc-1.7.2.tar.gz
-ORC_SOURCE=orc-1.7.2
-ORC_MD5SUM="6cab37935eacdec7d078d327746a8578"
+ORC_DOWNLOAD="https://archive.apache.org/dist/orc/orc-1.9.0/orc-1.9.0.tar.gz";
+ORC_NAME="orc-1.9.0.tar.gz"
+ORC_SOURCE=orc-1.9.0
+ORC_MD5SUM="5dc1c91c4867e4519aab531ffc30fab7"
 
 # jemalloc for arrow
-JEMALLOC_ARROW_DOWNLOAD="https://github.com/jemalloc/jemalloc/releases/download/5.2.1/jemalloc-5.2.1.tar.bz2";
-JEMALLOC_ARROW_NAME="jemalloc-5.2.1.tar.bz2"
-JEMALLOC_ARROW_SOURCE="jemalloc-5.2.1"
-JEMALLOC_ARROW_MD5SUM="3d41fbf006e6ebffd489bdb304d009ae"
+JEMALLOC_ARROW_DOWNLOAD="https://github.com/jemalloc/jemalloc/releases/download/5.3.0/jemalloc-5.3.0.tar.bz2";
+JEMALLOC_ARROW_NAME="jemalloc-5.3.0.tar.bz2"
+JEMALLOC_ARROW_SOURCE="jemalloc-5.3.0"
+JEMALLOC_ARROW_MD5SUM="09a8328574dab22a7df848eae6dbbf53"
 
 # jemalloc for doris
 
JEMALLOC_DORIS_DOWNLOAD="https://github.com/jemalloc/jemalloc/releases/download/5.3.0/jemalloc-5.3.0.tar.bz2";
@@ -393,16 +407,16 @@ PDQSORT_MD5SUM="af28f79d5d7d7a5486f54d9f1244c2b5"
 
 # benchmark
 
BENCHMARK_DOWNLOAD="https://github.com/google/benchmark/archive/refs/tags/v1.8.0.tar.gz";
-BENCHMARK_NAME=v1.8.0.tar.gz
+BENCHMARK_NAME=benchmark-v1.8.0.tar.gz
 BENCHMARK_SOURCE=benchmark-1.8.0
 BENCHMARK_MD5SUM="8ddf8571d3f6198d37852bcbd964f817"
 
 # xsimd
-# for arrow-7.0.0, if arrow upgrade, this version may also need to be changed
-XSIMD_DOWNLOAD="https://github.com/xtensor-stack/xsimd/archive/aeec9c872c8b475dedd7781336710f2dd2666cb2.tar.gz";
-XSIMD_NAME=xsimd-aeec9c872c8b475dedd7781336710f2dd2666cb2.tar.gz
-XSIMD_SOURCE=xsimd-aeec9c872c8b475dedd7781336710f2dd2666cb2
-XSIMD_MD5SUM="d024855f71c0a2837a6918c0f8f66245"
+# for arrow-13.0.0, if arrow upgrade, this version may also need to be changed
+XSIMD_DOWNLOAD="https://github.com/xtensor-stack/xsimd/archive/refs/tags/9.0.1.tar.gz";
+XSIMD_NAME="xsimd-9.0.1.tar.gz"
+XSIMD_SOURCE=xsimd-9.0.1
+XSIMD_MD5SUM="59f38fe3364acd7ed137771258812d6c"
 
 # simdjson
 
SIMDJSON_DOWNLOAD="https://github.com/simdjson/simdjson/archive/refs/tags/v3.0.1.tar.gz";
@@ -417,16 +431,16 @@ NLOHMANN_JSON_SOURCE=json-3.10.1
 NLOHMANN_JSON_MD5SUM="7b369d567afc0dffdcf5800fd9abb836"
 
 # opentelemetry-proto
-OPENTELEMETRY_PROTO_DOWNLOAD="https://github.com/open-telemetry/opentelemetry-proto/archive/refs/tags/v0.19.0.tar.gz";
-OPENTELEMETRY_PROTO_NAME=opentelemetry-proto-0.19.0.tar.gz
-OPENTELEMETRY_PROTO_SOURCE=opentelemetry-proto-0.19.0
-OPENTELEMETRY_PROTO_MD5SUM="8a5fb1ba721341994a5e7cae8b38bcc6"
+OPENTELEMETRY_PROTO_DOWNLOAD="https://github.com/open-telemetry/opentelemetry-proto/archive/refs/tags/v1.0.0.tar.gz";
+OPENTELEMETRY_PROTO_NAME="opentelemetry-proto-v1.0.0.tar.gz"
+OPENTELEMETRY_PROTO_SOURCE=opentelemetry-proto-1.0.0
+OPENTELEMETRY_PROTO_MD5SUM="8c7495a0dceea7cfdbdbcd53b07436dc"
 
 # opentelemetry
-OPENTELEMETRY_DOWNLOAD="https://github.com/open-telemetry/opentelemetry-cpp/archive/refs/tags/v1.8.3.tar.gz";
-OPENTELEMETRY_NAME=opentelemetry-cpp-1.8.3.tar.gz
-OPENTELEMETRY_SOURCE=opentelemetry-cpp-1.8.3
-OPENTELEMETRY_MD5SUM="a051dbbced2b7eb7a7227bdf5b3b9a10"
+OPENTELEMETRY_DOWNLOAD="https://github.com/open-telemetry/opentelemetry-cpp/archive/refs/tags/v1.10.0.tar.gz";
+OPENTELEMETRY_NAME="opentelemetry-cpp-v1.10.0.tar.gz"
+OPENTELEMETRY_SOURCE=opentelemetry-cpp-1.10.0
+OPENTELEMETRY_MD5SUM="89169762241b2f5142b728c775173283"
 
 # libbacktrace
 
LIBBACKTRACE_DOWNLOAD="https://codeload.github.com/ianlancetaylor/libbacktrace/zip/2446c66076480ce07a6bd868badcbceb3eeecc2e";
@@ -503,6 +517,8 @@ export TP_ARCHIVES=(
     'FMT'
     'PARALLEL_HASHMAP'
     'ORC'
+    'CARES'
+    'GRPC'
     'JEMALLOC_ARROW'
     'JEMALLOC_DORIS'
     'LIBUNWIND'


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to