diff --git a/databases/mysql80-server/Makefile b/databases/mysql80-server/Makefile index a729a8155f68..a2f1c5073108 100644 --- a/databases/mysql80-server/Makefile +++ b/databases/mysql80-server/Makefile @@ -1,214 +1,213 @@ PORTNAME?= mysql -PORTVERSION= 8.0.35 -PORTREVISION?= 1 +PORTVERSION= 8.0.39 +PORTREVISION?= 0 CATEGORIES= databases MASTER_SITES= MYSQL/MySQL-8.0 PKGNAMESUFFIX?= 80-server 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 cpe groff:run libedit localbase \ ncurses perl5 pkgconfig shebangfix ssl CPE_VENDOR= oracle USE_CXXSTD= c++17 USE_PERL5= run MY_DBDIR= /var/db/mysql MY_SECDIR= /var/db/mysql_secure MY_TMPDIR= /var/db/mysql_tmpdir LIB_DEPENDS+= libcurl.so:ftp/curl \ libevent.so:devel/libevent \ libicutu.so:devel/icu \ liblz4.so:archivers/liblz4 \ 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 BUILD_DEPENDS= liblz4>0:archivers/liblz4 \ ${BUILD_DEPENDS_${ARCH}} 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 CFLAGS_aarch64?= -march=armv8-a+crc+crypto CMAKE_ARGS+= -DINSTALL_LAYOUT=FREEBSD \ -DINSTALL_LDCONFIGDIR="${LOCALBASE}/libdata/ldconfig" \ -DINSTALL_PKGCONFIGDIR="${LOCALBASE}/libdata/pkgconfig" \ -DINSTALL_DOCDIR="share/doc/mysql" \ -DINSTALL_DOCREADMEDIR="share/doc/mysql" \ -DINSTALL_INCLUDEDIR="include/mysql" \ -DINSTALL_INFODIR="${INFO_PATH}" \ -DINSTALL_LIBDIR="lib/mysql" \ -DINSTALL_PRIV_LIBDIR="lib/mysql/private" \ -DINSTALL_MANDIR="share/man" \ -DINSTALL_MYSQLDATADIR="${MY_DBDIR}" \ -DINSTALL_MYSQLKEYRINGDIR="etc/mysql/keyring" \ -DINSTALL_MYSQLSHAREDIR="share/mysql" \ -DINSTALL_MYSQLTESTDIR="" \ -DINSTALL_PLUGINDIR="lib/mysql/plugin" \ -DINSTALL_SBINDIR="libexec" \ -DINSTALL_SCRIPTDIR="bin" \ -DINSTALL_SECURE_FILE_PRIVDIR="${MY_SECDIR}" \ -DINSTALL_SHAREDIR="share" \ -DINSTALL_SUPPORTFILESDIR="share/mysql" \ -DMYSQL_KEYRINGDIR="${ETCDIR}/keyring" \ -DWITH_BOOST="${WRKSRC}/boost" \ -DWITH_SYSTEM_LIBS=1 \ -DWITH_EDITLINE=system \ -DWITH_LIBEVENT=system \ -DWITH_LZ4=system \ -DWITH_ICU=system \ -DWITH_CURL=system \ -DWITH_ZSTD=bundled \ -DWITH_PROTOBUF=bundled \ -DWITH_SSL=system \ -DWITH_AUTHENTICATION_FIDO=1 \ -DBUILD_BUNDLED_ZLIB=0 \ -DBUILD_BUNDLED_LZ4=0 # The Mroonga, RocksDB, and TokuDB storage engines are disabled. # Mroonga is only buildable on little endian archs. # RocksDB is only buildable on little endian archs and requires POSIX timers. # TokuDB is only buildable on 64-bit little endian archs. CMAKE_ARGS+= -DWITHOUT_MROONGA_STORAGE_ENGINE=1 \ -DWITHOUT_ROCKSDB_STORAGE_ENGINE=1 \ -DWITHOUT_TOKUDB_STORAGE_ENGINE=1 SHEBANG_FILES= scripts/*.pl* scripts/*.sh .ifdef USE_MYSQL IGNORE= You have `USE_MYSQL' variable defined either in environment or in make(1) arguments. Please undefine and try again. .endif SUB_LIST= MY_DBDIR=${MY_DBDIR} \ MY_SECDIR=${MY_SECDIR} \ MY_TMPDIR=${MY_TMPDIR} PLIST_SUB= MY_DBDIR=${MY_DBDIR} \ MY_SECDIR=${MY_SECDIR} \ - MY_TMPDIR=${MY_TMPDIR} \ - MYSQL80_LIBVER=${MYSQL80_LIBVER} + MY_TMPDIR=${MY_TMPDIR} # MySQL-Server part .if !defined(CLIENT_ONLY) USES+= mysql:80 CONFLICTS_INSTALL= mysql*-server \ mysqlwsrep*-server \ mariadb*-server \ percona*-server USE_RC_SUBR= mysql-server SUB_FILES= my.cnf.sample pkg-message USERS= mysql GROUPS= mysql USE_LDCONFIG+= ${PREFIX}/lib/mysql/plugin 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" # 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 OPTIONS_SUB= YES STORAGE_DESC= Permissible "Storage Engines" (to compile statically into the server) ARCHIVE_DESC= Compile "Archive Storage" statically in server BLACKHOLE_DESC= Compile "Blackhole Storage" statically in server EXAMPLE_DESC= Compile "Example Storage" statically in server FEDERATED_DESC= Compile "Federated Storage" statically in server INNOBASE_DESC= Compile "InnoDB Storage" statically in server PARTITION_DESC= Compile "Partitioning support Storage" statically in server PERFSCHEMA_DESC= Compile "Performance Schema Storage" statically in server ARCHIVE_CMAKE_ON= -DWITH_ARCHIVE_STORAGE_ENGINE=1 BLACKHOLE_CMAKE_ON= -DWITH_BLACKHOLE_STORAGE_ENGINE=1 EXAMPLE_CMAKE_ON= -DWITH_EXAMPLE_STORAGE_ENGINE=1 FEDERATED_CMAKE_ON= -DWITH_FEDERATED_STORAGE_ENGINE=1 INNOBASE_CMAKE_ON= -DWITH_INNOBASE_STORAGE_ENGINE=1 PARTITION_CMAKE_ON= -DWITH_PARTITION_STORAGE_ENGINE=1 PERFSCHEMA_CMAKE_ON= -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 OPTIONS_GROUP+= FEATURES OPTIONS_GROUP_FEATURES= PERFSCHM FEATURES_DESC= Default features knobs PERFSCHM_DESC= Enable "Performance Schema" by default (High RAM usage) OPTIONS_DEFAULT+= PERFSCHM PERFSCHM_SUB_LIST+= PERFSCHEMRC="" PERFSCHM_SUB_LIST_OFF+= PERFSCHEMRC="--skip-performance-schema" FEDERATED_SUB_LIST+= FEDER="--federated" FEDERATED_SUB_LIST_OFF+= FEDER="" .endif .include # Since 8.0.20 release innodb engine uses new memory alligned allocator # 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 SSP_UNSAFE= yes .endif .if ${ARCH} == powerpc LDFLAGS+= -latomic USES+= compiler:gcc-c++11-lib .else USES+= compiler:c++17-lang .endif .include 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} ${INSTALL_DATA} ${WRKDIR}/my.cnf.sample ${STAGEDIR}${ETCDIR}/my.cnf.sample ${MKDIR} ${STAGEDIR}${ETCDIR}/keyring ${MKDIR} ${STAGEDIR}${MY_SECDIR} ${MKDIR} ${STAGEDIR}${MY_TMPDIR} .endif .include diff --git a/databases/mysql80-server/distinfo b/databases/mysql80-server/distinfo index bc0a2dd68ade..aefd6a834a7f 100644 --- a/databases/mysql80-server/distinfo +++ b/databases/mysql80-server/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1700321902 -SHA256 (mysql-boost-8.0.35.tar.gz) = 41253c3a99cefcf6d806040c6687692eb0c37b4c7aae5882417dfb9c5d3ce4ce -SIZE (mysql-boost-8.0.35.tar.gz) = 438111810 +TIMESTAMP = 1721978886 +SHA256 (mysql-boost-8.0.39.tar.gz) = 93208da9814116d81a384eae42120fd6c2ed507f1696064c510bc36047050241 +SIZE (mysql-boost-8.0.39.tar.gz) = 449265424 diff --git a/databases/mysql80-server/files/patch-CMakeLists.txt b/databases/mysql80-server/files/patch-CMakeLists.txt index 625e0bac005c..e62b36ad9f44 100644 --- a/databases/mysql80-server/files/patch-CMakeLists.txt +++ b/databases/mysql80-server/files/patch-CMakeLists.txt @@ -1,95 +1,88 @@ ---- CMakeLists.txt.orig 2022-07-06 21:36:34 UTC +--- CMakeLists.txt.orig 2024-07-12 19:15:25 UTC +++ CMakeLists.txt -@@ -1819,7 +1819,7 @@ IF(LINUX AND KNOWN_CUSTOM_LIBRARIES) +@@ -1848,7 +1848,7 @@ IF(WITH_AUTHENTICATION_LDAP) 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) +@@ -1897,6 +1897,7 @@ ENDIF() ENDIF() ENDIF() +IF(NOT WITHOUT_TOOLS) # Add system/bundled editline. MYSQL_CHECK_EDITLINE() SET(EDITLINE_WARN_GIVEN) -@@ -1878,7 +1879,9 @@ IF(EDITLINE_WARN_GIVEN) +@@ -1907,7 +1908,9 @@ ENDIF() "You can use -DWITH_EDITLINE=bundled instead." ) ENDIF() +ENDIF(NOT WITHOUT_TOOLS) +IF(NOT WITHOUT_SERVER) # Add libevent MYSQL_CHECK_LIBEVENT() - SET(LIBEVENT_WARN_GIVEN) -@@ -1889,6 +1892,7 @@ IF(LIBEVENT_WARN_GIVEN) + UNSET(LIBEVENT_WARN_GIVEN) +@@ -1918,6 +1921,7 @@ ENDIF() "You can use -DWITH_LIBEVENT=bundled instead." ) ENDIF() +ENDIF(NOT WITHOUT_SERVER) # Add lz4 library MYSQL_CHECK_LZ4() -@@ -2142,7 +2146,9 @@ ADD_CUSTOM_TARGET(clang_tidy_prerequisites) +@@ -2180,7 +2184,9 @@ ADD_DEPENDENCIES(clang_tidy_prerequisites GenError) ADD_DEPENDENCIES(clang_tidy_prerequisites protobuf_generated_all) ADD_DEPENDENCIES(clang_tidy_prerequisites GenError) -ADD_SUBDIRECTORY(include) +IF(NOT WITHOUT_CLIENTLIBS) + ADD_SUBDIRECTORY(include) +ENDIF(NOT WITHOUT_CLIENTLIBS) ADD_SUBDIRECTORY(strings) ADD_SUBDIRECTORY(vio) ADD_SUBDIRECTORY(mysys) -@@ -2187,12 +2193,15 @@ IF(WITH_UNIT_TESTS) +@@ -2230,12 +2236,15 @@ ENDIF() ADD_SUBDIRECTORY(unittest/mytap/t) ENDIF() -ADD_SUBDIRECTORY(client) +IF(NOT WITHOUT_TOOLS) + ADD_SUBDIRECTORY(client) +ENDIF(NOT WITHOUT_TOOLS) + ADD_SUBDIRECTORY(utilities) -ADD_SUBDIRECTORY(share) ADD_SUBDIRECTORY(libservices) IF(NOT WITHOUT_SERVER) + ADD_SUBDIRECTORY(share) ADD_SUBDIRECTORY(testclients) ADD_SUBDIRECTORY(sql) ENDIF() -@@ -2247,11 +2256,11 @@ ENDIF() +@@ -2305,11 +2314,11 @@ ADD_SUBDIRECTORY(scripts) # scripts/mysql_config depends on client and server targets loaded above. # It is referenced by some of the directories below, so we insert it here. ADD_SUBDIRECTORY(scripts) +ADD_SUBDIRECTORY(support-files) IF(NOT WITHOUT_SERVER) ADD_SUBDIRECTORY(mysql-test) ADD_SUBDIRECTORY(mysql-test/lib/My/SafeProcess) - ADD_SUBDIRECTORY(support-files) IF(WITH_INTERNAL) ADD_SUBDIRECTORY(internal) ENDIF() -@@ -2361,6 +2370,7 @@ IF(PACK_SEPARATE_COMPONENTS) - SET(CPACK_COMPONENTS_GROUPING IGNORE) +@@ -2336,7 +2345,7 @@ ENDIF() + INCLUDE(fastcov) ENDIF() +-IF(UNIX) +IF(FALSE) - IF(UNIX) - INSTALL(FILES - Docs/mysql.info -@@ -2395,6 +2405,7 @@ IF(NOT INSTALL_LAYOUT MATCHES "RPM") - PATTERN "sp-imp-spec.txt" EXCLUDE - PATTERN "README.build" EXCLUDE - ) -+ENDIF() + ADD_SUBDIRECTORY(man) ENDIF() - # Now that we're done with all ADD_SUBDIRECTORY and thus all feature tests, diff --git a/databases/mysql80-server/files/patch-client_CMakeLists.txt b/databases/mysql80-server/files/patch-client_CMakeLists.txt index 6a433a889e80..078e0172735c 100644 --- a/databases/mysql80-server/files/patch-client_CMakeLists.txt +++ b/databases/mysql80-server/files/patch-client_CMakeLists.txt @@ -1,70 +1,70 @@ ---- client/CMakeLists.txt.orig 2021-09-28 11:46:34 UTC +--- client/CMakeLists.txt.orig 2024-07-12 19:15:25 UTC +++ client/CMakeLists.txt -@@ -28,10 +28,13 @@ DISABLE_MISSING_PROFILE_WARNING() +@@ -29,10 +29,13 @@ ADD_SUBDIRECTORY(base) ## Subdirectory with common client code. ADD_SUBDIRECTORY(base) ## Subdirectory for mysqlpump code. +IF(WITHOUT_SERVER) ADD_SUBDIRECTORY(dump) ## Subdirectory for mysql_migrate_keyring code. ADD_SUBDIRECTORY(migrate_keyring) +ENDIF() +IF(NOT WITHOUT_CLIENTLIBS) INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_SOURCE_DIR}/include ) -@@ -47,6 +50,7 @@ MYSQL_ADD_EXECUTABLE(mysql +@@ -48,6 +51,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 -@@ -55,6 +59,7 @@ IF(NOT_WITHOUT_SERVER) +@@ -56,6 +60,7 @@ ENDIF() ) ENDIF() +IF(NOT WITHOUT_SERVER) MYSQL_ADD_EXECUTABLE(mysqltest mysqltest.cc mysqltest/error_names.cc -@@ -71,6 +76,9 @@ MYSQL_ADD_EXECUTABLE(mysqltest +@@ -72,6 +77,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 -@@ -250,7 +258,9 @@ ENDIF() +@@ -276,7 +284,9 @@ TARGET_INCLUDE_DIRECTORIES(mysqlbinlog PRIVATE ${CMAKE TARGET_COMPILE_DEFINITIONS(mysqlbinlog PRIVATE DISABLE_PSI_MUTEX) TARGET_INCLUDE_DIRECTORIES(mysqlbinlog PRIVATE ${CMAKE_SOURCE_DIR}/sql) +ENDIF() +IF(WITHOUT_SERVER) MYSQL_ADD_EXECUTABLE(mysqladmin mysqladmin.cc multi_factor_passwordopt-vars.cc -@@ -265,6 +275,9 @@ MYSQL_ADD_EXECUTABLE(mysql_config_editor +@@ -291,6 +301,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 -@@ -275,6 +288,7 @@ MYSQL_ADD_EXECUTABLE(mysql_ssl_rsa_setup +@@ -301,6 +314,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/". IF(WIN32) diff --git a/databases/mysql80-server/files/patch-cmake_install_layout.cmake b/databases/mysql80-server/files/patch-cmake_install__layout.cmake similarity index 89% rename from databases/mysql80-server/files/patch-cmake_install_layout.cmake rename to databases/mysql80-server/files/patch-cmake_install__layout.cmake index 927729ddd20b..ad6f0b29d6d1 100644 --- a/databases/mysql80-server/files/patch-cmake_install_layout.cmake +++ b/databases/mysql80-server/files/patch-cmake_install__layout.cmake @@ -1,95 +1,95 @@ ---- cmake/install_layout.cmake.orig 2019-12-09 19:53:17 UTC +--- cmake/install_layout.cmake.orig 2024-07-12 19:15:25 UTC +++ cmake/install_layout.cmake -@@ -41,6 +41,10 @@ +@@ -42,6 +42,10 @@ # Build with prefix=/usr/local/mysql, create tarball with install prefix="." # and relative links. # +# FREEBSD +# Build with prefix=/usr/local, create tarball with install prefix="." +# and relative links. +# # To force a directory layout, use -DINSTALL_LAYOUT=. # # The default is STANDALONE. -@@ -80,7 +84,7 @@ IF(NOT INSTALL_LAYOUT) +@@ -81,7 +85,7 @@ SET(INSTALL_LAYOUT "${DEFAULT_INSTALL_LAYOUT}" ENDIF() SET(INSTALL_LAYOUT "${DEFAULT_INSTALL_LAYOUT}" - CACHE STRING "Installation directory layout. Options are: TARGZ (as in tar.gz installer), STANDALONE, RPM, DEB, SVR4" + CACHE STRING "Installation directory layout. Options are: TARGZ (as in tar.gz installer), STANDALONE, FREEBSD, RPM, DEB, SVR4" ) IF(UNIX) -@@ -98,7 +102,7 @@ IF(UNIX) +@@ -99,7 +103,7 @@ IF(UNIX) CACHE PATH "install prefix" FORCE) ENDIF() SET(VALID_INSTALL_LAYOUTS - "RPM" "DEB" "SVR4" "TARGZ" "STANDALONE") + "RPM" "DEB" "SVR4" "TARGZ" "FREEBSD" "STANDALONE") LIST(FIND VALID_INSTALL_LAYOUTS "${INSTALL_LAYOUT}" ind) IF(ind EQUAL -1) MESSAGE(FATAL_ERROR "Invalid INSTALL_LAYOUT parameter:${INSTALL_LAYOUT}." -@@ -167,6 +171,32 @@ SET(INSTALL_MYSQLKEYRINGDIR_STANDALONE "keyring") +@@ -168,6 +172,32 @@ SET(INSTALL_SECURE_FILE_PRIVDIR_STANDALONE ${secure_fi SET(INSTALL_SECURE_FILE_PRIVDIR_STANDALONE ${secure_file_priv_path}) # +# FREEBSD layout +# +SET(INSTALL_BINDIR_FREEBSD "bin") +SET(INSTALL_SBINDIR_FREEBSD "bin") +# +SET(INSTALL_LIBDIR_FREEBSD "lib") +SET(INSTALL_PRIV_LIBDIR_FREEBSD "lib/private") +SET(INSTALL_PLUGINDIR_FREEBSD "lib/plugin") +# +SET(INSTALL_INCLUDEDIR_FREEBSD "include") +# +SET(INSTALL_DOCDIR_FREEBSD "docs") +SET(INSTALL_DOCREADMEDIR_FREEBSD ".") +SET(INSTALL_MANDIR_FREEBSD "man") +SET(INSTALL_INFODIR_FREEBSD "docs") +# +SET(INSTALL_SHAREDIR_FREEBSD "share") +SET(INSTALL_MYSQLSHAREDIR_FREEBSD "share") +SET(INSTALL_MYSQLTESTDIR_FREEBSD "mysql-test") +SET(INSTALL_SUPPORTFILESDIR_FREEBSD "support-files") +# +SET(INSTALL_MYSQLDATADIR_FREEBSD "data") +SET(INSTALL_MYSQLKEYRINGDIR_FREEBSD "keyring") +SET(INSTALL_SECURE_FILE_PRIVDIR_FREEBSD ${secure_file_priv_path}) + +# # TARGZ layout # SET(INSTALL_BINDIR_TARGZ "bin") -@@ -361,7 +391,7 @@ ENDIF() +@@ -362,7 +392,7 @@ SET(ROUTER_INSTALL_LAYOUT "${DEFAULT_ROUTER_INSTALL_LA SET(ROUTER_INSTALL_LAYOUT "${DEFAULT_ROUTER_INSTALL_LAYOUT}" CACHE STRING - "Installation directory layout. Options are: STANDALONE RPM DEB SVR4 TARGZ") + "Installation directory layout. Options are: STANDALONE FREEBSD RPM DEB SVR4 TARGZ") # If we are shared STANDALONE with the the server, we shouldn't write # into the server's data/ as that would create a "schemadir" in -@@ -405,6 +435,21 @@ FOREACH(var +@@ -406,6 +436,21 @@ ENDFOREACH() ) SET(ROUTER_INSTALL_${var}DIR_TARGZ ${ROUTER_INSTALL_${var}DIR_STANDALONE}) ENDFOREACH() + +# +# FreeBSD layout +# +SET(ROUTER_INSTALL_CONFIGDIR_FREEBSD "/usr/local/etc/mysqlrouter") +SET(ROUTER_INSTALL_DATADIR_FREEBSD "/var/db/mysqlrouter") +SET(ROUTER_INSTALL_LOGDIR_FREEBSD "/var/log/mysqlrouter") +SET(ROUTER_INSTALL_RUNTIMEDIR_FREEBSD "/var/run/mysqlrouter") + +SET(ROUTER_INSTALL_BINDIR_FREEBSD "bin") +SET(ROUTER_INSTALL_LIBDIR_FREEBSD "lib/mysql") +SET(ROUTER_INSTALL_PLUGINDIR_FREEBSD "lib/mysql/mysqlrouter") +SET(ROUTER_INSTALL_LOGROTATEDIR_FREEBSD "etc/logrotate.d") +SET(ROUTER_INSTALL_LOGROTATEFILE_FREEBSD "mysqlrouter") +SET(ROUTER_INSTALL_DOCDIR_FREEBSD "share/mysqlrouter/docs") FOREACH(var LOGROTATE diff --git a/databases/mysql80-server/files/patch-cmake_os_FreeBSD.cmake b/databases/mysql80-server/files/patch-cmake_os_FreeBSD.cmake index 90629de01287..fdca297d4f0e 100644 --- a/databases/mysql80-server/files/patch-cmake_os_FreeBSD.cmake +++ b/databases/mysql80-server/files/patch-cmake_os_FreeBSD.cmake @@ -1,25 +1,25 @@ ---- cmake/os/FreeBSD.cmake.orig 2021-12-17 16:07:27 UTC +--- cmake/os/FreeBSD.cmake.orig 2024-07-12 19:15:25 UTC +++ cmake/os/FreeBSD.cmake -@@ -48,8 +48,20 @@ IF(NOT FORCE_UNSUPPORTED_COMPILER) +@@ -49,8 +49,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!") + CHECK_C_SOURCE_RUNS(" + int main() + { + return (__clang_major__ >= 4); + }" I386_ATOMIC_BUILTINS) + IF((CMAKE_SYSTEM_PROCESSOR MATCHES "i386") AND (NOT I386_ATOMIC_BUILTINS)) + SET(HAVE_GCC_ATOMIC_BUILTINS CACHE INTERNAL "") + ENDIF() + ELSEIF(CMAKE_COMPILER_IS_GNUCC) + EXECUTE_PROCESS(COMMAND ${CMAKE_C_COMPILER} -dumpversion + OUTPUT_VARIABLE GCC_VERSION) + IF(GCC_VERSION VERSION_LESS 4.4) + MESSAGE(FATAL_ERROR "GCC 4.4 or newer is required!") + ENDIF() ENDIF() ENDIF() diff --git a/databases/mysql80-server/files/patch-cmake_plugin.cmake b/databases/mysql80-server/files/patch-cmake_plugin.cmake index 874c450a4ef2..f2ddbb6996e9 100644 --- a/databases/mysql80-server/files/patch-cmake_plugin.cmake +++ b/databases/mysql80-server/files/patch-cmake_plugin.cmake @@ -1,27 +1,27 @@ ---- cmake/plugin.cmake.orig 2021-12-17 16:07:27 UTC +--- cmake/plugin.cmake.orig 2024-07-12 19:15:25 UTC +++ cmake/plugin.cmake -@@ -247,15 +247,15 @@ MACRO(MYSQL_ADD_PLUGIN plugin_arg) +@@ -274,15 +274,15 @@ MACRO(MYSQL_ADD_PLUGIN plugin_arg) # For testing purposes, we need # <...>/lib/plugin/debug/authentication_ldap_sasl_client.so - IF(ARG_CLIENT_ONLY) - INSTALL_DEBUG_TARGET(${target} - DESTINATION ${INSTALL_PLUGINDIR}/debug - COMPONENT Test) - ELSE() - INSTALL_DEBUG_TARGET(${target} - DESTINATION ${INSTALL_PLUGINDIR}/debug - COMPONENT ${INSTALL_COMPONENT}) - ENDIF() +# IF(ARG_CLIENT_ONLY) +# INSTALL_DEBUG_TARGET(${target} +# DESTINATION ${INSTALL_PLUGINDIR}/debug +# COMPONENT Test) +# ELSE() +# INSTALL_DEBUG_TARGET(${target} +# DESTINATION ${INSTALL_PLUGINDIR}/debug +# COMPONENT ${INSTALL_COMPONENT}) +# ENDIF() 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 e7688d6e50ad..90a815864253 100644 --- a/databases/mysql80-server/files/patch-cmake_ssl.cmake +++ b/databases/mysql80-server/files/patch-cmake_ssl.cmake @@ -1,23 +1,23 @@ ---- cmake/ssl.cmake.orig 2022-07-06 21:36:34 UTC +--- cmake/ssl.cmake.orig 2024-07-12 19:15:25 UTC +++ cmake/ssl.cmake -@@ -142,7 +142,7 @@ MACRO(FIND_OPENSSL_VERSION) +@@ -143,7 +143,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) +@@ -381,8 +381,9 @@ MACRO (MYSQL_CHECK_SSL) "Not a supported openssl version in WITH_SSL=${WITH_SSL}.") ENDIF() - 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 diff --git a/databases/mysql80-server/files/patch-extra_abseil_abseil-cpp-20230802.1_absl_time_internal_cctz_src_time__zone__format.cc b/databases/mysql80-server/files/patch-extra_abseil_abseil-cpp-20230802.1_absl_time_internal_cctz_src_time__zone__format.cc new file mode 100644 index 000000000000..18a4ff596431 --- /dev/null +++ b/databases/mysql80-server/files/patch-extra_abseil_abseil-cpp-20230802.1_absl_time_internal_cctz_src_time__zone__format.cc @@ -0,0 +1,11 @@ +--- extra/abseil/abseil-cpp-20230802.1/absl/time/internal/cctz/src/time_zone_format.cc.orig 2024-07-26 08:50:41 UTC ++++ extra/abseil/abseil-cpp-20230802.1/absl/time/internal/cctz/src/time_zone_format.cc +@@ -19,7 +19,7 @@ + #endif + + #if defined(HAS_STRPTIME) && HAS_STRPTIME +-#if !defined(_XOPEN_SOURCE) && !defined(__OpenBSD__) ++#if !defined(_XOPEN_SOURCE) && !defined(__FreeBSD__) && !defined(__OpenBSD__) + #define _XOPEN_SOURCE 500 // Exposes definitions for SUSv2 (UNIX 98). + #endif + #endif diff --git a/databases/mysql80-server/files/patch-include_dh__ecdh__config.h b/databases/mysql80-server/files/patch-include_dh__ecdh__config.h index a33067bbd562..36004500b720 100644 --- a/databases/mysql80-server/files/patch-include_dh__ecdh__config.h +++ b/databases/mysql80-server/files/patch-include_dh__ecdh__config.h @@ -1,63 +1,63 @@ ---- include/dh_ecdh_config.h.orig 2023-12-03 10:42:56 UTC +--- include/dh_ecdh_config.h.orig 2024-07-12 19:15:25 UTC +++ include/dh_ecdh_config.h -@@ -38,7 +38,7 @@ +@@ -39,7 +39,7 @@ namespace { #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) { +@@ -258,6 +258,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) { +@@ -276,6 +277,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__compare.h b/databases/mysql80-server/files/patch-include_my__compare.h index 83e2c6f371ca..4f0fa369d51c 100644 --- a/databases/mysql80-server/files/patch-include_my__compare.h +++ b/databases/mysql80-server/files/patch-include_my__compare.h @@ -1,11 +1,11 @@ ---- include/my_compare.h.orig 2019-09-20 08:30:51 UTC +--- include/my_compare.h.orig 2024-07-12 19:15:25 UTC +++ include/my_compare.h -@@ -49,7 +49,7 @@ +@@ -50,7 +50,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-server/files/patch-include_my__stacktrace.h b/databases/mysql80-server/files/patch-include_my__stacktrace.h index 1654014bd77b..8ae534d73579 100644 --- a/databases/mysql80-server/files/patch-include_my__stacktrace.h +++ b/databases/mysql80-server/files/patch-include_my__stacktrace.h @@ -1,11 +1,11 @@ ---- include/my_stacktrace.h.orig 2021-12-17 16:07:27 UTC +--- include/my_stacktrace.h.orig 2024-07-12 19:15:25 UTC +++ include/my_stacktrace.h -@@ -43,7 +43,7 @@ +@@ -44,7 +44,7 @@ HAVE_BACKTRACE - Linux, FreeBSD, OSX, Solaris _WIN32 - Windows */ -#if defined(HAVE_BACKTRACE) || defined(_WIN32) +#if (defined(HAVE_BACKTRACE) || defined(_WIN32)) && (defined(__aarch64__) || defined(__amd64__) || defined(__i386__)) #define HAVE_STACKTRACE 1 void my_init_stacktrace(); void my_print_stacktrace(const uchar *stack_bottom, ulong thread_stack); 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 56af9be42579..8d23309df41c 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,15 +1,15 @@ ---- include/my_thread_os_id.h.orig 2019-09-20 08:30:51 UTC +--- include/my_thread_os_id.h.orig 2024-07-12 19:15:25 UTC +++ include/my_thread_os_id.h -@@ -84,8 +84,12 @@ static inline my_thread_os_id_t my_thread_os_id() { +@@ -85,8 +85,12 @@ static inline my_thread_os_id_t my_thread_os_id() { return pthread_getthreadid_np(); #else #ifdef HAVE_INTEGER_PTHREAD_SELF +# ifdef __DragonFly__ + return syscall(SYS_lwp_gettid); +# else /* Unknown platform, fallback. */ return pthread_self(); +# endif #else /* Feature not available. */ return 0; diff --git a/databases/mysql80-server/files/patch-include_myisam.h b/databases/mysql80-server/files/patch-include_myisam.h index 311c935fc115..6243d636a096 100644 --- a/databases/mysql80-server/files/patch-include_myisam.h +++ b/databases/mysql80-server/files/patch-include_myisam.h @@ -1,11 +1,11 @@ ---- include/myisam.h.orig 2021-12-17 16:07:27 UTC +--- include/myisam.h.orig 2024-07-12 19:15:25 UTC +++ include/myisam.h -@@ -60,7 +60,7 @@ +@@ -61,7 +61,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-server/files/patch-libmysql_CMakeLists.txt b/databases/mysql80-server/files/patch-libmysql_CMakeLists.txt index 44e1979f8075..d390dd31f287 100644 --- a/databases/mysql80-server/files/patch-libmysql_CMakeLists.txt +++ b/databases/mysql80-server/files/patch-libmysql_CMakeLists.txt @@ -1,68 +1,68 @@ ---- libmysql/CMakeLists.txt.orig 2021-12-17 16:07:27 UTC +--- libmysql/CMakeLists.txt.orig 2024-07-12 19:15:25 UTC +++ libmysql/CMakeLists.txt -@@ -198,6 +198,11 @@ IF (WIN32 AND OPENSSL_APPLINK_C) +@@ -205,6 +205,11 @@ ENDIF() ) 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. -@@ -271,8 +276,15 @@ IF(WIN32) +@@ -281,8 +286,15 @@ ENDIF() LIST(APPEND LIBS_TO_MERGE auth_win_client) ENDIF() -# 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) +ELSE(WITHOUT_CLIENTLIBS) + # LDAP authentication SASL client plugin + MESSAGE(STATUS "Creating LDAP authentication SASL client library.") + ADD_SUBDIRECTORY(authentication_ldap) # FIDO authentication client plugin ADD_SUBDIRECTORY(authentication_fido) -@@ -288,6 +300,7 @@ MERGE_CONVENIENCE_LIBRARIES(mysqlclient ${LIBS_TO_MERG +@@ -298,6 +310,7 @@ MERGE_CONVENIENCE_LIBRARIES(mysqlclient ${LIBS_TO_MERG COMPONENT Development LINK_LIBRARIES ${LIBS_TO_LINK} ) +ENDIF(WITHOUT_CLIENTLIBS) # Visual Studio users need debug static library for debug projects IF(MSVC) -@@ -334,17 +347,27 @@ ENDIF() +@@ -344,17 +357,27 @@ ENDIF() # 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 LINK_LIBRARIES ${LIBS_TO_LINK} ${UNIX_OUTPUT_NAME} ${UNIX_SOVERSION} ${UNIX_VERSION} ) +ENDIF(WITHOUT_CLIENTLIBS) # 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 95610f261f3a..58112f3bffa8 100644 --- a/databases/mysql80-server/files/patch-libservices_CMakeLists.txt +++ b/databases/mysql80-server/files/patch-libservices_CMakeLists.txt @@ -1,12 +1,12 @@ ---- libservices/CMakeLists.txt.orig 2021-12-17 16:07:27 UTC +--- libservices/CMakeLists.txt.orig 2024-07-12 19:15:25 UTC +++ libservices/CMakeLists.txt -@@ -47,7 +47,9 @@ SET(MYSQLSERVICES_SOURCES +@@ -48,7 +48,9 @@ ADD_LIBRARY(mysqlservices STATIC ${MYSQLSERVICES_SOURC plugin_registry_service.c) ADD_LIBRARY(mysqlservices STATIC ${MYSQLSERVICES_SOURCES}) +IF(FALSE) IF(INSTALL_STATIC_LIBRARIES) INSTALL(TARGETS mysqlservices 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 9c95ebf65a2b..647013ffdd11 100644 --- a/databases/mysql80-server/files/patch-man_CMakeLists.txt +++ b/databases/mysql80-server/files/patch-man_CMakeLists.txt @@ -1,76 +1,76 @@ ---- man/CMakeLists.txt.orig 2021-12-17 16:07:27 UTC +--- man/CMakeLists.txt.orig 2024-07-12 19:15:25 UTC +++ man/CMakeLists.txt -@@ -23,26 +23,14 @@ +@@ -24,26 +24,14 @@ SET(MAN1 # Copy man pages 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_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 mysqldump.1 - mysqldumpslow.1 mysqlimport.1 mysqlman.1 mysqlpump.1 -@@ -52,13 +40,23 @@ SET(MAN1 +@@ -53,13 +41,23 @@ SET(MAN1 zlib_decompress.1 ) -IF(NOT WITH_SYSTEMD) - LIST(APPEND MAN1 - mysql.server.1 - mysqld_multi.1 - mysqld_safe.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 ) -ENDIF() SET(MAN1_NDB ndb_blob_tool.1 -@@ -103,8 +101,14 @@ SET(MAN8_NDB +@@ -106,8 +104,14 @@ 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_my__default.cc b/databases/mysql80-server/files/patch-mysys_my__default.cc index 87b603301f41..1781e77e185e 100644 --- a/databases/mysql80-server/files/patch-mysys_my__default.cc +++ b/databases/mysql80-server/files/patch-mysys_my__default.cc @@ -1,62 +1,62 @@ ---- mysys/my_default.cc.orig 2021-12-17 16:07:27 UTC +--- mysys/my_default.cc.orig 2024-07-12 19:15:25 UTC +++ mysys/my_default.cc -@@ -204,7 +204,7 @@ bool no_defaults = false; +@@ -205,7 +205,7 @@ bool no_defaults = false; /* 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 = nullptr; -@@ -922,6 +922,14 @@ static int search_default_file_with_ext(Process_option +@@ -923,6 +923,14 @@ static int search_default_file_with_ext(Process_option 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 (true) { auto fileline = mysql_file_getline(buff, sizeof(buff), fp, is_login_file); char *linebuff = fileline.get(); -@@ -1311,7 +1319,8 @@ void my_print_default_files(const char *conf_file) { +@@ -1312,7 +1320,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); } } } -@@ -1651,14 +1660,9 @@ static const char **init_default_directories(MEM_ROOT +@@ -1652,14 +1661,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 */ - #endif if ((env = getenv("MYSQL_HOME"))) errors += add_directory(alloc, env, dirs); -@@ -1723,7 +1727,7 @@ int check_file_permissions(const char *file_name, bool +@@ -1724,7 +1728,7 @@ int check_file_permissions(const char *file_name, bool #if !defined(_WIN32) MY_STAT stat_info; - 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 index e4b12bfc09a0..591a5be0155d 100644 --- a/databases/mysql80-server/files/patch-mysys_my__kdf.cc +++ b/databases/mysql80-server/files/patch-mysys_my__kdf.cc @@ -1,20 +1,20 @@ ---- mysys/my_kdf.cc.orig 2022-12-11 13:12:02 UTC +--- mysys/my_kdf.cc.orig 2024-07-12 19:15:25 UTC +++ mysys/my_kdf.cc -@@ -56,7 +56,7 @@ int create_kdf_key(const unsigned char *key, const uns +@@ -57,7 +57,7 @@ int create_kdf_key(const unsigned char *key, const uns std::unique_ptr 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(kdf_options); #else return 1; -@@ -71,7 +71,7 @@ int create_kdf_key(const unsigned char *key, const uns +@@ -72,7 +72,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 *kdf_options) { kdf_options_ = {kdf_options}; } 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 4f1313993d21..26e3a7b452d2 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,11 +1,11 @@ ---- plugin/password_validation/validate_password.cc.orig 2019-09-20 08:30:51 UTC +--- plugin/password_validation/validate_password.cc.orig 2024-07-12 19:15:25 UTC +++ plugin/password_validation/validate_password.cc -@@ -25,6 +25,8 @@ +@@ -26,6 +26,8 @@ #include #include #include +/* solve clash between libc++ bitset::test() and test macro from my_global.h */ +#undef test #include #include #include diff --git a/databases/mysql80-server/files/patch-plugin_x_CMakeLists.txt b/databases/mysql80-server/files/patch-plugin_x_CMakeLists.txt index 58cb6a7922b1..92d76ec9dc25 100644 --- a/databases/mysql80-server/files/patch-plugin_x_CMakeLists.txt +++ b/databases/mysql80-server/files/patch-plugin_x_CMakeLists.txt @@ -1,11 +1,11 @@ ---- plugin/x/CMakeLists.txt.orig 2021-12-17 16:07:27 UTC +--- plugin/x/CMakeLists.txt.orig 2024-07-12 19:15:25 UTC +++ plugin/x/CMakeLists.txt -@@ -77,6 +77,8 @@ INCLUDE_DIRECTORIES( +@@ -75,6 +75,8 @@ INCLUDE_DIRECTORIES( ${MYSQLX_GENERATE_DIR} ${MYSQLX_PROTOCOL_INCLUDE_DIR} ${MYSQLX_CLIENT_INCLUDE_DIR} + ${OPENSSL_INCLUDE_DIR} + ${BOOST_INCLUDE_DIR} ) - MY_INCLUDE_SYSTEM_DIRECTORIES(LIBEVENT) + ADD_COMPILE_FLAGS(${XPLUGIN_SRC} diff --git a/databases/mysql80-server/files/patch-plugin_x_client_authentication_sha256__scramble__generator.cc b/databases/mysql80-server/files/patch-plugin_x_client_authentication_sha256__scramble__generator.cc index 0e894219bb8d..9aafdd73d286 100644 --- a/databases/mysql80-server/files/patch-plugin_x_client_authentication_sha256__scramble__generator.cc +++ b/databases/mysql80-server/files/patch-plugin_x_client_authentication_sha256__scramble__generator.cc @@ -1,11 +1,11 @@ ---- plugin/x/client/authentication/sha256_scramble_generator.cc.orig 2019-09-20 08:30:51 UTC +--- plugin/x/client/authentication/sha256_scramble_generator.cc.orig 2024-07-12 19:15:25 UTC +++ plugin/x/client/authentication/sha256_scramble_generator.cc -@@ -97,7 +97,7 @@ bool SHA256_digest::retrieve_digest(unsigned char *dig +@@ -98,7 +98,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 +#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-plugin_x_configure.cmake b/databases/mysql80-server/files/patch-plugin_x_configure.cmake index 3d56059d869a..d14343e6af54 100644 --- a/databases/mysql80-server/files/patch-plugin_x_configure.cmake +++ b/databases/mysql80-server/files/patch-plugin_x_configure.cmake @@ -1,15 +1,15 @@ ---- plugin/x/configure.cmake.orig 2019-09-20 08:30:51 UTC +--- plugin/x/configure.cmake.orig 2024-07-12 19:15:25 UTC +++ plugin/x/configure.cmake -@@ -45,6 +45,7 @@ CONFIGURE_FILE(${MYSQLX_PROJECT_DIR}/src/config/mysqlx +@@ -46,6 +46,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) -@@ -56,3 +57,4 @@ INSTALL(FILES ${MYSQLX_GENERATE_DIR}/mysqlx_ername.h +@@ -57,3 +58,4 @@ INSTALL(FILES ${MYSQLX_GENERATE_DIR}/mysqlx_version.h INSTALL(FILES ${MYSQLX_GENERATE_DIR}/mysqlx_version.h DESTINATION ${INSTALL_INCLUDEDIR} COMPONENT Development) +ENDIF() 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 similarity index 82% rename from databases/mysql80-server/files/patch-router_src_harness_include_mysql_harness_net_ts_impl_kqueue_io_service.h rename to databases/mysql80-server/files/patch-router_src_harness_include_mysql_harness_net__ts_impl_kqueue__io__service.h index 46d03cb9db69..e34d5fd1f5b3 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 @@ -1,13 +1,13 @@ ---- router/src/harness/include/mysql/harness/net_ts/impl/kqueue_io_service.h.orig 2020-09-23 12:37:48 UTC +--- router/src/harness/include/mysql/harness/net_ts/impl/kqueue_io_service.h.orig 2024-07-12 19:15:25 UTC +++ router/src/harness/include/mysql/harness/net_ts/impl/kqueue_io_service.h -@@ -190,8 +190,8 @@ +@@ -191,8 +191,8 @@ class kqueue_io_service : public IoServiceBase { auto secs = std::chrono::duration_cast(timeout); timeout -= secs; - ts = {secs.count(), - std::chrono::duration_cast(timeout) + ts = {(time_t)secs.count(), + (long)std::chrono::duration_cast(timeout) .count()}; p_ts = &ts; diff --git a/databases/mysql80-server/files/patch-router_src_harness_include_mysql_harness_net__ts_internet.h b/databases/mysql80-server/files/patch-router_src_harness_include_mysql_harness_net__ts_internet.h index 015c6839ada0..b21a17e26ceb 100644 --- a/databases/mysql80-server/files/patch-router_src_harness_include_mysql_harness_net__ts_internet.h +++ b/databases/mysql80-server/files/patch-router_src_harness_include_mysql_harness_net__ts_internet.h @@ -1,10 +1,10 @@ ---- router/src/harness/include/mysql/harness/net_ts/internet.h.orig 2020-11-09 00:30:01 UTC +--- router/src/harness/include/mysql/harness/net_ts/internet.h.orig 2024-07-12 19:15:25 UTC +++ router/src/harness/include/mysql/harness/net_ts/internet.h -@@ -43,6 +43,7 @@ +@@ -44,6 +44,7 @@ #include // inet_ntop #include // getaddrinfo #include // in_addr_t +#include // u_int32_t #include // in6_addr_t #include // TCP_NODELAY #include // ioctl 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 65fe02456eec..a6ed42ed370c 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,24 +1,24 @@ ---- router/src/harness/src/CMakeLists.txt.orig 2021-12-17 16:07:27 UTC +--- router/src/harness/src/CMakeLists.txt.orig 2024-07-12 19:15:25 UTC +++ router/src/harness/src/CMakeLists.txt -@@ -212,7 +212,6 @@ ELSE() +@@ -222,7 +222,6 @@ ELSE() INSTALL(TARGETS harness-library LIBRARY DESTINATION ${ROUTER_INSTALL_LIBDIR} COMPONENT Router - NAMELINK_SKIP ) ENDIF() -@@ -243,7 +242,6 @@ INSTALL(TARGETS harness_stdx +@@ -254,7 +253,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 - NAMELINK_SKIP ) ## harness_tls -@@ -284,5 +282,4 @@ INSTALL(TARGETS harness_tls +@@ -296,5 +294,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 - NAMELINK_SKIP ) 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 d4a5ef543b49..086ae42d589a 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 2021-12-17 16:07:27 UTC +--- router/src/harness/src/tls_client_context.cc.orig 2024-07-12 19:15:25 UTC +++ router/src/harness/src/tls_client_context.cc -@@ -61,7 +61,7 @@ stdx::expected TlsClientContext +@@ -66,7 +66,7 @@ stdx::expected TlsClientContext stdx::expected 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())) { 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 b1d818afe81a..e0919680da41 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,44 +1,44 @@ ---- router/src/harness/src/tls_context.cc.orig 2021-12-17 16:07:27 UTC +--- router/src/harness/src/tls_context.cc.orig 2024-07-12 19:15:25 UTC +++ router/src/harness/src/tls_context.cc -@@ -241,7 +241,7 @@ static int o11x_version(TlsVersion version) { +@@ -243,7 +243,7 @@ static 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 -@@ -272,9 +272,11 @@ stdx::expected TlsContext::vers +@@ -274,9 +274,11 @@ stdx::expected TlsContext::vers 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]]; -@@ -322,8 +324,10 @@ TlsVersion TlsContext::min_version() const { +@@ -324,8 +326,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: -@@ -382,7 +386,8 @@ TlsContext::InfoCallback TlsContext::info_callback() c +@@ -377,7 +381,8 @@ int TlsContext::security_level() const { } int TlsContext::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) return SSL_CTX_get_security_level(ssl_ctx_.get()); #else return 0; 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 5a63eba14103..42ac2720fc66 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 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 { +--- router/src/harness/src/tls_server_context.cc.orig 2024-07-12 19:15:25 UTC ++++ router/src/harness/src/tls_server_context.cc +@@ -475,7 +475,8 @@ int TlsServerContext::security_level() const { } 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) 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 d6d71414449d..c7e3ee370982 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,26 +1,26 @@ ---- router/src/http/src/CMakeLists.txt.orig 2021-12-17 16:07:27 UTC +--- router/src/http/src/CMakeLists.txt.orig 2024-07-12 19:15:25 UTC +++ router/src/http/src/CMakeLists.txt -@@ -58,7 +58,6 @@ INSTALL(TARGETS http_common +@@ -59,7 +59,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 - NAMELINK_SKIP ) ## split library code from the plugin to use them _passwd and tests -@@ -84,7 +83,6 @@ INSTALL(TARGETS http_auth_backend_lib +@@ -85,7 +84,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 - NAMELINK_SKIP ) TARGET_INCLUDE_DIRECTORIES(http_auth_backend_lib PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} -@@ -137,7 +135,6 @@ INSTALL(TARGETS http_auth_realm_lib +@@ -138,7 +136,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 - NAMELINK_SKIP ) ## the rpath for the bundled openssl ADD_INSTALL_RPATH_FOR_OPENSSL(http_auth_realm_lib) diff --git a/databases/mysql80-server/files/patch-router_src_io_src_CMakeLists.txt b/databases/mysql80-server/files/patch-router_src_io_src_CMakeLists.txt index 474f473e1893..5eb483b9ff42 100644 --- a/databases/mysql80-server/files/patch-router_src_io_src_CMakeLists.txt +++ b/databases/mysql80-server/files/patch-router_src_io_src_CMakeLists.txt @@ -1,10 +1,10 @@ ---- router/src/io/src/CMakeLists.txt.orig 2020-09-23 12:37:48 UTC +--- router/src/io/src/CMakeLists.txt.orig 2024-07-12 19:15:25 UTC +++ router/src/io/src/CMakeLists.txt -@@ -47,7 +47,6 @@ INSTALL(TARGETS io_component +@@ -48,7 +48,6 @@ INSTALL(TARGETS io_component RUNTIME DESTINATION ${ROUTER_INSTALL_BINDIR} COMPONENT Router ARCHIVE DESTINATION ${ROUTER_INSTALL_LIBDIR} COMPONENT Router LIBRARY DESTINATION ${ROUTER_INSTALL_LIBDIR} COMPONENT Router - NAMELINK_SKIP ) GENERATE_EXPORT_HEADER(io_component 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 ae48964a591e..b0f94f76469d 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,10 +1,10 @@ ---- router/src/router/src/CMakeLists.txt.orig 2021-12-17 16:07:27 UTC +--- router/src/router/src/CMakeLists.txt.orig 2024-07-12 19:15:25 UTC +++ router/src/router/src/CMakeLists.txt -@@ -124,7 +124,6 @@ INSTALL(TARGETS router_lib +@@ -149,7 +149,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 - NAMELINK_SKIP ) MYSQL_ADD_EXECUTABLE(mysqlrouter_keyring diff --git a/databases/mysql80-server/files/patch-scripts_CMakeLists.txt b/databases/mysql80-server/files/patch-scripts_CMakeLists.txt index d927dbe6a864..030c420e64d8 100644 --- a/databases/mysql80-server/files/patch-scripts_CMakeLists.txt +++ b/databases/mysql80-server/files/patch-scripts_CMakeLists.txt @@ -1,52 +1,52 @@ ---- scripts/CMakeLists.txt.orig 2022-07-06 21:36:34 UTC +--- scripts/CMakeLists.txt.orig 2024-07-12 19:15:25 UTC +++ scripts/CMakeLists.txt -@@ -332,6 +332,8 @@ MACRO(EXTRACT_LINK_LIBRARIES target var) +@@ -347,6 +347,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() -@@ -405,7 +407,7 @@ ELSE() +@@ -420,7 +422,7 @@ ELSE() ${CMAKE_CURRENT_BINARY_DIR}/${PKGCONFIG_FILE} ESCAPE_QUOTES @ONLY) - IF(INSTALL_PKGCONFIGDIR) + IF(INSTALL_PKGCONFIGDIR AND NOT WITHOUT_CLIENTLIBS) MESSAGE(STATUS "INSTALL ${PKGCONFIG_FILE} ${INSTALL_PKGCONFIGDIR}") INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PKGCONFIG_FILE} -@@ -418,23 +420,28 @@ ELSE() +@@ -433,23 +435,28 @@ ELSE() # mysqld_safe used in mtr even for systemd platforms IF(WITH_SYSTEMD) SET(BIN_SCRIPTS - mysql_config mysqldumpslow mysqld_safe ) ELSE() SET(BIN_SCRIPTS - mysql_config mysqldumpslow mysqld_multi mysqld_safe ) ENDIF() + IF(NOT WITHOUT_CLIENTLIBS) + SET(BIN_SCRIPTS + ${BIN_SCRIPTS} + mysql_config + ) + ENDIF(NOT WITHOUT_CLIENTLIBS) + FOREACH(file ${BIN_SCRIPTS}) IF(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${file}.sh) CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/${file}.sh - ${CMAKE_CURRENT_BINARY_DIR}/${file} ESCAPE_QUOTES @ONLY + ${CMAKE_CURRENT_BINARY_DIR}/${file} @ONLY ) ELSEIF(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${file}.pl.in) CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/${file}.pl.in 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 56f6dfb3fbb7..ea242b2f6c1d 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 2019-09-20 08:30:51 UTC +--- sql/auth/sha2_password_common.cc.orig 2024-07-12 19:15:25 UTC +++ sql/auth/sha2_password_common.cc -@@ -101,7 +101,7 @@ bool SHA256_digest::retrieve_digest(unsigned char *dig +@@ -102,7 +102,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 +#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_auth_sql__authorization.cc b/databases/mysql80-server/files/patch-sql_auth_sql__authorization.cc index 4d35279882d5..675539ca0a5b 100644 --- a/databases/mysql80-server/files/patch-sql_auth_sql__authorization.cc +++ b/databases/mysql80-server/files/patch-sql_auth_sql__authorization.cc @@ -1,13 +1,13 @@ ---- sql/auth/sql_authorization.cc.orig 2023-03-16 17:22:37 UTC +--- sql/auth/sql_authorization.cc.orig 2024-07-12 19:15:25 UTC +++ sql/auth/sql_authorization.cc -@@ -7430,6 +7430,10 @@ bool operator==(const Role_id &a, const std::string &b +@@ -7445,6 +7445,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 &a, const std::string &b) { return a.first == b; } 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 8f5d99aa45b4..5007130ae1e8 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,32 +1,32 @@ ---- sql/conn_handler/socket_connection.cc.orig 2021-12-17 16:07:27 UTC +--- sql/conn_handler/socket_connection.cc.orig 2024-07-12 19:15:25 UTC +++ sql/conn_handler/socket_connection.cc -@@ -953,9 +953,11 @@ bool check_connection_refused_by_tcp_wrapper(MYSQL_SOC +@@ -961,9 +961,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); - fromhost(&req); + void (*my_fromhost) (void *) = (void (*)(void *)) fromhost; + my_fromhost(&req); - if (!hosts_access(&req)) { + int (*my_hosts_access) (void *) = (int (*) (void *)) hosts_access; + if (!my_hosts_access(&req)) { /* This may be stupid but refuse() includes an exit(0) which we surely don't want... -@@ -967,12 +969,13 @@ bool check_connection_refused_by_tcp_wrapper(MYSQL_SOC +@@ -975,12 +977,13 @@ bool check_connection_refused_by_tcp_wrapper(MYSQL_SOC This is unproblematic as TCP-wrapper is unix specific, anyway. */ + char *(*my_eval_client) (void *) = (char *(*) (void *)) eval_client; syslog(LOG_AUTH | LOG_WARNING, "refused connect from %s", - eval_client(&req)); + my_eval_client(&req)); #ifdef HAVE_LIBWRAP_PROTOTYPES // Some distros have patched tcpd.h to have proper prototypes - if (req.sink) (req.sink)(req.fd); + if (req.sink) ((void (*)(int)) (req.sink))(req.fd); #else // Some distros have not patched tcpd.h if (req.sink) ((void (*)(int))req.sink)(req.fd); diff --git a/databases/mysql80-server/files/patch-sql_mysqld.cc b/databases/mysql80-server/files/patch-sql_mysqld.cc index 484af751b704..efda4728b9cb 100644 --- a/databases/mysql80-server/files/patch-sql_mysqld.cc +++ b/databases/mysql80-server/files/patch-sql_mysqld.cc @@ -1,11 +1,11 @@ ---- sql/mysqld.cc.orig 2022-07-06 21:36:34 UTC +--- sql/mysqld.cc.orig 2024-07-12 19:15:25 UTC +++ sql/mysqld.cc -@@ -5299,7 +5299,7 @@ static int init_thread_environment() { +@@ -5381,7 +5381,7 @@ static PSI_memory_key key_memory_openssl = PSI_NOT_INS static PSI_memory_key key_memory_openssl = PSI_NOT_INSTRUMENTED; -#if 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 diff --git a/databases/mysql80-server/files/patch-sql_ssl__init__callback.cc b/databases/mysql80-server/files/patch-sql_ssl__init__callback.cc index 33f3d0645524..44c26ac5d54c 100644 --- a/databases/mysql80-server/files/patch-sql_ssl__init__callback.cc +++ b/databases/mysql80-server/files/patch-sql_ssl__init__callback.cc @@ -1,36 +1,36 @@ ---- sql/ssl_init_callback.cc.orig 2021-12-17 16:07:27 UTC +--- sql/ssl_init_callback.cc.orig 2024-07-12 19:15:25 UTC +++ sql/ssl_init_callback.cc -@@ -106,14 +106,14 @@ static Sys_var_charptr Sys_ssl_capath( +@@ -154,14 +154,14 @@ static Sys_var_charptr Sys_tls_version( 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( +@@ -242,14 +242,14 @@ static Sys_var_charptr Sys_admin_tls_version( 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 39f72484c0bd..8fd223982a93 100644 --- a/databases/mysql80-server/files/patch-sql_sys__vars.cc +++ b/databases/mysql80-server/files/patch-sql_sys__vars.cc @@ -1,29 +1,29 @@ ---- sql/sys_vars.cc.orig 2022-07-06 21:36:34 UTC +--- sql/sys_vars.cc.orig 2024-07-12 19:15:25 UTC +++ sql/sys_vars.cc -@@ -2039,7 +2039,7 @@ static Sys_var_ulong Sys_connect_timeout( +@@ -2058,7 +2058,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_information_schema_stats_expiry( "information_schema_stats_expiry", -@@ -3189,7 +3189,7 @@ static Sys_var_ulong Sys_net_read_timeout( +@@ -3214,7 +3214,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), - VALID_RANGE(1, LONG_TIMEOUT), DEFAULT(NET_READ_TIMEOUT), BLOCK_SIZE(1), + VALID_RANGE(1, INT_MAX32 / 1000), DEFAULT(NET_READ_TIMEOUT), BLOCK_SIZE(1), NO_MUTEX_GUARD, NOT_IN_BINLOG, ON_CHECK(nullptr), ON_UPDATE(fix_net_read_timeout)); -@@ -3210,7 +3210,7 @@ static Sys_var_ulong Sys_net_write_timeout( +@@ -3235,7 +3235,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), - VALID_RANGE(1, LONG_TIMEOUT), DEFAULT(NET_WRITE_TIMEOUT), BLOCK_SIZE(1), + VALID_RANGE(1, INT_MAX32 / 1000), DEFAULT(NET_WRITE_TIMEOUT), BLOCK_SIZE(1), NO_MUTEX_GUARD, NOT_IN_BINLOG, ON_CHECK(nullptr), ON_UPDATE(fix_net_write_timeout)); 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 ee591adb8697..6aaa0561920b 100644 --- a/databases/mysql80-server/files/patch-storage_innobase_include_srv0mon.h +++ b/databases/mysql80-server/files/patch-storage_innobase_include_srv0mon.h @@ -1,13 +1,13 @@ ---- storage/innobase/include/srv0mon.h.orig 2019-09-20 08:30:51 UTC +--- storage/innobase/include/srv0mon.h.orig 2024-07-12 19:15:25 UTC +++ storage/innobase/include/srv0mon.h -@@ -40,6 +40,10 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +@@ -41,6 +41,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 */ +#ifdef __DragonFly__ +/* The hack above doen't work for dragonfly, stdint.h already imported */ +#include +#endif #include diff --git a/databases/mysql80-server/files/patch-storage_innobase_include_ut0crc32.h b/databases/mysql80-server/files/patch-storage_innobase_include_ut0crc32.h index 8ecb999b0221..66d45254f0ab 100644 --- a/databases/mysql80-server/files/patch-storage_innobase_include_ut0crc32.h +++ b/databases/mysql80-server/files/patch-storage_innobase_include_ut0crc32.h @@ -1,12 +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 +--- storage/innobase/include/ut0crc32.h.orig 2024-07-12 19:15:25 UTC ++++ storage/innobase/include/ut0crc32.h +@@ -133,7 +133,9 @@ CRC32_DEFAULT #endif /* CRC32_ARM64 */ #ifdef CRC32_ARM64_DEFAULT +#ifndef __FreeBSD__ #include +#endif /* __FreeBSD__ */ #include #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 index fabd5664cf94..1a033524dbce 100644 --- a/databases/mysql80-server/files/patch-storage_innobase_ut_crc32.cc +++ b/databases/mysql80-server/files/patch-storage_innobase_ut_crc32.cc @@ -1,104 +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; } +--- storage/innobase/ut/crc32.cc.orig 2024-07-12 19:15:25 UTC ++++ storage/innobase/ut/crc32.cc +@@ -333,8 +333,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 +@@ -443,25 +460,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 +@@ -507,7 +538,11 @@ template } template #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)) +@@ -750,7 +785,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(0, data, len); -@@ -769,7 +808,11 @@ MY_ATTRIBUTE((flatten)) +@@ -770,7 +809,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(0, data, len); 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 4daceefef132..d14abac84d92 100644 --- a/databases/mysql80-server/files/patch-storage_myisam_mi__dynrec.cc +++ b/databases/mysql80-server/files/patch-storage_myisam_mi__dynrec.cc @@ -1,22 +1,22 @@ ---- storage/myisam/mi_dynrec.cc.orig 2019-09-20 08:30:51 UTC +--- storage/myisam/mi_dynrec.cc.orig 2024-07-12 19:15:25 UTC +++ storage/myisam/mi_dynrec.cc -@@ -85,17 +85,12 @@ bool mi_dynmap_file(MI_INFO *info, my_off_t size) { +@@ -86,17 +86,12 @@ bool mi_dynmap_file(MI_INFO *info, my_off_t size) { return true; } /* - 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( nullptr, (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 = nullptr; return true; diff --git a/databases/mysql80-server/files/patch-storage_temptable_include_temptable_lock_free_type.h b/databases/mysql80-server/files/patch-storage_temptable_include_temptable_lock__free__type.h similarity index 72% rename from databases/mysql80-server/files/patch-storage_temptable_include_temptable_lock_free_type.h rename to databases/mysql80-server/files/patch-storage_temptable_include_temptable_lock__free__type.h index a229da5b0adc..955b3f3a1523 100644 --- a/databases/mysql80-server/files/patch-storage_temptable_include_temptable_lock_free_type.h +++ b/databases/mysql80-server/files/patch-storage_temptable_include_temptable_lock__free__type.h @@ -1,17 +1,17 @@ ---- storage/temptable/include/temptable/lock_free_type.h.orig 2020-06-16 16:31:03 UTC +--- storage/temptable/include/temptable/lock_free_type.h.orig 2024-07-12 19:15:25 UTC +++ storage/temptable/include/temptable/lock_free_type.h -@@ -31,6 +31,14 @@ Lock-free type (selection) implementation. */ - +@@ -33,6 +33,14 @@ Lock-free type (selection) implementation. */ + #include "my_config.h" #include "storage/temptable/include/temptable/constants.h" +#if defined(__i386__) //&& defined(__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8) +/* Fix for clang setting __GCC_ATOMIC_LLONG_LOCK_FREE incorrectly for x86 + * https://llvm.org/bugs/show_bug.cgi?id=19355 + */ +#undef ATOMIC_LLONG_LOCK_FREE +#define ATOMIC_LLONG_LOCK_FREE 2 +#endif + namespace temptable { - /** Enum class describing alignment-requirements. */ + /** Clang has a bug which causes ATOMIC_LLONG_LOCK_FREE to be defined as 1 diff --git a/databases/mysql80-server/files/patch-support-files_CMakeLists.txt b/databases/mysql80-server/files/patch-support-files_CMakeLists.txt index 282a84437a0d..cb920d90e166 100644 --- a/databases/mysql80-server/files/patch-support-files_CMakeLists.txt +++ b/databases/mysql80-server/files/patch-support-files_CMakeLists.txt @@ -1,39 +1,39 @@ ---- support-files/CMakeLists.txt.orig 2020-09-23 12:37:48 UTC +--- support-files/CMakeLists.txt.orig 2024-07-12 19:15:25 UTC +++ support-files/CMakeLists.txt -@@ -24,8 +24,9 @@ IF(NOT UNIX) +@@ -25,8 +25,9 @@ ENDIF() RETURN() ENDIF() -INSTALL(FILES mysql.m4 - DESTINATION ${INSTALL_SHAREDIR}/aclocal COMPONENT Development) +IF(NOT WITHOUT_CLIENTLIBS) + INSTALL(FILES mysql.m4 DESTINATION ${INSTALL_SHAREDIR}/aclocal COMPONENT Development) +ENDIF(NOT WITHOUT_CLIENTLIBS) SET(localstatedir "${MYSQL_DATADIR}") -@@ -43,7 +44,7 @@ ENDIF() +@@ -44,7 +45,7 @@ CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/mysql-log-r CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/mysql-log-rotate.in ${CMAKE_CURRENT_BINARY_DIR}/mysql-log-rotate @ONLY) -IF(NOT WITH_SYSTEMD) +IF(NOT WITHOUT_SERVER) CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/mysql.server.sh ${CMAKE_CURRENT_BINARY_DIR}/mysql.server @ONLY ) -@@ -59,6 +60,7 @@ IF(NOT WITH_SYSTEMD) +@@ -60,6 +61,7 @@ ENDIF() ) ENDIF() +IF(NOT WITHOUT_SERVER) INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/mysql-log-rotate COMPONENT Server_Scripts DESTINATION ${INSTALL_SUPPORTFILESDIR} -@@ -66,6 +68,7 @@ INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/mysql-log-ro +@@ -67,6 +69,7 @@ INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/mysql-log-ro OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ ) +ENDIF() IF(WITH_ROUTER) - CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/mysqlrouter-log-rotate.in + IF(NOT WITH_SYSTEMD) diff --git a/databases/mysql80-server/files/patch-utilities_CMakeLists.txt b/databases/mysql80-server/files/patch-utilities_CMakeLists.txt index c68cd6aa532d..8498849ded13 100644 --- a/databases/mysql80-server/files/patch-utilities_CMakeLists.txt +++ b/databases/mysql80-server/files/patch-utilities_CMakeLists.txt @@ -1,79 +1,79 @@ ---- 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() +--- utilities/CMakeLists.txt.orig 2024-07-12 19:15:25 UTC ++++ utilities/CMakeLists.txt +@@ -25,13 +25,19 @@ MSVC_CPPCHECK_DISABLE() DISABLE_MISSING_PROFILE_WARNING() MSVC_CPPCHECK_DISABLE() -IF(NOT CMAKE_CROSSCOMPILING) +IF(WITHOUT_CLIENTLIBS) MYSQL_ADD_EXECUTABLE(comp_err comp_err.cc COMPONENT Test LINK_LIBRARIES mysys + SKIP_INSTALL) +ELSE(WITHOUT_CLIENTLIBS) + MYSQL_ADD_EXECUTABLE(comp_err + comp_err.cc + COMPONENT Test + LINK_LIBRARIES mysys ) -ENDIF() +ENDIF(WITHOUT_CLIENTLIBS) MYSQL_ADD_EXECUTABLE(comp_client_err comp_client_err.cc -@@ -113,10 +119,30 @@ MYSQL_ADD_EXECUTABLE(static_thread_local_test +@@ -114,10 +120,30 @@ MYSQL_ADD_EXECUTABLE(static_thread_local_test EXCLUDE_FROM_ALL ) +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 -@@ -131,12 +157,23 @@ ENDIF() +@@ -132,12 +158,23 @@ ENDIF() LINK_LIBRARIES ext::lz4 mysys ) ENDIF() +ENDIF(WITHOUT_CLIENTLIBS) +IF(WITHOUT_CLIENTLIBS) MYSQL_ADD_EXECUTABLE(zlib_decompress zlib_decompress.cc COMPONENT Server LINK_LIBRARIES ext::zlib mysys + SKIP_INSTALL ) +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/pkg-plist b/databases/mysql80-server/pkg-plist index f9dbff562f49..48466b0607d6 100644 --- a/databases/mysql80-server/pkg-plist +++ b/databases/mysql80-server/pkg-plist @@ -1,267 +1,267 @@ LICENSE.router README.router bin/ibd2sdi bin/innochecksum bin/myisam_ftdump bin/myisamchk bin/myisamlog bin/myisampack bin/mysql_client_test bin/mysql_keyring_encryption_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 etc/logrotate.d/mysqlrouter lib/mysql/libmysqlharness.so lib/mysql/libmysqlharness.so.1 lib/mysql/libmysqlharness_stdx.so lib/mysql/libmysqlharness_stdx.so.1 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 lib/mysql/libmysqlrouter_http_auth_backend.so.1 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 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 lib/mysql/mysqlrouter/router_protobuf.so lib/mysql/mysqlrouter/router_openssl.so 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 lib/mysql/plugin/component_example_component3.so lib/mysql/plugin/component_keyring_file.so 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 lib/mysql/plugin/component_query_attributes.so lib/mysql/plugin/component_reference_cache.so 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 lib/mysql/plugin/component_test_status_var_service_str.so lib/mysql/plugin/component_test_status_var_service_unreg_only.so lib/mysql/plugin/component_test_string_service.so lib/mysql/plugin/component_test_string_service_charset.so lib/mysql/plugin/component_test_string_service_long.so lib/mysql/plugin/component_test_sys_var_service.so 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 lib/mysql/plugin/component_udf_reg_avg_func.so lib/mysql/plugin/component_udf_reg_int_func.so lib/mysql/plugin/component_udf_reg_int_same_func.so lib/mysql/plugin/component_udf_reg_only_3_func.so lib/mysql/plugin/component_udf_reg_real_func.so lib/mysql/plugin/component_udf_unreg_3_func.so lib/mysql/plugin/component_udf_unreg_int_func.so lib/mysql/plugin/component_udf_unreg_real_func.so lib/mysql/plugin/component_validate_password.so lib/mysql/plugin/connection_control.so lib/mysql/plugin/daemon_example.ini lib/mysql/plugin/ddl_rewriter.so lib/mysql/plugin/group_replication.so %%NO_EXAMPLE%%lib/mysql/plugin/ha_example.so lib/mysql/plugin/ha_mock.so lib/mysql/plugin/component_test_udf_services.so lib/mysql/plugin/keyring_file.so lib/mysql/plugin/libdaemon_example.so lib/mysql/plugin/libtest_framework.so lib/mysql/plugin/libtest_services.so lib/mysql/plugin/libtest_services_threaded.so lib/mysql/plugin/libtest_session_attach.so lib/mysql/plugin/libtest_session_detach.so lib/mysql/plugin/libtest_session_in_thd.so lib/mysql/plugin/libtest_session_info.so lib/mysql/plugin/libtest_sql_2_sessions.so lib/mysql/plugin/libtest_sql_all_col_types.so lib/mysql/plugin/libtest_sql_cmds_1.so lib/mysql/plugin/libtest_sql_commit.so lib/mysql/plugin/libtest_sql_complex.so lib/mysql/plugin/libtest_sql_errors.so lib/mysql/plugin/libtest_sql_lock.so lib/mysql/plugin/libtest_sql_processlist.so lib/mysql/plugin/libtest_sql_replication.so lib/mysql/plugin/libtest_sql_reset_connection.so lib/mysql/plugin/libtest_sql_shutdown.so lib/mysql/plugin/libtest_sql_sleep_is_connected.so lib/mysql/plugin/libtest_sql_sqlmode.so lib/mysql/plugin/libtest_sql_stmt.so lib/mysql/plugin/libtest_sql_stored_procedures_functions.so lib/mysql/plugin/libtest_sql_views_triggers.so lib/mysql/plugin/libtest_x_sessions_deinit.so lib/mysql/plugin/libtest_x_sessions_init.so lib/mysql/plugin/locking_service.so lib/mysql/plugin/mypluglib.so lib/mysql/plugin/mysql_clone.so lib/mysql/plugin/mysql_no_login.so lib/mysql/plugin/pfs_example_plugin_employee.so lib/mysql/plugin/qa_auth_client.so lib/mysql/plugin/qa_auth_interface.so lib/mysql/plugin/qa_auth_server.so 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 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 +lib/mysql/private/libprotobuf-lite.so.24.4.0 +lib/mysql/private/libprotobuf.so.24.4.0 +lib/mysql/libprotobuf-lite.so.24.4.0 libexec/mysqld @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 %%DATADIR%%/charsets/armscii8.xml %%DATADIR%%/charsets/ascii.xml %%DATADIR%%/charsets/cp1250.xml %%DATADIR%%/charsets/cp1251.xml %%DATADIR%%/charsets/cp1256.xml %%DATADIR%%/charsets/cp1257.xml %%DATADIR%%/charsets/cp850.xml %%DATADIR%%/charsets/cp852.xml %%DATADIR%%/charsets/cp866.xml %%DATADIR%%/charsets/dec8.xml %%DATADIR%%/charsets/geostd8.xml %%DATADIR%%/charsets/greek.xml %%DATADIR%%/charsets/hebrew.xml %%DATADIR%%/charsets/hp8.xml %%DATADIR%%/charsets/keybcs2.xml %%DATADIR%%/charsets/koi8r.xml %%DATADIR%%/charsets/koi8u.xml %%DATADIR%%/charsets/latin1.xml %%DATADIR%%/charsets/latin2.xml %%DATADIR%%/charsets/latin5.xml %%DATADIR%%/charsets/latin7.xml %%DATADIR%%/charsets/macce.xml %%DATADIR%%/charsets/macroman.xml %%DATADIR%%/charsets/swe7.xml %%DATADIR%%/czech/errmsg.sys %%DATADIR%%/danish/errmsg.sys %%DATADIR%%/dictionary.txt %%DATADIR%%/dutch/errmsg.sys %%DATADIR%%/english/errmsg.sys %%DATADIR%%/estonian/errmsg.sys %%DATADIR%%/french/errmsg.sys %%DATADIR%%/german/errmsg.sys %%DATADIR%%/greek/errmsg.sys %%DATADIR%%/hungarian/errmsg.sys %%DATADIR%%/install_rewriter.sql %%DATADIR%%/italian/errmsg.sys %%DATADIR%%/japanese/errmsg.sys %%DATADIR%%/korean/errmsg.sys %%DATADIR%%/messages_to_clients.txt %%DATADIR%%/messages_to_error_log.txt %%DATADIR%%/mysql-log-rotate %%DATADIR%%/mysql.server %%DATADIR%%/mysqld_multi.server %%DATADIR%%/norwegian-ny/errmsg.sys %%DATADIR%%/norwegian/errmsg.sys %%DATADIR%%/polish/errmsg.sys %%DATADIR%%/portuguese/errmsg.sys %%DATADIR%%/romanian/errmsg.sys %%DATADIR%%/russian/errmsg.sys %%DATADIR%%/serbian/errmsg.sys %%DATADIR%%/slovak/errmsg.sys %%DATADIR%%/spanish/errmsg.sys %%DATADIR%%/swedish/errmsg.sys %%DATADIR%%/ukrainian/errmsg.sys %%DATADIR%%/uninstall_rewriter.sql %%DATADIR%%router/docs/sample_mysqlrouter.conf @dir lib/mysql/plugin/debug @dir %%DATADIR%%router/docs @sample(root,wheel,0644) %%ETCDIR%%/my.cnf.sample @dir(mysql,mysql,0750) %%ETCDIR%%/keyring @dir(mysql,mysql,0750) %%MY_SECDIR%% @dir(mysql,mysql,0750) %%MY_TMPDIR%%