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

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

commit b8b377d78e580dbec2e6c332a0d0fd05ea21ba05
Author: Joe McDonnell <[email protected]>
AuthorDate: Wed Feb 11 22:51:51 2026 -0800

    IMPALA-14508/IMPALA-14513/IMPALA-14717: Bump toolchain to pick up new CMake 
/ OpenLDAP / Curl
    
    This uses a new toolchain to fix a few different JIRAs:
    1.  This bumps the version of CMake to 3.31.11
       - CMake changed its policy around PackageName_ROOT variables to
         allow the all-caps (PACKAGENAME_ROOT) and we adopt the new policy.
       - CMake deprecated its current FindBoost module, and this switches to
         this BoostConfig.cmake file. This removes a bunch of legacy options
         around this.
    2. This bumps the version of OpenLDAP to 2.5.20 (which required OpenSSL 
1.1.1)
    3. This bumps the verison of Curl to 8.17.0 (which requires fixing the
       error message in one test)
    4. This changes the CMake code to require OpenSSL 1.1.1.
    
    Testing:
     - Ran core job
    
    Change-Id: Icc3a6d965a04a761cd443e27214dec811ec9863f
    Reviewed-on: http://gerrit.cloudera.org:8080/23968
    Reviewed-by: Joe McDonnell <[email protected]>
    Reviewed-by: Michael Smith <[email protected]>
    Tested-by: Joe McDonnell <[email protected]>
---
 CMakeLists.txt                                     | 53 +++++++++-------------
 be/CMakeLists.txt                                  |  2 +-
 bin/impala-config.sh                               | 14 +++---
 cmake_modules/FindHDFS.cmake                       |  5 +-
 cmake_modules/FindThriftCpp.cmake                  |  4 +-
 cmake_modules/kudu_cmake_fns.txt                   |  2 +-
 .../apache/impala/customcluster/JwtHttpTest.java   |  2 +-
 7 files changed, 36 insertions(+), 46 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 75ec07d25..a4803ef35 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -17,6 +17,13 @@
 
 cmake_minimum_required(VERSION 3.22)
 
+# CMP0144 controls how CMake find_package() interacts with X_ROOT
+# variables. The NEW policy respects both Package_ROOT (case-sensitive)
+# and PACKAGE_ROOT (all-caps). Since we tend to use all-caps names
+# (e.g. BOOST_ROOT), this is a better setting for us (OLD is only the
+# case-sensitive). Explicitly setting this avoids several verbose warnings.
+cmake_policy(SET CMP0144 NEW)
+
 # This is a Kudu-specific flag that disables Kudu targets that are test-only.
 set(NO_TESTS 1)
 
@@ -153,36 +160,6 @@ set_dep_root(CALLONCEHACK)
 set_dep_root(CLOUDFLAREZLIB)
 set_dep_root(OPENTELEMETRY_CPP)
 
-# The boost-cmake project hasn't been maintained for years. Let's make sure we
-# don't accidentally use it if it can be found.
-set(Boost_NO_BOOST_CMAKE ON)
-
-# Make Boost follow the preference of shared libraries vs static libraries.
-if(BUILD_SHARED_LIBS)
-  set(Boost_USE_STATIC_LIBS OFF)
-else()
-  set(Boost_USE_STATIC_LIBS ON)
-endif()
-# Always use the static Boost runtime
-set(Boost_USE_STATIC_RUNTIME ON)
-
-# Newer versions of boost (including the version in toolchain) don't build 
separate
-# multithreaded versions (they always are). Make sure to pick those up.
-# TODO: understand the consequence of leaving this ON (the default value).
-set(Boost_USE_MULTITHREADED OFF)
-
-# The casing and underscoring expected for these properties varies between
-# versions of CMake. Multiple inconsistent versions may be present here
-# intentionally to provide what a wide range of versions expects.
-set(Boost_NO_SYSTEM_PATHS true)
-set(BOOST_LIBRARYDIR ${BOOST_ROOT}/lib)
-set(BOOST_INCLUDEDIR ${BOOST_ROOT}/include)
-set(Boost_INCLUDE_DIR ${BOOST_INCLUDEDIR})
-
-if (CMAKE_DEBUG)
-  set(Boost_DEBUG TRUE)
-endif()
-
 # Adds a third-party library with name ${NAME}. If BUILD_SHARED_LIBS is true, 
the new
 # library refers to ${SHARED_LIB}; otherwise it refers to ${STATIC_LIB}. If 
only one
 # library (static or shared) is provided, it is used regardless of 
BUILD_SHARED_LIBS. The
@@ -214,8 +191,20 @@ function(IMPALA_ADD_THIRDPARTY_LIB NAME HEADER STATIC_LIB 
SHARED_LIB)
   endif()
 endfunction()
 
