git: 4d4dc7193d57 - main - databases/mysql84-{server|client}: Update to 8.4.5

From: Jochen Neumeister <joneum_at_FreeBSD.org>
Date: Tue, 29 Apr 2025 17:39:40 UTC
The branch main has been updated by joneum:

URL: https://cgit.FreeBSD.org/ports/commit/?id=4d4dc7193d57424edbae04f24394d31bde5cfa70

commit 4d4dc7193d57424edbae04f24394d31bde5cfa70
Author:     Jochen Neumeister <joneum@FreeBSD.org>
AuthorDate: 2025-04-29 17:37:21 +0000
Commit:     Jochen Neumeister <joneum@FreeBSD.org>
CommitDate: 2025-04-29 17:39:29 +0000

    databases/mysql84-{server|client}: Update to 8.4.5
    
    Changelog: https://dev.mysql.com/doc/relnotes/mysql/8.4/en/
    
    Reported by:    Christos Chatzaras (chris@cretaforce.gr) via private
    eMail
    
    Sponsored by:   Netzkommune GmbH
---
 databases/mysql84-client/Makefile                  |  2 +-
 databases/mysql84-server/Makefile                  |  4 +--
 databases/mysql84-server/distinfo                  |  6 ++--
 .../mysql84-server/files/patch-CMakeLists.txt      | 20 +++++------
 .../files/patch-cmake_libutils.cmake               |  6 ++--
 .../files/patch-libs_mysql_serialization_archive.h |  6 ++--
 ...sql_serialization_serializer__default__impl.hpp | 27 ++++++---------
 ...h-libs_mysql_serialization_serializer__impl.hpp | 18 +++++-----
 .../files/patch-sql_mdl__context__backup.h         | 11 ------
 databases/mysql84-server/files/patch-sql_mysqld.cc |  4 +--
 ...ql_range__optimizer_index__range__scan__plan.cc | 39 ----------------------
 .../files/patch-sql_stream__cipher.h               | 19 -----------
 .../files/patch-storage_innobase_include_srv0mon.h |  4 +--
 ...unit_binlogevents_transaction__compression-t.cc | 11 ------
 14 files changed, 45 insertions(+), 132 deletions(-)

diff --git a/databases/mysql84-client/Makefile b/databases/mysql84-client/Makefile
index bfb4f1e7263d..a49c38ce338d 100644
--- a/databases/mysql84-client/Makefile
+++ b/databases/mysql84-client/Makefile
@@ -1,5 +1,5 @@
 PORTNAME=	mysql
-PORTREVISION=	1
+PORTREVISION=	0
 PKGNAMESUFFIX=	84-client
 
 COMMENT=	Multithreaded SQL database (client)
diff --git a/databases/mysql84-server/Makefile b/databases/mysql84-server/Makefile
index ce48cb0c0a53..d08f5e792067 100644
--- a/databases/mysql84-server/Makefile
+++ b/databases/mysql84-server/Makefile
@@ -1,6 +1,6 @@
 PORTNAME?=		mysql
-PORTVERSION=		8.4.3
-PORTREVISION=	1
+PORTVERSION=		8.4.5
+PORTREVISION=		0
 CATEGORIES=		databases
 MASTER_SITES=		MYSQL/MySQL-8.4
 PKGNAMESUFFIX?=		84-server
diff --git a/databases/mysql84-server/distinfo b/databases/mysql84-server/distinfo
index 0da85a689377..aa6bbe6db367 100644
--- a/databases/mysql84-server/distinfo
+++ b/databases/mysql84-server/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1735595165
-SHA256 (mysql-8.4.3.tar.gz) = 7ac9564c478022f73005ff89bbb40f67b381fc06d5518416bdffec75e625b818
-SIZE (mysql-8.4.3.tar.gz) = 465097732
+TIMESTAMP = 1744755957
+SHA256 (mysql-8.4.5.tar.gz) = 53639592a720a719fdfadf2c921b947eac86c06e333202e47667852a5781bd1a
+SIZE (mysql-8.4.5.tar.gz) = 478788925
diff --git a/databases/mysql84-server/files/patch-CMakeLists.txt b/databases/mysql84-server/files/patch-CMakeLists.txt
index ad5e829a5b73..01e5bdccdeb8 100644
--- a/databases/mysql84-server/files/patch-CMakeLists.txt
+++ b/databases/mysql84-server/files/patch-CMakeLists.txt
@@ -1,6 +1,6 @@
---- CMakeLists.txt.orig	2024-09-17 10:40:37 UTC
+--- CMakeLists.txt.orig	2025-03-31 07:51:10 UTC
 +++ CMakeLists.txt
