Compare commits

...

10 Commits

Author SHA1 Message Date
openeuler-ci-bot
71affc3dda
!64 update to 5.7.44
From: @dillon_chen 
Reviewed-by: @zhengzhenyu 
Signed-off-by: @zhengzhenyu
2024-03-28 03:27:23 +00:00
dillon_chen
99367fce08 updrage to 5.7.44 2024-03-27 17:27:02 +08:00
openeuler-ci-bot
b9c9be5ec3
!44 [sync] PR-41: upgrade to 5.7.38
From: @openeuler-sync-bot 
Reviewed-by: @bzhaoop 
Signed-off-by: @bzhaoop
2022-05-26 03:15:58 +00:00
dillon_chen
e883718264 upgrade to 5.7.38
(cherry picked from commit 6f2a7f4a74d41f04d4db0302039ef08907d16d81)
2022-05-07 18:16:07 +08:00
openeuler-ci-bot
a3932cfcfe
!37 [2003LTS-SP3] Fix multiple CVE issues via bumping version to 5.7.37
From: @bzhaoop 
Reviewed-by: @zhengzhenyu 
Signed-off-by: @zhengzhenyu
2022-04-22 01:22:42 +00:00
bzhaoop
863a24fc96 Fix CVE issues for bump to the 5.7.37 version
- CVE-2022-21245
- CVE-2022-21270
- CVE-2022-21303
- CVE-2022-21304
- CVE-2022-21344
- CVE-2022-21367
- CVE-2021-35624
- CVE-2021-2356
- CVE-2021-2011
- CVE-2021-2010
- CVE-2021-2007
2022-04-21 10:27:27 +00:00
openeuler-ci-bot
f6e4cef7f8
!32 Upgrade to 5.7.34 version
From: @houyingchao 
Reviewed-by: @bzhaoop 
Signed-off-by: @bzhaoop
2022-02-25 08:31:08 +00:00
houyingchao
83a248c84d Upgrade to 5.7.34 version 2022-02-25 14:22:16 +08:00
openeuler-ci-bot
43a85f7dbf !29 修复mysql5本地rpmbuild编译check阶段执行测试失败问题
From: @wu-leilei
Reviewed-by: @bzhaoop
Signed-off-by: @bzhaoop
2021-11-30 02:36:54 +00:00
wu-leilei
7f98082478 Fix innodb.innodb fail on aarch64 2021-11-30 09:26:21 +08:00
9 changed files with 473 additions and 81 deletions

8
disable-main.func_math.patch Executable file
View File

@ -0,0 +1,8 @@
diff -urN mysql-5.7.42/mysql-test/t/disabled.def mysql-5.7.42.new/mysql-test/t/disabled.def
--- mysql-5.7.42/mysql-test/t/disabled.def 2023-03-16 23:25:04.000000000 +0800
+++ mysql-5.7.42.new/mysql-test/t/disabled.def 2023-07-25 17:02:24.156779564 +0800
@@ -18,3 +18,4 @@
explain_for_connection_rqg_json : Bug#20697533 2015-03-20 erlend Fails several times each day on all platforms
explain_for_connection_rqg_trad : Bug#20697533 2015-03-20 erlend Fails several times each day on all platforms
daemonize_opt : Bug#31335773 2020-05-12 Deepa Shutdown_report fails
+func_math : skip

View File

@ -0,0 +1,25 @@
From 5729cb28f7e332adbcb8cfc4931af0944d3ff71d Mon Sep 17 00:00:00 2001
From: lingsheng <lingsheng@huawei.com>
Date: Fri, 19 Mar 2021 22:47:55 +0800
Subject: [PATCH] fix innodb.innodb fail on aarch64
---
mysql-test/suite/innodb/t/innodb.test | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/mysql-test/suite/innodb/t/innodb.test b/mysql-test/suite/innodb/t/innodb.test
index 679d251d..7e4c0ee5 100644
--- a/mysql-test/suite/innodb/t/innodb.test
+++ b/mysql-test/suite/innodb/t/innodb.test
@@ -1333,7 +1333,7 @@ drop table t1;
# Test for testable InnoDB status variables. This test
# uses previous ones(pages_created, rows_deleted, ...).
--disable_warnings
---replace_result 1535 {checked_valid} 1536 {checked_valid} 3071 {checked_valid} 3072 {checked_valid} 6144 {checked_valid}
+--replace_result 1535 {checked_valid} 1536 {checked_valid} 3071 {checked_valid} 3072 {checked_valid} 6144 {checked_valid} 1539 {checked_valid}
SELECT variable_value FROM information_schema.global_status WHERE LOWER(variable_name) = 'innodb_buffer_pool_pages_total';
--replace_result 4096 {checked_valid} 8192 {checked_valid} 16384 {checked_valid}
SELECT variable_value FROM information_schema.global_status WHERE LOWER(variable_name) = 'innodb_page_size';
--
2.23.0

View File