+# Make Boost follow the preference of shared libraries vs static libraries.
+if(BUILD_SHARED_LIBS)
+  set(Boost_USE_STATIC_LIBS OFF)
+else()
+  set(Boost_USE_STATIC_LIBS ON)
+endif()
+
+if (CMAKE_DEBUG)
+  set(Boost_DEBUG TRUE)
+endif()
 
-find_package(Boost REQUIRED COMPONENTS thread regex filesystem system 
date_time random locale serialization)
+find_package(Boost CONFIG REQUIRED
+  COMPONENTS thread regex filesystem system date_time random locale 
serialization
+  NO_SYSTEM_ENVIRONMENT_PATH NO_CMAKE_SYSTEM_PATH)
 # Mark Boost as a system header to avoid compile warnings.
 include_directories(SYSTEM ${Boost_INCLUDE_DIRS})
 message(STATUS "Boost include dir: " ${Boost_INCLUDE_DIRS})
@@ -223,7 +212,7 @@ message(STATUS "Boost libraries: ${Boost_LIBRARIES}")
 
 # Use OpenSSL from the system, because that is the closest match to the 
version that this
 # build will use when it is deployed.
-find_package(OpenSSL 1.0.2 REQUIRED)
+find_package(OpenSSL 1.1.1 REQUIRED)
 
 # OpenSSL, being a security dependency, is always dynamically linked.
 IMPALA_ADD_THIRDPARTY_LIB(openssl_ssl ${OPENSSL_INCLUDE_DIR} "" 
${OPENSSL_SSL_LIBRARY})
diff --git a/be/CMakeLists.txt b/be/CMakeLists.txt
index 69da6f511..32442d431 100644
--- a/be/CMakeLists.txt
+++ b/be/CMakeLists.txt
@@ -457,7 +457,7 @@ set(CLANG_INCLUDE_FLAGS
   "-I${AVRO_INCLUDE_DIR}"
   "-I${ORC_INCLUDE_DIR}"
   # Include Boost as a system directory to suppress warnings from headers.
-  "-isystem${BOOST_INCLUDEDIR}"
+  "-isystem${Boost_INCLUDE_DIRS}"
   "-I${KUDU_CLIENT_INCLUDE_DIR}"
   # Required so that jni.h can be found during Clang compilation
   "-I${JAVA_INCLUDE_PATH}"
diff --git a/bin/impala-config.sh b/bin/impala-config.sh
index 0c9808f0c..7306e1bc2 100755
--- a/bin/impala-config.sh
+++ b/bin/impala-config.sh
@@ -81,13 +81,13 @@ export USE_AVRO_CPP=${USE_AVRO_CPP:=false}
 # moving to a different build of the toolchain, e.g. when a version is bumped 
or a
 # compile option is changed. The build id can be found in the output of the 
toolchain
 # build jobs, it is constructed from the build number and toolchain git hash 
prefix.
-export IMPALA_TOOLCHAIN_BUILD_ID_AARCH64=159-1fade8203e
-export IMPALA_TOOLCHAIN_BUILD_ID_X86_64=612-1fade8203e
+export IMPALA_TOOLCHAIN_BUILD_ID_AARCH64=169-65bcf0ca99
+export IMPALA_TOOLCHAIN_BUILD_ID_X86_64=630-65bcf0ca99
 export IMPALA_TOOLCHAIN_REPO=\
 ${IMPALA_TOOLCHAIN_REPO:-https://github.com/cloudera/native-toolchain.git}
 export IMPALA_TOOLCHAIN_BRANCH=${IMPALA_TOOLCHAIN_BRANCH:-master}
 export IMPALA_TOOLCHAIN_COMMIT_HASH=\
-${IMPALA_TOOLCHAIN_COMMIT_HASH-1fade8203e3df234dc5bab35cd32ff1f40d1db17}
+${IMPALA_TOOLCHAIN_COMMIT_HASH-65bcf0ca99082360dffe1484425ec9a77e1212ca}
 # Compare the build ref in build IDs by removing everything 
up-to-and-including the
 # first hyphen.
 if [ "${IMPALA_TOOLCHAIN_BUILD_ID_AARCH64#*-}" \
@@ -115,7 +115,7 @@ else
   export IMPALA_AVRO_VERSION=1.7.4-p5
 fi
 unset IMPALA_AVRO_URL
-export IMPALA_BINUTILS_VERSION=2.42
+export IMPALA_BINUTILS_VERSION=2.42-p24
 unset IMPALA_BINUTILS_URL
 export IMPALA_BOOST_VERSION=1.74.0-p1
 unset IMPALA_BOOST_URL
@@ -125,11 +125,11 @@ export IMPALA_BZIP2_VERSION=1.0.8-p2
 unset IMPALA_BZIP2_URL
 export IMPALA_CCTZ_VERSION=2.2
 unset IMPALA_CCTZ_URL
-export IMPALA_CMAKE_VERSION=3.22.2
+export IMPALA_CMAKE_VERSION=3.31.11
 unset IMPALA_CMAKE_URL
 export IMPALA_CRCUTIL_VERSION=2903870057d2f1f109b245650be29e856dc8b646
 unset IMPALA_CRCUTIL_URL
-export IMPALA_CURL_VERSION=8.14.1
+export IMPALA_CURL_VERSION=8.17.0
 unset IMPALA_CURL_URL
 export IMPALA_CYRUS_SASL_VERSION=2.1.23
 unset IMPALA_CYRUS_SASL_URL
@@ -177,7 +177,7 @@ export IMPALA_LZ4_VERSION=1.9.3
 unset IMPALA_LZ4_URL
 export IMPALA_ZSTD_VERSION=1.5.2
 unset IMPALA_ZSTD_URL
-export IMPALA_OPENLDAP_VERSION=2.4.47
+export IMPALA_OPENLDAP_VERSION=2.5.20
 unset IMPALA_OPENLDAP_URL
 export IMPALA_ORC_VERSION=1.7.9-p11
 unset IMPALA_ORC_URL
diff --git a/cmake_modules/FindHDFS.cmake b/cmake_modules/FindHDFS.cmake
index 640c1b832..f451c7383 100644
--- a/cmake_modules/FindHDFS.cmake
+++ b/cmake_modules/FindHDFS.cmake
@@ -25,8 +25,9 @@
 #  HDFS_FOUND, If false, do not try to use ant
 #  hdfsstatic
 
-exec_program(hadoop ARGS version OUTPUT_VARIABLE Hadoop_VERSION
-             RETURN_VALUE Hadoop_RETURN)
+execute_process(COMMAND hadoop version
+  OUTPUT_VARIABLE Hadoop_VERSION
+  RESULT_VARIABLE Hadoop_RETURN)
 
 # Only look in HADOOP_INCLUDE_DIR
 find_path(HDFS_INCLUDE_DIR hdfs.h PATHS
diff --git a/cmake_modules/FindThriftCpp.cmake 
b/cmake_modules/FindThriftCpp.cmake
index 964a8ff12..57e8f9714 100644
--- a/cmake_modules/FindThriftCpp.cmake
+++ b/cmake_modules/FindThriftCpp.cmake
@@ -66,8 +66,8 @@ find_program(THRIFT_CPP_COMPILER thrift
 if (THRIFT_CPP_LIB)
   set(THRIFT_CPP_LIBS ${THRIFT_CPP_LIB})
   set(THRIFT_CPP_STATIC_LIB ${THRIFT_CPP_STATIC_LIB_PATH}/libthrift.a)
-  exec_program(${THRIFT_CPP_COMPILER}
-    ARGS -version OUTPUT_VARIABLE THRIFT_CPP_VERSION RETURN_VALUE 
THRIFT_CPP_RETURN)
+  execute_process(COMMAND ${THRIFT_CPP_COMPILER} -version
+    OUTPUT_VARIABLE THRIFT_CPP_VERSION RESULT_VARIABLE THRIFT_CPP_RETURN)
   if (NOT THRIFT_CPP_FIND_QUIETLY)
     message(STATUS "Thrift version: ${THRIFT_CPP_VERSION}")
   endif ()
diff --git a/cmake_modules/kudu_cmake_fns.txt b/cmake_modules/kudu_cmake_fns.txt
index 2c5250bd3..d39ad5957 100644
--- a/cmake_modules/kudu_cmake_fns.txt
+++ b/cmake_modules/kudu_cmake_fns.txt
@@ -20,7 +20,7 @@
 # also defines a shim method (ADD_KUDU_TEST) to simplify importing Kudu's 
utility
 # libraries.
 
-cmake_minimum_required(VERSION 3.2.3)
+cmake_minimum_required(VERSION 3.11.2)
 include(CMakeParseArguments)
 
 # add_library() wrapper provided for compatibility with Kudu. In the original 
version,
diff --git a/fe/src/test/java/org/apache/impala/customcluster/JwtHttpTest.java 
b/fe/src/test/java/org/apache/impala/customcluster/JwtHttpTest.java
index 0ddb9e7fe..083851306 100644
--- a/fe/src/test/java/org/apache/impala/customcluster/JwtHttpTest.java
+++ b/fe/src/test/java/org/apache/impala/customcluster/JwtHttpTest.java
@@ -452,7 +452,7 @@ public class JwtHttpTest {
     String expectedErrString = String.format("Impalad services did not start 
correctly, "
         + "exiting.  Error: Error downloading JWKS from '%s': Network error: 
curl "
         + "error: SSL peer certificate or SSH remote key was not OK: SSL 
certificate "
-        + "problem: unable to get local issuer certificate", jwksHttpUrl);
+        + "OpenSSL verify result: unable to get local issuer certificate", 
jwksHttpUrl);
 
     // cluster start will fail because the TLS cert returned by the
     // JWKS server is not trusted

Reply via email to