]> TLD Linux GIT Repositories - packages/mysql.git/commitdiff
- fix bcond comment (breaks build) master
authorMarcin Krol <hawk@tld-linux.org>
Thu, 9 May 2024 19:43:37 +0000 (21:43 +0200)
committerMarcin Krol <hawk@tld-linux.org>
Thu, 9 May 2024 19:43:37 +0000 (21:43 +0200)
mysql-cmake.patch
mysql-readline.patch
mysql-system-xxhash.patch
mysql.spec
no_relative_paths.patch

index b22b2f1f15baef0fc55e331ae05fe1fbe6814882..2846742b6349e5f376292055280af43933b39441 100644 (file)
@@ -1,7 +1,7 @@
-diff -ruN mysql-5.7.21.orig/cmake/readline.cmake mysql-5.7.21/cmake/readline.cmake
---- mysql-5.7.21.orig/cmake/readline.cmake     2017-12-28 04:46:26.000000000 +0100
-+++ mysql-5.7.21/cmake/readline.cmake  2018-03-31 21:17:28.373826351 +0200
-@@ -110,23 +110,23 @@ ENDMACRO()
+diff -urNpa mysql-8.4.0.orig/cmake/readline.cmake mysql-8.4.0/cmake/readline.cmake
+--- mysql-8.4.0.orig/cmake/readline.cmake      2024-05-09 15:03:55.909198871 +0200
++++ mysql-8.4.0/cmake/readline.cmake   2024-05-09 15:04:09.737390835 +0200
+@@ -130,23 +130,23 @@ ENDMACRO()
  
  MACRO (FIND_SYSTEM_EDITLINE)
    FIND_PATH(FOUND_EDITLINE_READLINE
  
  MACRO (FIND_SYSTEM_EDITLINE)
    FIND_PATH(FOUND_EDITLINE_READLINE
@@ -29,7 +29,7 @@ diff -ruN mysql-5.7.21.orig/cmake/readline.cmake mysql-5.7.21/cmake/readline.cma
    )
    MARK_AS_ADVANCED(EDITLINE_INCLUDE_DIR EDITLINE_LIBRARY)
  
    )
    MARK_AS_ADVANCED(EDITLINE_INCLUDE_DIR EDITLINE_LIBRARY)
  
-@@ -139,7 +139,7 @@ MACRO (FIND_SYSTEM_EDITLINE)
+@@ -162,7 +162,7 @@ MACRO (FIND_SYSTEM_EDITLINE)
      LIST(APPEND CMAKE_REQUIRED_LIBRARIES ${EDITLINE_LIBRARY})
      CHECK_CXX_SOURCE_COMPILES("
      #include <stdio.h>
      LIST(APPEND CMAKE_REQUIRED_LIBRARIES ${EDITLINE_LIBRARY})
      CHECK_CXX_SOURCE_COMPILES("
      #include <stdio.h>
@@ -38,7 +38,7 @@ diff -ruN mysql-5.7.21.orig/cmake/readline.cmake mysql-5.7.21/cmake/readline.cma
      int main(int argc, char **argv)
      {
         HIST_ENTRY entry;
      int main(int argc, char **argv)
      {
         HIST_ENTRY entry;
-@@ -149,14 +149,13 @@ MACRO (FIND_SYSTEM_EDITLINE)
+@@ -172,14 +172,13 @@ MACRO (FIND_SYSTEM_EDITLINE)
  
      CHECK_CXX_SOURCE_COMPILES("
      #include <stdio.h>
  
      CHECK_CXX_SOURCE_COMPILES("
      #include <stdio.h>
@@ -58,7 +58,7 @@ diff -ruN mysql-5.7.21.orig/cmake/readline.cmake mysql-5.7.21/cmake/readline.cma
      }"
      EDITLINE_HAVE_COMPLETION_INT)
  
      }"
      EDITLINE_HAVE_COMPLETION_INT)
  
-@@ -168,7 +167,7 @@ MACRO (FIND_SYSTEM_EDITLINE)
+@@ -191,7 +190,7 @@ MACRO (FIND_SYSTEM_EDITLINE)
        typedef char* MYFunction(const char*, int);
        MYFunction* myf= rl_completion_entry_function;
        char *res= (myf)(NULL, 0);
        typedef char* MYFunction(const char*, int);
        MYFunction* myf= rl_completion_entry_function;
        char *res= (myf)(NULL, 0);
@@ -67,9 +67,10 @@ diff -ruN mysql-5.7.21.orig/cmake/readline.cmake mysql-5.7.21/cmake/readline.cma
        return res != NULL;
      }"
      EDITLINE_HAVE_COMPLETION_CHAR)
        return res != NULL;
      }"
      EDITLINE_HAVE_COMPLETION_CHAR)
---- mysql-8.1.0/CMakeLists.txt~        2023-06-21 09:52:10.000000000 +0200
-+++ mysql-8.1.0/CMakeLists.txt 2023-10-20 10:08:46.673284042 +0200
-@@ -20,6 +20,8 @@
+diff -urNpa mysql-8.4.0.orig/CMakeLists.txt mysql-8.4.0/CMakeLists.txt
+--- mysql-8.4.0.orig/CMakeLists.txt    2024-05-09 15:03:55.901198760 +0200
++++ mysql-8.4.0/CMakeLists.txt 2024-05-09 15:04:09.737390835 +0200
+@@ -21,6 +21,8 @@
  # along with this program; if not, write to the Free Software
  # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  
  # along with this program; if not, write to the Free Software
  # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  
index ca2af0668c8745f1be45a0c7332a3ec5ddfdf1c1..011fe9587081ef72c1feae6c70f254d923bbb5a0 100644 (file)
@@ -1,6 +1,7 @@
---- mysql-8.0.20/client/mysql.cc~      2020-05-12 19:39:17.000000000 +0200
-+++ mysql-8.0.20/client/mysql.cc       2020-05-12 19:49:31.903300850 +0200
-@@ -79,6 +79,7 @@
+diff -urNpa mysql-8.4.0.orig/client/mysql.cc mysql-8.4.0/client/mysql.cc
+--- mysql-8.4.0.orig/client/mysql.cc   2024-05-09 15:04:59.682084155 +0200
++++ mysql-8.4.0/client/mysql.cc        2024-05-09 15:05:11.982254902 +0200
+@@ -93,6 +93,7 @@ Foundation, Inc., 51 Franklin St, Fifth
  #define LOG_USER 0
  #else
  #include <readline.h>
  #define LOG_USER 0
  #else
  #include <readline.h>
@@ -8,7 +9,7 @@
  #include <syslog.h>
  
  #define HAVE_READLINE
  #include <syslog.h>
  
  #define HAVE_READLINE