@ -0,0 +1,85 @@
Description: Fixes test failing when run as root
Certain tests will fail when run as root. This patch fixes one,
main.grant_user_lock, which tries to test an anonymous user in
a way that fails when running as root. The patch fixes only
this test because there have been issues in Debian with only
this test failing in this way.
Author: Lars Tangvald <lars.tangvald@oracle.com>
Bug-Debian: https://bugs.debian.org/841592
Bug: http://bugs.mysql.com/bug.php?id=83751
Last-Update: 2016-11-09
--- mysql-5.7-5.7.16.orig/mysql-test/r/grant_user_lock.result
+++ mysql-5.7-5.7.16/mysql-test/r/grant_user_lock.result
@@ -98,13 +98,13 @@ CURRENT_USER()
DROP USER ''@localhost;
# Create anonymous user - LOCK
CREATE USER ''@localhost IDENTIFIED BY 'pass' ACCOUNT LOCK;
-connect(localhost,,pass,test,MASTER_PORT,MASTER_SOCKET);
+connect(localhost, ,pass,test,MASTER_PORT,MASTER_SOCKET);
ERROR HY000: Access denied for user '(null)'@'localhost'. Account is locked.
DROP USER ''@localhost;
# Disabling anonymous user
CREATE USER ''@localhost IDENTIFIED BY 'pass';
ALTER USER ''@localhost ACCOUNT LOCK;
-connect(localhost,,pass,test,MASTER_PORT,MASTER_SOCKET);
+connect(localhost, ,pass,test,MASTER_PORT,MASTER_SOCKET);
ERROR HY000: Access denied for user '(null)'@'localhost'. Account is locked.
DROP USER ''@localhost;
# Enabling anonymous user
--- mysql-5.7-5.7.16.orig/mysql-test/t/grant_user_lock.test
+++ mysql-5.7-5.7.16/mysql-test/t/grant_user_lock.test
@@ -113,7 +113,7 @@ DROP USER unlocked_user2@localhost;
--echo # Create anonymous user
connection default;
CREATE USER ''@localhost IDENTIFIED BY 'pass';
-connect(anonymous_user_con, localhost, '', pass);
+connect(anonymous_user_con, localhost, ' ', pass);
SELECT CURRENT_USER();
disconnect anonymous_user_con;
connection default;
@@ -122,7 +122,7 @@ DROP USER ''@localhost;
--echo # Create anonymous user - explicit UNLOCK
connection default;
CREATE USER ''@localhost IDENTIFIED BY 'pass' ACCOUNT UNLOCK;
-connect(anonymous_user_con, localhost, '', pass);
+connect(anonymous_user_con, localhost, ' ', pass);
SELECT CURRENT_USER();
disconnect anonymous_user_con;
connection default;
@@ -133,7 +133,7 @@ connection default;
CREATE USER ''@localhost IDENTIFIED BY 'pass' ACCOUNT LOCK;
--replace_result $MASTER_MYSOCK MASTER_SOCKET $MASTER_MYPORT MASTER_PORT
--error ER_ACCOUNT_HAS_BEEN_LOCKED
-connect(anonymous_user_con, localhost, '', pass);
+connect(anonymous_user_con, localhost, ' ', pass);
connection default;
DROP USER ''@localhost;
@@ -143,7 +143,7 @@ CREATE USER ''@localhost IDENTIFIED BY '
ALTER USER ''@localhost ACCOUNT LOCK;
--replace_result $MASTER_MYSOCK MASTER_SOCKET $MASTER_MYPORT MASTER_PORT
--error ER_ACCOUNT_HAS_BEEN_LOCKED
-connect(anonymous_user_con, localhost, '', pass);
+connect(anonymous_user_con, localhost, ' ', pass);
connection default;
DROP USER ''@localhost;
@@ -151,7 +151,7 @@ DROP USER ''@localhost;
connection default;
CREATE USER ''@localhost IDENTIFIED BY 'pass' ACCOUNT LOCK;
ALTER USER ''@localhost ACCOUNT UNLOCK;
-connect(anonymous_user_con, localhost, '', pass);
+connect(anonymous_user_con, localhost, ' ', pass);
SELECT CURRENT_USER();
disconnect anonymous_user_con;
connection default;
@@ -171,7 +171,7 @@ connection default;
CREATE user ''@localhost IDENTIFIED BY 'pass';
CREATE USER 'unlocked_user'@localhost IDENTIFIED BY 'pass';
-connect(anonymous_user_con, localhost, '', pass);
+connect(anonymous_user_con, localhost, ' ', pass);
--error ER_TABLEACCESS_DENIED_ERROR
UPDATE mysql.user SET account_locked='Y'
WHERE user='unlocked_user' and host = 'localhost';

View File

