diff --git a/community/percona-server/PKGBUILD b/community/percona-server/PKGBUILD index d346671de..b75ef5f08 100644 --- a/community/percona-server/PKGBUILD +++ b/community/percona-server/PKGBUILD @@ -6,11 +6,11 @@ pkgbase=percona-server pkgname=('libperconaserverclient' 'percona-server-clients' 'percona-server') -pkgver=8.0.23_14 +pkgver=8.0.25_15 _boost_ver=1.73.0 _pkgver=${pkgver/_/-} _myver=${pkgver/_rel*} -pkgrel=5 +pkgrel=1 arch=('x86_64') makedepends=('cmake' 'zlib' 'lz4' 'zstd' 'libaio' 'systemd-tools' 'pam' 'numactl' 'jemalloc' 'openssl' 'rpcsvc-proto' 'doxygen' 'graphviz' 'libevent' 'protobuf') # 'boost' @@ -21,33 +21,24 @@ source=("https://www.percona.com/downloads/Percona-Server-${pkgver%.*_*}/Percona 'my.cnf' 'mysql-user.conf' 'mysqlrouter-user.conf' - 'icu68.patch' 'build-hostname.patch' 'no-werror.patch' - 'rocksdb-make.patch' - 'gcc-11.patch' '0001-fix-LF_PINS-padding-calculation.patch') -sha256sums=('613b8c110ede5cf67a7ac32e16556f4c67d8ad35263f4f8d6457ae0789074048' +sha256sums=('447168d0cda3a0ef82ae0d20aa5af2fccfe5697c0f298262f1e8e315ac5c2dec' '9995e192e68528793755692917f9eb6422f3052a53c5e13ba278a228af6c7acf' 'b467b04d6d06152b2abc33f2a6de63fef0fc922dd5119d2ee1d07d3c1a489731' '5d7710fe88ec6d298175a309c0b776142397b119c468830b2865980292ed5da6' '4ca7ffdcb2d1716d4f31e4c7dd314e5d76e64f13fdc67c5d81c53650b793f5e0' - '80189c3d1c171eea06567aa9c66e10675d7f43721d0475fa2fca5d1e6ae03ea8' '1537fdbb92dd1c135c1eb9f4d10c44fd02e652db66c933d731990a1196f1397c' '2343a191c452b91caa458b03b0c1ef3f5afb0e7031816c68467af5c6a6ffe253' - '2ff495d271f99c4d0dba89e8ccde7e6b9789a4ea6b55034de9b9217b47e32c03' - '94d5e76a211af079e132a5d8377e7033acbccdba3c2b8535871b51059f61d1a4' 'aa5e960625843b061f47c32b4a267fab1115667b8b7d1ce7ec952efe42eb77af') prepare() { cd $pkgbase-$_pkgver rm -v sql/sql_yacc.{cc,h} - patch -p0 -i "$srcdir"/icu68.patch - patch -p1 -i "$srcdir"/build-hostname.patch - patch -p1 -i "$srcdir"/no-werror.patch - patch -p1 -i "$srcdir"/rocksdb-make.patch - patch -p1 -i "$srcdir"/gcc-11.patch + patch --verbose -p1 -i "$srcdir"/build-hostname.patch + patch --verbose -p1 -i "$srcdir"/no-werror.patch sed -r -e s@/var/run/mysqlrouter@/run/mysqlrouter@ \ -e s@lib64/mysql@lib/mysql@ \ diff --git a/community/percona-server/gcc-11.patch b/community/percona-server/gcc-11.patch deleted file mode 100644 index 0464c743d..000000000 --- a/community/percona-server/gcc-11.patch +++ /dev/null @@ -1,390 +0,0 @@ -diff --git a/components/mysqlbackup/backup_page_tracker.h b/components/mysqlbackup/backup_page_tracker.h -index a0898a251f84..1d072a5104d3 100644 ---- a/components/mysqlbackup/backup_page_tracker.h -+++ b/components/mysqlbackup/backup_page_tracker.h -@@ -28,6 +28,7 @@ - - #include - -+#include // size_t - #include - - #include "mysqlbackup.h" -diff --git a/extra/robin-hood-hashing/robin_hood.h b/extra/robin-hood-hashing/robin_hood.h -index 34ba81bf8736..596f123beb98 100644 ---- a/extra/robin-hood-hashing/robin_hood.h -+++ b/extra/robin-hood-hashing/robin_hood.h -@@ -43,6 +43,7 @@ - #include - #include - #include -+#include // std::numeric_limits - #include // only to support hash of smart pointers - #include - #include -diff --git a/include/my_alloc.h b/include/my_alloc.h -index a1bd1f278abb..942f3cf0786f 100644 ---- a/include/my_alloc.h -+++ b/include/my_alloc.h -@@ -32,6 +32,7 @@ - - #include - -+#include // std::uintptr_t - #include - #include - #include -diff --git a/include/mysql/components/services/page_track_service.h b/include/mysql/components/services/page_track_service.h -index 103b51351868..3090daa332cc 100644 ---- a/include/mysql/components/services/page_track_service.h -+++ b/include/mysql/components/services/page_track_service.h -@@ -27,6 +27,7 @@ - #include - #include - -+#include // size_t - #include - - #ifdef __cplusplus -diff --git a/mysys/thr_lock.cc b/mysys/thr_lock.cc -index 404e32024ed3..662f34086d68 100644 ---- a/mysys/thr_lock.cc -+++ b/mysys/thr_lock.cc -@@ -1198,6 +1198,7 @@ static void *test_thread(void *arg) { - THR_LOCK_DATA *multi_locks[MAX_LOCK_COUNT]; - my_thread_id id; - mysql_cond_t COND_thr_lock; -+ memset(&COND_thr_lock, 0, sizeof(COND_thr_lock)); - - id = param + 1; /* Main thread uses value 0. */ - mysql_cond_init(0, &COND_thr_lock); -diff --git a/router/src/harness/src/stdx/filesystem.cc b/router/src/harness/src/stdx/filesystem.cc -index d800d4635379..d1f352a6f210 100644 ---- a/router/src/harness/src/stdx/filesystem.cc -+++ b/router/src/harness/src/stdx/filesystem.cc -@@ -92,7 +92,7 @@ stdx::expected getcwd() { - return stdx::make_unexpected(last_posix_error_code()); - } - #else -- std::array cwd; -+ std::array cwd{}; - if (nullptr == ::getcwd(cwd.data(), cwd.size())) { - return stdx::make_unexpected(last_error_code()); - } -diff --git a/router/src/harness/tests/plugins/lifecycle.cc b/router/src/harness/tests/plugins/lifecycle.cc -index 115b05804ecc..d2760d4c3422 100644 ---- a/router/src/harness/tests/plugins/lifecycle.cc -+++ b/router/src/harness/tests/plugins/lifecycle.cc -@@ -195,7 +195,7 @@ void init_exit_strategies(const mysql_harness::ConfigSection *section) { - // clang-format on - - // process configuration -- for (const std::string &func : {"init", "start", "stop", "deinit"}) { -+ for (const std::string func : {"init", "start", "stop", "deinit"}) { - if (section->has(func)) { - const std::string &line = section->get(func); - -@@ -449,7 +449,7 @@ LIFECYCLE_API void lifecycle_init(int flags) { - std::lock_guard lock(g_strategies_mtx); - g_strategies.clear(); - -- for (const std::string &key : {"instance1", "instance2", "instance3"}) { -+ for (const std::string key : {"instance1", "instance2", "instance3"}) { - g_strategies[key].strategy_set = false; // optimisation, - } // doesn't affect behavior - } -diff --git a/router/src/harness/tests/test_net_ts_impl_resolver.cc b/router/src/harness/tests/test_net_ts_impl_resolver.cc -index 3f28f2688e43..e5007b21671e 100644 ---- a/router/src/harness/tests/test_net_ts_impl_resolver.cc -+++ b/router/src/harness/tests/test_net_ts_impl_resolver.cc -@@ -80,15 +80,15 @@ TEST(NetTS_impl_resolver, gethostname_buffer_too_short) { - } - - TEST(NetTS_impl_resolver, gethostname) { -- std::array name; -+ std::array name{}; - const auto res = net::impl::resolver::gethostname(name.data(), name.size()); - - EXPECT_THAT(res, ::testing::Truly([](auto v) { return bool(v); })); - } - - TEST(NetTS_impl_resolver, getnameinfo) { -- std::array name; -- std::array serv; -+ std::array name{}; -+ std::array serv{}; - struct sockaddr_in saddr {}; - - saddr.sin_family = AF_INET; -@@ -101,8 +101,8 @@ TEST(NetTS_impl_resolver, getnameinfo) { - } - - TEST(NetTS_impl_resolver, getnameinfo_invalid_sockaddr_size) { -- std::array name; -- std::array serv; -+ std::array name{}; -+ std::array serv{}; - struct sockaddr_in saddr {}; - - saddr.sin_family = AF_INET; -@@ -132,8 +132,8 @@ TEST(NetTS_impl_resolver, getnameinfo_invalid_sockaddr_size) { - // windows doesn't check for bad-flags, but returns ERROR_INSUFFICIENT_BUFFER - // freebsd, macosx doesn't check for bad-flags, but returns EAI_NONAME - TEST(NetTS_impl_resolver, getnameinfo_badflags) { -- std::array name; -- std::array serv; -+ std::array name{}; -+ std::array serv{}; - struct sockaddr_in saddr {}; - - saddr.sin_family = AF_INET; -@@ -150,7 +150,7 @@ TEST(NetTS_impl_resolver, getnameinfo_badflags) { - #endif - - TEST(NetTS_impl_resolver, getnameinfo_overflow) { -- std::array name; // buffer too small to resolve the address -+ std::array name{}; // buffer too small to resolve the address - struct sockaddr_in saddr {}; - - saddr.sin_family = AF_INET; -@@ -295,7 +295,7 @@ TEST(NetTS_impl_resolver, inetntop_nospace) { - - saddr.sin_family = AF_INET; - -- std::array name; -+ std::array name{}; - - const auto res = - net::impl::resolver::inetntop(AF_INET, &saddr, name.data(), name.size()); -@@ -319,7 +319,7 @@ TEST(NetTS_impl_resolver, inetntop_nospace) { - TEST(NetTS_impl_resolver, inetntop_ipv4) { - struct in_addr addr {}; - -- std::array name; -+ std::array name{}; - - const auto res = - net::impl::resolver::inetntop(AF_INET, &addr, name.data(), name.size()); -@@ -331,7 +331,7 @@ TEST(NetTS_impl_resolver, inetntop_ipv4) { - TEST(NetTS_impl_resolver, inetntop_ipv6) { - struct in6_addr addr {}; - -- std::array name; -+ std::array name{}; - - const auto res = - net::impl::resolver::inetntop(AF_INET6, &addr, name.data(), name.size()); -@@ -343,7 +343,7 @@ TEST(NetTS_impl_resolver, inetntop_ipv6) { - TEST(NetTS_impl_resolver, inetntop_fail_invalid_protocol) { - struct in6_addr addr {}; - -- std::array name; -+ std::array name{}; - - const auto res = - net::impl::resolver::inetntop(AF_UNIX, &addr, name.data(), name.size()); -@@ -355,7 +355,7 @@ TEST(NetTS_impl_resolver, inetntop_fail_invalid_protocol) { - TEST(NetTS_impl_resolver, inetntop_fail_empty_buffer) { - struct in6_addr addr {}; - -- std::array name; -+ std::array name{}; - - const auto res = - net::impl::resolver::inetntop(AF_INET6, &addr, name.data(), 0); -diff --git a/router/tests/component/test_bootstrap_account.cc b/router/tests/component/test_bootstrap_account.cc -index c475e1429f97..ee57ecddfde3 100644 ---- a/router/tests/component/test_bootstrap_account.cc -+++ b/router/tests/component/test_bootstrap_account.cc -@@ -3971,7 +3971,7 @@ TEST_F(UndoCreateUserTest, failure_after_account_creation) { - // induce failure at config-write step (should result in error analogous to: - // "Could not create file '.../router-sBHJGw/mysqlrouter.conf.bak': Permission - // denied" -- for (const std::string &file : {"mysqlrouter.conf", "mysqlrouter.conf.bak"}) { -+ for (const std::string file : {"mysqlrouter.conf", "mysqlrouter.conf.bak"}) { - std::string path = bootstrap_directory.name() + "/" + file; - std::ofstream f(path.c_str()); - f << "[DEFAULT]\n"; -@@ -4082,7 +4082,7 @@ TEST_F(UndoCreateUserTest, - // induce failure at config-write step (should result in error analogous to: - // "Could not create file '.../router-sBHJGw/mysqlrouter.conf.bak': Permission - // denied" -- for (const std::string &file : {"mysqlrouter.conf", "mysqlrouter.conf.bak"}) { -+ for (const std::string file : {"mysqlrouter.conf", "mysqlrouter.conf.bak"}) { - std::string path = bootstrap_directory.name() + "/" + file; - std::ofstream f(path.c_str()); - f << "[DEFAULT]\n"; -diff --git a/sql-common/sql_string.cc b/sql-common/sql_string.cc -index 40435729421f..44511304e80f 100644 ---- a/sql-common/sql_string.cc -+++ b/sql-common/sql_string.cc -@@ -23,6 +23,7 @@ - #include "sql_string.h" - - #include -+#include // std::numeric_limits - - #include "my_dbug.h" - #include "my_macros.h" -diff --git a/sql/CMakeLists.txt b/sql/CMakeLists.txt -index 27dfdd8c825a..30590fb9cc64 100644 ---- a/sql/CMakeLists.txt -+++ b/sql/CMakeLists.txt -@@ -870,6 +870,13 @@ IF(SOLARIS AND MY_COMPILER_IS_GNU AND - ) - ENDIF() - -+# Suppress warnings for gcc-11 or newer -+IF(CMAKE_COMPILER_IS_GNUCXX AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 11) -+ ADD_CXX_COMPILE_FLAGS_TO_FILES(-Wno-mismatched-new-delete FILES sql_cursor.cc sql_prepare.cc) -+ # a false positive with a bison-generated file (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98753) -+ ADD_CXX_COMPILE_FLAGS_TO_FILES(-Wno-free-nonheap-object FILES ${CMAKE_CURRENT_BINARY_DIR}/sql_hints.yy.cc) -+ENDIF() -+ - ADD_LIBRARY(sql_dd STATIC ${DD_SOURCES}) - ADD_DEPENDENCIES(sql_dd GenFixPrivs) - ADD_DEPENDENCIES(sql_dd GenServerSource) -diff --git a/sql/item_geofunc_internal.cc b/sql/item_geofunc_internal.cc -index 29384b48edd9..de426d3789ce 100644 ---- a/sql/item_geofunc_internal.cc -+++ b/sql/item_geofunc_internal.cc -@@ -111,8 +111,7 @@ template - void BG_geometry_collection::merge_components(bool *pnull_value) { - if (is_comp_no_overlapped()) return; - -- POS pos; -- Item_func_st_union ifsu(pos, nullptr, nullptr); -+ Item_func_st_union ifsu(POS(), nullptr, nullptr); - bool do_again = true; - uint32 last_composition[6] = {0}, num_unchanged_composition = 0; - size_t last_num_geos = 0; -diff --git a/sql/memory/unique_ptr.h b/sql/memory/unique_ptr.h -index 7997834d6ec6..a30585008de0 100644 ---- a/sql/memory/unique_ptr.h -+++ b/sql/memory/unique_ptr.h -@@ -28,6 +28,7 @@ - #include - #include - #include -+#include // std::numeric_limits - #include - #include - #include -diff --git a/sql/opt_range.cc b/sql/opt_range.cc -index f1167ef9ef2f..0af19bc8cc15 100644 ---- a/sql/opt_range.cc -+++ b/sql/opt_range.cc -@@ -15560,7 +15560,7 @@ static void append_range_all_keyparts(Opt_trace_array *range_trace, - range_string and the string becomes too long. Printing very long - range conditions normally doesn't make sense either. - */ -- if (!append_to_trace && range_string->length() > 500) { -+ if (!append_to_trace && range_string && range_string->length() > 500) { - range_string->append(STRING_WITH_LEN("...")); - break; - } -@@ -15608,7 +15608,7 @@ static void append_range_all_keyparts(Opt_trace_array *range_trace, - */ - if (append_to_trace) - range_trace->add_utf8(range_so_far->ptr(), range_so_far->length()); -- else { -+ else if (range_string) { - if (range_string->length() == 0) - range_string->append(STRING_WITH_LEN("(")); - else -diff --git a/sql/server_component/mysql_query_attributes_imp.cc b/sql/server_component/mysql_query_attributes_imp.cc -index 14b2e65cb9c2..302d2016888a 100644 ---- a/sql/server_component/mysql_query_attributes_imp.cc -+++ b/sql/server_component/mysql_query_attributes_imp.cc -@@ -274,7 +274,7 @@ static String *query_parameter_val_str(const PS_PARAM *param, - str->length( - my_TIME_to_str(tm, str->ptr(), uint8{DATETIME_MAX_DECIMALS})); - } else { -- delete str; -+ delete[] str; - str = nullptr; - } - break; -@@ -300,7 +300,7 @@ static String *query_parameter_val_str(const PS_PARAM *param, - str->length( - my_TIME_to_str(tm, str->ptr(), uint8{DATETIME_MAX_DECIMALS})); - } else { -- delete str; -+ delete[] str; - str = nullptr; - } - break; -@@ -342,7 +342,7 @@ static String *query_parameter_val_str(const PS_PARAM *param, - str->length( - my_TIME_to_str(tm, str->ptr(), uint8{DATETIME_MAX_DECIMALS})); - } else { -- delete str; -+ delete[] str; - str = nullptr; - } - break; -@@ -355,7 +355,7 @@ static String *query_parameter_val_str(const PS_PARAM *param, - uint dummy_errors; - if (str->copy(reinterpret_cast(param->value), param->length, - &my_charset_bin, &my_charset_bin, &dummy_errors)) { -- delete str; -+ delete[] str; - str = nullptr; - } - break; -@@ -368,7 +368,7 @@ static String *query_parameter_val_str(const PS_PARAM *param, - uint dummy_errors; - if (str->copy(reinterpret_cast(param->value), param->length, - cs, cs, &dummy_errors)) { -- delete str; -+ delete[] str; - str = nullptr; - } - break; -diff --git a/storage/innobase/CMakeLists.txt b/storage/innobase/CMakeLists.txt -index b34a1bb97c8a..7cc7ad7e0f24 100644 ---- a/storage/innobase/CMakeLists.txt -+++ b/storage/innobase/CMakeLists.txt -@@ -288,3 +288,10 @@ IF(HAS_WARN_FLAG) - ADD_COMPILE_FLAGS(fts/fts0pars.cc - COMPILE_FLAGS "${HAS_WARN_FLAG}") - ENDIF() -+ -+# Suppress warnings for gcc-11 or newer -+IF(CMAKE_COMPILER_IS_GNUCXX AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 11) -+ ADD_CXX_COMPILE_FLAGS_TO_FILES(-Wno-maybe-uninitialized FILES os/os0file.cc) -+ # a false positive with a bison-generated file (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98753) -+ ADD_CXX_COMPILE_FLAGS_TO_FILES(-Wno-free-nonheap-object FILES pars/pars0grm.cc) -+ENDIF() -diff --git a/unittest/gunit/mock_create_field.h b/unittest/gunit/mock_create_field.h -index 16c87540b8fa..d9caad5b4ed5 100644 ---- a/unittest/gunit/mock_create_field.h -+++ b/unittest/gunit/mock_create_field.h -@@ -40,6 +40,7 @@ class Mock_create_field : public Create_field { - */ - DBUG_ASSERT(field_type == MYSQL_TYPE_TIMESTAMP || - field_type == MYSQL_TYPE_TIMESTAMP2); -+ memset(&m_lex_string, 0, sizeof(m_lex_string)); - init(nullptr, // THD *thd - nullptr, // char *fld_name - field_type, -diff --git a/unittest/gunit/strings_utf8-t.cc b/unittest/gunit/strings_utf8-t.cc -index a863c7d1aa28..7e6e1b71b452 100644 ---- a/unittest/gunit/strings_utf8-t.cc -+++ b/unittest/gunit/strings_utf8-t.cc -@@ -148,6 +148,7 @@ TEST_F(StringsUTF8Test, MyIsmbcharUtf8) { - - /* valid utf8 charaters, testing for boundry values */ - utf8_src[0] = '\x00'; -+ utf8_src[1] = '\x00'; - EXPECT_EQ(0U, system_charset_info->cset->ismbchar(system_charset_info, - utf8_src, utf8_src + 1)); - -@@ -522,6 +523,7 @@ TEST_F(StringsUTF8mb4Test, MyIsmbcharUtf8mb4) { - - /* valid utf8mb4 charaters, testing for boundry values */ - utf8_src[0] = '\x00'; -+ utf8_src[1] = '\x00'; - EXPECT_EQ(0U, system_charset_info->cset->ismbchar(system_charset_info, - utf8_src, utf8_src + 1)); - utf8_src[0] = '\x7f'; diff --git a/community/percona-server/icu68.patch b/community/percona-server/icu68.patch deleted file mode 100644 index 89f0f9b4a..000000000 --- a/community/percona-server/icu68.patch +++ /dev/null @@ -1,17 +0,0 @@ -Regressed by https://github.com/unicode-org/icu/commit/c3fe7e09d844 - -sql/mysqld.cc:6915:30: error: use of undeclared identifier 'TRUE' - my_getopt_skip_unknown = TRUE; - ^ - ---- sql/mysqld.cc.orig 2020-06-16 16:31:03 UTC -+++ sql/mysqld.cc -@@ -6910,7 +6912,7 @@ int mysqld_main(int argc, char **argv) - if (opt_keyring_migration_source || opt_keyring_migration_destination || - migrate_connect_options) { - Migrate_keyring mk; -- my_getopt_skip_unknown = TRUE; -+ my_getopt_skip_unknown = true; - if (mk.init(remaining_argc, remaining_argv, opt_keyring_migration_source, - opt_keyring_migration_destination, opt_keyring_migration_user, - opt_keyring_migration_host, opt_keyring_migration_password, diff --git a/community/percona-server/rocksdb-make.patch b/community/percona-server/rocksdb-make.patch deleted file mode 100644 index 92454a7a4..000000000 --- a/community/percona-server/rocksdb-make.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/storage/rocksdb/get_rocksdb_files.sh b/storage/rocksdb/get_rocksdb_files.sh -index dbaab0f..c68b158 100755 ---- a/storage/rocksdb/get_rocksdb_files.sh -+++ b/storage/rocksdb/get_rocksdb_files.sh -@@ -4,7 +4,7 @@ MKFILE=`mktemp` - # include rocksdb make file relative to the path of this script - echo "include rocksdb/src.mk - all: -- @echo \$(LIB_SOURCES)" > $MKFILE -+ @echo \"\$(LIB_SOURCES)\"" > $MKFILE - for f in `make --makefile $MKFILE` - do - echo ./rocksdb/$f