diff options
Diffstat (limited to 'dev-db/mysql-connector-c++/files')
-rw-r--r-- | dev-db/mysql-connector-c++/files/mysql-connector-c++-1.1.11-fix-cpp-linking.patch | 15 | ||||
-rw-r--r-- | dev-db/mysql-connector-c++/files/mysql-connector-c++-1.1.8-fix-mariadb.patch | 45 | ||||
-rw-r--r-- | dev-db/mysql-connector-c++/files/mysql-connector-c++-8.0.15-fix-build.patch | 307 | ||||
-rw-r--r-- | dev-db/mysql-connector-c++/files/mysql-connector-c++-8.0.19-fix-build.patch (renamed from dev-db/mysql-connector-c++/files/mysql-connector-c++-8.0.18-fix-build.patch) | 46 | ||||
-rw-r--r-- | dev-db/mysql-connector-c++/files/mysql-connector-c++-8.0.19-fix-libressl-support.patch | 89 |
5 files changed, 128 insertions, 374 deletions
diff --git a/dev-db/mysql-connector-c++/files/mysql-connector-c++-1.1.11-fix-cpp-linking.patch b/dev-db/mysql-connector-c++/files/mysql-connector-c++-1.1.11-fix-cpp-linking.patch deleted file mode 100644 index 4b8a4a983096..000000000000 --- a/dev-db/mysql-connector-c++/files/mysql-connector-c++-1.1.11-fix-cpp-linking.patch +++ /dev/null @@ -1,15 +0,0 @@ -https://bugs.mysql.com/bug.php?id=90727 - ---- a/FindMySQL.cmake -+++ b/FindMySQL.cmake -@@ -700,8 +700,10 @@ endif() - - # For dynamic linking use the built-in sys and strings - if(NOT MYSQLCLIENT_STATIC_LINKING) -+IF(CMAKE_SYSTEM_NAME MATCHES "SunOS") - list(APPEND SYS_LIBRARIES "mysql_sys") - list(APPEND SYS_LIBRARIES "mysql_strings") -+endif() - list(APPEND SYS_LIBRARIES ${MYSQL_LIBRARIES}) - SET(MYSQL_LIBRARIES ${SYS_LIBRARIES}) - diff --git a/dev-db/mysql-connector-c++/files/mysql-connector-c++-1.1.8-fix-mariadb.patch b/dev-db/mysql-connector-c++/files/mysql-connector-c++-1.1.8-fix-mariadb.patch deleted file mode 100644 index 35ed218e18dc..000000000000 --- a/dev-db/mysql-connector-c++/files/mysql-connector-c++-1.1.8-fix-mariadb.patch +++ /dev/null @@ -1,45 +0,0 @@ -diff -aurN a/driver/mysql_connection.cpp b/driver/mysql_connection.cpp ---- a/driver/mysql_connection.cpp 2016-12-14 04:58:54.000000000 -0500 -+++ b/driver/mysql_connection.cpp 2017-01-26 16:33:58.086005627 -0500 -@@ -1023,6 +1023,7 @@ - proxy->get_character_set_info(&cs); - *(static_cast<int *>(optionValue)) = cs.mbmaxlen; - /* mysql_get_option() was added in mysql 5.7.3 version */ -+#if !defined( MARIADB_BASE_VERSION ) && !defined ( MARIADB_VERSION_ID ) - } else if ( proxy->get_server_version() >= 50703 ) { - try { - if (GET_CONN_OPTION(optionName, optionValue, intOptions)) { -@@ -1036,6 +1037,7 @@ - CPP_ERR_FMT("Unsupported option : %d:(%s) %s", proxy->errNo(), proxy->sqlstate().c_str(), proxy->error().c_str()); - throw e; - } -+#endif - } - } - /* }}} */ -@@ -1053,11 +1055,13 @@ - MY_CHARSET_INFO cs; - proxy->get_character_set_info(&cs); - return cs.dir ? sql::SQLString(cs.dir) : ""; -+#if !defined( MARIADB_BASE_VERSION ) && !defined ( MARIADB_VERSION_ID ) - } else if ( proxy->get_server_version() >= 50703 ) { - const char* optionValue= NULL; - if (GET_CONN_OPTION(optionName, &optionValue, stringOptions)) { - return optionValue ? sql::SQLString(optionValue) : ""; - } -+#endif - } - return ""; - } -diff -aurN a/driver/nativeapi/libmysql_static_proxy.cpp b/driver/nativeapi/libmysql_static_proxy.cpp ---- a/driver/nativeapi/libmysql_static_proxy.cpp 2017-01-26 16:35:46.256038741 -0500 -+++ b/driver/nativeapi/libmysql_static_proxy.cpp 2017-01-26 16:28:34.114915809 -0500 -@@ -319,7 +319,7 @@ - int - LibmysqlStaticProxy::get_option(MYSQL * mysql, enum mysql_option option, const void *arg) - { --#if MYSQL_VERSION_ID >= 50703 -+#if MYSQL_VERSION_ID >= 50703 && !defined( MARIADB_BASE_VERSION ) && !defined ( MARIADB_VERSION_ID ) - if (::mysql_get_option(mysql, option, arg)) { - throw sql::InvalidArgumentException("Unsupported option provided to mysql_get_option()"); - } else { diff --git a/dev-db/mysql-connector-c++/files/mysql-connector-c++-8.0.15-fix-build.patch b/dev-db/mysql-connector-c++/files/mysql-connector-c++-8.0.15-fix-build.patch deleted file mode 100644 index 4e3996914109..000000000000 --- a/dev-db/mysql-connector-c++/files/mysql-connector-c++-8.0.15-fix-build.patch +++ /dev/null @@ -1,307 +0,0 @@ ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -666,7 +666,7 @@ set_target_properties(connector PROPERTIES - - - install(TARGETS connector -- CONFIGURATIONS Release RelWithDebInfo -+ CONFIGURATIONS Release RelWithDebInfo Gentoo - ARCHIVE DESTINATION "${INSTALL_LIB_DIR_STATIC}" COMPONENT XDevAPIDev - RUNTIME DESTINATION "${INSTALL_LIB_DIR}" COMPONENT XDevAPIDll - LIBRARY DESTINATION "${INSTALL_LIB_DIR}" COMPONENT XDevAPIDll -@@ -737,6 +737,12 @@ TARGET_LINK_LIBRARIES(try connector) - SET_INTERFACE_OPTIONS(try devapi) - # ADD_GCOV(try) - -+IF(WITH_SSL STREQUAL "system") -+ find_package(OpenSSL REQUIRED) -+ TARGET_LINK_LIBRARIES(try ${OPENSSL_LIBRARIES}) -+ENDIF() -+ -+ - if(WITH_JDBC) - - add_executable(try_jdbc EXCLUDE_FROM_ALL try_jdbc.cc) ---- a/cdk/cmake/install_macros.cmake -+++ b/cdk/cmake/install_macros.cmake -@@ -327,7 +327,7 @@ FUNCTION(INSTALL_DEBUG_TARGET target) - DESTINATION ${ARG_DESTINATION} - ${RENAME_PARAM} - ${PERMISSIONS_${target_type}} -- CONFIGURATIONS Release RelWithDebInfo -+ CONFIGURATIONS Release RelWithDebInfo Gentoo - COMPONENT ${ARG_COMPONENT} - OPTIONAL) - -@@ -346,7 +346,7 @@ FUNCTION(INSTALL_DEBUG_TARGET target) - INSTALL(FILES ${debug_pdb_target_location} - DESTINATION ${ARG_PDB_DESTINATION} - ${PDB_RENAME_PARAM} -- CONFIGURATIONS Release RelWithDebInfo -+ CONFIGURATIONS Release RelWithDebInfo Gentoo - COMPONENT ${ARG_COMPONENT} - OPTIONAL) - ENDIF() ---- a/cdk/cmake/libutils.cmake -+++ b/cdk/cmake/libutils.cmake -@@ -282,14 +282,7 @@ function(add_library_ex TARGET) - endforeach() - - if(libs) -- -- if(${type} STREQUAL "STATIC") -- merge_static_libraries(${TARGET} ${libs}) -- add_dependencies(${TARGET} ${libs}) -- else() - target_link_libraries(${TARGET} PRIVATE ${libs}) -- endif() -- - endif() - - # ---- a/cdk/cmake/protobuf.cmake -+++ b/cdk/cmake/protobuf.cmake -@@ -26,201 +26,8 @@ - # along with this program; if not, write to the Free Software Foundation, Inc., - # 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - --# --# Usage: --# --# INCLUDE(protobuf) --# [USE_FULL_PROTOBUF()] --# --# MYSQLX_PROTOBUF_GENERATE_CPP(SRCS HDRS <protobuf definitions>) --# ADD_LIBRARY(target ... ${SRCS}) --# -- --if(DEFINED WITH_PROTOBUF) -- -- # -- # If WITH_PROTOBUF is defined, it should point at external location where -- # protobuf libraries were built using our CMakeLists.txt (so that -- # exports.cmake was produced). -- # -- -- if (NOT EXISTS "${WITH_PROTOBUF}/exports.cmake") -- message(FATAL_ERROR -- "Valid protobuf build not found at the given location" -- " (could not find exports.cmake): ${WITH_PROTOBUF}" -- ) -- endif() -- -- message("Using protobuf build at: ${WITH_PROTOBUF}") -- --else(DEFINED WITH_PROTOBUF) -- -- # -- # If external WITH_PROTOBUF location is not given, then we arrange for -- # building of protbuf from bundled sources in ${PROJECT_BINARY_DIR}/protobuf. -- # -- -- message("Configuring Protobuf build using cmake generator: ${CMAKE_GENERATOR}") -- file(REMOVE "${PROJECT_BINARY_DIR}/protobuf/CMakeCache.txt") -- file(MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/protobuf") -- -- # -- # Pick build configuration for the protobuf build. Normally we build using the -- # same build configuration that is used for building CDK (Release/Debug/etc.). -- # But we also support building CDK under non-standard build configuration -- # named 'Static' (this is a dirty trick we use to simplify building our MSIs). -- # Since protobuf does not know 'Static' build configuration, we build protobuf -- # under 'Release' configuration in that case. -- # -- # We need to handle two cases. For some build systems, like Makefiles, -- # the build configuration is specified at cmake time using CMAKE_BUILD_TYPE -- # variable. In that case we also set it during protobuf build configuration. -- # Another case is a multi-configuration build system like MSVC. In this case -- # we use generator expression to pick correct configuration when the build -- # command is invoked below. -- # -- -- if(CMAKE_BUILD_TYPE) -- if(CMAKE_BUILD_TYPE MATCHES "[Ss][Tt][Aa][Tt][Ii][Cc]") -- set(set_build_type -DCMAKE_BUILD_TYPE=Release) -- else() -- set(set_build_type -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}) -- endif() -- endif() -- -- set(CONFIG_EXPR -- $<$<CONFIG:Static>:Release>$<$<NOT:$<CONFIG:Static>>:$<CONFIG>> -- ) -- -- execute_process( -- COMMAND ${CMAKE_COMMAND} -- -G "${CMAKE_GENERATOR}" -- ${set_build_type} -- -DSTATIC_MSVCRT=${STATIC_MSVCRT} -- -DCMAKE_POSITION_INDEPENDENT_CODE=${CMAKE_POSITION_INDEPENDENT_CODE} -- -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} -- -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS} -- -DCMAKE_CXX_FLAGS_DEBUG=${CMAKE_CXX_FLAGS_DEBUG} -- -DCMAKE_CXX_FLAGS_RELEASE=${CMAKE_CXX_FLAGS_RELEASE} -- -DCMAKE_CXX_FLAGS_RELWITHDEBINFO=${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -- -DCMAKE_CXX_FLAGS_MINSIZEREL=${CMAKE_CXX_FLAGS_MINSIZEREL} -- -DCMAKE_STATIC_LINKER_FLAGS=${CMAKE_STATIC_LINKER_FLAGS} -- ${PROJECT_SOURCE_DIR}/protobuf -- WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/protobuf -- RESULT_VARIABLE protobuf_config -- ) -- -- if(protobuf_config) -- message(FATAL_ERROR "Could not configure Protobuf build: ${protobuf_config}") -- endif() -- -- set(WITH_PROTOBUF "${PROJECT_BINARY_DIR}/protobuf") -- --endif(DEFINED WITH_PROTOBUF) -- --# Import targets exported by protobuf -- --include(${WITH_PROTOBUF}/exports.cmake) -- --# --# Protobuf library targets imported above (pb_protobuf --# and pb_protobuf-lite) are local to the directory from which --# they were imported. This is not good if cdk is used as --# a sub-project of a parent project, because the parent project --# must have access to these targets. --# --# For that reason below we create global protobuf/protobuf-lite targets --# and copy their locations from the imported targets. --# --# Note: we can't use ALIAS library because it does not work with imported --# targets --# -- --add_library(protobuf STATIC IMPORTED GLOBAL) --add_library(protobuf-lite STATIC IMPORTED GLOBAL) -- --foreach(lib protobuf protobuf-lite) -- #message("processing: ${lib}") -- -- foreach(CONF NOCONFIG DEBUG RELEASE MINSIZEREL RELWITHDEBINFO) -- #message("- CONF: ${CONF}") -- -- get_target_property(LOC pb_${lib} IMPORTED_LOCATION_${CONF}) -- if(LOC) -- #message("- setting imported location to: ${LOC}") -- set_target_properties(${lib} PROPERTIES -- IMPORTED_LOCATION_${CONF} "${LOC}" -- ) -- set_property(TARGET ${lib} APPEND PROPERTY -- IMPORTED_CONFIGURATIONS ${CONF} -- ) -- endif() -- -- endforeach(CONF) -- --endforeach(lib) -- --# --# To support 'Static' build configuration the targets imported from the --# Protobuf project need to have IMPORTED_LOCATION_STATIC defined. We use --# 'Release' locations as Protobuf is built using 'Release' configuration in --# that case. --# -- --foreach(tgt protobuf protobuf-lite pb_protoc) -- -- get_target_property(LOC ${tgt} IMPORTED_LOCATION_RELEASE) -- set_property(TARGET ${tgt} PROPERTY IMPORTED_LOCATION_STATIC ${LOC}) -- --endforeach(tgt) -- -- --# protobuf depends on protobuf-lite -- --set_target_properties(protobuf PROPERTIES -- INTERFACE_LINK_LIBRARIES "protobuf-lite" --) -- -- --message("Protobuf include path: ${PROTOBUF_INCLUDE_DIR}") -- --set(PROTOBUF_INCLUDE_DIRS ${PROTOBUF_INCLUDE_DIR} -- CACHE INTERNAL "Protobuf include path" FORCE) --set(PROTOBUF_PROTOC_EXECUTABLE pb_protoc -- CACHE INTERNAL "Protobuf compiler" FORCE) -- --# --# Custom target build_protobuf ensures that Protobuf project is built. --# --# Note: this depends on Protobuf project generating the stamp file --# -- --if(NOT DEFINED PROTOBUF_BUILD_STAMP) -- message(FATAL_ERROR "Protobuf build stamp file not defined") --endif() -- -- --if(CMAKE_VERSION VERSION_LESS 3.0) -- add_custom_command(OUTPUT ${PROTOBUF_BUILD_STAMP} -- COMMAND ${CMAKE_COMMAND} --build . --config $<CONFIGURATION> -- WORKING_DIRECTORY ${WITH_PROTOBUF} -- COMMENT "Building protobuf using configuration: $(Configuration)" -- ) --else() -- add_custom_command(OUTPUT ${PROTOBUF_BUILD_STAMP} -- COMMAND ${CMAKE_COMMAND} --build . --config ${CONFIG_EXPR} -- WORKING_DIRECTORY ${WITH_PROTOBUF} -- COMMENT "Building protobuf using configuration: $(Configuration)" -- ) --endif() -- --add_custom_target(build_protobuf -- DEPENDS ${PROTOBUF_BUILD_STAMP} --) -- --add_dependencies(protobuf build_protobuf) --add_dependencies(protobuf-lite build_protobuf) --add_dependencies(pb_protoc build_protobuf) -+#SET(Protobuf_USE_STATIC_LIBS ON) -+find_package(Protobuf REQUIRED) - - # - # Choice between full and lite version of the library. ---- a/cdk/protocol/mysqlx/crud.cc -+++ b/cdk/protocol/mysqlx/crud.cc -@@ -295,7 +295,7 @@ public: - class Placeholder_conv_imp - : public Args_conv - { -- map<string, unsigned> m_map; -+ std::map<string, unsigned> m_map; - - public: - -@@ -303,7 +303,7 @@ public: - - unsigned conv_placeholder(const string &name) - { -- map<string, unsigned>::const_iterator it = m_map.find(name); -+ std::map<string, unsigned>::const_iterator it = m_map.find(name); - if (it == m_map.end()) - throw_error("Placeholder converter: Placeholder was not defined on args"); - //throw Generic_error((boost::format("Placeholder %s was not defined on args.") -@@ -314,7 +314,7 @@ public: - - void add_placeholder(const string &name) - { -- map<string, unsigned>::const_iterator it = m_map.find(name); -+ std::map<string, unsigned>::const_iterator it = m_map.find(name); - if (it != m_map.end()) - throw_error("Placeholder converter: Redefined placeholder"); - //throw Generic_error((boost::format("Redifined placeholder %s.") ---- a/jdbc.cmake -+++ b/jdbc.cmake -@@ -66,7 +66,7 @@ if(MYSQL_CONFIG_EXECUTABLE) - list(APPEND jdbc_cmake_opts -DMYSQL_CONFIG_EXECUTABLE=${MYSQL_CONFIG_EXECUTABLE}) - endif() - --list(APPEND jdbc_cmake_opts -DMYSQLCLIENT_STATIC_LINKING=ON) -+list(APPEND jdbc_cmake_opts -DMYSQLCLIENT_STATIC_LINKING=OFF) - - if(CMAKE_BUILD_TYPE) - if(CMAKE_BUILD_TYPE MATCHES "[Ss][Tt][Aa][Tt][Ii][Cc]") diff --git a/dev-db/mysql-connector-c++/files/mysql-connector-c++-8.0.18-fix-build.patch b/dev-db/mysql-connector-c++/files/mysql-connector-c++-8.0.19-fix-build.patch index 484220442ab8..b8976199afc5 100644 --- a/dev-db/mysql-connector-c++/files/mysql-connector-c++-8.0.18-fix-build.patch +++ b/dev-db/mysql-connector-c++/files/mysql-connector-c++-8.0.19-fix-build.patch @@ -1,6 +1,6 @@ --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -463,7 +463,7 @@ set_target_properties(connector PROPERTIES +@@ -475,7 +475,7 @@ set_target_properties(connector PROPERTIES install(TARGETS connector @@ -11,7 +11,7 @@ LIBRARY DESTINATION "${INSTALL_LIB_DIR}" COMPONENT XDevAPIDll --- a/cdk/cmake/DepFindProtobuf.cmake +++ b/cdk/cmake/DepFindProtobuf.cmake -@@ -48,197 +48,7 @@ if(TARGET Protobuf::pb) +@@ -48,229 +48,7 @@ if(TARGET Protobuf::pb) return() endif() @@ -52,10 +52,19 @@ - $<$<CONFIG:Static>:Release>$<$<NOT:$<CONFIG:Static>>:$<CONFIG>> -) - +-set(set_arch) +-if(CMAKE_GENERATOR_PLATFORM) +- set(set_arch -A ${CMAKE_GENERATOR_PLATFORM}) +-endif() +- +-set(set_toolset) +-if(CMAKE_GENERATOR_TOOLSET) +- set(set_toolset -T ${CMAKE_GENERATOR_TOOLSET}) +-endif() - -if(NOT EXISTS "${PB_BINARY_DIR}/exports.cmake") - -- message("==== Configuring Protobuf build using cmake generator: ${CMAKE_GENERATOR}") +- message("==== Configuring Protobuf build using cmake generator: ${CMAKE_GENERATOR} ${set_arch} ${set_toolset}") - - file(REMOVE "${PB_BINARY_DIR}/CMakeCache.txt") - file(MAKE_DIRECTORY "${PB_BINARY_DIR}") @@ -69,6 +78,8 @@ - execute_process( - COMMAND ${CMAKE_COMMAND} - -G "${CMAKE_GENERATOR}" +- ${set_arch} +- ${set_toolset} - ${set_build_type} - -DSTATIC_MSVCRT=${STATIC_MSVCRT} - -DCMAKE_POSITION_INDEPENDENT_CODE=${CMAKE_POSITION_INDEPENDENT_CODE} @@ -188,9 +199,27 @@ - ) -endif() - +-# +-# Try using parallel builds for protobuf. +-# +- +-include(ProcessorCount) +-ProcessorCount(N) +- +-MESSAGE("Processor Count: ${N}") +- +-set(opt_build) +-set(opt_tool) +-if(NOT N EQUAL 0) +- if(NOT CMAKE_VERSION VERSION_LESS 3.12) +- set(opt_build --parallel ${N}) +- elseif(CMAKE_MAKE_PROGRAM MATCHES "make") +- set(opt_tool -j${N}) +- endif() +-endif() - -add_custom_command(OUTPUT "${build_stamp}" -- COMMAND ${CMAKE_COMMAND} --build . --config ${CONFIG_EXPR} +- COMMAND ${CMAKE_COMMAND} --build . ${opt_build} --config ${CONFIG_EXPR} -- ${opt_tool} - COMMAND ${CMAKE_COMMAND} -E touch "${build_stamp}" - WORKING_DIRECTORY "${PB_BINARY_DIR}" - COMMENT "Building protobuf" @@ -200,17 +229,20 @@ - SOURCES "${build_stamp}" -) - +-set_target_properties(build_protobuf PROPERTIES FOLDER "Misc") +- -add_dependencies(Protobuf::pb-full build_protobuf) -add_dependencies(Protobuf::pb-lite build_protobuf) -add_dependencies(Protobuf::protoc build_protobuf) - -# TODO: Handle lite/full version - +- +find_package(Protobuf REQUIRED) - # Standard PROTOBUF_GENERATE_CPP modified to our usage -@@ -268,11 +78,11 @@ function(mysqlx_protobuf_generate_cpp SRCS HDRS) + +@@ -299,11 +77,11 @@ function(mysqlx_protobuf_generate_cpp SRCS HDRS) "${CMAKE_CURRENT_BINARY_DIR}/protobuf/${FIL_WE}.pb.h" COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_CURRENT_BINARY_DIR}/protobuf" @@ -238,7 +270,7 @@ add_coverage(cdk) --- a/cdk/protocol/mysqlx/CMakeLists.txt +++ b/cdk/protocol/mysqlx/CMakeLists.txt -@@ -125,11 +125,7 @@ target_include_directories(cdk_proto_mysqlx PRIVATE +@@ -126,11 +126,7 @@ target_include_directories(cdk_proto_mysqlx PRIVATE ${CMAKE_CURRENT_BINARY_DIR} ) diff --git a/dev-db/mysql-connector-c++/files/mysql-connector-c++-8.0.19-fix-libressl-support.patch b/dev-db/mysql-connector-c++/files/mysql-connector-c++-8.0.19-fix-libressl-support.patch new file mode 100644 index 000000000000..fc6eb777063e --- /dev/null +++ b/dev-db/mysql-connector-c++/files/mysql-connector-c++-8.0.19-fix-libressl-support.patch @@ -0,0 +1,89 @@ +--- a/cdk/cmake/DepFindSSL.cmake ++++ b/cdk/cmake/DepFindSSL.cmake +@@ -88,7 +88,7 @@ function(main) + + set(OPENSSL_LIB_DIR "${OPENSSL_LIB_DIR}" CACHE INTERNAL "") + +- if(NOT OPENSSL_VERSION_MAJOR EQUAL 1) ++ if(NOT OPENSSL_VERSION_MAJOR VERSION_GREATER_EQUAL 1) + message(SEND_ERROR "OpenSSL version 1.x is required but version ${OPENSSL_VERSION} was found") + else() + message(STATUS "Using OpenSSL version: ${OPENSSL_VERSION}") +@@ -182,42 +182,33 @@ function(find_openssl) + set(OPENSSL_INCLUDE_DIR "${OPENSSL_INCLUDE_DIR}" PARENT_SCOPE) + message("-- found OpenSSL headers at: ${OPENSSL_INCLUDE_DIR}") + +- + # Verify version number. Version information looks like: +- # #define OPENSSL_VERSION_TEXT "OpenSSL 1.1.1a 20 Nov 2018" +- ++ # #define OPENSSL_VERSION_NUMBER 0x1000103fL ++ # Encoded as MNNFFPPS: major minor fix patch status + FILE(STRINGS "${OPENSSL_INCLUDE_DIR}/openssl/opensslv.h" + OPENSSL_VERSION_NUMBER +- REGEX "#[ ]*define[\t ]+OPENSSL_VERSION_TEXT" ++ REGEX "^#[ ]*define[\t ]+OPENSSL_VERSION_NUMBER[\t ]+0x[0-9].*" + ) +- +- #message("== OPENSSL_VERSION_NUMBER: ${OPENSSL_VERSION_NUMBER}") + STRING(REGEX REPLACE +- "^.*OPENSSL_VERSION_TEXT[\t ]+\"OpenSSL[\t ]([0-9]+)\\.([0-9]+)\\.([0-9]+)([a-z]*)[\t ].*$" +- "\\1;\\2;\\3;\\4" +- version_list "${OPENSSL_VERSION_NUMBER}" ++ "^.*OPENSSL_VERSION_NUMBER[\t ]+0x([0-9]).*$" "\\1" ++ OPENSSL_VERSION_MAJOR "${OPENSSL_VERSION_NUMBER}" ++ ) ++ STRING(REGEX REPLACE ++ "^.*OPENSSL_VERSION_NUMBER[\t ]+0x[0-9]([0-9][0-9]).*$" "\\1" ++ OPENSSL_VERSION_MINOR "${OPENSSL_VERSION_NUMBER}" ++ ) ++ STRING(REGEX REPLACE ++ "^.*OPENSSL_VERSION_NUMBER[\t ]+0x[0-9][0-9][0-9]([0-9][0-9]).*$" "\\1" ++ OPENSSL_VERSION_FIX "${OPENSSL_VERSION_NUMBER}" + ) +- #message("-- OPENSSL_VERSION: ${version_list}") +- +- list(GET version_list 0 OPENSSL_VERSION_MAJOR) +- math(EXPR OPENSSL_VERSION_MAJOR ${OPENSSL_VERSION_MAJOR}) +- +- list(GET version_list 1 OPENSSL_VERSION_MINOR) +- math(EXPR OPENSSL_VERSION_MINOR ${OPENSSL_VERSION_MINOR}) +- +- list(GET version_list 2 OPENSSL_VERSION_FIX) +- math(EXPR OPENSSL_VERSION_FIX ${OPENSSL_VERSION_FIX}) +- +- list(GET version_list 3 OPENSSL_VERSION_PATCH) +- +- + + set(OPENSSL_VERSION +- "${OPENSSL_VERSION_MAJOR}.${OPENSSL_VERSION_MINOR}.${OPENSSL_VERSION_FIX}${OPENSSL_VERSION_PATCH}" ++ "${OPENSSL_VERSION_MAJOR}.${OPENSSL_VERSION_MINOR}.${OPENSSL_VERSION_FIX}" + PARENT_SCOPE + ) + set(OPENSSL_VERSION_MAJOR ${OPENSSL_VERSION_MAJOR} PARENT_SCOPE) + ++ CHECK_SYMBOL_EXISTS(TLS1_3_VERSION "openssl/tls1.h" HAVE_TLS1_3_VERSION) + + find_library(OPENSSL_LIBRARY + NAMES ssl ssleay32 ssleay32MD libssl +--- a/cdk/foundation/connection_openssl.cc ++++ b/cdk/foundation/connection_openssl.cc +@@ -211,7 +211,7 @@ static void throw_ssl_error(SSL* tls, int err) + case SSL_ERROR_WANT_CONNECT: + case SSL_ERROR_WANT_ACCEPT: + case SSL_ERROR_WANT_X509_LOOKUP: +-# if OPENSSL_VERSION_NUMBER >= 0x10100000L ++# if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER) + case SSL_ERROR_WANT_ASYNC: + case SSL_ERROR_WANT_ASYNC_JOB: + # endif +@@ -387,7 +387,7 @@ void TLS_helper::setup(SSL_CTX *ctx) + + SSL_CTX_set_cipher_list(ctx, m_cipher_list.c_str()); + +-#if OPENSSL_VERSION_NUMBER>=0x1010100fL ++#if HAVE_TLS1_3_VERSION + + /* + Note: If TLSv1.3 is not enabled, there is no need to restrict |