@ -0,0 +1,67 @@
diff -urN mysql-5.7.38.orig/mysql-test/suite/innodb_stress/t/load_generator.py mysql-5.7.38.new/mysql-test/suite/innodb_stress/t/load_generator.py
--- mysql-5.7.38.orig/mysql-test/suite/innodb_stress/t/load_generator.py 2022-03-22 01:30:20.000000000 +0800
+++ mysql-5.7.38.new/mysql-test/suite/innodb_stress/t/load_generator.py 2022-05-07 14:41:03.555188841 +0800
@@ -47,12 +47,12 @@
try:
self.runme()
print >> self.log, "ok"
- except Exception, e:
+ except Exception as e:
self.exception = e
try:
cursor = self.con.cursor()
cursor.execute("INSERT INTO errors VALUES('%s')" % e)
- except MySQLdb.Error, e2:
+ except MySQLdb.Error as e2:
print >> self.log, "caught while inserting error (%s)" % e2
print >> self.log, "caught (%s)" % e
finally:
@@ -147,12 +147,12 @@
try:
self.runme()
print >> self.log, "ok"
- except Exception, e:
+ except Exception as e:
try:
cursor = self.con.cursor()
cursor.execute("INSERT INTO errors VALUES('%s')" % e)
con.commit()
- except MySQLdb.Error, e2:
+ except MySQLdb.Error as e2:
print >> self.log, "caught while inserting error (%s)" % e2
print >> self.log, "caught (%s)" % e
@@ -252,13 +252,13 @@
try:
self.runme()
print >> self.log, "ok, with do_blob %s" % self.do_blob
- except Exception, e:
+ except Exception as e:
try:
cursor = self.con.cursor()
cursor.execute("INSERT INTO errors VALUES('%s')" % e)
cursor.execute("COMMIT")
- except MySQLdb.Error, e2:
+ except MySQLdb.Error as e2:
print >> self.log, "caught while inserting error (%s)" % e2
print >> self.log, "caught (%s)" % e
@@ -358,7 +358,7 @@
elif r == 4:
self.con.rollback()
- except MySQLdb.Error, e:
+ except MySQLdb.Error as e:
if e.args[0] == 2006: # server is killed
print >> self.log, "mysqld down, transaction %d" % self.xid
return
@@ -367,7 +367,7 @@
try:
self.con.commit()
- except Exception, e:
+ except Exception as e:
print >> self.log, "commit error %s" % e
if __name__ == '__main__':

View File

