diff --git a/databases/mysql80-client/Makefile b/databases/mysql80-client/Makefile index 55f14dfbbcad..57ea54fb66e6 100644 --- a/databases/mysql80-client/Makefile +++ b/databases/mysql80-client/Makefile @@ -1,50 +1,50 @@ PORTNAME= mysql -PORTREVISION= 1 +PORTREVISION= 0 PKGNAMESUFFIX= 80-client COMMENT= Multithreaded SQL database (client) LICENSE+= LGPL21 MASTERDIR= ${.CURDIR}/../mysql80-server PKGMESSAGE= ${.CURDIR}/pkg-message PATCHDIR= ${MASTERDIR}/files PLIST= ${.CURDIR}/pkg-plist CONFLICTS_INSTALL= mysql8[1-9]-client \ mysql[0-79][0-9]-client \ mariadb[0-9][0-9]-client \ percona[0-9][0-9]-client CMAKE_ARGS+= -DWITHOUT_SERVER=1 -DINSTALL_SUPPORTFILESDIR=0 USE_LDCONFIG+= ${PREFIX}/lib/mysql MMAN1= comp_err.1 lz4_decompress.1 mysql.1 mysql_config.1 mysql_config_editor.1 \ mysqladmin.1 mysqlbinlog.1 mysqlcheck.1 mysqldump.1 mysqlimport.1 mysqlman.1 \ mysqlpump.1 mysqlshow.1 mysqlslap.1 perror.1 zlib_decompress.1 CLIENT_ONLY= yes OPTIONS_GROUP+= PLUGINS PLUGINS_DESC= Default Client Plugins OPTIONS_GROUP_PLUGINS= SASLCLIENT SASLCLIENT_DESC= SASL client plugin module SASLCLIENT_CMAKE_BOOL= WITH_AUTHENTICATION_LDAP SASLCLIENT_LIB_DEPENDS= libsasl2.so:security/cyrus-sasl2 SASLCLIENT_USES= ldap OPTIONS_DEFAULT+= SASLCLIENT OPTIONS_SUB= yes # issue 166367: adding symlinks for back-compatibility with ${lib}_r post-install: # @${RM} ${STAGEDIR}${PREFIX}/lib/mysql/private/libprotobuf-lite.so.3.19.4 # @${RM} ${STAGEDIR}${PREFIX}/lib/mysql/private/libprotobuf.so.3.19.4 @${RM} -r ${STAGEDIR}${PREFIX}/lib/mysql/private @${LN} -s libmysqlclient.a ${STAGEDIR}${PREFIX}/lib/mysql/libmysqlclient_r.a @${LN} -s libmysqlclient.so ${STAGEDIR}${PREFIX}/lib/mysql/libmysqlclient_r.so @${LN} -s libmysqlclient.so.21 ${STAGEDIR}${PREFIX}/lib/mysql/libmysqlclient_r.so.21 .include "${MASTERDIR}/Makefile" diff --git a/databases/mysql80-server/Makefile b/databases/mysql80-server/Makefile index d4881b365a1a..a67a1f6d72c0 100644 --- a/databases/mysql80-server/Makefile +++ b/databases/mysql80-server/Makefile @@ -1,213 +1,213 @@ PORTNAME?= mysql -PORTVERSION= 8.0.39 -PORTREVISION?= 2 +PORTVERSION= 8.0.41 +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} # 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 aefd6a834a7f..fdce4f89df59 100644 --- a/databases/mysql80-server/distinfo +++ b/databases/mysql80-server/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1721978886 -SHA256 (mysql-boost-8.0.39.tar.gz) = 93208da9814116d81a384eae42120fd6c2ed507f1696064c510bc36047050241 -SIZE (mysql-boost-8.0.39.tar.gz) = 449265424 +TIMESTAMP = 1740937221 +SHA256 (mysql-boost-8.0.41.tar.gz) = 719589993b1a6769edb82b59f28e0dab8d47df94fa53ac4e9340b7c5eaba937c +SIZE (mysql-boost-8.0.41.tar.gz) = 488749630 diff --git a/databases/mysql80-server/files/patch-client_CMakeLists.txt b/databases/mysql80-server/files/patch-client_CMakeLists.txt index 078e0172735c..3eedd84ee080 100644 --- a/databases/mysql80-server/files/patch-client_CMakeLists.txt +++ b/databases/mysql80-server/files/patch-client_CMakeLists.txt @@ -1,70 +1,98 @@ ---- client/CMakeLists.txt.orig 2024-07-12 19:15:25 UTC +--- client/CMakeLists.txt.orig 2024-12-16 09:20:55 UTC +++ client/CMakeLists.txt @@ -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 ) @@ -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 @@ -56,6 +60,7 @@ ENDIF() ) ENDIF() +IF(NOT WITHOUT_SERVER) MYSQL_ADD_EXECUTABLE(mysqltest mysqltest.cc mysqltest/error_names.cc -@@ -72,6 +77,9 @@ MYSQL_ADD_EXECUTABLE(mysqltest +@@ -72,11 +77,13 @@ MYSQL_ADD_EXECUTABLE(mysqltest ENABLE_EXPORTS LINK_LIBRARIES mysqlclient ) +ENDIF() -+ + + IF(MY_COMPILER_IS_GNU AND (WITH_LTO OR CMAKE_COMPILER_FLAG_WITH_LTO)) + TARGET_LINK_OPTIONS(mysqltest PRIVATE -Wno-error=stringop-overflow) + ENDIF() + +IF(WITHOUT_SERVER) MYSQL_ADD_EXECUTABLE(mysqlcheck check/mysqlcheck.cc check/mysqlcheck_core.cc -@@ -276,7 +284,9 @@ TARGET_INCLUDE_DIRECTORIES(mysqlbinlog PRIVATE ${CMAKE +@@ -257,6 +264,23 @@ ENDIF() + COMPILE_FLAGS " -Wno-microsoft-template") + ENDIF() + ++# The client version of log_event.cc has false positives. ++# Downgrade from error to warning: ++IF(MY_COMPILER_IS_GNU AND CMAKE_BUILD_TYPE_UPPER STREQUAL "RELWITHDEBINFO") ++ ADD_COMPILE_FLAGS(${CMAKE_SOURCE_DIR}/sql/log_event.cc ++ COMPILE_FLAGS ++ " -Wno-error=uninitialized" ++ " -Wno-error=maybe-uninitialized" ++ ) ++ENDIF() ++ ++# duplicate explicit instantiation of 'net_field_length_checked' ++# ignored as a Microsoft extension ++IF(WIN32_CLANG) ++ ADD_COMPILE_FLAGS(${CMAKE_SOURCE_DIR}/sql/log_event.cc ++ COMPILE_FLAGS " -Wno-microsoft-template") ++ENDIF() ++ + SET(MYSQLBINLOG_LIBRARIES + binlogevents_static + client_base +@@ -298,7 +322,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 -@@ -291,6 +301,9 @@ MYSQL_ADD_EXECUTABLE(mysql_config_editor +@@ -313,6 +339,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 -@@ -301,6 +314,7 @@ MYSQL_ADD_EXECUTABLE(mysql_ssl_rsa_setup +@@ -323,6 +352,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-include_my__stacktrace.h b/databases/mysql80-server/files/patch-include_my__stacktrace.h index 8ae534d73579..e9483748f817 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 2024-07-12 19:15:25 UTC +--- include/my_stacktrace.h.orig 2024-12-16 09:20:55 UTC +++ include/my_stacktrace.h -@@ -44,7 +44,7 @@ - HAVE_BACKTRACE - Linux, FreeBSD, OSX, Solaris +@@ -45,7 +45,7 @@ _WIN32 - Windows + HAVE_EXT_BACKTRACE - Unixes without backtrace(3) */ --#if defined(HAVE_BACKTRACE) || defined(_WIN32) +-#if defined(HAVE_BACKTRACE) || defined(_WIN32) || defined(HAVE_EXT_BACKTRACE) +#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);