From 4945033d7f4438ec0baf76975ffd07208630d685 Mon Sep 17 00:00:00 2001 From: Thomas Deutschmann Date: Fri, 2 Aug 2019 02:13:03 +0200 Subject: Add initial MySQL v8.0 patch set Signed-off-by: Thomas Deutschmann --- ..._all_fix-minimal-build-cmake-mysql-8.0.17.patch | 26 ++++ 20007_all_cmake-debug-werror-8.0.17.patch | 15 ++ ...ll_mysql-8.0.17-add-protobuf-3.8+-support.patch | 20 +++ 20018_all_mysql-8.0.17-fix-libressl-support.patch | 12 ++ ...all_mysql-8.0.17-without-clientlibs-tools.patch | 156 +++++++++++++++++++++ 5 files changed, 229 insertions(+) create mode 100644 20001_all_fix-minimal-build-cmake-mysql-8.0.17.patch create mode 100644 20007_all_cmake-debug-werror-8.0.17.patch create mode 100644 20018_all_mysql-8.0.17-add-protobuf-3.8+-support.patch create mode 100644 20018_all_mysql-8.0.17-fix-libressl-support.patch create mode 100644 20018_all_mysql-8.0.17-without-clientlibs-tools.patch diff --git a/20001_all_fix-minimal-build-cmake-mysql-8.0.17.patch b/20001_all_fix-minimal-build-cmake-mysql-8.0.17.patch new file mode 100644 index 0000000..d79ffe2 --- /dev/null +++ b/20001_all_fix-minimal-build-cmake-mysql-8.0.17.patch @@ -0,0 +1,26 @@ +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1117,7 +1117,9 @@ MYSQL_CHECK_SSL_DLLS() + # Add system/bundled editline. + MYSQL_CHECK_EDITLINE() + # Add libevent +-MYSQL_CHECK_LIBEVENT() ++IF(NOT WITHOUT_SERVER) ++ MYSQL_CHECK_LIBEVENT() ++ENDIF() + # Add lz4 library + MYSQL_CHECK_LZ4() + # Add re2 library +@@ -1261,11 +1263,11 @@ ENDIF() + # scripts/mysql_config depends on client and server targets loaded above. + # It is referenced by some of the directories below, so we insert it here. + ADD_SUBDIRECTORY(scripts) ++ADD_SUBDIRECTORY(support-files) + + IF(NOT WITHOUT_SERVER) + ADD_SUBDIRECTORY(mysql-test) + ADD_SUBDIRECTORY(mysql-test/lib/My/SafeProcess) +- ADD_SUBDIRECTORY(support-files) + IF(EXISTS ${CMAKE_SOURCE_DIR}/internal/CMakeLists.txt) + ADD_SUBDIRECTORY(internal) + ENDIF() diff --git a/20007_all_cmake-debug-werror-8.0.17.patch b/20007_all_cmake-debug-werror-8.0.17.patch new file mode 100644 index 0000000..0579754 --- /dev/null +++ b/20007_all_cmake-debug-werror-8.0.17.patch @@ -0,0 +1,15 @@ +--- a/cmake/maintainer.cmake ++++ b/cmake/maintainer.cmake +@@ -207,12 +207,6 @@ IF(CMAKE_CXX_COMPILER_ID MATCHES "Clang") + # -Wzero-as-null-pointer-constant + ENDIF() + +-# Turn on Werror (warning => error) when using maintainer mode. +-IF(MYSQL_MAINTAINER_MODE) +- STRING_APPEND(MY_C_WARNING_FLAGS " -Werror") +- STRING_APPEND(MY_CXX_WARNING_FLAGS " -Werror") +-ENDIF() +- + # Set warning flags for GCC/Clang + IF(CMAKE_COMPILER_IS_GNUCC OR CMAKE_C_COMPILER_ID MATCHES "Clang") + STRING_APPEND(CMAKE_C_FLAGS " ${MY_C_WARNING_FLAGS}") diff --git a/20018_all_mysql-8.0.17-add-protobuf-3.8+-support.patch b/20018_all_mysql-8.0.17-add-protobuf-3.8+-support.patch new file mode 100644 index 0000000..d472e25 --- /dev/null +++ b/20018_all_mysql-8.0.17-add-protobuf-3.8+-support.patch @@ -0,0 +1,20 @@ +--- a/plugin/x/client/mysqlxclient/xmessage.h ++++ b/plugin/x/client/mysqlxclient/xmessage.h +@@ -36,7 +36,6 @@ + #include + #include + #include +-#include + + #ifdef USE_MYSQLX_FULL_PROTO + +--- a/plugin/x/ngs/include/ngs/protocol/protocol_protobuf.h ++++ b/plugin/x/ngs/include/ngs/protocol/protocol_protobuf.h +@@ -38,7 +38,6 @@ + #include + #include + #include +-#include + + #ifdef USE_MYSQLX_FULL_PROTO + #include "plugin/x/generated/protobuf/mysqlx.pb.h" diff --git a/20018_all_mysql-8.0.17-fix-libressl-support.patch b/20018_all_mysql-8.0.17-fix-libressl-support.patch new file mode 100644 index 0000000..44596cf --- /dev/null +++ b/20018_all_mysql-8.0.17-fix-libressl-support.patch @@ -0,0 +1,12 @@ +--- a/sql/auth/sha2_password_common.cc ++++ b/sql/auth/sha2_password_common.cc +@@ -101,7 +101,8 @@ bool SHA256_digest::retrieve_digest(unsigned char *digest, + DBUG_RETURN(true); + } + m_ok = EVP_DigestFinal_ex(md_context, m_digest, NULL); +-#if defined(HAVE_WOLFSSL) || OPENSSL_VERSION_NUMBER < 0x10100000L ++#if defined(HAVE_WOLFSSL) || OPENSSL_VERSION_NUMBER < 0x10100000L || \ ++ (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x02070000fL) + EVP_MD_CTX_cleanup(md_context); + #else /* OPENSSL_VERSION_NUMBER < 0x10100000L */ + EVP_MD_CTX_reset(md_context); diff --git a/20018_all_mysql-8.0.17-without-clientlibs-tools.patch b/20018_all_mysql-8.0.17-without-clientlibs-tools.patch new file mode 100644 index 0000000..b37272c --- /dev/null +++ b/20018_all_mysql-8.0.17-without-clientlibs-tools.patch @@ -0,0 +1,156 @@ +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1114,8 +1114,6 @@ ENDIF() + MYSQL_CHECK_SSL() + MYSQL_CHECK_SSL_DLLS() + +-# Add system/bundled editline. +-MYSQL_CHECK_EDITLINE() + # Add libevent + IF(NOT WITHOUT_SERVER) + MYSQL_CHECK_LIBEVENT() +@@ -1207,7 +1205,9 @@ IF(WITH_UNIT_TESTS) + ENABLE_TESTING() + ENDIF() + +-ADD_SUBDIRECTORY(include) ++IF(NOT WITHOUT_CLIENTLIBS) ++ ADD_SUBDIRECTORY(include) ++ENDIF(NOT WITHOUT_CLIENTLIBS) + ADD_SUBDIRECTORY(dbug) + ADD_SUBDIRECTORY(strings) + ADD_SUBDIRECTORY(vio) +@@ -1250,7 +1250,6 @@ IF(WITH_UNIT_TESTS) + ADD_SUBDIRECTORY(unittest/mytap/t) + ENDIF() + +-ADD_SUBDIRECTORY(client) + ADD_SUBDIRECTORY(utilities) + ADD_SUBDIRECTORY(share) + ADD_SUBDIRECTORY(libservices) +@@ -1295,6 +1294,12 @@ IF(UNIX) + ADD_SUBDIRECTORY(man) + ENDIF() + ++IF(NOT WITHOUT_TOOLS) ++ # Add system/bundled editline ++ MYSQL_CHECK_EDITLINE() ++ ADD_SUBDIRECTORY(client) ++ENDIF(NOT WITHOUT_TOOLS) ++ + IF(NOT WITHOUT_SERVER) + ADD_SUBDIRECTORY(packaging/rpm-common) + ADD_SUBDIRECTORY(packaging/rpm-oel) +--- a/libmysql/CMakeLists.txt ++++ b/libmysql/CMakeLists.txt +@@ -240,12 +240,17 @@ IF(WIN32) + LIST(APPEND LIBS_TO_MERGE auth_win_client) + ENDIF() + +-# LDAP authentication SASL client plugin +-MESSAGE(STATUS "Creating LDAP authentication SASL client library.") +-ADD_SUBDIRECTORY(authentication_ldap) +- +-# Merge several convenience libraries into one big mysqlclient +-MERGE_CONVENIENCE_LIBRARIES(mysqlclient ${LIBS_TO_MERGE} COMPONENT Development) ++IF(WITHOUT_CLIENTLIBS) ++ # Merge several convenience libraries into one big mysqlclient ++ MERGE_CONVENIENCE_LIBRARIES(mysqlclient ${LIBS_TO_MERGE} COMPONENT Development SKIP_INSTALL) ++ELSE(WITHOUT_CLIENTLIBS) ++ # LDAP authentication SASL client plugin ++ MESSAGE(STATUS "Creating LDAP authentication SASL client library.") ++ ADD_SUBDIRECTORY(authentication_ldap) ++ ++ # Merge several convenience libraries into one big mysqlclient ++ MERGE_CONVENIENCE_LIBRARIES(mysqlclient ${LIBS_TO_MERGE} COMPONENT Development) ++ENDIF(WITHOUT_CLIENTLIBS) + TARGET_LINK_LIBRARIES(mysqlclient PRIVATE ${LIBS_TO_LINK}) + + # Visual Studio users need debug static library for debug projects +@@ -283,9 +288,15 @@ ENDIF() + IF(NOT DISABLE_SHARED) + # Merge several convenience libraries into one big mysqlclient + # and link them together into shared library. ++IF(WITHOUT_CLIENTLIBS) ++ MERGE_LIBRARIES_SHARED(libmysql ${LIBS_TO_MERGE} ++ EXPORTS ${CLIENT_API_FUNCTIONS} ${CLIENT_API_FUNCTIONS_UNDOCUMENTED} ${CLIENT_API_NONBLOCKING_FUNCTIONS} ++ COMPONENT SharedLibraries SKIP_INSTALL) ++ELSE(WITHOUT_CLIENTLIBS) + MERGE_LIBRARIES_SHARED(libmysql ${LIBS_TO_MERGE} + EXPORTS ${CLIENT_API_FUNCTIONS} ${CLIENT_API_FUNCTIONS_UNDOCUMENTED} ${CLIENT_API_NONBLOCKING_FUNCTIONS} + COMPONENT SharedLibraries) ++ENDIF(WITHOUT_CLIENTLIBS) + TARGET_LINK_LIBRARIES(libmysql PRIVATE ${LIBS_TO_LINK}) + + IF(WIN32) +--- a/scripts/CMakeLists.txt ++++ b/scripts/CMakeLists.txt +@@ -459,18 +459,23 @@ ELSE() + + IF(WITH_SYSTEMD) + SET(BIN_SCRIPTS +- mysql_config + mysqldumpslow + ) + ELSE() + SET(BIN_SCRIPTS +- mysql_config + mysqldumpslow + mysqld_multi + mysqld_safe + ) + ENDIF() + ++ IF(NOT WITHOUT_CLIENTLIBS) ++ SET(BIN_SCRIPTS ++ ${BIN_SCRIPTS} ++ mysql_config ++ ) ++ ENDIF(NOT WITHOUT_CLIENTLIBS) ++ + SET(PKGCONFIG_FILE ${LIBMYSQL_OS_OUTPUT_NAME}.pc) + STRING(REGEX REPLACE "/mysql$" "" PKGCONFIG_DIR "${INSTALL_LIBDIR}") + SET(PKGCONFIG_DIR "${PKGCONFIG_DIR}/pkgconfig") +@@ -485,7 +490,7 @@ ELSE() + ${CMAKE_CURRENT_BINARY_DIR}/${PKGCONFIG_FILE} + ESCAPE_QUOTES @ONLY) + +- IF(INSTALL_PKGCONFIGDIR) ++ IF(INSTALL_PKGCONFIGDIR AND NOT WITHOUT_CLIENTLIBS) + MESSAGE(STATUS "INSTALL ${PKGCONFIG_FILE} ${INSTALL_PKGCONFIGDIR}") + INSTALL(FILES + ${CMAKE_CURRENT_BINARY_DIR}/${PKGCONFIG_FILE} +--- a/support-files/CMakeLists.txt ++++ b/support-files/CMakeLists.txt +@@ -24,8 +24,9 @@ IF(NOT UNIX) + RETURN() + ENDIF() + +-INSTALL(FILES mysql.m4 +- DESTINATION ${INSTALL_SHAREDIR}/aclocal COMPONENT Development) ++IF(NOT WITHOUT_CLIENTLIBS) ++ INSTALL(FILES mysql.m4 DESTINATION ${INSTALL_SHAREDIR}/aclocal COMPONENT Development) ++ENDIF(NOT WITHOUT_CLIENTLIBS) + + SET(localstatedir "${MYSQL_DATADIR}") + +--- a/utilities/CMakeLists.txt ++++ b/utilities/CMakeLists.txt +@@ -94,10 +94,15 @@ IF(APPLE AND HAVE_CRYPTO_DYLIB AND HAVE_OPENSSL_DYLIB) + ADD_DEPENDENCIES(comp_err copy_openssl_dlls) + ENDIF() + +-MYSQL_ADD_EXECUTABLE(my_print_defaults my_print_defaults.cc) ++IF(NOT WITHOUT_CLIENTLIBS) ++ MYSQL_ADD_EXECUTABLE(my_print_defaults my_print_defaults.cc SKIP_INSTALL) ++ MYSQL_ADD_EXECUTABLE(perror perror.cc SKIP_INSTALL) ++ELSE(NOT WITHOUT_CLIENTLIBS) ++ MYSQL_ADD_EXECUTABLE(my_print_defaults my_print_defaults.cc) ++ MYSQL_ADD_EXECUTABLE(perror perror.cc) ++ENDIF(NOT WITHOUT_CLIENTLIBS) + TARGET_LINK_LIBRARIES(my_print_defaults mysys) + +-MYSQL_ADD_EXECUTABLE(perror perror.cc) + ADD_DEPENDENCIES(perror GenError) + TARGET_LINK_LIBRARIES(perror mysys) + -- cgit v1.2.3-65-gdbad