-@@ -1870,7 +1870,7 @@ IF(WITH_AUTHENTICATION_LDAP)
+@@ -1911,7 +1911,7 @@ IF(WITH_AUTHENTICATION_LDAP)
  ENDIF()
  
  IF(WITH_AUTHENTICATION_LDAP)
@@ -9,7 +9,7 @@
      # LDAP / SASL / KERBEROS / SSL must all be "system" or "custom", not a mix.
      IF(WITH_LDAP STREQUAL "system" OR
          WITH_SASL STREQUAL "system" OR
-@@ -1921,6 +1921,7 @@ ENDIF()
+@@ -1962,6 +1962,7 @@ ENDIF()
    ENDIF()
  ENDIF()
  
@@ -17,7 +17,7 @@
  # Add system/bundled editline.
  MYSQL_CHECK_EDITLINE()
  SET(EDITLINE_WARN_GIVEN)
-@@ -1931,6 +1932,7 @@ ENDIF()
+@@ -1972,6 +1973,7 @@ ENDIF()
      "You can use -DWITH_EDITLINE=bundled instead."
      )
  ENDIF()
@@ -25,7 +25,7 @@
  
  # Add lz4 library
  MYSQL_CHECK_LZ4()
-@@ -2213,7 +2215,9 @@ ADD_DEPENDENCIES(clang_tidy_prerequisites GenError)
+@@ -2254,7 +2256,9 @@ ADD_DEPENDENCIES(clang_tidy_prerequisites GenError)
  ADD_DEPENDENCIES(clang_tidy_prerequisites protobuf_generated_all)
  ADD_DEPENDENCIES(clang_tidy_prerequisites GenError)
  
@@ -34,9 +34,9 @@
 +  ADD_SUBDIRECTORY(include)
 +ENDIF(NOT WITHOUT_CLIENTLIBS)
  ADD_SUBDIRECTORY(strings)
- ADD_SUBDIRECTORY(vio)
- ADD_SUBDIRECTORY(mysys)
-@@ -2263,12 +2267,15 @@ ENDIF()
+ ADD_SUBDIRECTORY(extra/unordered_dense)
+ ADD_SUBDIRECTORY(extra/xxhash)
+@@ -2306,12 +2310,15 @@ ENDIF()
    ADD_SUBDIRECTORY(unittest/mytap/t)
  ENDIF()
  
@@ -54,7 +54,7 @@
    ADD_SUBDIRECTORY(testclients)
    ADD_SUBDIRECTORY(sql)
  ENDIF()
-@@ -2346,11 +2353,11 @@ ADD_SUBDIRECTORY(scripts)
+@@ -2389,11 +2396,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)
@@ -67,7 +67,7 @@
    IF(WITH_INTERNAL)
      ADD_SUBDIRECTORY(internal)
    ENDIF()
-@@ -2377,8 +2384,10 @@ ENDIF()
+@@ -2420,8 +2427,10 @@ ENDIF()
    INCLUDE(fastcov)
  ENDIF()
  
diff --git a/databases/mysql84-server/files/patch-cmake_libutils.cmake b/databases/mysql84-server/files/patch-cmake_libutils.cmake
index a96fa8f41fb3..8b8ac035ddf4 100644
--- a/databases/mysql84-server/files/patch-cmake_libutils.cmake
+++ b/databases/mysql84-server/files/patch-cmake_libutils.cmake
@@ -1,6 +1,6 @@
---- cmake/libutils.cmake.orig	2024-06-03 11:39:00 UTC
+--- cmake/libutils.cmake.orig	2025-03-31 07:51:10 UTC
 +++ cmake/libutils.cmake
