upd: 10.5.10 -> 10.5.20, remove upstreamized patches

This commit is contained in:
Mikhail Novosyolov 2023-05-15 17:33:50 +03:00
parent 0ca9356f4f
commit a8b917e042
10 changed files with 41 additions and 330 deletions

View file

@ -1,2 +1,2 @@
sources:
mariadb-10.5.10.tar.gz: 7381ea990812be76b39688115f2cae40aa68b1d4
mariadb-10.5.20.tar.gz: 8d18c123d4d36bc3e52c55638081f20689fee0f9

View file

@ -1,17 +0,0 @@
PATCH-P0-SUSE: Fix for logrorate config
This patch fixes the logrotarte config file for mariadb.
Read more at https://www.novell.com/support/kb/doc.php?id=7005219
Index: support-files/mysql-log-rotate.sh
===================================================================
--- support-files/mysql-log-rotate.sh.orig
+++ support-files/mysql-log-rotate.sh
@@ -20,6 +20,7 @@
/var/log/mysql/*.log {
# create 600 mysql mysql
+ su mysql mysql
notifempty
daily
rotate 3

View file

@ -1,180 +0,0 @@
PATCH-P0-FEATURE-UPSTREAM: Add more functionality to mysqld_multi script
Adds reload funcionality to mysqld_multi.sh perl script and adds --datadir
support.
Maintainer: Michal Hrusecky <Michal.Hrusecky@opensuse.org>
Index: scripts/mysqld_multi.sh
===================================================================
diff -ruN a/scripts/mysqld_multi.sh b/scripts/mysqld_multi.sh
--- a/scripts/mysqld_multi.sh 2021-05-06 06:00:19.000000000 +0900
+++ b/scripts/mysqld_multi.sh 2021-05-22 22:19:41.865148884 +0900
@@ -20,6 +20,7 @@
use Getopt::Long;
use POSIX qw(strftime getcwd);
+use File::Path qw(mkpath);
$|=1;
$VER="2.20";
@@ -147,6 +148,7 @@
usage() if (!defined($ARGV[0]) ||
(!($ARGV[0] =~ m/^start$/i) &&
!($ARGV[0] =~ m/^stop$/i) &&
+ !($ARGV[0] =~ m/^reload$/i) &&
!($ARGV[0] =~ m/^report$/i)));
if (!$opt_no_log)
@@ -160,7 +162,7 @@
print strftime "%a %b %e %H:%M:%S %Y", localtime;
print "\n";
}
- if ($ARGV[0] =~ m/^start$/i)
+ if (($ARGV[0] =~ m/^start$/i) || ($ARGV[0] =~ m/^reload$/i))
{
if (!defined(($mysqld= my_which($opt_mysqld))) && $opt_verbose)
{
@@ -169,7 +171,11 @@
print "This is OK, if you are using option \"mysqld=...\" in ";
print "groups [mysqldN] separately for each.\n\n";
}
- start_mysqlds();
+ if ($ARGV[0] =~ m/^start$/i) {
+ start_mysqlds();
+ } elsif ($ARGV[0] =~ m/^reload$/i) {
+ reload_mysqlds();
+ }
}
else
{
@@ -332,6 +338,39 @@
for ($j = 0, $tmp= ""; defined($options[$j]); $j++)
{
+ if ("--datadir=" eq substr($options[$j], 0, 10)) {
+ $datadir = $options[$j];
+ $datadir =~ s/\-\-datadir\=//;
+ eval { mkpath($datadir) };
+ if ($@) {
+ print "FATAL ERROR: Cannot create data directory $datadir: $!\n";
+ exit(1);
+ }
+ if (! -d $datadir."/mysql") {
+ if (-w $datadir) {
+ print "\n\nInstalling new database in $datadir\n\n";
+ $install_cmd="@bindir@/mysql_install_db ";
+ $install_cmd.="--user=mysql ";
+ $install_cmd.="--datadir=$datadir";
+ system($install_cmd);
+ } else {
+ print "\n";
+ print "FATAL ERROR: Tried to create mysqld under group [$groups[$i]],\n";
+ print "but the data directory is not writable.\n";
+ print "data directory used: $datadir\n";
+ exit(1);
+ }
+ }
+
+ if (! -d $datadir."/mysql") {
+ print "\n";
+ print "FATAL ERROR: Tried to start mysqld under group [$groups[$i]],\n";
+ print "but no data directory was found or could be created.\n";
+ print "data directory used: $datadir\n";
+ exit(1);
+ }
+ }
+
if ("--mysqladmin=" eq substr($options[$j], 0, 13))
{
# catch this and ignore
@@ -412,6 +451,58 @@
}
####
+#### reload multiple servers
+####
+
+sub reload_mysqlds()
+{
+ my (@groups, $com, $tmp, $i, @options, $j);
+
+ if (!$opt_no_log)
+ {
+ w2log("\nReloading MySQL servers\n","$opt_log",0,0);
+ }
+ else
+ {
+ print "\nReloading MySQL servers\n";
+ }
+ @groups = &find_groups($groupids);
+ for ($i = 0; defined($groups[$i]); $i++)
+ {
+ $mysqld_server = $mysqld;
+ @options = defaults_for_group($groups[$i]);
+
+ for ($j = 0, $tmp= ""; defined($options[$j]); $j++)
+ {
+ if ("--mysqladmin=" eq substr($options[$j], 0, 13))
+ {
+ # catch this and ignore
+ }
+ elsif ("--mysqld=" eq substr($options[$j], 0, 9))
+ {
+ $options[$j] =~ s/\-\-mysqld\=//;
+ $mysqld_server = $options[$j];
+ }
+ elsif ("--pid-file=" eq substr($options[$j], 0, 11))
+ {
+ $options[$j] =~ s/\-\-pid-file\=//;
+ $pid_file = $options[$j];
+ }
+ }
+ $com = "killproc -p $pid_file -HUP $mysqld_server";
+ system($com);
+
+ $com = "touch $pid_file";
+ system($com);
+ }
+ if (!$i && !$opt_no_log)
+ {
+ w2log("No MySQL servers to be reloaded (check your GNRs)",
+ "$opt_log", 0, 0);
+ }
+}
+
+###
#### stop multiple servers
####
@@ -793,7 +884,7 @@
$my_progname version $VER by Jani Tolonen
Description:
-$my_progname can be used to start, or stop any number of separate
+$my_progname can be used to start, reload, or stop any number of separate
mysqld processes running in different TCP/IP ports and UNIX sockets.
$my_progname can read group [mysqld_multi] from my.cnf file. You may
@@ -811,16 +902,16 @@
[mysqld] group, but with those port, socket and any other options
that are to be used with each separate mysqld process. The number
in the group name has another function; it can be used for starting,
-stopping, or reporting any specific mysqld server.
+reloading, stopping, or reporting any specific mysqld server.
-Usage: $my_progname [OPTIONS] {start|stop|report} [GNR,GNR,GNR...]
-or $my_progname [OPTIONS] {start|stop|report} [GNR-GNR,GNR,GNR-GNR,...]
+Usage: $my_progname [OPTIONS] {start|reload|stop|report} [GNR,GNR,GNR...]
+or $my_progname [OPTIONS] {start|reload|stop|report} [GNR-GNR,GNR,GNR-GNR,...]
-The GNR means the group number. You can start, stop or report any GNR,
+The GNR means the group number. You can start, reload, stop or report any GNR,
or several of them at the same time. (See --example) The GNRs list can
be comma separated or a dash combined. The latter means that all the
GNRs between GNR1-GNR2 will be affected. Without GNR argument all the
-groups found will either be started, stopped, or reported. Note that
+groups found will either be started, reloaded, stopped, or reported. Note that
syntax for specifying GNRs must appear without spaces.
Options:

View file

@ -1,81 +0,0 @@
Author: Vicențiu Ciorbaru <vicentiu@mariadb.org>
Date: Fri Dec 21 19:14:04 2018 +0200
Link with libatomic to enable C11 atomics support
Some architectures (mips) require libatomic to support proper
atomic operations. Check first if support is available without
linking, otherwise use the library.
diff -ruN a/configure.cmake b/configure.cmake
--- a/configure.cmake 2021-05-06 06:00:18.000000000 +0900
+++ b/configure.cmake 2021-05-22 22:27:50.047909800 +0900
@@ -172,6 +172,10 @@
ENDIF()
ENDIF()
+IF (HAVE_GCC_C11_ATOMICS_WITH_LIBATOMIC)
+ TARGET_LINK_LIBRARIES(sql atomic)
+ENDIF()
+
#
# Tests for header files
#
@@ -865,7 +869,25 @@
long long int *ptr= &var;
return (int)__atomic_load_n(ptr, __ATOMIC_SEQ_CST);
}"
-HAVE_GCC_C11_ATOMICS)
+HAVE_GCC_C11_ATOMICS_WITHOUT_LIBATOMIC)
+IF (HAVE_GCC_C11_ATOMICS_WITHOUT_LIBATOMIC)
+ SET(HAVE_GCC_C11_ATOMICS True)
+ELSE()
+ SET(OLD_CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES})
+ LIST(APPEND CMAKE_REQUIRED_LIBRARIES "atomic")
+ CHECK_CXX_SOURCE_COMPILES("
+ int main()
+ {
+ long long int var= 1;
+ long long int *ptr= &var;
+ return (int)__atomic_load_n(ptr, __ATOMIC_SEQ_CST);
+ }"
+ HAVE_GCC_C11_ATOMICS_WITH_LIBATOMIC)
+ IF(HAVE_GCC_C11_ATOMICS_WITH_LIBATOMIC)
+ SET(HAVE_GCC_C11_ATOMICS True)
+ ENDIF()
+ SET(CMAKE_REQUIRED_LIBRARIES ${OLD_CMAKE_REQUIRED_LIBRARIES})
+ENDIF()
IF(WITH_VALGRIND)
SET(HAVE_valgrind 1)
diff -ruN a/mysys/CMakeLists.txt b/mysys/CMakeLists.txt
--- a/mysys/CMakeLists.txt 2021-05-06 06:00:19.000000000 +0900
+++ b/mysys/CMakeLists.txt 2021-05-22 22:24:59.070860099 +0900
@@ -168,6 +168,10 @@
${LIBNSL} ${LIBM} ${LIBRT} ${CMAKE_DL_LIBS} ${LIBSOCKET} ${LIBEXECINFO})
DTRACE_INSTRUMENT(mysys)
+IF (HAVE_GCC_C11_ATOMICS_WITH_LIBATOMIC)
+ TARGET_LINK_LIBRARIES(mysys atomic)
+ENDIF()
+
IF(HAVE_BFD_H)
TARGET_LINK_LIBRARIES(mysys bfd)
ENDIF(HAVE_BFD_H)
diff -ruN a/sql/CMakeLists.txt.rej b/sql/CMakeLists.txt.rej
--- a/sql/CMakeLists.txt.rej 1970-01-01 09:00:00.000000000 +0900
+++ b/sql/CMakeLists.txt.rej 2021-05-22 22:24:59.071860044 +0900
@@ -0,0 +1,13 @@
+--- sql/CMakeLists.txt
++++ sql/CMakeLists.txt
+@@ -215,6 +215,10 @@ ELSE()
+ SET(MYSQLD_SOURCE main.cc ${DTRACE_PROBES_ALL})
+ ENDIF()
+
++IF (HAVE_GCC_C11_ATOMICS_WITH_LIBATOMIC)
++ TARGET_LINK_LIBRARIES(sql atomic)
++ENDIF()
++
+ IF(MSVC)
+ SET(libs_to_export_symbols sql mysys dbug strings)
+ # Create shared library of already compiled object

View file

@ -1,15 +1,15 @@
PATCH-P0-FIX-HACK: Not enforcing specific flags
Not enforcing specific flags
Useing some CFLAGS from distribution and some enforced can and leads to the
Using some CFLAGS from distribution and some enforced can and leads to the
conflicts like FORTIFY and -O0. Removing hardcoded options.
Maintainer: Michal Hrusecky <mhrusecky@suse.cz>
Index: CMakeLists.txt
===================================================================
--- CMakeLists.txt.orig
+++ CMakeLists.txt
@@ -242,7 +242,6 @@ IF(SECURITY_HARDENED AND NOT WITH_ASAN A
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 7d85b841..24228289 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -263,7 +263,6 @@ IF(SECURITY_HARDENED AND NOT WITH_ASAN AND NOT WITH_UBSAN AND NOT WITH_TSAN AND
MY_CHECK_AND_SET_COMPILER_FLAG("-pie -fPIC")
MY_CHECK_AND_SET_LINKER_FLAG("-Wl,-z,relro,-z,now")
MY_CHECK_AND_SET_COMPILER_FLAG("-fstack-protector --param=ssp-buffer-size=4")
@ -17,10 +17,10 @@ Index: CMakeLists.txt
ENDIF()
INCLUDE(wsrep)
Index: storage/tokudb/PerconaFT/cmake_modules/TokuSetupCompiler.cmake
===================================================================
--- storage/tokudb/PerconaFT/cmake_modules/TokuSetupCompiler.cmake.orig
+++ storage/tokudb/PerconaFT/cmake_modules/TokuSetupCompiler.cmake
diff --git a/storage/tokudb/PerconaFT/cmake_modules/TokuSetupCompiler.cmake b/storage/tokudb/PerconaFT/cmake_modules/TokuSetupCompiler.cmake
index c82521db..bb7fefc3 100644
--- a/storage/tokudb/PerconaFT/cmake_modules/TokuSetupCompiler.cmake
+++ b/storage/tokudb/PerconaFT/cmake_modules/TokuSetupCompiler.cmake
@@ -26,11 +26,9 @@ endif ()
if (CMAKE_VERSION VERSION_LESS 3.0)
set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS_DEBUG TOKU_PTHREAD_DEBUG=1 TOKU_DEBUG_TXN_SYNC=1)

View file

@ -5,10 +5,10 @@ In SUSE we've got MySQL log in different directory. It's located in
Maintainer: Michal Hrusecky <Michal.Hrusecky@opensuse.org>
Index: support-files/mysql-log-rotate.sh
===================================================================
--- support-files/mysql-log-rotate.sh.orig
+++ support-files/mysql-log-rotate.sh
diff --git a/support-files/mysql-log-rotate.sh b/support-files/mysql-log-rotate.sh
index c89aa6e0..a8a66ef3 100644
--- a/support-files/mysql-log-rotate.sh
+++ b/support-files/mysql-log-rotate.sh
@@ -18,7 +18,7 @@
# ATTENTION: This /root/.my.cnf should be readable ONLY
# for root !
@ -16,9 +16,9 @@ Index: support-files/mysql-log-rotate.sh
-@localstatedir@/mysqld.log {
+/var/log/mysql/*.log {
# create 600 mysql mysql
su mysql mysql
notifempty
daily
@@ -32,6 +32,14 @@
@@ -33,6 +33,14 @@
then
@bindir@/mysqladmin --local flush-error-log \
flush-engine-log flush-general-log flush-slow-log

View file

@ -1,8 +1,8 @@
Index: mariadb-10.4.12/scripts/mysql_install_db.sh
===================================================================
--- mariadb-10.4.12.orig/scripts/mysql_install_db.sh
+++ mariadb-10.4.12/scripts/mysql_install_db.sh
@@ -482,20 +482,22 @@ if test -n "$user"
diff --git a/scripts/mysql_install_db.sh b/scripts/mysql_install_db.sh
index 579ed849..2a8c99d5 100644
--- a/scripts/mysql_install_db.sh
+++ b/scripts/mysql_install_db.sh
@@ -494,20 +494,22 @@ if test -n "$user"
then
if test -z "$srcdir" -a "$in_rpm" -eq 0
then

View file

@ -2,11 +2,11 @@ SUSE specific patch that hardens the auth_pam_tool setuid-root binary.
Matthias Gerstner wants it as a prerequisite for allowing auth_pam_tool
setuid-root binary in [bsc#1160285].
Index: mariadb-10.4.12/plugin/auth_pam/auth_pam_base.c
===================================================================
--- mariadb-10.4.12.orig/plugin/auth_pam/auth_pam_base.c
+++ mariadb-10.4.12/plugin/auth_pam/auth_pam_base.c
@@ -149,6 +149,12 @@ static int pam_auth_base(struct param *p
diff --git a/plugin/auth_pam/auth_pam_base.c b/plugin/auth_pam/auth_pam_base.c
index 1e8f4a08..3a2bccbc 100644
--- a/plugin/auth_pam/auth_pam_base.c
+++ b/plugin/auth_pam/auth_pam_base.c
@@ -150,6 +150,12 @@ static int pam_auth_base(struct param *param, MYSQL_SERVER_AUTH_INFO *info)
const char *service = info->auth_string && info->auth_string[0]
? info->auth_string : "mysql";

View file

@ -1,5 +1,5 @@
diff --git a/cmake/abi_check.cmake b/cmake/abi_check.cmake
index 98877be9..23ef2f9d 100644
index e4a783f3..caba8b37 100644
--- a/cmake/abi_check.cmake
+++ b/cmake/abi_check.cmake
@@ -22,7 +22,7 @@
@ -12,10 +12,10 @@ index 98877be9..23ef2f9d 100644
ELSE()
SET(RUN_ABI_CHECK 0)
diff --git a/mysys/my_context.c b/mysys/my_context.c
index 5423f59d..506fcc8a 100644
index 4153927d..8fa98a85 100644
--- a/mysys/my_context.c
+++ b/mysys/my_context.c
@@ -103,8 +103,16 @@ my_context_spawn(struct my_context *c, void (*f)(void *), void *d)
@@ -107,8 +107,16 @@ my_context_spawn(struct my_context *c, void (*f)(void *), void *d)
c->user_data= d;
c->active= 1;
u.p= c;
@ -32,7 +32,7 @@ index 5423f59d..506fcc8a 100644
return my_context_continue(c);
}
@@ -146,6 +154,9 @@ my_context_destroy(struct my_context *c)
@@ -150,6 +158,9 @@ my_context_destroy(struct my_context *c)
{
if (c->stack)
{
@ -43,12 +43,12 @@ index 5423f59d..506fcc8a 100644
VALGRIND_STACK_DEREGISTER(c->valgrind_stack_id);
#endif
diff --git a/wsrep-lib/include/wsrep/compiler.hpp b/wsrep-lib/include/wsrep/compiler.hpp
index 5adf0a91..3192ba83 100644
index 5f8e1ce0..76eb77d6 100644
--- a/wsrep-lib/include/wsrep/compiler.hpp
+++ b/wsrep-lib/include/wsrep/compiler.hpp
@@ -37,7 +37,7 @@
*/
@@ -40,7 +40,7 @@
#ifndef WSREP_LIB_COMPILER_HPP
#define WSREP_LIB_COMPILER_HPP
-#if __cplusplus >= 201103L && !(__GNUC__ == 4 && __GNUG_MINOR__ < 8)
+#if __cplusplus >= 201103L && !(__GNUC__ == 4 && __GNUG_MINOR__ < 8) && !defined(__LCC__)

