diff --git a/cpp/cmake_modules/ThirdpartyToolchain.cmake b/cpp/cmake_modules/ThirdpartyToolchain.cmake index 4bef30f7df00..857ae6d29605 100644 --- a/cpp/cmake_modules/ThirdpartyToolchain.cmake +++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake @@ -1472,7 +1472,7 @@ macro(build_snappy) target_include_directories(${Snappy_TARGET} BEFORE INTERFACE "${SNAPPY_PREFIX}/include") add_dependencies(${Snappy_TARGET} snappy_ep) - list(APPEND ARROW_BUNDLED_STATIC_LIBS ${Snappy_TARGET}) + list(PREPEND ARROW_BUNDLED_STATIC_LIBS ${Snappy_TARGET}) endmacro() if(ARROW_WITH_SNAPPY) @@ -1575,7 +1575,7 @@ macro(build_brotli) target_include_directories(Brotli::brotlidec BEFORE INTERFACE "${BROTLI_INCLUDE_DIR}") add_dependencies(Brotli::brotlidec brotli_ep) - list(APPEND + list(PREPEND ARROW_BUNDLED_STATIC_LIBS Brotli::brotlicommon Brotli::brotlienc @@ -1670,7 +1670,7 @@ macro(build_glog) target_include_directories(glog::glog BEFORE INTERFACE "${GLOG_INCLUDE_DIR}") add_dependencies(glog::glog glog_ep) - list(APPEND ARROW_BUNDLED_STATIC_LIBS glog::glog) + list(PREPEND ARROW_BUNDLED_STATIC_LIBS glog::glog) endmacro() if(ARROW_USE_GLOG) @@ -1739,7 +1739,7 @@ macro(build_gflags) set(GFLAGS_VENDORED TRUE) - list(APPEND ARROW_BUNDLED_STATIC_LIBS gflags::gflags_static) + list(PREPEND ARROW_BUNDLED_STATIC_LIBS gflags::gflags_static) endmacro() if(ARROW_NEED_GFLAGS) @@ -1867,8 +1867,9 @@ function(build_thrift) set(THRIFT_VENDORED TRUE PARENT_SCOPE) + list(PREPEND ARROW_BUNDLED_STATIC_LIBS thrift) set(ARROW_BUNDLED_STATIC_LIBS - ${ARROW_BUNDLED_STATIC_LIBS} thrift + ${ARROW_BUNDLED_STATIC_LIBS} PARENT_SCOPE) list(POP_BACK CMAKE_MESSAGE_INDENT) @@ -1936,6 +1937,69 @@ function(build_absl) # Cannot use set_property on alias targets (absl::time is an alias) target_link_libraries(time INTERFACE ${CoreFoundation}) endif() + + list(PREPEND + ARROW_BUNDLED_STATIC_LIBS + absl::bad_optional_access + absl::bad_variant_access + absl::base + absl::city + absl::civil_time + absl::cord + absl::cord_internal + absl::cordz_functions + absl::cordz_handle + absl::cordz_info + absl::crc32c + absl::crc_cord_state + absl::crc_cpu_detect + absl::crc_internal + absl::debugging_internal + absl::decode_rust_punycode + absl::demangle_internal + absl::demangle_rust + absl::examine_stack + absl::exponential_biased + absl::hash + absl::int128 + absl::kernel_timeout_internal + absl::leak_check + absl::log_globals + absl::log_internal_check_op + absl::log_internal_conditions + absl::log_internal_fnmatch + absl::log_internal_format + absl::log_internal_globals + absl::log_internal_log_sink_set + absl::log_internal_message + absl::log_internal_nullguard + absl::log_internal_proto + absl::log_internal_structured_proto + absl::log_severity + absl::log_sink + absl::low_level_hash + absl::malloc_internal + absl::raw_hash_set + absl::raw_logging_internal + absl::spinlock_wait + absl::stacktrace + absl::status + absl::statusor + absl::str_format_internal + absl::strerror + absl::strings + absl::strings_internal + absl::symbolize + absl::synchronization + absl::throw_delegate + absl::time + absl::time_zone + absl::utf8_for_code_point + absl::vlog_config_internal) + set(ARROW_BUNDLED_STATIC_LIBS + ${ARROW_BUNDLED_STATIC_LIBS} + PARENT_SCOPE) + list(POP_BACK CMAKE_MESSAGE_INDENT) endfunction() @@ -2071,7 +2135,11 @@ function(build_protobuf) # Make protobuf_fc depend on the install completion marker add_custom_target(protobuf_fc DEPENDS "${PROTOBUF_PREFIX}/.protobuf_installed") - list(APPEND ARROW_BUNDLED_STATIC_LIBS protobuf::libprotobuf) + + list(PREPEND ARROW_BUNDLED_STATIC_LIBS protobuf::libprotobuf utf8_range) + set(ARROW_BUNDLED_STATIC_LIBS + ${ARROW_BUNDLED_STATIC_LIBS} + PARENT_SCOPE) if(CMAKE_CROSSCOMPILING) # If we are cross compiling, we need to build protoc for the host @@ -2079,9 +2147,6 @@ function(build_protobuf) set(PROTOBUF_HOST_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/protobuf_ep_host-install") set(PROTOBUF_HOST_COMPILER "${PROTOBUF_HOST_PREFIX}/bin/protoc") - # cross-compiled (PyArrow on emscripten) needs utf8_range bundled explicitly. - list(APPEND ARROW_BUNDLED_STATIC_LIBS utf8_range) - set(PROTOBUF_HOST_CMAKE_ARGS "-DCMAKE_CXX_FLAGS=" "-DCMAKE_C_FLAGS=" @@ -2110,102 +2175,8 @@ function(build_protobuf) PROPERTIES IMPORTED_LOCATION "${PROTOBUF_HOST_COMPILER}") add_dependencies(arrow::protobuf::host_protoc protobuf_ep_host) - # For cross-compilation along with ExternalProject we need to - # manually include absl deps to the bundled static libs so that - # they are available for the generated code in protobuf v31. - list(APPEND - ARROW_BUNDLED_STATIC_LIBS - absl::bad_any_cast_impl - absl::bad_optional_access - absl::bad_variant_access - absl::base - absl::city - absl::civil_time - absl::cord - absl::cord_internal - absl::cordz_functions - absl::cordz_handle - absl::cordz_info - absl::cordz_sample_token - absl::crc32c - absl::crc_cord_state - absl::crc_cpu_detect - absl::crc_internal - absl::debugging_internal - absl::decode_rust_punycode - absl::demangle_internal - absl::demangle_rust - absl::die_if_null - absl::examine_stack - absl::exponential_biased - absl::failure_signal_handler - absl::flags_commandlineflag - absl::flags_commandlineflag_internal - absl::flags_config - absl::flags_internal - absl::flags_marshalling - absl::flags_parse - absl::flags_private_handle_accessor - absl::flags_program_name - absl::flags_reflection - absl::flags_usage - absl::flags_usage_internal - absl::graphcycles_internal - absl::hash - absl::hashtablez_sampler - absl::int128 - absl::kernel_timeout_internal - absl::leak_check - absl::log_globals - absl::log_initialize - absl::log_internal_check_op - absl::log_internal_conditions - absl::log_internal_fnmatch - absl::log_internal_format - absl::log_internal_globals - absl::log_internal_log_sink_set - absl::log_internal_message - absl::log_internal_nullguard - absl::log_internal_proto - absl::log_severity - absl::log_sink - absl::low_level_hash - absl::malloc_internal - absl::periodic_sampler - absl::poison - absl::random_distributions - absl::random_internal_distribution_test_util - absl::random_internal_platform - absl::random_internal_pool_urbg - absl::random_internal_randen - absl::random_internal_randen_hwaes - absl::random_internal_randen_hwaes_impl - absl::random_internal_randen_slow - absl::random_internal_seed_material - absl::random_seed_gen_exception - absl::random_seed_sequences - absl::raw_hash_set - absl::raw_logging_internal - absl::scoped_set_env - absl::spinlock_wait - absl::stacktrace - absl::status - absl::statusor - absl::str_format_internal - absl::strerror - absl::strings - absl::strings_internal - absl::symbolize - absl::synchronization - absl::throw_delegate - absl::time - absl::time_zone - absl::utf8_for_code_point - absl::vlog_config_internal) endif() - set(ARROW_BUNDLED_STATIC_LIBS - "${ARROW_BUNDLED_STATIC_LIBS}" - PARENT_SCOPE) + list(POP_BACK CMAKE_MESSAGE_INDENT) endfunction() @@ -2449,7 +2420,7 @@ macro(build_substrait) target_link_libraries(substrait PUBLIC ${ARROW_PROTOBUF_LIBPROTOBUF}) add_dependencies(substrait substrait_gen) - list(APPEND ARROW_BUNDLED_STATIC_LIBS substrait) + list(PREPEND ARROW_BUNDLED_STATIC_LIBS substrait) endmacro() if(ARROW_SUBSTRAIT) @@ -2533,7 +2504,7 @@ macro(build_jemalloc) INTERFACE "${JEMALLOC_INCLUDE_DIR}") add_dependencies(jemalloc::jemalloc jemalloc_ep) - list(APPEND ARROW_BUNDLED_STATIC_LIBS jemalloc::jemalloc) + list(PREPEND ARROW_BUNDLED_STATIC_LIBS jemalloc::jemalloc) set(jemalloc_VENDORED TRUE) # For config.h.cmake @@ -2621,7 +2592,7 @@ if(ARROW_MIMALLOC) endif() add_dependencies(mimalloc::mimalloc mimalloc_ep) - list(APPEND ARROW_BUNDLED_STATIC_LIBS mimalloc::mimalloc) + list(PREPEND ARROW_BUNDLED_STATIC_LIBS mimalloc::mimalloc) set(mimalloc_VENDORED TRUE) endif() @@ -2834,9 +2805,9 @@ function(build_simdjson) TRUE PARENT_SCOPE) - list(APPEND ARROW_BUNDLED_STATIC_LIBS simdjson) + list(PREPEND ARROW_BUNDLED_STATIC_LIBS simdjson) set(ARROW_BUNDLED_STATIC_LIBS - "${ARROW_BUNDLED_STATIC_LIBS}" + ${ARROW_BUNDLED_STATIC_LIBS} PARENT_SCOPE) list(POP_BACK CMAKE_MESSAGE_INDENT) @@ -2966,7 +2937,7 @@ macro(build_zlib) PROPERTY IMPORTED_LOCATION "${EMSCRIPTEN_SYSROOT}/lib/wasm32-emscripten/pic/libz.a") target_include_directories(ZLIB::ZLIB INTERFACE "${EMSCRIPTEN_SYSROOT}/include") - list(APPEND ARROW_BUNDLED_STATIC_LIBS ZLIB::ZLIB) + list(PREPEND ARROW_BUNDLED_STATIC_LIBS ZLIB::ZLIB) else() set(ZLIB_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/zlib_ep/src/zlib_ep-install") if(MSVC) @@ -2997,7 +2968,7 @@ macro(build_zlib) target_include_directories(ZLIB::ZLIB BEFORE INTERFACE "${ZLIB_INCLUDE_DIRS}") add_dependencies(ZLIB::ZLIB zlib_ep) - list(APPEND ARROW_BUNDLED_STATIC_LIBS ZLIB::ZLIB) + list(PREPEND ARROW_BUNDLED_STATIC_LIBS ZLIB::ZLIB) endif() set(ZLIB_VENDORED TRUE) @@ -3043,8 +3014,9 @@ function(build_lz4) # Add to bundled static libs. # We must use lz4_static (not imported target) not LZ4::lz4 (imported target). + list(PREPEND ARROW_BUNDLED_STATIC_LIBS lz4_static) set(ARROW_BUNDLED_STATIC_LIBS - ${ARROW_BUNDLED_STATIC_LIBS} lz4_static + ${ARROW_BUNDLED_STATIC_LIBS} PARENT_SCOPE) endfunction() @@ -3097,7 +3069,7 @@ macro(build_zstd) add_dependencies(zstd::libzstd_static zstd_ep) - list(APPEND ARROW_BUNDLED_STATIC_LIBS zstd::libzstd_static) + list(PREPEND ARROW_BUNDLED_STATIC_LIBS zstd::libzstd_static) set(ZSTD_VENDORED TRUE) endmacro() @@ -3164,9 +3136,11 @@ function(build_re2) set_property(DIRECTORY ${re2_SOURCE_DIR} PROPERTY EXCLUDE_FROM_ALL TRUE) endif() + list(PREPEND ARROW_BUNDLED_STATIC_LIBS re2::re2) set(ARROW_BUNDLED_STATIC_LIBS - ${ARROW_BUNDLED_STATIC_LIBS} re2::re2 + ${ARROW_BUNDLED_STATIC_LIBS} PARENT_SCOPE) + list(POP_BACK CMAKE_MESSAGE_INDENT) endfunction() @@ -3220,7 +3194,7 @@ macro(build_bzip2) add_dependencies(BZip2::BZip2 bzip2_ep) - list(APPEND ARROW_BUNDLED_STATIC_LIBS BZip2::BZip2) + list(PREPEND ARROW_BUNDLED_STATIC_LIBS BZip2::BZip2) endmacro() if(ARROW_WITH_BZ2) @@ -3276,7 +3250,7 @@ macro(build_utf8proc) add_dependencies(utf8proc::utf8proc utf8proc_ep) - list(APPEND ARROW_BUNDLED_STATIC_LIBS utf8proc::utf8proc) + list(PREPEND ARROW_BUNDLED_STATIC_LIBS utf8proc::utf8proc) endmacro() if(ARROW_WITH_UTF8PROC) @@ -3313,9 +3287,11 @@ function(build_cares) target_link_libraries(c-ares INTERFACE ${LIBRESOLV_LIBRARY}) endif() + list(PREPEND ARROW_BUNDLED_STATIC_LIBS c-ares::cares) set(ARROW_BUNDLED_STATIC_LIBS - ${ARROW_BUNDLED_STATIC_LIBS} c-ares::cares + ${ARROW_BUNDLED_STATIC_LIBS} PARENT_SCOPE) + list(POP_BACK CMAKE_MESSAGE_INDENT) endfunction() @@ -3443,15 +3419,16 @@ function(build_grpc) add_dependencies(gRPC::grpcpp_for_bundling grpc_copy_grpc++) # Add gRPC libraries to bundled static libs. - list(APPEND + list(PREPEND ARROW_BUNDLED_STATIC_LIBS gRPC::address_sorting gRPC::gpr gRPC::grpc gRPC::grpcpp_for_bundling) set(ARROW_BUNDLED_STATIC_LIBS - "${ARROW_BUNDLED_STATIC_LIBS}" + ${ARROW_BUNDLED_STATIC_LIBS} PARENT_SCOPE) + list(POP_BACK CMAKE_MESSAGE_INDENT) endfunction() @@ -3617,9 +3594,9 @@ function(build_opentelemetry) opentelemetry-cpp::trace opentelemetry-cpp::version) - list(APPEND ARROW_BUNDLED_STATIC_LIBS ${_OPENTELEMETRY_BUNDLED_LIBS}) + list(PREPEND ARROW_BUNDLED_STATIC_LIBS ${_OPENTELEMETRY_BUNDLED_LIBS}) set(ARROW_BUNDLED_STATIC_LIBS - "${ARROW_BUNDLED_STATIC_LIBS}" + ${ARROW_BUNDLED_STATIC_LIBS} PARENT_SCOPE) list(POP_BACK CMAKE_MESSAGE_INDENT) @@ -3633,7 +3610,11 @@ if(ARROW_WITH_OPENTELEMETRY) # cURL is required whether we build from source or use an existing installation # (OTel's cmake files do not call find_curl for you) find_curl() - resolve_dependency(opentelemetry-cpp) + resolve_dependency(opentelemetry-cpp + COMPONENTS + exporters_ostream + exporters_otlp_http + sdk) set(ARROW_OPENTELEMETRY_LIBS opentelemetry-cpp::trace opentelemetry-cpp::logs @@ -3746,54 +3727,14 @@ function(build_google_cloud_cpp_storage) # Remove unused directories to save build directory storage. # 141MB -> 79MB file(REMOVE_RECURSE "${google_cloud_cpp_SOURCE_DIR}/ci") - list(APPEND + + list(PREPEND ARROW_BUNDLED_STATIC_LIBS google-cloud-cpp::storage google-cloud-cpp::rest_internal google-cloud-cpp::common) - - if(ABSL_VENDORED) - # Figure out what absl libraries (not header-only) are required by the - # google-cloud-cpp libraries above and add them to the bundled_dependencies - # - # pkg-config --libs absl_memory absl_strings absl_str_format absl_time absl_variant absl_base absl_memory absl_optional absl_span absl_time absl_variant - # (and then some regexing) - list(APPEND - ARROW_BUNDLED_STATIC_LIBS - absl::bad_optional_access - absl::bad_variant_access - absl::base - absl::civil_time - absl::cord - absl::cord_internal - absl::cordz_functions - absl::cordz_info - absl::cordz_handle - absl::crc32c - absl::crc_internal - absl::crc_cord_state - absl::crc_cpu_detect - absl::debugging_internal - absl::demangle_internal - absl::exponential_biased - absl::int128 - absl::log_severity - absl::malloc_internal - absl::raw_logging_internal - absl::spinlock_wait - absl::stacktrace - absl::str_format_internal - absl::strings - absl::strings_internal - absl::symbolize - absl::synchronization - absl::throw_delegate - absl::time - absl::time_zone) - endif() - set(ARROW_BUNDLED_STATIC_LIBS - "${ARROW_BUNDLED_STATIC_LIBS}" + ${ARROW_BUNDLED_STATIC_LIBS} PARENT_SCOPE) list(POP_BACK CMAKE_MESSAGE_INDENT) @@ -3944,7 +3885,7 @@ function(build_orc) add_custom_target(orc_copy_lib ALL DEPENDS "${ORC_STATIC_LIBRARY_FOR_AR}") add_dependencies(orc::orc_for_bundling orc_copy_lib) - list(APPEND ARROW_BUNDLED_STATIC_LIBS orc::orc_for_bundling) + list(PREPEND ARROW_BUNDLED_STATIC_LIBS orc::orc_for_bundling) else() set(ORC_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/orc_ep-install") set(ORC_HOME "${ORC_PREFIX}") @@ -4040,7 +3981,7 @@ function(build_orc) endif() target_link_libraries(orc::orc INTERFACE ${ARROW_PROTOBUF_LIBPROTOBUF}) add_dependencies(orc::orc orc_ep) - list(APPEND ARROW_BUNDLED_STATIC_LIBS orc::orc) + list(PREPEND ARROW_BUNDLED_STATIC_LIBS orc::orc) endif() set(ORC_VENDORED @@ -4237,8 +4178,9 @@ function(build_awssdk) set(AWSSDK_VENDORED TRUE PARENT_SCOPE) + list(PREPEND ARROW_BUNDLED_STATIC_LIBS ${AWSSDK_LINK_LIBRARIES}) set(ARROW_BUNDLED_STATIC_LIBS - ${ARROW_BUNDLED_STATIC_LIBS} ${AWSSDK_LINK_LIBRARIES} + ${ARROW_BUNDLED_STATIC_LIBS} PARENT_SCOPE) set(AWSSDK_LINK_LIBRARIES ${AWSSDK_LINK_LIBRARIES} @@ -4283,6 +4225,8 @@ endif() # Azure SDK for C++ function(build_azure_sdk) + list(APPEND CMAKE_MESSAGE_INDENT "Azure SDK for C++: ") + message(STATUS "Building Azure SDK for C++ from source") # On Windows, Azure SDK's WinHTTP transport requires WIL (Windows Implementation Libraries). @@ -4325,14 +4269,18 @@ function(build_azure_sdk) set(AZURE_SDK_VENDORED TRUE PARENT_SCOPE) + list(PREPEND + ARROW_BUNDLED_STATIC_LIBS + Azure::azure-core + Azure::azure-identity + Azure::azure-storage-blobs + Azure::azure-storage-common + Azure::azure-storage-files-datalake) set(ARROW_BUNDLED_STATIC_LIBS ${ARROW_BUNDLED_STATIC_LIBS} - Azure::azure-core - Azure::azure-identity - Azure::azure-storage-blobs - Azure::azure-storage-common - Azure::azure-storage-files-datalake PARENT_SCOPE) + + list(POP_BACK CMAKE_MESSAGE_INDENT) endfunction() if(ARROW_WITH_AZURE_SDK) diff --git a/cpp/src/arrow/ArrowConfig.cmake.in b/cpp/src/arrow/ArrowConfig.cmake.in index cbadad4d7425..c12b3ce71033 100644 --- a/cpp/src/arrow/ArrowConfig.cmake.in +++ b/cpp/src/arrow/ArrowConfig.cmake.in @@ -74,7 +74,15 @@ macro(arrow_find_dependencies dependencies) endif() endif() endif() - find_dependency(${dependency}) + if(${dependency} STREQUAL "opentelemetry-cpp") + find_dependency(${dependency} + COMPONENTS + exporters_ostream + exporters_otlp_http + sdk) + else() + find_dependency(${dependency}) + endif() if(ARROW_OPENSSL_HOMEBREW_MAKE_DETECTABLE) set(OPENSSL_ROOT_DIR ${ARROW_OPENSSL_ROOT_DIR_ORIGINAL}) endif() diff --git a/cpp/src/arrow/CMakeLists.txt b/cpp/src/arrow/CMakeLists.txt index 0b21fec6058b..957921368a42 100644 --- a/cpp/src/arrow/CMakeLists.txt +++ b/cpp/src/arrow/CMakeLists.txt @@ -108,7 +108,7 @@ if(ARROW_S3) endif() if(ARROW_WITH_OPENTELEMETRY) - if(opentelemetry_SOURCE STREQUAL "SYSTEM") + if(opentelemetry-cpp_SOURCE STREQUAL "SYSTEM") list(APPEND ARROW_STATIC_INSTALL_INTERFACE_LIBS ${ARROW_OPENTELEMETRY_LIBS}) endif() list(APPEND ARROW_STATIC_INSTALL_INTERFACE_LIBS CURL::libcurl) diff --git a/dev/release/verify-yum.sh b/dev/release/verify-yum.sh index c8827428c0c3..1cf7b3d2ddf6 100755 --- a/dev/release/verify-yum.sh +++ b/dev/release/verify-yum.sh @@ -197,10 +197,10 @@ if [ "${cmake_version_major}" -gt "3" ] || \ [ "${cmake_version_major}" -eq "3" -a "${cmake_version_minor}" -ge "25" ]; then cp -a "${TOP_SOURCE_DIR}/cpp/examples/minimal_build" build/ pushd build/minimal_build - cmake -S . -B build_shared + cmake -S . -B build_shared -DCMAKE_VERBOSE_MAKEFILE=ON make -C build_shared -j$(nproc) build_shared/arrow-example - cmake -S . -B build_static -DARROW_LINK_SHARED=OFF + cmake -S . -B build_static -DARROW_LINK_SHARED=OFF -DCMAKE_VERBOSE_MAKEFILE=ON make -C build_static -j$(nproc) build_static/arrow-example mkdir -p build_pkg_config diff --git a/dev/tasks/linux-packages/apache-arrow/Rakefile b/dev/tasks/linux-packages/apache-arrow/Rakefile index cdb771084529..c66b11908131 100644 --- a/dev/tasks/linux-packages/apache-arrow/Rakefile +++ b/dev/tasks/linux-packages/apache-arrow/Rakefile @@ -98,9 +98,29 @@ class ApacheArrowPackageTask < PackageTask control.gsub(/@CUDA_ARCHITECTURE@/, cuda_architecture) end + def apt_prepare_debian_control_open_telemetry(control, target) + case target + when /\Aubuntu-(?:jammy|noble)/ + use_system_open_telemetry = "#" + system_open_telemetry_require_grpc = "#" + else + use_system_open_telemetry = "" + if target.start_with?("debian-trixie") + system_open_telemetry_require_grpc = "" + else + system_open_telemetry_require_grpc = "#" + end + end + control + .gsub(/@USE_SYSTEM_OPEN_TELEMETRY@/, use_system_open_telemetry) + .gsub(/@SYSTEM_OPEN_TELEMETRY_REQUIRE_GRPC@/, + system_open_telemetry_require_grpc) + end + def apt_prepare_debian_control(control_in, target) control = control_in.dup control = apt_prepare_debian_control_cuda_architecture(control, target) + control = apt_prepare_debian_control_open_telemetry(control, target) control end end diff --git a/dev/tasks/linux-packages/apache-arrow/apt/debian-forky/Dockerfile b/dev/tasks/linux-packages/apache-arrow/apt/debian-forky/Dockerfile index 0302516d7f75..5cea3ceb7ddd 100644 --- a/dev/tasks/linux-packages/apache-arrow/apt/debian-forky/Dockerfile +++ b/dev/tasks/linux-packages/apache-arrow/apt/debian-forky/Dockerfile @@ -60,6 +60,7 @@ RUN \ libgtest-dev \ liblz4-dev \ libmimalloc-dev \ + libopentelemetry-proto-dev \ libprotobuf-dev \ libprotoc-dev \ libre2-dev \ @@ -74,6 +75,7 @@ RUN \ meson \ ninja-build \ nlohmann-json3-dev \ + opentelemetry-cpp-dev \ pkg-config \ protobuf-compiler-grpc \ python3-dev \ diff --git a/dev/tasks/linux-packages/apache-arrow/apt/debian-trixie/Dockerfile b/dev/tasks/linux-packages/apache-arrow/apt/debian-trixie/Dockerfile index d834708f0cc3..b51d7d5f9e7b 100644 --- a/dev/tasks/linux-packages/apache-arrow/apt/debian-trixie/Dockerfile +++ b/dev/tasks/linux-packages/apache-arrow/apt/debian-trixie/Dockerfile @@ -60,6 +60,7 @@ RUN \ libgtest-dev \ liblz4-dev \ libmimalloc-dev \ + libopentelemetry-proto-dev \ libprotobuf-dev \ libprotoc-dev \ libre2-dev \ @@ -74,6 +75,7 @@ RUN \ meson \ ninja-build \ nlohmann-json3-dev \ + opentelemetry-cpp-dev \ pkg-config \ protobuf-compiler-grpc \ python3-dev \ diff --git a/dev/tasks/linux-packages/apache-arrow/apt/ubuntu-resolute/Dockerfile b/dev/tasks/linux-packages/apache-arrow/apt/ubuntu-resolute/Dockerfile index d0c31b3e056a..322cf2373956 100644 --- a/dev/tasks/linux-packages/apache-arrow/apt/ubuntu-resolute/Dockerfile +++ b/dev/tasks/linux-packages/apache-arrow/apt/ubuntu-resolute/Dockerfile @@ -53,6 +53,7 @@ RUN \ libgrpc++-dev \ libgtest-dev \ liblz4-dev \ + libopentelemetry-proto-dev \ libprotobuf-dev \ libprotoc-dev \ libre2-dev \ @@ -68,6 +69,7 @@ RUN \ mold \ ninja-build \ nlohmann-json3-dev \ + opentelemetry-cpp-dev \ pkg-config \ protobuf-compiler-grpc \ python3-dev \ diff --git a/dev/tasks/linux-packages/apache-arrow/debian/control.in b/dev/tasks/linux-packages/apache-arrow/debian/control.in index db4e8477864c..bb4b778481cc 100644 --- a/dev/tasks/linux-packages/apache-arrow/debian/control.in +++ b/dev/tasks/linux-packages/apache-arrow/debian/control.in @@ -18,6 +18,7 @@ Build-Depends: libgrpc++-dev, libgtest-dev, liblz4-dev, +@USE_SYSTEM_OPEN_TELEMETRY@ libopentelemetry-proto-dev, libprotobuf-dev, libprotoc-dev, libre2-dev, @@ -35,6 +36,7 @@ Build-Depends: # in the debian-forky Dockerfile) skips this build dependency and the CUDA # packages below. nvidia-cuda-toolkit [!arm64] , +@USE_SYSTEM_OPEN_TELEMETRY@ opentelemetry-cpp-dev, pkg-config, protobuf-compiler, protobuf-compiler-grpc, @@ -162,6 +164,7 @@ Depends: libbz2-dev, libc-ares-dev, libcurl4-openssl-dev, +@SYSTEM_OPEN_TELEMETRY_REQUIRE_GRPC@ libgrpc++-dev, liblz4-dev, libprotobuf-dev, libprotoc-dev, @@ -172,6 +175,7 @@ Depends: libxxhash-dev, libzstd-dev, nlohmann-json-dev | nlohmann-json3-dev, +@USE_SYSTEM_OPEN_TELEMETRY@ opentelemetry-cpp-dev, protobuf-compiler-grpc, zlib1g-dev Description: Apache Arrow is a data processing library for analysis diff --git a/dev/tasks/linux-packages/apache-arrow/debian/rules b/dev/tasks/linux-packages/apache-arrow/debian/rules index 6f636d2d2de0..4be103d0c9ce 100755 --- a/dev/tasks/linux-packages/apache-arrow/debian/rules +++ b/dev/tasks/linux-packages/apache-arrow/debian/rules @@ -70,6 +70,7 @@ override_dh_auto_configure: -DARROW_WITH_BROTLI=ON \ -DARROW_WITH_BZ2=ON \ -DARROW_WITH_LZ4=ON \ + -DARROW_WITH_OPENTELEMETRY=ON \ -DARROW_WITH_SNAPPY=ON \ -DARROW_WITH_ZLIB=ON \ -DARROW_WITH_ZSTD=ON \ diff --git a/dev/tasks/linux-packages/apache-arrow/yum/arrow.spec.in b/dev/tasks/linux-packages/apache-arrow/yum/arrow.spec.in index aca2d468332d..0040b68f0698 100644 --- a/dev/tasks/linux-packages/apache-arrow/yum/arrow.spec.in +++ b/dev/tasks/linux-packages/apache-arrow/yum/arrow.spec.in @@ -165,6 +165,7 @@ cd cpp -DARROW_WITH_BROTLI=ON \ -DARROW_WITH_BZ2=ON \ -DARROW_WITH_LZ4=ON \ + -DARROW_WITH_OPENTELEMETRY=ON \ -DARROW_WITH_SNAPPY=ON \ -DARROW_WITH_ZLIB=ON \ -DARROW_WITH_ZSTD=ON \