Skip to content

Commit 798b417

Browse files
js8544jinshangkou
authored
GH-34157: [C++] Configure bundled AWS SDK to use aws-lc instead of OpenSSL (#34159)
Using OpenSSL causes various issues like #33808 (comment) and #34111. We should try to use aws-lc for libcrypto and libssl. We need to hide them inside s2n-tls to avoid name conflicts with OpenSSL used by other libraries. Some notes: 1. Only linux needs s2n-tls and aws-lc. 2. Because aws-c-http requires curl which requires libcrypto from OpenSSL, we need to hide Aws::libcrypto by S2N_INTERN_LIBCRYPTO=ON. 3. aws-c-cal also uses libcrypto, but it can't hide it. So we need to use OpenSSL instead of aws-lc for it. 4. Mac and windows don't need s2n-tls, but do need some security libs from system, like `-framework Security` and `ncrypt.lib`. 5. arrow-s3fs-test is re-enabled. 6. Force Java Gandiva to use static protobuf lib. * Closes: #34157 Lead-authored-by: Jin Shang <shangjin1997@gmail.com> Co-authored-by: jinshang <jinshang@tencent.com> Co-authored-by: Sutou Kouhei <kou@cozmixng.org> Signed-off-by: Sutou Kouhei <kou@clear-code.com>
1 parent b955da0 commit 798b417

8 files changed

Lines changed: 151 additions & 66 deletions

File tree

ci/scripts/java_jni_build.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ cmake \
6060
-DCMAKE_INSTALL_LIBDIR=lib \
6161
-DCMAKE_INSTALL_PREFIX=${prefix_dir} \
6262
-DCMAKE_UNITY_BUILD=${CMAKE_UNITY_BUILD:-OFF} \
63+
-DProtobuf_USE_STATIC_LIBS=ON \
6364
-GNinja \
6465
${JAVA_JNI_CMAKE_ARGS:-} \
6566
${arrow_dir}/java

ci/scripts/java_jni_macos_build.sh

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ fi
108108

109109
popd
110110

111-
111+
export JAVA_JNI_CMAKE_ARGS="-DProtobuf_ROOT=${build_dir}/cpp/protobuf_ep-install"
112112
${arrow_dir}/ci/scripts/java_jni_build.sh \
113113
${arrow_dir} \
114114
${install_dir} \
@@ -125,6 +125,7 @@ echo "=== Checking shared dependencies for libraries ==="
125125
pushd ${dist_dir}
126126
archery linking check-dependencies \
127127
--allow CoreFoundation \
128+
--allow Security \
128129
--allow libSystem \
129130
--allow libarrow_cdata_jni \
130131
--allow libarrow_dataset_jni \

cpp/cmake_modules/ThirdpartyToolchain.cmake

Lines changed: 92 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -362,9 +362,7 @@ if(ARROW_JSON)
362362
set(ARROW_WITH_RAPIDJSON ON)
363363
endif()
364364

365-
if(ARROW_ORC
366-
OR ARROW_FLIGHT
367-
OR ARROW_GANDIVA)
365+
if(ARROW_ORC OR ARROW_FLIGHT)
368366
set(ARROW_WITH_PROTOBUF ON)
369367
endif()
370368

@@ -529,6 +527,14 @@ else()
529527
)
530528
endif()
531529

