ports/databases/mysql57-client/files/patch-cmake_ssl.cmake
Eugene Grosbein f89fd0980a
databases/mysql57-client: be ready for OpenSSL 3.0 in base
Fix build by merging another change in ssl.cmake from MySQL 8.0
PORTREVISION not bumped intentionally.

PR:		271656
2023-06-13 12:12:49 +07:00

82 lines
3 KiB
CMake

--- cmake/ssl.cmake.orig 2023-03-16 22:25:04.000000000 +0700
+++ cmake/ssl.cmake 2023-06-13 12:11:25.125506000 +0700
@@ -176,24 +176,32 @@ MACRO (MYSQL_CHECK_SSL)
MESSAGE(STATUS "OPENSSL_APPLINK_C ${OPENSSL_APPLINK_C}")
ENDIF()
- # On mac this list is <.dylib;.so;.a>
- # We prefer static libraries, so we reverse it here.
- IF (WITH_SSL_PATH)
- LIST(REVERSE CMAKE_FIND_LIBRARY_SUFFIXES)
- MESSAGE(STATUS "suffixes <${CMAKE_FIND_LIBRARY_SUFFIXES}>")
- ENDIF()
-
FIND_LIBRARY(OPENSSL_LIBRARY
NAMES ssl libssl ssleay32 ssleay32MD
HINTS ${OPENSSL_ROOT_DIR}/lib)
FIND_LIBRARY(CRYPTO_LIBRARY
NAMES crypto libcrypto libeay32
HINTS ${OPENSSL_ROOT_DIR}/lib)
- IF (WITH_SSL_PATH)
- LIST(REVERSE CMAKE_FIND_LIBRARY_SUFFIXES)
- ENDIF()
-
IF(OPENSSL_INCLUDE_DIR)
+ FOREACH(version_part
+ OPENSSL_VERSION_MAJOR
+ OPENSSL_VERSION_MINOR
+ OPENSSL_VERSION_PATCH
+ )
+ FILE(STRINGS "${OPENSSL_INCLUDE_DIR}/openssl/opensslv.h" ${version_part}
+ REGEX "^#[\t ]*define[\t ]+${version_part}[\t ]+([0-9]+).*")
+ STRING(REGEX REPLACE
+ "^.*${version_part}[\t ]+([0-9]+).*" "\\1"
+ ${version_part} "${${version_part}}")
+ ENDFOREACH()
+
+ IF(OPENSSL_VERSION_MAJOR VERSION_EQUAL 3)
+ # OpenSSL 3
+ SET(OPENSSL_MAJOR_VERSION "${OPENSSL_VERSION_MAJOR}")
+ SET(OPENSSL_MINOR_VERSION "${OPENSSL_VERSION_MINOR}")
+ SET(OPENSSL_FIX_VERSION "${OPENSSL_VERSION_PATCH}")
+ SET(OPENSSL_FOUND TRUE)
+ ELSE()
# Verify version number. Version information looks like:
# #define OPENSSL_VERSION_NUMBER 0x1000103fL
# Encoded as MNNFFPPS: major minor fix patch status
@@ -213,15 +221,17 @@ MACRO (MYSQL_CHECK_SSL)
"^.*OPENSSL_VERSION_NUMBER[\t ]+0x[0-9][0-9][0-9]([0-9][0-9]).*$" "\\1"
OPENSSL_FIX_VERSION "${OPENSSL_VERSION_NUMBER}"
)
+ ENDIF()
ENDIF()
SET(OPENSSL_VERSION
"${OPENSSL_MAJOR_VERSION}.${OPENSSL_MINOR_VERSION}.${OPENSSL_FIX_VERSION}"
)
SET(OPENSSL_VERSION ${OPENSSL_VERSION} CACHE INTERNAL "")
- IF("${OPENSSL_VERSION}" VERSION_GREATER "1.1.0")
- ADD_DEFINITIONS(-DHAVE_TLSv13)
- SET(HAVE_TLSv13 1)
+ CHECK_SYMBOL_EXISTS(TLS1_3_VERSION "openssl/tls1.h" HAVE_TLS1_3_VERSION)
+ IF(HAVE_TLS1_3_VERSION)
+ #ADD_DEFINITIONS(-DHAVE_TLSv13)
+ #SET(HAVE_TLSv13 1)
IF(SOLARIS)
SET(FORCE_SSL_SOLARIS "-Wl,--undefined,address_of_sk_new_null")
ENDIF()
@@ -229,7 +239,13 @@ MACRO (MYSQL_CHECK_SSL)
IF(OPENSSL_INCLUDE_DIR AND
OPENSSL_LIBRARY AND
CRYPTO_LIBRARY AND
- OPENSSL_MAJOR_VERSION STREQUAL "1"
+ OPENSSL_MAJOR_VERSION VERSION_GREATER_EQUAL "1"
+ )
+ SET(OPENSSL_FOUND TRUE)
+ ELSEIF(OPENSSL_INCLUDE_DIR AND
+ OPENSSL_LIBRARY AND
+ CRYPTO_LIBRARY AND
+ OPENSSL_MAJOR_VERSION STREQUAL "2"
)
SET(OPENSSL_FOUND TRUE)
ELSE()