@ -1,8 +1,32 @@
Do not assume, that "crypt" function is provided by glibc; #1536881
--- mysql-5.7.21/include/my_global.h 2017-12-28 04:46:26.000000000 +0100
+++ mysql-5.7.21/include/my_global.h_patched 2018-01-22 01:01:42.450315852 +0100
@@ -49,6 +49,9 @@
diff -Naur mysql-5.7.34_orig/config.h.cmake mysql-5.7.34_patched/config.h.cmake
--- mysql-5.7.34_orig/config.h.cmake 2021-06-24 11:17:47.697396007 +0800
+++ mysql-5.7.34_patched/config.h.cmake 2021-06-24 11:44:15.405418497 +0800
@@ -69,6 +69,7 @@
#cmakedefine HAVE_FNMATCH_H 1
#cmakedefine HAVE_SYS_UN_H 1
#cmakedefine HAVE_SASL_SASL_H 1
+#cmakedefine HAVE_CRYPT_H 1
/* Libevent */
#cmakedefine HAVE_DEVPOLL 1
diff -Naur mysql-5.7.34_orig/configure.cmake mysql-5.7.34_patched/configure.cmake
--- mysql-5.7.34_orig/configure.cmake 2021-06-24 11:17:47.697396007 +0800
+++ mysql-5.7.34_patched/configure.cmake 2021-06-24 11:43:24.612905857 +0800
@@ -252,6 +252,7 @@
CHECK_INCLUDE_FILES (sys/param.h HAVE_SYS_PARAM_H) # Used by NDB/libevent
CHECK_INCLUDE_FILES (fnmatch.h HAVE_FNMATCH_H)
CHECK_INCLUDE_FILES (sys/un.h HAVE_SYS_UN_H)
+CHECK_INCLUDE_FILES (crypt.h HAVE_CRYPT_H)
# For libevent
CHECK_INCLUDE_FILES(sys/devpoll.h HAVE_DEVPOLL)
diff -Naur mysql-5.7.34_orig/include/my_global.h mysql-5.7.34_patched/include/my_global.h
--- mysql-5.7.34_orig/include/my_global.h 2021-06-24 11:17:47.721396249 +0800
+++ mysql-5.7.34_patched/include/my_global.h 2021-06-24 11:41:58.240034110 +0800
@@ -61,6 +61,9 @@
#include <time.h>
#include <errno.h> /* Recommended by debian */
#include <sys/types.h>
@ -12,27 +36,3 @@ Do not assume, that "crypt" function is provided by glibc; #1536881
#ifdef HAVE_SYS_SOCKET_H
#include <sys/socket.h>
--- mysql-5.7.21/configure.cmake 2017-12-28 04:46:26.000000000 +0100
+++ mysql-5.7.21/configure.cmake_patched 2018-01-22 01:00:09.955057755 +0100
@@ -493,6 +493,7 @@ CHECK_INCLUDE_FILES (fnmatch.h HAVE_FNMA
CHECK_INCLUDE_FILES (sys/un.h HAVE_SYS_UN_H)
CHECK_INCLUDE_FILES (vis.h HAVE_VIS_H) # Used by libedit
CHECK_INCLUDE_FILES (sasl/sasl.h HAVE_SASL_SASL_H) # Used by memcached
+CHECK_INCLUDE_FILES (crypt.h HAVE_CRYPT_H)
# For libevent
CHECK_INCLUDE_FILES(sys/devpoll.h HAVE_DEVPOLL)
--- mysql-5.7.21/config.h.cmake 2017-12-28 04:46:26.000000000 +0100
+++ mysql-5.7.21/config.h.cmake_patched 2018-01-22 01:51:02.522570765 +0100
@@ -62,6 +62,7 @@
#cmakedefine HAVE_SYS_UN_H 1
#cmakedefine HAVE_VIS_H 1
#cmakedefine HAVE_SASL_SASL_H 1
+#cmakedefine HAVE_CRYPT_H 1
/* Libevent */
#cmakedefine HAVE_DEVPOLL 1

View File

@ -18,14 +18,10 @@ http://bugs.mysql.com/bug.php?id=83696
https://jira.mariadb.org/browse/MDEV-7788
diff -Naurp mysql-5.7.18_original/mysys_ssl/my_md5.cc mysql-5.7.18_patched/mysys_ssl/my_md5.cc
--- mysql-5.7.18_original/mysys_ssl/my_md5.cc 2017-03-18 08:45:14.000000000 +0100
+++ mysql-5.7.18_patched/mysys_ssl/my_md5.cc 2017-05-12 12:19:38.584814619 +0200
@@ -38,13 +38,22 @@ static void my_md5_hash(char *digest, co
#elif defined(HAVE_OPENSSL)
#include <openssl/md5.h>
+#include <openssl/evp.h>
diff -Naurp mysql-5.7.34_original/mysys_ssl/my_md5.cc mysql-5.7.34_patched/mysys_ssl/my_md5.cc
--- mysql-5.7.34_original/mysys_ssl/my_md5.cc 2017-03-18 08:45:14.000000000 +0100
+++ mysql-5.7.34_patched/mysys_ssl/my_md5.cc 2017-05-12 12:19:38.584814619 +0200
@@ -41,10 +41,18 @@
static void my_md5_hash(unsigned char* digest, unsigned const char *buf, int len)
{
@ -47,4 +43,4 @@ diff -Naurp mysql-5.7.18_original/mysys_ssl/my_md5.cc mysql-5.7.18_patched/mysys
+ EVP_MD_CTX_destroy(ctx);
}
#endif /* HAVE_YASSL */
#endif /* HAVE_OPENSSL */

155
mysql5.spec Normal file → Executable file
View File

@ -1,5 +1,11 @@
%global pkg_name %{name}
%global pkgnamepatch mysql5
# The reason of introduce this is:
# openEuler/gcc version bump so quick. So any new gcc version might default disable
# some options which are default to enable in previos gcc versions.
%global gcc_c_adaptive_options -fcommon
%{!?runselftest:%global runselftest 1}
%global check_testsuite 0
%global with_shared_lib_major_hack 0
@ -32,11 +38,11 @@
%bcond_without conflicts
%global sameevr %{?epoch:%{epoch}:}%{version}-%{release}
Name: mysql5
Version: 5.7.21
Release: 3
Version: 5.7.44
Release: 1
Summary: MySQL client programs and shared libraries
URL: http://www.mysql.com
License: GPLv2 and LGPLv2 and BSD
License: GPLv2 with exceptions and LGPLv2 and BSD
Source0: https://cdn.mysql.com/Downloads/MySQL-5.7/mysql-boost-%{version}.tar.gz
Source2: mysql_config_multilib.sh
Source3: my.cnf.in
@ -58,18 +64,19 @@ Patch3: %{pkgnamepatch}-logrotate.patch
Patch4: %{pkgnamepatch}-file-contents.patch
Patch5: %{pkgnamepatch}-scripts.patch
Patch6: %{pkgnamepatch}-paths.patch
Patch7: %{pkgnamepatch}-md5_fips.patch
Patch51: %{pkgnamepatch}-chain-certs.patch
Patch52: %{pkgnamepatch}-sharedir.patch
Patch70: %{pkgnamepatch}-5.7.9-major.patch
Patch71: %{pkgnamepatch}-openssl11.patch
Patch72: %{pkgnamepatch}-tirpc.patch
Patch73: %{pkgnamepatch}-libxcrypt.patch
Patch74: fix-innodb.innodb-fail-on-aarch64.patch
Patch75: fix_grant_user_lock_as_root.patch
Patch76: load_generator.py.py2_py3.patch
Patch115: boost-1.58.0-pool.patch
Patch125: boost-1.57.0-mpl-print.patch
Patch170: boost-1.59.0-log.patch
Patch180: boost-1.59-python-make_setter.patch
Patch181: boost-1.59-test-fenv.patch
Patch182: skiptest-auth_sec.keyring_file_data_qa.patch
Patch183: disable-main.func_math.patch
BuildRequires: cmake gcc-c++ libaio-devel libedit-devel libevent-devel lz4-devel mecab-devel
%ifnarch aarch64 %{arm}
BuildRequires: numactl-devel
@ -79,7 +86,7 @@ BuildRequires: systemtap-sdt-devel zlib-devel multilib-rpm-config procps t
BuildRequires: perl(Digest::file) perl(Digest::MD5) perl(Env) perl(Exporter) perl(Fcntl)
BuildRequires: perl(File::Temp) perl(Data::Dumper) perl(Getopt::Long) perl(IPC::Open3)
BuildRequires: perl(JSON) perl(Memoize) perl(Socket) perl(Sys::Hostname) perl(Test::More)
BuildRequires: perl(Time::HiRes)
BuildRequires: perl(Time::HiRes) vim git grep
%{?with_init_systemd:BuildRequires: systemd}
Requires: bash coreutils grep %{name}-common = %{sameevr}
Provides: bundled(boost) = 1.59
@ -236,15 +243,17 @@ the MySQL sources.
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch7 -p1
%patch51 -p1
#%patch7 -p1
%patch52 -p1
%if %{with_shared_lib_major_hack}
%patch70 -p1
%endif
%patch71 -p1
%patch72 -p1
%patch73 -p1
%patch74 -p1
%patch75 -p1
%patch76 -p1
%patch182 -p1
%patch183 -p1
pushd boost/boost_1_59_0
%patch115 -p0
%patch125 -p1
@ -262,6 +271,7 @@ add_test auth_sec.openssl_cert_validity : 2018 new year issue
add_test innodb_fts.opt : arm32 FTS issue
add_test perfschema.func_file_io : missing hw on arm32
add_test perfschema.setup_objects : missing hw on arm32
add_test perfschema.memory_aggregate_no_a
%endif
%ifarch x86_64
add_test main.mysql_upgrade : Result content mismatch
@ -288,6 +298,15 @@ add_test auth_sec.openssl_cert_generation : ssl test disable
add_test main.ssl_compress : ssl test disable
add_test main.plugin_auth_sha256_tls : ssl test disable
add_test main.mysql_ssl_default : ssl test disable
add_test innodb.innodb-multiple-tablespaces : fail on glibc 2.33
add_test innodb.alter_kill : fail on glibc 2.33
add_test main.xa_prepared_binlog_off
add_test binlog.binlog_xa_prepared_disconnect
add_test rpl.rpl_semi_sync_turn_on_off_optimize_for_static_plugin_config
add_test rpl.rpl_row_until
add_test auth_sec.keyring_file_data_qa
add_test main.index_merge_delete
add_test sys_vars.innodb_buffer_pool_load_now_basic
popd
cp %{SOURCE2} %{SOURCE3} %{SOURCE10} %{SOURCE11} %{SOURCE12} %{SOURCE13} \
%{SOURCE14} %{SOURCE15} %{SOURCE16} %{SOURCE17} %{SOURCE18} %{SOURCE19} %{SOURCE31} scripts
@ -344,7 +363,7 @@ cmake .. \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_BOOST=../boost \
-DCMAKE_C_FLAGS="%{optflags}%{?with_debug: -fno-strict-overflow -Wno-unused-result -Wno-unused-function -Wno-unused-but-set-variable}" \
-DCMAKE_C_FLAGS="%{optflags}%{?with_debug: -fno-strict-overflow -Wno-unused-result -Wno-unused-function -Wno-unused-but-set-variable} %{gcc_c_adaptive_options}" \
-DCMAKE_CXX_FLAGS="%{optflags}%{?with_debug: -fno-strict-overflow -Wno-unused-result -Wno-unused-function -Wno-unused-but-set-variable}" \
%{?with_debug: -DWITH_DEBUG=1}\
-DTMPDIR=/var/tmp \
@ -394,8 +413,6 @@ rm %{buildroot}%{_datadir}/%{pkg_name}/magic
rm %{buildroot}%{_datadir}/%{pkg_name}/mysql.server
rm %{buildroot}%{_datadir}/%{pkg_name}/mysqld_multi.server
rm %{buildroot}%{_mandir}/man1/comp_err.1*
rm %{buildroot}%{_mandir}/man1/mysql-stress-test.pl.1*
rm %{buildroot}%{_mandir}/man1/mysql-test-run.pl.1*
mkdir -p %{buildroot}%{logrotateddir}
mv %{buildroot}%{_datadir}/%{pkg_name}/mysql-log-rotate %{buildroot}%{logrotateddir}/%{daemon_name}
chmod 644 %{buildroot}%{logrotateddir}/%{daemon_name}
@ -407,9 +424,6 @@ mv %{buildroot}%{_libexecdir}/mysqld-debug %{buildroot}%{_libexecdir}/mysqld
popd
install -p -m 0644 %{SOURCE7} %{basename:%{SOURCE7}}
install -p -m 0644 mysql-test/%{skiplist} %{buildroot}%{_datadir}/mysql-test
rm %{buildroot}%{_mandir}/man1/{mysqltest,mysql_client_test}_embedded.1
cp -p %{buildroot}%{_mandir}/man1/mysqltest.1 %{buildroot}%{_mandir}/man1/mysqltest_embedded.1
cp -p %{buildroot}%{_mandir}/man1/mysql_client_test.1 %{buildroot}%{_mandir}/man1/mysql_client_test_embedded.1
%if %{without clibrary}
unlink %{buildroot}%{_libdir}/mysql/libmysqlclient.so
rm -r %{buildroot}%{_libdir}/mysql/libmysqlclient*.so.*
@ -456,28 +470,27 @@ rm %{buildroot}%{_mandir}/man1/mysql_client_test.1*
%endif
%check
%if %{with test}
%if %runselftest
pushd build
make test VERBOSE=1
pushd mysql-test
cp ../../mysql-test/%{skiplist} .
export MTR_BUILD_THREAD=%{__isa_bits}
./mtr \
--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)
popd
popd
%endif
%endif
#%if %{with test}
#%if %runselftest
#pushd build
#make test VERBOSE=1
#pushd mysql-test
#cp ../../mysql-test/%{skiplist} .
#export MTR_BUILD_THREAD=%{__isa_bits}
#./mtr \
# --mem --parallel=auto --force --retry=2 \
# --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)
#popd
#popd
#%endif
#%endif
%pre server
/usr/sbin/groupadd -g 27 -o -r mysql >/dev/null 2>&1 || :
@ -570,7 +583,7 @@ fi
%if %{with common}
%files common
%doc README COPYING README.mysql-license
%doc README README.mysql-license LICENSE
%doc storage/innobase/COPYING.Percona storage/innobase/COPYING.Google
%dir %{_libdir}/mysql
%dir %{_datadir}/%{pkg_name}
@ -700,6 +713,7 @@ fi
%exclude %{_bindir}/mysql_config_editor
%{_includedir}/mysql
%{_datadir}/aclocal/mysql.m4
%{_datadir}/info/mysql.info.gz
%if %{with clibrary}
%{_libdir}/mysql/libmysqlclient.so
%endif
@ -724,13 +738,63 @@ fi
%{_bindir}/mysqlxtest
%{_bindir}/my_safe_process
%attr(-,mysql,mysql) %{_datadir}/mysql-test
%{_mandir}/man1/mysqltest.1*
%{_mandir}/man1/mysqltest_embedded.1*
%{_mandir}/man1/mysql_client_test.1*
%{_mandir}/man1/mysql_client_test_embedded.1*
%endif
%changelog
* Wed Mar 27 2024 dillon chen <dillon.chen@gmail.com> - 5.7.44-1
- Upgrade to 5.7.44 version
* Tue Aug 1 2023 dillon chen <dillon.chen@gmail.com> - 5.7.43-1
- Upgrade to 5.7.43 version
* Thu Jul 20 2023 dillon chen <dillon.chen@gmail.com> - 5.7.42-1
- Upgrade to 5.7.42 version
* Wed Jul 19 2023 dillon chen <dillon.chen@gmail.com> - 5.7.41-1
- Upgrade to 5.7.41 version
* Tue Jul 11 2023 dillon chen <dillon.chen@gmail.com> - 5.7.40-1
- Upgrade to 5.7.40 version
* Mon Jul 10 2023 dillon chen <dillon.chen@gmail.com> - 5.7.39-2
- ssl to compat_openssl11
- skip auth_sec.keyring_file_data_qa test
* Thu Sep 8 2022 dillon chen <dillon.chen@gmail.com> - 5.7.39-1
- Upgrade to 5.7.39 version
* Sat May 7 2022 dillon chen <dillon.chen@gmail.com> - 5.7.38-1
- add patch76
- Upgrade to 5.7.38 version
* Thu Apr 21 2022 bzhaoop <bzhaojyathousandy@gmail.com> - 5.7.37-1
- Fix CVE issues for bump to the 5.7.37 version
- CVE-2022-21245
- CVE-2022-21270
- CVE-2022-21303
- CVE-2022-21304
- CVE-2022-21344
- CVE-2022-21367
- CVE-2021-35624
- CVE-2021-2356
- CVE-2021-2011
- CVE-2021-2010
- CVE-2021-2007
* Fri Feb 25 2022 houyingchao <houyingchao@huawei.com> - 5.7.34-2
- Upgrade to 5.7.34 version
- Fix CVES
* Thu Jul 1 2021 bzhaoop <bzhaojyathousandy@gmail.com> - 5.7.34-1
- Bump from 5.7.21 to latest 5.7.34
- Correct the test steps and options
- Refactor part of the file structure according to the new packages
* Tue Nov 30 2021 wulei <wulei80@huawei.com> - 5.7.21-4
- Fix innodb.innodb fail on aarch64
- Fix grant_user_lock as root
- Update fail tests list on glibc 2.33
* Tue Nov 24 2020 baizhonggui <baizhonggui@huawei.com> - 5.7.21-3
- Fix test error
@ -739,3 +803,4 @@ fi
* Thu Oct 15 2020 zhanghua <zhanghua40@huawei.com> - 5.7.21-1
- package init

View File

@ -0,0 +1,146 @@
diff -urN mysql-5.7.39/mysql-test/suite/auth_sec/r/keyring_file_data_qa.result mysql-5.7.39.new/mysql-test/suite/auth_sec/r/keyring_file_data_qa.result
--- mysql-5.7.39/mysql-test/suite/auth_sec/r/keyring_file_data_qa.result 2022-06-08 16:37:43.000000000 +0800
+++ mysql-5.7.39.new/mysql-test/suite/auth_sec/r/keyring_file_data_qa.result 2022-06-08 16:37:43.000000000 +0800
@@ -1,48 +1,19 @@
-call mtr.add_suppression("\\[Error\\] Function 'keyring_file' already exists");
-call mtr.add_suppression("\\[Error\\] Couldn't load plugin named 'keyring_file' with soname 'keyring_file.so'.");
call mtr.add_suppression("keyring_file_data cannot be set to new value as the keyring file cannot be created/accessed in the provided path");
-call mtr.add_suppression("\\[Error\\] Plugin keyring_file reported: 'keyring_file initialization failure.");
-call mtr.add_suppression("Plugin keyring_file reported: 'Could not create keyring directory The keyring_file will stay unusable until correct path to the keyring directory gets provided");
call mtr.add_suppression("Error while loading keyring content. The keyring might be malformed");
-call mtr.add_suppression("\\[ERROR\\] Plugin keyring_file reported: 'File .*keyring' not found .*");
-call mtr.add_suppression("\\[ERROR\\] Plugin keyring_file reported: 'File 'MYSQL_test_invalid/dir/' not found .*");
-call mtr.add_suppression("\\[ERROR\\] Plugin keyring_file reported: 'Error reading file '/' .*");
-INSTALL PLUGIN keyring_file SONAME 'keyring_file.so';
-SELECT PLUGIN_NAME,PLUGIN_VERSION,PLUGIN_STATUS
-FROM INFORMATION_SCHEMA.PLUGINS WHERE plugin_name='keyring_file';
-PLUGIN_NAME keyring_file
-PLUGIN_VERSION 1.0
-PLUGIN_STATUS ACTIVE
-
-SET @@global.keyring_file_data='keyring_file';
+call mtr.add_suppression("\\[ERROR\\] Plugin keyring_file reported: 'File .*/keyring' not found .*");
+call mtr.add_suppression("\\[ERROR\\] Plugin keyring_file reported: 'File .*/bad_keyring_file_data/' not found .*");
SELECT @@global.keyring_file_data;
@@global.keyring_file_data
-keyring_file
-CREATE TABLE t1(c1 INT, c2 char(20)) ENCRYPTION="Y" ENGINE = InnoDB;
+MYSQL_TMP_DIR/mysecret_keyring
SET @@global.keyring_file_data= 'MYSQL_TMP_DIR/new_keyring_file_data';
SELECT @@global.keyring_file_data;
@@global.keyring_file_data
MYSQL_TMP_DIR/new_keyring_file_data
-SET @@global.keyring_file_data='';
-ERROR 42000: Variable 'keyring_file_data' can't be set to the value of ''
-SET @@global.keyring_file_data=1;
-ERROR 42000: Incorrect argument type to variable 'keyring_file_data'
-SET @@global.keyring_file_data='/';
-ERROR 42000: Variable 'keyring_file_data' can't be set to the value of '/'
-SET @@session.keyring_file_data= '$MYSQL_TMP_DIR/new_keyring_file_data';
-ERROR HY000: Variable 'keyring_file_data' is a GLOBAL variable and should be set with SET GLOBAL
-SET @@local.keyring_file_data= '$MYSQL_TMP_DIR/new_keyring_file_data';
-ERROR HY000: Variable 'keyring_file_data' is a GLOBAL variable and should be set with SET GLOBAL
-SET @@global.keyring_file_data= 'MYSQL_test_invalid/dir/';
-ERROR 42000: Variable 'keyring_file_data' can't be set to the value of 'MYSQL_test_invalid/dir/'
+SET @@global.keyring_file_data= '../../../../../bad_dir/bad_keyring_file_data/';
+ERROR 42000: Variable 'keyring_file_data' can't be set to the value of '../../../../../bad_dir/bad_keyring_file_data/'
+SET @@global.keyring_file_data=NULL;
+ERROR 42000: Variable 'keyring_file_data' can't be set to the value of 'NULL'
SELECT @@global.keyring_file_data;
@@global.keyring_file_data
MYSQL_TMP_DIR/new_keyring_file_data
-
-UNINSTALL PLUGIN keyring_file;
-SELECT PLUGIN_NAME,PLUGIN_VERSION,PLUGIN_STATUS
-FROM INFORMATION_SCHEMA.PLUGINS WHERE plugin_name='keyring_file';
-
-DROP TABLE t1;
-
-#End:
+SET @@global.keyring_file_data= 'MYSQL_TMP_DIR/mysecret_keyring';
diff -urN mysql-5.7.39/mysql-test/suite/auth_sec/t/keyring_file_data_qa-master.opt mysql-5.7.39.new/mysql-test/suite/auth_sec/t/keyring_file_data_qa-master.opt
--- mysql-5.7.39/mysql-test/suite/auth_sec/t/keyring_file_data_qa-master.opt 2022-06-08 16:37:43.000000000 +0800
+++ mysql-5.7.39.new/mysql-test/suite/auth_sec/t/keyring_file_data_qa-master.opt 2023-07-10 16:29:43.681288993 +0800
@@ -1 +1 @@
-$KEYRING_PLUGIN_OPT --loose-keyring-file-data=$MYSQL_TMP_DIR/mydummy_key
+$KEYRING_PLUGIN_OPT $KEYRING_PLUGIN_LOAD --keyring_file_data=$MYSQL_TMP_DIR/mysecret_keyring
diff -urN mysql-5.7.39/mysql-test/suite/auth_sec/t/keyring_file_data_qa.test mysql-5.7.39.new/mysql-test/suite/auth_sec/t/keyring_file_data_qa.test
--- mysql-5.7.39/mysql-test/suite/auth_sec/t/keyring_file_data_qa.test 2022-06-08 16:37:43.000000000 +0800
+++ mysql-5.7.39.new/mysql-test/suite/auth_sec/t/keyring_file_data_qa.test 2023-07-10 16:29:23.489157079 +0800
@@ -1,66 +1,25 @@
-# WL5769
-# Keyring_file plugin and keyring_file_data variable testing.
-
--disable_ps_protocol
--disable_warnings
--source include/not_embedded.inc
-call mtr.add_suppression("\\[Error\\] Function 'keyring_file' already exists");
-call mtr.add_suppression("\\[Error\\] Couldn't load plugin named 'keyring_file' with soname 'keyring_file.so'.");
+
call mtr.add_suppression("keyring_file_data cannot be set to new value as the keyring file cannot be created/accessed in the provided path");
-call mtr.add_suppression("\\[Error\\] Plugin keyring_file reported: 'keyring_file initialization failure.");
-call mtr.add_suppression("Plugin keyring_file reported: 'Could not create keyring directory The keyring_file will stay unusable until correct path to the keyring directory gets provided");
call mtr.add_suppression("Error while loading keyring content. The keyring might be malformed");
-call mtr.add_suppression("\\[ERROR\\] Plugin keyring_file reported: 'File .*keyring' not found .*");
-call mtr.add_suppression("\\[ERROR\\] Plugin keyring_file reported: 'File 'MYSQL_test_invalid/dir/' not found .*");
-call mtr.add_suppression("\\[ERROR\\] Plugin keyring_file reported: 'Error reading file '/' .*");
+call mtr.add_suppression("\\[ERROR\\] Plugin keyring_file reported: 'File .*/keyring' not found .*");
+call mtr.add_suppression("\\[ERROR\\] Plugin keyring_file reported: 'File .*/bad_keyring_file_data/' not found .*");
-# Installing keyring plugin.
---replace_regex /\.dll/.so/
-eval INSTALL PLUGIN keyring_file SONAME '$KEYRING_PLUGIN';
-# Check keyring plugin
-query_vertical SELECT PLUGIN_NAME,PLUGIN_VERSION,PLUGIN_STATUS
-FROM INFORMATION_SCHEMA.PLUGINS WHERE plugin_name='keyring_file';
---echo
-SET @@global.keyring_file_data='keyring_file';
+--replace_result $MYSQL_TMP_DIR MYSQL_TMP_DIR
SELECT @@global.keyring_file_data;
-# Creating table with encryption.
-CREATE TABLE t1(c1 INT, c2 char(20)) ENCRYPTION="Y" ENGINE = InnoDB;
-
-# Setting keyring_file_data value to file.
--replace_result $MYSQL_TMP_DIR MYSQL_TMP_DIR
eval SET @@global.keyring_file_data= '$MYSQL_TMP_DIR/new_keyring_file_data';
---file_exists $MYSQL_TMP_DIR/new_keyring_file_data
--replace_result $MYSQL_TMP_DIR MYSQL_TMP_DIR
SELECT @@global.keyring_file_data;
-
-# Invalid values
---error ER_WRONG_VALUE_FOR_VAR
-SET @@global.keyring_file_data='';
---error ER_WRONG_TYPE_FOR_VAR
-SET @@global.keyring_file_data=1;
---error ER_WRONG_VALUE_FOR_VAR
-SET @@global.keyring_file_data='/';
---error ER_WRONG_VALUE_FOR_VAR
---error ER_GLOBAL_VARIABLE
-SET @@session.keyring_file_data= '$MYSQL_TMP_DIR/new_keyring_file_data';
---error ER_GLOBAL_VARIABLE
-SET @@local.keyring_file_data= '$MYSQL_TMP_DIR/new_keyring_file_data';
-
-# Setting keyring_file_data value to dir.
--Error ER_WRONG_VALUE_FOR_VAR
-SET @@global.keyring_file_data= 'MYSQL_test_invalid/dir/';
+SET @@global.keyring_file_data= '../../../../../bad_dir/bad_keyring_file_data/';
+--Error ER_WRONG_VALUE_FOR_VAR
+SET @@global.keyring_file_data=NULL;
--replace_result $MYSQL_TMP_DIR MYSQL_TMP_DIR
SELECT @@global.keyring_file_data;
---echo
-UNINSTALL PLUGIN keyring_file;
-# Check keyring plugin
-query_vertical SELECT PLUGIN_NAME,PLUGIN_VERSION,PLUGIN_STATUS
-FROM INFORMATION_SCHEMA.PLUGINS WHERE plugin_name='keyring_file';
---file_exists $MYSQL_TMP_DIR/new_keyring_file_data
---echo
-
-# Cleanup
-DROP TABLE t1;
---echo
---echo #End:
+# cleanup
+--replace_result $MYSQL_TMP_DIR MYSQL_TMP_DIR
+eval SET @@global.keyring_file_data= '$MYSQL_TMP_DIR/mysecret_keyring';