530+
if(DEFINED ENV{ARROW_AWS_LC_URL})
531+
set(AWS_LC_SOURCE_URL "$ENV{ARROW_AWS_LC_URL}")
532+
else()
533+
set_urls(AWS_LC_SOURCE_URL
534+
"https://github.com/awslabs/aws-lc/archive/${ARROW_AWS_LC_BUILD_VERSION}.tar.gz"
535+
)
536+
endif()
537+
532538
if(DEFINED ENV{ARROW_AWSSDK_URL})
533539
set(AWSSDK_SOURCE_URL "$ENV{ARROW_AWSSDK_URL}")
534540
else()
@@ -1238,8 +1244,9 @@ macro(find_curl)
12381244
add_library(CURL::libcurl UNKNOWN IMPORTED)
12391245
set_target_properties(CURL::libcurl
12401246
PROPERTIES INTERFACE_INCLUDE_DIRECTORIES
1241-
"${CURL_INCLUDE_DIRS}" IMPORTED_LOCATION
1242-
"${CURL_LIBRARIES}")
1247+
"${CURL_INCLUDE_DIRS}"
1248+
IMPORTED_LOCATION "${CURL_LIBRARIES}"
1249+
INTERFACE_LINK_LIBRARIES OpenSSL::SSL)
12431250
endif()
12441251
endif()
12451252
endmacro()
@@ -1640,7 +1647,7 @@ if(ARROW_WITH_THRIFT)
16401647
endif()
16411648

16421649
# ----------------------------------------------------------------------
1643-
# Protocol Buffers (required for ORC, Flight, Gandiva and Substrait libraries)
1650+
# Protocol Buffers (required for ORC, Flight and Substrait libraries)
16441651

16451652
macro(build_protobuf)
16461653
message(STATUS "Building Protocol Buffers from source")
@@ -4730,20 +4737,19 @@ macro(build_awssdk)
47304737
set(AWSSDK_BUILD_TYPE release)
47314738
endif()
47324739

4740+
# provide hint for AWS SDK to link with the already located openssl
4741+
get_filename_component(OPENSSL_ROOT_HINT "${OPENSSL_INCLUDE_DIR}" DIRECTORY)
47334742
set(AWSSDK_COMMON_CMAKE_ARGS
47344743
${EP_COMMON_CMAKE_ARGS}
47354744
-DCMAKE_BUILD_TYPE=${AWSSDK_BUILD_TYPE}
47364745
-DENABLE_TESTING=OFF
47374746
-DENABLE_UNITY_BUILD=ON
4747+
-DOPENSSL_ROOT_DIR=${OPENSSL_ROOT_HINT}
47384748
"-DCMAKE_INSTALL_PREFIX=${AWSSDK_PREFIX}"
47394749
"-DCMAKE_PREFIX_PATH=${AWSSDK_PREFIX}")
47404750

