From 92fc4ba36cfa5fa37f68228c95295e12a493518d Mon Sep 17 00:00:00 2001 From: Christos Chatzaras Date: Wed, 19 Mar 2025 10:56:43 +0100 Subject: [PATCH] databases/mysql80-{client, server}: Update to 8,0.41 Bugs Fixed Incompatible Change: Corruption occurred in a spatial index when an update of a geometry with a minimal change in the minimum bounding rectangle (MBR) was followed by a delete operation. When upgrading to this release, it is recommended that you drop any spatial indexes beforehand, then re-create them after the upgrade is complete. Alternatively, you can drop and re-create such indexes immediately following the upgrade, but before making use of any of the tables in which they occur. You should also be aware that downgrading to any previous version reintroduces the original problem described previously. For more information, see Creating Spatial Indexes. (Bug #36452528) InnoDB: Concurrently truncating a table while querying the Performance Schema sometimes cause MySQL to halt unexpectedly. (Bug InnoDB: It was possible for an ALTER TABLE operation using the INPLACE algorithm on a table containing both a spatial index and an auto-increment column to cause corruption or, in debug builds, to trigger a debug assert. This was due to the auto-increment column value being overwritten in the old records of the spatial index while the new record was prepared. (Bug #37189985) InnoDB: Certain IO buffer serializations triggered an assertion in debug builds that caused the system to hang. (Bug #37139618) InnoDB: Improved InnoDB start up time. (Bug #36880863) References: This issue is a regression of: Bug #36808732. InnoDB: An assertion failure was raised when creating a FULLTEXT index on a table with an FTS_DOC_ID value greater than 4294967295. (Bug References: See also: Bug #37387224. InnoDB: Dropping a primary key, and then adding a new AUTO_INCREMENT column as a primary key in descending order using the INPLACE algorithm failed. Our thanks to Shaohua Wang and the team at Alibaba for the contribution. (Bug #36658450) InnoDB: Extending a user tablespace produces file extension redo log records (MLOG_FILE_EXTEND), but they were not produced when extending the system tablespace. (Bug #36511673) InnoDB: A DELETE operation on a table with a self referential foreign key and full-text index could have triggered an assertion. (Bug InnoDB: When clearing an AHI index from all buffer pool pages, the block state would potentially change to BUF_BLOCK_MEMORY before acquiring the block mutex thus causing an unexpected halt. (Bug InnoDB: Common prefix compression for redo log inserts (MLOG_REC_INSERT) was disabled but is now enabled when the versions match. (Bug #34946626) References: This issue is a regression of: Bug #13899. InnoDB: Virtual column information for a row containing an externally stored BLOB was not always logged during an UPDATE operation, which sometimes resulted in an Index PRIMARY is corrupted error. (Bug InnoDB: ON DELETE CASCADE with generated columns containing secondary indexes sometimes failed, due to virtual column templates not being initialized before deletion. Full Changelog see: - https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-41.html - https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-40.html PR: 285112 Sponsored by: Netzkommund GmbH --- databases/mysql80-client/Makefile | 2 +- databases/mysql80-server/Makefile | 4 +- databases/mysql80-server/distinfo | 6 +-- .../files/patch-client_CMakeLists.txt | 40 ++++++++++++++++--- .../files/patch-include_my__stacktrace.h | 8 ++-- 5 files changed, 44 insertions(+), 16 deletions(-) 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,5 +1,5 @@ PORTNAME= mysql -PORTREVISION= 1 +PORTREVISION= 0 PKGNAMESUFFIX= 80-client COMMENT= Multithreaded SQL database (client) 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,6 +1,6 @@ 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 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,4 +1,4 @@ ---- 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. @@ -30,17 +30,45 @@ 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) @@ -50,7 +78,7 @@ 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 ) @@ -60,7 +88,7 @@ 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 ) 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,10 +1,10 @@ ---- 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();