diff options
Diffstat (limited to 'databases/mysql80-server')
50 files changed, 566 insertions, 803 deletions
diff --git a/databases/mysql80-server/Makefile b/databases/mysql80-server/Makefile index 7d7bb05d58cb..a729a8155f68 100644 --- a/databases/mysql80-server/Makefile +++ b/databases/mysql80-server/Makefile @@ -1,8 +1,6 @@ -# Created by: Mahdi Mokhtari <mokhi64@gmail.com> - PORTNAME?= mysql -PORTVERSION= 8.0.25 -PORTREVISION?= 2 +PORTVERSION= 8.0.35 +PORTREVISION?= 1 CATEGORIES= databases MASTER_SITES= MYSQL/MySQL-8.0 PKGNAMESUFFIX?= 80-server @@ -10,16 +8,19 @@ DISTNAME= ${PORTNAME}-boost-${PORTVERSION}${DISTVERSIONSUFFIX} MAINTAINER= joneum@FreeBSD.org COMMENT?= Multithreaded SQL database (server) +WWW= https://www.mysql.com/ LICENSE= GPLv2 WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION}${DISTVERSIONSUFFIX} SLAVEDIRS= databases/mysql80-client -USES= bison:build cmake:noninja compiler:c++17-lang cpe \ - groff:run libedit localbase ncurses perl5 pkgconfig shebangfix ssl +USES= bison:build cmake:noninja cpe groff:run libedit localbase \ + ncurses perl5 pkgconfig shebangfix ssl + +CPE_VENDOR= oracle -USE_CXXSTD= c++14 +USE_CXXSTD= c++17 USE_PERL5= run MY_DBDIR= /var/db/mysql @@ -30,13 +31,14 @@ LIB_DEPENDS+= libcurl.so:ftp/curl \ libevent.so:devel/libevent \ libicutu.so:devel/icu \ liblz4.so:archivers/liblz4 \ - libzstd.so:archivers/zstd \ - libprotobuf.so:devel/protobuf \ + libfido2.so:security/libfido2 \ + libhidapi.so:comms/hidapi \ ${LIB_DEPENDS_${ARCH}} LIB_DEPENDS_aarch64= libunwind.so:devel/libunwind LIB_DEPENDS_amd64= libunwind.so:devel/libunwind LIB_DEPENDS_armv7= libunwind.so:devel/libunwind LIB_DEPENDS_i386= libunwind.so:devel/libunwind +LIB_DEPENDS_powerpc= libunwind.so:devel/libunwind LIB_DEPENDS_powerpc64= libunwind.so:devel/libunwind LIB_DEPENDS_powerpc64le= libunwind.so:devel/libunwind @@ -46,11 +48,13 @@ BUILD_DEPENDS_aarch64= libunwind>0:devel/libunwind BUILD_DEPENDS_amd64= libunwind>0:devel/libunwind BUILD_DEPENDS_armv7= libunwind>0:devel/libunwind BUILD_DEPENDS_i386= libunwind>0:devel/libunwind +BUILD_DEPENDS_powerpc= libunwind>0:devel/libunwind BUILD_DEPENDS_powerpc64= libunwind>0:devel/libunwind BUILD_DEPENDS_powerpc64le= libunwind>0:devel/libunwind CMAKE_BUILD_TYPE= Release -CFLAGS+= -fPIC -DNDEBUG -malign-double +CFLAGS+= -fPIC +CFLAGS_aarch64?= -march=armv8-a+crc+crypto CMAKE_ARGS+= -DINSTALL_LAYOUT=FREEBSD \ -DINSTALL_LDCONFIGDIR="${LOCALBASE}/libdata/ldconfig" \ @@ -60,7 +64,8 @@ CMAKE_ARGS+= -DINSTALL_LAYOUT=FREEBSD \ -DINSTALL_INCLUDEDIR="include/mysql" \ -DINSTALL_INFODIR="${INFO_PATH}" \ -DINSTALL_LIBDIR="lib/mysql" \ - -DINSTALL_MANDIR="man" \ + -DINSTALL_PRIV_LIBDIR="lib/mysql/private" \ + -DINSTALL_MANDIR="share/man" \ -DINSTALL_MYSQLDATADIR="${MY_DBDIR}" \ -DINSTALL_MYSQLKEYRINGDIR="etc/mysql/keyring" \ -DINSTALL_MYSQLSHAREDIR="share/mysql" \ @@ -79,10 +84,10 @@ CMAKE_ARGS+= -DINSTALL_LAYOUT=FREEBSD \ -DWITH_LZ4=system \ -DWITH_ICU=system \ -DWITH_CURL=system \ - -DWITH_ZLIB=system \ - -DWITH_ZSTD=system \ - -DWITH_PROTOBUF=system \ - -DWITH_SSL=${OPENSSLBASE} \ + -DWITH_ZSTD=bundled \ + -DWITH_PROTOBUF=bundled \ + -DWITH_SSL=system \ + -DWITH_AUTHENTICATION_FIDO=1 \ -DBUILD_BUNDLED_ZLIB=0 \ -DBUILD_BUNDLED_LZ4=0 @@ -113,11 +118,10 @@ PLIST_SUB= MY_DBDIR=${MY_DBDIR} \ .if !defined(CLIENT_ONLY) USES+= mysql:80 -CONFLICTS_INSTALL= mysql8[1-9]-server-* \ - mysql[0-79][0-9]-server-* \ - mysqlwsrep* \ - mariadb[0-9][0-9]-server-* \ - percona[0-9][0-9]-server-* +CONFLICTS_INSTALL= mysql*-server \ + mysqlwsrep*-server \ + mariadb*-server \ + percona*-server USE_RC_SUBR= mysql-server @@ -136,6 +140,8 @@ MMAN8= mysqld.8 CMAKE_ARGS+= -DWITH_EMBEDDED_SERVER="ON" CMAKE_ARGS+= -DWITHOUT_CLIENTLIBS="ON" +# Disable unit tests, it fails on !amd64 and <13.0 due to c++17 rules +CMAKE_ARGS+= -DWITH_UNIT_TESTS="OFF" OPTIONS_GROUP= STORAGE OPTIONS_GROUP_STORAGE= ARCHIVE BLACKHOLE EXAMPLE FEDERATED INNOBASE PARTITION PERFSCHEMA @@ -175,28 +181,27 @@ FEDERATED_SUB_LIST_OFF+= FEDER="" # which is broken on i386 due to different size of types and caused a # 'static_assert(alignof(T) <= alignof(std::max_align_t))' error .if ${ARCH} == i386 -CMAKE_ARGS+= -DDISABLE_PSI_MEMORY=1 +#CMAKE_ARGS+= -DDISABLE_PSI_MEMORY=1 +SSP_UNSAFE= yes .endif -.if ${OPSYS} == FreeBSD && ${OSVERSION} >= 1200057 -SUB_LIST+= LEGACY_LIMITS="@comment " MODERN_LIMITS="" +.if ${ARCH} == powerpc +LDFLAGS+= -latomic +USES+= compiler:gcc-c++11-lib .else -SUB_LIST+= LEGACY_LIMITS="" MODERN_LIMITS="@comment " +USES+= compiler:c++17-lang .endif .include <bsd.port.pre.mk> -.if ${ARCH} == "i386" && ${OSVERSION} < 1200000 -# clang 7.x and 8.x do not build properly on 11i386 -CPP= clang-cpp${LLVM_DEFAULT} -CC= clang${LLVM_DEFAULT} -CXX= clang++${LLVM_DEFAULT} -BUILD_DEPENDS+= clang${LLVM_DEFAULT}:devel/llvm${LLVM_DEFAULT} -.endif - post-extract: @${RM} -rv ${WRKSRC}/sql/sql_hints.yy.cc ${WRKSRC}/sql/sql_hints.yy.h +# XXX MBi alignment issue +.if ${ARCH} == i386 +EXTRA_PATCHES+= ${FILESDIR}/extra-patch-boost-boost_1_77_0-boost-move-detail-type_traits.hpp +.endif + .if !defined(CLIENT_ONLY) post-install: ${MKDIR} ${STAGEDIR}${ETCDIR} diff --git a/databases/mysql80-server/distinfo b/databases/mysql80-server/distinfo index d8b53adf2580..bc0a2dd68ade 100644 --- a/databases/mysql80-server/distinfo +++ b/databases/mysql80-server/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1621139131 -SHA256 (mysql-boost-8.0.25.tar.gz) = 93c5f57cbd69573a8d9798725edec52e92830f70c398a1afaaea2227db331728 -SIZE (mysql-boost-8.0.25.tar.gz) = 290265324 +TIMESTAMP = 1700321902 +SHA256 (mysql-boost-8.0.35.tar.gz) = 41253c3a99cefcf6d806040c6687692eb0c37b4c7aae5882417dfb9c5d3ce4ce +SIZE (mysql-boost-8.0.35.tar.gz) = 438111810 diff --git a/databases/mysql80-server/files/extra-patch-boost-boost_1_77_0-boost-move-detail-type_traits.hpp b/databases/mysql80-server/files/extra-patch-boost-boost_1_77_0-boost-move-detail-type_traits.hpp new file mode 100644 index 000000000000..6365179f2bc4 --- /dev/null +++ b/databases/mysql80-server/files/extra-patch-boost-boost_1_77_0-boost-move-detail-type_traits.hpp @@ -0,0 +1,20 @@ +--- ./boost/boost_1_77_0/boost/move/detail/type_traits.hpp.ORIG 2021-08-05 11:42:11.000000000 +0200 ++++ ./boost/boost_1_77_0/boost/move/detail/type_traits.hpp 2023-11-04 13:09:44.198320000 +0100 +@@ -1104,7 +1104,7 @@ + typedef int (alignment_dummy::*member_ptr); + typedef int (alignment_dummy::*member_function_ptr)(); + struct alignment_struct +-{ long double dummy[4]; }; ++{ double XXXdummy[4]; }; + + ///////////////////////////// + // max_align_t +@@ -1122,7 +1122,7 @@ + float float_; + double double_; + void * void_ptr_; +- long double long_double_[4]; ++ double XXXlong_double_[4]; + alignment_dummy *unknown_class_ptr_; + function_ptr function_ptr_; + member_function_ptr member_function_ptr_; diff --git a/databases/mysql80-server/files/extra-patch-config.h.cmake b/databases/mysql80-server/files/extra-patch-config.h.cmake deleted file mode 100644 index 3ac1add1b9ce..000000000000 --- a/databases/mysql80-server/files/extra-patch-config.h.cmake +++ /dev/null @@ -1,12 +0,0 @@ ---- config.h.cmake.orig 2014-12-05 16:24:02 UTC -+++ config.h.cmake -@@ -151,7 +151,8 @@ - #cmakedefine HAVE_FESETROUND 1 - #cmakedefine HAVE_FINITE 1 - #cmakedefine HAVE_FP_EXCEPT 1 --#cmakedefine HAVE_FPSETMASK 1 -+#cmakedefine HAVE_FPSETMASK 0 -+#cmakedefine HAVE_FEDISABLEEXCEPT 1 - #cmakedefine HAVE_FSEEKO 1 - #cmakedefine HAVE_FSYNC 1 - #cmakedefine HAVE_FTIME 1 diff --git a/databases/mysql80-server/files/my.cnf.sample.in b/databases/mysql80-server/files/my.cnf.sample.in index 7fa72451dec3..3d1264c1bd61 100644 --- a/databases/mysql80-server/files/my.cnf.sample.in +++ b/databases/mysql80-server/files/my.cnf.sample.in @@ -14,19 +14,17 @@ bind-address = 127.0.0.1 basedir = %%PREFIX%% datadir = %%MY_DBDIR%% tmpdir = %%MY_TMPDIR%% -slave-load-tmpdir = %%MY_TMPDIR%% +replica-load-tmpdir = %%MY_TMPDIR%% secure-file-priv = %%MY_SECDIR%% log-bin = mysql-bin log-output = TABLE -master-info-repository = TABLE -relay-log-info-repository = TABLE relay-log-recovery = 1 slow-query-log = 1 server-id = 1 sync_binlog = 1 sync_relay_log = 1 binlog_cache_size = 16M -expire_logs_days = 30 +binlog_expire_logs_seconds = 2592000 default_password_lifetime = 0 enforce-gtid-consistency = 1 gtid-mode = ON @@ -47,12 +45,11 @@ innodb_log_group_home_dir = %%MY_DBDIR%% innodb_data_file_path = ibdata1:128M:autoextend innodb_temp_data_file_path = ibtmp1:128M:autoextend innodb_flush_method = O_DIRECT -innodb_log_file_size = 256M +innodb_redo_log_capacity = 512M innodb_log_buffer_size = 16M innodb_write_io_threads = 8 innodb_read_io_threads = 8 innodb_autoinc_lock_mode = 2 -skip-symbolic-links [mysqldump] max_allowed_packet = 256M diff --git a/databases/mysql80-server/files/mysql-server.in b/databases/mysql80-server/files/mysql-server.in index b0297539a441..c79874df9f2c 100644 --- a/databases/mysql80-server/files/mysql-server.in +++ b/databases/mysql80-server/files/mysql-server.in @@ -8,9 +8,6 @@ # Add the following line to /etc/rc.conf to enable mysql: # mysql_enable (bool): Set to "NO" by default. # Set it to "YES" to enable MySQL. -%%LEGACY_LIMITS%%# mysql_limits (bool): Set to "NO" by default. -%%LEGACY_LIMITS%%# Set it to yes to run `limits -e -U mysql` -%%LEGACY_LIMITS%%# just before mysql starts. # mysql_dbdir (str): Default to "%%MY_DBDIR%%" # Base database directory. # mysql_confdir (str): Default to "%%ETCDIR%%" @@ -19,7 +16,7 @@ # Set it in the rc.conf or default behaviour of # `mysqld_safe` itself, will be picking # ${mysql_confdir}/my.cnf if it exists. -# mysql_pidfile (str): Custum PID file path and name. +# mysql_pidfile (str): Custom PID file path and name. # Default to "${mysql_dbdir}/${hostname}.pid". # mysql_args (str): Custom additional arguments to be passed # to mysqld_safe (default empty). @@ -33,7 +30,6 @@ rcvar=mysql_enable load_rc_config $name : ${mysql_enable="NO"} -%%LEGACY_LIMITS%%: ${mysql_limits="NO"} : ${mysql_dbdir="%%MY_DBDIR%%"} : ${mysql_confdir="%%ETCDIR%%"} if [ -f "${mysql_confdir}/my.cnf" ]; then @@ -46,7 +42,6 @@ mysql_extra="--defaults-extra-file=${mysql_optfile}" fi mysql_user="mysql" -%%LEGACY_LIMITS%%mysql_limits_args="-e -U ${mysql_user}" : ${hostname:=`/bin/hostname`} pidfile=${mysql_pidfile:-"${mysql_dbdir}/${hostname}.pid"} command="/usr/sbin/daemon" @@ -67,12 +62,7 @@ mysql_prestart() if [ ! -d "${mysql_dbdir}/mysql/." ]; then mysql_create_auth_tables || return 1 fi -%%LEGACY_LIMITS%% if checkyesno mysql_limits; then -%%LEGACY_LIMITS%% eval `/usr/bin/limits ${mysql_limits_args}` 2>/dev/null -%%LEGACY_LIMITS%% else -%%LEGACY_LIMITS%% return 0 -%%LEGACY_LIMITS%% fi -%%MODERN_LIMITS%% return 0 + return 0 } mysql_poststart() diff --git a/databases/mysql80-server/files/patch-CMakeLists.txt b/databases/mysql80-server/files/patch-CMakeLists.txt index 1838577bde1c..625e0bac005c 100644 --- a/databases/mysql80-server/files/patch-CMakeLists.txt +++ b/databases/mysql80-server/files/patch-CMakeLists.txt @@ -1,22 +1,43 @@ ---- CMakeLists.txt.orig 2020-09-23 12:37:48 UTC +--- CMakeLists.txt.orig 2022-07-06 21:36:34 UTC +++ CMakeLists.txt -@@ -1417,10 +1417,10 @@ IF(WITH_AUTHENTICATION_LDAP) +@@ -1819,7 +1819,7 @@ IF(LINUX AND KNOWN_CUSTOM_LIBRARIES) + ENDIF() + + IF(WITH_AUTHENTICATION_LDAP) +- IF(LINUX AND KNOWN_CUSTOM_LIBRARIES) ++ IF(LINUX OR FREEBSD AND KNOWN_CUSTOM_LIBRARIES) + # LDAP / SASL / KERBEROS / SSL must all be "system" or "custom", not a mix. + IF(WITH_LDAP STREQUAL "system" OR + WITH_SASL STREQUAL "system" OR +@@ -1868,6 +1868,7 @@ IF(WITH_AUTHENTICATION_KERBEROS) ENDIF() ENDIF() --# Add system/bundled editline. --MYSQL_CHECK_EDITLINE() - # Add libevent --MYSQL_CHECK_LIBEVENT() ++IF(NOT WITHOUT_TOOLS) + # Add system/bundled editline. + MYSQL_CHECK_EDITLINE() + SET(EDITLINE_WARN_GIVEN) +@@ -1878,7 +1879,9 @@ IF(EDITLINE_WARN_GIVEN) + "You can use -DWITH_EDITLINE=bundled instead." + ) + ENDIF() ++ENDIF(NOT WITHOUT_TOOLS) + +IF(NOT WITHOUT_SERVER) -+ MYSQL_CHECK_LIBEVENT() -+ENDIF() + # Add libevent + MYSQL_CHECK_LIBEVENT() + SET(LIBEVENT_WARN_GIVEN) +@@ -1889,6 +1892,7 @@ IF(LIBEVENT_WARN_GIVEN) + "You can use -DWITH_LIBEVENT=bundled instead." + ) + ENDIF() ++ENDIF(NOT WITHOUT_SERVER) + # Add lz4 library MYSQL_CHECK_LZ4() - # Add icu library -@@ -1520,7 +1520,9 @@ IF(WITH_UNIT_TESTS) - INCLUDE(googletest) - ENDIF() +@@ -2142,7 +2146,9 @@ ADD_CUSTOM_TARGET(clang_tidy_prerequisites) + ADD_DEPENDENCIES(clang_tidy_prerequisites protobuf_generated_all) + ADD_DEPENDENCIES(clang_tidy_prerequisites GenError) -ADD_SUBDIRECTORY(include) +IF(NOT WITHOUT_CLIENTLIBS) @@ -25,14 +46,12 @@ ADD_SUBDIRECTORY(strings) ADD_SUBDIRECTORY(vio) ADD_SUBDIRECTORY(mysys) -@@ -1562,12 +1564,17 @@ IF(WITH_UNIT_TESTS) +@@ -2187,12 +2193,15 @@ 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) + @@ -45,7 +64,7 @@ ADD_SUBDIRECTORY(testclients) ADD_SUBDIRECTORY(sql) ENDIF() -@@ -1590,11 +1597,11 @@ ENDIF() +@@ -2247,11 +2256,11 @@ ENDIF() # scripts/mysql_config depends on client and server targets loaded above. # It is referenced by some of the directories below, so we insert it here. ADD_SUBDIRECTORY(scripts) @@ -58,7 +77,7 @@ IF(WITH_INTERNAL) ADD_SUBDIRECTORY(internal) ENDIF() -@@ -1703,6 +1710,7 @@ IF(PACK_SEPARATE_COMPONENTS) +@@ -2361,6 +2370,7 @@ IF(PACK_SEPARATE_COMPONENTS) SET(CPACK_COMPONENTS_GROUPING IGNORE) ENDIF() @@ -66,7 +85,7 @@ IF(UNIX) INSTALL(FILES Docs/mysql.info -@@ -1737,6 +1745,7 @@ IF(NOT INSTALL_LAYOUT MATCHES "RPM") +@@ -2395,6 +2405,7 @@ IF(NOT INSTALL_LAYOUT MATCHES "RPM") PATTERN "sp-imp-spec.txt" EXCLUDE PATTERN "README.build" EXCLUDE ) diff --git a/databases/mysql80-server/files/patch-boost_boost__1__77__0_boost_mpl_aux___integral__wrapper.hpp b/databases/mysql80-server/files/patch-boost_boost__1__77__0_boost_mpl_aux___integral__wrapper.hpp new file mode 100644 index 000000000000..66c430a4346f --- /dev/null +++ b/databases/mysql80-server/files/patch-boost_boost__1__77__0_boost_mpl_aux___integral__wrapper.hpp @@ -0,0 +1,11 @@ +--- boost/boost_1_77_0/boost/mpl/aux_/integral_wrapper.hpp.orig 2021-08-05 09:42:13 UTC ++++ boost/boost_1_77_0/boost/mpl/aux_/integral_wrapper.hpp +@@ -56,7 +56,7 @@ struct AUX_WRAPPER_NAME + // have to #ifdef here: some compilers don't like the 'N + 1' form (MSVC), + // while some other don't like 'value + 1' (Borland), and some don't like + // either +-#if BOOST_WORKAROUND(__EDG_VERSION__, <= 243) ++#if 1 //BOOST_WORKAROUND(__EDG_VERSION__, <= 243) + private: + BOOST_STATIC_CONSTANT(AUX_WRAPPER_VALUE_TYPE, next_value = BOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (N + 1))); + BOOST_STATIC_CONSTANT(AUX_WRAPPER_VALUE_TYPE, prior_value = BOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (N - 1))); diff --git a/databases/mysql80-server/files/patch-client_CMakeLists.txt b/databases/mysql80-server/files/patch-client_CMakeLists.txt index bbfb4249c799..6a433a889e80 100644 --- a/databases/mysql80-server/files/patch-client_CMakeLists.txt +++ b/databases/mysql80-server/files/patch-client_CMakeLists.txt @@ -1,4 +1,4 @@ ---- client/CMakeLists.txt.orig 2021-03-22 08:44:50 UTC +--- client/CMakeLists.txt.orig 2021-09-28 11:46:34 UTC +++ client/CMakeLists.txt @@ -28,10 +28,13 @@ DISABLE_MISSING_PROFILE_WARNING() ## Subdirectory with common client code. @@ -11,18 +11,18 @@ +ENDIF() +IF(NOT WITHOUT_CLIENTLIBS) - MYSQL_ADD_EXECUTABLE(mysql - ${CMAKE_SOURCE_DIR}/sql-common/net_ns.cc - completion_hash.cc -@@ -41,6 +44,7 @@ MYSQL_ADD_EXECUTABLE(mysql - client_query_attributes.cc + INCLUDE_DIRECTORIES( + ${CMAKE_CURRENT_SOURCE_DIR}/include + ) +@@ -47,6 +50,7 @@ MYSQL_ADD_EXECUTABLE(mysql + ${CMAKE_CURRENT_SOURCE_DIR}/common/user_registration.cc LINK_LIBRARIES mysqlclient client_base ${EDITLINE_LIBRARY} ) +ENDIF() IF(NOT WITHOUT_SERVER) MYSQL_ADD_EXECUTABLE(mysql_upgrade -@@ -57,6 +61,7 @@ IF(SOLARIS_SPARC AND MY_COMPILER_IS_SUNPRO AND +@@ -55,6 +59,7 @@ IF(NOT_WITHOUT_SERVER) ) ENDIF() @@ -30,7 +30,7 @@ MYSQL_ADD_EXECUTABLE(mysqltest mysqltest.cc mysqltest/error_names.cc -@@ -73,6 +78,9 @@ MYSQL_ADD_EXECUTABLE(mysqltest +@@ -71,6 +76,9 @@ MYSQL_ADD_EXECUTABLE(mysqltest ENABLE_EXPORTS LINK_LIBRARIES mysqlclient ) @@ -40,7 +40,7 @@ MYSQL_ADD_EXECUTABLE(mysqlcheck check/mysqlcheck.cc check/mysqlcheck_core.cc -@@ -248,7 +256,9 @@ ENDIF() +@@ -250,7 +258,9 @@ ENDIF() TARGET_COMPILE_DEFINITIONS(mysqlbinlog PRIVATE DISABLE_PSI_MUTEX) TARGET_INCLUDE_DIRECTORIES(mysqlbinlog PRIVATE ${CMAKE_SOURCE_DIR}/sql) @@ -49,8 +49,8 @@ +IF(WITHOUT_SERVER) MYSQL_ADD_EXECUTABLE(mysqladmin mysqladmin.cc - LINK_LIBRARIES mysqlclient -@@ -261,6 +271,9 @@ MYSQL_ADD_EXECUTABLE(mysql_config_editor + multi_factor_passwordopt-vars.cc +@@ -265,6 +275,9 @@ MYSQL_ADD_EXECUTABLE(mysql_config_editor mysql_config_editor.cc LINK_LIBRARIES mysqlclient ) @@ -60,7 +60,7 @@ MYSQL_ADD_EXECUTABLE(mysql_secure_installation mysql_secure_installation.cc LINK_LIBRARIES mysqlclient -@@ -271,6 +284,7 @@ MYSQL_ADD_EXECUTABLE(mysql_ssl_rsa_setup +@@ -275,6 +288,7 @@ MYSQL_ADD_EXECUTABLE(mysql_ssl_rsa_setup path.cc LINK_LIBRARIES mysys ) diff --git a/databases/mysql80-server/files/patch-cmake_os_FreeBSD.cmake b/databases/mysql80-server/files/patch-cmake_os_FreeBSD.cmake index 2f6f488d4abd..90629de01287 100644 --- a/databases/mysql80-server/files/patch-cmake_os_FreeBSD.cmake +++ b/databases/mysql80-server/files/patch-cmake_os_FreeBSD.cmake @@ -1,8 +1,8 @@ ---- cmake/os/FreeBSD.cmake.orig 2019-09-20 08:30:51 UTC +--- cmake/os/FreeBSD.cmake.orig 2021-12-17 16:07:27 UTC +++ cmake/os/FreeBSD.cmake -@@ -45,8 +45,20 @@ IF(NOT FORCE_UNSUPPORTED_COMPILER) - MESSAGE(FATAL_ERROR - "GCC 5.3 or newer is required (-dumpversion says ${GCC_VERSION})") +@@ -48,8 +48,20 @@ IF(NOT FORCE_UNSUPPORTED_COMPILER) + IF(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 7.1) + MESSAGE(FATAL_ERROR "GCC 7.1 or newer is required") ENDIF() - ELSE() - MESSAGE(FATAL_ERROR "Unsupported compiler!") diff --git a/databases/mysql80-server/files/patch-cmake_plugin.cmake b/databases/mysql80-server/files/patch-cmake_plugin.cmake index ecd2598f320e..874c450a4ef2 100644 --- a/databases/mysql80-server/files/patch-cmake_plugin.cmake +++ b/databases/mysql80-server/files/patch-cmake_plugin.cmake @@ -1,6 +1,6 @@ ---- cmake/plugin.cmake.orig 2019-09-20 08:30:51 UTC +--- cmake/plugin.cmake.orig 2021-12-17 16:07:27 UTC +++ cmake/plugin.cmake -@@ -230,15 +230,15 @@ MACRO(MYSQL_ADD_PLUGIN plugin_arg) +@@ -247,15 +247,15 @@ MACRO(MYSQL_ADD_PLUGIN plugin_arg) # For testing purposes, we need # <...>/lib/plugin/debug/authentication_ldap_sasl_client.so diff --git a/databases/mysql80-server/files/patch-cmake_ssl.cmake b/databases/mysql80-server/files/patch-cmake_ssl.cmake index 9173b842a952..e7688d6e50ad 100644 --- a/databases/mysql80-server/files/patch-cmake_ssl.cmake +++ b/databases/mysql80-server/files/patch-cmake_ssl.cmake @@ -1,29 +1,23 @@ ---- cmake/ssl.cmake.orig 2019-09-20 08:30:51 UTC +--- cmake/ssl.cmake.orig 2022-07-06 21:36:34 UTC +++ cmake/ssl.cmake -@@ -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" -@@ -222,13 +222,14 @@ MACRO (MYSQL_CHECK_SSL) - OPENSSL_FIX_VERSION "${OPENSSL_VERSION_NUMBER}" - ) +@@ -142,7 +142,7 @@ MACRO(FIND_OPENSSL_VERSION) + # 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" +@@ -380,8 +380,9 @@ MACRO (MYSQL_CHECK_SSL) + "Not a supported openssl version in WITH_SSL=${WITH_SSL}.") ENDIF() -- IF("${OPENSSL_MAJOR_VERSION}.${OPENSSL_MINOR_VERSION}.${OPENSSL_FIX_VERSION}" VERSION_GREATER "1.1.0") + +- IF("${OPENSSL_MAJOR_MINOR_FIX_VERSION}" VERSION_GREATER "1.1.0") - ADD_DEFINITIONS(-DHAVE_TLSv13) + 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 VERSION_GREATER_EQUAL "1" - ) - SET(OPENSSL_FOUND TRUE) - FIND_PROGRAM(OPENSSL_EXECUTABLE openssl diff --git a/databases/mysql80-server/files/patch-include_CMakeLists.txt b/databases/mysql80-server/files/patch-include_CMakeLists.txt deleted file mode 100644 index 11fed601d4f4..000000000000 --- a/databases/mysql80-server/files/patch-include_CMakeLists.txt +++ /dev/null @@ -1,176 +0,0 @@ ---- include/CMakeLists.txt.orig 2019-12-09 19:53:17 UTC -+++ include/CMakeLists.txt -@@ -37,10 +37,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 -+ guard.h -+ heap.h -+ integer_digits.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 -+ tables_contained_in.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/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 - ) - diff --git a/databases/mysql80-server/files/patch-include_dh__ecdh__config.h b/databases/mysql80-server/files/patch-include_dh__ecdh__config.h new file mode 100644 index 000000000000..a33067bbd562 --- /dev/null +++ b/databases/mysql80-server/files/patch-include_dh__ecdh__config.h @@ -0,0 +1,63 @@ +--- include/dh_ecdh_config.h.orig 2023-12-03 10:42:56 UTC ++++ include/dh_ecdh_config.h +@@ -38,7 +38,7 @@ + #endif /* OPENSSL_VERSION_NUMBER < 0x10002000L */ + + namespace { +-#if OPENSSL_VERSION_NUMBER < 0x10100000L ++#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) + /* Following primes are from https://www.rfc-editor.org/rfc/rfc7919#appendix-A + */ + +@@ -257,6 +257,7 @@ bool set_dh(SSL_CTX *ctx) { + + DH *dh = nullptr; + #if OPENSSL_VERSION_NUMBER >= 0x10100000L ++#if !defined(LIBRESSL_VERSION_NUMBER) + switch (security_level) { + case 1: + [[fallthrough]]; +@@ -275,6 +276,43 @@ bool set_dh(SSL_CTX *ctx) { + default: + break; + }; ++#else ++ dh = DH_new(); ++ if (!dh) return true; ++ ++ BIGNUM *dhp = nullptr; ++ BIGNUM *dhg = nullptr; ++ switch (security_level) { ++ case 1: ++ [[fallthrough]]; ++ case 2: ++ dhp = ++ BN_bin2bn(rfc7919_ffdhe2048_p, sizeof(rfc7919_ffdhe2048_p), nullptr); ++ break; ++ case 3: ++ dhp = ++ BN_bin2bn(rfc7919_ffdhe3072_p, sizeof(rfc7919_ffdhe3072_p), nullptr); ++ break; ++ case 4: ++ dhp = ++ BN_bin2bn(rfc7919_ffdhe8192_p, sizeof(rfc7919_ffdhe8192_p), nullptr); ++ break; ++ case 5: ++ /* There is no RFC7919 approved prime for sec level 5 */ ++ [[fallthrough]]; ++ default: ++ DH_free(dh); ++ return true; ++ }; ++ ++ dhg = BN_bin2bn(rfc7919_g, sizeof(rfc7919_g), nullptr); ++ if (!dhp || !dhg || !DH_set0_pqg(dh, dhp, nullptr, dhg)) { ++ DH_free(dh); ++ BN_free(dhg); ++ BN_free(dhp); ++ return true; ++ } ++#endif /* !defined(LIBRESSL_VERSION_NUMBER) */ + #else /* OPENSSL_VERSION_NUMBER >= 0x10100000L */ + dh = DH_new(); + if (!dh) return true; diff --git a/databases/mysql80-server/files/patch-include_my__stacktrace.h b/databases/mysql80-server/files/patch-include_my__stacktrace.h index 372aec242a8d..1654014bd77b 100644 --- a/databases/mysql80-server/files/patch-include_my__stacktrace.h +++ b/databases/mysql80-server/files/patch-include_my__stacktrace.h @@ -1,5 +1,5 @@ ---- include/my_stacktrace.h.orig 2020-01-23 19:43:07.769584000 +0100 -+++ include/my_stacktrace.h 2020-01-23 19:43:48.684042000 +0100 +--- include/my_stacktrace.h.orig 2021-12-17 16:07:27 UTC ++++ include/my_stacktrace.h @@ -43,7 +43,7 @@ HAVE_BACKTRACE - Linux, FreeBSD, OSX, Solaris _WIN32 - Windows @@ -8,4 +8,4 @@ +#if (defined(HAVE_BACKTRACE) || defined(_WIN32)) && (defined(__aarch64__) || defined(__amd64__) || defined(__i386__)) #define HAVE_STACKTRACE 1 void my_init_stacktrace(); - void my_print_stacktrace(uchar *stack_bottom, ulong thread_stack); + void my_print_stacktrace(const uchar *stack_bottom, ulong thread_stack); diff --git a/databases/mysql80-server/files/patch-include_myisam.h b/databases/mysql80-server/files/patch-include_myisam.h index b8f3ec7ef519..311c935fc115 100644 --- a/databases/mysql80-server/files/patch-include_myisam.h +++ b/databases/mysql80-server/files/patch-include_myisam.h @@ -1,6 +1,6 @@ ---- include/myisam.h.orig 2019-09-20 08:30:51 UTC +--- include/myisam.h.orig 2021-12-17 16:07:27 UTC +++ include/myisam.h -@@ -59,7 +59,7 @@ +@@ -60,7 +60,7 @@ The following defines can be increased if necessary. But beware the dependency of MI_MAX_POSSIBLE_KEY_BUFF and MI_MAX_KEY_LENGTH. */ diff --git a/databases/mysql80-server/files/patch-include_violite.h b/databases/mysql80-server/files/patch-include_violite.h deleted file mode 100644 index 78d606a68c6c..000000000000 --- a/databases/mysql80-server/files/patch-include_violite.h +++ /dev/null @@ -1,14 +0,0 @@ ---- 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 d9cd7cd37249..44e1979f8075 100644 --- a/databases/mysql80-server/files/patch-libmysql_CMakeLists.txt +++ b/databases/mysql80-server/files/patch-libmysql_CMakeLists.txt @@ -1,6 +1,6 @@ ---- libmysql/CMakeLists.txt.orig 2019-09-20 08:30:51 UTC +--- libmysql/CMakeLists.txt.orig 2021-12-17 16:07:27 UTC +++ libmysql/CMakeLists.txt -@@ -192,6 +192,11 @@ IF (WIN32 AND OPENSSL_APPLINK_C) +@@ -198,6 +198,11 @@ IF (WIN32 AND OPENSSL_APPLINK_C) ) ENDIF() @@ -12,30 +12,33 @@ # # Include protocol tracing infrastructure and the test # trace plugin if enabled by build options. -@@ -242,11 +247,18 @@ IF(WIN32) +@@ -271,8 +276,15 @@ IF(WIN32) LIST(APPEND LIBS_TO_MERGE auth_win_client) ENDIF() --# LDAP authentication SASL client plugin +-# LDAP authentication SASL client plug-in -ADD_SUBDIRECTORY(authentication_ldap) +IF(WITHOUT_CLIENTLIBS) + # Merge several convenience libraries into one big mysqlclient -+ MERGE_CONVENIENCE_LIBRARIES(mysqlclient ${LIBS_TO_MERGE} COMPONENT Development SKIP_INSTALL) ++ 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) -+ # Merge several convenience libraries into one big mysqlclient -+ MERGE_CONVENIENCE_LIBRARIES(mysqlclient ${LIBS_TO_MERGE} COMPONENT Development) + # FIDO authentication client plugin + ADD_SUBDIRECTORY(authentication_fido) +@@ -288,6 +300,7 @@ MERGE_CONVENIENCE_LIBRARIES(mysqlclient ${LIBS_TO_MERG + COMPONENT Development + LINK_LIBRARIES ${LIBS_TO_LINK} + ) +ENDIF(WITHOUT_CLIENTLIBS) -+ - TARGET_LINK_LIBRARIES(mysqlclient PRIVATE ${LIBS_TO_LINK}) # Visual Studio users need debug static library for debug projects -@@ -281,12 +291,22 @@ ENDIF() + IF(MSVC) +@@ -334,17 +347,27 @@ ENDIF() # Merge several convenience libraries into one big mysqlclient # and link them together into shared library. @@ -45,7 +48,7 @@ ${CLIENT_API_FUNCTIONS} ${CLIENT_API_FUNCTIONS_UNDOCUMENTED} ${CLIENT_API_NONBLOCKING_FUNCTIONS} -+ COMPONENT SharedLibraries + COMPONENT SharedLibraries + SKIP_INSTALL ) +ELSE(WITHOUT_CLIENTLIBS) +MERGE_LIBRARIES_SHARED(libmysql ${LIBS_TO_MERGE} @@ -53,17 +56,13 @@ + ${CLIENT_API_FUNCTIONS} + ${CLIENT_API_FUNCTIONS_UNDOCUMENTED} + ${CLIENT_API_NONBLOCKING_FUNCTIONS} - COMPONENT SharedLibraries) ++ COMPONENT SharedLibraries + LINK_LIBRARIES ${LIBS_TO_LINK} + ${UNIX_OUTPUT_NAME} + ${UNIX_SOVERSION} + ${UNIX_VERSION} + ) +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 + # Downgrade warning for strncat in my_crypt_genhash. + IF((WITH_LTO OR CMAKE_COMPILER_FLAG_WITH_LTO) AND MY_COMPILER_IS_GNU) diff --git a/databases/mysql80-server/files/patch-libservices_CMakeLists.txt b/databases/mysql80-server/files/patch-libservices_CMakeLists.txt index 1fa50bdd2bca..95610f261f3a 100644 --- a/databases/mysql80-server/files/patch-libservices_CMakeLists.txt +++ b/databases/mysql80-server/files/patch-libservices_CMakeLists.txt @@ -1,6 +1,6 @@ ---- libservices/CMakeLists.txt.orig 2019-09-20 08:30:51 UTC +--- libservices/CMakeLists.txt.orig 2021-12-17 16:07:27 UTC +++ libservices/CMakeLists.txt -@@ -45,7 +45,9 @@ SET(MYSQLSERVICES_SOURCES +@@ -47,7 +47,9 @@ SET(MYSQLSERVICES_SOURCES plugin_registry_service.c) ADD_LIBRARY(mysqlservices STATIC ${MYSQLSERVICES_SOURCES}) diff --git a/databases/mysql80-server/files/patch-man_CMakeLists.txt b/databases/mysql80-server/files/patch-man_CMakeLists.txt index a08c4ce564c0..9c95ebf65a2b 100644 --- a/databases/mysql80-server/files/patch-man_CMakeLists.txt +++ b/databases/mysql80-server/files/patch-man_CMakeLists.txt @@ -1,5 +1,5 @@ ---- man/CMakeLists.txt.orig 2020-10-20 11:47:42.675974000 +0200 -+++ man/CMakeLists.txt 2020-10-20 13:53:03.993879000 +0200 +--- man/CMakeLists.txt.orig 2021-12-17 16:07:27 UTC ++++ man/CMakeLists.txt @@ -23,26 +23,14 @@ # Copy man pages SET(MAN1 @@ -27,7 +27,7 @@ mysqlimport.1 mysqlman.1 mysqlpump.1 -@@ -52,13 +41,23 @@ SET(MAN1 +@@ -52,13 +40,23 @@ SET(MAN1 zlib_decompress.1 ) @@ -56,8 +56,8 @@ -ENDIF() SET(MAN1_NDB - ndb-common-options.1 -@@ -105,8 +104,14 @@ SET(MAN8_NDB + ndb_blob_tool.1 +@@ -103,8 +101,14 @@ SET(MAN8_NDB ndbmtd.8 ) diff --git a/databases/mysql80-server/files/patch-mysys_my__default.cc b/databases/mysql80-server/files/patch-mysys_my__default.cc index 6a8cb5ebbaf2..87b603301f41 100644 --- a/databases/mysql80-server/files/patch-mysys_my__default.cc +++ b/databases/mysql80-server/files/patch-mysys_my__default.cc @@ -1,4 +1,4 @@ ---- mysys/my_default.cc.orig 2021-04-23 15:06:40 UTC +--- mysys/my_default.cc.orig 2021-12-17 16:07:27 UTC +++ mysys/my_default.cc @@ -204,7 +204,7 @@ bool no_defaults = false; @@ -9,7 +9,7 @@ #define DEFAULT_DIRS_SIZE (MAX_DEFAULT_DIRS + 1) /* Terminate with NULL */ static const char **default_directories = nullptr; -@@ -915,6 +915,14 @@ static int search_default_file_with_ext(Process_option +@@ -922,6 +922,14 @@ static int search_default_file_with_ext(Process_option return 1; /* Ignore wrong files */ } @@ -17,24 +17,24 @@ + { + fprintf(stderr, + "error: Config file %s in invalid location, please move to or merge with /usr/local%s\n", -+ name,name); ++ name,name); + goto err; + } + while (true) { auto fileline = mysql_file_getline(buff, sizeof(buff), fp, is_login_file); char *linebuff = fileline.get(); -@@ -1300,7 +1308,8 @@ void my_print_default_files(const char *conf_file) { +@@ -1311,7 +1319,8 @@ void my_print_default_files(const char *conf_file) { end[(strlen(end) - 1)] = ' '; else strxmov(end, conf_file, *ext, " ", NullS); - fputs(name, stdout); -+ if (strstr(name, "/etc") != name) -+ fputs(name, stdout); ++ if (strstr(name, "/etc") != name) ++ fputs(name, stdout); } } } -@@ -1640,14 +1649,9 @@ static const char **init_default_directories(MEM_ROOT +@@ -1651,14 +1660,9 @@ static const char **init_default_directories(MEM_ROOT #else @@ -51,12 +51,12 @@ #endif if ((env = getenv("MYSQL_HOME"))) errors += add_directory(alloc, env, dirs); -@@ -1710,7 +1714,7 @@ int check_file_permissions(const char *file_name, bool +@@ -1723,7 +1727,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; -+ if (!my_stat(file_name, &stat_info, MYF(0))) return 0; +- if (!my_stat(file_name, &stat_info, flags)) return 1; ++ if (!my_stat(file_name, &stat_info, flags)) return 0; /* Ignore .mylogin.cnf file if not exclusively readable/writable by current user. diff --git a/databases/mysql80-server/files/patch-mysys_my__kdf.cc b/databases/mysql80-server/files/patch-mysys_my__kdf.cc new file mode 100644 index 000000000000..e4b12bfc09a0 --- /dev/null +++ b/databases/mysql80-server/files/patch-mysys_my__kdf.cc @@ -0,0 +1,20 @@ +--- mysys/my_kdf.cc.orig 2022-12-11 13:12:02 UTC ++++ mysys/my_kdf.cc +@@ -56,7 +56,7 @@ int create_kdf_key(const unsigned char *key, const uns + std::unique_ptr<Key_derivation_function> kdf_function; + + if (kdf_name == "hkdf") { +-#if OPENSSL_VERSION_NUMBER >= 0x10100000L ++#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER) + kdf_function = std::make_unique<Key_hkdf_function>(kdf_options); + #else + return 1; +@@ -71,7 +71,7 @@ int create_kdf_key(const unsigned char *key, const uns + return kdf_function->derive_key(key, key_length, rkey, rkey_size); + } + +-#if OPENSSL_VERSION_NUMBER >= 0x10100000L ++#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER) + Key_hkdf_function::Key_hkdf_function(vector<string> *kdf_options) { + kdf_options_ = {kdf_options}; + } diff --git a/databases/mysql80-server/files/patch-mysys_my__md5.cc b/databases/mysql80-server/files/patch-mysys_my__md5.cc deleted file mode 100644 index 56986ec7f9b0..000000000000 --- a/databases/mysql80-server/files/patch-mysys_my__md5.cc +++ /dev/null @@ -1,12 +0,0 @@ ---- 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 deleted file mode 100644 index 9dcdca8bd775..000000000000 --- a/databases/mysql80-server/files/patch-plugin_group__replication_libmysqlgcs_src_bindings_xcom_xcom_xcom__ssl__transport.c +++ /dev/null @@ -1,94 +0,0 @@ ---- plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/xcom_ssl_transport.cc.orig 2019-09-20 08:30:51 UTC -+++ plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/xcom_ssl_transport.cc -@@ -175,7 +175,7 @@ SSL_CTX *client_ctx = NULL; - static long process_tls_version(const char *tls_version) { - const char *separator = ", "; - char *token = NULL; --#ifdef HAVE_TLSv13 -+#if defined(HAVE_TLSv13) && !defined(LIBRESSL_VERSION_NUMBER) - const char *tls_version_name_list[] = {"TLSv1", "TLSv1.1", "TLSv1.2", - "TLSv1.3"}; - #else -@@ -184,7 +184,7 @@ static long process_tls_version(const char *tls_versio - #define TLS_VERSIONS_COUNTS \ - (sizeof(tls_version_name_list) / sizeof(*tls_version_name_list)) - unsigned int tls_versions_count = TLS_VERSIONS_COUNTS; --#ifdef HAVE_TLSv13 -+#if defined(HAVE_TLSv13) && !defined(LIBRESSL_VERSION_NUMBER) - const long tls_ctx_list[TLS_VERSIONS_COUNTS] = { - SSL_OP_NO_TLSv1, SSL_OP_NO_TLSv1_1, SSL_OP_NO_TLSv1_2, SSL_OP_NO_TLSv1_3}; - const char *ctx_flag_default = "TLSv1,TLSv1.1,TLSv1.2,TLSv1.3"; -@@ -240,7 +240,7 @@ static int configure_ssl_algorithms( - long ssl_ctx_options = SSL_OP_NO_SSLv2 | SSL_OP_NO_SSLv3; - char cipher_list[SSL_CIPHER_LIST_SIZE] = {0}; - long ssl_ctx_flags = -1; --#ifdef HAVE_TLSv13 -+#if defined(HAVE_TLSv13) && !defined(LIBRESSL_VERSION_NUMBER) - int tlsv1_3_enabled = 0; - #endif /* HAVE_TLSv13 */ - -@@ -253,7 +253,7 @@ static int configure_ssl_algorithms( - goto error; - } - --#ifdef HAVE_TLSv13 -+#if defined(HAVE_TLSv13) && !defined(LIBRESSL_VERSION_NUMBER) - ssl_ctx_options = (ssl_ctx_options | ssl_ctx_flags) & - (SSL_OP_NO_SSLv2 | SSL_OP_NO_SSLv3 | SSL_OP_NO_TLSv1 | - SSL_OP_NO_TLSv1_1 | SSL_OP_NO_TLSv1_2 | SSL_OP_NO_TLSv1_3); -@@ -265,7 +265,7 @@ static int configure_ssl_algorithms( - - SSL_CTX_set_options(ssl_ctx, ssl_ctx_options); - --#ifdef HAVE_TLSv13 -+#if defined(HAVE_TLSv13) && !defined(LIBRESSL_VERSION_NUMBER) - tlsv1_3_enabled = ((ssl_ctx_options & SSL_OP_NO_TLSv1_3) == 0); - if (tlsv1_3_enabled) { - /* Set OpenSSL TLS v1.3 ciphersuites. -@@ -325,6 +325,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; -@@ -348,6 +349,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) { -@@ -544,10 +546,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(); -@@ -563,7 +567,7 @@ int xcom_init_ssl(const char *server_key_file, const c - } - - G_DEBUG("Configuring SSL for the server") --#ifdef HAVE_TLSv13 -+#if defined(HAVE_TLSv13) && !defined(LIBRESSL_VERSION_NUMBER) - server_ctx = SSL_CTX_new(TLS_server_method()); - #else - server_ctx = SSL_CTX_new(SSLv23_server_method()); -@@ -582,7 +586,7 @@ int xcom_init_ssl(const char *server_key_file, const c - SSL_CTX_set_verify(server_ctx, verify_server, NULL); - - G_DEBUG("Configuring SSL for the client") --#ifdef HAVE_TLSv13 -+#if defined(HAVE_TLSv13) && !defined(LIBRESSL_VERSION_NUMBER) - client_ctx = SSL_CTX_new(TLS_client_method()); - #else - client_ctx = SSL_CTX_new(SSLv23_client_method()); diff --git a/databases/mysql80-server/files/patch-plugin_x_CMakeLists.txt b/databases/mysql80-server/files/patch-plugin_x_CMakeLists.txt index e3ee6f45bb06..58cb6a7922b1 100644 --- a/databases/mysql80-server/files/patch-plugin_x_CMakeLists.txt +++ b/databases/mysql80-server/files/patch-plugin_x_CMakeLists.txt @@ -1,4 +1,4 @@ ---- plugin/x/CMakeLists.txt.orig 2019-09-20 08:30:51 UTC +--- plugin/x/CMakeLists.txt.orig 2021-12-17 16:07:27 UTC +++ plugin/x/CMakeLists.txt @@ -77,6 +77,8 @@ INCLUDE_DIRECTORIES( ${MYSQLX_GENERATE_DIR} @@ -8,4 +8,4 @@ + ${BOOST_INCLUDE_DIR} ) - MY_INCLUDE_SYSTEM_DIRECTORIES(PROTOBUF) + MY_INCLUDE_SYSTEM_DIRECTORIES(LIBEVENT) 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 deleted file mode 100644 index df8f2bfd0942..000000000000 --- a/databases/mysql80-server/files/patch-plugin_x_client_xconnection__impl.cc +++ /dev/null @@ -1,33 +0,0 @@ ---- plugin/x/client/xconnection_impl.cc.orig 2019-09-20 08:30:51 UTC -+++ plugin/x/client/xconnection_impl.cc -@@ -520,6 +520,7 @@ XError Connection_impl::get_ssl_error(const int error_ - return XError(CR_SSL_CONNECTION_ERROR, buffer); - } - -+#ifndef LIBRESSL_VERSION_NUMBER - /** - Set fips mode in openssl library, - When we set fips mode ON/STRICT, it will perform following operations: -@@ -559,6 +560,7 @@ int set_fips_mode(const uint32_t fips_mode, - EXIT: - return rc; - } -+#endif - - XError Connection_impl::activate_tls() { - if (nullptr == m_vio) return get_socket_error(SOCKET_ECONNRESET); -@@ -569,12 +571,14 @@ XError Connection_impl::activate_tls() { - if (!m_context->m_ssl_config.is_configured()) - return XError{CR_SSL_CONNECTION_ERROR, ER_TEXT_TLS_NOT_CONFIGURATED, true}; - -+#ifndef LIBRESSL_VERSION_NUMBER - char err_string[OPENSSL_ERROR_LENGTH] = {'\0'}; - if (set_fips_mode( - static_cast<uint32_t>(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-router_src_harness_include_mysql_harness_net_ts_impl_kqueue_io_service.h b/databases/mysql80-server/files/patch-router_src_harness_include_mysql_harness_net_ts_impl_kqueue_io_service.h index 8274f7e275ac..46d03cb9db69 100644 --- a/databases/mysql80-server/files/patch-router_src_harness_include_mysql_harness_net_ts_impl_kqueue_io_service.h +++ b/databases/mysql80-server/files/patch-router_src_harness_include_mysql_harness_net_ts_impl_kqueue_io_service.h @@ -7,7 +7,7 @@ - ts = {secs.count(), - std::chrono::duration_cast<std::chrono::nanoseconds>(timeout) + ts = {(time_t)secs.count(), -+ (time_t)std::chrono::duration_cast<std::chrono::nanoseconds>(timeout) ++ (long)std::chrono::duration_cast<std::chrono::nanoseconds>(timeout) .count()}; p_ts = &ts; diff --git a/databases/mysql80-server/files/patch-router_src_harness_src_CMakeLists.txt b/databases/mysql80-server/files/patch-router_src_harness_src_CMakeLists.txt index 74d19b39f2d3..65fe02456eec 100644 --- a/databases/mysql80-server/files/patch-router_src_harness_src_CMakeLists.txt +++ b/databases/mysql80-server/files/patch-router_src_harness_src_CMakeLists.txt @@ -1,14 +1,14 @@ ---- router/src/harness/src/CMakeLists.txt.orig 2019-12-09 19:53:17 UTC +--- router/src/harness/src/CMakeLists.txt.orig 2021-12-17 16:07:27 UTC +++ router/src/harness/src/CMakeLists.txt -@@ -205,7 +205,6 @@ IF(NOT WIN32) +@@ -212,7 +212,6 @@ ELSE() INSTALL(TARGETS harness-library LIBRARY DESTINATION ${ROUTER_INSTALL_LIBDIR} COMPONENT Router - NAMELINK_SKIP ) - ELSE() - INSTALL(TARGETS harness-library -@@ -240,7 +239,6 @@ INSTALL(TARGETS harness_stdx + ENDIF() + +@@ -243,7 +242,6 @@ INSTALL(TARGETS harness_stdx RUNTIME DESTINATION ${ROUTER_INSTALL_BINDIR} COMPONENT Router ARCHIVE DESTINATION ${ROUTER_INSTALL_LIBDIR} COMPONENT Router LIBRARY DESTINATION ${ROUTER_INSTALL_LIBDIR} COMPONENT Router @@ -16,7 +16,7 @@ ) ## harness_tls -@@ -277,5 +275,4 @@ INSTALL(TARGETS harness_tls +@@ -284,5 +282,4 @@ INSTALL(TARGETS harness_tls RUNTIME DESTINATION ${ROUTER_INSTALL_BINDIR} COMPONENT Router ARCHIVE DESTINATION ${ROUTER_INSTALL_LIBDIR} COMPONENT Router LIBRARY DESTINATION ${ROUTER_INSTALL_LIBDIR} COMPONENT Router diff --git a/databases/mysql80-server/files/patch-router_src_harness_src_tls__client__context.cc b/databases/mysql80-server/files/patch-router_src_harness_src_tls__client__context.cc index 3c9c3d70b23f..d4a5ef543b49 100644 --- a/databases/mysql80-server/files/patch-router_src_harness_src_tls__client__context.cc +++ b/databases/mysql80-server/files/patch-router_src_harness_src_tls__client__context.cc @@ -1,11 +1,11 @@ ---- router/src/harness/src/tls_client_context.cc.orig 2019-09-20 08:30:51 UTC +--- router/src/harness/src/tls_client_context.cc.orig 2021-12-17 16:07:27 UTC +++ router/src/harness/src/tls_client_context.cc -@@ -54,7 +54,7 @@ void TlsClientContext::verify(TlsVerify verify) { - - void TlsClientContext::cipher_suites(const std::string &ciphers) { +@@ -61,7 +61,7 @@ stdx::expected<void, std::error_code> TlsClientContext + stdx::expected<void, std::error_code> 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"); + return stdx::make_unexpected(make_tls_error()); } diff --git a/databases/mysql80-server/files/patch-router_src_harness_src_tls__context.cc b/databases/mysql80-server/files/patch-router_src_harness_src_tls__context.cc index 9b53b3aae974..b1d818afe81a 100644 --- a/databases/mysql80-server/files/patch-router_src_harness_src_tls__context.cc +++ b/databases/mysql80-server/files/patch-router_src_harness_src_tls__context.cc @@ -1,6 +1,6 @@ ---- router/src/harness/src/tls_context.cc.orig 2019-09-20 08:30:51 UTC +--- router/src/harness/src/tls_context.cc.orig 2021-12-17 16:07:27 UTC +++ router/src/harness/src/tls_context.cc -@@ -91,7 +91,7 @@ static constexpr int o11x_version(TlsVersion version) +@@ -241,7 +241,7 @@ static int o11x_version(TlsVersion version) { return TLS1_1_VERSION; case TlsVersion::TLS_1_2: return TLS1_2_VERSION; @@ -9,19 +9,19 @@ case TlsVersion::TLS_1_3: return TLS1_3_VERSION; #endif -@@ -121,9 +121,11 @@ void TlsContext::version_range(TlsVersion min_version, +@@ -272,9 +272,11 @@ stdx::expected<void, std::error_code> TlsContext::vers default: // unknown, leave all disabled - // fallthrough + [[fallthrough]]; +#ifdef TLS1_3_VERSION case TlsVersion::TLS_1_3: opts |= SSL_OP_NO_TLSv1_2; - // fallthrough + [[fallthrough]]; +#endif case TlsVersion::TLS_1_2: opts |= SSL_OP_NO_TLSv1_1; - // fallthrough -@@ -170,8 +172,10 @@ TlsVersion TlsContext::min_version() const { + [[fallthrough]]; +@@ -322,8 +324,10 @@ TlsVersion TlsContext::min_version() const { return TlsVersion::TLS_1_1; case TLS1_2_VERSION: return TlsVersion::TLS_1_2; @@ -32,7 +32,7 @@ case 0: return TlsVersion::AUTO; default: -@@ -230,7 +234,8 @@ TlsContext::InfoCallback TlsContext::info_callback() c +@@ -382,7 +386,8 @@ TlsContext::InfoCallback TlsContext::info_callback() c } int TlsContext::security_level() const { diff --git a/databases/mysql80-server/files/patch-router_src_harness_src_tls__server__context.cc b/databases/mysql80-server/files/patch-router_src_harness_src_tls__server__context.cc index ac19ffd0c661..5a63eba14103 100644 --- a/databases/mysql80-server/files/patch-router_src_harness_src_tls__server__context.cc +++ b/databases/mysql80-server/files/patch-router_src_harness_src_tls__server__context.cc @@ -1,12 +1,12 @@ ---- router/src/harness/src/tls_server_context.cc.orig 2019-09-20 08:30:51 UTC -+++ router/src/harness/src/tls_server_context.cc -@@ -166,7 +166,8 @@ void TlsServerContext::init_tmp_dh(const std::string & - } +--- router/src/harness/src/tls_server_context.cc.orig 2023-11-18 19:39:18.923205000 +0100 ++++ router/src/harness/src/tls_server_context.cc 2023-11-18 19:42:53.690094000 +0100 +@@ -474,7 +474,8 @@ int TlsServerContext::security_level() const { + } - } else { + int TlsServerContext::security_level() const { -#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 - /* ++#if OPENSSL_VERSION_NUMBER >= ROUTER_OPENSSL_VERSION(1, 1, 0) \ ++ && !defined(LIBRESSL_VERSION_NUMBER) + int sec_level = SSL_CTX_get_security_level(ssl_ctx_.get()); + + assert(sec_level <= kMaxSecurityLevel); diff --git a/databases/mysql80-server/files/patch-router_src_http_src_CMakeLists.txt b/databases/mysql80-server/files/patch-router_src_http_src_CMakeLists.txt index cea2271c20d1..d6d71414449d 100644 --- a/databases/mysql80-server/files/patch-router_src_http_src_CMakeLists.txt +++ b/databases/mysql80-server/files/patch-router_src_http_src_CMakeLists.txt @@ -1,6 +1,6 @@ ---- router/src/http/src/CMakeLists.txt.orig 2019-12-09 19:53:17 UTC +--- router/src/http/src/CMakeLists.txt.orig 2021-12-17 16:07:27 UTC +++ router/src/http/src/CMakeLists.txt -@@ -62,7 +62,6 @@ INSTALL(TARGETS http_common +@@ -58,7 +58,6 @@ INSTALL(TARGETS http_common RUNTIME DESTINATION ${ROUTER_INSTALL_BINDIR} COMPONENT Router ARCHIVE DESTINATION ${ROUTER_INSTALL_LIBDIR} COMPONENT Router LIBRARY DESTINATION ${ROUTER_INSTALL_LIBDIR} COMPONENT Router @@ -8,7 +8,7 @@ ) ## split library code from the plugin to use them _passwd and tests -@@ -88,7 +87,6 @@ INSTALL(TARGETS http_auth_backend_lib +@@ -84,7 +83,6 @@ INSTALL(TARGETS http_auth_backend_lib RUNTIME DESTINATION ${ROUTER_INSTALL_BINDIR} COMPONENT Router ARCHIVE DESTINATION ${ROUTER_INSTALL_LIBDIR} COMPONENT Router LIBRARY DESTINATION ${ROUTER_INSTALL_LIBDIR} COMPONENT Router @@ -16,7 +16,7 @@ ) TARGET_INCLUDE_DIRECTORIES(http_auth_backend_lib PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} -@@ -141,7 +139,6 @@ INSTALL(TARGETS http_auth_realm_lib +@@ -137,7 +135,6 @@ INSTALL(TARGETS http_auth_realm_lib RUNTIME DESTINATION ${ROUTER_INSTALL_BINDIR} COMPONENT Router ARCHIVE DESTINATION ${ROUTER_INSTALL_LIBDIR} COMPONENT Router LIBRARY DESTINATION ${ROUTER_INSTALL_LIBDIR} COMPONENT Router diff --git a/databases/mysql80-server/files/patch-router_src_router_src_CMakeLists.txt b/databases/mysql80-server/files/patch-router_src_router_src_CMakeLists.txt index cee2af2e2f73..ae48964a591e 100644 --- a/databases/mysql80-server/files/patch-router_src_router_src_CMakeLists.txt +++ b/databases/mysql80-server/files/patch-router_src_router_src_CMakeLists.txt @@ -1,6 +1,6 @@ ---- router/src/router/src/CMakeLists.txt.orig 2019-12-09 19:53:17 UTC +--- router/src/router/src/CMakeLists.txt.orig 2021-12-17 16:07:27 UTC +++ router/src/router/src/CMakeLists.txt -@@ -119,7 +119,6 @@ INSTALL(TARGETS router_lib +@@ -124,7 +124,6 @@ INSTALL(TARGETS router_lib RUNTIME DESTINATION ${ROUTER_INSTALL_BINDIR} COMPONENT Router ARCHIVE DESTINATION ${ROUTER_INSTALL_LIBDIR} COMPONENT Router LIBRARY DESTINATION ${ROUTER_INSTALL_LIBDIR} COMPONENT Router diff --git a/databases/mysql80-server/files/patch-scripts_CMakeLists.txt b/databases/mysql80-server/files/patch-scripts_CMakeLists.txt index 19e53914846e..d927dbe6a864 100644 --- a/databases/mysql80-server/files/patch-scripts_CMakeLists.txt +++ b/databases/mysql80-server/files/patch-scripts_CMakeLists.txt @@ -1,24 +1,15 @@ ---- scripts/CMakeLists.txt.orig 2019-09-20 08:30:51 UTC +--- scripts/CMakeLists.txt.orig 2022-07-06 21:36:34 UTC +++ scripts/CMakeLists.txt -@@ -330,7 +330,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") -@@ -340,6 +340,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} " ) +@@ -332,6 +332,8 @@ MACRO(EXTRACT_LINK_LIBRARIES target var) + SET(${var} "${${var}}-L${dir} " ) + ENDIF() + SET(${var} "${${var}}-l${lib} " ) + ELSEIF(lib STREQUAL "-pthread") + SET(${var} "${${var}}-pthread " ) - ELSE() - SET(${var} "${${var}}-l${lib} " ) - ENDIF() -@@ -414,7 +416,7 @@ ELSE() + ELSE() + SET(${var} "${${var}}-l${lib} " ) + ENDIF() +@@ -405,7 +407,7 @@ ELSE() ${CMAKE_CURRENT_BINARY_DIR}/${PKGCONFIG_FILE} ESCAPE_QUOTES @ONLY) @@ -27,7 +18,7 @@ MESSAGE(STATUS "INSTALL ${PKGCONFIG_FILE} ${INSTALL_PKGCONFIGDIR}") INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PKGCONFIG_FILE} -@@ -427,23 +429,28 @@ ELSE() +@@ -418,23 +420,28 @@ ELSE() # mysqld_safe used in mtr even for systemd platforms IF(WITH_SYSTEMD) SET(BIN_SCRIPTS diff --git a/databases/mysql80-server/files/patch-scripts_mysqld__safe.sh b/databases/mysql80-server/files/patch-scripts_mysqld__safe.sh new file mode 100644 index 000000000000..47bc81e3963b --- /dev/null +++ b/databases/mysql80-server/files/patch-scripts_mysqld__safe.sh @@ -0,0 +1,19 @@ +--- scripts/mysqld_safe.sh.orig 2022-01-23 11:48:36 UTC ++++ scripts/mysqld_safe.sh +@@ -360,7 +360,7 @@ mysqld_ld_preload_text() { + # running mysqld. See ld.so for details. + set_malloc_lib() { + # This list is kept intentionally simple. +- malloc_dirs="/usr/lib /usr/lib64 /usr/lib/i386-linux-gnu /usr/lib/x86_64-linux-gnu" ++ malloc_dirs="/usr/lib /usr/lib64 /usr/lib/i386-linux-gnu /usr/lib/x86_64-linux-gnu /usr/local/lib" + malloc_lib="$1" + + # Allow --malloc-lib='' to override other settings +@@ -379,6 +379,7 @@ set_malloc_lib() { + /usr/lib64) ;; + /usr/lib/i386-linux-gnu) ;; + /usr/lib/x86_64-linux-gnu) ;; ++ /usr/local/lib) ;; + *) + log_error "--malloc-lib must be located in one of the directories: $malloc_dirs" + exit 1 diff --git a/databases/mysql80-server/files/patch-sql-common_client.cc b/databases/mysql80-server/files/patch-sql-common_client.cc deleted file mode 100644 index acf9035fb33c..000000000000 --- a/databases/mysql80-server/files/patch-sql-common_client.cc +++ /dev/null @@ -1,18 +0,0 @@ ---- sql-common/client.cc.orig 2020-03-26 13:31:45 UTC -+++ sql-common/client.cc -@@ -7752,6 +7752,7 @@ int STDCALL mysql_options(MYSQL *mysql, enum mysql_opt - return 1; - break; - case MYSQL_OPT_SSL_FIPS_MODE: { -+#if !defined(LIBRESSL_VERSION_NUMBER) - char ssl_err_string[OPENSSL_ERROR_LENGTH] = {'\0'}; - ENSURE_EXTENSIONS_PRESENT(&mysql->options); - mysql->options.extension->ssl_fips_mode = *static_cast<const uint *>(arg); -@@ -7763,6 +7764,7 @@ int STDCALL mysql_options(MYSQL *mysql, enum mysql_opt - "Set Fips mode ON/STRICT failed, detail: '%s'.", ssl_err_string); - return 1; - } -+#endif - } break; - case MYSQL_OPT_SSL_MODE: - ENSURE_EXTENSIONS_PRESENT(&mysql->options); diff --git a/databases/mysql80-server/files/patch-sql_auth_sql__authorization.cc b/databases/mysql80-server/files/patch-sql_auth_sql__authorization.cc new file mode 100644 index 000000000000..4d35279882d5 --- /dev/null +++ b/databases/mysql80-server/files/patch-sql_auth_sql__authorization.cc @@ -0,0 +1,13 @@ +--- sql/auth/sql_authorization.cc.orig 2023-03-16 17:22:37 UTC ++++ sql/auth/sql_authorization.cc +@@ -7430,6 +7430,10 @@ bool operator==(const Role_id &a, const std::string &b + return tmp == b; + } + ++bool operator==(const Role_id &a, const LEX_CSTRING &b) { ++ return a == to_string(b); ++} ++ + bool operator==(const std::pair<Role_id, bool> &a, const std::string &b) { + return a.first == b; + } diff --git a/databases/mysql80-server/files/patch-sql_binlog.cc b/databases/mysql80-server/files/patch-sql_binlog.cc deleted file mode 100644 index 6c51f7bf8a61..000000000000 --- a/databases/mysql80-server/files/patch-sql_binlog.cc +++ /dev/null @@ -1,24 +0,0 @@ ---- sql/binlog.cc.orig 2021-03-22 08:44:50 UTC -+++ sql/binlog.cc -@@ -9156,8 +9156,8 @@ void MYSQL_BIN_LOG::report_missing_purged_gtids( - - char *missing_gtids = NULL; - char *slave_executed_gtids = NULL; -- gtid_missing.to_string(&missing_gtids, NULL); -- slave_executed_gtid_set->to_string(&slave_executed_gtids, NULL); -+ gtid_missing.to_string(&missing_gtids); -+ slave_executed_gtid_set->to_string(&slave_executed_gtids); - - /* - Log the information about the missing purged GTIDs to the error log. -@@ -9210,8 +9210,8 @@ void MYSQL_BIN_LOG::report_missing_gtids( - Gtid_set gtid_missing(slave_executed_gtid_set->get_sid_map()); - gtid_missing.add_gtid_set(slave_executed_gtid_set); - gtid_missing.remove_gtid_set(previous_gtid_set); -- gtid_missing.to_string(&missing_gtids, NULL); -- slave_executed_gtid_set->to_string(&slave_executed_gtids, NULL); -+ gtid_missing.to_string(&missing_gtids); -+ slave_executed_gtid_set->to_string(&slave_executed_gtids); - - String tmp_uuid; - 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 edcba63dec28..8f5d99aa45b4 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-09-20 08:30:51 UTC +--- sql/conn_handler/socket_connection.cc.orig 2021-12-17 16:07:27 UTC +++ sql/conn_handler/socket_connection.cc -@@ -950,9 +950,11 @@ bool check_connection_refused_by_tcp_wrapper(MYSQL_SOC +@@ -953,9 +953,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... -@@ -964,12 +966,13 @@ bool check_connection_refused_by_tcp_wrapper(MYSQL_SOC +@@ -967,12 +969,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 39a7fb89844a..484af751b704 100644 --- a/databases/mysql80-server/files/patch-sql_mysqld.cc +++ b/databases/mysql80-server/files/patch-sql_mysqld.cc @@ -1,6 +1,6 @@ ---- sql/mysqld.cc.orig 2019-09-20 08:30:51 UTC +--- sql/mysqld.cc.orig 2022-07-06 21:36:34 UTC +++ sql/mysqld.cc -@@ -5109,7 +5109,7 @@ static int init_thread_environment() { +@@ -5299,7 +5299,7 @@ static int init_thread_environment() { static PSI_memory_key key_memory_openssl = PSI_NOT_INSTRUMENTED; @@ -9,18 +9,3 @@ #define FILE_LINE_ARGS #else #define FILE_LINE_ARGS , const char *, int -@@ -5143,12 +5143,14 @@ static void init_ssl() { - } - - static int init_ssl_communication() { -+#ifndef LIBRESSL_VERSION_NUMBER - char ssl_err_string[OPENSSL_ERROR_LENGTH] = {'\0'}; - int ret_fips_mode = set_fips_mode(opt_ssl_fips_mode, ssl_err_string); - if (ret_fips_mode != 1) { - LogErr(ERROR_LEVEL, ER_SSL_FIPS_MODE_ERROR, ssl_err_string); - return 1; - } -+#endif /* LIBRESSL_VERSION_NUMBER */ - if (TLS_channel::singleton_init(&mysql_main, mysql_main_channel, opt_use_ssl, - &server_main_callback, opt_initialize)) - return 1; diff --git a/databases/mysql80-server/files/patch-sql_ssl__init__callback.cc b/databases/mysql80-server/files/patch-sql_ssl__init__callback.cc new file mode 100644 index 000000000000..33f3d0645524 --- /dev/null +++ b/databases/mysql80-server/files/patch-sql_ssl__init__callback.cc @@ -0,0 +1,36 @@ +--- sql/ssl_init_callback.cc.orig 2021-12-17 16:07:27 UTC ++++ sql/ssl_init_callback.cc +@@ -106,14 +106,14 @@ static Sys_var_charptr Sys_ssl_capath( + + static Sys_var_charptr Sys_tls_version( + "tls_version", +-#ifdef HAVE_TLSv13 ++#if defined(HAVE_TLSv13) && !defined(LIBRESSL_VERSION_NUMBER) + "TLS version, permitted values are TLSv1.2, TLSv1.3", + #else + "TLS version, permitted values are TLSv1.2", + #endif + PERSIST_AS_READONLY GLOBAL_VAR(opt_tls_version), + CMD_LINE(REQUIRED_ARG, OPT_TLS_VERSION), IN_FS_CHARSET, +-#ifdef HAVE_TLSv13 ++#if defined(HAVE_TLSv13) && !defined(LIBRESSL_VERSION_NUMBER) + "TLSv1.2,TLSv1.3", + #else + "TLSv1.2", +@@ -175,14 +175,14 @@ static Sys_var_charptr Sys_admin_ssl_capath( + + static Sys_var_charptr Sys_admin_tls_version( + "admin_tls_version", +-#ifdef HAVE_TLSv13 ++#if defined(HAVE_TLSv13) && !defined(LIBRESSL_VERSION_NUMBER) + "TLS version for --admin-port, permitted values are TLSv1.2, TLSv1.3", + #else + "TLS version for --admin-port, permitted values are TLSv1.2", + #endif + PERSIST_AS_READONLY GLOBAL_VAR(opt_admin_tls_version), + CMD_LINE(REQUIRED_ARG, OPT_TLS_VERSION), IN_FS_CHARSET, +-#ifdef HAVE_TLSv13 ++#if defined(HAVE_TLSv13) && !defined(LIBRESSL_VERSION_NUMBER) + "TLSv1.2,TLSv1.3", + #else + "TLSv1.2", diff --git a/databases/mysql80-server/files/patch-sql_sys__vars.cc b/databases/mysql80-server/files/patch-sql_sys__vars.cc index 9c12715fd6df..39f72484c0bd 100644 --- a/databases/mysql80-server/files/patch-sql_sys__vars.cc +++ b/databases/mysql80-server/files/patch-sql_sys__vars.cc @@ -1,6 +1,6 @@ ---- sql/sys_vars.cc.orig 2019-09-20 08:30:51 UTC +--- sql/sys_vars.cc.orig 2022-07-06 21:36:34 UTC +++ sql/sys_vars.cc -@@ -1875,7 +1875,7 @@ static Sys_var_ulong Sys_connect_timeout( +@@ -2039,7 +2039,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), @@ -9,7 +9,7 @@ static Sys_var_ulong Sys_information_schema_stats_expiry( "information_schema_stats_expiry", -@@ -2929,7 +2929,7 @@ static Sys_var_ulong Sys_net_read_timeout( +@@ -3189,7 +3189,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(nullptr), ON_UPDATE(fix_net_read_timeout)); -@@ -2950,7 +2950,7 @@ static Sys_var_ulong Sys_net_write_timeout( +@@ -3210,7 +3210,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,44 +27,3 @@ NO_MUTEX_GUARD, NOT_IN_BINLOG, ON_CHECK(nullptr), ON_UPDATE(fix_net_write_timeout)); -@@ -4459,6 +4459,7 @@ static Sys_var_ulong Sys_max_execution_time( - 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) { -@@ -4470,14 +4471,30 @@ static bool update_fips_mode(sys_var *, THD *, enum_va - } - } - -+#endif -+ -+#if defined(LIBRESSL_VERSION_NUMBER) -+static const char *ssl_fips_mode_names[] = {"OFF", 0}; -+#else - static const char *ssl_fips_mode_names[] = {"OFF", "ON", "STRICT", nullptr}; -+#endif - static Sys_var_enum Sys_ssl_fips_mode( - "ssl_fips_mode", - "SSL FIPS mode (applies only for OpenSSL); " -- "permitted values are: OFF, ON, STRICT", -+#ifndef LIBRESSL_VERSION_NUMBER -+ "permitted values are: OFF, ON, STRICT", -+#else -+ "permitted values are: OFF", -+#endif - 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(nullptr), ON_UPDATE(update_fips_mode), nullptr); -+ ON_CHECK(NULL), -+#ifndef LIBRESSL_VERSION_NUMBER -+ ON_UPDATE(update_fips_mode), -+#else -+ ON_UPDATE(NULL), -+#endif -+ NULL); - - static Sys_var_bool Sys_auto_generate_certs( - "auto_generate_certs", diff --git a/databases/mysql80-server/files/patch-ssl__init__callback.cc b/databases/mysql80-server/files/patch-ssl__init__callback.cc deleted file mode 100644 index 2d80cf5e6c78..000000000000 --- a/databases/mysql80-server/files/patch-ssl__init__callback.cc +++ /dev/null @@ -1,20 +0,0 @@ ---- sql/ssl_init_callback.cc.orig 2020-12-11 07:42:20 UTC -+++ sql/ssl_init_callback.cc -@@ -88,7 +88,7 @@ static Sys_var_charptr Sys_tls_version( - "TLS version, permitted values are TLSv1, TLSv1.1, TLSv1.2, TLSv1.3", - PERSIST_AS_READONLY GLOBAL_VAR(opt_tls_version), - CMD_LINE(REQUIRED_ARG, OPT_TLS_VERSION), IN_FS_CHARSET, --#ifdef HAVE_TLSv13 -+#if defined(HAVE_TLSv13) && !defined(LIBRESSL_VERSION_NUMBER) - "TLSv1,TLSv1.1,TLSv1.2,TLSv1.3", - #else - "TLSv1,TLSv1.1,TLSv1.2", -@@ -154,7 +154,7 @@ static Sys_var_charptr Sys_admin_tls_version( - "TLSv1.2, TLSv1.3", - PERSIST_AS_READONLY GLOBAL_VAR(opt_admin_tls_version), - CMD_LINE(REQUIRED_ARG, OPT_TLS_VERSION), IN_FS_CHARSET, --#ifdef HAVE_TLSv13 -+#if defined(HAVE_TLSv13) && !defined(LIBRESSL_VERSION_NUMBER) - "TLSv1,TLSv1.1,TLSv1.2,TLSv1.3", - #else - "TLSv1,TLSv1.1,TLSv1.2", diff --git a/databases/mysql80-server/files/patch-storage_innobase_include_ut0crc32.h b/databases/mysql80-server/files/patch-storage_innobase_include_ut0crc32.h new file mode 100644 index 000000000000..8ecb999b0221 --- /dev/null +++ b/databases/mysql80-server/files/patch-storage_innobase_include_ut0crc32.h @@ -0,0 +1,12 @@ +--- storage/innobase/include/ut0crc32.h.orig 2023-11-27 21:02:58.728994000 +0100 ++++ storage/innobase/include/ut0crc32.h 2023-11-27 21:04:10.010362000 +0100 +@@ -132,7 +132,9 @@ CRC32_DEFAULT + #endif /* CRC32_ARM64 */ + + #ifdef CRC32_ARM64_DEFAULT ++#ifndef __FreeBSD__ + #include <asm/hwcap.h> ++#endif /* __FreeBSD__ */ + #include <sys/auxv.h> + #endif /* CRC32_ARM64_DEFAULT */ + diff --git a/databases/mysql80-server/files/patch-storage_innobase_ut_crc32.cc b/databases/mysql80-server/files/patch-storage_innobase_ut_crc32.cc new file mode 100644 index 000000000000..fabd5664cf94 --- /dev/null +++ b/databases/mysql80-server/files/patch-storage_innobase_ut_crc32.cc @@ -0,0 +1,104 @@ +--- storage/innobase/ut/crc32.cc.orig 2023-11-18 19:47:31.364606000 +0100 ++++ storage/innobase/ut/crc32.cc 2023-11-18 20:51:42.956171000 +0100 +@@ -332,8 +332,25 @@ bool can_use_poly_mul() { return true; } + #endif /* CRC32_ARM64_APPLE */ + + #ifdef CRC32_ARM64_DEFAULT ++#ifdef __FreeBSD__ ++bool can_use_crc32() { ++ unsigned long capabilities; ++ ++ if (elf_aux_info(AT_HWCAP, &capabilities, sizeof(unsigned long))) ++ return false; ++ return capabilities & HWCAP_CRC32; ++} ++bool can_use_poly_mul() { ++ unsigned long capabilities; ++ ++ if (elf_aux_info(AT_HWCAP, &capabilities, sizeof(unsigned long))) ++ return false; ++ return capabilities & HWCAP_CRC32; ++} ++#else + bool can_use_crc32() { return getauxval(AT_HWCAP) & HWCAP_CRC32; } + bool can_use_poly_mul() { return getauxval(AT_HWCAP) & HWCAP_PMULL; } ++#endif + #endif /* CRC32_ARM64_DEFAULT */ + + /** A helper template to statically unroll a loop with a fixed number of +@@ -442,25 +459,39 @@ uint64_t crc32_impl::update(uint64_t crc, uint64_t dat + + #ifdef CRC32_ARM64 + #ifdef CRC32_ARM64_DEFAULT ++#ifndef __clang__ + MY_ATTRIBUTE((target("+crc"))) ++#else ++MY_ATTRIBUTE((target("crc"))) ++#endif + #endif /* CRC32_ARM64_DEFAULT */ + uint32_t crc32_impl::update(uint32_t crc, unsigned char data) { + return __crc32cb(crc, data); + } + #ifdef CRC32_ARM64_DEFAULT ++#ifndef __clang__ + MY_ATTRIBUTE((target("+crc"))) ++#endif + #endif /* CRC32_ARM64_DEFAULT */ + uint32_t crc32_impl::update(uint32_t crc, uint16_t data) { + return __crc32ch(crc, data); + } + #ifdef CRC32_ARM64_DEFAULT ++#ifndef __clang__ + MY_ATTRIBUTE((target("+crc"))) ++#else ++MY_ATTRIBUTE((target("crc"))) ++#endif + #endif /* CRC32_ARM64_DEFAULT */ + uint32_t crc32_impl::update(uint32_t crc, uint32_t data) { + return __crc32cw(crc, data); + } + #ifdef CRC32_ARM64_DEFAULT ++#ifndef __clang__ + MY_ATTRIBUTE((target("+crc"))) ++#else ++MY_ATTRIBUTE((target("crc"))) ++#endif + #endif /* CRC32_ARM64_DEFAULT */ + uint64_t crc32_impl::update(uint64_t crc, uint64_t data) { + return (uint64_t)__crc32cd((uint32_t)crc, data); +@@ -506,7 +537,11 @@ template <uint32_t w> + } + template <uint32_t w> + #ifdef CRC32_ARM64_DEFAULT ++#ifndef __clang__ + MY_ATTRIBUTE((target("+crypto"))) ++#else ++MY_ATTRIBUTE((target("crypto"))) ++#endif + #endif /* CRC32_ARM64_DEFAULT */ + uint64_t use_pclmul::polynomial_mul_rev(uint32_t rev_u) { + constexpr uint64_t flipped_w = flip_at_32(w); +@@ -749,7 +784,11 @@ MY_ATTRIBUTE((flatten)) + MY_ATTRIBUTE((flatten)) + #endif /* CRC32_ARM64_APPLE */ + #ifdef CRC32_ARM64_DEFAULT ++#ifndef __clang__ + MY_ATTRIBUTE((target("+crc+crypto"), flatten)) ++#else ++MY_ATTRIBUTE((target("crc,crypto"))) ++#endif + #endif /* CRC32_ARM64_DEFAULT */ + uint32_t crc32_using_pclmul(const byte *data, size_t len) { + return crc32<use_pclmul>(0, data, len); +@@ -769,7 +808,11 @@ MY_ATTRIBUTE((flatten)) + MY_ATTRIBUTE((flatten)) + #endif /* CRC32_ARM64_APPLE */ + #ifdef CRC32_ARM64_DEFAULT ++#ifndef __clang__ + MY_ATTRIBUTE((target("+crc"), flatten)) ++#else ++MY_ATTRIBUTE((target("crc"))) ++#endif + #endif /* CRC32_ARM64_DEFAULT */ + uint32_t crc32_using_unrolled_loop_poly_mul(const byte *data, size_t len) { + return crc32<use_unrolled_loop_poly_mul>(0, data, len); diff --git a/databases/mysql80-server/files/patch-utilities_CMakeLists.txt b/databases/mysql80-server/files/patch-utilities_CMakeLists.txt index 29c120a41e79..c68cd6aa532d 100644 --- a/databases/mysql80-server/files/patch-utilities_CMakeLists.txt +++ b/databases/mysql80-server/files/patch-utilities_CMakeLists.txt @@ -1,8 +1,8 @@ ---- utilities/CMakeLists.txt.orig 2020-09-23 12:37:48 UTC -+++ utilities/CMakeLists.txt -@@ -23,13 +23,19 @@ - ADD_WSHADOW_WARNING() +--- utilities/CMakeLists.txt.orig 2023-06-14 08:24:40.103026000 +0200 ++++ utilities/CMakeLists.txt 2023-06-22 20:43:33.353592000 +0200 +@@ -24,13 +24,19 @@ MSVC_CPPCHECK_DISABLE() DISABLE_MISSING_PROFILE_WARNING() + MSVC_CPPCHECK_DISABLE() -IF(NOT CMAKE_CROSSCOMPILING) +IF(WITHOUT_CLIENTLIBS) @@ -22,7 +22,7 @@ MYSQL_ADD_EXECUTABLE(comp_client_err comp_client_err.cc -@@ -112,10 +118,30 @@ MYSQL_ADD_EXECUTABLE(static_thread_local_test +@@ -113,10 +119,30 @@ MYSQL_ADD_EXECUTABLE(static_thread_local_test EXCLUDE_FROM_ALL ) @@ -53,8 +53,8 @@ ) MYSQL_ADD_EXECUTABLE(perror perror.cc -@@ -130,12 +156,23 @@ IF(BUILD_BUNDLED_LZ4) - LINK_LIBRARIES ${LZ4_LIBRARY} mysys +@@ -131,12 +157,23 @@ ENDIF() + LINK_LIBRARIES ext::lz4 mysys ) ENDIF() +ENDIF(WITHOUT_CLIENTLIBS) @@ -63,7 +63,7 @@ MYSQL_ADD_EXECUTABLE(zlib_decompress zlib_decompress.cc COMPONENT Server - LINK_LIBRARIES ${ZLIB_LIBRARY} mysys + LINK_LIBRARIES ext::zlib mysys + SKIP_INSTALL ) +ELSE(WITHOUT_CLIENTLIBS) +IF(BUILD_BUNDLED_ZLIB OR NOT OPENSSL_EXECUTABLE_HAS_ZLIB) diff --git a/databases/mysql80-server/files/patch-vio_viossl.cc b/databases/mysql80-server/files/patch-vio_viossl.cc deleted file mode 100644 index e7f2a2a7c952..000000000000 --- a/databases/mysql80-server/files/patch-vio_viossl.cc +++ /dev/null @@ -1,30 +0,0 @@ ---- vio/viossl.cc.orig 2019-09-20 08:30:51 UTC -+++ vio/viossl.cc -@@ -45,7 +45,8 @@ - BIO_set_callback_ex was added in openSSL 1.1.1 - For older openSSL, use the deprecated BIO_set_callback. - */ --#if OPENSSL_VERSION_NUMBER >= 0x10101000L -+#if OPENSSL_VERSION_NUMBER >= 0x10101000L && \ -+ !defined(LIBRESSL_VERSION_NUMBER) - #define HAVE_BIO_SET_CALLBACK_EX - #endif - -@@ -635,7 +636,7 @@ static int ssl_do(struct st_VioSSLFd *ptr, Vio *vio, l - #if !defined(DBUG_OFF) - { - STACK_OF(SSL_COMP) *ssl_comp_methods = nullptr; -- 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) -@@ -643,7 +644,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 deleted file mode 100644 index 6c0f821e8911..000000000000 --- a/databases/mysql80-server/files/patch-vio_viosslfactories.cc +++ /dev/null @@ -1,60 +0,0 @@ ---- vio/viosslfactories.cc.orig 2019-09-20 08:30:51 UTC -+++ vio/viosslfactories.cc -@@ -40,6 +40,7 @@ - #include "vio/vio_priv.h" - - #include <openssl/dh.h> -+#include <openssl/crypto.h> - - #if OPENSSL_VERSION_NUMBER < 0x10002000L - #include <openssl/ec.h> -@@ -472,6 +473,7 @@ void ssl_start() { - } - } - -+#ifndef LIBRESSL_VERSION_NUMBER - /** - Set fips mode in openssl library, - When we set fips mode ON/STRICT, it will perform following operations: -@@ -525,12 +527,13 @@ EXIT: - @returns openssl current fips mode - */ - uint get_fips_mode() { return FIPS_mode(); } -+#endif - - long process_tls_version(const char *tls_version) { - const char *separator = ","; - char *token, *lasts = nullptr; - --#ifdef HAVE_TLSv13 -+#if defined(HAVE_TLSv13) && !defined(LIBRESSL_VERSION_NUMBER) - const char *tls_version_name_list[] = {"TLSv1", "TLSv1.1", "TLSv1.2", - "TLSv1.3"}; - const char ctx_flag_default[] = "TLSv1,TLSv1.1,TLSv1.2,TLSv1.3"; -@@ -609,7 +612,7 @@ static struct st_VioSSLFd *new_VioSSLFd( - ssl_ctx_options = (ssl_ctx_options | ssl_ctx_flags) & - (SSL_OP_NO_SSLv2 | SSL_OP_NO_SSLv3 | SSL_OP_NO_TLSv1 | - SSL_OP_NO_TLSv1_1 | SSL_OP_NO_TLSv1_2 --#ifdef HAVE_TLSv13 -+#if defined(HAVE_TLSv13) && !defined(LIBRESSL_VERSION_NUMBER) - | SSL_OP_NO_TLSv1_3 - #endif /* HAVE_TLSv13 */ - | SSL_OP_NO_TICKET); -@@ -618,7 +621,7 @@ static struct st_VioSSLFd *new_VioSSLFd( - return nullptr; - - if (!(ssl_fd->ssl_context = SSL_CTX_new(is_client ? --#ifdef HAVE_TLSv13 -+#if defined(HAVE_TLSv13) && !defined(LIBRESSL_VERSION_NUMBER) - TLS_client_method() - : TLS_server_method() - #else /* HAVE_TLSv13 */ -@@ -633,7 +636,7 @@ static struct st_VioSSLFd *new_VioSSLFd( - return nullptr; - } - --#ifdef HAVE_TLSv13 -+#if defined(HAVE_TLSv13) && !defined(LIBRESSL_VERSION_NUMBER) - /* - Set OpenSSL TLS v1.3 ciphersuites. - Note that an empty list is permissible. diff --git a/databases/mysql80-server/pkg-descr b/databases/mysql80-server/pkg-descr index b23ead6c68a0..4893ba6f2444 100644 --- a/databases/mysql80-server/pkg-descr +++ b/databases/mysql80-server/pkg-descr @@ -10,6 +10,3 @@ The new features in MySQL 8.0. In addition to Data Dictionnary and CTEs are: Performance Schema, instrumenting data locks Performance Schema, instrumenting error messages Improved cost model with histograms - - -WWW: https://www.mysql.com/ diff --git a/databases/mysql80-server/pkg-plist b/databases/mysql80-server/pkg-plist index fea5ce5c8a63..f9dbff562f49 100644 --- a/databases/mysql80-server/pkg-plist +++ b/databases/mysql80-server/pkg-plist @@ -6,7 +6,6 @@ bin/myisam_ftdump bin/myisamchk bin/myisamlog bin/myisampack -bin/mysqldumpslow bin/mysql_client_test bin/mysql_keyring_encryption_test bin/mysql_secure_installation @@ -15,6 +14,7 @@ bin/mysql_tzinfo_to_sql bin/mysql_upgrade bin/mysqld_multi bin/mysqld_safe +bin/mysqldumpslow bin/mysqlrouter bin/mysqlrouter_keyring bin/mysqlrouter_passwd @@ -31,6 +31,8 @@ lib/mysql/libmysqlharness_tls.so lib/mysql/libmysqlharness_tls.so.1 lib/mysql/libmysqlrouter.so lib/mysql/libmysqlrouter.so.1 +lib/mysql/libmysqlrouter_connection_pool.so.1 +lib/mysql/libmysqlrouter_destination_status.so.1 lib/mysql/libmysqlrouter_http.so lib/mysql/libmysqlrouter_http.so.1 lib/mysql/libmysqlrouter_http_auth_backend.so @@ -39,6 +41,11 @@ lib/mysql/libmysqlrouter_http_auth_realm.so lib/mysql/libmysqlrouter_http_auth_realm.so.1 lib/mysql/libmysqlrouter_io_component.so lib/mysql/libmysqlrouter_io_component.so.1 +lib/mysql/libmysqlrouter_metadata_cache.so.1 +lib/mysql/libmysqlrouter_mysqlxmessages.so.1 +lib/mysql/libmysqlrouter_routing.so.1 +lib/mysql/mysqlrouter/connection_pool.so +lib/mysql/mysqlrouter/destination_status.so lib/mysql/mysqlrouter/http_auth_backend.so lib/mysql/mysqlrouter/http_auth_realm.so lib/mysql/mysqlrouter/http_server.so @@ -46,6 +53,7 @@ lib/mysql/mysqlrouter/io.so lib/mysql/mysqlrouter/keepalive.so lib/mysql/mysqlrouter/metadata_cache.so lib/mysql/mysqlrouter/rest_api.so +lib/mysql/mysqlrouter/rest_connection_pool.so lib/mysql/mysqlrouter/rest_metadata_cache.so lib/mysql/mysqlrouter/rest_router.so lib/mysql/mysqlrouter/rest_routing.so @@ -55,6 +63,7 @@ lib/mysql/mysqlrouter/routing.so lib/mysql/plugin/adt_null.so lib/mysql/plugin/auth.so lib/mysql/plugin/auth_test_plugin.so +lib/mysql/plugin/conflicting_variables.so lib/mysql/plugin/component_audit_api_message_emit.so lib/mysql/plugin/component_example_component1.so lib/mysql/plugin/component_example_component2.so @@ -74,10 +83,16 @@ lib/mysql/plugin/component_test_audit_api_message.so lib/mysql/plugin/component_test_backup_lock_service.so lib/mysql/plugin/component_test_component_deinit.so lib/mysql/plugin/component_test_host_application_signal.so +lib/mysql/plugin/component_test_mysql_command_services.so lib/mysql/plugin/component_test_mysql_current_thread_reader.so lib/mysql/plugin/component_test_mysql_runtime_error.so +lib/mysql/plugin/component_test_mysql_system_variable_set.so +lib/mysql/plugin/component_test_mysql_thd_store_service.so lib/mysql/plugin/component_test_pfs_notification.so lib/mysql/plugin/component_test_pfs_resource_group.so +lib/mysql/plugin/component_test_sensitive_system_variables.so +lib/mysql/plugin/component_test_server_telemetry_traces.so +lib/mysql/plugin/component_test_status_var_reader.so lib/mysql/plugin/component_test_status_var_service.so lib/mysql/plugin/component_test_status_var_service_int.so lib/mysql/plugin/component_test_status_var_service_reg_only.so @@ -91,6 +106,7 @@ lib/mysql/plugin/component_test_sys_var_service_int.so lib/mysql/plugin/component_test_sys_var_service_same.so lib/mysql/plugin/component_test_sys_var_service_str.so lib/mysql/plugin/component_test_system_variable_source.so +lib/mysql/plugin/component_test_table_access.so lib/mysql/plugin/component_test_udf_registration.so @comment lib/mysql/plugin/component_test_udf_services.so lib/mysql/plugin/component_udf_reg_3_func.so @@ -149,8 +165,11 @@ lib/mysql/plugin/replication_observers_example_plugin.so lib/mysql/plugin/rewrite_example.so lib/mysql/plugin/rewriter.so lib/mysql/plugin/semisync_master.so +lib/mysql/plugin/semisync_replica.so lib/mysql/plugin/semisync_slave.so +lib/mysql/plugin/semisync_source.so lib/mysql/plugin/test_security_context.so +lib/mysql/plugin/test_services_command_services.so lib/mysql/plugin/test_services_host_application_signal.so lib/mysql/plugin/test_services_plugin_registry.so lib/mysql/plugin/udf_example.so @@ -158,26 +177,29 @@ lib/mysql/plugin/keyring_udf.so lib/mysql/plugin/test_udf_services.so lib/mysql/plugin/validate_password.so lib/mysql/plugin/version_token.so +lib/mysql/private/libprotobuf-lite.so.3.19.4 +lib/mysql/private/libprotobuf.so.3.19.4 +lib/mysql/libprotobuf-lite.so.3.19.4 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_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/mysqlrouter_passwd.1.gz -man/man1/mysqlrouter_plugin_info.1.gz -man/man1/mysqlrouter.1.gz -man/man8/mysqld.8.gz +@comment share/man/man1/ibd2sdi.1.gz +@comment share/man/man1/innochecksum.1.gz +@comment share/man/man1/my_print_defaults.1.gz +@comment share/man/man1/myisam_ftdump.1.gz +@comment share/man/man1/myisamchk.1.gz +@comment share/man/man1/myisamlog.1.gz +@comment share/man/man1/myisampack.1.gz +@comment share/man/man1/mysql_secure_installation.1.gz +@comment share/man/man1/mysql_ssl_rsa_setup.1.gz +@comment share/man/man1/mysql_tzinfo_to_sql.1.gz +@comment share/man/man1/mysql_upgrade.1.gz +@comment share/man/man1/mysql.server.1.gz +@comment share/man/man1/mysqld_multi.1.gz +@comment share/man/man1/mysqld_safe.1.gz +@comment share/man/man1/mysqldumpslow.1.gz +@comment share/man/man1/mysqlrouter_passwd.1.gz +@comment share/man/man1/mysqlrouter_plugin_info.1.gz +@comment share/man/man1/mysqlrouter.1.gz +@comment share/man/man8/mysqld.8.gz %%DATADIR%%/bulgarian/errmsg.sys %%DATADIR%%/charsets/Index.xml %%DATADIR%%/charsets/README |