4741-
# provide hint for AWS SDK to link with the already located openssl
4742-
get_filename_component(OPENSSL_ROOT_HINT "${OPENSSL_INCLUDE_DIR}" DIRECTORY)
4743-
47444751
set(AWSSDK_CMAKE_ARGS
47454752
${AWSSDK_COMMON_CMAKE_ARGS}
4746-
-DOPENSSL_ROOT_DIR=${OPENSSL_ROOT_HINT}
47474753
-DBUILD_DEPS=OFF
47484754
-DBUILD_ONLY=config\\$<SEMICOLON>s3\\$<SEMICOLON>transfer\\$<SEMICOLON>identity-management\\$<SEMICOLON>sts
47494755
-DMINIMIZE_SIZE=ON)
@@ -4782,9 +4788,18 @@ macro(build_awssdk)
47824788
aws-c-event-stream
47834789
aws-c-io
47844790
aws-c-cal
4785-
s2n-tls
47864791
aws-checksums
47874792
aws-c-common)
4793+
4794+
# aws-lc needs to be installed on a separate folder to hide from unintended use
4795+
set(AWS_LC_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/aws_lc_ep-install")
4796+
set(AWS_LC_INCLUDE_DIR "${AWS_LC_PREFIX}/include")
4797+
4798+
if(UNIX AND NOT APPLE) # aws-lc and s2n-tls only needed on linux
4799+
file(MAKE_DIRECTORY ${AWS_LC_INCLUDE_DIR})
4800+
list(APPEND _AWSSDK_LIBS s2n-tls aws-lc)
4801+
endif()
4802+
47884803
set(AWSSDK_LIBRARIES)
47894804
foreach(_AWSSDK_LIB ${_AWSSDK_LIBS})
47904805
# aws-c-common -> AWS-C-COMMON
@@ -4798,9 +4813,15 @@ macro(build_awssdk)
47984813
set(_AWSSDK_STATIC_LIBRARY
47994814
"${AWSSDK_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}s2n${CMAKE_STATIC_LIBRARY_SUFFIX}"
48004815
)
4816+
elseif(${_AWSSDK_LIB} STREQUAL "aws-lc") # We only need libcrypto from aws-lc
4817+
set(_AWSSDK_STATIC_LIBRARY
4818+
"${AWS_LC_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}crypto${CMAKE_STATIC_LIBRARY_SUFFIX}"
4819+
)
48014820
endif()
48024821
if(${_AWSSDK_LIB} MATCHES "^aws-cpp-sdk-")
48034822
set(_AWSSDK_TARGET_NAME ${_AWSSDK_LIB})
4823+
elseif(${_AWSSDK_LIB} STREQUAL "aws-lc")
4824+
set(_AWSSDK_TARGET_NAME AWS::crypto)
48044825
else()
48054826
set(_AWSSDK_TARGET_NAME AWS::${_AWSSDK_LIB})
48064827
endif()
@@ -4809,8 +4830,18 @@ macro(build_awssdk)
48094830
PROPERTIES IMPORTED_LOCATION ${_AWSSDK_STATIC_LIBRARY}
48104831
INTERFACE_INCLUDE_DIRECTORIES
48114832
"${AWSSDK_INCLUDE_DIR}")
4833+
if(${_AWSSDK_LIB} STREQUAL "aws-lc")
4834+
set_target_properties(${_AWSSDK_TARGET_NAME}
4835+
PROPERTIES IMPORTED_LOCATION ${_AWSSDK_STATIC_LIBRARY}
4836+
INTERFACE_INCLUDE_DIRECTORIES
4837+
"${AWS_LC_INCLUDE_DIR}")
4838+
endif()
48124839
set("${_AWSSDK_LIB_NAME_PREFIX}_STATIC_LIBRARY" ${_AWSSDK_STATIC_LIBRARY})
4813-
list(APPEND AWSSDK_LIBRARIES ${_AWSSDK_TARGET_NAME})
4840+
4841+
if(NOT ${_AWSSDK_LIB} STREQUAL "aws-lc")
4842+
# aws-lc only linked against s2n but not arrow
4843+
list(APPEND AWSSDK_LIBRARIES ${_AWSSDK_TARGET_NAME})
4844+
endif()
48144845
endforeach()
48154846

48164847
externalproject_add(aws_c_common_ep
@@ -4830,36 +4861,37 @@ macro(build_awssdk)
48304861
DEPENDS aws_c_common_ep)
48314862
add_dependencies(AWS::aws-checksums aws_checksums_ep)
48324863