-@@ -1134,22 +1134,6 @@ static COMMANDS commands[] = {
+@@ -1185,22 +1186,6 @@ static COMMANDS commands[] = {
  static const char *load_default_groups[] = {"mysql", "client", nullptr};
  
  #ifdef HAVE_READLINE
  static const char *load_default_groups[] = {"mysql", "client", nullptr};
  
  #ifdef HAVE_READLINE
index 5d1fc10788ab4d234df0b3139c732bc0b31a88aa..62c1cc64f436fcc4f1069a04f877c244e466ef15 100644 (file)
@@ -1,7 +1,7 @@
-diff -ur mysql-8.2.0.orig/plugin/group_replication/libmysqlgcs/CMakeLists.txt mysql-8.2.0/plugin/group_replication/libmysqlgcs/CMakeLists.txt
---- mysql-8.2.0.orig/plugin/group_replication/libmysqlgcs/CMakeLists.txt       2023-12-18 01:19:34.054277743 +0100
-+++ mysql-8.2.0/plugin/group_replication/libmysqlgcs/CMakeLists.txt    2023-12-18 01:20:07.130718562 +0100
-@@ -137,7 +137,6 @@
+diff -urNpa mysql-8.4.0.orig/plugin/group_replication/libmysqlgcs/CMakeLists.txt mysql-8.4.0/plugin/group_replication/libmysqlgcs/CMakeLists.txt
+--- mysql-8.4.0.orig/plugin/group_replication/libmysqlgcs/CMakeLists.txt       2024-05-09 18:15:12.545961950 +0200
++++ mysql-8.4.0/plugin/group_replication/libmysqlgcs/CMakeLists.txt    2024-05-09 18:15:56.994571858 +0200
+@@ -138,7 +138,6 @@ SET(GCS_SOURCES
    src/bindings/xcom/gcs_xcom_statistics_interface.cc
    src/bindings/xcom/gcs_xcom_proxy.cc
    src/bindings/xcom/gcs_xcom_communication_protocol_changer.cc
    src/bindings/xcom/gcs_xcom_statistics_interface.cc
    src/bindings/xcom/gcs_xcom_proxy.cc
    src/bindings/xcom/gcs_xcom_communication_protocol_changer.cc
@@ -9,7 +9,7 @@ diff -ur mysql-8.2.0.orig/plugin/group_replication/libmysqlgcs/CMakeLists.txt my
    src/bindings/xcom/gcs_message_stage_split.cc
    src/bindings/xcom/gcs_xcom_synode.cc
    src/bindings/xcom/gcs_xcom_expels_in_progress.cc
    src/bindings/xcom/gcs_message_stage_split.cc
    src/bindings/xcom/gcs_xcom_synode.cc
    src/bindings/xcom/gcs_xcom_expels_in_progress.cc
-@@ -235,6 +234,7 @@
+@@ -236,6 +235,7 @@ ADD_LIBRARY(mysqlgcs STATIC ${XCOM_SOURC
  # Dependency on mysys from gcs_logging_system.cc
  # but pick up symbols from the server:
  # TARGET_LINK_LIBRARIES(mysqlgcs mysys)
  # Dependency on mysys from gcs_logging_system.cc
  # but pick up symbols from the server:
  # TARGET_LINK_LIBRARIES(mysqlgcs mysys)
@@ -17,10 +17,10 @@ diff -ur mysql-8.2.0.orig/plugin/group_replication/libmysqlgcs/CMakeLists.txt my
  
  IF(LINUX AND WITH_TIRPC STREQUAL "bundled")
    ADD_DEPENDENCIES(mysqlgcs tirpc_ext)
  
  IF(LINUX AND WITH_TIRPC STREQUAL "bundled")
    ADD_DEPENDENCIES(mysqlgcs tirpc_ext)
-diff -ur mysql-8.2.0.orig/plugin/group_replication/libmysqlgcs/src/bindings/xcom/gcs_message_stage_split.cc mysql-8.2.0/plugin/group_replication/libmysqlgcs/src/bindings/xcom/gcs_message_stage_split.cc
---- mysql-8.2.0.orig/plugin/group_replication/libmysqlgcs/src/bindings/xcom/gcs_message_stage_split.cc 2023-12-18 01:19:34.056277770 +0100
-+++ mysql-8.2.0/plugin/group_replication/libmysqlgcs/src/bindings/xcom/gcs_message_stage_split.cc      2023-12-18 01:20:07.117718388 +0100
-@@ -126,7 +126,7 @@
+diff -urNpa mysql-8.4.0.orig/plugin/group_replication/libmysqlgcs/src/bindings/xcom/gcs_message_stage_split.cc mysql-8.4.0/plugin/group_replication/libmysqlgcs/src/bindings/xcom/gcs_message_stage_split.cc
+--- mysql-8.4.0.orig/plugin/group_replication/libmysqlgcs/src/bindings/xcom/gcs_message_stage_split.cc 2024-05-09 18:15:12.549962005 +0200
++++ mysql-8.4.0/plugin/group_replication/libmysqlgcs/src/bindings/xcom/gcs_message_stage_split.cc      2024-05-09 18:15:57.910584352 +0200
+@@ -127,7 +127,7 @@ Gcs_sender_id calculate_sender_id(const
    std::string info(node.get_member_id().get_member_id());
    info.append(node.get_member_uuid().actual_value);
  
    std::string info(node.get_member_id().get_member_id());
    info.append(node.get_member_uuid().actual_value);
  
@@ -29,10 +29,10 @@ diff -ur mysql-8.2.0.orig/plugin/group_replication/libmysqlgcs/src/bindings/xcom
  }
  
  bool Gcs_message_stage_split_v2::update_members_information(
  }
  
  bool Gcs_message_stage_split_v2::update_members_information(
-diff -ur mysql-8.2.0.orig/plugin/group_replication/libmysqlgcs/src/bindings/xcom/gcs_xxhash.h mysql-8.2.0/plugin/group_replication/libmysqlgcs/src/bindings/xcom/gcs_xxhash.h
---- mysql-8.2.0.orig/plugin/group_replication/libmysqlgcs/src/bindings/xcom/gcs_xxhash.h       2023-12-18 01:19:34.068277930 +0100
-+++ mysql-8.2.0/plugin/group_replication/libmysqlgcs/src/bindings/xcom/gcs_xxhash.h    2023-12-18 01:20:07.130718562 +0100
-@@ -25,10 +25,6 @@
+diff -urNpa mysql-8.4.0.orig/plugin/group_replication/libmysqlgcs/src/bindings/xcom/gcs_xxhash.h mysql-8.4.0/plugin/group_replication/libmysqlgcs/src/bindings/xcom/gcs_xxhash.h
+--- mysql-8.4.0.orig/plugin/group_replication/libmysqlgcs/src/bindings/xcom/gcs_xxhash.h       2024-05-09 18:15:12.549962005 +0200
++++ mysql-8.4.0/plugin/group_replication/libmysqlgcs/src/bindings/xcom/gcs_xxhash.h    2024-05-09 18:15:57.910584352 +0200
+@@ -26,10 +26,6 @@
    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
  
    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
  
@@ -44,10 +44,10 @@ diff -ur mysql-8.2.0.orig/plugin/group_replication/libmysqlgcs/src/bindings/xcom
 +#include <xxhash.h>
  
  #endif  // GCS_XXHASH_H_INCLUDED
 +#include <xxhash.h>
  
  #endif  // GCS_XXHASH_H_INCLUDED
-diff -ur mysql-8.2.0.orig/sql/CMakeLists.txt mysql-8.2.0/sql/CMakeLists.txt
---- mysql-8.2.0.orig/sql/CMakeLists.txt        2023-12-18 01:19:34.892288911 +0100
-+++ mysql-8.2.0/sql/CMakeLists.txt     2023-12-18 01:22:41.637779746 +0100
-@@ -766,7 +766,6 @@
+diff -urNpa mysql-8.4.0.orig/sql/CMakeLists.txt mysql-8.4.0/sql/CMakeLists.txt
+--- mysql-8.4.0.orig/sql/CMakeLists.txt        2024-05-09 18:15:03.917843242 +0200
++++ mysql-8.4.0/sql/CMakeLists.txt     2024-05-09 18:16:12.978789893 +0200
+@@ -762,7 +762,6 @@ SET(SQL_SOURCE
    ${CONF_SOURCES}
    ${SQL_SHARED_SOURCES}
    ${SQL_HEADERS}
    ${CONF_SOURCES}
    ${SQL_SHARED_SOURCES}
    ${SQL_HEADERS}
@@ -55,7 +55,7 @@ diff -ur mysql-8.2.0.orig/sql/CMakeLists.txt mysql-8.2.0/sql/CMakeLists.txt
    ../libmysql/errmsg.cc
    ../sql-common/client.cc
    ../sql-common/client_plugin.cc
    ../libmysql/errmsg.cc
    ../sql-common/client.cc
    ../sql-common/client_plugin.cc
-@@ -831,11 +830,6 @@
+@@ -828,11 +827,6 @@ IF(WIN32)
        )
  ENDIF()
  
        )
  ENDIF()
  
@@ -67,11 +67,10 @@ diff -ur mysql-8.2.0.orig/sql/CMakeLists.txt mysql-8.2.0/sql/CMakeLists.txt
  # Workaround for Apple Clang bug on ARM.
  # When linking mysqld (and executables using server_unittest_library)
  # we get linker warnings about
  # Workaround for Apple Clang bug on ARM.
  # When linking mysqld (and executables using server_unittest_library)
  # we get linker warnings about
-@@ -860,14 +854,6 @@
-     )
+@@ -858,14 +852,6 @@ IF(APPLE_ARM)
  ENDIF()
  
  ENDIF()
  
--ADD_COMPILE_FLAGS(
+ ADD_COMPILE_FLAGS(
 -  ${BUNDLED_LZ4_PATH}/xxhash.c
 -  iterators/hash_join_iterator.cc
 -  iterators/composite_iterators.cc
 -  ${BUNDLED_LZ4_PATH}/xxhash.c
 -  iterators/hash_join_iterator.cc
 -  iterators/composite_iterators.cc
@@ -79,31 +78,32 @@ diff -ur mysql-8.2.0.orig/sql/CMakeLists.txt mysql-8.2.0/sql/CMakeLists.txt
 -  COMPILE_FLAGS -I${CMAKE_SOURCE_DIR}/extra/lz4 -I${BUNDLED_LZ4_PATH}
 -  )
 -
 -  COMPILE_FLAGS -I${CMAKE_SOURCE_DIR}/extra/lz4 -I${BUNDLED_LZ4_PATH}
 -  )
 -
- # Fixes "C1128: number of sections exceeded object file format limit" in MSVC
- IF(WIN32)
-   ADD_COMPILE_FLAGS(
-@@ -961,7 +947,7 @@
+-ADD_COMPILE_FLAGS(
+   iterators/composite_iterators.cc
+   iterators/hash_join_buffer.cc
+   COMPILE_FLAGS
+@@ -966,7 +952,7 @@ MYSQL_ADD_PLUGIN(mysql_native_password
  
  TARGET_LINK_LIBRARIES(sql_main ${MYSQLD_STATIC_PLUGIN_LIBS}
    mysql_server_component_services mysys strings vio
 -  mysql_binlog_event ${LIBWRAP} ${LIBDL} OpenSSL::SSL OpenSSL::Crypto
 +  mysql_binlog_event xxhash ${LIBWRAP} ${LIBDL} OpenSSL::SSL OpenSSL::Crypto
  
  TARGET_LINK_LIBRARIES(sql_main ${MYSQLD_STATIC_PLUGIN_LIBS}
    mysql_server_component_services mysys strings vio
 -  mysql_binlog_event ${LIBWRAP} ${LIBDL} OpenSSL::SSL OpenSSL::Crypto
 +  mysql_binlog_event xxhash ${LIBWRAP} ${LIBDL} OpenSSL::SSL OpenSSL::Crypto
-   extra::rapidjson)
+   extra::rapidjson extra::boost)
  
  # sql/immutable_string.h uses
  
  # sql/immutable_string.h uses
-diff -ur mysql-8.2.0.orig/sql/iterators/composite_iterators.cc mysql-8.2.0/sql/iterators/composite_iterators.cc
---- mysql-8.2.0.orig/sql/iterators/composite_iterators.cc      2023-12-18 01:19:35.299294336 +0100
-+++ mysql-8.2.0/sql/iterators/composite_iterators.cc   2023-12-18 02:13:09.216002357 +0100
-@@ -35,7 +35,7 @@
+diff -urNpa mysql-8.4.0.orig/sql/iterators/composite_iterators.cc mysql-8.4.0/sql/iterators/composite_iterators.cc
+--- mysql-8.4.0.orig/sql/iterators/composite_iterators.cc      2024-05-09 18:15:03.989844233 +0200
++++ mysql-8.4.0/sql/iterators/composite_iterators.cc   2024-05-09 18:15:57.910584352 +0200
+@@ -44,7 +44,7 @@
  #include "my_dbug.h"
  #include "my_inttypes.h"
  #include "my_sys.h"
 -#include "my_xxhash.h"
 +#include <xxhash.h>
  #include "my_dbug.h"
  #include "my_inttypes.h"
  #include "my_sys.h"
 -#include "my_xxhash.h"
 +#include <xxhash.h>
+ #include "mysql_com.h"
  #include "mysqld_error.h"
  #include "prealloced_array.h"
  #include "mysqld_error.h"
  #include "prealloced_array.h"
- #include "scope_guard.h"
-@@ -2255,7 +2255,7 @@
+@@ -2928,7 +2928,7 @@ bool SpillState::compute_chunk_file_sets
    const ulonglong primary_hash =
        static_cast<ulonglong>(m_materialized_table->hash_field->val_int());
    const uint64_t chunk_hash =
    const ulonglong primary_hash =
        static_cast<ulonglong>(m_materialized_table->hash_field->val_int());
    const uint64_t chunk_hash =
@@ -112,7 +112,7 @@ diff -ur mysql-8.2.0.orig/sql/iterators/composite_iterators.cc mysql-8.2.0/sql/i
  
    const size_t chunk_index = hash_to_chunk_index(chunk_hash);
    m_offending_row.m_chunk_offset = chunk_offset(chunk_index);
  
    const size_t chunk_index = hash_to_chunk_index(chunk_hash);
    m_offending_row.m_chunk_offset = chunk_offset(chunk_index);
-@@ -2331,7 +2331,7 @@
+@@ -3005,7 +3005,7 @@ bool SpillState::spread_hash_map_to_HF_c
          const ulonglong primary_hash =
              static_cast<ulonglong>(m_materialized_table->hash_field->val_int());
          const uint64_t chunk_hash =
          const ulonglong primary_hash =
              static_cast<ulonglong>(m_materialized_table->hash_field->val_int());
          const uint64_t chunk_hash =
@@ -121,7 +121,7 @@ diff -ur mysql-8.2.0.orig/sql/iterators/composite_iterators.cc mysql-8.2.0/sql/i
          const size_t chunk_index = hash_to_chunk_index(chunk_hash);
          const size_t set_index = chunk_index_to_set(chunk_index);
          const size_t offset = chunk_offset(chunk_index);
          const size_t chunk_index = hash_to_chunk_index(chunk_hash);
          const size_t set_index = chunk_index_to_set(chunk_index);
          const size_t offset = chunk_offset(chunk_index);
-@@ -2396,7 +2396,7 @@
+@@ -3070,7 +3070,7 @@ bool SpillState::append_hash_map_to_HF()
        const ulonglong primary_hash =
            static_cast<ulonglong>(m_materialized_table->hash_field->val_int());
        const uint64_t chunk_hash =
        const ulonglong primary_hash =
            static_cast<ulonglong>(m_materialized_table->hash_field->val_int());
        const uint64_t chunk_hash =
@@ -130,7 +130,7 @@ diff -ur mysql-8.2.0.orig/sql/iterators/composite_iterators.cc mysql-8.2.0/sql/i
        const size_t chunk_index = hash_to_chunk_index(chunk_hash);
        const size_t set_index = chunk_index_to_set(chunk_index);
        const size_t offset = chunk_offset(chunk_index);
        const size_t chunk_index = hash_to_chunk_index(chunk_hash);
        const size_t set_index = chunk_index_to_set(chunk_index);
        const size_t offset = chunk_offset(chunk_index);
-@@ -2491,7 +2491,7 @@
+@@ -3164,7 +3164,7 @@ bool SpillState::save_operand_to_IF_chun
        m_materialized_table->hash_field->store(
            static_cast<longlong>(primary_hash), true);
        const uint64_t chunk_hash =
        m_materialized_table->hash_field->store(
            static_cast<longlong>(primary_hash), true);
        const uint64_t chunk_hash =
@@ -139,7 +139,7 @@ diff -ur mysql-8.2.0.orig/sql/iterators/composite_iterators.cc mysql-8.2.0/sql/i
        const size_t chunk_index = hash_to_chunk_index(chunk_hash);
        const size_t set_index = chunk_index_to_set(chunk_index);
        const size_t offset = chunk_offset(chunk_index);
        const size_t chunk_index = hash_to_chunk_index(chunk_hash);
        const size_t set_index = chunk_index_to_set(chunk_index);
        const size_t offset = chunk_offset(chunk_index);
-@@ -2548,7 +2548,7 @@
+@@ -3219,7 +3219,7 @@ bool SpillState::write_HF(THD *thd, size
      const ulonglong primary_hash =
          static_cast<ulonglong>(m_materialized_table->hash_field->val_int());
      const uint64_t chunk_hash =
      const ulonglong primary_hash =
          static_cast<ulonglong>(m_materialized_table->hash_field->val_int());
      const uint64_t chunk_hash =
@@ -148,7 +148,7 @@ diff -ur mysql-8.2.0.orig/sql/iterators/composite_iterators.cc mysql-8.2.0/sql/i
      const size_t chunk_index = hash_to_chunk_index(chunk_hash);
      const size_t set_index = chunk_index_to_set(chunk_index);
      assert(chunk_offset(chunk_index) == chunk_idx);
      const size_t chunk_index = hash_to_chunk_index(chunk_hash);
      const size_t set_index = chunk_index_to_set(chunk_index);
      assert(chunk_offset(chunk_index) == chunk_idx);
-@@ -2787,7 +2787,7 @@
+@@ -3452,7 +3452,7 @@ int SpillState::read_next_row(const Oper
              const ulonglong primary_hash = static_cast<ulonglong>(
                  m_materialized_table->hash_field->val_int());
              const uint64_t chunk_hash =
              const ulonglong primary_hash = static_cast<ulonglong>(
                  m_materialized_table->hash_field->val_int());
              const uint64_t chunk_hash =
@@ -157,7 +157,7 @@ diff -ur mysql-8.2.0.orig/sql/iterators/composite_iterators.cc mysql-8.2.0/sql/i
              const size_t chunk_index = hash_to_chunk_index(chunk_hash);
              const size_t set_index = chunk_index_to_set(chunk_index);
              assert(chunk_offset(chunk_index) == m_current_chunk_idx);
              const size_t chunk_index = hash_to_chunk_index(chunk_hash);
              const size_t set_index = chunk_index_to_set(chunk_index);
              assert(chunk_offset(chunk_index) == m_current_chunk_idx);
-@@ -2820,7 +2820,7 @@
+@@ -3485,7 +3485,7 @@ int SpillState::read_next_row(const Oper
              const ulonglong primary_hash = static_cast<ulonglong>(
                  m_materialized_table->hash_field->val_int());
              const uint64_t chunk_hash =
              const ulonglong primary_hash = static_cast<ulonglong>(
                  m_materialized_table->hash_field->val_int());
              const uint64_t chunk_hash =
@@ -166,7 +166,7 @@ diff -ur mysql-8.2.0.orig/sql/iterators/composite_iterators.cc mysql-8.2.0/sql/i
              const size_t chunk_index = hash_to_chunk_index(chunk_hash);
              assert(chunk_index_to_set(chunk_index) == set_idx);
              assert(chunk_offset(chunk_index) == m_current_chunk_idx);
              const size_t chunk_index = hash_to_chunk_index(chunk_hash);
              assert(chunk_index_to_set(chunk_index) == set_idx);
              assert(chunk_offset(chunk_index) == m_current_chunk_idx);
-@@ -2909,7 +2909,7 @@
+@@ -3574,7 +3574,7 @@ int SpillState::read_next_row_secondary_
            const ulonglong primary_hash = static_cast<ulonglong>(
                m_materialized_table->hash_field->val_int());
            const uint64_t chunk_hash =
            const ulonglong primary_hash = static_cast<ulonglong>(
                m_materialized_table->hash_field->val_int());
            const uint64_t chunk_hash =
@@ -175,19 +175,19 @@ diff -ur mysql-8.2.0.orig/sql/iterators/composite_iterators.cc mysql-8.2.0/sql/i
            const size_t chunk_index = hash_to_chunk_index(chunk_hash);
            assert(chunk_index_to_set(chunk_index) == set_idx);
            assert(chunk_offset(chunk_index) == m_current_chunk_idx);
            const size_t chunk_index = hash_to_chunk_index(chunk_hash);
            assert(chunk_index_to_set(chunk_index) == set_idx);
            assert(chunk_offset(chunk_index) == m_current_chunk_idx);
-diff -ur mysql-8.2.0.orig/sql/iterators/hash_join_iterator.cc mysql-8.2.0/sql/iterators/hash_join_iterator.cc
---- mysql-8.2.0.orig/sql/iterators/hash_join_iterator.cc       2023-12-18 01:19:35.299294336 +0100
-+++ mysql-8.2.0/sql/iterators/hash_join_iterator.cc    2023-12-18 01:20:07.132718589 +0100
-@@ -32,7 +32,7 @@
- #include "field_types.h"
- #include "my_alloc.h"
- #include "my_bit.h"
--#include "my_xxhash.h"
-+#include <xxhash.h>
+diff -urNpa mysql-8.4.0.orig/sql/iterators/hash_join_iterator.cc mysql-8.4.0/sql/iterators/hash_join_iterator.cc
+--- mysql-8.4.0.orig/sql/iterators/hash_join_iterator.cc       2024-05-09 18:15:03.989844233 +0200
++++ mysql-8.4.0/sql/iterators/hash_join_iterator.cc    2024-05-09 18:15:57.910584352 +0200
+@@ -38,7 +38,7 @@
+ #include "my_dbug.h"
  #include "my_inttypes.h"
  #include "my_sys.h"
  #include "my_inttypes.h"
  #include "my_sys.h"
-@@ -356,7 +356,7 @@
+-#include "my_xxhash.h"
++#include <xxhash.h>
+ #include "mysql/components/services/bits/psi_bits.h"
+ #include "mysqld_error.h"
+ #include "sql/item.h"
+@@ -378,7 +378,7 @@ static bool WriteRowToChunk(
    const uint64_t join_key_hash =
        join_key_and_row_buffer->length() == 0
            ? kZeroKeyLengthHash
    const uint64_t join_key_hash =
        join_key_and_row_buffer->length() == 0
            ? kZeroKeyLengthHash
@@ -196,10 +196,10 @@ diff -ur mysql-8.2.0.orig/sql/iterators/hash_join_iterator.cc mysql-8.2.0/sql/it
                       join_key_and_row_buffer->length(), xxhash_seed);
  
    assert((chunks->size() & (chunks->size() - 1)) == 0);
                       join_key_and_row_buffer->length(), xxhash_seed);
  
    assert((chunks->size() & (chunks->size() - 1)) == 0);
-diff -ur mysql-8.2.0.orig/sql/rpl_write_set_handler.cc mysql-8.2.0/sql/rpl_write_set_handler.cc
---- mysql-8.2.0.orig/sql/rpl_write_set_handler.cc      2023-12-18 01:19:35.612298508 +0100
-+++ mysql-8.2.0/sql/rpl_write_set_handler.cc   2023-12-18 01:23:09.729155640 +0100
-@@ -36,7 +36,7 @@
+diff -urNpa mysql-8.4.0.orig/sql/rpl_write_set_handler.cc mysql-8.4.0/sql/rpl_write_set_handler.cc
+--- mysql-8.4.0.orig/sql/rpl_write_set_handler.cc      2024-05-09 18:15:03.945843627 +0200
++++ mysql-8.4.0/sql/rpl_write_set_handler.cc   2024-05-09 18:15:57.910584352 +0200
+@@ -37,7 +37,7 @@
  #include "my_dbug.h"
  #include "my_inttypes.h"
  #include "my_murmur3.h"  // murmur3_32
  #include "my_dbug.h"
  #include "my_inttypes.h"
  #include "my_murmur3.h"  // murmur3_32
@@ -208,19 +208,19 @@ diff -ur mysql-8.2.0.orig/sql/rpl_write_set_handler.cc mysql-8.2.0/sql/rpl_write
  #include "mysql/strings/m_ctype.h"
  #include "mysql_com.h"
  #include "sql-common/json_binary.h"
  #include "mysql/strings/m_ctype.h"
  #include "mysql_com.h"
  #include "sql-common/json_binary.h"
-@@ -75,7 +75,7 @@
-   if (algorithm == HASH_ALGORITHM_MURMUR32)
-     return (murmur3_32((const uchar *)T, len, 0));
-   else
--    return (MY_XXH64((const uchar *)T, len, 0));
-+    return (XXH64((const uchar *)T, len, 0));
- }
+@@ -682,7 +682,7 @@ static bool generate_hash_pke(const std:
+ ) {
+   DBUG_TRACE;
  
  
- #ifndef NDEBUG
-diff -ur mysql-8.2.0.orig/unittest/gunit/hash_join-t.cc mysql-8.2.0/unittest/gunit/hash_join-t.cc
---- mysql-8.2.0.orig/unittest/gunit/hash_join-t.cc     2023-12-18 01:19:41.381375395 +0100
-+++ mysql-8.2.0/unittest/gunit/hash_join-t.cc  2023-12-18 01:20:51.800313888 +0100
-@@ -37,7 +37,7 @@
+-  uint64 hash = MY_XXH64(pke.c_str(), pke.size(), 0);
++  uint64 hash = XXH64(pke.c_str(), pke.size(), 0);
+   if (thd->get_transaction()->get_transaction_write_set_ctx()->add_write_set(
+           hash))
+     return true;
+diff -urNpa mysql-8.4.0.orig/unittest/gunit/hash_join-t.cc mysql-8.4.0/unittest/gunit/hash_join-t.cc
+--- mysql-8.4.0.orig/unittest/gunit/hash_join-t.cc     2024-05-09 18:15:15.950008783 +0200
++++ mysql-8.4.0/unittest/gunit/hash_join-t.cc  2024-05-09 18:15:57.910584352 +0200
+@@ -38,7 +38,7 @@
  #include "my_config.h"
  #include "my_inttypes.h"
  #include "my_murmur3.h"
  #include "my_config.h"
  #include "my_inttypes.h"
  #include "my_murmur3.h"
@@ -229,7 +229,7 @@ diff -ur mysql-8.2.0.orig/unittest/gunit/hash_join-t.cc mysql-8.2.0/unittest/gun
  #include "mysql/components/services/bits/psi_bits.h"
  #include "prealloced_array.h"
  #include "sql/field.h"
  #include "mysql/components/services/bits/psi_bits.h"
  #include "prealloced_array.h"
  #include "sql/field.h"
-@@ -226,7 +226,7 @@
+@@ -227,7 +227,7 @@ static void BM_XXHash64ShortData(size_t
  
    size_t sum = 0;
    for (size_t i = 0; i < num_iterations; ++i) {
  
    size_t sum = 0;
    for (size_t i = 0; i < num_iterations; ++i) {
@@ -238,7 +238,7 @@ diff -ur mysql-8.2.0.orig/unittest/gunit/hash_join-t.cc mysql-8.2.0/unittest/gun
    }
    StopBenchmarkTiming();
  
    }
    StopBenchmarkTiming();
  
-@@ -245,7 +245,7 @@
+@@ -246,7 +246,7 @@ static void BM_XXHash64LongData(size_t n
  
    size_t sum = 0;
    for (size_t i = 0; i < num_iterations; ++i) {
  
    size_t sum = 0;
    for (size_t i = 0; i < num_iterations; ++i) {
@@ -247,10 +247,10 @@ diff -ur mysql-8.2.0.orig/unittest/gunit/hash_join-t.cc mysql-8.2.0/unittest/gun
    }
    StopBenchmarkTiming();
  
    }
    StopBenchmarkTiming();
  
-diff -ur mysql-8.2.0.orig/unittest/gunit/innodb/ut0rnd-t.cc mysql-8.2.0/unittest/gunit/innodb/ut0rnd-t.cc
---- mysql-8.2.0.orig/unittest/gunit/innodb/ut0rnd-t.cc 2023-12-18 01:19:41.600378312 +0100
-+++ mysql-8.2.0/unittest/gunit/innodb/ut0rnd-t.cc      2023-12-18 01:20:07.134718615 +0100
-@@ -33,7 +33,7 @@
+diff -urNpa mysql-8.4.0.orig/unittest/gunit/innodb/ut0rnd-t.cc mysql-8.4.0/unittest/gunit/innodb/ut0rnd-t.cc
+--- mysql-8.4.0.orig/unittest/gunit/innodb/ut0rnd-t.cc 2024-05-09 18:15:15.998009443 +0200
++++ mysql-8.4.0/unittest/gunit/innodb/ut0rnd-t.cc      2024-05-09 18:15:57.910584352 +0200
+@@ -34,7 +34,7 @@
  #include "storage/innobase/include/ut0crc32.h"
  #include "storage/innobase/include/ut0rnd.h"
  
  #include "storage/innobase/include/ut0crc32.h"
  #include "storage/innobase/include/ut0rnd.h"
  
index 5fdde4876368a65feabed97c461c67f006bec027..15f44b10ec0d8d81fa17723586db423b8b55c911 100644 (file)
 %bcond_with    tests           # run test suite
 %bcond_with    ndb             # NDB is now a separate product, this here is broken, so disable it
 %bcond_without ldap            # LDAP auth support (requires MIT Kerberos)
 %bcond_with    tests           # run test suite
 %bcond_with    ndb             # NDB is now a separate product, this here is broken, so disable it
 %bcond_without ldap            # LDAP auth support (requires MIT Kerberos)
+%bcond_with    default         # default version of MySQL (with common and devel)
 
 
-%define mysqlversion 8.2
-%define mysqlpriority 82
+%define mysqlversion 8.4
+%define mysqlpriority 84
 
 Summary:       MySQL: a very fast and reliable SQL database engine
 Summary(de.UTF-8):     MySQL: ist eine SQL-Datenbank
 
 Summary:       MySQL: a very fast and reliable SQL database engine
 Summary(de.UTF-8):     MySQL: ist eine SQL-Datenbank
@@ -25,12 +26,12 @@ Summary(ru.UTF-8):  MySQL - быстрый SQL-сервер
 Summary(uk.UTF-8):     MySQL - швидкий SQL-сервер
 Summary(zh_CN.UTF-8):  MySQL数据库服务器
 Name:          mysql-%{mysqlversion}
 Summary(uk.UTF-8):     MySQL - швидкий SQL-сервер
 Summary(zh_CN.UTF-8):  MySQL数据库服务器
 Name:          mysql-%{mysqlversion}
-Version:       8.2.0
+Version:       8.4.0
 Release:        1
 License:       GPL v2 + MySQL FOSS License Exception
 Group:         Applications/Databases
 Source0:       http://cdn.mysql.com/Downloads/MySQL-%{mysqlversion}/mysql-%{version}.tar.gz
 Release:        1
 License:       GPL v2 + MySQL FOSS License Exception
 Group:         Applications/Databases
 Source0:       http://cdn.mysql.com/Downloads/MySQL-%{mysqlversion}/mysql-%{version}.tar.gz
-# Source0-md5: 9ddeecbdb046cd4a8a4340445206130d
+# Source0-md5: c3b1ccd1ba5b09f118ce6e27f0f0df98
 Source100:     http://www.sphinxsearch.com/files/sphinx-2.2.11-release.tar.gz
 # Source100-md5:       5cac34f3d78a9d612ca4301abfcbd666
 %if %{without system_boost}
 Source100:     http://www.sphinxsearch.com/files/sphinx-2.2.11-release.tar.gz
 # Source100-md5:       5cac34f3d78a9d612ca4301abfcbd666
 %if %{without system_boost}
@@ -255,7 +256,7 @@ MySQL - wspólne pliki i katalogi.
 Summary:        Common directories for MysSQL %{mysqlversion}
 Summary(pl.UTF-8):      Wspólne pliki i katalogi dla MySQL %{mysqlversion}
 Group:          Applicataion/Databases
 Summary:        Common directories for MysSQL %{mysqlversion}
 Summary(pl.UTF-8):      Wspólne pliki i katalogi dla MySQL %{mysqlversion}
 Group:          Applicataion/Databases
-Requires:      mysql-common >= %{version}-%{release}
+Requires:      mysql-common >= 8.0.0
 
 %description dirs
 Common directories for MysSQL %{mysqlversion}
 
 %description dirs
 Common directories for MysSQL %{mysqlversion}
@@ -462,6 +463,22 @@ This package contains the standard MySQL NDB CPC Daemon.
 %description ndb-cpc -l pl.UTF-8
 Ten pakiet zawiera standardowego demona MySQL NDB CPC.
 
 %description ndb-cpc -l pl.UTF-8
 Ten pakiet zawiera standardowego demona MySQL NDB CPC.
 
+%package router
+Summary:       MySQL Router
+Summary(pl.UTF-8):     MySQL Router
+Group:         Applications/Databases
+Requires:      alternatives
+Requires:      %{name}-dirs = %{version}-%{release}
+Requires:      %{name}-libs = %{version}-%{release}
+
+%description router
+The MySQL Router software delivers a fast, multi-threaded way of
+routing connections from MySQL Clients to MySQL Servers.
+
+%description router -l pl.UTF-8
+Oprogramowanie MySQL Router zapewnia szybki i wielowątkowy sposób
+przekierowywania połączeń od klientów MySQL do serwerów MySQL.
+
 %prep
 %setup -q %{?with_sphinx:-a100} %{!?with_system_boost:-a101} -n mysql-%{version}
 
 %prep
 %setup -q %{?with_sphinx:-a100} %{!?with_system_boost:-a101} -n mysql-%{version}
 
@@ -503,21 +520,23 @@ CPPFLAGS="%{rpmcppflags}" \
        %{?with_systemtap:-DENABLE_DTRACE=ON} \
        -DFEATURE_SET="community" \
        -DINSTALL_LAYOUT=RPM \
        %{?with_systemtap:-DENABLE_DTRACE=ON} \
        -DFEATURE_SET="community" \
        -DINSTALL_LAYOUT=RPM \
-        -DINSTALL_BINDIR=%{mysqllibdir}/bin \
-        -DINSTALL_SBINDIR=%{mysqllibdir}/sbin \
-        -DINSTALL_MANDIR=%{mysqldatadir}/man \
-        -DINSTALL_LIBDIR=%{_lib} \
-        -DINSTALL_PRIV_LIBDIR=%{_libdir}/mysql/%{mysqlversion}/private \
+       -DINSTALL_BINDIR=%{mysqllibdir}/bin \
+       -DINSTALL_SBINDIR=%{mysqllibdir}/sbin \
+       -DINSTALL_MANDIR=%{mysqldatadir}/man \
+       -DINSTALL_LIBDIR=%{_lib} \
+       -DINSTALL_PRIV_LIBDIR=%{_libdir}/mysql/%{mysqlversion}/private \
        -DINSTALL_MYSQLTESTDIR_RPM="" \
        -DINSTALL_MYSQLDATADIR=/var/lib/mysql/%{mysqlversion} \
        -DINSTALL_PLUGINDIR=%{_lib}/mysql/%{mysqlversion}/plugin \
        -DINSTALL_MYSQLTESTDIR_RPM="" \
        -DINSTALL_MYSQLDATADIR=/var/lib/mysql/%{mysqlversion} \
        -DINSTALL_PLUGINDIR=%{_lib}/mysql/%{mysqlversion}/plugin \
-        -DINSTALL_SECURE_FILE_PRIVDIR=/var/lib/mysql-files/%{mysqlversion} \
+       -DINSTALL_SECURE_FILE_PRIVDIR=/var/lib/mysql-files/%{mysqlversion} \
        -DINSTALL_SQLBENCHDIR=%{_datadir} \
        -DINSTALL_SUPPORTFILESDIR=share/mysql/%{mysqlversion}/support \
        -DINSTALL_MYSQLSHAREDIR=share/mysql/%{mysqlversion}/lang \
        -DINSTALL_MYSQLTESTDIR=share/mysql/%{mysqlversion}/test \
        -DINSTALL_SQLBENCHDIR=%{_datadir} \
        -DINSTALL_SUPPORTFILESDIR=share/mysql/%{mysqlversion}/support \
        -DINSTALL_MYSQLSHAREDIR=share/mysql/%{mysqlversion}/lang \
        -DINSTALL_MYSQLTESTDIR=share/mysql/%{mysqlversion}/test \
-        -DROUTER_INSTALL_LIBDIR=%{_libdir}/mysql/%{mysqlversion}/router/private \
-        -DROUTER_INSTALL_PLUGINDIR=%{_libdir}/mysql/%{mysqlversion}/router \
+       -DROUTER_INSTALL_DATADIR=/var/lib/mysqlrouter/%{mysqlversion} \
+       -DROUTER_INSTALL_LIBDIR=%{_libdir}/mysql/%{mysqlversion}/router/private \
+       -DROUTER_INSTALL_LOGDIR=/var/log/mysqlrouter/%{mysqlversion} \
+       -DROUTER_INSTALL_PLUGINDIR=%{_libdir}/mysql/%{mysqlversion}/router \
        -DMYSQL_UNIX_ADDR=/var/lib/mysql/%{mysqlversion}/mysql.sock \
        %{?debug:-DWITH_DEBUG=ON} \
        -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
        -DMYSQL_UNIX_ADDR=/var/lib/mysql/%{mysqlversion}/mysql.sock \
        %{?debug:-DWITH_DEBUG=ON} \
        -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
@@ -531,7 +550,7 @@ CPPFLAGS="%{rpmcppflags}" \
        -DWITH_LZ4=system \
        -DWITH_PROTOBUF=system \
        -DWITH_SASL=system \
        -DWITH_LZ4=system \
        -DWITH_PROTOBUF=system \
        -DWITH_SASL=system \
-        -DWITH_UNIT_TESTS=%{?with_tests:ON}%{!?with_tests:OFF} \
+       -DWITH_UNIT_TESTS=%{?with_tests:ON}%{!?with_tests:OFF} \
        -DWITH_SSL=%{?with_ssl:system}%{!?with_ssl:no} \
        %{!?with_system_boost:-DWITH_BOOST="$(pwd)/$(ls -1d ../boost_*)"} \
        -DWITH_ZLIB=system \
        -DWITH_SSL=%{?with_ssl:system}%{!?with_ssl:no} \
        %{!?with_system_boost:-DWITH_BOOST="$(pwd)/$(ls -1d ../boost_*)"} \
        -DWITH_ZLIB=system \
@@ -545,8 +564,8 @@ CPPFLAGS="%{rpmcppflags}" \
 
 %install
 rm -rf $RPM_BUILD_ROOT
 
 %install
 rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT/etc/{logrotate.d,rc.d/init.d,sysconfig,mysql/%{mysqlversion},skel} \
-          $RPM_BUILD_ROOT/var/{log/{archive,}/mysql/%{mysqlversion},lib/{mysql,mysql-files}/%{mysqlversion}} \
+install -d $RPM_BUILD_ROOT/etc/{ld.so.conf.d,logrotate.d,rc.d/init.d,sysconfig,mysql/%{mysqlversion},skel} \
+          $RPM_BUILD_ROOT/var/{log/{archive,}/{mysql,mysqlrouter}/%{mysqlversion},lib/{mysql,mysql-files,mysqlrouter}/%{mysqlversion}} \
           $RPM_BUILD_ROOT%{_libdir}
 
 %{__make} -C build install \
           $RPM_BUILD_ROOT%{_libdir}
 
 %{__make} -C build install \
@@ -559,9 +578,12 @@ sed -e 's,@mysqlversion@,%{mysqlversion},g;' %{SOURCE3} >$RPM_BUILD_ROOT/etc/log
 sed -e 's,@mysqlversion@,%{mysqlversion},g;' %{SOURCE4} >mysqld.conf
 sed -e 's,@mysqlversion@,%{mysqlversion},g;' %{SOURCE5} >$RPM_BUILD_ROOT%{_sysconfdir}/mysql/%{mysqlversion}/clusters.conf
 touch $RPM_BUILD_ROOT/var/log/mysql/%{mysqlversion}/{mysqld,query,slow}.log
 sed -e 's,@mysqlversion@,%{mysqlversion},g;' %{SOURCE4} >mysqld.conf
 sed -e 's,@mysqlversion@,%{mysqlversion},g;' %{SOURCE5} >$RPM_BUILD_ROOT%{_sysconfdir}/mysql/%{mysqlversion}/clusters.conf
 touch $RPM_BUILD_ROOT/var/log/mysql/%{mysqlversion}/{mysqld,query,slow}.log
+touch $RPM_BUILD_ROOT/var/log/mysqlrouter/%{mysqlversion}/mysqlrouter.log
 
 mv $RPM_BUILD_ROOT/etc/logrotate.d/{mysqlrouter,%{name}-router}
 
 
 mv $RPM_BUILD_ROOT/etc/logrotate.d/{mysqlrouter,%{name}-router}
 
+echo "%{_libdir}/mysql/%{mysqlversion}/router/private" >$RPM_BUILD_ROOT/etc/ld.so.conf.d/%{name}-router.conf
+
 # remove innodb directives from mysqld.conf if mysqld is configured without
 %if %{without innodb}
        cp mysqld.conf mysqld.tmp
 # remove innodb directives from mysqld.conf if mysqld is configured without
 %if %{without innodb}
        cp mysqld.conf mysqld.tmp
@@ -603,7 +625,6 @@ sed -i -e '/libs/s/-lprobes_mysql//' $RPM_BUILD_ROOT%{_libdir}/mysql/%{mysqlvers
 %{?debug:nm -n $RPM_BUILD_ROOT%{_sbindir}/mysqld > $RPM_BUILD_ROOT%{_datadir}/%{name}/mysqld.sym}
 
 # do not clobber users $PATH
 %{?debug:nm -n $RPM_BUILD_ROOT%{_sbindir}/mysqld > $RPM_BUILD_ROOT%{_datadir}/%{name}/mysqld.sym}
 
 # do not clobber users $PATH
-%{__mv} $RPM_BUILD_ROOT{%{_libdir}/mysql/%{mysqlversion}/bin,%{_libdir}/mysql/%{mysqlversion}/sbin}/mysql_upgrade
 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/mysql/%{mysqlversion}/bin,%{_libdir}/mysql/%{mysqlversion}/sbin}/innochecksum
 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/mysql/%{mysqlversion}/bin,%{_libdir}/mysql/%{mysqlversion}/sbin}/myisamchk
 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/mysql/%{mysqlversion}/bin,%{_libdir}/mysql/%{mysqlversion}/sbin}/myisamlog
 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/mysql/%{mysqlversion}/bin,%{_libdir}/mysql/%{mysqlversion}/sbin}/innochecksum
 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/mysql/%{mysqlversion}/bin,%{_libdir}/mysql/%{mysqlversion}/sbin}/myisamchk
 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/mysql/%{mysqlversion}/bin,%{_libdir}/mysql/%{mysqlversion}/sbin}/myisamlog
@@ -622,12 +643,10 @@ sed -i -e '/libs/s/-lprobes_mysql//' $RPM_BUILD_ROOT%{_libdir}/mysql/%{mysqlvers
 %{__rm} $RPM_BUILD_ROOT%{_datadir}/mysql/%{mysqlversion}/man/man1/mysqlman.1*
 %{__rm} $RPM_BUILD_ROOT%{_datadir}/mysql/%{mysqlversion}/man/man1/mysqlslap.1*
 %{__rm} $RPM_BUILD_ROOT%{_datadir}/mysql/%{mysqlversion}/man/man1/comp_err.1*
 %{__rm} $RPM_BUILD_ROOT%{_datadir}/mysql/%{mysqlversion}/man/man1/mysqlman.1*
 %{__rm} $RPM_BUILD_ROOT%{_datadir}/mysql/%{mysqlversion}/man/man1/mysqlslap.1*
 %{__rm} $RPM_BUILD_ROOT%{_datadir}/mysql/%{mysqlversion}/man/man1/comp_err.1*
-%{__rm} $RPM_BUILD_ROOT%{_datadir}/mysql/%{mysqlversion}/man/man1/lz4_decompress.1*
-%{__rm} $RPM_BUILD_ROOT%{_datadir}/mysql/%{mysqlversion}/man/man1/zlib_decompress.1*
 
 # we don't package those (we have no -test or -testsuite pkg) and some of them just segfault
 %{__rm} -r $RPM_BUILD_ROOT%{_datadir}/mysql/%{mysqlversion}/test
 
 # we don't package those (we have no -test or -testsuite pkg) and some of them just segfault
 %{__rm} -r $RPM_BUILD_ROOT%{_datadir}/mysql/%{mysqlversion}/test
-%{__rm} $RPM_BUILD_ROOT%{_libdir}/mysql/%{mysqlversion}/bin/{comp_err,mysql_client_test,mysql_keyring_encryption_test,mysqlslap,mysqltest,mysqltest_safe_process,mysqlxtest,zlib_decompress}
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/mysql/%{mysqlversion}/bin/{comp_err,mysql_client_test,mysql_keyring_encryption_test,mysql_test_event_tracking,mysqlslap,mysqltest,mysqltest_safe_process,mysqlxtest}
 %{__rm} $RPM_BUILD_ROOT%{_libdir}/mysql/%{mysqlversion}/plugin/test_udf_services.so
 %{__rm} $RPM_BUILD_ROOT%{_libdir}/mysql/%{mysqlversion}/plugin/component_example_*.so
 %{__rm} $RPM_BUILD_ROOT%{_libdir}/mysql/%{mysqlversion}/plugin/component_log_sink_test.so
 %{__rm} $RPM_BUILD_ROOT%{_libdir}/mysql/%{mysqlversion}/plugin/test_udf_services.so
 %{__rm} $RPM_BUILD_ROOT%{_libdir}/mysql/%{mysqlversion}/plugin/component_example_*.so
 %{__rm} $RPM_BUILD_ROOT%{_libdir}/mysql/%{mysqlversion}/plugin/component_log_sink_test.so
@@ -663,18 +682,6 @@ update-alternatives \
 update-alternatives \
        --install %{_bindir}/mysql_migrate_keyring mysql_migrate_keyring %{_libdir}/mysql/%{mysqlversion}/bin/mysql_migrate_keyring %{mysqlpriority} \
        --slave %{_mandir}/man1/mysql_migrate_keyring.1 mysql_migrate_keyring.1 %{_datadir}/mysql/%{mysqlversion}/man/man1/mysql_migrate_keyring.1* || :
 update-alternatives \
        --install %{_bindir}/mysql_migrate_keyring mysql_migrate_keyring %{_libdir}/mysql/%{mysqlversion}/bin/mysql_migrate_keyring %{mysqlpriority} \
        --slave %{_mandir}/man1/mysql_migrate_keyring.1 mysql_migrate_keyring.1 %{_datadir}/mysql/%{mysqlversion}/man/man1/mysql_migrate_keyring.1* || :
-update-alternatives \
-       --install %{_bindir}/mysqlrouter mysqlrouter %{_libdir}/mysql/%{mysqlversion}/bin/mysqlrouter %{mysqlpriority} \
-       --slave %{_mandir}/man1/mysqlrouter.1 mysqlrouter.1 %{_datadir}/mysql/%{mysqlversion}/man/man1/mysqlrouter.1* || :
-update-alternatives \
-       --install %{_bindir}/mysqlrouter_keyring mysqlrouter_keyring %{_libdir}/mysql/%{mysqlversion}/bin/mysqlrouter_keyring %{mysqlpriority} \
-       --slave %{_mandir}/man1/mysqlrouter_keyring.1 mysqlrouter_keyring.1 %{_datadir}/mysql/%{mysqlversion}/man/man1/mysqlrouter_keyring.1* || :
-update-alternatives \
-       --install %{_bindir}/mysqlrouter_passwd mysqlrouter_passwd %{_libdir}/mysql/%{mysqlversion}/bin/mysqlrouter_passwd %{mysqlpriority} \
-       --slave %{_mandir}/man1/mysqlrouter_passwd.1 mysqlrouter_passwd.1 %{_datadir}/mysql/%{mysqlversion}/man/man1/mysqlrouter_passwd.1* || :
-update-alternatives \
-       --install %{_bindir}/mysqlrouter_plugin_info mysqlrouter_plugin_info %{_libdir}/mysql/%{mysqlversion}/bin/mysqlrouter_plugin_info %{mysqlpriority} \
-       --slave %{_mandir}/man1/mysqlrouter_plugin_info.1 mysqlrouter_plugin_info.1 %{_datadir}/mysql/%{mysqlversion}/man/man1/mysqlrouter_plugin_info.1* || :
 update-alternatives \
        --install %{_sbindir}/innochecksum innochecksum %{_libdir}/mysql/%{mysqlversion}/sbin/innochecksum %{mysqlpriority} \
        --slave %{_mandir}/man1/innochecksum.1 innochecksum.1 %{_datadir}/mysql/%{mysqlversion}/man/man1/innochecksum.1* || :
 update-alternatives \
        --install %{_sbindir}/innochecksum innochecksum %{_libdir}/mysql/%{mysqlversion}/sbin/innochecksum %{mysqlpriority} \
        --slave %{_mandir}/man1/innochecksum.1 innochecksum.1 %{_datadir}/mysql/%{mysqlversion}/man/man1/innochecksum.1* || :
@@ -690,9 +697,6 @@ update-alternatives \
 update-alternatives \
        --install %{_sbindir}/myisampack myisampack %{_libdir}/mysql/%{mysqlversion}/sbin/myisampack %{mysqlpriority} \
        --slave %{_mandir}/man1/myisampack.1 myisampack.1 %{_datadir}/mysql/%{mysqlversion}/man/man1/myisampack.1* || :
 update-alternatives \
        --install %{_sbindir}/myisampack myisampack %{_libdir}/mysql/%{mysqlversion}/sbin/myisampack %{mysqlpriority} \
        --slave %{_mandir}/man1/myisampack.1 myisampack.1 %{_datadir}/mysql/%{mysqlversion}/man/man1/myisampack.1* || :
-update-alternatives \
-       --install %{_sbindir}/mysql_upgrade mysql_upgrade %{_libdir}/mysql/%{mysqlversion}/sbin/mysql_upgrade %{mysqlpriority} \
-       --slave %{_mandir}/man1/mysql_upgrade.1 mysql_upgrade.1 %{_datadir}/mysql/%{mysqlversion}/man/man1/mysql_upgrade.1* || :
 update-alternatives \
        --install %{_sbindir}/mysqlcheck mysqlcheck %{_libdir}/mysql/%{mysqlversion}/sbin/mysqlcheck %{mysqlpriority} \
        --slave %{_mandir}/man1/mysqlcheck.1 mysqlcheck.1 %{_datadir}/mysql/%{mysqlversion}/man/man1/mysqlcheck.1* || :
 update-alternatives \
        --install %{_sbindir}/mysqlcheck mysqlcheck %{_libdir}/mysql/%{mysqlversion}/sbin/mysqlcheck %{mysqlpriority} \
        --slave %{_mandir}/man1/mysqlcheck.1 mysqlcheck.1 %{_datadir}/mysql/%{mysqlversion}/man/man1/mysqlcheck.1* || :
@@ -705,16 +709,11 @@ update-alternatives \
 if [ "$1" = "0" ]; then
        update-alternatives --remove ibd2sdi %{_libdir}/mysql/%{mysqlversion}/bin/ibd2sdi || :
        update-alternatives --remove mysql_migrate_keyring %{_libdir}/mysql/%{mysqlversion}/bin/mysql_migrate_keyring || :
 if [ "$1" = "0" ]; then
        update-alternatives --remove ibd2sdi %{_libdir}/mysql/%{mysqlversion}/bin/ibd2sdi || :
        update-alternatives --remove mysql_migrate_keyring %{_libdir}/mysql/%{mysqlversion}/bin/mysql_migrate_keyring || :
-       update-alternatives --remove mysqlrouter %{_libdir}/mysql/%{mysqlversion}/bin/mysqlrouter || :
-       update-alternatives --remove mysqlrouter_keyring %{_libdir}/mysql/%{mysqlversion}/bin/mysqlrouter_keyring || :
-       update-alternatives --remove mysqlrouter_passwd %{_libdir}/mysql/%{mysqlversion}/bin/mysqlrouter_passwd || :
-       update-alternatives --remove mysqlrouter_plugin_info %{_libdir}/mysql/%{mysqlversion}/bin/mysqlrouter_plugin_info || :
        update-alternatives --remove innochecksum %{_libdir}/mysql/%{mysqlversion}/sbin/innochecksum || :
        update-alternatives --remove my_print_defaults %{_libdir}/mysql/%{mysqlversion}/sbin/my_print_defaults || :
        update-alternatives --remove myisamchk %{_libdir}/mysql/%{mysqlversion}/sbin/myisamchk || :
        update-alternatives --remove myisamlog %{_libdir}/mysql/%{mysqlversion}/sbin/myisamlog || :
        update-alternatives --remove myisampack %{_libdir}/mysql/%{mysqlversion}/sbin/myisampack || :
        update-alternatives --remove innochecksum %{_libdir}/mysql/%{mysqlversion}/sbin/innochecksum || :
        update-alternatives --remove my_print_defaults %{_libdir}/mysql/%{mysqlversion}/sbin/my_print_defaults || :
        update-alternatives --remove myisamchk %{_libdir}/mysql/%{mysqlversion}/sbin/myisamchk || :
        update-alternatives --remove myisamlog %{_libdir}/mysql/%{mysqlversion}/sbin/myisamlog || :
        update-alternatives --remove myisampack %{_libdir}/mysql/%{mysqlversion}/sbin/myisampack || :
-       update-alternatives --remove mysql_upgrade %{_libdir}/mysql/%{mysqlversion}/sbin/mysql_upgrade || :
        update-alternatives --remove mysqlcheck %{_libdir}/mysql/%{mysqlversion}/sbin/mysqlcheck || :
        update-alternatives --remove mysqld %{_libdir}/mysql/%{mysqlversion}/sbin/mysqld || :
 fi
        update-alternatives --remove mysqlcheck %{_libdir}/mysql/%{mysqlversion}/sbin/mysqlcheck || :
        update-alternatives --remove mysqld %{_libdir}/mysql/%{mysqlversion}/sbin/mysqld || :
 fi
@@ -950,27 +949,54 @@ fi
 %post  libs -p /sbin/ldconfig
 %postun        libs -p /sbin/ldconfig
 
 %post  libs -p /sbin/ldconfig
 %postun        libs -p /sbin/ldconfig
 
+%pre router
+%groupadd -g 348 mysqlrouter
+%useradd -u 348 -d /var/lib/mysqlrouter -s /bin/false -g mysqlrouter -c "MySQL Router" mysqlrouter
+
+%post  router
+/sbin/ldconfig
+
+%posttrans router
+update-alternatives \
+       --install %{_bindir}/mysqlrouter mysqlrouter %{_libdir}/mysql/%{mysqlversion}/bin/mysqlrouter %{mysqlpriority} \
+       --slave %{_mandir}/man1/mysqlrouter.1 mysqlrouter.1 %{_datadir}/mysql/%{mysqlversion}/man/man1/mysqlrouter.1* || :
+update-alternatives \
+       --install %{_bindir}/mysqlrouter_keyring mysqlrouter_keyring %{_libdir}/mysql/%{mysqlversion}/bin/mysqlrouter_keyring %{mysqlpriority} \
+       --slave %{_mandir}/man1/mysqlrouter_keyring.1 mysqlrouter_keyring.1 %{_datadir}/mysql/%{mysqlversion}/man/man1/mysqlrouter_keyring.1* || :
+update-alternatives \
+       --install %{_bindir}/mysqlrouter_passwd mysqlrouter_passwd %{_libdir}/mysql/%{mysqlversion}/bin/mysqlrouter_passwd %{mysqlpriority} \
+       --slave %{_mandir}/man1/mysqlrouter_passwd.1 mysqlrouter_passwd.1 %{_datadir}/mysql/%{mysqlversion}/man/man1/mysqlrouter_passwd.1* || :
+update-alternatives \
+       --install %{_bindir}/mysqlrouter_plugin_info mysqlrouter_plugin_info %{_libdir}/mysql/%{mysqlversion}/bin/mysqlrouter_plugin_info %{mysqlpriority} \
+       --slave %{_mandir}/man1/mysqlrouter_plugin_info.1 mysqlrouter_plugin_info.1 %{_datadir}/mysql/%{mysqlversion}/man/man1/mysqlrouter_plugin_info.1* || :
+
+%postun        router
+/sbin/ldconfig
+if [ "$1" = "0" ]; then
+       update-alternatives --remove mysqlrouter %{_libdir}/mysql/%{mysqlversion}/bin/mysqlrouter || :
+       update-alternatives --remove mysqlrouter_keyring %{_libdir}/mysql/%{mysqlversion}/bin/mysqlrouter_keyring || :
+       update-alternatives --remove mysqlrouter_passwd %{_libdir}/mysql/%{mysqlversion}/bin/mysqlrouter_passwd || :
+       update-alternatives --remove mysqlrouter_plugin_info %{_libdir}/mysql/%{mysqlversion}/bin/mysqlrouter_plugin_info || :
+       %userremove mysqlrouter
+       %groupremove mysqlrouter
+fi
+
 %files
 %defattr(644,root,root,755)
 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/%{name}
 %files
 %defattr(644,root,root,755)
 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/%{name}
-%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/%{name}-router
 %attr(754,root,root) /etc/rc.d/init.d/%{name}
 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/%{name}
 %attr(640,root,mysql) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mysql/%{mysqlversion}/clusters.conf
 %attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/bin/ibd2sdi
 %attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/bin/mysql_migrate_keyring
 %attr(754,root,root) /etc/rc.d/init.d/%{name}
 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/%{name}
 %attr(640,root,mysql) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mysql/%{mysqlversion}/clusters.conf
 %attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/bin/ibd2sdi
 %attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/bin/mysql_migrate_keyring
-%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/bin/mysqlrouter
-%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/bin/mysqlrouter_keyring
-%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/bin/mysqlrouter_passwd
-%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/bin/mysqlrouter_plugin_info
 %attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/sbin/innochecksum
 %attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/sbin/my_print_defaults
 %attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/sbin/myisamchk
 %attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/sbin/myisamlog
 %attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/sbin/myisampack
 %attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/sbin/innochecksum
 %attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/sbin/my_print_defaults
 %attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/sbin/myisamchk
 %attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/sbin/myisamlog
 %attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/sbin/myisampack
-%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/sbin/mysql_upgrade
 %attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/sbin/mysqlcheck
 %attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/sbin/mysqld
 %attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/sbin/mysqlcheck
 %attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/sbin/mysqld
+%dir %{_libdir}/mysql/%{mysqlversion}/plugin
 %attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/plugin/adt_null.so
 %attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/plugin/auth.so
 %attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/plugin/auth_socket.so
 %attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/plugin/adt_null.so
 %attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/plugin/auth.so
 %attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/plugin/auth_socket.so
@@ -991,7 +1017,6 @@ fi
 %attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/plugin/ddl_rewriter.so
 %attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/plugin/group_replication.so
 %attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/plugin/ha_mock.so
 %attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/plugin/ddl_rewriter.so
 %attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/plugin/group_replication.so
 %attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/plugin/ha_mock.so
-%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/plugin/keyring_file.so
 %attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/plugin/keyring_udf.so
 %attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/plugin/libpluginmecab.so
 %attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/plugin/locking_service.so
 %attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/plugin/keyring_udf.so
 %attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/plugin/libpluginmecab.so
 %attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/plugin/locking_service.so
@@ -1012,36 +1037,15 @@ fi
 %if %{with sphinx}
 %attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/plugin/ha_sphinx.so
 %endif
 %if %{with sphinx}
 %attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/plugin/ha_sphinx.so
 %endif
+%dir %{_libdir}/mysql/%{mysqlversion}/private
 %{_libdir}/mysql/%{mysqlversion}/private/icudt*l
 %{_libdir}/mysql/%{mysqlversion}/private/icudt*l
-%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/router/connection_pool.so
-%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/router/destination_status.so
-%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/router/http_auth_backend.so
-%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/router/http_auth_realm.so
-%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/router/http_server.so
-%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/router/io.so
-%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/router/keepalive.so
-%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/router/metadata_cache.so
-%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/router/rest_api.so
-%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/router/rest_connection_pool.so
-%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/router/rest_metadata_cache.so
-%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/router/rest_router.so
-%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/router/rest_routing.so
-%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/router/router_openssl.so
-%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/router/router_protobuf.so
-%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/router/routing.so
-%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/router/private/libmysqlharness*.so*
-%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/router/private/libmysqlrouter*.so*
 %{_datadir}/mysql/%{mysqlversion}/man/man1/ibd2sdi.1*
 %{_datadir}/mysql/%{mysqlversion}/man/man1/innochecksum.1*
 %{_datadir}/mysql/%{mysqlversion}/man/man1/my_print_defaults.1*
 %{_datadir}/mysql/%{mysqlversion}/man/man1/myisamchk.1*
 %{_datadir}/mysql/%{mysqlversion}/man/man1/myisamlog.1*
 %{_datadir}/mysql/%{mysqlversion}/man/man1/myisampack.1*
 %{_datadir}/mysql/%{mysqlversion}/man/man1/ibd2sdi.1*
 %{_datadir}/mysql/%{mysqlversion}/man/man1/innochecksum.1*
 %{_datadir}/mysql/%{mysqlversion}/man/man1/my_print_defaults.1*
 %{_datadir}/mysql/%{mysqlversion}/man/man1/myisamchk.1*
 %{_datadir}/mysql/%{mysqlversion}/man/man1/myisamlog.1*
 %{_datadir}/mysql/%{mysqlversion}/man/man1/myisampack.1*
-%{_datadir}/mysql/%{mysqlversion}/man/man1/mysql_upgrade.1*
 %{_datadir}/mysql/%{mysqlversion}/man/man1/mysqlcheck.1*
 %{_datadir}/mysql/%{mysqlversion}/man/man1/mysqlcheck.1*
-%{_datadir}/mysql/%{mysqlversion}/man/man1/mysqlrouter.1*
-%{_datadir}/mysql/%{mysqlversion}/man/man1/mysqlrouter_passwd.1*
-%{_datadir}/mysql/%{mysqlversion}/man/man1/mysqlrouter_plugin_info.1*
 %{_datadir}/mysql/%{mysqlversion}/man/man8/mysqld.8*
 
 %if %{?debug:1}0
 %{_datadir}/mysql/%{mysqlversion}/man/man8/mysqld.8*
 
 %if %{?debug:1}0
@@ -1050,11 +1054,14 @@ fi
 %{_datadir}/mysql/%{mysqlversion}/man/man1/*resolve_stack_dump.1*
 %endif
 
 %{_datadir}/mysql/%{mysqlversion}/man/man1/*resolve_stack_dump.1*
 %endif
 
+%attr(750,mysql,mysql) %dir /var/log/mysql/%{mysqlversion}
+%attr(750,mysql,mysql) %dir /var/log/archive/mysql/%{mysqlversion}
 %attr(640,mysql,mysql) %ghost /var/log/mysql/%{mysqlversion}/*
 
 # This is template for configuration file which is created after 'service mysql init'
 %{_datadir}/mysql/%{mysqlversion}/mysqld.conf
 
 %attr(640,mysql,mysql) %ghost /var/log/mysql/%{mysqlversion}/*
 
 # This is template for configuration file which is created after 'service mysql init'
 %{_datadir}/mysql/%{mysqlversion}/mysqld.conf
 
+%dir %{_datadir}/mysql/%{mysqlversion}/lang
 %{_datadir}/mysql/%{mysqlversion}/lang/english
 %{_datadir}/mysql/%{mysqlversion}/lang/dictionary.txt
 %{_datadir}/mysql/%{mysqlversion}/lang/messages_to_clients.txt
 %{_datadir}/mysql/%{mysqlversion}/lang/english
 %{_datadir}/mysql/%{mysqlversion}/lang/dictionary.txt
 %{_datadir}/mysql/%{mysqlversion}/lang/messages_to_clients.txt
@@ -1091,6 +1098,7 @@ fi
 %defattr(644,root,root,755)
 %{_datadir}/mysql/%{mysqlversion}/lang/charsets
 
 %defattr(644,root,root,755)
 %{_datadir}/mysql/%{mysqlversion}/lang/charsets
 
+%if %{with default}
 %files -n mysql-common
 %defattr(644,root,root,755)
 %attr(751,root,root) %dir %{_sysconfdir}/mysql
 %files -n mysql-common
 %defattr(644,root,root,755)
 %attr(751,root,root) %dir %{_sysconfdir}/mysql
@@ -1098,8 +1106,12 @@ fi
 %dir %{_datadir}/mysql
 %attr(751,root,root) %dir /var/lib/mysql
 %attr(751,root,root) %dir /var/lib/mysql-files
 %dir %{_datadir}/mysql
 %attr(751,root,root) %dir /var/lib/mysql
 %attr(751,root,root) %dir /var/lib/mysql-files
+%attr(751,root,root) %dir /var/lib/mysqlrouter
 %attr(751,root,root) %dir /var/log/mysql
 %attr(751,root,root) %dir /var/log/archive/mysql
 %attr(751,root,root) %dir /var/log/mysql
 %attr(751,root,root) %dir /var/log/archive/mysql
+%attr(751,root,root) %dir /var/log/mysqlrouter
+%attr(751,root,root) %dir /var/log/archive/mysqlrouter
+%endif
 
 %files dirs
 %defattr(644,root,root,755)
 
 %files dirs
 %defattr(644,root,root,755)
@@ -1107,30 +1119,21 @@ fi
 # root:root is proper here for mysql.rpm while mysql:mysql is potential security hole
 %attr(751,root,root) %dir /var/lib/mysql/%{mysqlversion}
 %attr(750,mysql,mysql) %dir /var/lib/mysql-files/%{mysqlversion}
 # root:root is proper here for mysql.rpm while mysql:mysql is potential security hole
 %attr(751,root,root) %dir /var/lib/mysql/%{mysqlversion}
 %attr(750,mysql,mysql) %dir /var/lib/mysql-files/%{mysqlversion}
-%attr(750,mysql,mysql) %dir /var/log/mysql/%{mysqlversion}
-%attr(750,mysql,mysql) %dir /var/log/archive/mysql/%{mysqlversion}
 %dir %{_libdir}/mysql/%{mysqlversion}
 %dir %{_libdir}/mysql/%{mysqlversion}/bin
 %dir %{_libdir}/mysql/%{mysqlversion}/sbin
 %dir %{_libdir}/mysql/%{mysqlversion}
 %dir %{_libdir}/mysql/%{mysqlversion}/bin
 %dir %{_libdir}/mysql/%{mysqlversion}/sbin
-%dir %{_libdir}/mysql/%{mysqlversion}/plugin
-%dir %{_libdir}/mysql/%{mysqlversion}/private
-%dir %{_libdir}/mysql/%{mysqlversion}/router
-%dir %{_libdir}/mysql/%{mysqlversion}/router/private
 %dir %{_datadir}/mysql/%{mysqlversion}
 %dir %{_datadir}/mysql/%{mysqlversion}/man
 %dir %{_datadir}/mysql/%{mysqlversion}/man/man1
 %dir %{_datadir}/mysql/%{mysqlversion}/man/man8
 %dir %{_datadir}/mysql/%{mysqlversion}
 %dir %{_datadir}/mysql/%{mysqlversion}/man
 %dir %{_datadir}/mysql/%{mysqlversion}/man/man1
 %dir %{_datadir}/mysql/%{mysqlversion}/man/man8
-%dir %{_datadir}/mysql/%{mysqlversion}/lang
 
 %files extras
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/bin/myisam_ftdump
 %attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/bin/mysql_secure_installation
 
 %files extras
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/bin/myisam_ftdump
 %attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/bin/mysql_secure_installation
-%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/bin/mysql_ssl_rsa_setup
 %attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/bin/mysql_tzinfo_to_sql
 %attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/bin/perror
 %{_datadir}/mysql/%{mysqlversion}/man/man1/myisam_ftdump.1*
 %attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/bin/mysql_tzinfo_to_sql
 %attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/bin/perror
 %{_datadir}/mysql/%{mysqlversion}/man/man1/myisam_ftdump.1*
-%{_datadir}/mysql/%{mysqlversion}/man/man1/mysql_ssl_rsa_setup.1*
 %{_datadir}/mysql/%{mysqlversion}/man/man1/mysql_secure_installation.1*
 %{_datadir}/mysql/%{mysqlversion}/man/man1/mysql_tzinfo_to_sql.1*
 %{_datadir}/mysql/%{mysqlversion}/man/man1/perror.1*
 %{_datadir}/mysql/%{mysqlversion}/man/man1/mysql_secure_installation.1*
 %{_datadir}/mysql/%{mysqlversion}/man/man1/mysql_tzinfo_to_sql.1*
 %{_datadir}/mysql/%{mysqlversion}/man/man1/perror.1*
@@ -1149,7 +1152,6 @@ fi
 %attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/bin/mysql_config_editor
 %attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/bin/mysqldump
 %attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/bin/mysqlimport
 %attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/bin/mysql_config_editor
 %attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/bin/mysqldump
 %attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/bin/mysqlimport
-%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/bin/mysqlpump
 %attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/bin/mysqlshow
 %{_datadir}/mysql/%{mysqlversion}/man/man1/mysql.1*
 %{_datadir}/mysql/%{mysqlversion}/man/man1/mysqladmin.1*
 %attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/bin/mysqlshow
 %{_datadir}/mysql/%{mysqlversion}/man/man1/mysql.1*
 %{_datadir}/mysql/%{mysqlversion}/man/man1/mysqladmin.1*
@@ -1157,7 +1159,6 @@ fi
 %{_datadir}/mysql/%{mysqlversion}/man/man1/mysql_config_editor.1*
 %{_datadir}/mysql/%{mysqlversion}/man/man1/mysqldump.1*
 %{_datadir}/mysql/%{mysqlversion}/man/man1/mysqlimport.1*
 %{_datadir}/mysql/%{mysqlversion}/man/man1/mysql_config_editor.1*
 %{_datadir}/mysql/%{mysqlversion}/man/man1/mysqldump.1*
 %{_datadir}/mysql/%{mysqlversion}/man/man1/mysqlimport.1*
-%{_datadir}/mysql/%{mysqlversion}/man/man1/mysqlpump.1*
 %{_datadir}/mysql/%{mysqlversion}/man/man1/mysqlshow.1*
 
 %files libs
 %{_datadir}/mysql/%{mysqlversion}/man/man1/mysqlshow.1*
 
 %files libs
@@ -1165,12 +1166,13 @@ fi
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mysql/%{mysqlversion}/mysql-client.conf
 %{_sysconfdir}/mysql/%{mysqlversion}/my.cnf
 %attr(755,root,root) %{_libdir}/libmysqlclient.so.*.*.*
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mysql/%{mysqlversion}/mysql-client.conf
 %{_sysconfdir}/mysql/%{mysqlversion}/my.cnf
 %attr(755,root,root) %{_libdir}/libmysqlclient.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libmysqlclient.so.22
+%attr(755,root,root) %ghost %{_libdir}/libmysqlclient.so.24
 %if %{with ndb}
 %attr(755,root,root) %{_libdir}/libndbclient.so.*.*.*
 %attr(755,root,root) %ghost %{_libdir}/libndbclient.so.3
 %endif
 
 %if %{with ndb}
 %attr(755,root,root) %{_libdir}/libndbclient.so.*.*.*
 %attr(755,root,root) %ghost %{_libdir}/libndbclient.so.3
 %endif
 
+%if %{with default}
 %files -n mysql-devel
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/bin/mysql_config
 %files -n mysql-devel
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/bin/mysql_config
@@ -1190,6 +1192,7 @@ fi
 %if %{with ndb}
 %{_libdir}/libndbclient.a
 %endif
 %if %{with ndb}
 %{_libdir}/libndbclient.a
 %endif
+%endif
 
 %if %{with ndb}
 %files ndb
 
 %if %{with ndb}
 %files ndb
@@ -1250,3 +1253,39 @@ fi
 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/mysql-ndb-cpc
 %{_datadir}/mysql/%{mysqlversion}/man/man1/ndb_cpcd.1*
 %endif
 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/mysql-ndb-cpc
 %{_datadir}/mysql/%{mysqlversion}/man/man1/ndb_cpcd.1*
 %endif
+
+%files router
+%defattr(644,root,root,755)
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/%{name}-router
+%{_sysconfdir}/ld.so.conf.d/%{name}-router.conf
+%dir %{_libdir}/mysql/%{mysqlversion}/router
+%dir %{_libdir}/mysql/%{mysqlversion}/router/private
+%attr(750,root,root) %dir /var/lib/mysqlrouter/%{mysqlversion}
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/bin/mysqlrouter
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/bin/mysqlrouter_keyring
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/bin/mysqlrouter_passwd
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/bin/mysqlrouter_plugin_info
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/router/connection_pool.so
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/router/destination_status.so
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/router/http_auth_backend.so
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/router/http_auth_realm.so
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/router/http_server.so
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/router/io.so
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/router/keepalive.so
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/router/metadata_cache.so
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/router/rest_api.so
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/router/rest_connection_pool.so
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/router/rest_metadata_cache.so
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/router/rest_router.so
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/router/rest_routing.so
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/router/router_openssl.so
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/router/router_protobuf.so
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/router/routing.so
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/router/private/libmysqlharness*.so*
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/router/private/libmysqlrouter*.so*
+%{_datadir}/mysql/%{mysqlversion}/man/man1/mysqlrouter.1*
+%{_datadir}/mysql/%{mysqlversion}/man/man1/mysqlrouter_passwd.1*
+%{_datadir}/mysql/%{mysqlversion}/man/man1/mysqlrouter_plugin_info.1*
+%attr(750,mysqlrouter,mysqlrouter) %dir /var/log/mysqlrouter/%{mysqlversion}
+%attr(750,mysqlrouter,mysqlrouter) %dir /var/log/archive/mysqlrouter/%{mysqlversion}
+%attr(640,mysql,mysql) %ghost /var/log/mysqlrouter/%{mysqlversion}/*
index dfac7dd9b5c0b37254c49959077eba035bcdbd23..74213d51676ef7ca96a4f43c31819a4fd0aa9714 100644 (file)
@@ -1,7 +1,7 @@
-diff -urNpa mysql-8.2.0.orig/sql/mysqld.cc mysql-8.2.0/sql/mysqld.cc
---- mysql-8.2.0.orig/sql/mysqld.cc     2023-12-30 12:55:09.027295242 +0100
-+++ mysql-8.2.0/sql/mysqld.cc  2023-12-30 13:03:21.431172893 +0100
-@@ -1967,7 +1967,6 @@ static void add_terminator(vector<my_opt
+diff -urNpa mysql-8.4.0.orig/sql/mysqld.cc mysql-8.4.0/sql/mysqld.cc
+--- mysql-8.4.0.orig/sql/mysqld.cc     2024-05-09 14:56:29.863000671 +0200
++++ mysql-8.4.0/sql/mysqld.cc  2024-05-09 14:56:52.199313987 +0200
+@@ -1954,7 +1954,6 @@ static void add_terminator(vector<my_opt
  extern "C" bool mysqld_get_one_option(int, const struct my_option *, char *);
  static void set_server_version(void);
  static int init_thread_environment();
  extern "C" bool mysqld_get_one_option(int, const struct my_option *, char *);
  static void set_server_version(void);
  static int init_thread_environment();
@@ -9,7 +9,7 @@ diff -urNpa mysql-8.2.0.orig/sql/mysqld.cc mysql-8.2.0/sql/mysqld.cc
  static int fix_paths(void);
  static int test_if_case_insensitive(const char *dir_name);
  static void end_ssl();
  static int fix_paths(void);
  static int test_if_case_insensitive(const char *dir_name);
  static void end_ssl();
-@@ -7880,7 +7879,7 @@ static char *get_icu_data_directory_in_b
+@@ -7732,7 +7731,7 @@ static char *get_icu_data_directory_in_b
  // Look for MYSQL_ICU_DATADIR which depends on INSTALL_PRIV_LIBDIR
  static char *get_icu_data_directory_in_install_dir(char *to) {
    char buff[FN_REFLEN];
  // Look for MYSQL_ICU_DATADIR which depends on INSTALL_PRIV_LIBDIR
  static char *get_icu_data_directory_in_install_dir(char *to) {
    char buff[FN_REFLEN];
@@ -18,7 +18,7 @@ diff -urNpa mysql-8.2.0.orig/sql/mysqld.cc mysql-8.2.0/sql/mysqld.cc
    if (test_if_hard_path(mysql_icu_datadir))
      strmake(buff, mysql_icu_datadir, sizeof(buff) - 1);
    else
    if (test_if_hard_path(mysql_icu_datadir))
      strmake(buff, mysql_icu_datadir, sizeof(buff) - 1);
    else
-@@ -8987,7 +8986,7 @@ class Plugin_and_data_dir_option_parser
+@@ -8820,7 +8819,7 @@ class Plugin_and_data_dir_option_parser
      memset(dir, 0, FN_REFLEN);
  
      convert_dirname(local_plugindir_buffer,
      memset(dir, 0, FN_REFLEN);
  
      convert_dirname(local_plugindir_buffer,
@@ -27,8 +27,8 @@ diff -urNpa mysql-8.2.0.orig/sql/mysqld.cc mysql-8.2.0/sql/mysqld.cc
                      NullS);
      (void)my_load_path(local_plugindir_buffer, local_plugindir_buffer,
                         mysql_home);
                      NullS);
      (void)my_load_path(local_plugindir_buffer, local_plugindir_buffer,
                         mysql_home);
-@@ -9077,7 +9076,7 @@ int mysqld_main(int argc, char **argv)
-   }
+@@ -8915,7 +8914,7 @@ int mysqld_main(int argc, char **argv)
+   argv_cached[argc_cached] = nullptr;
  
    /* Set data dir directory paths */
 -  strmake(mysql_real_data_home, get_relative_path(MYSQL_DATADIR),
  
    /* Set data dir directory paths */
 -  strmake(mysql_real_data_home, get_relative_path(MYSQL_DATADIR),
@@ -36,7 +36,7 @@ diff -urNpa mysql-8.2.0.orig/sql/mysqld.cc mysql-8.2.0/sql/mysqld.cc
            sizeof(mysql_real_data_home) - 1);
  
    /* Must be initialized early for comparison of options name */
            sizeof(mysql_real_data_home) - 1);
  
    /* Must be initialized early for comparison of options name */
-@@ -13040,15 +13039,6 @@ static void set_server_version(void) {
+@@ -12784,15 +12783,6 @@ static void set_server_version(void) {
  #endif
  }
  
  #endif
  }
  
@@ -52,7 +52,7 @@ diff -urNpa mysql-8.2.0.orig/sql/mysqld.cc mysql-8.2.0/sql/mysqld.cc
  /**
    Test a file path to determine if the path is compatible with the secure file
    path restriction.
  /**
    Test a file path to determine if the path is compatible with the secure file
    path restriction.
-@@ -13273,7 +13263,7 @@ static int fix_paths(void) {
+@@ -13010,7 +13000,7 @@ static int fix_paths(void) {
  
    convert_dirname(
        opt_plugin_dir,
  
    convert_dirname(
        opt_plugin_dir,
@@ -61,7 +61,7 @@ diff -urNpa mysql-8.2.0.orig/sql/mysqld.cc mysql-8.2.0/sql/mysqld.cc
        NullS);
    (void)my_load_path(opt_plugin_dir, opt_plugin_dir, mysql_home);
    opt_plugin_dir_ptr = opt_plugin_dir;
        NullS);
    (void)my_load_path(opt_plugin_dir, opt_plugin_dir, mysql_home);
    opt_plugin_dir_ptr = opt_plugin_dir;
-@@ -13284,7 +13274,7 @@ static int fix_paths(void) {
+@@ -13021,7 +13011,7 @@ static int fix_paths(void) {
        FN_LIBCHAR)
      --mysql_unpacked_real_data_home_len;
  
        FN_LIBCHAR)
      --mysql_unpacked_real_data_home_len;