This is an automated email from the ASF dual-hosted git repository. maskit pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/trafficserver.git
The following commit(s) were added to refs/heads/master by this push: new 0e321c9866 cmake: Add a check for BoringSSL version (#10949) 0e321c9866 is described below commit 0e321c98660b6a931d760403295848d77f00cded Author: Masakazu Kitajo <mas...@apache.org> AuthorDate: Tue Jan 9 22:08:23 2024 -0700 cmake: Add a check for BoringSSL version (#10949) --- CMakeLists.txt | 18 ++++++++++++++---- cmake/CheckOpenSSLIsBoringSSL.cmake | 12 ++++++++++-- 2 files changed, 24 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d7bf216bd4..4646c54356 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -281,10 +281,20 @@ find_package(PCRE REQUIRED) include(CheckOpenSSLIsBoringSSL) find_package(OpenSSL REQUIRED) -check_openssl_is_boringssl(OPENSSL_IS_BORINGSSL "${OPENSSL_INCLUDE_DIR}") - -if(NOT OPENSSL_IS_BORINGSSL AND OPENSSL_VERSION VERSION_LESS "1.1.1") - message(FATAL_ERROR "OpenSSL version greater than 1.0.1 or BoringSSL required") +check_openssl_is_boringssl(OPENSSL_IS_BORINGSSL BORINGSSL_VERSION "${OPENSSL_INCLUDE_DIR}") + +if(OPENSSL_IS_BORINGSSL) + # The consensus is a commit newer than a1843d660b47116207877614af53defa767be46a + # The commit that changes API_VERSION to 27 is actually a little bit older than the commit but still a reasonable commit + set(min_bssl "27") + if(BORINGSSL_VERSION VERSION_LESS "${min_bssl}") + message(FATAL_ERROR "BoringSSL API version >= ${min_bssl} or OpenSSL required") + endif() +else() + set(min_ossl "1.1.1") + if(OPENSSL_VERSION VERSION_LESS "${min_ossl}") + message(FATAL_ERROR "OpenSSL version >= ${min_ossl} or BoringSSL required") + endif() endif() if(OPENSSL_VERSION VERSION_GREATER_EQUAL "3.0.0") diff --git a/cmake/CheckOpenSSLIsBoringSSL.cmake b/cmake/CheckOpenSSLIsBoringSSL.cmake index a779c487a1..b5c5c12831 100644 --- a/cmake/CheckOpenSSLIsBoringSSL.cmake +++ b/cmake/CheckOpenSSLIsBoringSSL.cmake @@ -15,7 +15,7 @@ # ####################### -function(CHECK_OPENSSL_IS_BORINGSSL OUT_VAR OPENSSL_INCLUDE_DIR) +function(CHECK_OPENSSL_IS_BORINGSSL OUT_IS_BORING OUT_VERSION OPENSSL_INCLUDE_DIR) set(CHECK_PROGRAM " #include <openssl/base.h> @@ -31,5 +31,13 @@ function(CHECK_OPENSSL_IS_BORINGSSL OUT_VAR OPENSSL_INCLUDE_DIR) ) set(CMAKE_REQUIRED_INCLUDES "${OPENSSL_INCLUDE_DIR}") include(CheckCXXSourceCompiles) - check_cxx_source_compiles("${CHECK_PROGRAM}" ${OUT_VAR}) + check_cxx_source_compiles("${CHECK_PROGRAM}" ${OUT_IS_BORING}) + if(${${OUT_IS_BORING}}) + file(STRINGS "${OPENSSL_INCLUDE_DIR}/openssl/base.h" version_line REGEX "^#define BORINGSSL_API_VERSION [0-9]+") + string(REGEX MATCH "[0-9]+" version ${version_line}) + set(${OUT_VERSION} + ${version} + PARENT_SCOPE + ) + endif() endfunction()