4833-
set(S2N_TLS_CMAKE_ARGS ${AWSSDK_COMMON_CMAKE_ARGS})
4834-
if(APPLE AND NOT OPENSSL_ROOT_DIR)
4835-
find_program(BREW brew)
4836-
if(BREW)
4837-
execute_process(COMMAND ${BREW} --prefix "openssl@1.1"
4838-
OUTPUT_VARIABLE OPENSSL11_BREW_PREFIX
4839-
OUTPUT_STRIP_TRAILING_WHITESPACE)
4840-
if(OPENSSL11_BREW_PREFIX)
4841-
set(OPENSSL_ROOT_DIR ${OPENSSL11_BREW_PREFIX})
4842-
else()
4843-
execute_process(COMMAND ${BREW} --prefix "openssl"
4844-
OUTPUT_VARIABLE OPENSSL_BREW_PREFIX
4845-
OUTPUT_STRIP_TRAILING_WHITESPACE)
4846-
if(OPENSSL_BREW_PREFIX)
4847-
set(OPENSSL_ROOT_DIR ${OPENSSL_BREW_PREFIX})
4848-
endif()
4849-
endif()
4850-
endif()
4851-
endif()
4852-
if(OPENSSL_ROOT_DIR)
4853-
# For Findcrypto.cmake in s2n-tls.
4854-
list(APPEND S2N_TLS_CMAKE_ARGS -DCMAKE_PREFIX_PATH=${OPENSSL_ROOT_DIR})
4864+
if("s2n-tls" IN_LIST _AWSSDK_LIBS)
4865+
set(AWS_LC_C_FLAGS ${EP_C_FLAGS})
4866+
string(APPEND AWS_LC_C_FLAGS " -Wno-error=overlength-strings -Wno-error=pedantic")
4867+
4868+
set(AWS_LC_CMAKE_ARGS ${AWSSDK_COMMON_CMAKE_ARGS})
4869+
list(APPEND AWS_LC_CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${AWS_LC_PREFIX}
4870+
-DCMAKE_C_FLAGS=${AWS_LC_C_FLAGS})
4871+
4872+
externalproject_add(aws_lc_ep
4873+
${EP_COMMON_OPTIONS}
4874+
URL ${AWS_LC_SOURCE_URL}
4875+
URL_HASH "SHA256=${ARROW_AWS_LC_BUILD_SHA256_CHECKSUM}"
4876+
CMAKE_ARGS ${AWS_LC_CMAKE_ARGS}
4877+
BUILD_BYPRODUCTS ${AWS_LC_STATIC_LIBRARY})
4878+
add_dependencies(AWS::crypto aws_lc_ep)
4879+
4880+
set(S2N_TLS_CMAKE_ARGS ${AWSSDK_COMMON_CMAKE_ARGS})
4881+
list(APPEND
4882+
S2N_TLS_CMAKE_ARGS
4883+
-DS2N_INTERN_LIBCRYPTO=ON # internalize libcrypto to avoid name conflict with openssl
4884+
-DCMAKE_PREFIX_PATH=${AWS_LC_PREFIX}) # path to find crypto provided by aws-lc
4885+
4886+
externalproject_add(s2n_tls_ep
4887+
${EP_COMMON_OPTIONS}
4888+
URL ${S2N_TLS_SOURCE_URL}
4889+
URL_HASH "SHA256=${ARROW_S2N_TLS_BUILD_SHA256_CHECKSUM}"
4890+
CMAKE_ARGS ${S2N_TLS_CMAKE_ARGS}
4891+
BUILD_BYPRODUCTS ${S2N_TLS_STATIC_LIBRARY}
4892+
DEPENDS aws_lc_ep)
4893+
add_dependencies(AWS::s2n-tls s2n_tls_ep)
48554894
endif()
4856-
externalproject_add(s2n_tls_ep
4857-
${EP_COMMON_OPTIONS}
4858-
URL ${S2N_TLS_SOURCE_URL}
4859-
URL_HASH "SHA256=${ARROW_S2N_TLS_BUILD_SHA256_CHECKSUM}"
4860-
CMAKE_ARGS ${S2N_TLS_CMAKE_ARGS}
4861-
BUILD_BYPRODUCTS ${S2N_TLS_STATIC_LIBRARY})
4862-
add_dependencies(AWS::s2n-tls s2n_tls_ep)
48634895

48644896
externalproject_add(aws_c_cal_ep
48654897
${EP_COMMON_OPTIONS}
@@ -4870,13 +4902,17 @@ macro(build_awssdk)
48704902
DEPENDS aws_c_common_ep)
48714903
add_dependencies(AWS::aws-c-cal aws_c_cal_ep)
48724904