View file

@ -40,8 +40,8 @@
%global __requires_exclude_from ^%{_datadir}/mysql-test
Name: mariadb
Version: 10.5.10
Release: 3
Version: 10.5.20
Release: 1
Summary: Server part of MariaDB
License: SUSE-GPL-2.0-with-FLOSS-exception
Group: Databases
@ -60,10 +60,7 @@ Source19: macros.mariadb-test
Source50: suse_skipped_tests.list
Source51: mariadb.rpmlintrc
Patch1: mariadb-10.2.4-logrotate.patch
Patch2: mariadb-10.1.1-mysqld_multi-features.patch
Patch3: mariadb-10.0.15-logrotate-su.patch
Patch4: mariadb-10.2.4-fortify-and-O.patch
Patch5: mariadb-10.2.19-link-and-enable-c++11-atomics.patch
Patch6: mariadb-10.4.12-harden_setuid.patch
Patch7: mariadb-10.4.12-fix-install-db.patch
Patch8: mariadb-10.5.10-e2k.patch
@ -311,17 +308,9 @@ PAM module.
%endif
%prep
%setup -q
%autosetup -p1
# Remove JAR files from the tarball (used for testing from the source)
find . -name "*.jar" -type f -exec rm --verbose -f {} \;
%patch1
%patch2 -p1
%patch3
%patch4
%patch5 -p1
%patch6 -p1
%patch7 -p1
%patch8 -p1
cp %{_sourcedir}/suse-test-run .
@ -574,10 +563,10 @@ fi
%if %{with galera}
# mariadb-galera.files
filelist galera_new_cluster galera_recovery wsrep_sst_common wsrep_sst_mariabackup wsrep_sst_mysqldump wsrep_sst_rsync wsrep_sst_rsync_wan >mariadb-galera.files
filelist galera_new_cluster galera_recovery wsrep_sst_common wsrep_sst_mariabackup wsrep_sst_mysqldump wsrep_sst_rsync wsrep_sst_rsync_wan wsrep_sst_backup >mariadb-galera.files
touch mariadb-galera-exclude.files
%else
filelist_excludes galera_new_cluster galera_recovery wsrep_sst_common wsrep_sst_mariabackup wsrep_sst_mysqldump wsrep_sst_rsync wsrep_sst_rsync_wan >mariadb-galera-exclude.files
filelist_excludes galera_new_cluster galera_recovery wsrep_sst_common wsrep_sst_mariabackup wsrep_sst_mysqldump wsrep_sst_rsync wsrep_sst_rsync_wan wsrep_sst_backup >mariadb-galera-exclude.files
echo /usr/share/mysql/systemd/use_galera_new_cluster.conf >>mariadb-galera-exclude.files
echo /usr/share/mysql/wsrep_notify >>mariadb-galera-exclude.files
%endif