import mysql-8.0.28-1.el9

This commit is contained in:
CentOS Sources 2022-03-01 07:16:38 -05:00 committed by Stepan Oksanichenko
parent 8e23b8eafd
commit 1c4bba7b18
13 changed files with 380 additions and 174 deletions

2
.gitignore vendored
View File

@ -1 +1 @@
SOURCES/mysql-boost-8.0.22.tar.gz
SOURCES/mysql-boost-8.0.28.tar.gz

View File

@ -1 +1 @@
0bf6f95fa5cf925e9cee1edab765c694cb7571bd SOURCES/mysql-boost-8.0.22.tar.gz
0f34d6a9c8cedacb71549b1beb33133e31d75014 SOURCES/mysql-boost-8.0.28.tar.gz

View File

@ -1,8 +1,10 @@
--- mysql-8.0.22/mysql-test/include/mtr_warnings.sql.old 2020-10-21 11:25:49.779775116 +0200
+++ mysql-8.0.22/mysql-test/include/mtr_warnings.sql 2020-10-21 11:26:29.507185307 +0200
@@ -299,6 +299,11 @@
("NOTIFY_SOCKET not set in environment. sd_notify messages will not be sent!"),
("Invalid systemd notify socket, cannot send: "),
diff --git a/mysql-test/include/mtr_warnings.sql b/mysql-test/include/mtr_warnings.sql
index eff14a67..413dfc27 100644
--- a/mysql-test/include/mtr_warnings.sql
+++ b/mysql-test/include/mtr_warnings.sql
@@ -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.

View File

@ -0,0 +1,13 @@
# 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 <string>
#include <type_traits>
#include <utility>
+#include <limits>
#if __cplusplus >= 201703L
# include <string_view>
#endif

View File

@ -1,25 +0,0 @@
index a826a081..00000000
diff --git a/include/mysql/components/services/page_track_service.h b/include/mysql/components/services/page_track_service.h
index 103b5135..e6b3ba6f 100644
--- a/include/mysql/components/services/page_track_service.h
+++ b/include/mysql/components/services/page_track_service.h
@@ -26,6 +26,7 @@
#include <mysql/components/service.h>
#include <functional>
+#include <cstddef>
#include <stdint.h>
diff --git a/sql-common/sql_string.cc b/sql-common/sql_string.cc
index 40435729..8b6ee827 100644
--- a/sql-common/sql_string.cc
+++ b/sql-common/sql_string.cc
@@ -23,6 +23,7 @@
#include "sql_string.h"
#include <algorithm>
+#include <limits>
#include "my_dbug.h"
#include "my_macros.h"

102
SOURCES/mysql-mtr.patch Normal file
View File