4905+
set(AWS_C_IO_DEPENDS aws_c_common_ep aws_c_cal_ep)
4906+
if(TARGET s2n_tls_ep)
4907+
list(APPEND AWS_C_IO_DEPENDS s2n_tls_ep)
4908+
endif()
48734909
externalproject_add(aws_c_io_ep
48744910
${EP_COMMON_OPTIONS}
48754911
URL ${AWS_C_IO_SOURCE_URL}
48764912
URL_HASH "SHA256=${ARROW_AWS_C_IO_BUILD_SHA256_CHECKSUM}"
48774913
CMAKE_ARGS ${AWSSDK_COMMON_CMAKE_ARGS}
48784914
BUILD_BYPRODUCTS ${AWS_C_IO_STATIC_LIBRARY}
4879-
DEPENDS aws_c_common_ep s2n_tls_ep aws_c_cal_ep)
4915+
DEPENDS ${AWS_C_IO_DEPENDS})
48804916
add_dependencies(AWS::aws-c-io aws_c_io_ep)
48814917

48824918
externalproject_add(aws_c_event_stream_ep
@@ -4985,9 +5021,14 @@ macro(build_awssdk)
49855021
set_property(TARGET aws-cpp-sdk-core
49865022
APPEND
49875023
PROPERTY INTERFACE_LINK_LIBRARIES CURL::libcurl)
4988-
set_property(TARGET CURL::libcurl
5024+
set_property(TARGET AWS::aws-c-cal
49895025
APPEND
4990-
PROPERTY INTERFACE_LINK_LIBRARIES OpenSSL::SSL)
5026+
PROPERTY INTERFACE_LINK_LIBRARIES OpenSSL::Crypto OpenSSL::SSL)
5027+
if(APPLE)
5028+
set_property(TARGET AWS::aws-c-cal
5029+
APPEND
5030+
PROPERTY INTERFACE_LINK_LIBRARIES "-framework Security")
5031+
endif()
49915032
if(ZLIB_VENDORED)
49925033
set_property(TARGET aws-cpp-sdk-core
49935034
APPEND
@@ -5003,6 +5044,13 @@ macro(build_awssdk)
50035044
"wininet.lib"
50045045
"userenv.lib"
50055046
"version.lib")
5047+
set_property(TARGET AWS::aws-c-cal
5048+
APPEND
5049+
PROPERTY INTERFACE_LINK_LIBRARIES
5050+
"bcrypt.lib"
5051+
"ncrypt.lib"
5052+
"Secur32.lib"
5053+
"Shlwapi.lib")
50065054
endif()
50075055

50085056
# AWSSDK is static-only build

cpp/src/arrow/ArrowConfig.cmake.in

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,13 +112,18 @@ if(TARGET Arrow::arrow_static AND NOT TARGET Arrow::arrow_bundled_dependencies)
112112
find_library(CORE_FOUNDATION CoreFoundation)
113113
target_link_libraries(Arrow::arrow_bundled_dependencies
114114
INTERFACE ${CORE_FOUNDATION})
115+
find_library(SECURITY Security)
116+
target_link_libraries(Arrow::arrow_bundled_dependencies INTERFACE ${SECURITY})
115117
elseif(WIN32)
116118
target_link_libraries(Arrow::arrow_bundled_dependencies
117119
INTERFACE "winhttp.lib"
118120
"bcrypt.lib"
119121
"wininet.lib"
120122
"userenv.lib"
121-
"version.lib")
123+
"version.lib"
124+
"ncrypt.lib"
125+
"Secur32.lib"
126+
"Shlwapi.lib")
122127
endif()
123128
endif()
124129
cmake_policy(POP)

cpp/src/arrow/filesystem/CMakeLists.txt

Lines changed: 27 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -48,19 +48,6 @@ if(ARROW_GCS)
4848
endif()
4949

