summaryrefslogtreecommitdiff
path: root/dev-db/mysql-connector-c++/files
diff options
context:
space:
mode:
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.patch15
-rw-r--r--dev-db/mysql-connector-c++/files/mysql-connector-c++-1.1.8-fix-mariadb.patch45
-rw-r--r--dev-db/mysql-connector-c++/files/mysql-connector-c++-8.0.15-fix-build.patch307
-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.patch89
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