From 45b681a59f6e61e0324f532f88f1a9addcd14c45 Mon Sep 17 00:00:00 2001 From: Marcin Krol Date: Thu, 25 Apr 2024 18:09:47 +0200 Subject: [PATCH 1/4] - keep common dirs for mysqlrouter in mysql-common, fix /var/{lib,log} dirs --- mysql.spec | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/mysql.spec b/mysql.spec index 5d82810..c71fd82 100644 --- a/mysql.spec +++ b/mysql.spec @@ -566,7 +566,7 @@ CPPFLAGS="%{rpmcppflags}" \ %install rm -rf $RPM_BUILD_ROOT install -d $RPM_BUILD_ROOT/etc/{ld.so.conf.d,logrotate.d,rc.d/init.d,sysconfig,mysql/%{mysqlversion},skel} \ - $RPM_BUILD_ROOT/var/{lib/mysqlrouter,log/{archive,}/{mysql,mysqlrouter}/%{mysqlversion},lib/{mysql,mysql-files}/%{mysqlversion}} \ + $RPM_BUILD_ROOT/var/{log/{archive,}/{mysql,mysqlrouter}/%{mysqlversion},lib/{mysql,mysql-files,mysqlrouter}/%{mysqlversion}} \ $RPM_BUILD_ROOT%{_libdir} %{__make} -C build install \ @@ -1116,8 +1116,11 @@ fi %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/mysqlrouter +%attr(751,root,root) %dir /var/log/archive/mysqlrouter %files dirs %defattr(644,root,root,755) @@ -1268,6 +1271,7 @@ fi %{_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 @@ -1293,8 +1297,6 @@ fi %{_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(751,root,root) %dir /var/lib/mysqlrouter -%attr(751,root,root) %dir /var/log/mysqlrouter %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}/* -- 2.45.1 From 597679dfcda245060ec36488b09cda848cab0a13 Mon Sep 17 00:00:00 2001 From: Marcin Krol Date: Thu, 9 May 2024 21:24:26 +0200 Subject: [PATCH 2/4] - updated to 8.4.0 --- mysql-cmake.patch | 21 +++--- mysql-readline.patch | 9 +-- mysql-system-xxhash.patch | 144 +++++++++++++++++++------------------- mysql.spec | 28 ++------ no_relative_paths.patch | 22 +++--- zlib.patch | 16 ----- 6 files changed, 105 insertions(+), 135 deletions(-) delete mode 100644 zlib.patch diff --git a/mysql-cmake.patch b/mysql-cmake.patch index b22b2f1..2846742 100644 --- a/mysql-cmake.patch +++ b/mysql-cmake.patch @@ -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 @@ -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) -@@ -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 @@ -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; -@@ -149,14 +149,13 @@ MACRO (FIND_SYSTEM_EDITLINE) +@@ -172,14 +172,13 @@ MACRO (FIND_SYSTEM_EDITLINE) CHECK_CXX_SOURCE_COMPILES(" #include @@ -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) -@@ -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); @@ -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) ---- 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 diff --git a/mysql-readline.patch b/mysql-readline.patch index ca2af06..011fe95 100644 --- a/mysql-readline.patch +++ b/mysql-readline.patch @@ -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 @@ -8,7 +9,7 @@ #include #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 diff --git a/mysql-system-xxhash.patch b/mysql-system-xxhash.patch index 5d1fc10..62c1cc6 100644 --- a/mysql-system-xxhash.patch +++ b/mysql-system-xxhash.patch @@ -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 @@ -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 -@@ -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) @@ -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) -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); @@ -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( -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 */ @@ -44,10 +44,10 @@ diff -ur mysql-8.2.0.orig/plugin/group_replication/libmysqlgcs/src/bindings/xcom +#include #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} @@ -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 -@@ -831,11 +830,6 @@ +@@ -828,11 +827,6 @@ IF(WIN32) ) 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 -@@ -860,14 +854,6 @@ - ) +@@ -858,14 +852,6 @@ IF(APPLE_ARM) ENDIF() --ADD_COMPILE_FLAGS( + ADD_COMPILE_FLAGS( - ${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} - ) - - # 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 - extra::rapidjson) + extra::rapidjson extra::boost) # 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 + #include "mysql_com.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(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); -@@ -2331,7 +2331,7 @@ +@@ -3005,7 +3005,7 @@ bool SpillState::spread_hash_map_to_HF_c const ulonglong primary_hash = static_cast(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); -@@ -2396,7 +2396,7 @@ +@@ -3070,7 +3070,7 @@ bool SpillState::append_hash_map_to_HF() const ulonglong primary_hash = static_cast(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); -@@ -2491,7 +2491,7 @@ +@@ -3164,7 +3164,7 @@ bool SpillState::save_operand_to_IF_chun m_materialized_table->hash_field->store( static_cast(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); -@@ -2548,7 +2548,7 @@ +@@ -3219,7 +3219,7 @@ bool SpillState::write_HF(THD *thd, size const ulonglong primary_hash = static_cast(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); -@@ -2787,7 +2787,7 @@ +@@ -3452,7 +3452,7 @@ int SpillState::read_next_row(const Oper const ulonglong primary_hash = static_cast( 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); -@@ -2820,7 +2820,7 @@ +@@ -3485,7 +3485,7 @@ int SpillState::read_next_row(const Oper const ulonglong primary_hash = static_cast( 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); -@@ -2909,7 +2909,7 @@ +@@ -3574,7 +3574,7 @@ int SpillState::read_next_row_secondary_ const ulonglong primary_hash = static_cast( 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); -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 - +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" -@@ -356,7 +356,7 @@ +-#include "my_xxhash.h" ++#include + #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 @@ -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); -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 @@ -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" -@@ -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" @@ -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" -@@ -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) { @@ -238,7 +238,7 @@ diff -ur mysql-8.2.0.orig/unittest/gunit/hash_join-t.cc mysql-8.2.0/unittest/gun } 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) { @@ -247,10 +247,10 @@ diff -ur mysql-8.2.0.orig/unittest/gunit/hash_join-t.cc mysql-8.2.0/unittest/gun } 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" diff --git a/mysql.spec b/mysql.spec index c71fd82..e85f7a4 100644 --- a/mysql.spec +++ b/mysql.spec @@ -13,8 +13,8 @@ %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) -%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 @@ -25,12 +25,12 @@ Summary(ru.UTF-8): MySQL - быстрый SQL-сервер 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 -# 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} @@ -52,7 +52,6 @@ Source13: mysql-client.conf Source14: my.cnf Patch0: no_relative_paths.patch Patch1: mysql-system-xxhash.patch -Patch2: zlib.patch Patch17: mysql-5.7-sphinx.patch Patch18: mysql-sphinx.patch @@ -484,7 +483,6 @@ przekierowywania połączeń od klientów MySQL do serwerów MySQL. %patch0 -p1 %patch1 -p1 -%patch2 -p1 %if %{with sphinx} # http://www.sphinxsearch.com/docs/manual-0.9.9.html#sphinxse-mysql51 @@ -626,7 +624,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 -%{__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 @@ -645,12 +642,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/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 -%{__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 @@ -701,9 +696,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}/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* || : @@ -721,7 +713,6 @@ if [ "$1" = "0" ]; then 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 @@ -1002,7 +993,6 @@ fi %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 %dir %{_libdir}/mysql/%{mysqlversion}/plugin @@ -1026,7 +1016,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/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 @@ -1055,7 +1044,6 @@ fi %{_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/man8/mysqld.8* @@ -1140,11 +1128,9 @@ fi %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* -%{_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* @@ -1163,7 +1149,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/mysqlpump %attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/bin/mysqlshow %{_datadir}/mysql/%{mysqlversion}/man/man1/mysql.1* %{_datadir}/mysql/%{mysqlversion}/man/man1/mysqladmin.1* @@ -1171,7 +1156,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/mysqlpump.1* %{_datadir}/mysql/%{mysqlversion}/man/man1/mysqlshow.1* %files libs @@ -1179,7 +1163,7 @@ 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.*.*.* -%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 diff --git a/no_relative_paths.patch b/no_relative_paths.patch index dfac7dd..74213d5 100644 --- a/no_relative_paths.patch +++ b/no_relative_paths.patch @@ -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 Date: Thu, 9 May 2024 21:31:48 +0200 Subject: [PATCH 3/4] - bcond for building as default MySQL (for now 8.0 is default) --- mysql.spec | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/mysql.spec b/mysql.spec index e85f7a4..2e3fd45 100644 --- a/mysql.spec +++ b/mysql.spec @@ -12,6 +12,7 @@ %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.4 %define mysqlpriority 84 @@ -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 -Requires: mysql-common >= %{version}-%{release} +Requires: mysql-common >= 8.0.0 %description dirs Common directories for MysSQL %{mysqlversion} @@ -1097,6 +1098,7 @@ fi %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 @@ -1109,6 +1111,7 @@ fi %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) @@ -1169,6 +1172,7 @@ fi %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 @@ -1188,6 +1192,7 @@ fi %if %{with ndb} %{_libdir}/libndbclient.a %endif +%endif %if %{with ndb} %files ndb -- 2.45.1 From 81caa85305a4704c047aa046c35698825b40fa1c Mon Sep 17 00:00:00 2001 From: Marcin Krol Date: Thu, 9 May 2024 21:43:37 +0200 Subject: [PATCH 4/4] - fix bcond comment (breaks build) --- mysql.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mysql.spec b/mysql.spec index 2e3fd45..15f44b1 100644 --- a/mysql.spec +++ b/mysql.spec @@ -12,7 +12,7 @@ %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) +%bcond_with default # default version of MySQL (with common and devel) %define mysqlversion 8.4 %define mysqlpriority 84 -- 2.45.1