5050
if(ARROW_S3)
51-
set(ARROW_S3_BUILD_TESTS ${ARROW_BUILD_TESTS})
52-
get_target_property(AWS_CPP_SDK_S3_TYPE aws-cpp-sdk-s3 TYPE)
53-
# We disable S3 filesystem tests with bundled (static linked) AWS
54-
# C++ SDK because it's difficult to initialize underlying S3 library
55-
# properly.
56-
if(AWS_CPP_SDK_S3_TYPE STREQUAL "STATIC_LIBRARY")
57-
set(ARROW_S3_BUILD_TESTS OFF)
58-
endif()
59-
else()
60-
set(ARROW_S3_BUILD_TESTS OFF)
61-
endif()
62-
63-
if(ARROW_S3_BUILD_TESTS)
6451
add_arrow_test(s3fs_test
6552
SOURCES
6653
s3fs_test.cc
@@ -70,10 +57,33 @@ if(ARROW_S3_BUILD_TESTS)
7057
EXTRA_LINK_LIBS
7158
Boost::filesystem
7259
Boost::system)
73-
add_executable(arrow-s3fs-narrative-test s3fs_narrative_test.cc)
74-
target_link_libraries(arrow-s3fs-narrative-test ${ARROW_TEST_LINK_LIBS}
75-
${GFLAGS_LIBRARIES} GTest::gtest)
76-
add_dependencies(arrow-tests arrow-s3fs-narrative-test)
60+
if(TARGET arrow-s3fs-test)
61+
set(ARROW_S3FS_TEST_COMPILE_DEFINITIONS)
62+
get_target_property(AWS_CPP_SDK_S3_TYPE aws-cpp-sdk-s3 TYPE)
63+
# We need to initialize AWS C++ SDK for direct use (not via
64+
# arrow::fs::S3FileSystem) in arrow-s3fs-test if we use static AWS
65+
# C++ SDK. Because AWS C++ SDK has internal static variables that
66+
# aren't shared in libarrow and arrow-s3fs-test. It means that
67+
# arrow::fs::InitializeS3() doesn't initialize AWS C++ SDK that is
68+
# directly used in arrow-s3fs-test.
69+
#
70+
# But it seems that internal static variables in AWS C++ SDK are
71+
# shared on macOS even if we link static AWS C++ SDK to both
72+
# libarrow and arrow-s3fs-test. So we don't need to initialize AWS
73+
# C++ SDK in arrow-s3fs-test on macOS.
74+
if(AWS_CPP_SDK_S3_TYPE STREQUAL "STATIC_LIBRARY" AND NOT APPLE)
75+
list(APPEND ARROW_S3FS_TEST_COMPILE_DEFINITIONS "AWS_CPP_SDK_S3_NOT_SHARED")
76+
endif()
77+
target_compile_definitions(arrow-s3fs-test
78+
PRIVATE ${ARROW_S3FS_TEST_COMPILE_DEFINITIONS})
79+
endif()
80+
81+
if(ARROW_BUILD_TESTS)
82+
add_executable(arrow-s3fs-narrative-test s3fs_narrative_test.cc)
83+
target_link_libraries(arrow-s3fs-narrative-test ${ARROW_TEST_LINK_LIBS}
84+
${GFLAGS_LIBRARIES} GTest::gtest)
85+
add_dependencies(arrow-tests arrow-s3fs-narrative-test)
86+
endif()
7787