@ -0,0 +1,102 @@
Avoid errors like:
| Path length (109) is longer than maximum supported length (108) and will be truncated at /usr/lib64/perl5/vendor_perl/Socket.pm line 880, <GEN16094> line 1.
| worker[2] mysql-test-run: *** ERROR: Socket path '/builddir/build/BUILDROOT/mysql-8.0.24-1.fc35.s390x/usr/share/mysql-test/var/tmp/2' too long,
| it would be truncated and thus not possible to use for connection to MySQL Server. Set a shorter with --tmpdir=<path> option
===
On Fedora 32:
| $ grep -e "PATH" /usr/include/linux/limits.h
| #define PATH_MAX 4096 /* # chars in a path name including nul */
===
Thus setting the maximum path length on Fedora to 108 characters is just too short.
BTW on the modern filesystems you can easily create path longer than PATH_MAX.
The PATH_MAX constant is unsafe.
Interesting article: https://insanecoding.blogspot.com/2007/11/pathmax-simply-isnt.html
===
The question is why haven't I encountered this issue until recently ?
After the recent tweaks to the testsuite (between 8.0.24 and 8.0.25 release), the generated --tmpdir path changed from
| --tmpdir=/builddir/build/BUILD/mysql-8.0.24/x86_64-redhat-linux-gnu/mysql-test/var/tmp/
to
| --tmpdir=/builddir/build/BUILDROOT/mysql-8.0.24-1.fc35.x86_64/usr/share/mysql-test/var/tmp/
===
The whole setup changed as follows:
BEFORE:
| Installing system database
| ### safe_path: /builddir/build/BUILD/mysql-8.0.24/x86_64-redhat-linux-gnu/runtime_output_directory///mysqltest_safe_process --verbose -- /builddir/build/BUILD/mysql-8.0.24/x86_64-redhat-linux-gnu/runtime_output_directory/mysqld --no-defaults --initialize-insecure --loose-skip-ndbcluster --tmpdir=/builddir/build/BUILD/mysql-8.0.24/x86_64-redhat-linux-gnu/mysql-test/var/tmp/ --core-file --datadir=/builddir/build/BUILD/mysql-8.0.24/x86_64-redhat-linux-gnu/mysql-test/var/data/ --secure-file-priv=/builddir/build/BUILD/mysql-8.0.24/x86_64-redhat-linux-gnu/mysql-test/var --innodb_buffer_pool_size=24M --innodb-log-file-size=5M --innodb_autoextend_increment=8 --character-sets-dir=/builddir/build/BUILD/mysql-8.0.24/share/charsets --loose-auto_generate_certs=OFF --loose-sha256_password_auto_generate_rsa_keys=OFF --loose-caching_sha2_password_auto_generate_rsa_keys=OFF --init-file=/builddir/build/BUILD/mysql-8.0.24/x86_64-redhat-linux-gnu/mysql-test/var/tmp/bootstrap.sql
AFTER:
| Installing system database
| ### safe_path: /builddir/build/BUILDROOT/mysql-8.0.24-1.fc35.x86_64/usr/bin//mysqltest_safe_process --verbose -- /builddir/build/BUILDROOT/mysql-8.0.24-1.fc35.x86_64/usr/libexec/mysqld --no-defaults --initialize-insecure --loose-skip-ndbcluster --tmpdir=/builddir/build/BUILDROOT/mysql-8.0.24-1.fc35.x86_64/usr/share/mysql-test/var/tmp/ --core-file --datadir=/builddir/build/BUILDROOT/mysql-8.0.24-1.fc35.x86_64/usr/share/mysql-test/var/data/ --secure-file-priv=/builddir/build/BUILDROOT/mysql-8.0.24-1.fc35.x86_64/usr/share/mysql-test/var --innodb_buffer_pool_size=24M --innodb-log-file-size=5M --innodb_autoextend_increment=8 --character-sets-dir=/builddir/build/BUILDROOT/mysql-8.0.24-1.fc35.x86_64/usr/share/mysql/charsets --loose-auto_generate_certs=OFF --loose-sha256_password_auto_generate_rsa_keys=OFF --loose-caching_sha2_password_auto_generate_rsa_keys=OFF --init-file=/builddir/build/BUILDROOT/mysql-8.0.24-1.fc35.x86_64/usr/share/mysql-test/var/tmp/bootstrap.sql
===
The likely cause is the added
| cd %{buildroot}%{_datadir}/mysql-test
which was not originally present in the SPECfile.
However the MariaDB implementation does not have this issue, even though it has the same SPECfile %check phase code.
===
In the extended log, you can see '/tmp/XfTFAis2Jl' being created and deleted short after.
Even though the script warns about the path length, tries to workaround it; it destroyes that workaround short after and use the too-long path instead.
I'm not sure whether the output is synchronous, but even if it wasn'tit still looks weird.
| + cd /builddir/build/BUILDROOT/mysql-8.0.24-1.fc35.x86_64/usr/share/mysql-test
| Logging: ./mysql-test-run.pl --verbose --parallel=auto --force --retry=2 --suite-timeout=900 --testcase-timeout=30 --mysqld=--binlog-format=mixed --max-test-fail=5 --report-unstable-tests --clean-vardir --suite=main --mem --skip-test-list=platform-specific-tests.list
| Path length (109) is longer than maximum supported length (108) and will be truncated at /usr/lib64/perl5/vendor_perl/Socket.pm line 880.
| Too long tmpdir path '/builddir/build/BUILDROOT/mysql-8.0.24-1.fc35.x86_64/usr/share/mysql-test/var/tmp' creating a shorter one
| - Using tmpdir: '/tmp/XfTFAis2Jl'
| > Collecting: main
| > testdir: /builddir/build/BUILDROOT/mysql-8.0.24-1.fc35.x86_64/usr/share/mysql-test/t
| > resdir: /builddir/build/BUILDROOT/mysql-8.0.24-1.fc35.x86_64/usr/share/mysql-test/r
| > Collecting: i_main
| Removing old var directory
| > opt_vardir: /builddir/build/BUILDROOT/mysql-8.0.24-1.fc35.x86_64/usr/share/mysql-test/var
| > Removing /builddir/build/BUILDROOT/mysql-8.0.24-1.fc35.x86_64/usr/share/mysql-test/var/
| > Removing /dev/shm/var_933_jfTb
| > Removing /tmp/XfTFAis2Jl/
| Creating var directory '/builddir/build/BUILDROOT/mysql-8.0.24-1.fc35.x86_64/usr/share/mysql-test/var'
| > Creating /dev/shm/var_933_jfTb
| - symlinking 'var' to '/dev/shm/var_933_jfTb'
--- mysql-8.0.24/mysql-test/mysql-test-run.pl 2021-05-10 04:29:44.391897891 +0200
+++ mysql-8.0.24/mysql-test/mysql-test-run.pl_patched 2021-05-10 04:38:51.031702753 +0200
@@ -3374,17 +3374,6 @@ sub setup_vardir() {
mkpath("$opt_vardir/tmp");
mkpath($opt_tmpdir) if ($opt_tmpdir ne "$opt_vardir/tmp");
- # On some operating systems, there is a limit to the length of a
- # UNIX domain socket's path far below PATH_MAX. Don't allow that
- # to happen.
- my $res =
- check_socket_path_length("$opt_tmpdir/mysqld.NN.sock", $opt_parallel);
- if ($res) {
- mtr_error("Socket path '$opt_tmpdir' too long, it would be ",
- "truncated and thus not possible to use for connection to ",
- "MySQL Server. Set a shorter with --tmpdir=<path> option");
- }
-
# Copy all files from std_data into var/std_data
# and make them world readable
copytree("$glob_mysql_test_dir/std_data", "$opt_vardir/std_data", "0022");

View File

@ -153,10 +153,10 @@ diff -rup mysql-8.0.22-orig/mysys/my_md5.cc mysql-8.0.22/mysys/my_md5.cc
}
/**
diff -rup mysql-8.0.22-orig/plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/xcom_ssl_transport.cc mysql-8.0.22/plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/xcom_ssl_transport.cc
--- mysql-8.0.22-orig/plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/xcom_ssl_transport.cc 2021-05-19 21:36:14.531793376 +0200
+++ mysql-8.0.22/plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/xcom_ssl_transport.cc 2021-05-19 23:06:55.049885943 +0200
@@ -25,6 +25,7 @@
diff -Naurp mysql-8.0.27/plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/network/xcom_network_provider_ssl_native_lib.cc*
--- mysql-8.0.27/plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/network/xcom_network_provider_ssl_native_lib.cc 2021-09-28 13:46:34.000000000 +0200
+++ mysql-8.0.27/plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/network/xcom_network_provider_ssl_native_lib.cc_patched 2021-10-31 10:57:37.865934624 +0100
@@ -30,6 +30,7 @@
#include <assert.h>
#include <stdlib.h>
@ -164,7 +164,7 @@ diff -rup mysql-8.0.22-orig/plugin/group_replication/libmysqlgcs/src/bindings/xc
#include <openssl/dh.h>
#include <openssl/opensslv.h>
#include <openssl/x509v3.h>
@@ -35,6 +36,7 @@
@@ -39,6 +40,7 @@
#endif
#include "openssl/engine.h"

View File

@ -2,21 +2,21 @@ 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 65f7df19..a28f470c 100644
index 6e378e94..7703cf85 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
@@ -137,5 +137,6 @@ void my_timer_init(MY_TIMER_INFO *mti);
/* #define MY_TIMER_ROUTINE_ASM_SUNPRO_X86_64 27 - No longer used */
#define MY_TIMER_ROUTINE_ASM_AARCH64 28
+#define MY_TIMER_ROUTINE_ASM_S390 29
#define MY_TIMER_ROUTINE_GET_THREAD_TIMES 29
+#define MY_TIMER_ROUTINE_ASM_S390 30
#endif
diff --git a/mysys/my_rdtsc.cc b/mysys/my_rdtsc.cc
index 54d19691..f18c182f 100644
index 3869db57..655a955e 100644
--- a/mysys/my_rdtsc.cc
+++ b/mysys/my_rdtsc.cc
@@ -204,6 +204,13 @@ ulonglong my_timer_cycles(void) {
@@ -169,6 +169,13 @@ ulonglong my_timer_cycles(void) {
__asm __volatile__("mrs %[rt],cntvct_el0" : [ rt ] "=r"(result));
return result;
}
@ -30,8 +30,8 @@ index 54d19691..f18c182f 100644
#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;
@@ -491,6 +498,8 @@ void my_timer_init(MY_TIMER_INFO *mti) {
mti->cycles.routine = MY_TIMER_ROUTINE_ASM_GCC_SPARC64;
#elif defined(__GNUC__) && defined(__aarch64__)
mti->cycles.routine = MY_TIMER_ROUTINE_ASM_AARCH64;
+#elif defined(__GNUC__) && defined(__s390__)

View File

@ -0,0 +1,32 @@
gis.st_latitude : BUG#0 fails on F32+
gis.st_longitude : BUG#0 fails on F32+
perfschema.func_file_io : BUG#0 missing hw on 32-bit arm
perfschema.global_read_lock : BUG#0 missing hw on 32-bit arm
perfschema.relaylog : BUG#0 missing hw on 32-bit arm
perfschema.setup_objects : BUG#0 missing hw on 32-bit arm
clone.remote_error_basic : BUG#0 fails since 8.0.19 on F32+, max_allowed_packet is 0
clone.remote_dml_auto_tune : BUG#0
# Unstable
clone.local_dml_auto_tune : BUG#0
innodb.innodb_bug-13628249 : BUG#0
main.grant_dynamic_flush : BUG#0
innodb.innodb_read_only : BUG#0
rpl_nogtid.rpl_mixed_mixing_engines : BUG#0 timeout after 1800 secs or armv7hl
# Failing on C9S & RHEL 9 for MySQL release 8.0.27
sys_vars.innodb_buffer_pool_size_basic : BUG#0
# Unstable on aarch64 since MySQL 8.0.28
innodb_undo.undo_settings : BUG#0
perfschema.idx_session_account_connect_attrs : BUG#0
perfschema.idx_session_connect_attrs : BUG#0
rpl_gtid.rpl_mixed_temp_table_stored_function : BUG#0
sysschema.pr_ps_setup_show_enabled : BUG#0
perfschema.idx_threads : BUG#0
sys_vars.myisam_data_pointer_size_func : BUG#0
federated.federated_server : BUG#0

View File

@ -0,0 +1,51 @@
# Fails on all arches
main.subquery_sj_mat_bka_nobnl : BUG#0 failing since 8.0.24 on F32+
main.derived_limit : BUG#0 failing since 8.0.24 on F32+
main.explain_tree : BUG#0 failing since 8.0.24 on F32+
auth_sec.keyring_file_data_qa : BUG#0 failing on F32+
innodb.alter_kill : BUG#0 failing on F34+
main.mtr_unit_tests : BUG#0 failing on F35+
# Fails when -DENABLED_LOCAL_INFILE=ON
main.mysql_load_data_local_dir : BUG#0 failing on F32+
# Unstable
innodb.innodb_force_recovery : BUG#0 unstable since 8.0.24 on F32+
clone.local_dml_auto_tune : BUG#0 unstable on x86_64 and i686
perfschema.threads_mysql : BUG#0 unstable on x86_64 and i686
rpl_gtid.rpl_multi_source_mtr_includes : BUG#0 unstable on x86_64 and i686
# Failing on 32-bit arches: armv7hl i686 s390x; since MySQL 8.0.25
x.connection_unixsocket : BUG#0
x.connection_unixsocket_invalid : BUG#0
x.connection_unixsocket_lock : BUG#0
innodb.innodb_bug-13628249 : BUG#0
# Failing on C9S & RHEL 9 for MySQL release 8.0.27
auth_sec.admin_channel_tls : BUG#0
auth_sec.cipher_support : BUG#0
auth_sec.openssl_cert_generation : BUG#0
auth_sec.openssl_without_fips : BUG#0
auth_sec.ssl_mode : BUG#0
auth_sec.tls : BUG#0
auth_sec.tls12_tls1 : BUG#0
binlog.binlog_grant_alter_user : BUG#0
main.grant_alter_user_qa : BUG#0
main.grant_user_lock_qa : BUG#0
main.openssl_1 : BUG#0
main.ssl_cipher : BUG#0
main.ssl_dynamic : BUG#0
x.connection_openssl : BUG#0
x.connection_openssl_unixsocket : BUG#0
x.connection_tls_version : BUG#0
main.slow_log : BUG#0
main.ctype_unicode900_as_cs : BUG#0
# Failing consistently, but only on C9S ZUUL CI mock build
main.loaddata_special : BUG#0
# Failing on all arches since MySQL 8.0.28
innodb.trigger_function_lock_compare : BUG#0
# Failing only in i686 since MySQL 8.0.28
main.index_merge_myisam : BUG#0

View File

@ -0,0 +1,9 @@
# ppc64le
sys_vars.innodb_buffer_pool_size_basic : BUG#0 fails only on ppc64le on f32+
# Failing on RHEL 9 for MySQL release 8.0.27
main.sp-threads : BUG#0
main.dd_upgrade_error : BUG#0
main.dd_upgrade_non_debug : BUG#0
main.dd_upgrade_partition : BUG#0
main.partition_prefixkey_upgrade : BUG#0

View File

@ -0,0 +1,36 @@
# Fails since 8.0.21
x.resource_groups : BUG#0
# Fails since 8.0.22
main.subquery_bugs : BUG#0
# Fails since F32 Mass Rebuild
gis.geometry_class_attri_prop : BUG#0
gis.geometry_property_function_issimple : BUG#0
gis.gis_bugs_crashes : BUG#0
gis.spatial_analysis_functions_buffer : BUG#0
gis.spatial_analysis_functions_centroid : BUG#0
gis.spatial_analysis_functions_distance : BUG#0
gis.spatial_operators_intersection : BUG#0
gis.spatial_operators_union : BUG#0
gis.spatial_operators_symdifference : BUG#0
gis.spatial_op_testingfunc_mix : BUG#0
gis.spatial_utility_function_distance_sphere : BUG#0
gis.spatial_utility_function_simplify : BUG#0
main.window_std_var : BUG#0
main.window_std_var_optimized : BUG#0
main.with_recursive : BUG#0
# Unstable
main.grant_dynamic_flush : BUG#0
# Failing on C9S & RHEL 9 for MySQL release 8.0.27
gis.st_symdifference : BUG#0
main.regular_expressions_utf-8 : BUG#0
main.subquery_sj_dupsweed : BUG#0
main.subquery_sj_dupsweed_bka : BUG#0
main.subquery_sj_dupsweed_bka_nobnl : BUG#0
main.subquery_sj_firstmatch : BUG#0
main.subquery_sj_firstmatch_bka : BUG#0
main.subquery_sj_firstmatch_bka_nobnl : BUG#0

View File

@ -1,7 +1,3 @@
# This is a fix for the https://fedoraproject.org/wiki/Changes/CMake_to_do_out-of-source_builds
# So the beaviour will be the same also in F31 nad F32
%undefine __cmake_in_source_build
# Name of the package without any prefixes
%global pkg_name %{name}
%global pkgnamepatch mysql
@ -11,9 +7,15 @@
# --nocheck is not possible (e.g. in koji build)
%{!?runselftest:%global runselftest 1}
# Set this to 1 to see which tests fail
%global check_testsuite 1
# Set this to 1 to see which tests fail, but 0 on production ready build
%global ignore_testsuite_result 0
# 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.28
# Set to 1 to force run the testsuite even if it was already tested in current version
%global force_run_testsuite 0
# Aditional SELinux rules
%global require_mysql_selinux 1
@ -72,8 +74,8 @@
%global sameevr %{?epoch:%{epoch}:}%{version}-%{release}
Name: mysql
Version: 8.0.22
Release: 7%{?with_debug:.debug}%{?dist}
Version: 8.0.28
Release: 1%{?with_debug:.debug}%{?dist}
Summary: MySQL client programs and shared libraries
URL: http://www.mysql.com
@ -97,6 +99,11 @@ Source18: mysql@.service.in
Source30: %{pkgnamepatch}.rpmlintrc
# Configuration for server
Source31: server.cnf.in
# Skipped tests lists
Source50: rh-skipped-tests-list-base.list
Source51: rh-skipped-tests-list-arm.list
Source52: rh-skipped-tests-list-s390.list
Source53: rh-skipped-tests-list-ppc.list
# Comments for these patches are in the patch files
# Patches common for more mysql-like packages
@ -110,9 +117,10 @@ Patch5: %{pkgnamepatch}-paths.patch
Patch51: %{pkgnamepatch}-chain-certs.patch
Patch52: %{pkgnamepatch}-sharedir.patch
Patch55: %{pkgnamepatch}-rpath.patch
Patch56: %{pkgnamepatch}-mtr.patch
Patch75: %{pkgnamepatch}-arm32-timer.patch
Patch78: %{pkgnamepatch}-gcc11.patch
Patch79: %{pkgnamepatch}-openssl3.patch
Patch80: %{pkgnamepatch}-fix-includes-robin-hood.patch
# Patches taken from boost 1.59
Patch115: boost-1.58.0-pool.patch
@ -128,6 +136,7 @@ BuildRequires: lz4
BuildRequires: lz4-devel
BuildRequires: mecab-devel
BuildRequires: bison
BuildRequires: libcurl-devel
BuildRequires: libzstd-devel
%ifnarch aarch64 %{arm} s390 s390x
BuildRequires: numactl-devel
@ -191,6 +200,8 @@ BuildRequires: perl(warnings)
BuildRequires: systemd
BuildRequires: make
# Since MySQL 8.0.28
BuildRequires: libfido2-devel
Requires: bash coreutils grep
@ -379,9 +390,10 @@ the MySQL sources.
%patch51 -p1
%patch52 -p1
%patch55 -p1
%patch56 -p1
%patch75 -p1
%patch78 -p1
%patch79 -p1
%patch80 -p1
# Patch Boost
pushd boost/boost_$(echo %{boost_bundled_version}| tr . _)
@ -389,114 +401,22 @@ pushd boost/boost_$(echo %{boost_bundled_version}| tr . _)
%patch125 -p1
popd
# Modify tests to pass on all archs
pushd mysql-test
# generate a list of tests that fail, but are not disabled by upstream
cat %{SOURCE50} | tee -a mysql-test/%{skiplist}
add_test () {
echo "$1" : BUG#0 "${@:2}" >> %{skiplist}
}
touch %{skiplist}
add_test auth_sec.keyring_file_data_qa failing for 8.0.22
add_test innodb.alter_kill failing for 8.0.22
add_test main.cast failing for 8.0.22
add_test main.mysql_load_data_local_dir failing for 8.0.22
add_test rpl.rpl_row_jsondiff_basic_nokey failing for 8.0.22
add_test rpl.rpl_row_jsondiff_basic_pk failing for 8.0.22
add_test rpl.rpl_show_slave_hosts failing for 8.0.22
%ifarch x86_64
add_test rpl.rpl_xa_xplugin failing for 8.0.22
add_test rpl.rpl_mix_missing_data_on_slave failing for 8.0.22
add_test rpl.rpl_gtid_drop_mem_table failing for 8.0.22
# disable some tests failing on different architectures
%ifarch %{arm} aarch64
cat %{SOURCE51} | tee -a mysql-test/%{skiplist}
%endif
%ifarch %arm aarch64
add_test rpl_gtid.rpl_gtid_retrieve_last_trx_myisam failing for 8.0.22
add_test rpl.rpl_ip_mix2 failing for 8.0.22
add_test rpl.rpl_ipv4_as_ipv6 failing for 8.0.22
add_test rpl.rpl_ipv6 failing for 8.0.22
add_test rpl.rpl_mix_missing_data_on_slave failing for 8.0.22
add_test rpl.rpl_msr_running_applier_prevents_switch_global_binlog_format failing for 8.0.22
add_test rpl.rpl_multi_source_basic failing for 8.0.22
add_test rpl.rpl_multi_source_perfschema failing for 8.0.22
add_test rpl.rpl_multi_source_repository failing for 8.0.22
add_test rpl.rpl_multi_source_slave_files failing for 8.0.22
add_test rpl.rpl_multi_source_slave_start_stop failing for 8.0.22
add_test rpl.rpl_perfschema_applier_status_by_coordinator failing for 8.0.22
add_test rpl.rpl_perfschema_order_by failing for 8.0.22
add_test rpl.rpl_slave_start_after_clone failing for 8.0.22
add_test rpl.rpl_xa_survive_disconnect_table failing for 8.0.22
%ifarch s390 s390x
cat %{SOURCE52} | tee -a mysql-test/%{skiplist}
%endif
%ifarch s390x
add_test gis.geometry_class_attri_prop failing for 8.0.22
add_test gis.geometry_property_function_issimple failing for 8.0.22
add_test gis.gis_bugs_crashes failing for 8.0.22
add_test gis.spatial_analysis_functions_buffer failing for 8.0.22
add_test gis.spatial_analysis_functions_centroid failing for 8.0.22
add_test gis.spatial_analysis_functions_distance failing for 8.0.22
add_test gis.spatial_operators_intersection failing for 8.0.22
add_test gis.spatial_op_testingfunc_mix failing for 8.0.22
add_test gis.spatial_utility_function_distance_sphere failing for 8.0.22
add_test gis.spatial_utility_function_simplify failing for 8.0.22
add_test main.subquery_bugs failing for 8.0.22
add_test main.window_std_var failing for 8.0.22
add_test main.window_std_var_optimized failing for 8.0.22
add_test main.with_recursive failing for 8.0.22
add_test rpl.rpl_show_slave_hosts failing for 8.0.22
%ifarch ppc ppc64 ppc64p7 ppc64le
cat %{SOURCE53} | tee -a mysql-test/%{skiplist}
%endif
%ifarch %{ix86}
add_test collations.chinese failing for 8.0.22
add_test main.ctype_unicode900_as_cs failing for 8.0.22
add_test rpl_gtid.rpl_async_conn_failover_perfschema failing for 8.0.22
add_test rpl_gtid.rpl_async_conn_failover_udf_check failing for 8.0.22
add_test rpl_gtid.rpl_empty_multi_update failing for 8.0.22
add_test rpl_gtid.rpl_gtid_purged_settable failing for 8.0.22
add_test rpl_nogtid.rpl_semi_sync_shutdown_hang failing for 8.0.22
add_test rpl_nogtid.rpl_sp_myisam failing for 8.0.22
add_test rpl.rpl_gtid_drop_mem_table failing for 8.0.22
add_test rpl.rpl_mix_missing_data_on_slave failing for 8.0.22
add_test rpl.rpl_msr_running_applier_prevents_switch_global_binlog_format failing for 8.0.22
add_test rpl.rpl_multi_source_basic failing for 8.0.22
add_test rpl.rpl_multi_source_perfschema failing for 8.0.22
add_test rpl.rpl_multi_source_repository failing for 8.0.22
add_test rpl.rpl_multi_source_slave_files failing for 8.0.22
add_test rpl.rpl_perfschema_applier_status_by_coordinator failing for 8.0.22
add_test rpl.rpl_perfschema_order_by failing for 8.0.22
add_test rpl.rpl_show_slave_hosts failing for 8.0.22
add_test rpl.rpl_slave_start_after_clone failing for 8.0.22
add_test rpl.rpl_xa_survive_disconnect_table failing for 8.0.22
add_test rpl.rpl_xa_xplugin failing for 8.0.22
%endif
%ifarch %{power64}
add_test rpl_gtid.rpl_gtid_grant_as failing for 8.0.22
add_test rpl_gtid.rpl_gtid_heartbeat_2slave failing for 8.0.22
add_test rpl_gtid.rpl_gtid_mixed_row_create_drop_temporary_in_function_or_trigger failing for 8.0.22
add_test rpl_gtid.rpl_gtid_row_mix_drop_table failing for 8.0.22
add_test rpl_nogtid.rpl_change_master failing for 8.0.22
add_test rpl_nogtid.rpl_invoked_features_myisam failing for 8.0.22
add_test rpl_nogtid.rpl_mixed_implicit_commit_binlog failing for 8.0.22
add_test rpl_nogtid.rpl_multi_source_slave_skip_counter failing for 8.0.22
add_test rpl_nogtid.rpl_semi_sync_shutdown_hang failing for 8.0.22
add_test rpl.rpl_gtid_drop_mem_table failing for 8.0.22
add_test rpl.rpl_ipv6 failing for 8.0.22
add_test rpl.rpl_mix_missing_data_on_slave failing for 8.0.22
add_test rpl.rpl_msr_running_applier_prevents_switch_global_binlog_format failing for 8.0.22
add_test rpl.rpl_multi_source_perfschema failing for 8.0.22
add_test rpl.rpl_multi_source_repository failing for 8.0.22
add_test rpl.rpl_multi_source_slave_start_stop failing for 8.0.22
add_test rpl.rpl_perfschema_applier_status_by_coordinator failing for 8.0.22
add_test rpl.rpl_slave_start_after_clone failing for 8.0.22
add_test rpl.rpl_xa_survive_disconnect_table failing for 8.0.22
%endif
# mysql-test
popd
cp %{SOURCE2} %{SOURCE3} %{SOURCE10} %{SOURCE11} %{SOURCE12} \
%{SOURCE14} %{SOURCE15} %{SOURCE17} %{SOURCE18} %{SOURCE31} scripts
@ -559,6 +479,7 @@ cp %{SOURCE2} %{SOURCE3} %{SOURCE10} %{SOURCE11} %{SOURCE12} \
-DWITH_ROUTER=OFF \
-DWITH_SYSTEM_LIBS=ON \
-DWITH_MECAB=system \
-DWITH_FIDO=system \
-DWITH_BOOST=boost \
-DREPRODUCIBLE_BUILD=OFF \
-DCMAKE_C_FLAGS="%{optflags}%{?with_debug: -fno-strict-overflow -Wno-unused-result -Wno-unused-function -Wno-unused-but-set-variable}" \
@ -569,10 +490,14 @@ cp %{SOURCE2} %{SOURCE3} %{SOURCE10} %{SOURCE11} %{SOURCE12} \
-DTMPDIR=/var/tmp \
-DWITH_MYSQLD_LDFLAGS="%{build_ldflags}" \
-DCMAKE_C_LINK_FLAGS="%{build_ldflags}" \
-DCMAKE_CXX_LINK_FLAGS="%{build_ldflags}"
-DCMAKE_CXX_LINK_FLAGS="%{build_ldflags}" \
-DCMAKE_SKIP_INSTALL_RPATH=YES \
-DWITH_UNIT_TESTS=0
# Note: linking with GOLD disabled on Armv7hl because of https://bugs.mysql.com/bug.php?id=96698
# Note: disabling building of unittests to workaround #1989847
cmake -B %{_vpath_builddir} -LAH
%cmake_build
@ -631,7 +556,7 @@ echo "%{_libdir}/mysql" > %{buildroot}%{_sysconfdir}/ld.so.conf.d/%{name}-%{_arc
# and just create a symlink in /usr/sbin
mv %{buildroot}%{_bindir}/mysqld %{buildroot}%{_libexecdir}/mysqld
mkdir -p %{buildroot}%{_sbindir}
ln -s %{_libexecdir}/mysqld %{buildroot}%{_sbindir}/mysqld
ln -s ../libexec/mysqld %{buildroot}%{_sbindir}/mysqld
%if %{with debug}
mv %{buildroot}%{_bindir}/mysqld-debug %{buildroot}%{_libexecdir}/mysqld
@ -686,36 +611,64 @@ polish,portuguese,romanian,russian,serbian,slovak,spanish,swedish,ukrainian}
%endif
%if %{without test}
rm %{buildroot}%{_bindir}/{mysql_client_test,mysqlxtest,mysqltest_safe_process,zlib_decompress}
rm %{buildroot}%{_bindir}/{mysql_client_test,mysqlxtest,mysqltest_safe_process,zlib_decompress,mysql_keyring_encryption_test}
rm -r %{buildroot}%{_datadir}/mysql-test
%endif
%check
%if %{with test}
%if %runselftest
pushd %_vpath_builddir
make test VERBOSE=1
# Note: disabling building of unittests to workaround #1989847
#make test VERBOSE=1
pushd mysql-test
cp ../../mysql-test/%{skiplist} .
# builds might happen at the same host, avoid collision
export MTR_BUILD_THREAD=%{__isa_bits}
./mtr %{?with_debug:--debug-server} \
--mem --parallel=auto --force --retry=2 \
--mysqld=--binlog-format=mixed \
--suite-timeout=720 --testcase-timeout=30 \
--report-unstable-tests --clean-vardir \
%if %{check_testsuite}
--max-test-fail=0 || :
%else
--skip-test-list=%{skiplist}
%endif
rm -r var $(readlink var)
# Builds might happen at the same host, avoid collision
# The port used is calculated as 10 * MTR_BUILD_THREAD + 10000
# The resulting port must be between 5000 and 32767
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 --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 ]]
then
# in further rebuilds only run the basic "main" suite (~800 tests)
echo "running only base testsuite"
perl ./mysql-test-run.pl $common_testsuite_arguments --suite=main --mem --skip-test-list=%{skiplist}
fi
# If either this version wasn't marked as tested yet or I explicitly want to run the testsuite, run everything we have (~4000 test)
if [[ "%{last_tested_version}" != "%{version}" ]] || [[ %{force_run_testsuite} -ne 0 ]]
then
echo "running advanced testsuite"
perl ./mysql-test-run.pl $common_testsuite_arguments \
%if %{ignore_testsuite_result}
--max-test-fail=9999 || :
%else
--skip-test-list=%{skiplist}
%endif
fi
# There might be a dangling symlink left from the testing, remove it to not be installed
rm -r var $(readlink var)
)
popd
popd
%endif
%endif
%pre server
/usr/sbin/groupadd -g 27 -o -r mysql >/dev/null 2>&1 || :
/usr/sbin/useradd -M -N -g mysql -o -r -d %{mysqluserhome} -s /sbin/nologin \
@ -733,6 +686,8 @@ fi
%postun server
%systemd_postun_with_restart %{daemon_name}.service
%if %{with client}
%files
%{_bindir}/mysql
@ -819,6 +774,7 @@ fi
%{_bindir}/myisamlog
%{_bindir}/myisampack
%{_bindir}/my_print_defaults
%{_bindir}/mysql_migrate_keyring
%{_bindir}/mysql_secure_installation
%{_bindir}/mysql_ssl_rsa_setup
%{_bindir}/mysql_tzinfo_to_sql
@ -844,10 +800,13 @@ fi
%{_libdir}/mysql/plugin/adt_null.so
%{_libdir}/mysql/plugin/auth_socket.so
%{_libdir}/mysql/plugin/component_audit_api_message_emit.so
%{_libdir}/mysql/plugin/component_keyring_file.so
%{_libdir}/mysql/plugin/component_log_filter_dragnet.so
%{_libdir}/mysql/plugin/component_log_sink_json.so
%{_libdir}/mysql/plugin/component_log_sink_syseventlog.so
%{_libdir}/mysql/plugin/component_mysqlbackup.so
%{_libdir}/mysql/plugin/component_query_attributes.so
%{_libdir}/mysql/plugin/component_reference_cache.so
%{_libdir}/mysql/plugin/component_validate_password.so
%{_libdir}/mysql/plugin/connection_control.so
%{_libdir}/mysql/plugin/daemon_example.ini
@ -867,7 +826,9 @@ fi
%{_libdir}/mysql/plugin/rewrite_example.so
%{_libdir}/mysql/plugin/rewriter.so
%{_libdir}/mysql/plugin/semisync_master.so
%{_libdir}/mysql/plugin/semisync_replica.so
%{_libdir}/mysql/plugin/semisync_slave.so
%{_libdir}/mysql/plugin/semisync_source.so
%{_libdir}/mysql/plugin/validate_password.so
%{_libdir}/mysql/plugin/version_token.so
@ -922,6 +883,7 @@ fi
%if %{with test}
%files test
%{_bindir}/mysql_client_test
%{_bindir}/mysql_keyring_encryption_test
%{_bindir}/mysqltest
%{_bindir}/mysqltest_safe_process
%{_bindir}/mysqlxtest
@ -947,6 +909,7 @@ fi
%{_libdir}/mysql/plugin/component_test_host_application_signal.so
%{_libdir}/mysql/plugin/component_test_mysql_current_thread_reader.so
%{_libdir}/mysql/plugin/component_test_mysql_runtime_error.so
%{_libdir}/mysql/plugin/component_test_mysql_system_variable_set.so
%{_libdir}/mysql/plugin/component_test_pfs_notification.so
%{_libdir}/mysql/plugin/component_test_pfs_resource_group.so
%{_libdir}/mysql/plugin/component_test_status_var_service_int.so
@ -962,6 +925,7 @@ fi
%{_libdir}/mysql/plugin/component_test_sys_var_service_same.so
%{_libdir}/mysql/plugin/component_test_sys_var_service.so
%{_libdir}/mysql/plugin/component_test_sys_var_service_str.so
%{_libdir}/mysql/plugin/component_test_table_access.so
%{_libdir}/mysql/plugin/component_test_udf_registration.so
%{_libdir}/mysql/plugin/component_test_udf_services.so
%{_libdir}/mysql/plugin/component_udf_reg_3_func.so
@ -992,6 +956,7 @@ fi
%{_libdir}/mysql/plugin/libtest_sql_replication.so
%{_libdir}/mysql/plugin/libtest_sql_reset_connection.so
%{_libdir}/mysql/plugin/libtest_sql_shutdown.so
%{_libdir}/mysql/plugin/libtest_sql_sleep_is_connected.so
%{_libdir}/mysql/plugin/libtest_sql_sqlmode.so
%{_libdir}/mysql/plugin/libtest_sql_stmt.so
%{_libdir}/mysql/plugin/libtest_sql_stored_procedures_functions.so
@ -1011,6 +976,27 @@ fi
%endif
%changelog
* Wed Jan 05 2022 Lars Tangvald <lars.tangvald@oracle.com> - 8.0.28-1
- Update to MySQL 8.0.28
* Sun Oct 31 2021 Lars Tangvald <lars.tangvald@oracle.com> - 8.0.27-1
- Update to MySQL 8.0.27
* Tue Sep 21 2021 Lars Tangvald <lars.tangvald@oracle.com> - 8.0.26-1
- Update to MySQL 8.0.26
* Tue Sep 21 2021 Michal Schorm <mschorm@redhat.com> - 8.0.25-1
- Update to MySQL 8.0.25
* Tue Sep 14 2021 Lars Tangvald <lars.tangvald@oracle.com> - 8.0.24-1
- Update to MySQL 8.0.24
- Upstreamed patch: mysql-main-cast.patch
* Tue Sep 14 2021 Lars Tangvald <lars.tangvald@oracle.com> - 8.0.23-1
- Update to MySQL 8.0.23
- Created mysql-fix-includes-robin-hood.patch
- Created mysql-main-cast.patch
* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 8.0.22-7
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
Related: rhbz#1991688