diff --git a/.gitignore b/.gitignore index bfa3503..60e7a12 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/mysql-boost-8.0.26.tar.gz +SOURCES/mysql-boost-8.0.30.tar.gz diff --git a/.mysql.metadata b/.mysql.metadata index af0599b..9771b1f 100644 --- a/.mysql.metadata +++ b/.mysql.metadata @@ -1 +1 @@ -fbac872bbc125f0f05ce1f3224dbaeddf368da40 SOURCES/mysql-boost-8.0.26.tar.gz +49ff9bc9d2030de79f3e56088ddfe1fa38f87f4a SOURCES/mysql-boost-8.0.30.tar.gz diff --git a/SOURCES/boost-1.76.0-fix_multiprecision_issue_419-ppc64le.patch b/SOURCES/boost-1.76.0-fix_multiprecision_issue_419-ppc64le.patch new file mode 100644 index 0000000..5cd6d40 --- /dev/null +++ b/SOURCES/boost-1.76.0-fix_multiprecision_issue_419-ppc64le.patch @@ -0,0 +1,27 @@ +From d1343f28dcbe25b100b082b34775bd92ead4602c Mon Sep 17 00:00:00 2001 +From: jzmaddock +Date: Tue, 25 Jan 2022 09:27:40 +0000 +Subject: [PATCH] Update gcc Intel intrinsic usage config. Fixes + https://github.com/boostorg/multiprecision/issues/419. + +--- + include/boost/multiprecision/cpp_int/intel_intrinsics.hpp | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/include/boost/multiprecision/cpp_int/intel_intrinsics.hpp b/include/boost/multiprecision/cpp_int/intel_intrinsics.hpp +index eb4624bb4..37717cd51 100644 +--- a/include/boost/multiprecision/cpp_int/intel_intrinsics.hpp ++++ b/include/boost/multiprecision/cpp_int/intel_intrinsics.hpp +@@ -19,7 +19,11 @@ + // If this is GCC/clang, then check that the actual intrinsic exists: + // + #if defined(__has_builtin) && defined(__GNUC__) +-#if !__has_builtin(__builtin_ia32_addcarryx_u64) && defined(BOOST_MP_HAS_IMMINTRIN_H) && !(defined(BOOST_GCC) && (__GNUC__ >= 9)) ++#if !__has_builtin(__builtin_ia32_addcarryx_u64) && defined(BOOST_MP_HAS_IMMINTRIN_H) \ ++ && !(defined(BOOST_GCC) && (__GNUC__ >= 9) \ ++ && (defined(__amd64__) || defined(__amd64) || defined(__x86_64__) || defined(__x86_64)\ ++ || defined(i386) || defined(__i386) || defined(__i386__) || defined(_M_AMD64) \ ++ || defined(_M_X64) || defined(__amd64__) || defined(_M_X64))) + #undef BOOST_MP_HAS_IMMINTRIN_H + #endif + #elif defined(BOOST_MP_HAS_IMMINTRIN_H) && defined(__GNUC__) && !(defined(BOOST_GCC) && (__GNUC__ >= 9)) diff --git a/SOURCES/mysql-arm32-timer.patch b/SOURCES/mysql-arm32-timer.patch index 3edd785..d9c616c 100644 --- a/SOURCES/mysql-arm32-timer.patch +++ b/SOURCES/mysql-arm32-timer.patch @@ -1,10 +1,10 @@ diff --git a/mysql-test/include/mtr_warnings.sql b/mysql-test/include/mtr_warnings.sql -index 7a56616a..5e5f7950 100644 +index eff14a67..413dfc27 100644 --- a/mysql-test/include/mtr_warnings.sql +++ b/mysql-test/include/mtr_warnings.sql -@@ -359,6 +359,11 @@ INSERT INTO global_suppressions VALUES - ("A deprecated TLS version TLSv1 is enabled for channel"), - ("A deprecated TLS version TLSv1.1 is enabled for channel"), +@@ -363,6 +363,11 @@ INSERT INTO global_suppressions VALUES + */ + ("Manifest file '.*' is not read-only. For better security, please make sure that the file is read-only."), + /* + ARM32 don't support timers and get this warning in every test. diff --git a/SOURCES/mysql-chain-certs.patch b/SOURCES/mysql-chain-certs.patch deleted file mode 100644 index 5f26c48..0000000 --- a/SOURCES/mysql-chain-certs.patch +++ /dev/null @@ -1,24 +0,0 @@ -Fix things so that chains of certificates work in the server and client -certificate files. - -This only really works for OpenSSL-based builds, as yassl is unable to read -multiple certificates from a file. The patch below to yassl/src/ssl.cpp -doesn't fix that, but just arranges that the viosslfactories.c patch won't -have any ill effects in a yassl build. Since we don't use yassl in Red Hat/ -Fedora builds, I'm not feeling motivated to try to fix yassl for this. - -See RH bug #598656. Filed upstream at http://bugs.mysql.com/bug.php?id=54158 - -diff --git a/vio/viosslfactories.cc b/vio/viosslfactories.cc -index 5e881e3..2927e7f 100644 ---- a/vio/viosslfactories.cc -+++ b/vio/viosslfactories.cc -@@ -198,7 +198,7 @@ static int vio_set_cert_stuff(SSL_CTX *ctx, const char *cert_file, - if (!key_file && cert_file) key_file = cert_file; - - if (cert_file && -- SSL_CTX_use_certificate_file(ctx, cert_file, SSL_FILETYPE_PEM) <= 0) { -+ SSL_CTX_use_certificate_chain_file(ctx, cert_file) <= 0) { - *error = SSL_INITERR_CERT; - DBUG_PRINT("error", - ("%s from file '%s'", sslGetErrString(*error), cert_file)); diff --git a/SOURCES/mysql-fix-includes-robin-hood.patch b/SOURCES/mysql-fix-includes-robin-hood.patch deleted file mode 100644 index 0aca3ef..0000000 --- a/SOURCES/mysql-fix-includes-robin-hood.patch +++ /dev/null @@ -1,13 +0,0 @@ -# Prevents fails when compiling with gcc11 (Fedora 34) -# Upstream PR: https://github.com/mysql/mysql-server/pull/323 - ---- mysql-8.0.23/extra/robin-hood-hashing/robin_hood.h.old 2021-02-04 17:15:31.034997221 +0100 -+++ mysql-8.0.23/extra/robin-hood-hashing/robin_hood.h 2021-02-04 17:15:50.781372066 +0100 -@@ -48,6 +48,7 @@ - #include - #include - #include -+#include - #if __cplusplus >= 201703L - # include - #endif diff --git a/SOURCES/mysql-s390-tsc.patch b/SOURCES/mysql-s390-tsc.patch deleted file mode 100644 index 8437ed7..0000000 --- a/SOURCES/mysql-s390-tsc.patch +++ /dev/null @@ -1,41 +0,0 @@ -Support s390/s390x in performance schema's cycle-counting functions. -Filed upstream at http://bugs.mysql.com/bug.php?id=59953 - -diff --git a/include/my_rdtsc.h b/include/my_rdtsc.h -index 65f7df1..a28f470 100644 ---- a/include/my_rdtsc.h -+++ b/include/my_rdtsc.h -@@ -128,5 +128,6 @@ void my_timer_init(MY_TIMER_INFO *mti); - #define MY_TIMER_ROUTINE_GETSYSTEMTIMEASFILETIME 26 - #define MY_TIMER_ROUTINE_ASM_SUNPRO_X86_64 27 - #define MY_TIMER_ROUTINE_ASM_AARCH64 28 -+#define MY_TIMER_ROUTINE_ASM_S390 29 - - #endif -diff --git a/mysys/my_rdtsc.cc b/mysys/my_rdtsc.cc -index ec8e855..c3408b1 100644 ---- a/mysys/my_rdtsc.cc -+++ b/mysys/my_rdtsc.cc -@@ -204,6 +204,13 @@ ulonglong my_timer_cycles(void) { - __asm __volatile__("mrs %[rt],cntvct_el0" : [ rt ] "=r"(result)); - return result; - } -+#elif defined(__GNUC__) && defined(__s390__) -+ /* covers both s390 and s390x */ -+ { -+ ulonglong result; -+ __asm__ __volatile__ ("stck %0" : "=Q" (result) : : "cc"); -+ return result; -+ } - #elif defined(HAVE_SYS_TIMES_H) && defined(HAVE_GETHRTIME) - /* gethrtime may appear as either cycle or nanosecond counter */ - return (ulonglong)gethrtime(); -@@ -505,6 +512,8 @@ void my_timer_init(MY_TIMER_INFO *mti) { - mti->cycles.routine = MY_TIMER_ROUTINE_ASM_GCC_SPARC32; - #elif defined(__GNUC__) && defined(__aarch64__) - mti->cycles.routine = MY_TIMER_ROUTINE_ASM_AARCH64; -+#elif defined(__GNUC__) && defined(__s390__) -+ mti->cycles.routine = MY_TIMER_ROUTINE_ASM_S390; - #elif defined(HAVE_SYS_TIMES_H) && defined(HAVE_GETHRTIME) - mti->cycles.routine = MY_TIMER_ROUTINE_GETHRTIME; - #else diff --git a/SOURCES/rh-skipped-tests-list-base.list b/SOURCES/rh-skipped-tests-list-base.list index 79683e1..4a03966 100644 --- a/SOURCES/rh-skipped-tests-list-base.list +++ b/SOURCES/rh-skipped-tests-list-base.list @@ -1,6 +1,5 @@ auth_sec.tls12_tls1 : BUG#0 auth_sec.tls13_tls1 : BUG#0 -main.ssl_deprecated_tls_versions : BUG#0 x.connection_tls_version : BUG#0 # x86_64 @@ -11,11 +10,20 @@ main.ctype_unicode900_as_cs : BUG#0 collations.chinese : BUG#0 main.mysql_load_data_local_dir : BUG#0 -# i686, s390x -main.range_with_memory_limit : BUG#0 - # x86_64, s390x main.mysqld--defaults-file : BUG#0 main.mysqltest_json : BUG#0 main.mtr_unit_tests : BUG#0 main.mysqld--help-notwin : BUG#0 + +# Unstable since 8.0.27 +innodb.innodb_read_only-2 : BUG#0 + +# Failing since 8.0.29 +innodb.innochecksum_linux : BUG#0 +rpl_gtid.rpl_multi_source_mtr_includes : BUG#0 + +# Failing since MySQL 8.0.30 +auth_sec.fips : BUG#0 +rpl.rpl_fips : BUG#0 +main.mysqlpump_bugs : BUG#0 diff --git a/SOURCES/rh-skipped-tests-list-ppc.list b/SOURCES/rh-skipped-tests-list-ppc.list index d71641d..e5b9cd8 100644 --- a/SOURCES/rh-skipped-tests-list-ppc.list +++ b/SOURCES/rh-skipped-tests-list-ppc.list @@ -1 +1,14 @@ main.component_backup_lock_service : BUG#0 + +# Fails since MySQL 8.0.30 +main.resource_group_thr_prio_unsupported : BUG#0 +main.resource_group_binlog_events : BUG#0 + +clone.local_dml_auto_tune : BUG#0 +clone.remote_dml_auto_tune : BUG#0 + +main.resource_group_binlog_events : BUG#0 +main.resource_group_thr_prio_unsupported : BUG#0 +rpl_gtid.rpl_mixed_temp_table_stored_function : BUG#0 +sys_vars.innodb_buffer_pool_size_basic : BUG#0 +x.resource_groups : BUG#0 diff --git a/SOURCES/rh-skipped-tests-list-s390.list b/SOURCES/rh-skipped-tests-list-s390.list index c42b408..2c89419 100644 --- a/SOURCES/rh-skipped-tests-list-s390.list +++ b/SOURCES/rh-skipped-tests-list-s390.list @@ -24,3 +24,7 @@ main.subquery_sj_firstmatch_bka_nobnl : BUG#0 main.subquery_sj_mat_bka_nobnl : BUG#0 main.window_std_var : BUG#0 main.window_std_var_optimized : BUG#0 + +# Failing since 8.0.27 +gis.st_symdifference : BUG#0 +main.regular_expressions_utf-8 : BUG#0 diff --git a/SPECS/mysql.spec b/SPECS/mysql.spec index 9047317..5cda97c 100644 --- a/SPECS/mysql.spec +++ b/SPECS/mysql.spec @@ -16,7 +16,7 @@ # The last version on which the full testsuite has been run # In case of further rebuilds of that version, don't require full testsuite to be run # run only "main" suite -%global last_tested_version 8.0.26 +%global last_tested_version 8.0.30 # Set to 1 to force run the testsuite even if it was already tested in current version %global force_run_testsuite 0 @@ -57,21 +57,14 @@ # For deep debugging we need to build binaries with extra debug info %bcond_with debug -%global boost_bundled_version 1.73.0 - -%if 0%{?fedora} -%bcond_with bundled_icu -%else -%bcond_without bundled_icu -%endif -%global icu_bundled_version 65.1.0 +%global boost_bundled_version 1.77.0 %if 0%{?fedora} >= 26 || 0%{?rhel} > 7 %bcond_with bundled_protobuf %else %bcond_without bundled_protobuf %endif -%global protobuf_bundled_version 3.11.4 +%global protobuf_bundled_version 3.19.4 # Mysql 8.0.21 needs libevent version >2.1 and rhel-7 provides 2.0 # Also since Mysql 8.0.18, libzstd is required, but it's not in rhel until version 8 @@ -82,13 +75,17 @@ %bcond_with bundled_libevent %endif # zstd is missing on rhel-8.0.0 +# libfido2 is missing on <= rhel-8 as well %if 0%{?scl:1} || 0%{?rhel} <= 8 %bcond_without bundled_zstd +%bcond_without bundled_fido2 %else %bcond_with bundled_zstd +%bcond_with bundled_fido2 %endif -%global zstd_bundled_version 1.4.3 +%global zstd_bundled_version 1.5.0 %global libevent_bundled_version 2.1.11 +%global fido2_bundled_version 1.8.0 # Include files for SysV init or systemd %if 0%{?fedora} >= 15 || 0%{?rhel} >= 7 @@ -147,7 +144,7 @@ %endif Name: %{?scl_prefix}mysql -Version: 8.0.26 +Version: 8.0.30 Release: 1%{?with_debug:.debug}%{?dist} Summary: MySQL client programs and shared libraries URL: http://www.mysql.com @@ -188,40 +185,34 @@ Source53: rh-skipped-tests-list-ppc.list # Comments for these patches are in the patch files # Patches common for more mysql-like packages Patch1: %{pkgnamepatch}-install-test.patch -Patch2: %{pkgnamepatch}-s390-tsc.patch Patch3: %{pkgnamepatch}-file-contents.patch Patch4: %{pkgnamepatch}-scripts.patch Patch5: %{pkgnamepatch}-paths.patch # Patches specific for this mysql package -Patch51: %{pkgnamepatch}-chain-certs.patch -Patch52: %{pkgnamepatch}-sharedir.patch -Patch56: %{pkgnamepatch}-mtr.patch -Patch75: %{pkgnamepatch}-arm32-timer.patch -Patch80: %{pkgnamepatch}-fix-includes-robin-hood.patch +Patch51: %{pkgnamepatch}-sharedir.patch +Patch53: %{pkgnamepatch}-mtr.patch +Patch54: %{pkgnamepatch}-arm32-timer.patch # Patches specific for scl Patch90: %{pkgnamepatch}-scl-env-check.patch Patch91: %{pkgnamepatch}-rpath.patch # Patches taken from boost 1.59 -Patch115: boost-1.58.0-pool.patch -Patch125: boost-1.57.0-mpl-print.patch +Patch111: boost-1.58.0-pool.patch +Patch112: boost-1.57.0-mpl-print.patch +# Patches taken from boost 1.76 +Patch113: boost-1.76.0-fix_multiprecision_issue_419-ppc64le.patch + # Use same logfile path in logrotate and mysql configs Patch126: mysql-logrotate-log-path.patch BuildRequires: cmake BuildRequires: gcc-c++ -# From 8.0.24 MySQL start supporting GCC version 10 -# The default and only version of GCC in the base RHEL-8 is GCC 8 -# GCC 10 is available in the gcc-toolset -BuildRequires: gcc-toolset-10-toolchain BuildRequires: libaio-devel BuildRequires: libedit-devel BuildRequires: libevent-devel -%if %{without bundled_icu} BuildRequires: libicu-devel -%endif BuildRequires: %{?scl_prefix}lz4 BuildRequires: %{?scl_prefix}lz4-devel BuildRequires: %{?scl_prefix}mecab-devel @@ -291,6 +282,8 @@ BuildRequires: make %{?with_init_systemd:BuildRequires: systemd} # libzstd %{!?with_bundled_zstd:BuildRequires: libzstd-devel} +# libfido2 +%{!?with_bundled_fido2:BuildRequires: libfido2-devel} # libevent %{?with_bundled_libevent:Provides: bundled(libevent) = %{libevent_bundled_version}} %{!?with_bundled_libevent:BuildRequires: libevent-devel} @@ -310,12 +303,12 @@ Provides: bundled(boost) = %{boost_bundled_version} %if %{with bundled_protobuf} Provides: bundled(protobuf) = %{protobuf_bundled_version} %endif -%if %{with bundled_icu} -Provides: bundled(icu) = %{icu_bundled_version} -%endif %if %{with bundled_zstd} Provides: bundled(zstd) = %{zstd_bundled_version} %endif +%if %{with bundled_fido2} +Provides: bundled(fido2) = %{fido2_bundled_version} +%endif %if %{with mysql_names} Provides: mysql = %{sameevr} @@ -516,27 +509,25 @@ the MySQL sources. %prep %setup -q -n mysql-%{version} %patch1 -p1 -%patch2 -p1 %patch3 -p1 %patch4 -p1 %patch5 -p1 %patch51 -p1 -%patch52 -p1 -%patch56 -p1 -%patch75 -p1 -%patch80 -p1 +%patch53 -p1 +%patch54 -p1 %patch126 -p1 # Patch Boost pushd boost/boost_$(echo %{boost_bundled_version}| tr . _) -%patch115 -p0 -%patch125 -p1 +%patch111 -p0 +%patch112 -p1 +%patch113 -p2 popd # check that we have correct versions in bundled(*) Provides above (boost checked with pushd above) # Let's check the version in Provides even if we build without bundled, to keep SPEC valid generally -test "$(grep -e '^#define ZSTD_VERSION_\(MAJOR\|MINOR\|RELEASE\)' extra/zstd/lib/zstd.h | awk '{print $3}' | xargs | sed -e 's/ /./g')" == "%{zstd_bundled_version}" -test "$(grep -e '^#define U_ICU_VERSION_\(MAJOR\|MINOR\|PATCHLEVEL_NUM\)' extra/icu/source/common/unicode/uvernum.h| awk '{print $3}' | xargs | sed -e 's/ /./g')" == "%{icu_bundled_version}" +test "$(grep -e '^#define ZSTD_VERSION_\(MAJOR\|MINOR\|RELEASE\)' extra/zstd/zstd-$(echo %{zstd_bundled_version})/lib/zstd.h | awk '{print $3}' | xargs | sed -e 's/ /./g')" == "%{zstd_bundled_version}" +test "$(grep -e 'The current release of \*libfido2\* is' extra/libfido2/libfido2-*/README.adoc | awk '{print $7}' | sed 's/.$//')" == "%{fido2_bundled_version}" test -f extra/protobuf/protobuf-%{protobuf_bundled_version}/src/google/protobuf/port_def.inc test -f extra/libevent/libevent-%{libevent_bundled_version}-stable/CMakeLists.txt @@ -638,14 +629,15 @@ cmake .. \ %endif -DWITH_ROUTER=OFF \ -DWITH_SYSTEM_LIBS=ON \ -%if %{with bundled_icu} - -DWITH_ICU=bundled \ -%endif + -DWITH_ICU=system \ %if %{with bundled_protobuf} -DWITH_PROTOBUF=bundled \ %endif -DWITH_MECAB=system \ -DWITH_BOOST=../boost \ +%if %{with bundled_fido2} + -DWITH_FIDO="bundled" \ +%endif %if %{with bundled_zstd} -DWITH_ZSTD="bundled" \ %endif @@ -662,6 +654,8 @@ cmake .. \ -DWITH_MYSQLD_LDFLAGS="%{build_ldflags}" \ -DCMAKE_C_LINK_FLAGS="%{build_ldflags}" \ -DCMAKE_CXX_LINK_FLAGS="%{build_ldflags}" \ + -DCMAKE_C_COMPILER="%{_bindir}/gcc" \ + -DCMAKE_CXX_COMPILER="%{_bindir}/g++" \ -DWITH_UNIT_TESTS=0 # Note: linking with GOLD disabled on Armv7hl because of https://bugs.mysql.com/bug.php?id=96698 @@ -898,7 +892,7 @@ export MTR_BUILD_THREAD=$(( $(date +%s) % 2200 )) set -ex cd %{buildroot}%{_datadir}/mysql-test - export common_testsuite_arguments=" %{?with_debug:--debug-server} --parallel=auto --force --retry=2 --suite-timeout=900 --testcase-timeout=30 --mysqld=--binlog-format=mixed --max-test-fail=5 --report-unstable-tests --clean-vardir " + export common_testsuite_arguments=" %{?with_debug:--debug-server} --parallel=auto --force --retry=2 --suite-timeout=900 --testcase-timeout=30 --mysqld=--binlog-format=mixed --max-test-fail=5 --report-unstable-tests --clean-vardir --mysqld=--skip-innodb-use-native-aio " # If full testsuite has already been run on this version and we don't explicitly want the full testsuite to be run if [[ "%{last_tested_version}" == "%{version}" ]] && [[ %{force_run_testsuite} -eq 0 ]] @@ -1211,6 +1205,21 @@ fi %endif %changelog +* Wed Jul 06 2022 Lars Tangvald - 8.0.30-1 +- Update to MySQL 8.0.30 +- Remove patches now upstream: + chain certs, s390 and robin hood +- Add a new plugin 'conflicting_variables.so' + +* Wed Apr 20 2022 Lars Tangvald - 8.0.29-1 +- Update to MySQL 8.0.29 + +* Wed Jan 19 2022 Lars Tangvald - 8.0.28-1 +- Update to MySQL 8.0.28 + +* Sun Oct 31 2021 Lars Tangvald - 8.0.27-1 +- Update to MySQL 8.0.27 + * Wed Jul 21 2021 Lars Tangvald - 8.0.26-1 - Update to MySQL 8.0.26