7888
if(ARROW_BUILD_BENCHMARKS AND ARROW_PARQUET)
7989
add_arrow_benchmark(s3fs_benchmark

cpp/src/arrow/filesystem/s3fs_test.cc

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,8 +150,28 @@ class AwsTestMixin : public ::testing::Test {
150150
// EC2 metadata endpoint
151151
AwsTestMixin() : ec2_metadata_disabled_guard_("AWS_EC2_METADATA_DISABLED", "true") {}
152152

153+
void SetUp() override {
154+
#ifdef AWS_CPP_SDK_S3_NOT_SHARED
155+
auto aws_log_level = Aws::Utils::Logging::LogLevel::Fatal;
156+
aws_options_.loggingOptions.logLevel = aws_log_level;
157+
aws_options_.loggingOptions.logger_create_fn = [&aws_log_level] {
158+
return std::make_shared<Aws::Utils::Logging::ConsoleLogSystem>(aws_log_level);
159+
};
160+
Aws::InitAPI(aws_options_);
161+
#endif
162+
}
163+
164+
void TearDown() override {
165+
#ifdef AWS_CPP_SDK_S3_NOT_SHARED
166+
Aws::ShutdownAPI(aws_options_);
167+
#endif
168+
}
169+
153170
private:
154171
EnvVarGuard ec2_metadata_disabled_guard_;
172+
#ifdef AWS_CPP_SDK_S3_NOT_SHARED
173+
Aws::SDKOptions aws_options_;
174+
#endif
155175
};
156176

157177
class S3TestMixin : public AwsTestMixin {

cpp/thirdparty/versions.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@ ARROW_AWS_CHECKSUMS_BUILD_VERSION=v0.1.13
4949
ARROW_AWS_CHECKSUMS_BUILD_SHA256_CHECKSUM=0f897686f1963253c5069a0e495b85c31635ba146cd3ac38cc2ea31eaf54694d
5050
ARROW_AWS_CRT_CPP_BUILD_VERSION=v0.18.16
5151
ARROW_AWS_CRT_CPP_BUILD_SHA256_CHECKSUM=9e69bc1dc4b50871d1038aa9ff6ddeb4c9b28f7d6b5e5b1b69041ccf50a13483
52+
ARROW_AWS_LC_BUILD_VERSION=v1.3.0
53+
ARROW_AWS_LC_BUILD_SHA256_CHECKSUM=ae96a3567161552744fc0cae8b4d68ed88b1ec0f3d3c98700070115356da5a37
5254
ARROW_AWSSDK_BUILD_VERSION=1.10.55
5355
ARROW_AWSSDK_BUILD_SHA256_CHECKSUM=2d552fb1a84bef4a9b65e34aa7031851ed2aef5319e02cc6e4cb735c48aa30de
5456
ARROW_BOOST_BUILD_VERSION=1.81.0
@@ -135,6 +137,7 @@ DEPENDENCIES=(
135137
"ARROW_AWS_C_SDKUTILS_URL aws-c-sdkutils-${ARROW_AWS_C_SDKUTILS_BUILD_VERSION}.tar.gz https://github.com/awslabs/aws-c-sdkutils/archive/${ARROW_AWS_C_SDKUTILS_BUILD_VERSION}.tar.gz"
136138
"ARROW_AWS_CHECKSUMS_URL aws-checksums-${ARROW_AWS_CHECKSUMS_BUILD_VERSION}.tar.gz https://github.com/awslabs/aws-checksums/archive/${ARROW_AWS_CHECKSUMS_BUILD_VERSION}.tar.gz"
137139
"ARROW_AWS_CRT_CPP_URL aws-crt-cpp-${ARROW_AWS_CRT_CPP_BUILD_VERSION}.tar.gz https://github.com/awslabs/aws-crt-cpp/archive/${ARROW_AWS_CRT_CPP_BUILD_VERSION}.tar.gz"
140+
"ARROW_AWS_LC_URL aws-lc-${ARROW_AWS_LC_BUILD_VERSION}.tar.gz https://github.com/awslabs/aws-lc/archive/${ARROW_AWS_LC_BUILD_VERSION}.tar.gz"
138141
"ARROW_AWSSDK_URL aws-sdk-cpp-${ARROW_AWSSDK_BUILD_VERSION}.tar.gz https://github.com/aws/aws-sdk-cpp/archive/${ARROW_AWSSDK_BUILD_VERSION}.tar.gz"
139142
"ARROW_BOOST_URL boost-${ARROW_BOOST_BUILD_VERSION}.tar.gz https://apache.jfrog.io/artifactory/arrow/thirdparty/7.0.0/boost_${ARROW_BOOST_BUILD_VERSION//./_}.tar.gz"
140143
"ARROW_BROTLI_URL brotli-${ARROW_BROTLI_BUILD_VERSION}.tar.gz https://github.com/google/brotli/archive/${ARROW_BROTLI_BUILD_VERSION}.tar.gz"

0 commit comments

Comments
 (0)