diff options
author | Jochen Neumeister <joneum@FreeBSD.org> | 2020-01-08 16:47:12 +0000 |
---|---|---|
committer | Jochen Neumeister <joneum@FreeBSD.org> | 2020-01-08 16:47:12 +0000 |
commit | 342c784ae3cb74eeb87d281182060a1a31a1481c (patch) | |
tree | 507562d12bec10bc99bb7bd7de1c273e3934a2da /databases | |
parent | - update from 1.1.7 to 1.1.8 (diff) |
databases/mysql80-{client, server}: Update to latest release 8.0.18
switch patch-files to mysql80-server to make it easy for maintain.
Bugfix:
- CMake now enables use of fastcov if it is available. fastcov is faster than lcov or gcov. This requires GCC and gcov versions of 9 or higher.
- The DISABLE_SHARED CMake option was unused and has been removed.
- The CMake code to find Protobuf executables now works on platforms that split these into multiple packages.
- The new ADD_GDB_INDEX CMake option determines whether to enable generation of a .gdb_index section in binaries, which makes loading them in a debugger faster. The option is disabled by default. It has no effect if a linker other than lld or GNU gold is used.
- For the INSTALL_LAYOUT CMake option, the SLES and WIN option values were not used and have been removed.
- The max_prepared_stmt_count system variable maximum value has been increased from 1 million (1,048,576) to 4 million (4,194,304). The default value remains unchanged at 16,382.
- MySQL 8.0 no longer supports building using wolfSSL. All MySQL builds now use OpenSSL.
- The RE2 library is no longer used by MySQL. The library is no longer bundled with source distributions and the WITH_RE2 CMake option is obsolete.
More Infos: https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-18.html
A big thanks to @fluffy for his help with this update
MFH: 2020Q1
Security: fc91f2ef-fd7b-11e9-a1c7-b499baebfeaf
Sponsored by: Netzkommune GmbH
Notes
Notes:
svn path=/head/; revision=522436
Diffstat (limited to 'databases')
69 files changed, 888 insertions, 1096 deletions
diff --git a/databases/mysql80-client/Makefile b/databases/mysql80-client/Makefile index 65ca161d00cd..d93737fc9ebc 100644 --- a/databases/mysql80-client/Makefile +++ b/databases/mysql80-client/Makefile @@ -2,7 +2,7 @@ # $FreeBSD$ PORTNAME= mysql -PORTREVISION= 1 +PORTREVISION= 0 PKGNAMESUFFIX= 80-client COMMENT= Multithreaded SQL database (client) @@ -12,7 +12,7 @@ LICENSE+= LGPL21 MASTERDIR= ${.CURDIR}/../mysql80-server PKGMESSAGE= ${.CURDIR}/pkg-message -PATCHDIR= ${.CURDIR}/files +PATCHDIR= ${MASTERDIR}/files PLIST= ${.CURDIR}/pkg-plist CONFLICTS_INSTALL= mysql8[1-9]-client-* \ @@ -24,12 +24,22 @@ CMAKE_ARGS+= -DWITHOUT_SERVER=1 -DINSTALL_SUPPORTFILESDIR=0 USE_LDCONFIG+= ${PREFIX}/lib/mysql -MMAN1= comp_err.1 msql2mysql.1 mysql.1 mysql_config.1 mysql_config_editor.1 mysql_find_rows.1 \ - mysql_waitpid.1 mysqlaccess.1 mysqladmin.1 mysqlbinlog.1 \ - mysqlcheck.1 mysqldump.1 mysqlimport.1 mysqlshow.1 mysqlslap.1 +MMAN1= comp_err.1 lz4_decompress.1 mysql.1 mysql_config.1 mysql_config_editor.1 \ + mysqladmin.1 mysqlbinlog.1 mysqlcheck.1 mysqldump.1 mysqlimport.1 mysqlman.1 \ + mysqlpump.1 mysqlshow.1 mysqlslap.1 perror.1 zlib_decompress.1 CLIENT_ONLY= yes +OPTIONS_GROUP+= PLUGINS +PLUGINS_DESC= Default Client Plugins +OPTIONS_GROUP_PLUGINS= SASLCLIENT +SASLCLIENT_DESC= SASL client plugin module +SASLCLIENT_CMAKE_BOOL= WITH_AUTHENTICATION_LDAP +SASLCLIENT_LIB_DEPENDS= libsasl2.so:security/cyrus-sasl2 +SASLCLIENT_USE= OPENLDAP=yes +OPTIONS_DEFAULT+= SASLCLIENT +OPTIONS_SUB= yes + # issue 166367: adding symlinks for back-compatibility with ${lib}_r post-install: @${LN} -s libmysqlclient.a ${STAGEDIR}${PREFIX}/lib/mysql/libmysqlclient_r.a diff --git a/databases/mysql80-client/files/patch-CMakeLists.txt b/databases/mysql80-client/files/patch-CMakeLists.txt deleted file mode 100644 index 663e7b22f29a..000000000000 --- a/databases/mysql80-client/files/patch-CMakeLists.txt +++ /dev/null @@ -1,35 +0,0 @@ ---- CMakeLists.txt.orig 2019-01-21 18:42:44 UTC -+++ CMakeLists.txt -@@ -1011,6 +1011,7 @@ ADD_SUBDIRECTORY(extra/regex) - ADD_SUBDIRECTORY(libmysql) - ADD_SUBDIRECTORY(libbinlogevents) - ADD_SUBDIRECTORY(libbinlogstandalone) -+ADD_SUBDIRECTORY(support-files) - - IF(NOT WITHOUT_SERVER) - SET (MYSQLD_STATIC_PLUGIN_LIBS "" CACHE INTERNAL "") -@@ -1146,12 +1147,13 @@ ENDIF() - ADD_SUBDIRECTORY(packaging/WiX) - ADD_SUBDIRECTORY(packaging/solaris) - --IF(UNIX) -- INSTALL(FILES Docs/mysql.info DESTINATION ${INSTALL_INFODIR} OPTIONAL COMPONENT Info) --ENDIF() -+#IF(UNIX) -+# INSTALL(FILES Docs/mysql.info DESTINATION ${INSTALL_INFODIR} OPTIONAL COMPONENT Info) -+#ENDIF() - # - # RPM installs documentation directly from the source tree - # -+IF(FALSE) - IF(NOT INSTALL_LAYOUT MATCHES "RPM") - INSTALL(FILES README LICENSE DESTINATION ${INSTALL_DOCREADMEDIR} COMPONENT Readme) - INSTALL(FILES ${CMAKE_BINARY_DIR}/Docs/INFO_SRC ${CMAKE_BINARY_DIR}/Docs/INFO_BIN DESTINATION ${INSTALL_DOCDIR}) -@@ -1170,6 +1172,7 @@ IF(NOT INSTALL_LAYOUT MATCHES "RPM") - PATTERN "README.build" EXCLUDE - ) - ENDIF() -+ENDIF() - - # Now that we're done with all ADD_SUBDIRECTORY and thus all feature tests, - # we can safely enable ASan on Clang/Win32 if needed. diff --git a/databases/mysql80-client/files/patch-client_CMakeLists.txt b/databases/mysql80-client/files/patch-client_CMakeLists.txt deleted file mode 100644 index 26142360bdcd..000000000000 --- a/databases/mysql80-client/files/patch-client_CMakeLists.txt +++ /dev/null @@ -1,39 +0,0 @@ ---- client/CMakeLists.txt.orig 2019-04-13 13:46:31.000000000 +0200 -+++ client/CMakeLists.txt 2019-04-30 00:27:10.627236000 +0200 -@@ -35,10 +35,12 @@ - TARGET_LINK_LIBRARIES(mysql ${EDITLINE_LIBRARY}) - ENDIF(UNIX) - -+IF(FALSE) - IF(NOT WITHOUT_SERVER) - MYSQL_ADD_EXECUTABLE(mysql_upgrade upgrade/program.cc) - TARGET_LINK_LIBRARIES(mysql_upgrade mysqlclient client_base) - ENDIF() -+ENDIF() - - SET(MYSQLTEST_SRC - mysqltest/error_names.cc -@@ -49,10 +51,12 @@ - mysqltest/utils.cc - ) - -+IF(FALSE) - MYSQL_ADD_EXECUTABLE(mysqltest mysqltest.cc ${MYSQLTEST_SRC} COMPONENT Test) - SET_TARGET_PROPERTIES(mysqltest PROPERTIES ENABLE_EXPORTS TRUE) - TARGET_LINK_LIBRARIES(mysqltest mysqlclient) - ADD_DEPENDENCIES(mysqltest GenError GenClientError) -+ENDIF() - - ADD_LIBRARY(mysqlcheck_core STATIC check/mysqlcheck_core.cc) - TARGET_LINK_LIBRARIES(mysqlcheck_core mysqlclient) -@@ -108,8 +112,10 @@ - MYSQL_ADD_EXECUTABLE(mysql_config_editor mysql_config_editor.cc) - TARGET_LINK_LIBRARIES(mysql_config_editor mysqlclient) - -+IF(FALSE) - MYSQL_ADD_EXECUTABLE(mysql_secure_installation mysql_secure_installation.cc) - TARGET_LINK_LIBRARIES(mysql_secure_installation mysqlclient) -+ENDIF() - - MYSQL_ADD_EXECUTABLE(mysql_ssl_rsa_setup mysql_ssl_rsa_setup.cc path.cc logger.cc) - TARGET_LINK_LIBRARIES(mysql_ssl_rsa_setup mysys mysys_ssl) diff --git a/databases/mysql80-client/files/patch-cmake_ssl.cmake b/databases/mysql80-client/files/patch-cmake_ssl.cmake deleted file mode 100644 index 8fc3814b1342..000000000000 --- a/databases/mysql80-client/files/patch-cmake_ssl.cmake +++ /dev/null @@ -1,14 +0,0 @@ ---- cmake/ssl.cmake.orig 2018-04-29 16:21:47 UTC -+++ cmake/ssl.cmake -@@ -265,10 +265,10 @@ MACRO (MYSQL_CHECK_SSL) - OPENSSL_MAJOR_VERSION "${OPENSSL_VERSION_NUMBER}" - ) - ENDIF() - IF(OPENSSL_INCLUDE_DIR AND - OPENSSL_LIBRARY AND - CRYPTO_LIBRARY AND -- OPENSSL_MAJOR_VERSION STREQUAL "1" -+ (OPENSSL_MAJOR_VERSION STREQUAL "1" OR OPENSSL_MAJOR_VERSION STREQUAL "2") - ) - SET(OPENSSL_FOUND TRUE) - FIND_PROGRAM(OPENSSL_EXECUTABLE openssl diff --git a/databases/mysql80-client/files/patch-include_CMakeLists.txt b/databases/mysql80-client/files/patch-include_CMakeLists.txt deleted file mode 100644 index 5fa5ea35eb42..000000000000 --- a/databases/mysql80-client/files/patch-include_CMakeLists.txt +++ /dev/null @@ -1,176 +0,0 @@ ---- include/CMakeLists.txt.orig 2017-09-21 15:51:58 UTC -+++ include/CMakeLists.txt -@@ -30,11 +30,173 @@ SET(HEADERS - ${CMAKE_CURRENT_BINARY_DIR}/mysql_version.h - ${CMAKE_CURRENT_BINARY_DIR}/mysqld_error.h - field_types.h -+ base64.h -+ big_endian.h -+ c_string_less.h -+ crypt_genhash_impl.h -+ decimal.h -+ depth_first_search.h -+ dur_prop.h -+ errmsg.h -+ ft_global.h -+ heap.h -+ keycache.h -+ lex_string.h -+ lf.h -+ little_endian.h -+ m_ctype.h -+ m_string.h -+ map_helpers.h -+ mf_wcomp.h -+ mutex_lock.h -+ my_aes.h -+ my_alloc.h -+ my_atomic.h -+ my_base.h -+ my_bit.h -+ my_bitmap.h -+ my_byteorder.h -+ my_check_opt.h -+ my_command.h -+ my_compare.h -+ my_compare.h.orig -+ my_compiler.h -+ my_dbug.h -+ my_default.h -+ my_dir.h -+ my_double2ulonglong.h -+ my_getopt.h -+ my_hash_combine.h -+ my_icp.h -+ my_inttypes.h -+ my_io.h -+ my_list.h -+ my_loglevel.h -+ my_macros.h -+ my_md5.h -+ my_md5_size.h -+ my_murmur3.h -+ my_pointer_arithmetic.h -+ my_psi_config.h -+ my_rapidjson_size_t.h -+ my_rdtsc.h -+ my_rnd.h -+ my_sharedlib.h -+ my_shm_defaults.h -+ my_sqlcommand.h -+ my_stacktrace.h -+ my_sys.h -+ my_systime.h -+ my_table_map.h -+ my_thread.h -+ my_thread_local.h -+ my_thread_os_id.h -+ my_time.h -+ my_timer.h -+ my_tree.h -+ my_uctype.h -+ my_user.h -+ my_xml.h -+ myisam.h -+ myisammrg.h -+ myisampack.h -+ mysql.h -+ mysql.h.pp -+ mysql_com.h -+ mysql_com_server.h -+ mysql_time.h -+ mysql_version.h.in -+ mysys_err.h -+ nullable.h -+ password.h -+ pfs_cond_provider.h -+ pfs_error_provider.h -+ pfs_file_provider.h -+ pfs_idle_provider.h -+ pfs_memory_provider.h -+ pfs_metadata_provider.h -+ pfs_mutex_provider.h -+ pfs_rwlock_provider.h -+ pfs_socket_provider.h -+ pfs_stage_provider.h -+ pfs_statement_provider.h -+ pfs_table_provider.h -+ pfs_thread_provider.h -+ pfs_transaction_provider.h -+ prealloced_array.h -+ print_version.h -+ priority_queue.h -+ rwlock_scoped_lock.h -+ scope_guard.h -+ service_versions.h -+ sha1.h -+ sha2.h -+ sql_chars.h -+ sql_common.h -+ sql_string.h -+ sslopt-case.h -+ sslopt-longopts.h -+ sslopt-vars.h -+ template_utils.h -+ thr_cond.h -+ thr_lock.h -+ thr_mutex.h -+ thr_rwlock.h -+ typelib.h -+ varlen_sort.h -+ violite.h -+ welcome_copyright_notice.h - ) - SET(HEADERS_MYSQL_DIR - mysql/client_plugin.h - mysql/plugin_auth_common.h - mysql/udf_registration_types.h -+ mysql/client_authentication.h -+ mysql/client_plugin.h.pp -+ mysql/com_data.h -+ mysql/get_password.h -+ mysql/group_replication_priv.h -+ mysql/innodb_priv.h -+ mysql/mysql_lex_string.h -+ mysql/plugin.h -+ mysql/plugin_audit.h -+ mysql/plugin_audit.h.pp -+ mysql/plugin_auth.h -+ mysql/plugin_auth.h.pp -+ mysql/plugin_auth_common.h -+ mysql/plugin_ftparser.h -+ mysql/plugin_ftparser.h.pp -+ mysql/plugin_group_replication.h -+ mysql/plugin_keyring.h -+ mysql/plugin_keyring.h.pp -+ mysql/plugin_query_rewrite.h -+ mysql/plugin_trace.h -+ mysql/plugin_validate_password.h -+ mysql/service_command.h -+ mysql/service_locking.h -+ mysql/service_my_plugin_log.h -+ mysql/service_mysql_alloc.h -+ mysql/service_mysql_keyring.h -+ mysql/service_mysql_password_policy.h -+ mysql/service_mysql_string.h -+ mysql/service_parser.h -+ mysql/service_plugin_registry.h -+ mysql/service_rpl_transaction_ctx.h -+ mysql/service_rpl_transaction_write_set.h -+ mysql/service_rules_table.h -+ mysql/service_security_context.h -+ mysql/service_srv_session.h -+ mysql/service_srv_session_info.h -+ mysql/service_ssl_wrapper.h -+ mysql/service_thd_alloc.h -+ mysql/service_thd_engine_lock.h -+ mysql/service_thd_wait.h -+ mysql/service_thread_scheduler.h -+ mysql/services.h -+ mysql/services.h.pp -+ mysql/thread_pool_priv.h -+ mysql/thread_type.h -+ mysql/udf_registration_types.h - ) - - INSTALL(FILES ${HEADERS} DESTINATION ${INSTALL_INCLUDEDIR} COMPONENT Development) diff --git a/databases/mysql80-client/files/patch-include_my__compare.h b/databases/mysql80-client/files/patch-include_my__compare.h deleted file mode 100644 index 3b2cd3593e92..000000000000 --- a/databases/mysql80-client/files/patch-include_my__compare.h +++ /dev/null @@ -1,11 +0,0 @@ ---- include/my_compare.h.orig 2018-04-08 06:44:49 UTC -+++ include/my_compare.h -@@ -49,7 +49,7 @@ - But beware the dependency of MI_MAX_POSSIBLE_KEY_BUFF and HA_MAX_KEY_LENGTH. - */ - --#define HA_MAX_KEY_LENGTH 1000 /* Max length in bytes */ -+#define HA_MAX_KEY_LENGTH 4000 /* Max length in bytes */ - #define HA_MAX_KEY_SEG 16 /* Max segments for key */ - - #define HA_MAX_POSSIBLE_KEY_BUFF (HA_MAX_KEY_LENGTH + 24 + 6 + 6) diff --git a/databases/mysql80-client/files/patch-include_myisam.h b/databases/mysql80-client/files/patch-include_myisam.h deleted file mode 100644 index 99493293f483..000000000000 --- a/databases/mysql80-client/files/patch-include_myisam.h +++ /dev/null @@ -1,11 +0,0 @@ ---- include/myisam.h.orig 2018-04-08 06:44:49 UTC -+++ include/myisam.h -@@ -59,7 +59,7 @@ - The following defines can be increased if necessary. - But beware the dependency of MI_MAX_POSSIBLE_KEY_BUFF and MI_MAX_KEY_LENGTH. - */ --#define MI_MAX_KEY_LENGTH 1000 /* Max length in bytes */ -+#define MI_MAX_KEY_LENGTH 4000 /* Max length in bytes */ - #define MI_MAX_KEY_SEG 16 /* Max segments for key */ - - #define MI_MAX_KEY_BUFF (MI_MAX_KEY_LENGTH + MI_MAX_KEY_SEG * 6 + 8 + 8) diff --git a/databases/mysql80-client/files/patch-libmysql_CMakeLists.txt b/databases/mysql80-client/files/patch-libmysql_CMakeLists.txt deleted file mode 100644 index dd18e86c1149..000000000000 --- a/databases/mysql80-client/files/patch-libmysql_CMakeLists.txt +++ /dev/null @@ -1,23 +0,0 @@ ---- libmysql/CMakeLists.txt.orig 2017-06-27 11:44:29 UTC -+++ libmysql/CMakeLists.txt -@@ -181,6 +181,11 @@ IF (WIN32 AND OPENSSL_APPLINK_C) - ) - ENDIF() - -+INCLUDE(${MYSQL_CMAKE_SCRIPT_DIR}/compile_flags.cmake) -+IF (CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") -+ ADD_COMPILE_FLAGS(${CLIENT_SOURCES} COMPILE_FLAGS "-fPIC") -+ENDIF() -+ - # - # Include protocol tracing infrastructure and the test - # trace plugin if enabled by build options. -@@ -254,7 +258,7 @@ IF(NOT DISABLE_SHARED) - COMPONENT SharedLibraries) - IF(UNIX) - # libtool compatability -- IF(FREEBSD OR APPLE) -+ IF(FREEBSD OR APPLE OR CMAKE_SYSTEM_NAME MATCHES "FreeBSD|DragonFly") - SET(OS_SHARED_LIB_VERSION "${SHARED_LIB_MAJOR_VERSION}") - ELSE() - SET(OS_SHARED_LIB_VERSION diff --git a/databases/mysql80-client/files/patch-man_CMakeLists.txt b/databases/mysql80-client/files/patch-man_CMakeLists.txt deleted file mode 100644 index 213cddda7a91..000000000000 --- a/databases/mysql80-client/files/patch-man_CMakeLists.txt +++ /dev/null @@ -1,13 +0,0 @@ ---- man/CMakeLists.txt.orig 2019-06-25 10:23:30 UTC -+++ man/CMakeLists.txt -@@ -22,10 +22,6 @@ - - # Copy man pages - FILE(GLOB MAN1 *.1) --FILE(GLOB MAN1_NDB ndb*.1) --FILE(GLOB MAN1_ROUTER mysqlrouter*.1) --FILE(GLOB MAN8 *.8) --FILE(GLOB MAN8_NDB ndb*.8) - IF(MAN1_NDB AND NOT WITH_NDBCLUSTER) - LIST(REMOVE_ITEM MAN1 ${MAN1_NDB}) - ENDIF() diff --git a/databases/mysql80-client/files/patch-mysys__ssl_my__default.cc b/databases/mysql80-client/files/patch-mysys__ssl_my__default.cc deleted file mode 100644 index cf0af3c629d9..000000000000 --- a/databases/mysql80-client/files/patch-mysys__ssl_my__default.cc +++ /dev/null @@ -1,60 +0,0 @@ ---- mysys/my_default.cc.orig 2016-08-25 11:52:06 UTC -+++ mysys/my_default.cc -@@ -114,7 +114,7 @@ static my_bool defaults_already_read= FA - - /* Which directories are searched for options (and in which order) */ - --#define MAX_DEFAULT_DIRS 6 -+#define MAX_DEFAULT_DIRS 7 - #define DEFAULT_DIRS_SIZE (MAX_DEFAULT_DIRS + 1) /* Terminate with NULL */ - static const char **default_directories = NULL; - -@@ -914,6 +914,14 @@ static int search_default_file_with_ext( - return 1; /* Ignore wrong files */ - } - -+ if (strstr(name, "/etc") == name) -+ { -+ fprintf(stderr, -+ "error: Config file %s in invalid location, please move to or merge with /usr/local%s\n", -+ name,name); -+ goto err; -+ } -+ - while (mysql_file_getline(buff, sizeof(buff) - 1, fp, is_login_file)) { - line++; - /* Ignore comment and empty lines */ -@@ -1252,7 +1260,8 @@ void my_print_default_files(const char * - end[(strlen(end) - 1)] = ' '; - else - strxmov(end, conf_file, *ext, " ", NullS); -- fputs(name, stdout); -+ if (strstr(name, "/etc") != name) -+ fputs(name, stdout); - } - } - } -@@ -1411,13 +1420,8 @@ static const char **init_default_directo - - #else - -- errors += add_directory(alloc, "/etc/", dirs); -- errors += add_directory(alloc, "/etc/mysql/", dirs); -- --#if defined(DEFAULT_SYSCONFDIR) -- if (DEFAULT_SYSCONFDIR[0]) -- errors += add_directory(alloc, DEFAULT_SYSCONFDIR, dirs); --#endif /* DEFAULT_SYSCONFDIR */ -+ errors += add_directory(alloc, "/usr/local/etc/", dirs); -+ errors += add_directory(alloc, "/usr/local/etc/mysql/", dirs); - - #endif - -@@ -1488,7 +1492,7 @@ int check_file_permissions(const char *f - MY_STAT stat_info; - -- if (!my_stat(file_name, &stat_info, MYF(0))) return 1; -+ if (!my_stat(file_name, &stat_info, MYF(0))) return 0; - /* - Ignore .mylogin.cnf file if not exclusively readable/writable - by current user. diff --git a/databases/mysql80-client/files/patch-mysys__ssl_my__md5.cc b/databases/mysql80-client/files/patch-mysys__ssl_my__md5.cc deleted file mode 100644 index bed3c7d521e6..000000000000 --- a/databases/mysql80-client/files/patch-mysys__ssl_my__md5.cc +++ /dev/null @@ -1,11 +0,0 @@ ---- mysys/my_md5.cc.orig 2018-04-08 06:44:49 UTC -+++ mysys/my_md5.cc -@@ -56,7 +56,7 @@ static void my_md5_hash(unsigned char *d - int compute_md5_hash(char *digest, const char *buf, int len) { - int retval = 0; - int fips_mode = 0; --#if !defined(HAVE_WOLFSSL) -+#if !defined(HAVE_WOLFSSL) && !defined(LIBRESSL_VERSION_NUMBER) - fips_mode = FIPS_mode(); - #endif /* HAVE_WOLFSSL */ - /* If fips mode is ON/STRICT restricted method calls will result into abort, diff --git a/databases/mysql80-client/files/patch-plugin_x_client_xconnection__impl.cc b/databases/mysql80-client/files/patch-plugin_x_client_xconnection__impl.cc deleted file mode 100644 index f193a77d175c..000000000000 --- a/databases/mysql80-client/files/patch-plugin_x_client_xconnection__impl.cc +++ /dev/null @@ -1,37 +0,0 @@ ---- plugin/x/client/xconnection_impl.cc.orig 2018-04-08 06:44:49 UTC -+++ plugin/x/client/xconnection_impl.cc -@@ -182,12 +182,12 @@ XError ssl_verify_server_cert(Vio *vio, - return XError{CR_SSL_CONNECTION_ERROR, "Failed to get CN from CN entry"}; - } - --#if OPENSSL_VERSION_NUMBER < 0x10100000L -- const auto cn = reinterpret_cast<char *>(ASN1_STRING_data(cn_asn1)); --#else /* OPENSSL_VERSION_NUMBER < 0x10100000L */ -+#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER) - const auto cn = - reinterpret_cast<const char *>(ASN1_STRING_get0_data(cn_asn1)); --#endif /* OPENSSL_VERSION_NUMBER < 0x10100000L */ -+#else -+ const auto cn = reinterpret_cast<char *>(ASN1_STRING_data(cn_asn1)); -+#endif /* OPENSSL_VERSION_NUMBER >= 0x10100000L */ - const auto cn_len = static_cast<size_t>(ASN1_STRING_length(cn_asn1)); - - // There should not be any NULL embedded in the CN -@@ -451,7 +451,7 @@ XError Connection_impl::get_ssl_error(co - return XError(CR_SSL_CONNECTION_ERROR, buffer); - } - --#ifndef HAVE_WOLFSSL -+#if !defined(HAVE_WOLFSSL) && !defined(LIBRESSL_VERSION_NUMBER) - /** - Set fips mode in openssl library, - When we set fips mode ON/STRICT, it will perform following operations: -@@ -501,7 +501,7 @@ XError Connection_impl::activate_tls() { - if (!m_context->m_ssl_config.is_configured()) - return XError{CR_SSL_CONNECTION_ERROR, ER_TEXT_TLS_NOT_CONFIGURATED}; - --#ifndef HAVE_WOLFSSL -+#if !defined(HAVE_WOLFSSL) && !defined(LIBRESSL_VERSION_NUMBER) - char err_string[OPENSSL_ERROR_LENGTH] = {'\0'}; - if (set_fips_mode((int)m_context->m_ssl_config.m_ssl_fips_mode, err_string) != - 1) { diff --git a/databases/mysql80-client/files/patch-scripts_CMakeLists.txt b/databases/mysql80-client/files/patch-scripts_CMakeLists.txt deleted file mode 100644 index 70b6be73fb7a..000000000000 --- a/databases/mysql80-client/files/patch-scripts_CMakeLists.txt +++ /dev/null @@ -1,73 +0,0 @@ ---- scripts/CMakeLists.txt.orig 2018-10-07 08:44:22 UTC -+++ scripts/CMakeLists.txt -@@ -80,6 +80,7 @@ ELSE() - MESSAGE(FATAL_ERROR "Cannot concatenate files") - ENDIF() - -+IF(FALSE) - # Build mysql_fix_privilege_tables.h - ADD_CUSTOM_COMMAND( - OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/mysql_fix_privilege_tables_sql.h -@@ -100,6 +101,7 @@ ADD_CUSTOM_TARGET(GenFixPrivs - DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/mysql_fix_privilege_tables_sql.h - ${CMAKE_CURRENT_BINARY_DIR}/sql_commands_sys_schema.h - ) -+ENDIF() - - # If we do not have performance schema compiled in then sys will not work, - # so only create an empty sys database with an auto-generated file, -@@ -204,6 +206,7 @@ IF(NOT WITHOUT_SERVER) - ) - ENDIF() - -+IF(FALSE) - IF(UNIX) - FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/make_binary_distribution - "cd ${CMAKE_BINARY_DIR} && '${CMAKE_CPACK_COMMAND}' -G TGZ --config CPackConfig.cmake\n" ) -@@ -211,6 +214,7 @@ IF(UNIX) - COMMAND chmod +x ${CMAKE_CURRENT_BINARY_DIR}/make_binary_distribution - ) - ENDIF() -+ENDIF() - - # TCMalloc hacks - IF(MALLOC_LIB) -@@ -364,7 +368,7 @@ MACRO(EXTRACT_LINK_LIBRARIES target var) - LIST(REMOVE_DUPLICATES ${target}_LIB_DEPENDS) - FOREACH(lib ${${target}_LIB_DEPENDS}) - # Filter out "general", it is not a library, just CMake hint -- IF(NOT lib STREQUAL "general" AND NOT ${var} MATCHES "-l${lib} ") -+ IF(NOT lib STREQUAL "general" AND NOT ${var} MATCHES "-l${lib} " AND NOT lib STREQUAL "imported_openssl" AND NOT lib STREQUAL "imported_crypto") - IF (lib MATCHES "^\\-l") - SET(${var} "${${var}} ${lib} ") - ELSEIF(lib MATCHES "^/") -@@ -372,6 +376,8 @@ MACRO(EXTRACT_LINK_LIBRARIES target var) - GET_FILENAME_COMPONENT(lib "${lib}" NAME_WE) - STRING(REGEX REPLACE "^lib" "" lib "${lib}") - SET(${var} "${${var}}-l${lib} " ) -+ ELSEIF(lib STREQUAL "-pthread") -+ SET(${var} "${${var}}-pthread " ) - ELSE() - SET(${var} "${${var}}-l${lib} " ) - ENDIF() -@@ -454,19 +460,7 @@ ELSE() - # On Unix, most of the files end up in the bin directory - SET(mysql_config_COMPONENT COMPONENT Development) - -- IF(WITH_SYSTEMD) -- SET(BIN_SCRIPTS -- mysql_config -- mysqldumpslow -- ) -- ELSE() -- SET(BIN_SCRIPTS -- mysql_config -- mysqldumpslow -- mysqld_multi -- mysqld_safe -- ) -- ENDIF() -+ SET(BIN_SCRIPTS mysql_config) - - SET(PKGCONFIG_FILE ${LIBMYSQL_OS_OUTPUT_NAME}.pc) - STRING(REGEX REPLACE "/mysql$" "" PKGCONFIG_DIR "${INSTALL_LIBDIR}") diff --git a/databases/mysql80-client/files/patch-share_CMakeLists.txt b/databases/mysql80-client/files/patch-share_CMakeLists.txt deleted file mode 100644 index 0f8ffc2e4227..000000000000 --- a/databases/mysql80-client/files/patch-share_CMakeLists.txt +++ /dev/null @@ -1,27 +0,0 @@ ---- share/CMakeLists.txt.orig 2017-10-03 10:54:31 UTC -+++ share/CMakeLists.txt -@@ -45,6 +45,7 @@ SET(files - dictionary.txt - ) - -+IF (FALSE) - FOREACH (dir ${dirs}) - INSTALL(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${dir} - DESTINATION ${INSTALL_MYSQLSHAREDIR} -@@ -57,13 +58,16 @@ INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE - COMPONENT Server - PATTERN "languages.html" EXCLUDE - ) -+ENDIF() - - # Don't copy if we're building in-source. - IF (NOT ${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR}) - CONFIGURE_FILE(dictionary.txt ${CMAKE_BINARY_DIR}/${INSTALL_MYSQLSHAREDIR}/dictionary.txt) - ENDIF() - -+IF (FALSE) - INSTALL(FILES ${files} - DESTINATION ${INSTALL_MYSQLSHAREDIR} - COMPONENT Server - ) -+ENDIF() diff --git a/databases/mysql80-client/files/patch-sql-common_client.cc b/databases/mysql80-client/files/patch-sql-common_client.cc deleted file mode 100644 index 9758da5c5dcd..000000000000 --- a/databases/mysql80-client/files/patch-sql-common_client.cc +++ /dev/null @@ -1,11 +0,0 @@ ---- sql-common/client.cc.orig 2018-04-08 06:44:49 UTC -+++ sql-common/client.cc -@@ -5596,7 +5596,7 @@ int STDCALL mysql_options(MYSQL *mysql, - #endif - break; - case MYSQL_OPT_SSL_FIPS_MODE: { --#if defined(HAVE_OPENSSL) && !defined(HAVE_WOLFSSL) -+#if defined(HAVE_OPENSSL) && !defined(HAVE_WOLFSSL) && !defined(LIBRESSL_VERSION_NUMBER) - char ssl_err_string[OPENSSL_ERROR_LENGTH] = {'\0'}; - ENSURE_EXTENSIONS_PRESENT(&mysql->options); - mysql->options.extension->ssl_fips_mode = *(uint *)arg; diff --git a/databases/mysql80-client/files/patch-sql_auth_sha2__password__common.cc b/databases/mysql80-client/files/patch-sql_auth_sha2__password__common.cc deleted file mode 100644 index 6ad939a2b199..000000000000 --- a/databases/mysql80-client/files/patch-sql_auth_sha2__password__common.cc +++ /dev/null @@ -1,11 +0,0 @@ ---- sql/auth/sha2_password_common.cc.orig 2018-05-06 18:47:55 UTC -+++ sql/auth/sha2_password_common.cc -@@ -101,7 +101,7 @@ bool SHA256_digest::retrieve_digest(unsi - 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) || defined(LIBRESSL_VERSION_NUMBER) || OPENSSL_VERSION_NUMBER < 0x10100000L - EVP_MD_CTX_cleanup(md_context); - #else /* OPENSSL_VERSION_NUMBER < 0x10100000L */ - EVP_MD_CTX_reset(md_context); diff --git a/databases/mysql80-client/files/patch-sql_mysqld.cc b/databases/mysql80-client/files/patch-sql_mysqld.cc deleted file mode 100644 index e6984955312a..000000000000 --- a/databases/mysql80-client/files/patch-sql_mysqld.cc +++ /dev/null @@ -1,11 +0,0 @@ ---- sql/mysqld.cc.orig 2018-05-06 19:15:48 UTC -+++ sql/mysqld.cc -@@ -4321,7 +4321,7 @@ static void init_ssl() { - - static void init_ssl() { - #ifdef HAVE_OPENSSL --#if !defined(HAVE_WOLFSSL) && !defined(__sun) -+#if !defined(HAVE_WOLFSSL) && !defined(LIBRESSL_VERSION_NUMBER) && !defined(__sun) - #if defined(HAVE_PSI_MEMORY_INTERFACE) - static PSI_memory_info all_openssl_memory[] = { - {&key_memory_openssl, "openssl_malloc", 0, 0, diff --git a/databases/mysql80-client/files/patch-sql_sys__vars.cc b/databases/mysql80-client/files/patch-sql_sys__vars.cc deleted file mode 100644 index 883b50f150a4..000000000000 --- a/databases/mysql80-client/files/patch-sql_sys__vars.cc +++ /dev/null @@ -1,29 +0,0 @@ ---- sql/sys_vars.cc.orig 2018-05-06 19:16:02 UTC -+++ sql/sys_vars.cc -@@ -4098,7 +4098,7 @@ static Sys_var_charptr Sys_tls_version( - READ_ONLY GLOBAL_VAR(opt_tls_version), SSL_OPT(OPT_TLS_VERSION), - IN_FS_CHARSET, "TLSv1,TLSv1.1,TLSv1.2"); - --#ifndef HAVE_WOLFSSL -+#if !defined(HAVE_WOLFSSL) && !defined(LIBRESSL_VERSION_NUMBER) - static bool update_fips_mode(sys_var *, THD *, enum_var_type) { - char ssl_err_string[OPENSSL_ERROR_LENGTH] = {'\0'}; - if (set_fips_mode(opt_ssl_fips_mode, ssl_err_string) != 1) { -@@ -4110,7 +4110,7 @@ static bool update_fips_mode(sys_var *, - } - #endif - --#ifdef HAVE_WOLFSSL -+#if defined(HAVE_WOLFSSL) || defined(LIBRESSL_VERSION_NUMBER) - static const char *ssl_fips_mode_names[] = {"OFF", 0}; - #else - static const char *ssl_fips_mode_names[] = {"OFF", "ON", "STRICT", 0}; -@@ -4121,7 +4121,7 @@ static Sys_var_enum Sys_ssl_fips_mode( - GLOBAL_VAR(opt_ssl_fips_mode), SSL_OPT(OPT_SSL_FIPS_MODE), - ssl_fips_mode_names, DEFAULT(0), NO_MUTEX_GUARD, NOT_IN_BINLOG, - ON_CHECK(NULL), --#ifndef HAVE_WOLFSSL -+#if !defined(HAVE_WOLFSSL) && !defined(LIBRESSL_VERSION_NUMBER) - ON_UPDATE(update_fips_mode), - #else - ON_UPDATE(NULL), diff --git a/databases/mysql80-client/files/patch-storage_myisam_mi__dynrec.cc b/databases/mysql80-client/files/patch-storage_myisam_mi__dynrec.cc deleted file mode 100644 index 125494d23417..000000000000 --- a/databases/mysql80-client/files/patch-storage_myisam_mi__dynrec.cc +++ /dev/null @@ -1,22 +0,0 @@ ---- storage/myisam/mi_dynrec.cc.orig 2016-03-28 18:06:12 UTC -+++ storage/myisam/mi_dynrec.cc -@@ -65,18 +65,13 @@ bool mi_dynmap_file(MI_INFO *info, my - DBUG_RETURN(1); - } - /* -- I wonder if it is good to use MAP_NORESERVE. From the Linux man page: -- MAP_NORESERVE -- Do not reserve swap space for this mapping. When swap space is -- reserved, one has the guarantee that it is possible to modify the -- mapping. When swap space is not reserved one might get SIGSEGV -- upon a write if no physical memory is available. -+ MAP_NORESERVE is unimplemented in FreeBSD - */ - info->s->file_map = (uchar *)my_mmap( - 0, (size_t)size, - info->s->mode == O_RDONLY ? PROT_READ : PROT_READ | PROT_WRITE, -- MAP_SHARED | MAP_NORESERVE, info->dfile, 0L); -+ MAP_SHARED, info->dfile, 0L); - if (info->s->file_map == (uchar *)MAP_FAILED) { - info->s->file_map = NULL; - diff --git a/databases/mysql80-client/files/patch-support-files_CMakeLists.txt b/databases/mysql80-client/files/patch-support-files_CMakeLists.txt deleted file mode 100644 index 3c5e299b1d63..000000000000 --- a/databases/mysql80-client/files/patch-support-files_CMakeLists.txt +++ /dev/null @@ -1,27 +0,0 @@ ---- support-files/CMakeLists.txt.orig 2017-06-27 11:44:29 UTC -+++ support-files/CMakeLists.txt -@@ -29,9 +29,11 @@ - - SET(localstatedir "${MYSQL_DATADIR}") - -+IF(FALSE) - SET(prefix "${CMAKE_INSTALL_PREFIX}") - SET(bindir ${prefix}/${INSTALL_BINDIR}) - SET(sbindir ${prefix}/${INSTALL_SBINDIR}) -+ENDIF() - - IF(LINUX) - SET (PIDOF "pidof") -@@ -39,6 +41,7 @@ - SET (PIDOF "pgrep -d' ' -f") - ENDIF() - -+IF(FALSE) - FOREACH(script - mysql.server - mysqld_multi.server -@@ -54,3 +57,4 @@ - GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE - ) - ENDFOREACH() -+ENDIF() diff --git a/databases/mysql80-client/files/patch-utilities_CMakeLists.txt b/databases/mysql80-client/files/patch-utilities_CMakeLists.txt deleted file mode 100644 index 3a584e82cae9..000000000000 --- a/databases/mysql80-client/files/patch-utilities_CMakeLists.txt +++ /dev/null @@ -1,24 +0,0 @@ ---- utilities/CMakeLists.txt.orig 2018-12-20 20:14:03 UTC -+++ utilities/CMakeLists.txt -@@ -59,6 +59,7 @@ FILE(MAKE_DIRECTORY ${PROJECT_BINARY_DIR - - ADD_CUSTOM_COMMAND(OUTPUT ${PROJECT_BINARY_DIR}/include/mysqld_error.h - ${PROJECT_BINARY_DIR}/${INSTALL_MYSQLSHAREDIR}/english/errmsg.sys -+ COMMAND mkdir -p ${PROJECT_BINARY_DIR}/share/ - COMMAND comp_err - --charset=${PROJECT_SOURCE_DIR}/share/charsets - --out-dir=${PROJECT_BINARY_DIR}/${INSTALL_MYSQLSHAREDIR}/ -@@ -92,6 +93,7 @@ IF(APPLE AND HAVE_CRYPTO_DYLIB AND HAVE_ - ADD_DEPENDENCIES(comp_err copy_openssl_dlls) - ENDIF() - -+IF(FALSE) - MYSQL_ADD_EXECUTABLE(my_print_defaults my_print_defaults.cc) - TARGET_LINK_LIBRARIES(my_print_defaults mysys mysys_ssl) - SET_TARGET_PROPERTIES(my_print_defaults PROPERTIES LINKER_LANGUAGE CXX) -@@ -168,4 +170,5 @@ IF(WITH_INNOBASE_STORAGE_ENGINE) - mysys innodb_zipdecompress ${LZ4_LIBRARY}) - ADD_DEPENDENCIES(ibd2sdi GenError) - -+ENDIF() - ENDIF() diff --git a/databases/mysql80-client/files/patch-vio_viosslfactories.cc b/databases/mysql80-client/files/patch-vio_viosslfactories.cc deleted file mode 100644 index f0f74c3812e4..000000000000 --- a/databases/mysql80-client/files/patch-vio_viosslfactories.cc +++ /dev/null @@ -1,47 +0,0 @@ ---- vio/viosslfactories.cc.orig 2018-04-08 06:44:49 UTC -+++ vio/viosslfactories.cc -@@ -37,6 +37,7 @@ - - #ifdef HAVE_OPENSSL - #include <openssl/dh.h> -+#include <openssl/crypto.h> - - #define TLS_VERSION_OPTION_SIZE 256 - #define SSL_CIPHER_LIST_SIZE 4096 -@@ -135,7 +136,7 @@ static DH *get_dh2048(void) { - BIGNUM *p = BN_bin2bn(dh2048_p, sizeof(dh2048_p), NULL); - BIGNUM *g = BN_bin2bn(dh2048_g, sizeof(dh2048_g), NULL); - if (!p || !g --#if OPENSSL_VERSION_NUMBER >= 0x10100000L -+#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER) - || !DH_set0_pqg(dh, p, NULL, g) - #endif /* OPENSSL_VERSION_NUMBER >= 0x10100000L */ - ) { -@@ -426,7 +427,7 @@ void ssl_start() { - } - } - --#ifndef HAVE_WOLFSSL -+#if !defined(HAVE_WOLFSSL) && !defined(LIBRESSL_VERSION_NUMBER) - /** - Set fips mode in openssl library, - When we set fips mode ON/STRICT, it will perform following operations: -@@ -449,6 +450,10 @@ int set_fips_mode(const uint fips_mode, - int rc = -1; - unsigned int fips_mode_old = -1; - unsigned long err_library = 0; -+#if defined(LIBRESSL_VERSION_NUMBER) -+ err_string="LibreSSL deosn't have FIPS_mode functionas"; -+ goto EXIT; -+#else - if (fips_mode > 2) { - goto EXIT; - } -@@ -462,6 +467,7 @@ int set_fips_mode(const uint fips_mode, - ERR_error_string_n(err_library, err_string, OPENSSL_ERROR_LENGTH - 1); - err_string[OPENSSL_ERROR_LENGTH - 1] = '\0'; - } -+#endif - EXIT: - return rc; - } diff --git a/databases/mysql80-client/pkg-plist b/databases/mysql80-client/pkg-plist index c9f72d346d6f..ca9eccb32910 100644 --- a/databases/mysql80-client/pkg-plist +++ b/databases/mysql80-client/pkg-plist @@ -1,7 +1,7 @@ +bin/my_print_defaults bin/mysql bin/mysql_config bin/mysql_config_editor -bin/mysql_ssl_rsa_setup bin/mysqladmin bin/mysqlbinlog bin/mysqlcheck @@ -10,6 +10,8 @@ bin/mysqlimport bin/mysqlpump bin/mysqlshow bin/mysqlslap +bin/perror +bin/zlib_decompress include/mysql/base64.h include/mysql/big_endian.h include/mysql/c_string_less.h @@ -41,6 +43,7 @@ include/mysql/my_check_opt.h include/mysql/my_command.h include/mysql/my_compare.h include/mysql/my_compiler.h +include/mysql/my_compress.h include/mysql/my_dbug.h include/mysql/my_default.h include/mysql/my_dir.h @@ -181,8 +184,10 @@ lib/mysql/libmysqlclient.so.21 lib/mysql/libmysqlclient_r.a lib/mysql/libmysqlclient_r.so lib/mysql/libmysqlclient_r.so.21 +%%SASLCLIENT%%lib/mysql/plugin/authentication_ldap_sasl_client.so libdata/pkgconfig/mysqlclient.pc man/man1/comp_err.1.gz +man/man1/lz4_decompress.1.gz man/man1/mysql.1.gz man/man1/mysql_config.1.gz man/man1/mysql_config_editor.1.gz @@ -191,6 +196,10 @@ man/man1/mysqlbinlog.1.gz man/man1/mysqlcheck.1.gz man/man1/mysqldump.1.gz man/man1/mysqlimport.1.gz +man/man1/mysqlman.1.gz +man/man1/mysqlpump.1.gz man/man1/mysqlshow.1.gz man/man1/mysqlslap.1.gz +man/man1/perror.1.gz +man/man1/zlib_decompress.1.gz share/aclocal/mysql.m4 diff --git a/databases/mysql80-server/Makefile b/databases/mysql80-server/Makefile index ca7b0967ca50..80f9539a95eb 100644 --- a/databases/mysql80-server/Makefile +++ b/databases/mysql80-server/Makefile @@ -2,8 +2,8 @@ # $FreeBSD$ PORTNAME?= mysql -PORTVERSION= 8.0.17 -PORTREVISION?= 2 +PORTVERSION= 8.0.18 +PORTREVISION?= 0 CATEGORIES= databases MASTER_SITES= MYSQL/MySQL-8.0 PKGNAMESUFFIX?= 80-server @@ -18,7 +18,7 @@ WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION}${DISTVERSIONSUFFIX} SLAVEDIRS= databases/mysql80-client USES= bison:build cmake:noninja compiler:c++14-lang cpe \ - libedit localbase perl5 pkgconfig shebangfix ssl + libedit localbase ncurses perl5 pkgconfig shebangfix ssl USE_PERL5= run @@ -26,10 +26,11 @@ MY_DBDIR= /var/db/mysql MY_SECDIR= /var/db/mysql_secure MY_TMPDIR= /var/db/mysql_tmpdir -LIB_DEPENDS+= libevent.so:devel/libevent \ +LIB_DEPENDS+= libcurl.so:ftp/curl \ + libevent.so:devel/libevent \ libicutu.so:devel/icu \ liblz4.so:archivers/liblz4 \ - libre2.so:devel/re2 \ + libzstd.so:archivers/zstd \ libprotobuf.so:devel/protobuf \ libunwind.so:devel/libunwind @@ -51,7 +52,7 @@ CMAKE_ARGS+= -DINSTALL_LAYOUT=FREEBSD \ -DINSTALL_MYSQLDATADIR="${MY_DBDIR}" \ -DINSTALL_MYSQLKEYRINGDIR="etc/mysql/keyring" \ -DINSTALL_MYSQLSHAREDIR="share/mysql" \ - -DINSTALL_MYSQLTESTDIR="share/mysql/tests" \ + -DINSTALL_MYSQLTESTDIR="" \ -DINSTALL_PLUGINDIR="lib/mysql/plugin" \ -DINSTALL_SBINDIR="libexec" \ -DINSTALL_SCRIPTDIR="bin" \ @@ -65,11 +66,13 @@ CMAKE_ARGS+= -DINSTALL_LAYOUT=FREEBSD \ -DWITH_LIBEVENT=system \ -DWITH_LZ4=system \ -DWITH_ICU=system \ - -DWITH_RE2=system \ + -DWITH_CURL=system \ + -DWITH_ZLIB=system \ + -DWITH_ZSTD=system \ -DWITH_PROTOBUF=system \ + -DWITH_SSL=${OPENSSLBASE} \ -DBUILD_BUNDLED_ZLIB=0 \ -DBUILD_BUNDLED_LZ4=0 \ - -DINSTALL_MYSQLTESTDIR=0 SHEBANG_FILES= scripts/*.pl* scripts/*.sh @@ -105,14 +108,14 @@ GROUPS= mysql USE_LDCONFIG+= ${PREFIX}/lib/mysql/plugin -MMAN1= my_print_defaults.1 myisam_ftdump.1 myisamchk.1 myisamlog.1 myisampack.1 \ - mysql.server.1 mysql_convert_table_format.1 mysql_fix_extensions.1 \ - mysql_install_db.1 mysql_plugin.1 mysql_secure_installation.1 mysql_setpermission.1 \ - mysql_tzinfo_to_sql.1 mysql_upgrade.1 mysql_zap.1 mysqlbug.1 \ - mysqld_multi.1 mysqld_safe.1 mysqldumpslow.1 mysqlhotcopy.1 mysqlman.1 \ - mysqltest.1 perror.1 replace.1 resolve_stack_dump.1 resolveip.1 +MMAN1= ibd2sdi.1 innochecksum.1 my_print_defaults.1 myisam_ftdump.1 myisamchk.1 \ + myisamlog.1 myisampack.1 mysql_secure_installation.1 mysql_ssl_rsa_setup.1 \ + mysql_tzinfo_to_sql.1 mysql_upgrade.1 mysql.server.1 mysqldumpslow.1 mysqld_multi.1 \ + mysqld_safe.1 mysqlrouter_passwd.1 mysqlrouter_plugin_info.1 mysqlrouter.1 +MMAN8= mysqld.8 CMAKE_ARGS+= -DWITH_EMBEDDED_SERVER="ON" +CMAKE_ARGS+= -DWITHOUT_CLIENTLIBS="ON" OPTIONS_GROUP= STORAGE OPTIONS_GROUP_STORAGE= ARCHIVE BLACKHOLE EXAMPLE FEDERATED INNOBASE PARTITION PERFSCHEMA @@ -156,18 +159,9 @@ SUB_LIST+= LEGACY_LIMITS="" MODERN_LIMITS="@comment " .include <bsd.port.pre.mk> -.if ${SSL_DEFAULT} == base -CMAKE_ARGS+= -DWITH_SSL=system -.else -CMAKE_ARGS+= -DWITH_SSL=${OPENSSLBASE} -.endif - post-extract: @${RM} -rv ${WRKSRC}/sql/sql_hints.yy.cc ${WRKSRC}/sql/sql_hints.yy.h -post-patch: - @${REINPLACE_CMD} 's/*.1/${MMAN1}/' ${WRKSRC}/man/CMakeLists.txt - .if !defined(CLIENT_ONLY) post-install: ${MKDIR} ${STAGEDIR}${ETCDIR} diff --git a/databases/mysql80-server/distinfo b/databases/mysql80-server/distinfo index 9553d4422339..8fad29bf0680 100644 --- a/databases/mysql80-server/distinfo +++ b/databases/mysql80-server/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1565048626 -SHA256 (mysql-boost-8.0.17.tar.gz) = d44231316ce30a1d1189125ceed86d3388409778e17d0e3b9a060f532463e29a -SIZE (mysql-boost-8.0.17.tar.gz) = 189322239 +TIMESTAMP = 1578004259 +SHA256 (mysql-boost-8.0.18.tar.gz) = 0eccd9d79c04ba0ca661136bb29085e3833d9c48ed022d0b9aba12236994186b +SIZE (mysql-boost-8.0.18.tar.gz) = 194953221 diff --git a/databases/mysql80-server/files/patch-CMakeLists.txt b/databases/mysql80-server/files/patch-CMakeLists.txt index 4c5909720166..bfd3eae12733 100644 --- a/databases/mysql80-server/files/patch-CMakeLists.txt +++ b/databases/mysql80-server/files/patch-CMakeLists.txt @@ -1,35 +1,76 @@ ---- CMakeLists.txt.orig 2019-01-21 19:00:53 UTC +--- CMakeLists.txt.orig 2019-09-20 08:30:51 UTC +++ CMakeLists.txt -@@ -1045,7 +1045,6 @@ IF(UNIX) +@@ -1181,10 +1181,10 @@ ENDIF() + MYSQL_CHECK_SSL() + 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 icu library +@@ -1273,7 +1273,9 @@ IF(WITH_UNIT_TESTS) + INCLUDE(googletest) ENDIF() +-ADD_SUBDIRECTORY(include) ++IF(NOT WITHOUT_CLIENTLIBS) ++ ADD_SUBDIRECTORY(include) ++ENDIF(NOT WITHOUT_CLIENTLIBS) + ADD_SUBDIRECTORY(strings) + ADD_SUBDIRECTORY(vio) + ADD_SUBDIRECTORY(mysys) +@@ -1314,24 +1316,29 @@ IF(WITH_UNIT_TESTS) + ADD_SUBDIRECTORY(unittest/mytap/t) + ENDIF() + +-ADD_SUBDIRECTORY(client) ++IF(NOT WITHOUT_TOOLS) ++ # Add system/bundled editline ++ MYSQL_CHECK_EDITLINE() ++ ADD_SUBDIRECTORY(client) ++ENDIF(NOT WITHOUT_TOOLS) ++ + ADD_SUBDIRECTORY(utilities) +-ADD_SUBDIRECTORY(share) + ADD_SUBDIRECTORY(libservices) + IF(NOT WITHOUT_SERVER) -- ADD_SUBDIRECTORY(testclients) + ADD_SUBDIRECTORY(testclients) ++ ADD_SUBDIRECTORY(share) ADD_SUBDIRECTORY(sql) ENDIF() -@@ -1054,8 +1053,6 @@ 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) + 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) -@@ -1152,6 +1149,7 @@ ENDIF() - # - # RPM installs documentation directly from the source tree - # + ENDIF() +@@ -1440,6 +1447,7 @@ IF(PACK_SEPARATE_COMPONENTS) + SET(CPACK_COMPONENTS_GROUPING IGNORE) + ENDIF() + +IF(FALSE) - IF(NOT INSTALL_LAYOUT MATCHES "RPM") - INSTALL(FILES README LICENSE DESTINATION ${INSTALL_DOCREADMEDIR} COMPONENT Readme) - INSTALL(FILES ${CMAKE_BINARY_DIR}/Docs/INFO_SRC ${CMAKE_BINARY_DIR}/Docs/INFO_BIN DESTINATION ${INSTALL_DOCDIR}) -@@ -1170,6 +1168,7 @@ IF(NOT INSTALL_LAYOUT MATCHES "RPM") + IF(UNIX) + INSTALL(FILES + Docs/mysql.info +@@ -1474,6 +1482,7 @@ IF(NOT INSTALL_LAYOUT MATCHES "RPM") + PATTERN "sp-imp-spec.txt" EXCLUDE PATTERN "README.build" EXCLUDE ) - ENDIF() +ENDIF() + ENDIF() # Now that we're done with all ADD_SUBDIRECTORY and thus all feature tests, - # we can safely enable ASan on Clang/Win32 if needed. diff --git a/databases/mysql80-server/files/patch-client_CMakeLists.txt b/databases/mysql80-server/files/patch-client_CMakeLists.txt index 77cc81455571..f71309333414 100644 --- a/databases/mysql80-server/files/patch-client_CMakeLists.txt +++ b/databases/mysql80-server/files/patch-client_CMakeLists.txt @@ -1,52 +1,75 @@ ---- client/CMakeLists.txt.orig 2018-12-20 20:14:03 UTC +--- client/CMakeLists.txt.orig 2019-09-20 08:30:51 UTC +++ client/CMakeLists.txt -@@ -26,14 +26,14 @@ INCLUDE(${MYSQL_CMAKE_SCRIPT_DIR}/compil - +@@ -23,8 +23,11 @@ ## Subdirectory with common client code. ADD_SUBDIRECTORY(base) --## Subdirectory for mysqlpump code. --ADD_SUBDIRECTORY(dump) + ## Subdirectory for mysqlpump code. ++IF(WITHOUT_SERVER) + ADD_SUBDIRECTORY(dump) ++ENDIF() -+IF(FALSE) - MYSQL_ADD_EXECUTABLE(mysql completion_hash.cc mysql.cc readline.cc ../sql-common/sql_string.cc pattern_matcher.cc ${CMAKE_SOURCE_DIR}/sql/net_ns.cc) - TARGET_LINK_LIBRARIES(mysql mysqlclient) - IF(UNIX) - TARGET_LINK_LIBRARIES(mysql ${EDITLINE_LIBRARY}) - ENDIF(UNIX) ++IF(NOT WITHOUT_CLIENTLIBS) + MYSQL_ADD_EXECUTABLE(mysql + ${CMAKE_SOURCE_DIR}/sql-common/net_ns.cc + completion_hash.cc +@@ -33,6 +36,7 @@ MYSQL_ADD_EXECUTABLE(mysql + readline.cc + LINK_LIBRARIES mysqlclient client_base ${EDITLINE_LIBRARY} + ) +ENDIF() IF(NOT WITHOUT_SERVER) - MYSQL_ADD_EXECUTABLE(mysql_upgrade upgrade/program.cc) -@@ -56,6 +56,7 @@ ADD_DEPENDENCIES(mysqltest GenError GenC - ADD_CONVENIENCE_LIBRARY(mysqlcheck_core check/mysqlcheck_core.cc) - TARGET_LINK_LIBRARIES(mysqlcheck_core mysqlclient) - -+IF(FALSE) - MYSQL_ADD_EXECUTABLE(mysqlcheck check/mysqlcheck.cc) - TARGET_LINK_LIBRARIES(mysqlcheck mysqlcheck_core) - -@@ -68,7 +69,9 @@ TARGET_LINK_LIBRARIES(mysqlimport mysqlc + MYSQL_ADD_EXECUTABLE(mysql_upgrade +@@ -48,6 +52,7 @@ IF(SOLARIS_SPARC AND CMAKE_BUILD_TYPE_UPPER STREQUAL " + ) + ENDIF() - MYSQL_ADD_EXECUTABLE(mysqlshow mysqlshow.cc) - TARGET_LINK_LIBRARIES(mysqlshow mysqlclient) ++IF(NOT WITHOUT_SERVER) + MYSQL_ADD_EXECUTABLE(mysqltest + mysqltest.cc + mysqltest/error_names.cc +@@ -63,6 +68,9 @@ MYSQL_ADD_EXECUTABLE(mysqltest + ENABLE_EXPORTS + LINK_LIBRARIES mysqlclient + ) +ENDIF() ++ ++IF(WITHOUT_SERVER) + MYSQL_ADD_EXECUTABLE(mysqlcheck + check/mysqlcheck.cc + check/mysqlcheck_core.cc +@@ -80,6 +88,7 @@ MYSQL_ADD_EXECUTABLE(mysqlshow + mysqlshow.cc + LINK_LIBRARIES mysqlclient + ) ++ + MYSQL_ADD_EXECUTABLE(mysqlbinlog + mysqlbinlog.cc + ${CMAKE_SOURCE_DIR}/sql/json_binary.cc +@@ -104,7 +113,9 @@ MYSQL_ADD_EXECUTABLE(mysqlbinlog -+IF(FALSE) - MYSQL_ADD_EXECUTABLE(mysqlbinlog mysqlbinlog.cc) - SET(MYSQLBINLOG_LIB_SOURCES - ${CMAKE_SOURCE_DIR}/strings/decimal.cc -@@ -107,12 +110,15 @@ TARGET_LINK_LIBRARIES(mysqlslap mysqlcli - - MYSQL_ADD_EXECUTABLE(mysql_config_editor mysql_config_editor.cc) - TARGET_LINK_LIBRARIES(mysql_config_editor mysqlclient) + TARGET_COMPILE_DEFINITIONS(mysqlbinlog PRIVATE DISABLE_PSI_MUTEX) + TARGET_INCLUDE_DIRECTORIES(mysqlbinlog PRIVATE ${CMAKE_SOURCE_DIR}/sql) +ENDIF() - MYSQL_ADD_EXECUTABLE(mysql_secure_installation mysql_secure_installation.cc) - TARGET_LINK_LIBRARIES(mysql_secure_installation mysqlclient) - -+IF(FALSE) - MYSQL_ADD_EXECUTABLE(mysql_ssl_rsa_setup mysql_ssl_rsa_setup.cc path.cc logger.cc) - TARGET_LINK_LIBRARIES(mysql_ssl_rsa_setup mysys) ++IF(WITHOUT_SERVER) + MYSQL_ADD_EXECUTABLE(mysqladmin + mysqladmin.cc + LINK_LIBRARIES mysqlclient +@@ -117,6 +128,9 @@ MYSQL_ADD_EXECUTABLE(mysql_config_editor + mysql_config_editor.cc + LINK_LIBRARIES mysqlclient + ) ++ENDIF() ++ ++IF(NOT WITHOUT_SERVER) + MYSQL_ADD_EXECUTABLE(mysql_secure_installation + mysql_secure_installation.cc + LINK_LIBRARIES mysqlclient +@@ -127,6 +141,7 @@ MYSQL_ADD_EXECUTABLE(mysql_ssl_rsa_setup + path.cc + LINK_LIBRARIES mysys + ) +ENDIF() # "WIN32" also covers 64 bit. "echo" is used in some files below "mysql-test/". diff --git a/databases/mysql80-client/files/patch-cmake_os_DragonFly.cmake b/databases/mysql80-server/files/patch-cmake_os_DragonFly.cmake index 83c154ee3bcf..83c154ee3bcf 100644 --- a/databases/mysql80-client/files/patch-cmake_os_DragonFly.cmake +++ b/databases/mysql80-server/files/patch-cmake_os_DragonFly.cmake diff --git a/databases/mysql80-client/files/patch-cmake_os_FreeBSD.cmake b/databases/mysql80-server/files/patch-cmake_os_FreeBSD.cmake index 2c6ce17ab9bf..2f6f488d4abd 100644 --- a/databases/mysql80-client/files/patch-cmake_os_FreeBSD.cmake +++ b/databases/mysql80-server/files/patch-cmake_os_FreeBSD.cmake @@ -1,4 +1,4 @@ ---- cmake/os/FreeBSD.cmake.orig 2019-06-25 10:23:30 UTC +--- cmake/os/FreeBSD.cmake.orig 2019-09-20 08:30:51 UTC +++ cmake/os/FreeBSD.cmake @@ -45,8 +45,20 @@ IF(NOT FORCE_UNSUPPORTED_COMPILER) MESSAGE(FATAL_ERROR @@ -22,4 +22,4 @@ + ENDIF() ENDIF() ENDIF() - + diff --git a/databases/mysql80-server/files/patch-cmake_plugin.cmake b/databases/mysql80-server/files/patch-cmake_plugin.cmake index 7feda81543ba..c0d9994299b6 100644 --- a/databases/mysql80-server/files/patch-cmake_plugin.cmake +++ b/databases/mysql80-server/files/patch-cmake_plugin.cmake @@ -1,12 +1,12 @@ ---- cmake/plugin.cmake.orig 2017-06-27 11:44:29 UTC +--- cmake/plugin.cmake.orig 2019-09-20 08:30:51 UTC +++ cmake/plugin.cmake -@@ -207,9 +207,6 @@ MACRO(MYSQL_ADD_PLUGIN) +@@ -226,9 +226,6 @@ MACRO(MYSQL_ADD_PLUGIN) MYSQL_INSTALL_TARGETS(${target} DESTINATION ${INSTALL_PLUGINDIR} COMPONENT ${INSTALL_COMPONENT}) - INSTALL_DEBUG_TARGET(${target} - DESTINATION ${INSTALL_PLUGINDIR}/debug - COMPONENT ${INSTALL_COMPONENT}) - # For internal testing in PB2, append collections files - IF(DEFINED ENV{PB2WORKDIR}) - PLUGIN_APPEND_COLLECTIONS(${plugin}) + ENDIF() + ELSE() + IF(WITHOUT_${plugin}) diff --git a/databases/mysql80-server/files/patch-cmake_ssl.cmake b/databases/mysql80-server/files/patch-cmake_ssl.cmake index 8fc3814b1342..e35e3f0edff8 100644 --- a/databases/mysql80-server/files/patch-cmake_ssl.cmake +++ b/databases/mysql80-server/files/patch-cmake_ssl.cmake @@ -1,14 +1,28 @@ ---- cmake/ssl.cmake.orig 2018-04-29 16:21:47 UTC +--- cmake/ssl.cmake.orig 2019-09-20 08:30:51 UTC +++ cmake/ssl.cmake -@@ -265,10 +265,10 @@ MACRO (MYSQL_CHECK_SSL) - OPENSSL_MAJOR_VERSION "${OPENSSL_VERSION_NUMBER}" +@@ -199,7 +199,7 @@ MACRO (MYSQL_CHECK_SSL) + # Encoded as MNNFFPPS: major minor fix patch status + FILE(STRINGS "${OPENSSL_INCLUDE_DIR}/openssl/opensslv.h" + OPENSSL_VERSION_NUMBER +- REGEX "^#[ ]*define[\t ]+OPENSSL_VERSION_NUMBER[\t ]+0x[0-9].*" ++ REGEX "^#[\t ]*define[\t ]+OPENSSL_VERSION_NUMBER[\t ]+0x[0-9].*" ) + STRING(REGEX REPLACE + "^.*OPENSSL_VERSION_NUMBER[\t ]+0x([0-9]).*$" "\\1" +@@ -214,13 +214,14 @@ MACRO (MYSQL_CHECK_SSL) + OPENSSL_FIX_VERSION "${OPENSSL_VERSION_NUMBER}" + ) + ENDIF() +- IF("${OPENSSL_MAJOR_VERSION}.${OPENSSL_MINOR_VERSION}.${OPENSSL_FIX_VERSION}" VERSION_GREATER "1.1.0") ++ CHECK_SYMBOL_EXISTS(TLS1_3_VERSION "openssl/tls1.h" HAVE_TLS1_3_VERSION) ++ IF(HAVE_TLS1_3_VERSION) + ADD_DEFINITIONS(-DHAVE_TLSv13) ENDIF() IF(OPENSSL_INCLUDE_DIR AND OPENSSL_LIBRARY AND CRYPTO_LIBRARY AND - OPENSSL_MAJOR_VERSION STREQUAL "1" -+ (OPENSSL_MAJOR_VERSION STREQUAL "1" OR OPENSSL_MAJOR_VERSION STREQUAL "2") ++ OPENSSL_MAJOR_VERSION VERSION_GREATER_EQUAL "1" ) SET(OPENSSL_FOUND TRUE) FIND_PROGRAM(OPENSSL_EXECUTABLE openssl diff --git a/databases/mysql80-server/files/patch-cmd-line-utils_libedit_chartype.h b/databases/mysql80-server/files/patch-cmd-line-utils_libedit_chartype.h deleted file mode 100644 index 47a9c7ca00ac..000000000000 --- a/databases/mysql80-server/files/patch-cmd-line-utils_libedit_chartype.h +++ /dev/null @@ -1,11 +0,0 @@ ---- extra/libedit/chartype.h.orig 2016-03-28 18:06:12 UTC -+++ extra/libedit/chartype.h -@@ -49,7 +49,7 @@ - TODO : Verify if FreeBSD & AIX stores ISO 10646 in wchar_t. */ - #if !defined(__NetBSD__) && !defined(__sun) \ - && !(defined(__APPLE__) && defined(__MACH__)) \ -- && !defined(__FreeBSD__) && !defined(_AIX) -+ && !defined(__FreeBSD__) && !defined(_AIX) && !defined(__DragonFly__) - #ifndef __STDC_ISO_10646__ - /* In many places it is assumed that the first 127 code points are ASCII - * compatible, so ensure wchar_t indeed does ISO 10646 and not some other diff --git a/databases/mysql80-server/files/patch-cmd-line-utils_libedit_vi.c b/databases/mysql80-server/files/patch-cmd-line-utils_libedit_vi.c deleted file mode 100644 index 1ee69856abf0..000000000000 --- a/databases/mysql80-server/files/patch-cmd-line-utils_libedit_vi.c +++ /dev/null @@ -1,20 +0,0 @@ ---- extra/libedit/vi.c.orig 2016-03-28 18:06:12 UTC -+++ extra/libedit/vi.c -@@ -919,7 +919,7 @@ vi_comment_out(EditLine *el, Int c __att - * NB: posix implies that we should enter insert mode, however - * this is against historical precedent... - */ --#if defined(__weak_reference) && !defined(__FreeBSD__) -+#if defined(__weak_reference) && !defined(__FreeBSD__) && !defined(__DragonFly__) - __weakref_visible char *my_get_alias_text(const char *) - __weak_reference(get_alias_text); - #endif -@@ -928,7 +928,7 @@ protected el_action_t - vi_alias(EditLine *el __attribute__((__unused__)), - Int c __attribute__((__unused__))) - { --#if defined(__weak_reference) && !defined(__FreeBSD__) -+#if defined(__weak_reference) && !defined(__FreeBSD__) && !defined(__DragonFly__) - char alias_name[3]; - char *alias_text; - diff --git a/databases/mysql80-client/files/patch-cmd-line-utils_libedit_chartype.h b/databases/mysql80-server/files/patch-extra_libedit_chartype.h index 47a9c7ca00ac..021cefcabd43 100644 --- a/databases/mysql80-client/files/patch-cmd-line-utils_libedit_chartype.h +++ b/databases/mysql80-server/files/patch-extra_libedit_chartype.h @@ -1,4 +1,4 @@ ---- extra/libedit/chartype.h.orig 2016-03-28 18:06:12 UTC +--- extra/libedit/chartype.h.orig 2019-09-20 08:30:51 UTC +++ extra/libedit/chartype.h @@ -49,7 +49,7 @@ TODO : Verify if FreeBSD & AIX stores ISO 10646 in wchar_t. */ diff --git a/databases/mysql80-client/files/patch-cmd-line-utils_libedit_vi.c b/databases/mysql80-server/files/patch-extra_libedit_vi.c index 1ee69856abf0..01c25f438993 100644 --- a/databases/mysql80-client/files/patch-cmd-line-utils_libedit_vi.c +++ b/databases/mysql80-server/files/patch-extra_libedit_vi.c @@ -1,6 +1,6 @@ ---- extra/libedit/vi.c.orig 2016-03-28 18:06:12 UTC +--- extra/libedit/vi.c.orig 2019-09-20 08:30:51 UTC +++ extra/libedit/vi.c -@@ -919,7 +919,7 @@ vi_comment_out(EditLine *el, Int c __att +@@ -919,7 +919,7 @@ vi_comment_out(EditLine *el, Int c __attribute__((__un * NB: posix implies that we should enter insert mode, however * this is against historical precedent... */ diff --git a/databases/mysql80-server/files/patch-extra_libevent_openssl-compat.h b/databases/mysql80-server/files/patch-extra_libevent_openssl-compat.h new file mode 100644 index 000000000000..22616ed7ca9f --- /dev/null +++ b/databases/mysql80-server/files/patch-extra_libevent_openssl-compat.h @@ -0,0 +1,19 @@ +--- extra/libevent/openssl-compat.h.orig 2019-09-20 08:30:51 UTC ++++ extra/libevent/openssl-compat.h +@@ -24,12 +24,15 @@ static inline BIO_METHOD *BIO_meth_new(int type, const + #define BIO_set_init(b, val) (b)->init = (val) + #define BIO_set_data(b, val) (b)->ptr = (val) + #define BIO_set_shutdown(b, val) (b)->shutdown = (val) +-#define BIO_get_init(b) (b)->init + #define BIO_get_data(b) (b)->ptr + #define BIO_get_shutdown(b) (b)->shutdown + + #define TLS_method SSLv23_method + + #endif /* OPENSSL_VERSION_NUMBER < 0x10100000L */ ++ ++#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) ++#define BIO_get_init(b) (b)->init ++#endif + + #endif /* OPENSSL_COMPAT_H */ diff --git a/databases/mysql80-server/files/patch-include_CMakeLists.txt b/databases/mysql80-server/files/patch-include_CMakeLists.txt index 6b61c38da4b8..e3a7b30506c1 100644 --- a/databases/mysql80-server/files/patch-include_CMakeLists.txt +++ b/databases/mysql80-server/files/patch-include_CMakeLists.txt @@ -1,10 +1,174 @@ ---- include/CMakeLists.txt.orig 2017-06-27 11:44:29 UTC +--- include/CMakeLists.txt.orig 2019-09-20 08:30:51 UTC +++ include/CMakeLists.txt -@@ -37,5 +37,7 @@ SET(HEADERS_MYSQL_DIR +@@ -37,10 +37,171 @@ SET(HEADERS + ${CMAKE_CURRENT_BINARY_DIR}/mysql_version.h + ${CMAKE_CURRENT_BINARY_DIR}/mysqld_error.h + field_types.h ++ base64.h ++ big_endian.h ++ c_string_less.h ++ crypt_genhash_impl.h ++ decimal.h ++ depth_first_search.h ++ dur_prop.h ++ errmsg.h ++ ft_global.h ++ heap.h ++ keycache.h ++ lex_string.h ++ lf.h ++ little_endian.h ++ m_ctype.h ++ m_string.h ++ map_helpers.h ++ mf_wcomp.h ++ mutex_lock.h ++ my_aes.h ++ my_alloc.h ++ my_atomic.h ++ my_base.h ++ my_bit.h ++ my_bitmap.h ++ my_byteorder.h ++ my_check_opt.h ++ my_command.h ++ my_compare.h ++ my_compiler.h ++ my_dbug.h ++ my_default.h ++ my_dir.h ++ my_double2ulonglong.h ++ my_getopt.h ++ my_hash_combine.h ++ my_icp.h ++ my_inttypes.h ++ my_io.h ++ my_list.h ++ my_loglevel.h ++ my_macros.h ++ my_md5.h ++ my_md5_size.h ++ my_murmur3.h ++ my_pointer_arithmetic.h ++ my_psi_config.h ++ my_rapidjson_size_t.h ++ my_rdtsc.h ++ my_rnd.h ++ my_sharedlib.h ++ my_shm_defaults.h ++ my_sqlcommand.h ++ my_stacktrace.h ++ my_sys.h ++ my_systime.h ++ my_table_map.h ++ my_thread.h ++ my_thread_local.h ++ my_thread_os_id.h ++ my_time.h ++ my_timer.h ++ my_tree.h ++ my_uctype.h ++ my_user.h ++ my_xml.h ++ myisam.h ++ myisammrg.h ++ myisampack.h ++ mysql.h ++ mysql.h.pp ++ mysql_com.h ++ mysql_com_server.h ++ mysql_time.h ++ mysql_version.h.in ++ mysys_err.h ++ nullable.h ++ password.h ++ pfs_cond_provider.h ++ pfs_error_provider.h ++ pfs_file_provider.h ++ pfs_idle_provider.h ++ pfs_memory_provider.h ++ pfs_metadata_provider.h ++ pfs_mutex_provider.h ++ pfs_rwlock_provider.h ++ pfs_socket_provider.h ++ pfs_stage_provider.h ++ pfs_statement_provider.h ++ pfs_table_provider.h ++ pfs_thread_provider.h ++ pfs_transaction_provider.h ++ prealloced_array.h ++ print_version.h ++ priority_queue.h ++ rwlock_scoped_lock.h ++ scope_guard.h ++ service_versions.h ++ sha1.h ++ sha2.h ++ sql_chars.h ++ sql_common.h ++ sql_string.h ++ sslopt-case.h ++ sslopt-longopts.h ++ sslopt-vars.h ++ template_utils.h ++ thr_cond.h ++ thr_lock.h ++ thr_mutex.h ++ thr_rwlock.h ++ typelib.h ++ varlen_sort.h ++ violite.h ++ welcome_copyright_notice.h + ) + SET(HEADERS_MYSQL_DIR + mysql/client_plugin.h + mysql/plugin_auth_common.h ++ mysql/udf_registration_types.h ++ mysql/client_authentication.h ++ mysql/client_plugin.h.pp ++ mysql/com_data.h ++ mysql/get_password.h ++ mysql/group_replication_priv.h ++ mysql/innodb_priv.h ++ mysql/mysql_lex_string.h ++ mysql/plugin.h ++ mysql/plugin_audit.h ++ mysql/plugin_audit.h.pp ++ mysql/plugin_auth.h ++ mysql/plugin_auth.h.pp ++ mysql/plugin_auth_common.h ++ mysql/plugin_ftparser.h ++ mysql/plugin_ftparser.h.pp ++ mysql/plugin_group_replication.h ++ mysql/plugin_keyring.h ++ mysql/plugin_keyring.h.pp ++ mysql/plugin_query_rewrite.h ++ mysql/plugin_trace.h ++ mysql/plugin_validate_password.h ++ mysql/service_command.h ++ mysql/service_locking.h ++ mysql/service_my_plugin_log.h ++ mysql/service_mysql_alloc.h ++ mysql/service_mysql_keyring.h ++ mysql/service_mysql_password_policy.h ++ mysql/service_mysql_string.h ++ mysql/service_parser.h ++ mysql/service_plugin_registry.h ++ mysql/service_rpl_transaction_ctx.h ++ mysql/service_rpl_transaction_write_set.h ++ mysql/service_rules_table.h ++ mysql/service_security_context.h ++ mysql/service_srv_session.h ++ mysql/service_srv_session_info.h ++ mysql/service_ssl_wrapper.h ++ mysql/service_thd_alloc.h ++ mysql/service_thd_engine_lock.h ++ mysql/service_thd_wait.h ++ mysql/service_thread_scheduler.h ++ mysql/services.h ++ mysql/services.h.pp ++ mysql/thread_pool_priv.h ++ mysql/thread_type.h mysql/udf_registration_types.h ) -+IF(FALSE) - INSTALL(FILES ${HEADERS} DESTINATION ${INSTALL_INCLUDEDIR} COMPONENT Development) - INSTALL(FILES ${HEADERS_MYSQL_DIR} DESTINATION ${INSTALL_INCLUDEDIR}/mysql COMPONENT Development) -+ENDIF() diff --git a/databases/mysql80-server/files/patch-include_my__compare.h b/databases/mysql80-server/files/patch-include_my__compare.h index 3b2cd3593e92..83e2c6f371ca 100644 --- a/databases/mysql80-server/files/patch-include_my__compare.h +++ b/databases/mysql80-server/files/patch-include_my__compare.h @@ -1,4 +1,4 @@ ---- include/my_compare.h.orig 2018-04-08 06:44:49 UTC +--- include/my_compare.h.orig 2019-09-20 08:30:51 UTC +++ include/my_compare.h @@ -49,7 +49,7 @@ But beware the dependency of MI_MAX_POSSIBLE_KEY_BUFF and HA_MAX_KEY_LENGTH. diff --git a/databases/mysql80-server/files/patch-include_my__thread__os__id.h b/databases/mysql80-server/files/patch-include_my__thread__os__id.h index 60b111b88a10..56af9be42579 100644 --- a/databases/mysql80-server/files/patch-include_my__thread__os__id.h +++ b/databases/mysql80-server/files/patch-include_my__thread__os__id.h @@ -1,6 +1,6 @@ ---- include/my_thread_os_id.h.orig 2016-03-28 18:06:12 UTC +--- include/my_thread_os_id.h.orig 2019-09-20 08:30:51 UTC +++ include/my_thread_os_id.h -@@ -75,8 +75,12 @@ static inline my_thread_os_id_t my_threa +@@ -84,8 +84,12 @@ static inline my_thread_os_id_t my_thread_os_id() { return pthread_getthreadid_np(); #else #ifdef HAVE_INTEGER_PTHREAD_SELF diff --git a/databases/mysql80-server/files/patch-include_myisam.h b/databases/mysql80-server/files/patch-include_myisam.h index 99493293f483..b8f3ec7ef519 100644 --- a/databases/mysql80-server/files/patch-include_myisam.h +++ b/databases/mysql80-server/files/patch-include_myisam.h @@ -1,4 +1,4 @@ ---- include/myisam.h.orig 2018-04-08 06:44:49 UTC +--- include/myisam.h.orig 2019-09-20 08:30:51 UTC +++ include/myisam.h @@ -59,7 +59,7 @@ The following defines can be increased if necessary. diff --git a/databases/mysql80-server/files/patch-include_violite.h b/databases/mysql80-server/files/patch-include_violite.h new file mode 100644 index 000000000000..78d606a68c6c --- /dev/null +++ b/databases/mysql80-server/files/patch-include_violite.h @@ -0,0 +1,14 @@ +--- include/violite.h.orig 2019-09-20 08:30:51 UTC ++++ include/violite.h +@@ -269,9 +269,11 @@ struct st_VioSSLFd *new_VioSSLConnectorFd( + + long process_tls_version(const char *tls_version); + ++#ifndef LIBRESSL_VERSION_NUMBER + int set_fips_mode(const uint fips_mode, char *err_string); + + uint get_fips_mode(); ++#endif + + struct st_VioSSLFd *new_VioSSLAcceptorFd( + const char *key_file, const char *cert_file, const char *ca_file, diff --git a/databases/mysql80-server/files/patch-libmysql_CMakeLists.txt b/databases/mysql80-server/files/patch-libmysql_CMakeLists.txt index 1d2caddf12e0..f5c2cb11904d 100644 --- a/databases/mysql80-server/files/patch-libmysql_CMakeLists.txt +++ b/databases/mysql80-server/files/patch-libmysql_CMakeLists.txt @@ -1,31 +1,70 @@ ---- libmysql/CMakeLists.txt.orig 2018-12-20 20:14:03 UTC +--- libmysql/CMakeLists.txt.orig 2019-09-20 08:30:51 UTC +++ libmysql/CMakeLists.txt -@@ -239,7 +239,7 @@ MESSAGE(STATUS "Creating LDAP authentica - ADD_SUBDIRECTORY(authentication_ldap) - - # Merge several convenience libraries into one big mysqlclient +@@ -192,6 +192,11 @@ IF (WIN32 AND OPENSSL_APPLINK_C) + ) + ENDIF() + ++INCLUDE(${MYSQL_CMAKE_SCRIPT_DIR}/compile_flags.cmake) ++IF (CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") ++ ADD_COMPILE_FLAGS(${CLIENT_SOURCES} COMPILE_FLAGS "-fPIC") ++ENDIF() ++ + # + # Include protocol tracing infrastructure and the test + # trace plugin if enabled by build options. +@@ -240,12 +245,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) -+MERGE_CONVENIENCE_LIBRARIES(mysqlclient ${LIBS_TO_MERGE} COMPONENT Development SKIP_INSTALL) ++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 -@@ -280,9 +280,10 @@ IF(NOT DISABLE_SHARED) - # and link them together into shared library. - MERGE_LIBRARIES_SHARED(libmysql ${LIBS_TO_MERGE} - EXPORTS ${CLIENT_API_FUNCTIONS} ${CLIENT_API_FUNCTIONS_UNDOCUMENTED} ${CLIENT_API_NONBLOCKING_FUNCTIONS} -- COMPONENT SharedLibraries) -+ COMPONENT SharedLibraries SKIP_INSTALL) - TARGET_LINK_LIBRARIES(libmysql PRIVATE ${LIBS_TO_LINK}) +@@ -281,12 +291,22 @@ ENDIF() -+IF(FALSE) - IF(WIN32) - # So that libmysql_api_test below can find the .dll - ADD_CUSTOM_COMMAND(TARGET libmysql POST_BUILD -@@ -338,6 +339,7 @@ ENDIF() - # to initialize api_calls[] array in api_test.c - # - SET(CLIENT_API_FUNCTION_LIST "") -+ ENDIF() - FOREACH(api ${CLIENT_API_FUNCTIONS}) - SET(CLIENT_API_FUNCTION_LIST "${CLIENT_API_FUNCTION_LIST} ${api},") - ENDFOREACH() + # 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) +@@ -300,7 +320,7 @@ ENDIF() + + IF(UNIX) + # libtool compatability +- IF(FREEBSD OR APPLE) ++ IF(FREEBSD OR APPLE OR CMAKE_SYSTEM_NAME MATCHES "FreeBSD|DragonFly") + SET(OS_SHARED_LIB_VERSION "${SHARED_LIB_MAJOR_VERSION}") + ELSE() + SET(OS_SHARED_LIB_VERSION diff --git a/databases/mysql80-server/files/patch-libservices_CMakeLists.txt b/databases/mysql80-server/files/patch-libservices_CMakeLists.txt index 17784285b60a..1fa50bdd2bca 100644 --- a/databases/mysql80-server/files/patch-libservices_CMakeLists.txt +++ b/databases/mysql80-server/files/patch-libservices_CMakeLists.txt @@ -1,4 +1,4 @@ ---- libservices/CMakeLists.txt.orig 2019-06-25 10:23:30 UTC +--- libservices/CMakeLists.txt.orig 2019-09-20 08:30:51 UTC +++ libservices/CMakeLists.txt @@ -45,7 +45,9 @@ SET(MYSQLSERVICES_SOURCES plugin_registry_service.c) @@ -10,4 +10,3 @@ DESTINATION ${INSTALL_LIBDIR} COMPONENT Development) +ENDIF() ENDIF() - diff --git a/databases/mysql80-server/files/patch-man_CMakeLists.txt b/databases/mysql80-server/files/patch-man_CMakeLists.txt index 4ebe043e0509..c55e30550fbc 100644 --- a/databases/mysql80-server/files/patch-man_CMakeLists.txt +++ b/databases/mysql80-server/files/patch-man_CMakeLists.txt @@ -1,14 +1,74 @@ ---- man/CMakeLists.txt.orig 2019-06-25 10:23:30 UTC +--- man/CMakeLists.txt.orig 2019-09-20 08:30:51 UTC +++ man/CMakeLists.txt -@@ -21,9 +21,8 @@ - # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - +@@ -23,29 +23,14 @@ # Copy man pages --FILE(GLOB MAN1 *.1) --FILE(GLOB MAN1_NDB ndb*.1) --FILE(GLOB MAN1_ROUTER mysqlrouter*.1) -+FILE(GLOB MAN1 *.1) -+FILE(GLOB MAN1_ROUTER mysqlroutermy_print_defaults.1 myisam_ftdump.1 myisamchk.1 myisamlog.1 myisampack.1 mysql.server.1 mysql_convert_table_format.1 mysql_fix_extensions.1 mysql_install_db.1 mysql_plugin.1 mysql_secure_installation.1 mysql_setpermission.1 mysql_tzinfo_to_sql.1 mysql_upgrade.1 mysql_zap.1 mysqlbug.1 mysqld_multi.1 mysqld_safe.1 mysqldumpslow.1 mysqlhotcopy.1 mysqlman.1 mysqltest.1 perror.1 replace.1 resolve_stack_dump.1 resolveip.1) - FILE(GLOB MAN8 *.8) - FILE(GLOB MAN8_NDB ndb*.8) - IF(MAN1_NDB AND NOT WITH_NDBCLUSTER) + SET(MAN1 + comp_err.1 +- ibd2sdi.1 +- innochecksum.1 + lz4_decompress.1 +- my_print_defaults.1 +- myisam_ftdump.1 +- myisamchk.1 +- myisamlog.1 +- myisampack.1 + mysql.1 +- mysql.server.1 + mysql_config.1 + mysql_config_editor.1 +- mysql_secure_installation.1 +- mysql_ssl_rsa_setup.1 +- mysql_tzinfo_to_sql.1 +- mysql_upgrade.1 + mysqladmin.1 + mysqlbinlog.1 + mysqlcheck.1 +- mysqld_multi.1 +- mysqld_safe.1 + mysqldump.1 +- mysqldumpslow.1 + mysqlimport.1 + mysqlman.1 + mysqlpump.1 +@@ -54,6 +39,23 @@ SET(MAN1 + perror.1 + zlib_decompress.1 + ) ++SET(MAN1_TOOLS ++ ibd2sdi.1 ++ innochecksum.1 ++ my_print_defaults.1 ++ myisam_ftdump.1 ++ myisamchk.1 ++ myisamlog.1 ++ myisampack.1 ++ mysql.server.1 ++ mysql_secure_installation.1 ++ mysql_ssl_rsa_setup.1 ++ mysql_tzinfo_to_sql.1 ++ mysql_upgrade.1 ++ mysqldumpslow.1 ++ mysqld_multi.1 ++ mysqld_safe.1 ++ ) + SET(MAN1_NDB + ndb-common-options.1 + ndb_blob_tool.1 +@@ -99,8 +101,15 @@ SET(MAN8_NDB + ndbmtd.8 + ) + +-INSTALL(FILES ${MAN1} DESTINATION ${INSTALL_MANDIR}/man1 COMPONENT ManPages) +-INSTALL(FILES ${MAN8} DESTINATION ${INSTALL_MANDIR}/man8 COMPONENT ManPages) ++IF(NOT WITHOUT_CLIENTLIBS) ++ INSTALL(FILES ${MAN1} DESTINATION ${INSTALL_MANDIR}/man1 COMPONENT ManPages) ++ENDIF() ++ ++ ++IF(NOT WITHOUT_SERVER) ++ INSTALL(FILES ${MAN1_TOOLS} DESTINATION ${INSTALL_MANDIR}/man1 COMPONENT ManPages) ++ INSTALL(FILES ${MAN8} DESTINATION ${INSTALL_MANDIR}/man8 COMPONENT ManPages) ++ENDIF() + + IF(WITH_ROUTER) + INSTALL(FILES ${MAN1_ROUTER} diff --git a/databases/mysql80-server/files/patch-mysys__ssl_my__md5.cc b/databases/mysql80-server/files/patch-mysys__ssl_my__md5.cc deleted file mode 100644 index bed3c7d521e6..000000000000 --- a/databases/mysql80-server/files/patch-mysys__ssl_my__md5.cc +++ /dev/null @@ -1,11 +0,0 @@ ---- mysys/my_md5.cc.orig 2018-04-08 06:44:49 UTC -+++ mysys/my_md5.cc -@@ -56,7 +56,7 @@ static void my_md5_hash(unsigned char *d - int compute_md5_hash(char *digest, const char *buf, int len) { - int retval = 0; - int fips_mode = 0; --#if !defined(HAVE_WOLFSSL) -+#if !defined(HAVE_WOLFSSL) && !defined(LIBRESSL_VERSION_NUMBER) - fips_mode = FIPS_mode(); - #endif /* HAVE_WOLFSSL */ - /* If fips mode is ON/STRICT restricted method calls will result into abort, diff --git a/databases/mysql80-server/files/patch-mysys__ssl_my__default.cc b/databases/mysql80-server/files/patch-mysys_my__default.cc index cf0af3c629d9..ffc76b7a8941 100644 --- a/databases/mysql80-server/files/patch-mysys__ssl_my__default.cc +++ b/databases/mysql80-server/files/patch-mysys_my__default.cc @@ -1,6 +1,6 @@ ---- mysys/my_default.cc.orig 2016-08-25 11:52:06 UTC +--- mysys/my_default.cc.orig 2019-09-20 08:30:51 UTC +++ mysys/my_default.cc -@@ -114,7 +114,7 @@ static my_bool defaults_already_read= FA +@@ -203,7 +203,7 @@ bool no_defaults = false; /* Which directories are searched for options (and in which order) */ @@ -9,7 +9,7 @@ #define DEFAULT_DIRS_SIZE (MAX_DEFAULT_DIRS + 1) /* Terminate with NULL */ static const char **default_directories = NULL; -@@ -914,6 +914,14 @@ static int search_default_file_with_ext( +@@ -909,6 +909,14 @@ static int search_default_file_with_ext(Process_option return 1; /* Ignore wrong files */ } @@ -24,7 +24,7 @@ while (mysql_file_getline(buff, sizeof(buff) - 1, fp, is_login_file)) { line++; /* Ignore comment and empty lines */ -@@ -1252,7 +1260,8 @@ void my_print_default_files(const char * +@@ -1228,7 +1236,8 @@ void my_print_default_files(const char *conf_file) { end[(strlen(end) - 1)] = ' '; else strxmov(end, conf_file, *ext, " ", NullS); @@ -34,23 +34,25 @@ } } } -@@ -1411,13 +1420,8 @@ static const char **init_default_directo +@@ -1565,14 +1574,9 @@ static const char **init_default_directories(MEM_ROOT #else - errors += add_directory(alloc, "/etc/", dirs); - errors += add_directory(alloc, "/etc/mysql/", dirs); -- ++ errors += add_directory(alloc, "/usr/local/etc/", dirs); ++ errors += add_directory(alloc, "/usr/local/etc/mysql/", dirs); + -#if defined(DEFAULT_SYSCONFDIR) - if (DEFAULT_SYSCONFDIR[0]) - errors += add_directory(alloc, DEFAULT_SYSCONFDIR, dirs); -#endif /* DEFAULT_SYSCONFDIR */ -+ errors += add_directory(alloc, "/usr/local/etc/", dirs); -+ errors += add_directory(alloc, "/usr/local/etc/mysql/", dirs); - +- #endif -@@ -1488,7 +1492,7 @@ int check_file_permissions(const char *f + if ((env = getenv("MYSQL_HOME"))) errors += add_directory(alloc, env, dirs); +@@ -1635,7 +1639,7 @@ int check_file_permissions(const char *file_name, bool + #if !defined(_WIN32) MY_STAT stat_info; - if (!my_stat(file_name, &stat_info, MYF(0))) return 1; diff --git a/databases/mysql80-server/files/patch-mysys_my__md5.cc b/databases/mysql80-server/files/patch-mysys_my__md5.cc new file mode 100644 index 000000000000..56986ec7f9b0 --- /dev/null +++ b/databases/mysql80-server/files/patch-mysys_my__md5.cc @@ -0,0 +1,12 @@ +--- mysys/my_md5.cc.orig 2019-09-20 08:30:51 UTC ++++ mysys/my_md5.cc +@@ -56,7 +56,9 @@ static void my_md5_hash(unsigned char *digest, unsigne + int compute_md5_hash(char *digest, const char *buf, int len) { + int retval = 0; + int fips_mode = 0; ++#ifndef LIBRESSL_VERSION_NUMBER + fips_mode = FIPS_mode(); ++#endif /* LIBRESSL_VERSION_NUMBER */ + /* If fips mode is ON/STRICT restricted method calls will result into abort, + * skipping call. */ + if (fips_mode == 0) { diff --git a/databases/mysql80-server/files/patch-plugin_group__replication_libmysqlgcs_src_bindings_xcom_xcom_xcom__ssl__transport.c b/databases/mysql80-server/files/patch-plugin_group__replication_libmysqlgcs_src_bindings_xcom_xcom_xcom__ssl__transport.c new file mode 100644 index 000000000000..ad66725947e7 --- /dev/null +++ b/databases/mysql80-server/files/patch-plugin_group__replication_libmysqlgcs_src_bindings_xcom_xcom_xcom__ssl__transport.c @@ -0,0 +1,31 @@ +--- plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/xcom_ssl_transport.c.orig 2019-09-20 08:30:51 UTC ++++ plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/xcom_ssl_transport.c +@@ -329,6 +329,7 @@ error: + return 1; + } + ++#ifndef LIBRESSL_VERSION_NUMBER + #define OPENSSL_ERROR_LENGTH 512 + static int configure_ssl_fips_mode(const uint fips_mode) { + int rc = -1; +@@ -352,6 +353,7 @@ static int configure_ssl_fips_mode(const uint fips_mod + EXIT: + return rc; + } ++#endif + + static int configure_ssl_ca(SSL_CTX *ssl_ctx, const char *ca_file, + const char *ca_path) { +@@ -555,10 +557,12 @@ int xcom_init_ssl(const char *server_key_file, const c + int verify_server = SSL_VERIFY_NONE; + int verify_client = SSL_VERIFY_NONE; + ++#ifndef LIBRESSL_VERSION_NUMBER + if (configure_ssl_fips_mode(ssl_fips_mode) != 1) { + G_ERROR("Error setting the ssl fips mode"); + goto error; + } ++#endif + + SSL_library_init(); + SSL_load_error_strings(); diff --git a/databases/mysql80-server/files/patch-plugin_password__validation_validate__password.cc b/databases/mysql80-server/files/patch-plugin_password__validation_validate__password.cc index 4d067416d293..4f1313993d21 100644 --- a/databases/mysql80-server/files/patch-plugin_password__validation_validate__password.cc +++ b/databases/mysql80-server/files/patch-plugin_password__validation_validate__password.cc @@ -1,6 +1,6 @@ ---- plugin/password_validation/validate_password.cc.orig 2017-06-27 11:44:29 UTC +--- plugin/password_validation/validate_password.cc.orig 2019-09-20 08:30:51 UTC +++ plugin/password_validation/validate_password.cc -@@ -17,6 +17,8 @@ +@@ -25,6 +25,8 @@ #include <mysql/plugin_validate_password.h> #include <mysql/service_my_plugin_log.h> #include <mysql/service_mysql_string.h> @@ -9,4 +9,3 @@ #include <stdio.h> #include <stdlib.h> #include <string.h> - diff --git a/databases/mysql80-server/files/patch-plugin_x_CMakeLists.txt b/databases/mysql80-server/files/patch-plugin_x_CMakeLists.txt index 5339bb1cd87b..e3ee6f45bb06 100644 --- a/databases/mysql80-server/files/patch-plugin_x_CMakeLists.txt +++ b/databases/mysql80-server/files/patch-plugin_x_CMakeLists.txt @@ -1,16 +1,11 @@ ---- plugin/x/CMakeLists.txt.orig 2018-04-08 06:44:49 UTC +--- plugin/x/CMakeLists.txt.orig 2019-09-20 08:30:51 UTC +++ plugin/x/CMakeLists.txt -@@ -80,11 +80,14 @@ INCLUDE_DIRECTORIES( +@@ -77,6 +77,8 @@ INCLUDE_DIRECTORIES( ${MYSQLX_GENERATE_DIR} ${MYSQLX_PROTOCOL_INCLUDE_DIR} ${MYSQLX_CLIENT_INCLUDE_DIR} ++ ${OPENSSL_INCLUDE_DIR} + ${BOOST_INCLUDE_DIR} ) MY_INCLUDE_SYSTEM_DIRECTORIES(PROTOBUF) - MY_INCLUDE_SYSTEM_DIRECTORIES(LIBEVENT) - MY_INCLUDE_SYSTEM_DIRECTORIES(ICU) -+MY_INCLUDE_SYSTEM_DIRECTORIES(SSL) -+MY_INCLUDE_SYSTEM_DIRECTORIES(ZLIB) - - SET(MYSQLX_PROTBUF_AND_PROTOCOL_LIB diff --git a/databases/mysql80-server/files/patch-plugin_x_client_sha256__scramble__generator.cc b/databases/mysql80-server/files/patch-plugin_x_client_authentication_sha256__scramble__generator.cc index fdd2d61ad7f2..0e894219bb8d 100644 --- a/databases/mysql80-server/files/patch-plugin_x_client_sha256__scramble__generator.cc +++ b/databases/mysql80-server/files/patch-plugin_x_client_authentication_sha256__scramble__generator.cc @@ -1,7 +1,7 @@ ---- plugin/x/client/sha256_scramble_generator.cc.orig 2018-05-09 14:20:16 UTC -+++ plugin/x/client/sha256_scramble_generator.cc -@@ -97,7 +97,7 @@ bool SHA256_digest::retrieve_digest(unsi - DBUG_RETURN(true); +--- plugin/x/client/authentication/sha256_scramble_generator.cc.orig 2019-09-20 08:30:51 UTC ++++ plugin/x/client/authentication/sha256_scramble_generator.cc +@@ -97,7 +97,7 @@ bool SHA256_digest::retrieve_digest(unsigned char *dig + return true; } m_ok = EVP_DigestFinal_ex(md_context, m_digest, nullptr); -#if OPENSSL_VERSION_NUMBER < 0x10100000L diff --git a/databases/mysql80-server/files/patch-plugin_x_client_xconnection__impl.cc b/databases/mysql80-server/files/patch-plugin_x_client_xconnection__impl.cc index f193a77d175c..d469f31624e9 100644 --- a/databases/mysql80-server/files/patch-plugin_x_client_xconnection__impl.cc +++ b/databases/mysql80-server/files/patch-plugin_x_client_xconnection__impl.cc @@ -1,37 +1,32 @@ ---- plugin/x/client/xconnection_impl.cc.orig 2018-04-08 06:44:49 UTC +--- plugin/x/client/xconnection_impl.cc.orig 2019-09-20 08:30:51 UTC +++ plugin/x/client/xconnection_impl.cc -@@ -182,12 +182,12 @@ XError ssl_verify_server_cert(Vio *vio, - return XError{CR_SSL_CONNECTION_ERROR, "Failed to get CN from CN entry"}; - } - --#if OPENSSL_VERSION_NUMBER < 0x10100000L -- const auto cn = reinterpret_cast<char *>(ASN1_STRING_data(cn_asn1)); --#else /* OPENSSL_VERSION_NUMBER < 0x10100000L */ -+#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER) - const auto cn = - reinterpret_cast<const char *>(ASN1_STRING_get0_data(cn_asn1)); --#endif /* OPENSSL_VERSION_NUMBER < 0x10100000L */ -+#else -+ const auto cn = reinterpret_cast<char *>(ASN1_STRING_data(cn_asn1)); -+#endif /* OPENSSL_VERSION_NUMBER >= 0x10100000L */ - const auto cn_len = static_cast<size_t>(ASN1_STRING_length(cn_asn1)); - - // There should not be any NULL embedded in the CN -@@ -451,7 +451,7 @@ XError Connection_impl::get_ssl_error(co +@@ -521,6 +521,7 @@ XError Connection_impl::get_ssl_error(const int error_ return XError(CR_SSL_CONNECTION_ERROR, buffer); } --#ifndef HAVE_WOLFSSL -+#if !defined(HAVE_WOLFSSL) && !defined(LIBRESSL_VERSION_NUMBER) ++#ifndef LIBRESSL_VERSION_NUMBER /** Set fips mode in openssl library, When we set fips mode ON/STRICT, it will perform following operations: -@@ -501,7 +501,7 @@ XError Connection_impl::activate_tls() { +@@ -559,6 +560,7 @@ int set_fips_mode(const uint fips_mode, char err_strin + EXIT: + return rc; + } ++#endif + + XError Connection_impl::activate_tls() { + if (nullptr == m_vio) return get_socket_error(SOCKET_ECONNRESET); +@@ -569,11 +571,13 @@ XError Connection_impl::activate_tls() { if (!m_context->m_ssl_config.is_configured()) - return XError{CR_SSL_CONNECTION_ERROR, ER_TEXT_TLS_NOT_CONFIGURATED}; + return XError{CR_SSL_CONNECTION_ERROR, ER_TEXT_TLS_NOT_CONFIGURATED, true}; --#ifndef HAVE_WOLFSSL -+#if !defined(HAVE_WOLFSSL) && !defined(LIBRESSL_VERSION_NUMBER) ++#ifndef LIBRESSL_VERSION_NUMBER char err_string[OPENSSL_ERROR_LENGTH] = {'\0'}; - if (set_fips_mode((int)m_context->m_ssl_config.m_ssl_fips_mode, err_string) != - 1) { + if (set_fips_mode(static_cast<int>(m_context->m_ssl_config.m_ssl_fips_mode), + err_string) != 1) { + return XError{CR_SSL_CONNECTION_ERROR, err_string, true}; + } ++#endif + auto ssl_ctx_flags = process_tls_version( + details::null_when_empty(m_context->m_ssl_config.m_tls_version)); + diff --git a/databases/mysql80-server/files/patch-plugin_x_configure.cmake b/databases/mysql80-server/files/patch-plugin_x_configure.cmake index 85cf710037e5..3d56059d869a 100644 --- a/databases/mysql80-server/files/patch-plugin_x_configure.cmake +++ b/databases/mysql80-server/files/patch-plugin_x_configure.cmake @@ -1,14 +1,14 @@ ---- plugin/x/configure.cmake.orig 2018-04-08 06:44:49 UTC +--- plugin/x/configure.cmake.orig 2019-09-20 08:30:51 UTC +++ plugin/x/configure.cmake -@@ -44,6 +44,7 @@ CONFIGURE_FILE(${MYSQLX_PROJECT_DIR}/src - CONFIGURE_FILE(${MYSQLX_PROJECT_DIR}/src/mysqlx_version.h.in +@@ -45,6 +45,7 @@ CONFIGURE_FILE(${MYSQLX_PROJECT_DIR}/src/config/mysqlx + CONFIGURE_FILE(${MYSQLX_PROJECT_DIR}/src/config/mysqlx_version.h.in ${MYSQLX_GENERATE_DIR}/mysqlx_version.h ) +IF(FALSE) INSTALL(FILES ${MYSQLX_GENERATE_DIR}/mysqlx_error.h DESTINATION ${INSTALL_INCLUDEDIR} COMPONENT Development) -@@ -55,3 +56,4 @@ INSTALL(FILES ${MYSQLX_GENERATE_DIR}/mys +@@ -56,3 +57,4 @@ INSTALL(FILES ${MYSQLX_GENERATE_DIR}/mysqlx_ername.h INSTALL(FILES ${MYSQLX_GENERATE_DIR}/mysqlx_version.h DESTINATION ${INSTALL_INCLUDEDIR} COMPONENT Development) diff --git a/databases/mysql80-server/files/patch-router_src_http_src_tls__client__context.cc b/databases/mysql80-server/files/patch-router_src_http_src_tls__client__context.cc new file mode 100644 index 000000000000..9ce59673f0b8 --- /dev/null +++ b/databases/mysql80-server/files/patch-router_src_http_src_tls__client__context.cc @@ -0,0 +1,11 @@ +--- router/src/http/src/tls_client_context.cc.orig 2019-09-20 08:30:51 UTC ++++ router/src/http/src/tls_client_context.cc +@@ -54,7 +54,7 @@ void TlsClientContext::verify(TlsVerify verify) { + + void TlsClientContext::cipher_suites(const std::string &ciphers) { + // TLSv1.3 ciphers are controlled via SSL_CTX_set_ciphersuites() +-#if OPENSSL_VERSION_NUMBER >= ROUTER_OPENSSL_VERSION(1, 1, 1) ++#ifdef TLS1_3_VERSION + if (1 != SSL_CTX_set_ciphersuites(ssl_ctx_.get(), ciphers.c_str())) { + throw TlsError("set-cipher-suites"); + } diff --git a/databases/mysql80-server/files/patch-router_src_http_src_tls__context.cc b/databases/mysql80-server/files/patch-router_src_http_src_tls__context.cc new file mode 100644 index 000000000000..e8e01d23073c --- /dev/null +++ b/databases/mysql80-server/files/patch-router_src_http_src_tls__context.cc @@ -0,0 +1,34 @@ +--- router/src/http/src/tls_context.cc.orig 2019-09-20 08:30:51 UTC ++++ router/src/http/src/tls_context.cc +@@ -91,7 +91,7 @@ static constexpr int o11x_version(TlsVersion version) + return TLS1_1_VERSION; + case TlsVersion::TLS_1_2: + return TLS1_2_VERSION; +-#if OPENSSL_VERSION_NUMBER >= ROUTER_OPENSSL_VERSION(1, 1, 1) ++#ifdef TLS1_3_VERSION + case TlsVersion::TLS_1_3: + return TLS1_3_VERSION; + #endif +@@ -121,9 +121,11 @@ void TlsContext::version_range(TlsVersion min_version, + default: + // unknown, leave all disabled + // fallthrough ++#ifdef TLS1_3_VERSION + case TlsVersion::TLS_1_3: + opts |= SSL_OP_NO_TLSv1_2; + // fallthrough ++#endif + case TlsVersion::TLS_1_2: + opts |= SSL_OP_NO_TLSv1_1; + // fallthrough +@@ -170,8 +172,10 @@ TlsVersion TlsContext::min_version() const { + return TlsVersion::TLS_1_1; + case TLS1_2_VERSION: + return TlsVersion::TLS_1_2; ++#ifdef TLS1_3_VERSION + case TLS1_3_VERSION: + return TlsVersion::TLS_1_3; ++#endif + case 0: + return TlsVersion::AUTO; + default: diff --git a/databases/mysql80-server/files/patch-router_src_http_src_tls__server__context.cc b/databases/mysql80-server/files/patch-router_src_http_src_tls__server__context.cc new file mode 100644 index 000000000000..8fcf93f23609 --- /dev/null +++ b/databases/mysql80-server/files/patch-router_src_http_src_tls__server__context.cc @@ -0,0 +1,12 @@ +--- router/src/http/src/tls_server_context.cc.orig 2019-09-20 08:30:51 UTC ++++ router/src/http/src/tls_server_context.cc +@@ -166,7 +166,8 @@ void TlsServerContext::init_tmp_dh(const std::string & + } + + } else { +-#if OPENSSL_VERSION_NUMBER >= ROUTER_OPENSSL_VERSION(1, 1, 0) ++#if OPENSSL_VERSION_NUMBER >= ROUTER_OPENSSL_VERSION(1, 1, 0) && \ ++ !defined(LIBRESSL_VERSION_NUMBER) + dh2048.reset(DH_get_2048_256()); + #else + /* diff --git a/databases/mysql80-server/files/patch-scripts_CMakeLists.txt b/databases/mysql80-server/files/patch-scripts_CMakeLists.txt index 9334ba74754b..1faa52395d26 100644 --- a/databases/mysql80-server/files/patch-scripts_CMakeLists.txt +++ b/databases/mysql80-server/files/patch-scripts_CMakeLists.txt @@ -1,6 +1,15 @@ ---- scripts/CMakeLists.txt.orig 2016-03-28 18:06:12 UTC +--- scripts/CMakeLists.txt.orig 2019-09-20 08:30:51 UTC +++ scripts/CMakeLists.txt -@@ -347,6 +347,8 @@ MACRO(EXTRACT_LINK_LIBRARIES target var) +@@ -327,7 +327,7 @@ MACRO(EXTRACT_LINK_LIBRARIES target var) + LIST(REMOVE_DUPLICATES ${target}_LIB_DEPENDS) + FOREACH(lib ${${target}_LIB_DEPENDS}) + # Filter out "general", it is not a library, just CMake hint +- IF(NOT lib STREQUAL "general" AND NOT ${var} MATCHES "-l${lib} ") ++ IF(NOT lib STREQUAL "general" AND NOT ${var} MATCHES "-l${lib} " AND NOT lib STREQUAL "imported_openssl" AND NOT lib STREQUAL "imported_crypto") + IF (lib MATCHES "^\\-l") + SET(${var} "${${var}} ${lib} ") + ELSEIF (lib MATCHES "^\\-L") +@@ -337,6 +337,8 @@ MACRO(EXTRACT_LINK_LIBRARIES target var) GET_FILENAME_COMPONENT(lib "${lib}" NAME_WE) STRING(REGEX REPLACE "^lib" "" lib "${lib}") SET(${var} "${${var}}-l${lib} " ) @@ -9,11 +18,8 @@ ELSE() SET(${var} "${${var}}-l${lib} " ) ENDIF() -@@ -430,14 +432,13 @@ ELSE() - # On Unix, most of the files end up in the bin directory - SET(mysql_config_COMPONENT COMPONENT Development) +@@ -423,18 +425,23 @@ ELSE() -+ IF(WITH_SYSTEMD) SET(BIN_SCRIPTS - mysql_config @@ -25,16 +31,29 @@ mysqldumpslow mysqld_multi mysqld_safe -@@ -485,7 +486,7 @@ + ) + 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") +@@ -449,7 +456,7 @@ ELSE() ${CMAKE_CURRENT_BINARY_DIR}/${PKGCONFIG_FILE} ESCAPE_QUOTES @ONLY) - IF(INSTALL_PKGCONFIGDIR) -+ IF(FALSE) ++ IF(INSTALL_PKGCONFIGDIR AND NOT WITHOUT_CLIENTLIBS) MESSAGE(STATUS "INSTALL ${PKGCONFIG_FILE} ${INSTALL_PKGCONFIGDIR}") INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PKGCONFIG_FILE} -@@ -498,7 +499,7 @@ +@@ -462,7 +469,7 @@ ELSE() FOREACH(file ${BIN_SCRIPTS}) IF(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${file}.sh) CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/${file}.sh diff --git a/databases/mysql80-server/files/patch-sql-common_client.cc b/databases/mysql80-server/files/patch-sql-common_client.cc index 9758da5c5dcd..226ab8fb11a4 100644 --- a/databases/mysql80-server/files/patch-sql-common_client.cc +++ b/databases/mysql80-server/files/patch-sql-common_client.cc @@ -1,11 +1,11 @@ ---- sql-common/client.cc.orig 2018-04-08 06:44:49 UTC +--- sql-common/client.cc.orig 2019-09-20 08:30:51 UTC +++ sql-common/client.cc -@@ -5596,7 +5596,7 @@ int STDCALL mysql_options(MYSQL *mysql, +@@ -7715,7 +7715,7 @@ int STDCALL mysql_options(MYSQL *mysql, enum mysql_opt #endif break; case MYSQL_OPT_SSL_FIPS_MODE: { --#if defined(HAVE_OPENSSL) && !defined(HAVE_WOLFSSL) -+#if defined(HAVE_OPENSSL) && !defined(HAVE_WOLFSSL) && !defined(LIBRESSL_VERSION_NUMBER) +-#if defined(HAVE_OPENSSL) ++#if defined(HAVE_OPENSSL) && !defined(LIBRESSL_VERSION_NUMBER) char ssl_err_string[OPENSSL_ERROR_LENGTH] = {'\0'}; ENSURE_EXTENSIONS_PRESENT(&mysql->options); - mysql->options.extension->ssl_fips_mode = *(uint *)arg; + mysql->options.extension->ssl_fips_mode = *static_cast<const uint *>(arg); diff --git a/databases/mysql80-server/files/patch-sql_auth_sha2__password__common.cc b/databases/mysql80-server/files/patch-sql_auth_sha2__password__common.cc index 6ad939a2b199..62f768306999 100644 --- a/databases/mysql80-server/files/patch-sql_auth_sha2__password__common.cc +++ b/databases/mysql80-server/files/patch-sql_auth_sha2__password__common.cc @@ -1,11 +1,11 @@ ---- sql/auth/sha2_password_common.cc.orig 2018-05-06 18:47:55 UTC +--- sql/auth/sha2_password_common.cc.orig 2019-09-20 08:30:51 UTC +++ sql/auth/sha2_password_common.cc -@@ -101,7 +101,7 @@ bool SHA256_digest::retrieve_digest(unsi - DBUG_RETURN(true); +@@ -101,7 +101,7 @@ bool SHA256_digest::retrieve_digest(unsigned char *dig + return true; } m_ok = EVP_DigestFinal_ex(md_context, m_digest, NULL); --#if defined(HAVE_WOLFSSL) || OPENSSL_VERSION_NUMBER < 0x10100000L -+#if defined(HAVE_WOLFSSL) || defined(LIBRESSL_VERSION_NUMBER) || OPENSSL_VERSION_NUMBER < 0x10100000L +-#if OPENSSL_VERSION_NUMBER < 0x10100000L ++#if defined(LIBRESSL_VERSION_NUMBER) || OPENSSL_VERSION_NUMBER < 0x10100000L EVP_MD_CTX_cleanup(md_context); #else /* OPENSSL_VERSION_NUMBER < 0x10100000L */ EVP_MD_CTX_reset(md_context); diff --git a/databases/mysql80-server/files/patch-sql_conn__handler_socket__connection.cc b/databases/mysql80-server/files/patch-sql_conn__handler_socket__connection.cc index 36b445f4351e..edcba63dec28 100644 --- a/databases/mysql80-server/files/patch-sql_conn__handler_socket__connection.cc +++ b/databases/mysql80-server/files/patch-sql_conn__handler_socket__connection.cc @@ -1,6 +1,6 @@ ---- sql/conn_handler/socket_connection.cc.orig 2019-01-21 20:10:03 UTC +--- sql/conn_handler/socket_connection.cc.orig 2019-09-20 08:30:51 UTC +++ sql/conn_handler/socket_connection.cc -@@ -873,9 +873,11 @@ bool check_connection_refused_by_tcp_wra +@@ -950,9 +950,11 @@ bool check_connection_refused_by_tcp_wrapper(MYSQL_SOC signal(SIGCHLD, SIG_DFL); request_init(&req, RQ_DAEMON, libwrap_name, RQ_FILE, mysql_socket_getfd(connect_sock), NULL); @@ -14,7 +14,7 @@ /* This may be stupid but refuse() includes an exit(0) which we surely don't want... -@@ -887,12 +889,13 @@ bool check_connection_refused_by_tcp_wra +@@ -964,12 +966,13 @@ bool check_connection_refused_by_tcp_wrapper(MYSQL_SOC This is unproblematic as TCP-wrapper is unix specific, anyway. */ diff --git a/databases/mysql80-server/files/patch-sql_mysqld.cc b/databases/mysql80-server/files/patch-sql_mysqld.cc index b88e85c57a12..f394905ebf29 100644 --- a/databases/mysql80-server/files/patch-sql_mysqld.cc +++ b/databases/mysql80-server/files/patch-sql_mysqld.cc @@ -1,20 +1,11 @@ ---- sql/mysqld.cc.orig 2018-10-07 08:44:22 UTC +--- sql/mysqld.cc.orig 2019-09-20 08:30:51 UTC +++ sql/mysqld.cc -@@ -4493,7 +4493,7 @@ static int warn_self_signed_ca() { +@@ -4797,7 +4797,7 @@ static int init_thread_environment() { static PSI_memory_key key_memory_openssl = PSI_NOT_INSTRUMENTED; -#if OPENSSL_VERSION_NUMBER < 0x10100000L -+#if defined(LIBRESSL_VERSION_NUMBER) || OPENSSL_VERSION_NUMBER < 0x10100000L ++#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) #define FILE_LINE_ARGS #else #define FILE_LINE_ARGS , const char *, int -@@ -4530,7 +4530,7 @@ static void init_ssl() { - - static void init_ssl() { - #ifdef HAVE_OPENSSL --#if !defined(HAVE_WOLFSSL) && !defined(__sun) -+#if !defined(HAVE_WOLFSSL) && !defined(LIBRESSL_VERSION_NUMBER) && !defined(__sun) - #if defined(HAVE_PSI_MEMORY_INTERFACE) - static PSI_memory_info all_openssl_memory[] = { - {&key_memory_openssl, "openssl_malloc", 0, 0, diff --git a/databases/mysql80-server/files/patch-sql_sys__vars.cc b/databases/mysql80-server/files/patch-sql_sys__vars.cc index 48c881ebe102..22c87033cbd2 100644 --- a/databases/mysql80-server/files/patch-sql_sys__vars.cc +++ b/databases/mysql80-server/files/patch-sql_sys__vars.cc @@ -1,15 +1,15 @@ ---- sql/sys_vars.cc.orig 2018-04-08 06:44:49 UTC +--- sql/sys_vars.cc.orig 2019-09-20 08:30:51 UTC +++ sql/sys_vars.cc -@@ -1792,7 +1792,7 @@ static Sys_var_ulong Sys_interactive_tim - "The number of seconds the server waits for activity on an interactive " - "connection before closing it", - SESSION_VAR(net_interactive_timeout), CMD_LINE(REQUIRED_ARG), -- VALID_RANGE(1, LONG_TIMEOUT), DEFAULT(NET_WAIT_TIMEOUT), BLOCK_SIZE(1)); -+ VALID_RANGE(1, INT_MAX32 / 1000), DEFAULT(NET_WAIT_TIMEOUT), BLOCK_SIZE(1)); +@@ -1841,7 +1841,7 @@ static Sys_var_ulong Sys_connect_timeout( + "The number of seconds the mysqld server is waiting for a connect " + "packet before responding with 'Bad handshake'", + GLOBAL_VAR(connect_timeout), CMD_LINE(REQUIRED_ARG), +- VALID_RANGE(2, LONG_TIMEOUT), DEFAULT(CONNECT_TIMEOUT), BLOCK_SIZE(1)); ++ VALID_RANGE(2, INT_MAX32 / 1000), DEFAULT(CONNECT_TIMEOUT), BLOCK_SIZE(1)); - static Sys_var_ulong Sys_join_buffer_size( - "join_buffer_size", "The size of the buffer that is used for full joins", -@@ -2594,7 +2594,7 @@ static Sys_var_ulong Sys_net_read_timeou + static Sys_var_ulong Sys_information_schema_stats_expiry( + "information_schema_stats_expiry", +@@ -2890,7 +2890,7 @@ static Sys_var_ulong Sys_net_read_timeout( "Number of seconds to wait for more data from a connection before " "aborting the read", SESSION_VAR(net_read_timeout), CMD_LINE(REQUIRED_ARG), @@ -18,7 +18,7 @@ NO_MUTEX_GUARD, NOT_IN_BINLOG, ON_CHECK(0), ON_UPDATE(fix_net_read_timeout)); -@@ -2615,7 +2615,7 @@ static Sys_var_ulong Sys_net_write_timeo +@@ -2911,7 +2911,7 @@ static Sys_var_ulong Sys_net_write_timeout( "Number of seconds to wait for a block to be written to a connection " "before aborting the write", SESSION_VAR(net_write_timeout), CMD_LINE(REQUIRED_ARG), @@ -27,39 +27,29 @@ NO_MUTEX_GUARD, NOT_IN_BINLOG, ON_CHECK(0), ON_UPDATE(fix_net_write_timeout)); -@@ -4098,7 +4098,7 @@ static Sys_var_charptr Sys_tls_version( - READ_ONLY GLOBAL_VAR(opt_tls_version), SSL_OPT(OPT_TLS_VERSION), - IN_FS_CHARSET, "TLSv1,TLSv1.1,TLSv1.2"); - --#ifndef HAVE_WOLFSSL -+#if !defined(HAVE_WOLFSSL) && !defined(LIBRESSL_VERSION_NUMBER) +@@ -4416,7 +4416,7 @@ static Sys_var_ulong Sys_max_execution_time( + "milliseconds", + HINT_UPDATEABLE SESSION_VAR(max_execution_time), CMD_LINE(REQUIRED_ARG), + VALID_RANGE(0, ULONG_MAX), DEFAULT(0), BLOCK_SIZE(1)); +- ++#ifndef LIBRESSL_VERSION_NUMBER static bool update_fips_mode(sys_var *, THD *, enum_var_type) { char ssl_err_string[OPENSSL_ERROR_LENGTH] = {'\0'}; if (set_fips_mode(opt_ssl_fips_mode, ssl_err_string) != 1) { -@@ -4110,7 +4110,7 @@ static bool update_fips_mode(sys_var *, - } - #endif - --#ifdef HAVE_WOLFSSL -+#if defined(HAVE_WOLFSSL) || defined(LIBRESSL_VERSION_NUMBER) - static const char *ssl_fips_mode_names[] = {"OFF", 0}; - #else - static const char *ssl_fips_mode_names[] = {"OFF", "ON", "STRICT", 0}; -@@ -4121,7 +4121,7 @@ static Sys_var_enum Sys_ssl_fips_mode( - GLOBAL_VAR(opt_ssl_fips_mode), SSL_OPT(OPT_SSL_FIPS_MODE), +@@ -4436,6 +4436,16 @@ static Sys_var_enum Sys_ssl_fips_mode( + GLOBAL_VAR(opt_ssl_fips_mode), CMD_LINE(REQUIRED_ARG, OPT_SSL_FIPS_MODE), ssl_fips_mode_names, DEFAULT(0), NO_MUTEX_GUARD, NOT_IN_BINLOG, - ON_CHECK(NULL), --#ifndef HAVE_WOLFSSL -+#if !defined(HAVE_WOLFSSL) && !defined(LIBRESSL_VERSION_NUMBER) - ON_UPDATE(update_fips_mode), - #else - ON_UPDATE(NULL), -@@ -4429,7 +4429,7 @@ static Sys_var_ulong Sys_net_wait_timeou - "The number of seconds the server waits for activity on a " - "connection before closing it", - SESSION_VAR(net_wait_timeout), CMD_LINE(REQUIRED_ARG), -- VALID_RANGE(1, IF_WIN(INT_MAX32 / 1000, LONG_TIMEOUT)), -+ VALID_RANGE(1, INT_MAX32 / 1000), - DEFAULT(NET_WAIT_TIMEOUT), BLOCK_SIZE(1)); + ON_CHECK(NULL), ON_UPDATE(update_fips_mode), NULL); ++#else ++static const char *ssl_fips_mode_names[] = {"OFF", 0}; ++static Sys_var_enum Sys_ssl_fips_mode( ++ "ssl_fips_mode", ++ "SSL FIPS mode (applies only for OpenSSL); " ++ "permitted values are: OFF", ++ GLOBAL_VAR(opt_ssl_fips_mode), CMD_LINE(REQUIRED_ARG, OPT_SSL_FIPS_MODE), ++ ssl_fips_mode_names, DEFAULT(0), NO_MUTEX_GUARD, NOT_IN_BINLOG, ++ ON_CHECK(NULL), ON_UPDATE(NULL), NULL); ++#endif - static Sys_var_plugin Sys_default_storage_engine( + #if defined(HAVE_OPENSSL) + static Sys_var_bool Sys_auto_generate_certs( diff --git a/databases/mysql80-server/files/patch-storage_innobase_include_srv0mon.h b/databases/mysql80-server/files/patch-storage_innobase_include_srv0mon.h index 8abbfcb04a31..ee591adb8697 100644 --- a/databases/mysql80-server/files/patch-storage_innobase_include_srv0mon.h +++ b/databases/mysql80-server/files/patch-storage_innobase_include_srv0mon.h @@ -1,6 +1,6 @@ ---- storage/innobase/include/srv0mon.h.orig 2016-03-28 18:06:12 UTC +--- storage/innobase/include/srv0mon.h.orig 2019-09-20 08:30:51 UTC +++ storage/innobase/include/srv0mon.h -@@ -34,6 +34,10 @@ Created 12/15/2009 Jimmy Yang +@@ -40,6 +40,10 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, /* Required for FreeBSD so that INT64_MAX is defined. */ #define __STDC_LIMIT_MACROS #endif /* __STDC_LIMIT_MACROS */ diff --git a/databases/mysql80-server/files/patch-storage_myisam_mi__dynrec.cc b/databases/mysql80-server/files/patch-storage_myisam_mi__dynrec.cc index 125494d23417..06a757ebb894 100644 --- a/databases/mysql80-server/files/patch-storage_myisam_mi__dynrec.cc +++ b/databases/mysql80-server/files/patch-storage_myisam_mi__dynrec.cc @@ -1,7 +1,7 @@ ---- storage/myisam/mi_dynrec.cc.orig 2016-03-28 18:06:12 UTC +--- storage/myisam/mi_dynrec.cc.orig 2019-09-20 08:30:51 UTC +++ storage/myisam/mi_dynrec.cc -@@ -65,18 +65,13 @@ bool mi_dynmap_file(MI_INFO *info, my - DBUG_RETURN(1); +@@ -83,17 +83,12 @@ bool mi_dynmap_file(MI_INFO *info, my_off_t size) { + return 1; } /* - I wonder if it is good to use MAP_NORESERVE. From the Linux man page: @@ -19,4 +19,4 @@ + MAP_SHARED, info->dfile, 0L); if (info->s->file_map == (uchar *)MAP_FAILED) { info->s->file_map = NULL; - + return 1; diff --git a/databases/mysql80-server/files/patch-support-files_CMakeLists.txt b/databases/mysql80-server/files/patch-support-files_CMakeLists.txt index f9a908f7364a..a263268e2244 100644 --- a/databases/mysql80-server/files/patch-support-files_CMakeLists.txt +++ b/databases/mysql80-server/files/patch-support-files_CMakeLists.txt @@ -1,13 +1,27 @@ ---- support-files/CMakeLists.txt.orig 2019-06-25 10:23:30 UTC +--- support-files/CMakeLists.txt.orig 2019-09-20 08:30:51 UTC +++ support-files/CMakeLists.txt -@@ -24,8 +24,10 @@ IF(NOT UNIX) +@@ -24,8 +24,9 @@ IF(NOT UNIX) RETURN() ENDIF() -+IF(FALSE) - INSTALL(FILES mysql.m4 - DESTINATION ${INSTALL_SHAREDIR}/aclocal COMPONENT Development) -+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}") - + +@@ -39,6 +40,7 @@ ELSE() + SET (PIDOF "pgrep -d' ' -f") + ENDIF() + ++IF(NOT WITHOUT_SERVER) + FOREACH(script + mysql.server + mysqld_multi.server +@@ -54,3 +56,4 @@ FOREACH(script + GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE + ) + ENDFOREACH() ++ENDIF() diff --git a/databases/mysql80-server/files/patch-utilities_CMakeLists.txt b/databases/mysql80-server/files/patch-utilities_CMakeLists.txt new file mode 100644 index 000000000000..6af2d1748615 --- /dev/null +++ b/databases/mysql80-server/files/patch-utilities_CMakeLists.txt @@ -0,0 +1,59 @@ +--- utilities/CMakeLists.txt.orig 2019-09-20 08:30:51 UTC ++++ utilities/CMakeLists.txt +@@ -99,10 +99,30 @@ IF(APPLE AND HAVE_CRYPTO_DYLIB AND HAVE_OPENSSL_DYLIB) + ADD_DEPENDENCIES(comp_err copy_openssl_dlls) + ENDIF() + ++IF(WITHOUT_CLIENTLIBS) + MYSQL_ADD_EXECUTABLE(my_print_defaults + my_print_defaults.cc + COMPONENT Server + LINK_LIBRARIES mysys ++ SKIP_INSTALL ) ++MYSQL_ADD_EXECUTABLE(perror ++ perror.cc ++ COMPONENT Server ++ DEPENDENCIES GenError ++ LINK_LIBRARIES mysys ++ SKIP_INSTALL ) ++IF(BUILD_BUNDLED_LZ4) ++ MYSQL_ADD_EXECUTABLE(lz4_decompress ++ lz4_decompress.cc ++ COMPONENT Server ++ LINK_LIBRARIES ${LZ4_LIBRARY} mysys ++ SKIP_INSTALL ) ++ENDIF() ++ELSE(WITHOUT_CLIENTLIBS) ++MYSQL_ADD_EXECUTABLE(my_print_defaults ++ my_print_defaults.cc ++ COMPONENT Server ++ LINK_LIBRARIES mysys + ) + MYSQL_ADD_EXECUTABLE(perror + perror.cc +@@ -117,14 +137,25 @@ IF(BUILD_BUNDLED_LZ4) + LINK_LIBRARIES ${LZ4_LIBRARY} mysys + ) + ENDIF() ++ENDIF(WITHOUT_CLIENTLIBS) + ++IF(WITHOUT_CLIENTLIBS) + IF(BUILD_BUNDLED_ZLIB OR NOT OPENSSL_EXECUTABLE_HAS_ZLIB) + MYSQL_ADD_EXECUTABLE(zlib_decompress + zlib_decompress.cc + COMPONENT Server + LINK_LIBRARIES ${ZLIB_LIBRARY} mysys ++ SKIP_INSTALL ) ++ENDIF() ++ELSE(WITHOUT_CLIENTLIBS) ++IF(BUILD_BUNDLED_ZLIB OR NOT OPENSSL_EXECUTABLE_HAS_ZLIB) ++ MYSQL_ADD_EXECUTABLE(zlib_decompress ++ zlib_decompress.cc ++ COMPONENT Server ++ LINK_LIBRARIES ${ZLIB_LIBRARY} mysys + ) + ENDIF() ++ENDIF(WITHOUT_CLIENTLIBS) + + # All targets below belong to COMPONENT Server and depend on InnoDB. + IF(WITHOUT_SERVER) diff --git a/databases/mysql80-server/files/patch-vio_viossl.cc b/databases/mysql80-server/files/patch-vio_viossl.cc new file mode 100644 index 000000000000..6411c28dacbe --- /dev/null +++ b/databases/mysql80-server/files/patch-vio_viossl.cc @@ -0,0 +1,20 @@ +--- vio/viossl.cc.orig 2019-09-20 08:30:51 UTC ++++ vio/viossl.cc +@@ -490,7 +490,7 @@ static int ssl_do(struct st_VioSSLFd *ptr, Vio *vio, l + #if !defined(DBUG_OFF) + { + STACK_OF(SSL_COMP) *ssl_comp_methods = NULL; +- ssl_comp_methods = SSL_COMP_get_compression_methods(); ++ ssl_comp_methods = (STACK_OF(SSL_COMP) *)SSL_COMP_get_compression_methods(); + n = sk_SSL_COMP_num(ssl_comp_methods); + DBUG_PRINT("info", ("Available compression methods:\n")); + if (n == 0) +@@ -498,7 +498,7 @@ static int ssl_do(struct st_VioSSLFd *ptr, Vio *vio, l + else + for (j = 0; j < n; j++) { + SSL_COMP *c = sk_SSL_COMP_value(ssl_comp_methods, j); +-#if OPENSSL_VERSION_NUMBER < 0x10100000L ++#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) + DBUG_PRINT("info", (" %d: %s\n", c->id, c->name)); + #else /* OPENSSL_VERSION_NUMBER < 0x10100000L */ + DBUG_PRINT("info", diff --git a/databases/mysql80-server/files/patch-vio_viosslfactories.cc b/databases/mysql80-server/files/patch-vio_viosslfactories.cc index 6429a3bd3eef..8ed6e657f03a 100644 --- a/databases/mysql80-server/files/patch-vio_viosslfactories.cc +++ b/databases/mysql80-server/files/patch-vio_viosslfactories.cc @@ -1,6 +1,6 @@ ---- vio/viosslfactories.cc.orig 2018-04-08 06:44:49 UTC +--- vio/viosslfactories.cc.orig 2019-09-20 08:30:51 UTC +++ vio/viosslfactories.cc -@@ -37,6 +37,7 @@ +@@ -38,6 +38,7 @@ #ifdef HAVE_OPENSSL #include <openssl/dh.h> @@ -8,49 +8,19 @@ #define TLS_VERSION_OPTION_SIZE 256 #define SSL_CIPHER_LIST_SIZE 4096 -@@ -135,7 +136,7 @@ static DH *get_dh2048(void) { - BIGNUM *p = BN_bin2bn(dh2048_p, sizeof(dh2048_p), NULL); - BIGNUM *g = BN_bin2bn(dh2048_g, sizeof(dh2048_g), NULL); - if (!p || !g --#if OPENSSL_VERSION_NUMBER >= 0x10100000L -+#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER) - || !DH_set0_pqg(dh, p, NULL, g) - #endif /* OPENSSL_VERSION_NUMBER >= 0x10100000L */ - ) { -@@ -143,7 +144,7 @@ static DH *get_dh2048(void) { - DH_free(dh); - return NULL; - } --#if OPENSSL_VERSION_NUMBER < 0x10100000L -+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) - dh->p = p; - dh->g = g; - #endif /* OPENSSL_VERSION_NUMBER < 0x10100000L */ -@@ -426,7 +427,7 @@ void ssl_start() { +@@ -420,6 +421,7 @@ void ssl_start() { } } --#ifndef HAVE_WOLFSSL -+#if !defined(HAVE_WOLFSSL) && !defined(LIBRESSL_VERSION_NUMBER) ++#ifndef LIBRESSL_VERSION_NUMBER /** Set fips mode in openssl library, When we set fips mode ON/STRICT, it will perform following operations: -@@ -449,6 +450,10 @@ int set_fips_mode(const uint fips_mode, - int rc = -1; - unsigned int fips_mode_old = -1; - unsigned long err_library = 0; -+#if defined(LIBRESSL_VERSION_NUMBER) -+ err_string="LibreSSL deosn't have FIPS_mode functionas"; -+ goto EXIT; -+#else - if (fips_mode > 2) { - goto EXIT; - } -@@ -462,6 +467,7 @@ int set_fips_mode(const uint fips_mode, - ERR_error_string_n(err_library, err_string, OPENSSL_ERROR_LENGTH - 1); - err_string[OPENSSL_ERROR_LENGTH - 1] = '\0'; - } +@@ -473,6 +475,7 @@ EXIT: + @returns openssl current fips mode + */ + uint get_fips_mode() { return FIPS_mode(); } +#endif - EXIT: - return rc; - } + + long process_tls_version(const char *tls_version) { + const char *separator = ","; diff --git a/databases/mysql80-server/pkg-plist b/databases/mysql80-server/pkg-plist index 7d9384f48656..2f1035d2e48b 100644 --- a/databases/mysql80-server/pkg-plist +++ b/databases/mysql80-server/pkg-plist @@ -2,24 +2,25 @@ LICENSE.router README.router bin/ibd2sdi bin/innochecksum -bin/my_print_defaults bin/myisam_ftdump bin/myisamchk bin/myisamlog bin/myisampack +bin/mysqldumpslow +bin/mysql_client_test bin/mysql_secure_installation +bin/mysql_ssl_rsa_setup bin/mysql_tzinfo_to_sql bin/mysql_upgrade bin/mysqld_multi bin/mysqld_safe -bin/mysqldumpslow bin/mysqlrouter +bin/mysqlrouter_keyring bin/mysqlrouter_passwd bin/mysqlrouter_plugin_info bin/mysqltest +bin/mysqltest_safe_process bin/mysqlxtest -bin/perror -bin/zlib_decompress lib/mysql/libmysqlharness.a lib/mysql/libmysqlharness.so lib/mysql/libmysqlharness.so.1 @@ -49,6 +50,7 @@ lib/mysql/plugin/component_log_filter_dragnet.so lib/mysql/plugin/component_log_sink_json.so lib/mysql/plugin/component_log_sink_syseventlog.so lib/mysql/plugin/component_log_sink_test.so +lib/mysql/plugin/component_mysqlbackup.so lib/mysql/plugin/component_mysqlx_global_reset.so lib/mysql/plugin/component_pfs_example.so lib/mysql/plugin/component_pfs_example_component_population.so @@ -137,20 +139,24 @@ lib/mysql/plugin/test_udf_services.so lib/mysql/plugin/validate_password.so lib/mysql/plugin/version_token.so libexec/mysqld +man/man1/ibd2sdi.1.gz +man/man1/innochecksum.1.gz man/man1/my_print_defaults.1.gz man/man1/myisam_ftdump.1.gz man/man1/myisamchk.1.gz man/man1/myisamlog.1.gz man/man1/myisampack.1.gz -man/man1/mysql.server.1.gz man/man1/mysql_secure_installation.1.gz +man/man1/mysql_ssl_rsa_setup.1.gz man/man1/mysql_tzinfo_to_sql.1.gz man/man1/mysql_upgrade.1.gz +man/man1/mysql.server.1.gz man/man1/mysqld_multi.1.gz man/man1/mysqld_safe.1.gz man/man1/mysqldumpslow.1.gz -man/man1/mysqlman.1.gz -man/man1/perror.1.gz +man/man1/mysqlrouter_passwd.1.gz +man/man1/mysqlrouter_plugin_info.1.gz +man/man1/mysqlrouter.1.gz man/man8/mysqld.8.gz %%DATADIR%%/bulgarian/errmsg.sys %%DATADIR%%/charsets/Index.xml |