-@@ -384,9 +384,6 @@ MACRO(MERGE_LIBRARIES_SHARED TARGET_ARG)
+@@ -385,9 +385,6 @@ MACRO(MERGE_LIBRARIES_SHARED TARGET_ARG)
      ELSE()
        SET(DESTINATION "${INSTALL_LIBDIR}")
      ENDIF()
@@ -10,7 +10,7 @@
      MYSQL_INSTALL_TARGET(${TARGET} DESTINATION "${DESTINATION}" ${COMP}
        ${INSTALL_ARGS})
    ENDIF()
-@@ -642,9 +639,6 @@ FUNCTION(ADD_SHARED_LIBRARY TARGET_ARG)
+@@ -643,9 +640,6 @@ FUNCTION(ADD_SHARED_LIBRARY TARGET_ARG)
        SET(COMP COMPONENT ${ARG_COMPONENT})
      ELSE()
        SET(COMP COMPONENT SharedLibraries)
diff --git a/databases/mysql84-server/files/patch-libs_mysql_serialization_archive.h b/databases/mysql84-server/files/patch-libs_mysql_serialization_archive.h
index 9c5c096c2b6b..598054456bc5 100644
--- a/databases/mysql84-server/files/patch-libs_mysql_serialization_archive.h
+++ b/databases/mysql84-server/files/patch-libs_mysql_serialization_archive.h
@@ -1,10 +1,10 @@
---- libs/mysql/serialization/archive.h.orig	2024-07-12 19:20:22 UTC
+--- libs/mysql/serialization/archive.h.orig	2025-03-31 07:51:10 UTC
 +++ libs/mysql/serialization/archive.h
 @@ -81,14 +81,14 @@ class Archive {
    /// @note To be implemented in Archive_derived_type
    template <typename Type>
    static std::size_t get_size(Type &&arg) {
--    return Archive_derived_type::template get_size(std::forward<Type>(arg));
+-    return Archive_derived_type::get_size(std::forward<Type>(arg));
 +    return Archive_derived_type::template get_size<>(std::forward<Type>(arg));
    }
  
@@ -12,7 +12,7 @@
    /// @return archive size - size of data written to the archive
    /// @note To be implemented in Archive_derived_type
    inline std::size_t get_size_written() const {
--    return Archive_derived_type::template get_size_written();
+-    return Archive_derived_type::get_size_written();
 +    return Archive_derived_type::template get_size_written<>();
    }
  
diff --git a/databases/mysql84-server/files/patch-libs_mysql_serialization_serializer__default__impl.hpp b/databases/mysql84-server/files/patch-libs_mysql_serialization_serializer__default__impl.hpp
index 43dd9792cd34..82e8aa14e008 100644
--- a/databases/mysql84-server/files/patch-libs_mysql_serialization_serializer__default__impl.hpp
+++ b/databases/mysql84-server/files/patch-libs_mysql_serialization_serializer__default__impl.hpp
@@ -1,33 +1,28 @@
---- libs/mysql/serialization/serializer_default_impl.hpp.orig	2024-07-12 19:20:22 UTC
+--- libs/mysql/serialization/serializer_default_impl.hpp.orig	2025-03-31 07:51:10 UTC
 +++ libs/mysql/serialization/serializer_default_impl.hpp
 @@ -233,7 +233,7 @@ std::size_t Serializer_default<Archive_concrete_type>:
  template <class Field_type, Field_size field_size_defined, typename Enabler>
  std::size_t Serializer_default<Archive_concrete_type>::get_field_size(
      const Field_type &field) {
--  return Archive_concrete_type::template get_size(
+-  return Archive_concrete_type::get_size(
 +  return Archive_concrete_type::template get_size<>(
        Field_wrapper<const Field_type, field_size_defined>(field));
  }
  
-@@ -473,7 +473,7 @@ std::size_t Serializer_default<Archive_concrete_type>:
-   std::size_t calculated_size = 0;
+@@ -474,7 +474,7 @@ std::size_t Serializer_default<Archive_concrete_type>:
    bool is_provided = field_definition.run_encode_predicate();
    if (is_provided) {
--    auto size_id_type = Archive_concrete_type::template get_size(
-+    auto size_id_type = Archive_concrete_type::template get_size<>(
-         create_varlen_field_wrapper(field_id));
+     auto size_id_type =
+-        Archive_concrete_type::get_size(create_varlen_field_wrapper(field_id));
++        Archive_concrete_type::template get_size<>(create_varlen_field_wrapper(field_id));
      calculated_size = get_field_size<Field_type, field_size_defined>(
                            field_definition.get_ref()) +
-@@ -489,18 +489,18 @@ std::size_t Serializer_default<Archive_concrete_type>:
-     bool skip_id) {
-   std::size_t serializable_overhead_type = 0;
-   if (skip_id == false) {
--    serializable_overhead_type = Archive_concrete_type::template get_size(
-+    serializable_overhead_type = Archive_concrete_type::template get_size<>(
-         create_varlen_field_wrapper(field_id));
+                       size_id_type;
+@@ -493,14 +493,14 @@ std::size_t Serializer_default<Archive_concrete_type>:
+         Archive_concrete_type::get_size(create_varlen_field_wrapper(field_id));
    }
    auto serializable_size = serializable.template get_size_internal<Base_type>();
--  auto serializable_overhead_size = Archive_concrete_type::template get_size(
+-  auto serializable_overhead_size = Archive_concrete_type::get_size(
 +  auto serializable_overhead_size = Archive_concrete_type::template get_size<>(
        create_varlen_field_wrapper(serializable_size));
  
@@ -35,7 +30,7 @@
        find_last_non_ignorable_field_id(serializable);
  
    auto serializable_overhead_last_non_ignorable_field_id =
--      Archive_concrete_type::template get_size(
+-      Archive_concrete_type::get_size(
 +      Archive_concrete_type::template get_size<>(
            create_varlen_field_wrapper(last_non_ignorable_field_id));
    return serializable_overhead_type + serializable_overhead_size +
diff --git a/databases/mysql84-server/files/patch-libs_mysql_serialization_serializer__impl.hpp b/databases/mysql84-server/files/patch-libs_mysql_serialization_serializer__impl.hpp
index da31e03eb489..985efd08e002 100644
--- a/databases/mysql84-server/files/patch-libs_mysql_serialization_serializer__impl.hpp
+++ b/databases/mysql84-server/files/patch-libs_mysql_serialization_serializer__impl.hpp
@@ -1,22 +1,20 @@
---- libs/mysql/serialization/serializer_impl.hpp.orig	2024-07-12 19:20:22 UTC
+--- libs/mysql/serialization/serializer_impl.hpp.orig	2025-03-31 07:51:10 UTC
 +++ libs/mysql/serialization/serializer_impl.hpp
-@@ -51,8 +51,8 @@ Serializer<Serializer_derived_type, Archive_type>::get
+@@ -51,7 +51,7 @@ Serializer<Serializer_derived_type, Archive_type>::get
  Serializer<Serializer_derived_type, Archive_type>::get_size_field_def(
      Field_id_type field_id,
      const Field_definition<Field_type, field_size_defined> &field_definition) {
--  return Serializer_derived_type::template get_size_field_def(field_id,
--                                                              field_definition);
-+  return Serializer_derived_type::template get_size_field_def<>(
-+      field_id, field_definition);
+-  return Serializer_derived_type::get_size_field_def(field_id,
++  return Serializer_derived_type::template get_size_field_def<>(field_id,
+                                                      field_definition);
  }
  
- template <class Serializer_derived_type, class Archive_type>
 @@ -61,7 +61,7 @@ Serializer<Serializer_derived_type, Archive_type>::get
  Serializer<Serializer_derived_type, Archive_type>::get_size_serializable(
      Field_id_type field_id, const Serializable_concrete_type &serializable,
      bool skip_id) {
--  return Serializer_derived_type::template get_size_serializable(
-+  return Serializer_derived_type::template get_size_serializable<>(
-       field_id, serializable, skip_id);
+-  return Serializer_derived_type::get_size_serializable(field_id, serializable,
++  return Serializer_derived_type::template get_size_serializable<>(field_id, serializable,
+                                                         skip_id);
  }
  
diff --git a/databases/mysql84-server/files/patch-sql_mdl__context__backup.h b/databases/mysql84-server/files/patch-sql_mdl__context__backup.h
deleted file mode 100644
index fcb8790f13db..000000000000
--- a/databases/mysql84-server/files/patch-sql_mdl__context__backup.h
+++ /dev/null
@@ -1,11 +0,0 @@
---- sql/mdl_context_backup.h.orig	2024-07-12 19:20:22 UTC
-+++ sql/mdl_context_backup.h
-@@ -47,7 +47,7 @@ class MDL_context_backup_manager {
-   /**
-     Key for uniquely identifying MDL_context in the MDL_context_backup map.
-   */
--  typedef std::basic_string<uchar> MDL_context_backup_key;
-+  typedef std::vector<uchar> MDL_context_backup_key;
- 
-   class MDL_context_backup;
- 
diff --git a/databases/mysql84-server/files/patch-sql_mysqld.cc b/databases/mysql84-server/files/patch-sql_mysqld.cc
index ee83e9bcd358..c0de00fb0e3f 100644
--- a/databases/mysql84-server/files/patch-sql_mysqld.cc
+++ b/databases/mysql84-server/files/patch-sql_mysqld.cc
@@ -1,6 +1,6 @@
---- sql/mysqld.cc.orig	2024-04-10 06:26:28 UTC
+--- sql/mysqld.cc.orig	2025-03-31 07:51:10 UTC
 +++ sql/mysqld.cc
-@@ -7000,7 +7000,7 @@ static PSI_memory_key key_memory_openssl = PSI_NOT_INS
+@@ -7001,7 +7001,7 @@ static PSI_memory_key key_memory_openssl = PSI_NOT_INS
  
  static PSI_memory_key key_memory_openssl = PSI_NOT_INSTRUMENTED;
  
diff --git a/databases/mysql84-server/files/patch-sql_range__optimizer_index__range__scan__plan.cc b/databases/mysql84-server/files/patch-sql_range__optimizer_index__range__scan__plan.cc
deleted file mode 100644
index 276862229fcf..000000000000
--- a/databases/mysql84-server/files/patch-sql_range__optimizer_index__range__scan__plan.cc
+++ /dev/null
@@ -1,39 +0,0 @@
---- sql/range_optimizer/index_range_scan_plan.cc.orig	2024-07-12 19:20:22 UTC
-+++ sql/range_optimizer/index_range_scan_plan.cc
-@@ -1016,11 +1016,11 @@ static bool null_part_in_key(KEY_PART *key_part, const
-   return false;
- }
- 
--// TODO(sgunders): This becomes a bit simpler with C++20's string_view
--// constructors.
--static inline std::basic_string_view<uchar> make_string_view(const uchar *start,
--                                                             const uchar *end) {
--  return {start, static_cast<size_t>(end - start)};
-+static inline bool equal(const uchar *start1, const uchar *end1,
-+                         const uchar *start2, const uchar *end2) {
-+  auto diff1 = end1 - start1;
-+  auto diff2 = end2 - start2;
-+  return diff1 == diff2 && memcmp(start1, start2, diff1) == 0;
- }
- 
- /**
-@@ -1083,8 +1083,7 @@ static bool get_ranges_from_tree_given_base(
-         node->next_key_part->type == SEL_ROOT::Type::KEY_RANGE &&
-         node->next_key_part->root->part == part + 1) {
-       if (node->min_flag == 0 && node->max_flag == 0 &&
--          make_string_view(min_key, tmp_min_key) ==
--              make_string_view(max_key, tmp_max_key)) {
-+          equal(min_key, tmp_min_key, max_key, tmp_max_key)) {
-         // This range was an equality predicate, and we have more
-         // keyparts to scan, so use its range as a base for ranges on
-         // the next keypart(s). E.g. if we have (a = 3) on this keypart,
-@@ -1160,8 +1159,7 @@ static bool get_ranges_from_tree_given_base(
-       else
-         flag |= NO_MAX_RANGE;
-     }
--    if (flag == 0 && make_string_view(base_min_key, tmp_min_key) ==
--                         make_string_view(base_max_key, tmp_max_key)) {
-+    if (flag == 0 && equal(base_min_key, tmp_min_key, base_max_key, tmp_max_key)) {
-       flag |= EQ_RANGE;
-       /*
-         Note that keys which are extended with PK parts have no
diff --git a/databases/mysql84-server/files/patch-sql_stream__cipher.h b/databases/mysql84-server/files/patch-sql_stream__cipher.h
deleted file mode 100644
index fcad3c5e4079..000000000000
--- a/databases/mysql84-server/files/patch-sql_stream__cipher.h
+++ /dev/null
@@ -1,19 +0,0 @@
---- sql/stream_cipher.h.orig	2024-07-12 19:20:22 UTC
-+++ sql/stream_cipher.h
-@@ -27,6 +27,7 @@
- #include <openssl/evp.h>
- #include <memory>
- #include <string>
-+#include <vector>
- 
- /**
-   @file stream_cipher.h
-@@ -35,7 +36,7 @@
-          binary log files.
- */
- 
--typedef std::basic_string<unsigned char> Key_string;
-+typedef std::vector<unsigned char> Key_string;
- 
- /**
-   @class Stream_cipher
diff --git a/databases/mysql84-server/files/patch-storage_innobase_include_srv0mon.h b/databases/mysql84-server/files/patch-storage_innobase_include_srv0mon.h
index a0279de2a126..1bbd2e73f2a0 100644
--- a/databases/mysql84-server/files/patch-storage_innobase_include_srv0mon.h
+++ b/databases/mysql84-server/files/patch-storage_innobase_include_srv0mon.h
@@ -1,4 +1,4 @@
---- storage/innobase/include/srv0mon.h.orig	2024-04-10 06:26:28 UTC
+--- storage/innobase/include/srv0mon.h.orig	2025-03-31 07:51:10 UTC
 +++ storage/innobase/include/srv0mon.h
 @@ -41,6 +41,10 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
  /* Required for FreeBSD so that INT64_MAX is defined. */
@@ -10,4 +10,4 @@
 +#endif
  
  #include <stdint.h>
- 
+ #include <bitset>
diff --git a/databases/mysql84-server/files/patch-unittest_gunit_binlogevents_transaction__compression-t.cc b/databases/mysql84-server/files/patch-unittest_gunit_binlogevents_transaction__compression-t.cc
deleted file mode 100644
index d77f946e2276..000000000000
--- a/databases/mysql84-server/files/patch-unittest_gunit_binlogevents_transaction__compression-t.cc
+++ /dev/null
@@ -1,11 +0,0 @@
---- unittest/gunit/binlogevents/transaction_compression-t.cc.orig	2024-07-12 19:20:22 UTC
-+++ unittest/gunit/binlogevents/transaction_compression-t.cc
-@@ -49,7 +49,7 @@ class TransactionPayloadCompressionTest : public ::tes
-   using Managed_buffer_t = Decompressor_t::Managed_buffer_t;
-   using Size_t = Decompressor_t::Size_t;
-   using Char_t = Decompressor_t::Char_t;
--  using String_t = std::basic_string<Char_t>;
-+  using String_t = std::vector<Char_t>;
-   using Decompress_status_t =
-       mysql::binlog::event::compression::Decompress_status;
-   using Compress_status_t = mysql::binlog::event::compression::Compress_status;