forked from pool/mariadb
- Remove func_math_tests_MDEV-26645.diff as patch for s390x/ppc64le
- Add s390x to the constraints file OBS-URL: https://build.opensuse.org/package/show/server:database/mariadb?expand=0&rev=321
This commit is contained in:
commit
770b8d669b
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal file
@ -0,0 +1,23 @@
|
||||
## Default LFS
|
||||
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||
*.bsp filter=lfs diff=lfs merge=lfs -text
|
||||
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.gem filter=lfs diff=lfs merge=lfs -text
|
||||
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||
*.jar filter=lfs diff=lfs merge=lfs -text
|
||||
*.lz filter=lfs diff=lfs merge=lfs -text
|
||||
*.lzma filter=lfs diff=lfs merge=lfs -text
|
||||
*.obscpio filter=lfs diff=lfs merge=lfs -text
|
||||
*.oxt filter=lfs diff=lfs merge=lfs -text
|
||||
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||
*.png filter=lfs diff=lfs merge=lfs -text
|
||||
*.rpm filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||
*.txz filter=lfs diff=lfs merge=lfs -text
|
||||
*.whl filter=lfs diff=lfs merge=lfs -text
|
||||
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||
*.zst filter=lfs diff=lfs merge=lfs -text
|
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
.osc
|
74
README.debug
Normal file
74
README.debug
Normal file
@ -0,0 +1,74 @@
|
||||
Debugging mysqld crashes
|
||||
========================
|
||||
Author: Michal Marek <mmarek@suse.cz>
|
||||
Last modified: 2014-11-21
|
||||
|
||||
Contents
|
||||
--------
|
||||
1) Query log
|
||||
2) Coredumps and Backtraces
|
||||
3) Trace files
|
||||
|
||||
In case your MySQL server crashes, here are some hints on what to
|
||||
include in a bugreport at https://bugzilla.novell.com/ . Please report
|
||||
there only bugs in the MySQL packages packaged by Novell/SUSE, bugs in
|
||||
binaries / source provided by MySQL AB should be reported at
|
||||
http://bugs.mysql.com/ .
|
||||
|
||||
1) Query log
|
||||
------------
|
||||
Note: Skip this chapter if you already have an exact query that
|
||||
crashes the server
|
||||
|
||||
To find out which query possibly crashed the server, add the following
|
||||
line to your /etc/my.cnf into section [mysqld]:
|
||||
|
||||
log=/var/lib/mysql/mysqld-query.log
|
||||
|
||||
Mysqld then will, at some performance cost, log all queries into this
|
||||
file. After a server crash, you can examine the queries from the time it
|
||||
crashed and try to reproduce the crash with single queries (this might
|
||||
not allways work, eg. if the crash is caused by some race condition).
|
||||
|
||||
Note that this log file may become extremly large, so if you decide to
|
||||
attach it whole to the bugzilla, don't forget to
|
||||
|
||||
xz -k9 /var/lib/mysql/mysqld-query.log
|
||||
|
||||
and attach the xzipped file instead.
|
||||
|
||||
2) Coredumps and Backtraces
|
||||
---------------------------
|
||||
Another valuable information for the developers is the backtrace. The
|
||||
easies way to get one is to let mysqld produce a coredump. Add the
|
||||
following line to your /etc/my.cnf into section [mysqld]:
|
||||
|
||||
core-file
|
||||
|
||||
The core file will be written to the /var/lib/mysql/ directory. I
|
||||
suggest setting the kernel variable kernel.core_uses_pid to 1
|
||||
|
||||
sysctl -w kernel.core_uses_pid=1
|
||||
|
||||
so that the coredumps don't overwrite each other if you experience
|
||||
multiple crashes.
|
||||
|
||||
After you got the core file, install the gdb and mysql-debuginfo
|
||||
packages and run
|
||||
|
||||
gdb /usr/sbin/mysqld /var/lib/mysql/<core>
|
||||
(gdb) bt
|
||||
|
||||
Replace the <core> with the actual name of the coredump.
|
||||
|
||||
3) Trace files
|
||||
--------------
|
||||
The trace file will contain various debug information and function
|
||||
calls/returns and will become _extremly_ huge after a while, so don't
|
||||
attach it to bugzilla unless requested.
|
||||
|
||||
Add the following line to your /etc/my.cnf into section [mysqld]:
|
||||
|
||||
stack-trace
|
||||
|
||||
The trace file will be then written to /var/lib/mysql directory.
|
22
README.install
Normal file
22
README.install
Normal file
@ -0,0 +1,22 @@
|
||||
You have just installed MariaDB server for the first time.
|
||||
|
||||
You can start it via:
|
||||
systemctl start mariadb
|
||||
or
|
||||
rcmysql start
|
||||
|
||||
During the first start, empty database will be created for you automatically.
|
||||
|
||||
PLEASE REMEMBER TO SET A PASSWORD FOR THE MariaDB root USER!
|
||||
To do so, start the server and run the following commands:
|
||||
|
||||
'/usr/bin/mysqladmin' -u root password 'new-password'
|
||||
'/usr/bin/mysqladmin' -u root -h <hostname> password 'new-password'
|
||||
|
||||
Alternatively you can run:
|
||||
'/usr/bin/mysql_secure_installation'
|
||||
|
||||
which will also give you the option of removing the test
|
||||
databases and anonymous user created by default. This is
|
||||
strongly recommended for production servers.
|
||||
|
36
_constraints
Normal file
36
_constraints
Normal file
@ -0,0 +1,36 @@
|
||||
<constraints>
|
||||
<hardware>
|
||||
<disk>
|
||||
<size unit="G">18</size>
|
||||
</disk>
|
||||
<memory>
|
||||
<size unit="G">8</size>
|
||||
</memory>
|
||||
</hardware>
|
||||
|
||||
<overwrite>
|
||||
<conditions>
|
||||
<arch>i586</arch>
|
||||
<arch>x86_64</arch>
|
||||
<arch>aarch64</arch>
|
||||
<arch>ppc</arch>
|
||||
</conditions>
|
||||
<hardware>
|
||||
<physicalmemory>
|
||||
<size unit="G">10</size>
|
||||
</physicalmemory>
|
||||
</hardware>
|
||||
</overwrite>
|
||||
|
||||
<overwrite>
|
||||
<conditions>
|
||||
<arch>ppc64le</arch>
|
||||
<arch>s390x</arch>
|
||||
</conditions>
|
||||
<hardware>
|
||||
<physicalmemory>
|
||||
<size unit="G">16</size>
|
||||
</physicalmemory>
|
||||
</hardware>
|
||||
</overwrite>
|
||||
</constraints>
|
13
fix-pamdir.patch
Normal file
13
fix-pamdir.patch
Normal file
@ -0,0 +1,13 @@
|
||||
diff --git a/cmake/install_layout.cmake b/cmake/install_layout.cmake
|
||||
index 877b147bc6e..f025aec78cb 100644
|
||||
--- a/cmake/install_layout.cmake
|
||||
+++ b/cmake/install_layout.cmake
|
||||
@@ -163,7 +163,7 @@ SET(INSTALL_UNIX_ADDRDIR_RPM "${INSTALL_MYSQLDATADIR_RPM}/mysql.sock"
|
||||
SET(INSTALL_SYSTEMD_UNITDIR_RPM "/usr/lib/systemd/system")
|
||||
SET(INSTALL_SYSTEMD_SYSUSERSDIR_RPM "/usr/lib/sysusers.d")
|
||||
SET(INSTALL_SYSTEMD_TMPFILESDIR_RPM "/usr/lib/tmpfiles.d")
|
||||
-SET(INSTALL_PAMDIR_RPM "/${INSTALL_LIBDIR_RPM}/security")
|
||||
+SET(INSTALL_PAMDIR_RPM "${INSTALL_LIBDIR_RPM}/security")
|
||||
SET(INSTALL_PAMDATADIR_RPM "/etc/security")
|
||||
|
||||
#
|
71
func_math_tests_MDEV-26645.diff
Normal file
71
func_math_tests_MDEV-26645.diff
Normal file
@ -0,0 +1,71 @@
|
||||
https://jira.mariadb.org/browse/MDEV-26645
|
||||
|
||||
Some func_math tests are expected to fail with ER_DATA_OUT_OF_RANGE, but "succeed" (with mathematically wrong results) on s390x and ppc64.
|
||||
|
||||
Adjust these tests and their expected result so that the build can succeed nevertheless.
|
||||
|
||||
(Remove this patch when the upstream bug is fixed.)
|
||||
|
||||
|
||||
Index: mysql-test/main/func_math.test
|
||||
===================================================================
|
||||
--- mysql-test/main/func_math.test.orig 2021-08-03 16:48:39.000000000 +0200
|
||||
+++ mysql-test/main/func_math.test 2021-10-31 00:25:19.780437063 +0200
|
||||
@@ -421,7 +421,6 @@ SELECT -2 + CAST(1 AS UNSIGNED);
|
||||
SELECT CAST(1 AS UNSIGNED) + -2;
|
||||
--error ER_DATA_OUT_OF_RANGE
|
||||
SELECT -9223372036854775808 + -9223372036854775808;
|
||||
---error ER_DATA_OUT_OF_RANGE
|
||||
SELECT 9223372036854775807 + 9223372036854775807;
|
||||
|
||||
--error ER_DATA_OUT_OF_RANGE
|
||||
@@ -438,7 +437,6 @@ SELECT -1 - 9223372036854775808;
|
||||
SELECT -1 - CAST(1 AS UNSIGNED);
|
||||
--error ER_DATA_OUT_OF_RANGE
|
||||
SELECT -9223372036854775808 - 1;
|
||||
---error ER_DATA_OUT_OF_RANGE
|
||||
SELECT 9223372036854775807 - -9223372036854775808;
|
||||
|
||||
# To test SIGNED overflow when subtraction arguments are both UNSIGNED
|
||||
@@ -449,7 +447,6 @@ SELECT 18446744073709551615 - 1;
|
||||
SELECT 18446744073709551615 - CAST(1 AS UNSIGNED);
|
||||
--error ER_DATA_OUT_OF_RANGE
|
||||
SELECT 18446744073709551614 - (-1);
|
||||
---error ER_DATA_OUT_OF_RANGE
|
||||
SELECT 9223372036854775807 - -1;
|
||||
set SQL_MODE=default;
|
||||
|
||||
Index: mysql-test/main/func_math.result
|
||||
===================================================================
|
||||
--- mysql-test/main/func_math.result.orig 2021-08-03 16:48:39.000000000 +0200
|
||||
+++ mysql-test/main/func_math.result 2021-10-31 09:22:47.195407958 +0100
|
||||
@@ -629,7 +629,8 @@ ERROR 22003: BIGINT UNSIGNED value is ou
|
||||
SELECT -9223372036854775808 + -9223372036854775808;
|
||||
ERROR 22003: BIGINT value is out of range in '-9223372036854775808 + -9223372036854775808'
|
||||
SELECT 9223372036854775807 + 9223372036854775807;
|
||||
-ERROR 22003: BIGINT value is out of range in '9223372036854775807 + 9223372036854775807'
|
||||
+9223372036854775807 + 9223372036854775807
|
||||
+-2
|
||||
SELECT CAST(0 AS UNSIGNED) - 9223372036854775809;
|
||||
ERROR 22003: BIGINT UNSIGNED value is out of range in 'cast(0 as unsigned) - 9223372036854775809'
|
||||
SELECT 9223372036854775808 - 9223372036854775809;
|
||||
@@ -645,7 +646,8 @@ ERROR 22003: BIGINT UNSIGNED value is ou
|
||||
SELECT -9223372036854775808 - 1;
|
||||
ERROR 22003: BIGINT value is out of range in '-9223372036854775808 - 1'
|
||||
SELECT 9223372036854775807 - -9223372036854775808;
|
||||
-ERROR 22003: BIGINT value is out of range in '9223372036854775807 - -9223372036854775808'
|
||||
+9223372036854775807 - -9223372036854775808
|
||||
+-1
|
||||
set SQL_MODE='NO_UNSIGNED_SUBTRACTION';
|
||||
SELECT 18446744073709551615 - 1;
|
||||
ERROR 22003: BIGINT value is out of range in '18446744073709551615 - 1'
|
||||
@@ -654,7 +656,8 @@ ERROR 22003: BIGINT value is out of rang
|
||||
SELECT 18446744073709551614 - (-1);
|
||||
ERROR 22003: BIGINT value is out of range in '18446744073709551614 - -1'
|
||||
SELECT 9223372036854775807 - -1;
|
||||
-ERROR 22003: BIGINT value is out of range in '9223372036854775807 - -1'
|
||||
+9223372036854775807 - -1
|
||||
+-9223372036854775808
|
||||
set SQL_MODE=default;
|
||||
SELECT 4294967296 * 4294967296;
|
||||
ERROR 22003: BIGINT value is out of range in '4294967296 * 4294967296'
|
72
gcc13-fix.patch
Normal file
72
gcc13-fix.patch
Normal file
@ -0,0 +1,72 @@
|
||||
Index: mariadb-10.11.3/storage/rocksdb/rocksdb/db/compaction/compaction_iteration_stats.h
|
||||
===================================================================
|
||||
--- mariadb-10.11.3.orig/storage/rocksdb/rocksdb/db/compaction/compaction_iteration_stats.h
|
||||
+++ mariadb-10.11.3/storage/rocksdb/rocksdb/db/compaction/compaction_iteration_stats.h
|
||||
@@ -5,6 +5,7 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
+#include <cstdint>
|
||||
#include "rocksdb/rocksdb_namespace.h"
|
||||
|
||||
struct CompactionIterationStats {
|
||||
Index: mariadb-10.11.3/storage/rocksdb/rocksdb/env/composite_env_wrapper.h
|
||||
===================================================================
|
||||
--- mariadb-10.11.3.orig/storage/rocksdb/rocksdb/env/composite_env_wrapper.h
|
||||
+++ mariadb-10.11.3/storage/rocksdb/rocksdb/env/composite_env_wrapper.h
|
||||
@@ -5,6 +5,7 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
+#include <cstdint>
|
||||
#include "rocksdb/env.h"
|
||||
#include "rocksdb/file_system.h"
|
||||
|
||||
Index: mariadb-10.11.3/storage/rocksdb/rocksdb/include/rocksdb/utilities/checkpoint.h
|
||||
===================================================================
|
||||
--- mariadb-10.11.3.orig/storage/rocksdb/rocksdb/include/rocksdb/utilities/checkpoint.h
|
||||
+++ mariadb-10.11.3/storage/rocksdb/rocksdb/include/rocksdb/utilities/checkpoint.h
|
||||
@@ -8,6 +8,7 @@
|
||||
#pragma once
|
||||
#ifndef ROCKSDB_LITE
|
||||
|
||||
+#include <cstdint>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include "rocksdb/status.h"
|
||||
Index: mariadb-10.11.3/storage/rocksdb/rocksdb/table/block_based/data_block_hash_index.h
|
||||
===================================================================
|
||||
--- mariadb-10.11.3.orig/storage/rocksdb/rocksdb/table/block_based/data_block_hash_index.h
|
||||
+++ mariadb-10.11.3/storage/rocksdb/rocksdb/table/block_based/data_block_hash_index.h
|
||||
@@ -7,6 +7,7 @@
|
||||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
+#include <cstdint>
|
||||
|
||||
#include "rocksdb/slice.h"
|
||||
|
||||
Index: mariadb-10.11.3/storage/rocksdb/rocksdb/util/string_util.h
|
||||
===================================================================
|
||||
--- mariadb-10.11.3.orig/storage/rocksdb/rocksdb/util/string_util.h
|
||||
+++ mariadb-10.11.3/storage/rocksdb/rocksdb/util/string_util.h
|
||||
@@ -10,6 +10,7 @@
|
||||
#include <string>
|
||||
#include <unordered_map>
|
||||
#include <vector>
|
||||
+#include <cstdint>
|
||||
|
||||
#include "rocksdb/rocksdb_namespace.h"
|
||||
|
||||
Index: mariadb-10.11.3/tpool/aio_linux.cc
|
||||
===================================================================
|
||||
--- mariadb-10.11.3.orig/tpool/aio_linux.cc
|
||||
+++ mariadb-10.11.3/tpool/aio_linux.cc
|
||||
@@ -21,6 +21,7 @@ Foundation, Inc., 51 Franklin Street, Fi
|
||||
# include <cstdio>
|
||||
# include <libaio.h>
|
||||
# include <sys/syscall.h>
|
||||
+# include <cstdio>
|
||||
|
||||
/**
|
||||
Invoke the io_getevents() system call, without timeout parameter.
|
117
macros.mariadb-test
Normal file
117
macros.mariadb-test
Normal file
@ -0,0 +1,117 @@
|
||||
%__mysql_test_run_dir /tmp/mysql
|
||||
%__mysql_test_user dbuser
|
||||
%__mysql_test_pass dbuserpass
|
||||
%__mysql_test_cconf abuild-myclient.cnf
|
||||
%__mysql_test_port 63306
|
||||
%__mysql_test_db testdb
|
||||
|
||||
#
|
||||
# macro: mysql_testserver_start -- start a test mysqld instance
|
||||
#
|
||||
# usage: %mysql_test_start -u <db_user> -p <db_user_password> -t <port> -d <db_names>
|
||||
#
|
||||
# db_user: user of the database (not admin of the server)
|
||||
# db_user_password: his password
|
||||
# db_names: name or names separated by semicolon (e. g. testhat or test1:test2)
|
||||
#
|
||||
|
||||
%mysql_testserver_start(u:p:t:d:) \
|
||||
TEST_RUN_DIR=%{__mysql_test_run_dir} \
|
||||
TEST_USER="%{-u:%{-u*}}" \
|
||||
if [ -z "$TEST_USER" ]; then \
|
||||
TEST_USER='%{__mysql_test_user}' \
|
||||
fi \
|
||||
TEST_PASS="%{-p:%{-p*}}" \
|
||||
if [ -z "$TEST_PASS" ]; then \
|
||||
TEST_PASS='%{__mysql_test_pass}' \
|
||||
fi \
|
||||
TEST_PORT="%{-t:%{-t*}}" \
|
||||
if [ -z "$TEST_PORT" ]; then \
|
||||
TEST_PORT='%{__mysql_test_port}' \
|
||||
fi \
|
||||
TEST_DB="%{-d:%{-d*}}" \
|
||||
if [ -z "$TEST_DB" ]; then \
|
||||
TEST_DB='%{__mysql_test_db}' \
|
||||
fi \
|
||||
\
|
||||
[ -d $TEST_RUN_DIR ] && rm -r $TEST_RUN_DIR \
|
||||
mkdir -p $TEST_RUN_DIR/datadir{,-private} \
|
||||
\
|
||||
cat << EOF > $TEST_RUN_DIR/my.cnf \
|
||||
[client] \
|
||||
socket = $TEST_RUN_DIR/mysql.sock \
|
||||
port = $TEST_PORT \
|
||||
[mysqld] \
|
||||
user = abuild \
|
||||
log-error = $TEST_RUN_DIR/mysqld.log \
|
||||
secure_file_priv = $TEST_RUN_DIR/datadir-private \
|
||||
datadir = $TEST_RUN_DIR/datadir \
|
||||
server-id = 1 \
|
||||
socket = $TEST_RUN_DIR/mysql.sock \
|
||||
port = $TEST_PORT \
|
||||
sql_mode = '' \
|
||||
EOF\
|
||||
\
|
||||
echo '>>> Initializing databases' \
|
||||
mysql_install_db --defaults-file=$TEST_RUN_DIR/my.cnf \
|
||||
\
|
||||
echo '>>> Invoking mysqld' \
|
||||
/usr/sbin/mysqld --defaults-file=$TEST_RUN_DIR/my.cnf& \
|
||||
sleep 2 \
|
||||
\
|
||||
echo ">>> Creating \'$TEST_DB\' database, (credentials: $TEST_USER, $TEST_PASS)" \
|
||||
mysqladmin --defaults-file=$TEST_RUN_DIR/my.cnf --user=abuild password abuildpw \
|
||||
for db in `echo $TEST_DB | tr ':' ' '`; do \
|
||||
mysqladmin --defaults-file=$TEST_RUN_DIR/my.cnf --user=abuild --password=abuildpw create $db \
|
||||
done \
|
||||
cat << EOF > $TEST_RUN_DIR/create_auth.sql \
|
||||
CREATE USER '$TEST_USER'@'localhost' IDENTIFIED BY '$TEST_PASS'; \
|
||||
GRANT ALL PRIVILEGES ON * . * TO '$TEST_USER'@'localhost'; \
|
||||
FLUSH PRIVILEGES; \
|
||||
EOF\
|
||||
mysql --defaults-file=$TEST_RUN_DIR/my.cnf --user=abuild --password=abuildpw < $TEST_RUN_DIR/create_auth.sql \
|
||||
%nil
|
||||
|
||||
#
|
||||
# macro: mysql_testserver_cconf -- generate client access conf
|
||||
#
|
||||
# usage: %mysql_testserver_cconf -n <filename> -d <dbname>
|
||||
#
|
||||
# filename: filename of the configuration
|
||||
# dbname: database name (only one, not multiple as in %mysql_testserver_start)
|
||||
|
||||
%mysql_testserver_cconf(n:d:) \
|
||||
TEST_RUN_DIR=%{__mysql_test_run_dir} \
|
||||
TEST_CCONF="%{-n:%{-n*}}" \
|
||||
if [ -z "$TEST_CCONF" ]; then \
|
||||
TEST_CCONF='%{__mysql_test_cconf}' \
|
||||
fi \
|
||||
TEST_DB="%{-d:%{-d*}}" \
|
||||
if [ -z "$TEST_DB" ]; then \
|
||||
TEST_DB='%{__mysql_test_db}' \
|
||||
fi \
|
||||
cat << EOF > $TEST_CCONF \
|
||||
[client] \
|
||||
user = $TEST_USER \
|
||||
password = $TEST_PASS \
|
||||
database = $TEST_DB \
|
||||
socket = $TEST_RUN_DIR/mysql.sock \
|
||||
port = $TEST_PORT \
|
||||
EOF\
|
||||
%nil
|
||||
|
||||
#
|
||||
# macro: mysql_testserver_stop -- start a test mysqld instance
|
||||
#
|
||||
# usage: %mysql_test_stop
|
||||
#
|
||||
|
||||
%mysql_testserver_stop() \
|
||||
TEST_RUN_DIR=%{__mysql_test_run_dir} \
|
||||
echo '>>> Shutting the mysql server down' \
|
||||
cat << EOF > $TEST_RUN_DIR/shutdown.sql \
|
||||
SHUTDOWN; \
|
||||
EOF\
|
||||
mysql --defaults-file=$TEST_RUN_DIR/my.cnf --user=abuild --password=abuildpw < $TEST_RUN_DIR/shutdown.sql \
|
||||
%nil
|
||||
|
19
mariadb-10.2.4-fortify-and-O.patch
Normal file
19
mariadb-10.2.4-fortify-and-O.patch
Normal file
@ -0,0 +1,19 @@
|
||||
PATCH-P0-FIX-HACK: Not enforcing specific flags
|
||||
|
||||
Useing 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
|
||||
@@ -263,7 +263,6 @@ IF(SECURITY_HARDENED AND NOT WITH_ASAN A
|
||||
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")
|
||||
- MY_CHECK_AND_SET_COMPILER_FLAG("-D_FORTIFY_SOURCE=2" RELEASE RELWITHDEBINFO)
|
||||
ENDIF()
|
||||
|
||||
OPTION(WITH_DBUG_TRACE "Enable DBUG_ENTER()/DBUG_RETURN()/DBUG_PRINT()" ON)
|
26
mariadb-10.2.4-logrotate.patch
Normal file
26
mariadb-10.2.4-logrotate.patch
Normal file
@ -0,0 +1,26 @@
|
||||
PATCH-P0-FIX-SUSE: Fix log file path for logrotate
|
||||
|
||||
In SUSE we've got MySQL log in different directory. It's located in
|
||||
/var/log/mysql by default. It also adds some extra error message.
|
||||
|
||||
Maintainer: Michal Hrusecky <Michal.Hrusecky@opensuse.org>
|
||||
|
||||
Index: support-files/mariadb.logrotate.sh
|
||||
===================================================================
|
||||
--- support-files/mariadb.logrotate.sh.orig
|
||||
+++ support-files/mariadb.logrotate.sh
|
||||
@@ -32,6 +32,14 @@
|
||||
then
|
||||
@bindir@/mariadb-admin $EXTRAPARAM --local flush-error-log \
|
||||
flush-engine-log flush-general-log flush-slow-log
|
||||
+ ret=$?
|
||||
+ if test $ret -ne 0
|
||||
+ then
|
||||
+ echo "/etc/logrotate.d/mariadb failed, probably because" >&2
|
||||
+ echo "the root acount is protected by password." >&2
|
||||
+ echo "See comments in /etc/logrotate.d/mariadb on how to fix this" >&2
|
||||
+ exit $ret
|
||||
+ fi
|
||||
fi
|
||||
endscript
|
||||
}
|
37
mariadb-10.4.12-fix-install-db.patch
Normal file
37
mariadb-10.4.12-fix-install-db.patch
Normal file
@ -0,0 +1,37 @@
|
||||
Index: mariadb-10.4.32/scripts/mysql_install_db.sh
|
||||
===================================================================
|
||||
--- mariadb-10.4.32.orig/scripts/mysql_install_db.sh
|
||||
+++ mariadb-10.4.32/scripts/mysql_install_db.sh
|
||||
@@ -494,20 +494,22 @@ if test -n "$user"
|
||||
then
|
||||
if test -z "$srcdir" -a "$in_rpm" -eq 0 -a -d "$pamtooldir/auth_pam_tool_dir"
|
||||
then
|
||||
- chown 0 "$pamtooldir/auth_pam_tool_dir/auth_pam_tool" && \
|
||||
- chmod 04755 "$pamtooldir/auth_pam_tool_dir/auth_pam_tool"
|
||||
- if test $? -ne 0
|
||||
+ tool_ownership=`stat -c "%U:%G" "$pamtooldir/auth_pam_tool_dir/auth_pam_tool"`
|
||||
+ tool_mode=`stat -c "%a" "$pamtooldir/auth_pam_tool_dir/auth_pam_tool"`
|
||||
+
|
||||
+ if test "$tool_ownership" != "root:root" -o "$tool_mode" != "4755"
|
||||
then
|
||||
- echo "Couldn't set an owner to '$pamtooldir/auth_pam_tool_dir/auth_pam_tool'."
|
||||
- echo "It must be root, the PAM authentication plugin doesn't work otherwise.."
|
||||
+ echo "Permissions/ownership of the '$pamtooldir/auth_pam_tool_dir/auth_pam_tool' file are bad."
|
||||
+ echo "It must be owned by root:root and have mode 4750."
|
||||
echo
|
||||
fi
|
||||
- chown $user "$pamtooldir/auth_pam_tool_dir" && \
|
||||
- chmod 0700 "$pamtooldir/auth_pam_tool_dir"
|
||||
- if test $? -ne 0
|
||||
+
|
||||
+ dir_ownership=`stat -c "%U:%G" "$pamtooldir/auth_pam_tool_dir"`
|
||||
+ dir_mode=`stat -c "%a" "$pamtooldir/auth_pam_tool_dir"`
|
||||
+ if test "$dir_ownership" != "root:mysql" -o "$dir_mode" != "750"
|
||||
then
|
||||
- echo "Cannot change ownership of the '$pamtooldir/auth_pam_tool_dir' directory"
|
||||
- echo "to the '$user' user. Check that you have the necessary permissions and try again."
|
||||
+ echo "Permissions/ownership of the '$pamtooldir/auth_pam_tool_dir' directory are bad."
|
||||
+ echo "It must be owned by root:mysql and have mode 0750, the PAM authentication plugin doesn't work otherwise.."
|
||||
echo
|
||||
fi
|
||||
fi
|
21
mariadb-10.4.12-harden_setuid.patch
Normal file
21
mariadb-10.4.12-harden_setuid.patch
Normal file
@ -0,0 +1,21 @@
|
||||
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
|
||||
const char *service = info->auth_string && info->auth_string[0]
|
||||
? info->auth_string : "mysql";
|
||||
|
||||
+ if( strcmp(service, "mysql") != 0 )
|
||||
+ {
|
||||
+ PAM_DEBUG((stderr, "PAM: rejecting non-standard PAM service %s\n", service));
|
||||
+ return CR_ERROR;
|
||||
+ }
|
||||
+
|
||||
param->ptr = param->buf + 1;
|
||||
|
||||
PAM_DEBUG((stderr, "PAM: pam_start(%s, %s)\n", service, info->user_name));
|
3
mariadb-11.4.2.tar.gz
Normal file
3
mariadb-11.4.2.tar.gz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:8c600e38adb899316c1cb11c68b87979668f4fb9d858000e347e6d8b7abe51b0
|
||||
size 107373265
|
16
mariadb-11.4.2.tar.gz.asc
Normal file
16
mariadb-11.4.2.tar.gz.asc
Normal file
@ -0,0 +1,16 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAABCgAdFiEEF39AEP5WyjM2MAMF8WVvJMdM0dgFAmZV/SQACgkQ8WVvJMdM
|
||||
0di3TBAAg3RLiESHGU1uT29tmVR40UMhnYgvripgWBGkoxbbOOhO92yLkL/gALqN
|
||||
NTqI0lLp2qLTIsdZA8Njdvdk6DnQrRpS3C4p9LOmCAkbTSESP0d8xAopc4w9r5oC
|
||||
9Juw5DmnIeHv/XjR2g1OBK3QwwlFzYJYV1RMCWtjvYloB6pN6XljKfWCHlpUq9z+
|
||||
/fKQ3uZ23qoIo+xpmXYQrDIj4Z/QRd2Lc6pFpinc23qFrd+nN8pHzMo9pbg4X/jT
|
||||
GEKQgqwQw4PYNdG6/ZaYy1KvHuf9+eIfRj/oNHDpSRclkEvt55v1zwt5QI2OfJzr
|
||||
S+9tsW9XMJPr78EeNHLFkvLf3RP35ihFXrITYtEIkuBd4alfj6Yc7MFzvFVZ9jwE
|
||||
5rlvL3/m0sKGZFoJNAnifnPpAB/ix1HgB/re7SGfJhBJxSvvUKgyz8GD0zhgFVnF
|
||||
LcT12yJu01Mq1z4FwAi5hjY3cd4Wdhoq/K5zlTsXMLq3cKpb0YVc/yUA6Tl1wYqS
|
||||
tDWchiC+t5yqmMHib26MSXYWYI2dnmgZc+wPqerDWBO3FGJg3NaD6pyYqUPdggZp
|
||||
SefpXDfqhUkbYIejcty6042Sxmk/M1fVQiI2/r+bi3cYr4+t74u84zWv7fJUDtV9
|
||||
3PRTokdWQ/+f1XOrW+6++e+yFlqUZCdY1G0oQ4O+H01jX6XArNQ=
|
||||
=s19Z
|
||||
-----END PGP SIGNATURE-----
|
25
mariadb-rpmlintrc
Normal file
25
mariadb-rpmlintrc
Normal file
@ -0,0 +1,25 @@
|
||||
# This file contains a list of exceptions for rpmlint checker
|
||||
|
||||
# Zero-length
|
||||
# Some test results can be zero-length files
|
||||
addFilter(r'(zero-length|pem-certificate) /usr/share/mariadb-test/*')
|
||||
|
||||
# Permissions
|
||||
# wsrep_sst_common
|
||||
# It contains a parser of arguments for other sst scripts.
|
||||
# It is meant to be sourced, not to be executed alone.
|
||||
# So it correctly does not have shebang nor executable bit.
|
||||
addFilter(r'non-executable-in-bin /usr/bin/wsrep_sst_common 644')
|
||||
addFilter(r'script-without-shebang /usr/bin/wsrep_sst_common')
|
||||
|
||||
# Support both rpmlint 1.x and 2.x
|
||||
# Wrong location
|
||||
# wsrep_check_version is a wsrep version check utility. Used in testing only.
|
||||
addFilter(r'arch-dependent-file-in-usr-share .* /usr/share/mariadb-test/lib/My/SafeProcess/wsrep_check_version')
|
||||
addFilter(r'arch-dependent-file-in-usr-share /usr/share/mariadb-test/lib/My/SafeProcess/wsrep_check_version')
|
||||
# my_safe_process is an utility that encapsulates process creation, monitoring and cleanup. Used in testing only.
|
||||
addFilter(r'arch-dependent-file-in-usr-share .* /usr/share/mariadb-test/lib/My/SafeProcess/my_safe_process')
|
||||
addFilter(r'arch-dependent-file-in-usr-share /usr/share/mariadb-test/lib/My/SafeProcess/my_safe_process')
|
||||
# pam_mariadb_mtr.so is a pam module to test pam authentication plugin. Used in pam.test only.
|
||||
addFilter(r'arch-dependent-file-in-usr-share .* /usr/share/mariadb-test/suite/plugins/pam/pam_mariadb_mtr.so')
|
||||
addFilter(r'arch-dependent-file-in-usr-share /usr/share/mariadb-test/suite/plugins/pam/pam_mariadb_mtr.so')
|
4327
mariadb.changes
Normal file
4327
mariadb.changes
Normal file
File diff suppressed because it is too large
Load Diff
51
mariadb.keyring
Normal file
51
mariadb.keyring
Normal file
@ -0,0 +1,51 @@
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
mQINBFb8EKsBEADwGmleOSVThrbCyCVUdCreMTKpmD5p5aPz/0jc66050MAb71Hv
|
||||
TVcfuMqHYO8O66qXLpEdqZpuk4D+rw1oKyC+d8uPD2PSHRqBXnR0Qf+LVTZvtO92
|
||||
3R7pYnC2x6V6iVGpKQYFP8cwh2B1qgIa+9y/N8cQIqfD+0ghyiUjjTYek3YFBnqa
|
||||
L/2h2V0Mt0DkBrDK80LqEY10PAFDfJjINAW9XNHZzi2KqUx5w1z8rItokXV6fYE5
|
||||
ItyGMR6WVajJg5D4VCiZd0ymuQP2bGkrRbl6FH5vofVSkahKMJeHs2lbvMvNyS3c
|
||||
n8vxoBvbbcwSAV1gvB1uzXXxv0kdkFZjhU1Tss4+Dak8qeEmIrC5qYycLxIdVEhT
|
||||
Z8N8+P7Dll+QGOZKu9+OzhQ+byzpLFhUHKys53eXo/HrfWtw3DdP21yyb5P3QcgF
|
||||
scxfZHzZtFNUL6XaVnauZM2lqquUW+lMNdKKGCBJ6co4QxjocsxfISyarcFj6ZR0
|
||||
5Hf6VU3Y7AyuFZdL0SQWPv9BSu/swBOimrSiiVHbtE49Nx1x/d1wn1peYl07WRUv
|
||||
C10eF36ZoqEuSGmDz59mWlwB3daIYAsAAiBwgcmN7aSB8XD4ZPUVSEZvwSm/IwuS
|
||||
Rkpde+kIhTLjyv5bRGqU2P/Mi56dB4VFmMJaF26CiRXatxhXOAIAF9dXCwARAQAB
|
||||
tC1NYXJpYURCIFNpZ25pbmcgS2V5IDxzaWduaW5nLWtleUBtYXJpYWRiLm9yZz6J
|
||||
AjgEEwEIACIFAlb8EKsCGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEPFl
|
||||
byTHTNHYJZ0P/2Z2RURRkSTHLKZ/GqSvPReReeB7AI+ZrDapkpG/26xp1Yw1isCO
|
||||
y99pvQ7hjTFhdZQ7xSRUiT/e27wJxR7s4G/ck5VOVjuJzGnByNLmwMjdN1ONIO9P
|
||||
hQAs2iF3uoIbVTxzXof2F8C0WSbKgEWbtqlCWlaapDpN8jKAWdsQsNMdXcdpJ2os
|
||||
WiacQRxLREBGjVRkAiqdjYkegQ4BZ0GtPULKjZWCUNkaat51b7O7V19nSy/T7MM7
|
||||
n+kqYQLMIHCF8LGd3QQsNppRnolWVRzXMdtR2+9iI21qv6gtHcMiAg6QcKA7halL
|
||||
kCdIS2nWR8g7nZeZjq5XhckeNGrGX/3w/m/lwczYjMUer+qs2ww5expZJ7qhtSta
|
||||
lE3EtL/l7zE4RlknqwDZ0IXtxCNPu2UovCzZmdZm8UWfMSKk/3VgL8HgzYRr8fo0
|
||||
yj0XkckJ7snXvuhoviW2tjm46PyHPWRKgW4iEzUrB+hiXpy3ikt4rLRg/iMqKjyf
|
||||
mvcE/VdmFVtsfbfRVvlaWiIWCndRTVBkAaTu8DwrGyugQsbjEcK+4E25/SaKIJIw
|
||||
qfxpyBVhru21ypgEMAw1Y8KC7KntB7jzpFotE4wpv1jZKUZuy71ofr7g3/2O+7nW
|
||||
LrR1mncbuT6yXo316r56dfKzOxQJBnYFwTjXfa65yBArjQBUCPNYOKr0uQINBFb8
|
||||
EKsBEADDfCMsu2U1CdJhr4xp6z4J89/tMnpCQASC8DQhtZ6bWG/ksyKt2DnDQ050
|
||||
XBEng+7epzHWA2UgT0liY05zZmFs1X7QeZr16B7JANq6fnHOdZB0ThS7JEYbProk
|
||||
MxcqAFLAZJCpZT534GpzW7qHwzjV+d13IziCHdi6+DD5eavYzBqY8QzjlOXbmIlY
|
||||
7dJUCwXTECUfirc6kH86CS8fXZTke4QYZ55VnrOomB4QGqP371kwBETnhlhi74+p
|
||||
vi3jW05Z5x1tVMwuugyzzkseZp1VYmJq5SHNFZ/pnAQLE9gUDTb6UWcPBwQh9Sw+
|
||||
7ahSK74lJKYm3wktyvZhzAxbNyzs1M56yeFP6uFwJTBfNByyMAa6TGUhNkxlLcYj
|
||||
xKbVmoAnKCVM8t41TlLv/a0ki8iQxqvphVLufksR9IpN6d3F15j6GeyVtxBEv04i
|
||||
v4vbuKthWytb+gjX4bI8CAo9jGHevmtdiw/SbeKx2YBM1MF6eua37rFMooOBj4X7
|
||||
VfQCyS+crNsOQn8nJGahYbzUDCCgnX+pqN9iZvXisMS79wVyD5DyISFDvT/5jY7I
|
||||
XxPibxr10P/8lfW1d72uxyI2UiZKZpyHCt4k47yMq4KQGLGuhxJ6q6O3bi2aXRuz
|
||||
8bLqTBLca9dmx9wZFvRh6jS/SKEg7eFcY0xbb6RVIv1UwGDYfQARAQABiQIfBBgB
|
||||
CAAJBQJW/BCrAhsMAAoJEPFlbyTHTNHYEBIQAJhFTh1u34Q+5bnfiM2dAdCr6T6w
|
||||
4Y1v9ePiIYdSImeseJS2yRglpLcMjW0uEA9KXiRtC/Nm/ClnqYJzCKeIaweHqH6d
|
||||
IgJKaXZFt1Uaia7X9tDDwqALGu97irUrrV1Kh9IkM0J29Vid5amakrdS4mwt2uEI
|
||||
SSnCi7pfVoEro+S7tYQ9iH6APVIwqWvcaty3cANdwKWfUQZ6a9IQ08xqzaMhMp2V
|
||||
zhVrWkq3B0j2aRoZR7BNLH2I7Z0giIM8ARjZs99aTRL+SfMEQ3sUxNLb3KWP/n1l
|
||||
SFbrk4HGzqUBBfczESlNc0970C6znK0H0HD11/3BTkMuPqww+Tzex4dpMQllMEKZ
|
||||
3wEyd9v6ba+nj/P1FHSEy/VN6IXzd82s1lYOonKTdmXAIROcHnb0QUzwsd/mhB3j
|
||||
KhEDOV2ZcBTD3yHv8m7C9G9y4hV+7yQlnPlSg3DjBp3SS5r+sOObCIy2Ad32upoX
|
||||
kilWa9g7GZSuhY9kyKqeEba1lgXXaQykEeqx0pexkWavNnb9JaPrAZHDjUGcXrRE
|
||||
mjEyXyElRoD4CrWXySe46jCuNhVVlkLGo7osefynXa/+PNjQjURtx8en7M9A1FkQ
|
||||
uRAxE8KIZgZzYxkGl5o5POSFCA4JUoRPDcrl/sI3fuq2dIOE/BJ2r8dV+LddiR+i
|
||||
ukhXRwJXH8RVVEUS
|
||||
=ihRo
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
71
mariadb.service.in
Normal file
71
mariadb.service.in
Normal file
@ -0,0 +1,71 @@
|
||||
# It's not recommended to modify this unit file because your changes
|
||||
# would be overwritten during the package update.
|
||||
#
|
||||
# However, there are 2 methods how to customize this unit file:
|
||||
#
|
||||
# 1) Copy this unit file from /usr/lib/systemd/system to
|
||||
# /etc/systemd/system and modify the chosen settings.
|
||||
#
|
||||
# 2) Create a directory named mariadb.service.d/ within /etc/systemd/system
|
||||
# and place a drop-in file name.conf there that only changes the specific
|
||||
# settings one is interested in.
|
||||
#
|
||||
# see systemd.unit(5) for details
|
||||
#
|
||||
# Example - increasing of the TimeoutSec= limit
|
||||
# mkdir /etc/systemd/system/mariadb.service.d
|
||||
# cat > /etc/systemd/system/mariadb.service.d/timeout.conf << EOF
|
||||
# [Service]
|
||||
# TimeoutSec=600
|
||||
# EOF
|
||||
|
||||
[Unit]
|
||||
Description=MariaDB database server
|
||||
Documentation=man:mysqld(8)
|
||||
Documentation=https://mariadb.com/kb/en/library/systemd/
|
||||
Conflicts=mariadb.target
|
||||
After=network.target time-sync.target
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
Alias=mysql.service
|
||||
|
||||
[Service]
|
||||
ExecStartPre=@LIBEXECDIR@/mysql/mysql-systemd-helper install
|
||||
ExecStartPre=@LIBEXECDIR@/mysql/mysql-systemd-helper upgrade
|
||||
ExecStart=@LIBEXECDIR@/mysql/mysql-systemd-helper start
|
||||
|
||||
Type=notify
|
||||
User=mysql
|
||||
Group=mysql
|
||||
|
||||
KillSignal=SIGTERM
|
||||
|
||||
# Don't want to see an automated SIGKILL ever
|
||||
SendSIGKILL=no
|
||||
|
||||
# Restart crashed server only, on-failure would also restart, for example, when
|
||||
# my.cnf contains unknown option
|
||||
Restart=on-abort
|
||||
RestartSec=5s
|
||||
|
||||
# Configures the time to wait for start-up/stop
|
||||
TimeoutSec=300
|
||||
|
||||
# CAP_IPC_LOCK To allow memlock to be used as non-root user
|
||||
# CAP_DAC_OVERRIDE To allow auth_pam_tool (which is SUID root) to read /etc/shadow when it's chmod 0
|
||||
# does nothing for non-root, not needed if /etc/shadow is u+r
|
||||
# CAP_AUDIT_WRITE auth_pam_tool needs it on Debian for whatever reason
|
||||
CapabilityBoundingSet=CAP_IPC_LOCK CAP_DAC_OVERRIDE CAP_AUDIT_WRITE
|
||||
|
||||
# Prevent writes to /usr, /boot, and /etc
|
||||
ProtectSystem=full
|
||||
|
||||
# Prevent accessing /home, /root and /run/user
|
||||
ProtectHome=true
|
||||
|
||||
# Execute pre and post scripts as root, otherwise it does it as User=
|
||||
PermissionsStartOnly=true
|
||||
|
||||
UMask=007
|
||||
|
949
mariadb.spec
Normal file
949
mariadb.spec
Normal file
@ -0,0 +1,949 @@
|
||||
#
|
||||
# spec file for package mariadb
|
||||
#
|
||||
# Copyright (c) 2023 SUSE LLC
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
# upon. The license for this file, and modifications and additions to the
|
||||
# file, is the same license as for the pristine package itself (unless the
|
||||
# license for the pristine package is not an Open Source License, in which
|
||||
# case the license is the MIT License). An "Open Source License" is a
|
||||
# license that conforms to the Open Source Definition (Version 1.9)
|
||||
# published by the Open Source Initiative.
|
||||
|
||||
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||||
#
|
||||
|
||||
|
||||
# libmariadbd soname (embedded library)
|
||||
%define soname 19
|
||||
# Set this to 1 to run regression test suite (it takes a long time)
|
||||
%define run_testsuite 1
|
||||
# Set this to 1 for testing purposes (run all regression tests but ignore
|
||||
# failures). Set this to 0 for production usage (skip tests in the
|
||||
# unstable-tests list (contains also suse_skipped_tests.list) and don't
|
||||
# ignore failures
|
||||
%define ignore_testsuite_result 0
|
||||
%define with_oqgraph 1
|
||||
# Mroonga and RocksDB are available only for x86_64 architecture
|
||||
# see https://mariadb.com/kb/en/mariadb/about-mroonga/ and
|
||||
# https://mariadb.com/kb/en/library/myrocks-supported-platforms/
|
||||
%ifarch x86_64
|
||||
%define with_mroonga 1
|
||||
%define with_rocksdb 1
|
||||
%else
|
||||
%define with_mroonga 0
|
||||
%define with_rocksdb 0
|
||||
%endif
|
||||
# Build galera on SLE. Galera requires mariadb >= 10.5, so only
|
||||
# build it on SLE15SP3 onwards
|
||||
%if 0%{?is_opensuse} || 0%{?sle_version} >= 150300
|
||||
%bcond_without galera
|
||||
%else
|
||||
%bcond_with galera
|
||||
%endif
|
||||
# Define python interpreter version
|
||||
%if 0%{?suse_version} >= 1500
|
||||
%define python_path %{_bindir}/python3
|
||||
%else
|
||||
%define python_path %{_bindir}/python2
|
||||
%endif
|
||||
# Build with cracklib plugin when cracklib-dict-full >= 2.9.0 is available
|
||||
%define with_cracklib_plugin 0
|
||||
Name: mariadb
|
||||
Version: 11.4.2
|
||||
Release: 0
|
||||
Summary: Server part of MariaDB
|
||||
License: SUSE-GPL-2.0-with-FLOSS-exception
|
||||
Group: Productivity/Databases/Servers
|
||||
URL: https://www.mariadb.org
|
||||
Source: https://downloads.mariadb.com/MariaDB/%{name}-%{version}/source/%{name}-%{version}.tar.gz
|
||||
Source1: https://downloads.mariadb.com/MariaDB/%{name}-%{version}/source/%{name}-%{version}.tar.gz.asc
|
||||
Source2: %{name}.keyring
|
||||
Source4: README.debug
|
||||
Source5: suse-test-run
|
||||
Source7: README.install
|
||||
Source12: mysql-user.conf
|
||||
Source14: my.ini
|
||||
Source15: mariadb.service.in
|
||||
Source16: mariadb.target
|
||||
Source17: mysql-systemd-helper
|
||||
Source18: mariadb@.service.in
|
||||
Source19: macros.mariadb-test
|
||||
Source50: suse_skipped_tests.list
|
||||
Source51: mariadb-rpmlintrc
|
||||
Source52: series
|
||||
Patch1: mariadb-10.2.4-logrotate.patch
|
||||
Patch4: mariadb-10.2.4-fortify-and-O.patch
|
||||
Patch6: mariadb-10.4.12-harden_setuid.patch
|
||||
Patch7: mariadb-10.4.12-fix-install-db.patch
|
||||
Patch10: fix-pamdir.patch
|
||||
Patch11: gcc13-fix.patch
|
||||
# needed for bison SQL parser and wsrep API
|
||||
BuildRequires: bison
|
||||
BuildRequires: cmake
|
||||
BuildRequires: dos2unix
|
||||
BuildRequires: fdupes
|
||||
BuildRequires: gcc-c++
|
||||
# GSSAPI
|
||||
BuildRequires: krb5-devel
|
||||
# embedded server libmariadbd
|
||||
BuildRequires: libaio-devel
|
||||
# mariabackup tool
|
||||
BuildRequires: libarchive-devel
|
||||
BuildRequires: libbz2-devel
|
||||
# commands history feature
|
||||
BuildRequires: libedit-devel
|
||||
BuildRequires: libevent-devel
|
||||
BuildRequires: liblz4-devel
|
||||
BuildRequires: libtool
|
||||
BuildRequires: libxml2-devel
|
||||
# CLI graphic and wsrep API
|
||||
BuildRequires: ncurses-devel
|
||||
BuildRequires: openssl-devel
|
||||
# auth_pam.so plugin
|
||||
BuildRequires: pam-devel
|
||||
# MariaDB requires a specific version of pcre. Provide MariaDB with
|
||||
# "BuildRequires: pcre-devel" and it automatically decides if the version is
|
||||
# ok or not. If not, it uses bundled pcre.
|
||||
BuildRequires: pcre2-devel
|
||||
BuildRequires: pkgconfig
|
||||
BuildRequires: procps
|
||||
# Some tests and myrocks_hotbackup script need python3
|
||||
BuildRequires: python3
|
||||
BuildRequires: sqlite
|
||||
BuildRequires: sysuser-tools
|
||||
BuildRequires: tcpd-devel
|
||||
# Tests requires time and ps and some perl modules
|
||||
# Keep in sync with Requires of mysql-testsuite
|
||||
BuildRequires: time
|
||||
BuildRequires: unixODBC-devel
|
||||
BuildRequires: zlib-devel
|
||||
BuildRequires: perl(Data::Dumper)
|
||||
BuildRequires: perl(Env)
|
||||
BuildRequires: perl(Exporter)
|
||||
BuildRequires: perl(Fcntl)
|
||||
BuildRequires: perl(File::Temp)
|
||||
BuildRequires: perl(Getopt::Long)
|
||||
BuildRequires: perl(IPC::Open3)
|
||||
BuildRequires: perl(Memoize)
|
||||
BuildRequires: perl(Socket)
|
||||
BuildRequires: perl(Symbol)
|
||||
BuildRequires: perl(Sys::Hostname)
|
||||
BuildRequires: perl(Test::More)
|
||||
BuildRequires: perl(Time::HiRes)
|
||||
# Do not ever switch away from BuildRequires: pkgconfig(libsystemd); BuildRequires systemd/systemd-devel causes build cycles
|
||||
BuildRequires: pkgconfig(libsystemd)
|
||||
BuildRequires: pkgconfig(fmt) < 10
|
||||
#!BuildIgnore: user(mysql)
|
||||
# Required by rcmysql
|
||||
Requires: %{name}-client
|
||||
Requires: %{name}-errormessages = %{version}
|
||||
# Requires /bin/hostname because otherwise we have a conflict on Leap (bsc#1009905).
|
||||
# It can be switched back to plain "hostname" when this bug is resolved
|
||||
Requires: /bin/hostname
|
||||
Requires: perl-base
|
||||
# myrocks_hotbackup needs MySQLdb - if we want to use it under python3, we need python3-mysqlclient
|
||||
Requires: python3-mysqlclient
|
||||
Requires: user(mysql)
|
||||
Requires(post): permissions
|
||||
# Require mysql user
|
||||
Requires(pre): user(mysql)
|
||||
Recommends: logrotate
|
||||
Conflicts: mariadb-server
|
||||
Conflicts: mysql
|
||||
Conflicts: mysql-debug
|
||||
Conflicts: mysql-server
|
||||
# Compatibility with Fedora/CentOS
|
||||
Provides: mariadb-server = %{version}
|
||||
Provides: mysql-server = %{version}
|
||||
# Compatibility with old version
|
||||
Provides: %{name}-debug-version = %{version}
|
||||
Obsoletes: %{name}-debug-version < %{version}
|
||||
Provides: %{name}-debug = %{version}
|
||||
Obsoletes: %{name}-debug < %{version}
|
||||
Provides: mysql = %{version}
|
||||
Obsoletes: mysql < %{version}
|
||||
Provides: mysql-debug = %{version}
|
||||
Obsoletes: mysql-debug < %{version}
|
||||
%if 0%{?suse_version} < 1500
|
||||
# Explicit requires of systemd is not needed anymore and
|
||||
# creates a problem for containers
|
||||
%{?systemd_requires}
|
||||
%endif
|
||||
# Do not BuildRequires lzo for i586 and arm
|
||||
# https://lists.launchpad.net/maria-discuss/msg04639.html
|
||||
%ifnarch i586 %{arm}
|
||||
BuildRequires: lzo-devel
|
||||
%endif
|
||||
# boost and Judy are required for oograph
|
||||
%if 0%{with_oqgraph} > 0
|
||||
BuildRequires: judy-devel
|
||||
%if 0%{?suse_version} > 1315
|
||||
BuildRequires: libboost_headers-devel
|
||||
%else
|
||||
BuildRequires: boost-devel
|
||||
%endif
|
||||
%endif
|
||||
|
||||
%description
|
||||
MariaDB is an open-source, multi-threaded, relational database management
|
||||
system. It's a backward compatible, drop-in replacement branch of the
|
||||
MySQL Community Server.
|
||||
|
||||
This package only contains the server-side programs.
|
||||
|
||||
%package -n libmariadbd%{soname}
|
||||
Summary: MariaDB embedded server library
|
||||
Group: System/Libraries
|
||||
Requires: %{name}-errormessages >= %{version}
|
||||
Provides: libmysqld = %{version}-%{release}
|
||||
Obsoletes: libmysqld < %{version}-%{release}
|
||||
|
||||
%description -n libmariadbd%{soname}
|
||||
This package contains MariaDB library that allows to run an embedded
|
||||
MariaDB server inside a client application.
|
||||
|
||||
%package -n libmariadbd-devel
|
||||
Summary: MariaDB embedded server development files
|
||||
Group: Development/Libraries/C and C++
|
||||
Requires: libaio-devel
|
||||
# The headers files are the shared
|
||||
Requires: libmariadb-devel >= 3.0
|
||||
Requires: libmariadbd%{soname} = %{version}
|
||||
Requires: tcpd-devel
|
||||
Provides: libmysqld-devel = %{version}-%{release}
|
||||
Obsoletes: libmysqld-devel < %{version}-%{release}
|
||||
|
||||
%description -n libmariadbd-devel
|
||||
This package contains the development header files and libraries
|
||||
for developing applications that embed the MariaDB.
|
||||
|
||||
%package rpm-macros
|
||||
Summary: MariaDB RPM macros
|
||||
Requires: %{name}
|
||||
|
||||
%description rpm-macros
|
||||
Provides macros usable in rpm spec files.
|
||||
|
||||
%package client
|
||||
Summary: Client for MariaDB
|
||||
Group: Productivity/Databases/Clients
|
||||
Requires: %{name}-errormessages = %{version}
|
||||
# Explicit requires to pull in charsets for errormessages
|
||||
Requires: libmariadb3 >= 3.0
|
||||
Conflicts: mysql-client
|
||||
Provides: mysql-client = %{version}
|
||||
Obsoletes: mysql-client < %{version}
|
||||
%sysusers_requires
|
||||
|
||||
%description client
|
||||
This package contains the standard clients for MariaDB.
|
||||
|
||||
%if %{with galera}
|
||||
%package galera
|
||||
Summary: The configuration files and scripts for galera replication
|
||||
Group: Productivity/Databases/Tools
|
||||
Requires: %{name} = %{version}
|
||||
Requires: galera-4
|
||||
Requires: iproute2
|
||||
Requires: lsof
|
||||
Requires: rsync
|
||||
Requires: socat
|
||||
Requires: which
|
||||
|
||||
%description galera
|
||||
This package contains configuration files and scripts that are
|
||||
needed for running MariaDB Galera Cluster.
|
||||
%endif
|
||||
|
||||
%package errormessages
|
||||
Summary: The error messages files required by server, client and libmariadbd
|
||||
Group: System/Localization
|
||||
BuildArch: noarch
|
||||
|
||||
%description errormessages
|
||||
This package provides translated error messages for the standalone
|
||||
server daemon, embedded server and client.
|
||||
|
||||
%package bench
|
||||
Summary: Benchmarks for MariaDB
|
||||
Group: Productivity/Databases/Tools
|
||||
Requires: %{name}-client
|
||||
Requires: perl-DBD-mysql
|
||||
Conflicts: mysql-bench
|
||||
Provides: mysql-bench = %{version}
|
||||
Obsoletes: mysql-bench < %{version}
|
||||
|
||||
%description bench
|
||||
This package contains benchmark scripts and data for MariaDB.
|
||||
|
||||
To run these database benchmarks, start the script "run-all-tests" in
|
||||
the directory %{_datadir}/sql-bench after starting MariaDB.
|
||||
|
||||
%package test
|
||||
Summary: Testsuite for MariaDB
|
||||
Group: Productivity/Databases/Servers
|
||||
Requires: %{name} = %{version}
|
||||
Requires: %{name}-bench = %{version}
|
||||
Requires: %{name}-client = %{version}
|
||||
Requires: %{name}-tools = %{version}
|
||||
# Requires libmariadb_plugins in order to test client plugins successfuly
|
||||
Requires: libmariadb_plugins >= 3.0
|
||||
Requires: perl-DBD-mysql
|
||||
Requires: procps
|
||||
Requires: time
|
||||
# Tests requires time and ps and some perl modules
|
||||
Requires: perl(Data::Dumper)
|
||||
Requires: perl(Env)
|
||||
Requires: perl(Exporter)
|
||||
Requires: perl(Fcntl)
|
||||
Requires: perl(File::Temp)
|
||||
Requires: perl(Getopt::Long)
|
||||
Requires: perl(IPC::Open3)
|
||||
Requires: perl(Memoize)
|
||||
Requires: perl(Socket)
|
||||
Requires: perl(Symbol)
|
||||
Requires: perl(Sys::Hostname)
|
||||
Requires: perl(Test::More)
|
||||
Requires: perl(Time::HiRes)
|
||||
Conflicts: mysql-test
|
||||
Provides: mysql-test = %{version}
|
||||
Obsoletes: mysql-test < %{version}
|
||||
|
||||
%description test
|
||||
This package contains the test scripts and data for MariaDB.
|
||||
|
||||
To run the testsuite, run %{_datadir}/%{name}-test/suse-test-run.
|
||||
|
||||
%package tools
|
||||
Summary: MariaDB tools
|
||||
Group: Productivity/Databases/Servers
|
||||
Requires: perl-DBD-mysql
|
||||
Conflicts: mysql-tools
|
||||
# make sure this package is installed when updating from 10.2 and older
|
||||
Provides: mysql-client:%{_bindir}/perror
|
||||
Provides: mysql-tools = %{version}
|
||||
Provides: mysql:%{_bindir}/mysqlhotcopy
|
||||
Obsoletes: mysql-tools < %{version}
|
||||
|
||||
%description tools
|
||||
A set of scripts for administering a MariaDB or developing
|
||||
applications with MariaDB.
|
||||
|
||||
%if 0%{with_cracklib_plugin} > 0
|
||||
%package cracklib-password-check
|
||||
Summary: The password strength checking plugin
|
||||
BuildRequires: cracklib-devel >= 2.9.0
|
||||
BuildRequires: cracklib-dict-small >= 2.9.0
|
||||
Requires: %{name} = %{version}
|
||||
Requires: cracklib-dict-small >= 2.9.0
|
||||
|
||||
%description cracklib-password-check
|
||||
cracklib_password_check is a password validation plugin. It uses the CrackLib
|
||||
library to check the strength of new passwords. CrackLib is installed by default
|
||||
in many Linux distributions, since the system's PAM authentication framework is
|
||||
usually configured to check the strength of new passwords with the pam_cracklib
|
||||
PAM module.
|
||||
%endif
|
||||
|
||||
%prep
|
||||
%setup -q
|
||||
# Remove JAR files from the tarball (used for testing from the source)
|
||||
find . -name "*.jar" -type f -exec rm --verbose -f {} \;
|
||||
%patch -P 1
|
||||
%patch -P 4
|
||||
%patch -P 6 -p1
|
||||
%patch -P 7 -p1
|
||||
# usrmerge has only been applied to TW
|
||||
%if 0%{?suse_version} > 1500
|
||||
%patch -P 10 -p1
|
||||
%endif
|
||||
%patch -P 11 -p1
|
||||
|
||||
cp %{_sourcedir}/suse-test-run .
|
||||
|
||||
# Remove unneeded manpages ('make install' basically installs everything under
|
||||
# man/*)
|
||||
rm -f man/mysqlman.1 # dummy fallback manpage
|
||||
[ \! -f man/CMakeLists.txt ] || sed -i 's|mysqlman.1||' man/CMakeLists.txt
|
||||
rm -f man/mysql.server.1 # init script, not installed in our rpm
|
||||
[ \! -f man/CMakeLists.txt ] || sed -i 's|mysql.server.1||' man/CMakeLists.txt
|
||||
rm -f man/make_win_*.1 # windows build scripts
|
||||
rm -f man/comp_err.1 # built-time utility
|
||||
|
||||
# Breaks VPATH builds when in sourcedir, is generated in the builddirs
|
||||
rm -f sql/sql_builtin.cc
|
||||
|
||||
# Broken test that needs sources
|
||||
rm -f %{name}-test/t/file_contents.test %{name}-test/r/file_contents.result
|
||||
|
||||
# Specify perl path on shebangs
|
||||
for i in `grep -Rl '^#!%{_bindir}/env perl$' .`; do
|
||||
sed -i 's|%{_bindir}/env perl|%{_bindir}/perl|' $i
|
||||
done
|
||||
|
||||
# Add our list of tests that fail (correctly or temporarily) to the list of such
|
||||
# tests created by upstream
|
||||
cat %{SOURCE50} | tee -a mysql-test/unstable-tests
|
||||
|
||||
%build
|
||||
%global _lto_cflags %{_lto_cflags} -ffat-lto-objects
|
||||
EXTRA_FLAGS="-Wno-unused-but-set-variable -fno-strict-aliasing -Wno-unused-parameter"
|
||||
# Mariadb devs seems to fall in love with -Werror option
|
||||
EXTRA_FLAGS="${EXTRA_FLAGS} -Wno-error"
|
||||
export CFLAGS="%{optflags} -DOPENSSL_LOAD_CONF -DPIC -fPIC -DFORCE_INIT_OF_VARS $EXTRA_FLAGS"
|
||||
export CXXFLAGS="$CFLAGS -felide-constructors"
|
||||
%cmake -DWITH_SSL=system \
|
||||
-DWITH_LIBWRAP=ON \
|
||||
-DENABLED_PROFILING=ON \
|
||||
-DENABLE_DEBUG_SYNC=OFF \
|
||||
-DWITH_PIC=ON \
|
||||
-DWITH_ZLIB=system \
|
||||
-DWITH_LIBEVENT=system \
|
||||
-DWITH_JEMALLOC=no \
|
||||
-DWITH_READLINE=0 \
|
||||
-DWITH_LIBEDIT=0 \
|
||||
-DWITH_EDITLINE=system \
|
||||
-DINSTALL_LAYOUT=RPM \
|
||||
-DWITH_LZ4=system \
|
||||
-DMYSQL_UNIX_ADDR="%{_rundir}/mysql/mysql.sock" \
|
||||
-DINSTALL_UNIX_ADDRDIR="%{_rundir}/mysql/mysql.sock" \
|
||||
-DINSTALL_MYSQLSHAREDIR=share/%{name} \
|
||||
-DWITH_COMMENT="MariaDB rpm" \
|
||||
-DWITH_EXTRA_CHARSET=all \
|
||||
-DDEFAULT_CHARSET=utf8mb4 \
|
||||
-DDEFAULT_COLLATION=utf8mb4_unicode_520_ci \
|
||||
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
|
||||
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
|
||||
%if 0%{with_oqgraph} < 1
|
||||
-DPLUGIN_OQGRAPH=NO \
|
||||
%endif
|
||||
%if 0%{with_mroonga} < 1
|
||||
-DPLUGIN_MROONGA=NO \
|
||||
%endif
|
||||
%if 0%{with_rocksdb} < 1
|
||||
-DPLUGIN_ROCKSDB=NO \
|
||||
%endif
|
||||
-DPYTHON_SHEBANG=%{python_path} \
|
||||
-DWITH_XTRADB_STORAGE_ENGINE=1 \
|
||||
-DWITH_CSV_STORAGE_ENGINE=1 \
|
||||
-DWITH_HANDLERSOCKET_STORAGE_ENGINE=1 \
|
||||
-DWITH_INNODB_MEMCACHED=ON \
|
||||
-DWITH_EMBEDDED_SERVER=true \
|
||||
%if %{with galera}
|
||||
-DWITH_WSREP=ON \
|
||||
-DWITH_INNODB_DISALLOW_WRITES=1 \
|
||||
%endif
|
||||
-DWITH_LIBARCHIVE=ON \
|
||||
-DWITH_MARIABACKUP=ON \
|
||||
-DCOMPILATION_COMMENT="MariaDB package" \
|
||||
-DDENABLE_DOWNLOADS=false \
|
||||
-DINSTALL_PLUGINDIR_RPM="%{_lib}/mysql/plugin" \
|
||||
-DINSTALL_LIBDIR_RPM="%{_lib}" \
|
||||
-DINSTALL_SYSCONF2DIR="%{_sysconfdir}/my.cnf.d" \
|
||||
-DCMAKE_C_FLAGS_RELWITHDEBINFO="$CFLAGS" \
|
||||
-DCMAKE_CXX_FLAGS_RELWITHDEBINFO="$CXXFLAGS" \
|
||||
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
||||
-DINSTALL_SQLBENCHDIR=share \
|
||||
-DCMAKE_C_FLAGS="$CFLAGS" \
|
||||
-DCMAKE_CXX_FLAGS="$CXXFLAGS" \
|
||||
-DCMAKE_EXE_LINKER_FLAGS="-Wl,--as-needed -pie -Wl,-z,relro,-z,now -Wl,-Bsymbolic -Wl,-Bsymbolic-functions" \
|
||||
-DCMAKE_MODULE_LINKER_FLAGS="-Wl,--as-needed -pie -Wl,-z,relro,-z,now -Wl,-Bsymbolic -Wl,-Bsymbolic-functions" \
|
||||
-DCMAKE_SHARED_LINKER_FLAGS="-Wl,--as-needed -pie -Wl,-z,relro,-z,now -Wl,-Bsymbolic -Wl,-Bsymbolic-functions" \
|
||||
-DCMAKE_SKIP_RPATH=OFF \
|
||||
-DCMAKE_SKIP_INSTALL_RPATH=ON \
|
||||
-Wno-dev "$@" ..
|
||||
%make_build
|
||||
nm --numeric-sort sql/mysqld > sql/mysqld.sym
|
||||
cd ..
|
||||
%sysusers_generate_pre %{SOURCE12} mysql mysql-user.conf
|
||||
|
||||
%install
|
||||
# Helper function to generate filelist for binaries and their manpages
|
||||
filelist()
|
||||
{
|
||||
echo '%%defattr(-, root, root)'
|
||||
pushd %{buildroot} >/dev/null
|
||||
for i; do
|
||||
if test -e usr/sbin/"$i"; then
|
||||
echo %{_sbindir}/"$i"
|
||||
fi
|
||||
if test -e usr/bin/"$i"; then
|
||||
echo %{_bindir}/"$i"
|
||||
fi
|
||||
if test -d usr/share/*/"$i"; then
|
||||
echo "/`echo usr/share/*/"$i"`"
|
||||
fi
|
||||
if test -n "`ls -1 %{buildroot}$i 2> /dev/null`"; then
|
||||
echo "$i"
|
||||
fi
|
||||
if ls usr/share/man/*/"$i".[1-9]* >/dev/null 2>&1; then
|
||||
echo "%{_mandir}/*/$i.[1-9]*"
|
||||
fi
|
||||
done
|
||||
popd >/dev/null
|
||||
}
|
||||
|
||||
filelist_excludes()
|
||||
{
|
||||
echo '%%defattr(-, root, root)'
|
||||
pushd %{buildroot} >/dev/null
|
||||
for i; do
|
||||
if test -e usr/sbin/"$i"; then
|
||||
echo "%exclude %{_sbindir}/$i"
|
||||
fi
|
||||
if test -e usr/bin/"$i"; then
|
||||
echo "%exclude %{_bindir}/$i"
|
||||
fi
|
||||
if test -d usr/share/*/"$i"; then
|
||||
echo "%exclude /$(echo usr/share/*/"$i")"
|
||||
fi
|
||||
if test -n "$(ls -1 %{buildroot}$i 2> /dev/null)"; then
|
||||
echo "%exclude $i"
|
||||
fi
|
||||
if ls usr/share/man/*/"$i".[1-9]* >/dev/null 2>&1; then
|
||||
echo "%exclude %{_mandir}/*/$i.[1-9]*"
|
||||
fi
|
||||
done
|
||||
popd >/dev/null
|
||||
}
|
||||
|
||||
# Install the package itself
|
||||
%cmake_install benchdir_root=%{_datadir}/
|
||||
|
||||
# Create log directory with the expected perms of mysql
|
||||
install -d -m 700 %{buildroot}%{_localstatedir}/log/mysql/
|
||||
|
||||
# Symbols from build to go into libdir
|
||||
install -m 644 build/sql/mysqld.sym %{buildroot}%{_libdir}/mysql/mysqld.sym
|
||||
|
||||
# INFO_SRC binary
|
||||
install -p -m 644 build/Docs/INFO_SRC %{buildroot}%{_libdir}/mysql/
|
||||
|
||||
# Remove static libs (FIXME: don't build them at all...)
|
||||
rm %{buildroot}%{_libdir}/*.a
|
||||
|
||||
# Remove unused stuff
|
||||
rm -f %{buildroot}%{_datadir}/mysql/{errmsg-utf8.txt,mysql-log-rotate}
|
||||
rm -f %{buildroot}%{_libdir}/mysql/plugin/daemon_example.ini
|
||||
# binary-configure creates the MySQL system tables and starts the server (not used)
|
||||
rm -f %{buildroot}%{_datadir}/%{name}/binary-configure
|
||||
# FS files first-bytes recoginiton (not updated by upstream since nobody realy use that)
|
||||
rm -f %{buildroot}%{_datadir}/%{name}/magic
|
||||
# Upstream ships them because of MDEV-10797 (we don't need them as we use our own systemd scripts)
|
||||
rm -f %{buildroot}%{_datadir}/%{name}/mysql.server
|
||||
rm -f %{buildroot}%{_datadir}/%{name}/mysqld_multi.server
|
||||
# upstream installs links for mysql
|
||||
unlink %{buildroot}%{_datadir}/%{name}/systemd/mysql.service
|
||||
unlink %{buildroot}%{_datadir}/%{name}/systemd/mysqld.service
|
||||
unlink %{buildroot}%{_unitdir}/mysqld.service
|
||||
# The old fork of mytop utility (we ship it as a separate package)
|
||||
rm -f %{buildroot}%{_bindir}/mytop
|
||||
# xtrabackup is not supported for MariaDB >= 10.3
|
||||
rm -f %{buildroot}%{_bindir}/wsrep_sst_xtrabackup-v2
|
||||
rm -f %{buildroot}%{_bindir}/wsrep_sst_xtrabackup
|
||||
|
||||
# Remove unused upstream services
|
||||
rm -f %{buildroot}'%{_unitdir}/mariadb.service'
|
||||
rm -f %{buildroot}'%{_unitdir}/mariadb@.service'
|
||||
rm -f %{buildroot}'%{_unitdir}/mariadb@bootstrap.service.d/use_galera_new_cluster.conf'
|
||||
|
||||
# Remove systemd-sysusers conf file for creating of mysql user (we do it in the specfile)
|
||||
rm -f %{buildroot}%{_sysusersdir}/mariadb.conf
|
||||
|
||||
# Remove client libraries that are now provided in mariadb-connector-c
|
||||
# Client library and links
|
||||
rm %{buildroot}%{_libdir}/libmariadb.so.*
|
||||
unlink %{buildroot}%{_libdir}/libmysqlclient.so
|
||||
unlink %{buildroot}%{_libdir}/libmysqlclient_r.so
|
||||
unlink %{buildroot}%{_libdir}/libmariadb.so
|
||||
# Client plugins
|
||||
rm %{buildroot}%{_libdir}/mysql/plugin/{auth_gssapi_client.so,dialog.so,mysql_clear_password.so,sha256_password.so,caching_sha2_password.so,client_ed25519.so}
|
||||
# Devel files
|
||||
rm %{buildroot}%{_bindir}/mysql_config
|
||||
rm %{buildroot}%{_bindir}/mariadb_config
|
||||
rm %{buildroot}%{_bindir}/mariadb-config
|
||||
rm %{buildroot}%{_libdir}/pkgconfig/mariadb.pc
|
||||
rm -f %{buildroot}%{_prefix}/lib/pkgconfig/libmariadb.pc
|
||||
rm -f %{buildroot}%{_libdir}/pkgconfig/libmariadb.pc
|
||||
rm %{buildroot}%{_datadir}/aclocal/mysql.m4
|
||||
rm %{buildroot}%{_mandir}/man1/mariadb_config*.1*
|
||||
rm %{buildroot}%{_mandir}/man1/mysql_config*.1*
|
||||
rm %{buildroot}%{_mandir}/man1/mytop.1*
|
||||
rm -r %{buildroot}%{_includedir}/mysql
|
||||
# Devel man pages
|
||||
rm -rf %{buildroot}%{_mandir}/man3/*
|
||||
|
||||
# Rename the wsrep README so it corresponds with the other README names
|
||||
cp Docs/README-wsrep Docs/README.wsrep
|
||||
|
||||
# Generate various filelists (binaries and manpages)
|
||||
# mariadb.files
|
||||
filelist mariabackup mariadb-backup mbstream innochecksum mariadb-service-convert my_print_defaults myisam_ftdump myisamchk myisamlog myisampack mysql_fix_extensions mariadb-fix-extensions mysql_install_db mariadb-install-db mysql_secure_installation mariadb-secure-installation mysql_upgrade mariadb-upgrade mysqld mariadbd mysqld_multi mariadbd-multi mysqld_safe mariadbd-safe mysqlbinlog mariadb-binlog mysqldumpslow mariadb-dumpslow resolve_stack_dump resolveip {m,}aria_chk {m,}aria_dump_log {m,}aria_ftdump {m,}aria_pack {m,}aria_read_log tokuft_logprint tokuft_logdump tokuftdump mysql_ldb mariadb-ldb sst_dump myrocks_hotbackup >mariadb.files
|
||||
|
||||
# mariadb-client.files
|
||||
filelist mysql mariadb mysqladmin mariadb-admin mysqlcheck mariadb-check mysqldump mariadb-dump mysqlimport mariadb-import mysqlshow mariadb-show mysql_config_editor mysqld_safe_helper mariadbd-safe-helper >mariadb-client.files
|
||||
|
||||
# Mysql has configuration file in _bindir
|
||||
if [ -f scripts/mysqlaccess.conf ] ; then
|
||||
install -m 640 scripts/mysqlaccess.conf %{buildroot}%{_sysconfdir}/mysqlaccess.conf
|
||||
rm -f %{buildroot}%{_bindir}/mysqlaccess.conf
|
||||
echo '%config(noreplace) %attr(0640, root, mysql) %{_sysconfdir}/mysqlaccess.conf' >> mariadb-client.files
|
||||
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 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 wsrep_sst_backup >mariadb-galera-exclude.files
|
||||
echo "%exclude %{_datadir}/mysql/systemd/use_galera_new_cluster.conf" >>mariadb-galera-exclude.files
|
||||
echo "%exclude %{_datadir}/mysql/wsrep_notify" >>mariadb-galera-exclude.files
|
||||
%endif
|
||||
|
||||
# mariadb-bench.files
|
||||
filelist mysqlslap mariadb-slap >mariadb-bench.files
|
||||
|
||||
# mariadb-test.files
|
||||
filelist mysql_client_test mariadb-client-test mysql_client_test_embedded mariadb-client-test-embedded mysql_waitpid mariadb-waitpid mysqltest mariadb-test mysqltest_embedded mariadb-test-embedded >mariadb-test.files
|
||||
|
||||
# mariadb-tools.files
|
||||
filelist msql2mysql mysql_plugin mariadb-plugin mysql_convert_table_format mariadb-convert-table-format mysql_find_rows mariadb-find-rows mysql_setpermission mariadb-setpermission mysql_tzinfo_to_sql mariadb-tzinfo-to-sql mysqlaccess mariadb-access mysqlhotcopy mariadb-hotcopy perror replace mysql_embedded mariadb-embedded aria_s3_copy mariadb-conv >mariadb-tools.files
|
||||
|
||||
# All configuration files
|
||||
echo '%{_datadir}/%{name}/*.cnf' >> mariadb.files
|
||||
|
||||
# Special errormessages approach
|
||||
echo '%%defattr(-, root, root)' > %{_builddir}/errormessages.files
|
||||
pushd %{buildroot} >/dev/null
|
||||
for f in usr/share/%{name}/*; do
|
||||
if test -e $f/errmsg.sys; then
|
||||
echo "%%dir /$f" >> %{_builddir}/errormessages.files
|
||||
fi
|
||||
done
|
||||
popd >/dev/null
|
||||
mv %{_builddir}/errormessages.files mariadb-errormessages.files
|
||||
|
||||
# Files not installed by make install
|
||||
# Some of the documentation we need to have installed
|
||||
DOCS=(COPYING README.md EXCEPTIONS-CLIENT %{_sourcedir}/README.debug plugin/daemon_example/daemon_example.ini)
|
||||
DOCDIR=%{buildroot}%{_defaultdocdir}/%{name}
|
||||
install -d -m 755 ${DOCDIR}
|
||||
for i in "${DOCS[@]}"; do
|
||||
install -m 644 "${i}" "${DOCDIR}" || true
|
||||
done
|
||||
|
||||
# Install default configuration file
|
||||
install -m 644 %{SOURCE14} %{buildroot}%{_sysconfdir}/my.cnf
|
||||
|
||||
# Systemd/initscript
|
||||
install -D -m 755 %{_sourcedir}/mysql-systemd-helper '%{buildroot}'%{_libexecdir}/mysql/mysql-systemd-helper
|
||||
sed -i 's|@MYSQLVER@|%{version}|' '%{buildroot}'%{_libexecdir}/mysql/mysql-systemd-helper
|
||||
ln -sf service '%{buildroot}'%{_sbindir}/rcmysql
|
||||
ln -sf service '%{buildroot}'%{_sbindir}/rcmariadb
|
||||
rm -rf '%{buildroot}'%{_sysconfdir}/init.d
|
||||
sed "s|@LIBEXECDIR@|%{_libexecdir}|g" %{_sourcedir}/mariadb.service.in > '%{buildroot}'%{_unitdir}/mariadb.service
|
||||
sed "s|@LIBEXECDIR@|%{_libexecdir}|g" %{_sourcedir}/mariadb@.service.in > '%{buildroot}'%{_unitdir}/mariadb@.service
|
||||
install -D -m 644 %{_sourcedir}/mariadb.target '%{buildroot}'%{_unitdir}/mariadb.target
|
||||
# Aliases for the backward compatibility. Create symlinks from the alias to the existing one
|
||||
# We can't use 'Alias=' option only because it's effective only when the unit is enabled
|
||||
ln -sf %{_unitdir}/mariadb.service %{buildroot}%{_unitdir}/mysql.service
|
||||
ln -sf %{_unitdir}/mariadb@.service %{buildroot}%{_unitdir}/mysql@.service
|
||||
|
||||
# Replace the default socket for multi instance mariadb with the one used by
|
||||
# mysql-systemd-helper
|
||||
sed -e 's:mysql.sock-%I:mysql.%I.sock:' -i %{buildroot}%{_unitdir}/mariadb@.socket
|
||||
|
||||
# Tmpfiles file to exclude mysql tempfiles that are auto-cleaned up
|
||||
# bnc#852451
|
||||
mkdir -p %{buildroot}%{_tmpfilesdir}
|
||||
cat >> %{buildroot}%{_tmpfilesdir}/mariadb.conf <<EOF
|
||||
x %{_localstatedir}/tmp/mysql.*
|
||||
EOF
|
||||
|
||||
# Testsuite
|
||||
install -d -m 755 '%{buildroot}'%{_datadir}/%{name}-test/
|
||||
install -m 755 suse-test-run '%{buildroot}'%{_datadir}/%{name}-test/
|
||||
mkdir '%{buildroot}'%{_datadir}/%{name}-test%{_localstatedir}
|
||||
|
||||
# Install the list of skipped tests to be available for user runs
|
||||
install -p -m 0644 mysql-test/unstable-tests %{buildroot}%{_datadir}/%{name}-test
|
||||
ln -s unstable-tests %{buildroot}%{_datadir}/%{name}-test/suse_skipped_tests.list
|
||||
|
||||
# Final fixes
|
||||
find '%{buildroot}'%{_datadir}/%{name}-test -name '*.orig' -delete
|
||||
%fdupes -s '%{buildroot}'%{_datadir}/%{name}-test
|
||||
fdupes -q -n -r '%{buildroot}'%{_datadir}/%{name}-test
|
||||
for i in `grep -Rl '\r' '%{buildroot}'%{_datadir}/sql-bench`; do
|
||||
dos2unix "$i"
|
||||
done
|
||||
|
||||
# Compat with old scripts
|
||||
ln -s mysqlcheck '%{buildroot}'%{_bindir}/mysqlrepair
|
||||
ln -s mysqlcheck '%{buildroot}'%{_bindir}/mysqlanalyze
|
||||
ln -s mysqlcheck '%{buildroot}'%{_bindir}/mysqloptimize
|
||||
|
||||
# Use our configuration stuff instead of upstream one
|
||||
rm -rf '%{buildroot}'%{_sysconfdir}/my.cnf.d
|
||||
install -d -m 755 '%{buildroot}'%{_sysconfdir}/my.cnf.d
|
||||
|
||||
%if %{with galera}
|
||||
# Install galera config file and script
|
||||
install -p -m 644 build/support-files/wsrep.cnf %{buildroot}%{_sysconfdir}/my.cnf.d/50-galera.cnf
|
||||
install -p -m 755 build/scripts/galera_new_cluster %{buildroot}%{_bindir}/galera_new_cluster
|
||||
%endif
|
||||
|
||||
# Documentation that was copied to wrong folder
|
||||
rm -f '%{buildroot}'%{_datadir}/doc/* 2> /dev/null || true
|
||||
|
||||
# Unwanted packaged stuff
|
||||
rm -rf '%{buildroot}'%{_datadir}/mysql/{solaris,SELinux}
|
||||
|
||||
# Create the directory specified in 'secure-file-priv' option
|
||||
mkdir -p '%{buildroot}'%{_localstatedir}/lib/mysql-files
|
||||
|
||||
# install rpm macros file
|
||||
mkdir -p %{buildroot}%{_rpmmacrodir}
|
||||
install -m 644 %{SOURCE19} %{buildroot}%{_rpmmacrodir}
|
||||
|
||||
# Install sysusers.d file
|
||||
mkdir -p %{buildroot}%{_sysusersdir}
|
||||
install -m 644 %{SOURCE12} %{buildroot}%{_sysusersdir}/
|
||||
|
||||
%check
|
||||
cd build
|
||||
|
||||
# Run an extensive mysql test suite
|
||||
# If ignore_testsuite_result == 1 then run all tests but ignore failures
|
||||
# If ignore_testsuite_result == 0 then skip tests listed in unstable-tests
|
||||
# (contains suse_skipped_tests.list) and don't ignore failures
|
||||
|
||||
%if 0%{run_testsuite} > 0
|
||||
cd mysql-test
|
||||
# spider test have been enabled in 10.6 and they fail, skip these tests
|
||||
# mariadb-client cannot connect to the server due to self-signed certificates
|
||||
./mysql-test-run.pl \
|
||||
--parallel=%{?jobs:%{jobs}} \
|
||||
--force \
|
||||
--retry=3 \
|
||||
--ssl \
|
||||
--suite-timeout=900 \
|
||||
--testcase-timeout=30 \
|
||||
--mysqld=--binlog-format=mixed \
|
||||
--force-restart \
|
||||
--shutdown-timeout=60 \
|
||||
--max-test-fail=0 \
|
||||
%if 0%{ignore_testsuite_result} > 0
|
||||
|| :
|
||||
%else
|
||||
--skip-test=spider \
|
||||
--skip-test-list=unstable-tests
|
||||
%endif
|
||||
%endif
|
||||
|
||||
# client does not require server and needs the user too
|
||||
%pre client -f mysql.pre
|
||||
%pre
|
||||
%service_add_pre mariadb.service mariadb.socket mariadb-extra.socket mariadb.target
|
||||
|
||||
%post
|
||||
%service_add_post mariadb.service mariadb@.service mariadb.socket mariadb-extra.socket mariadb.target
|
||||
%tmpfiles_create %{_tmpfilesdir}/mariadb.conf
|
||||
|
||||
%set_permissions %{_libdir}/mysql/plugin/auth_pam_tool_dir/auth_pam_tool
|
||||
|
||||
# SLE11 Migration support
|
||||
for i in protected tmp; do
|
||||
rmdir "$datadir"/.$i 2>/dev/null || :
|
||||
done
|
||||
|
||||
# During package rename (migration maria->mysql-community-server),
|
||||
# there might be config file move and we get rpmsave that we should keep
|
||||
if [ -f %{_sysconfdir}/my.cnf.rpmsave ]; then
|
||||
mv %{_sysconfdir}/my.cnf{,.rpmnew}
|
||||
mv %{_sysconfdir}/my.cnf{.rpmsave,}
|
||||
cat >> %{_localstatedir}/adm/update-messages/%{name}-%{version}-%{release}-something << EOF
|
||||
|
||||
WARNING: %{_sysconfdir}/my.cnf.rpmsave file detected!
|
||||
|
||||
This probably means that you are migrating from different variant of MySQL.
|
||||
Your configuration was left intact and you can see the new configuration in
|
||||
%{_sysconfdir}/my.cnf.rpmnew
|
||||
|
||||
EOF
|
||||
fi
|
||||
|
||||
# Decide if the upgrade is needed
|
||||
datadir="`%{_bindir}/my_print_defaults mysqld mysql_server | sed -n 's|--datadir=||p'`"
|
||||
[ -n "$datadir" ] || datadir="%{_localstatedir}/lib/mysql"
|
||||
|
||||
# NOTE: .run-mysql_upgrade was moved and renamed to .mariadb_run_upgrade. Remove the old file and
|
||||
# create a new one if needed.
|
||||
rm -f "$datadir/.run-mysql_upgrade"
|
||||
if [ -d "$datadir/mysql" ]; then
|
||||
touch "%{_localstatedir}/lib/misc/.mariadb_run_upgrade"
|
||||
fi
|
||||
|
||||
# Manage showing of a README or upgrade messages
|
||||
# NOTE: mysql_upgrade_info was moved and renamed to mariadb_upgrade_info. Copy the content and remove it
|
||||
if [ -f "$datadir/mysql_upgrade_info" ]; then
|
||||
cat "$datadir/mysql_upgrade_info" > "%{_localstatedir}/lib/misc/mariadb_upgrade_info"
|
||||
rm -f "$datadir/mysql_upgrade_info"
|
||||
fi
|
||||
|
||||
if [ \! -f "%{_localstatedir}/lib/misc/mariadb_upgrade_info" ]; then
|
||||
if [ $1 -eq 1 ]; then
|
||||
cat >> %{_localstatedir}/adm/update-messages/%{name}-%{version}-%{release}-something << EOF
|
||||
|
||||
%(cat %{_sourcedir}/README.install)
|
||||
|
||||
EOF
|
||||
fi
|
||||
else
|
||||
MYSQLVER="`echo %{version} | sed 's|\.[0-9]\+$||'`"
|
||||
if [ -f "%{_localstatedir}/lib/misc/mariadb_upgrade_info" ] && \
|
||||
[ -z "`grep "^$MYSQLVER" "%{_localstatedir}/lib/misc/mariadb_upgrade_info" 2> /dev/null`" ]; then
|
||||
cat >> %{_localstatedir}/adm/update-messages/%{name}-%{version}-%{release}-something << EOF
|
||||
|
||||
WARNING: You are upgrading from different stable version of MySQL!
|
||||
|
||||
Your database will be migrated automatically during next restart of MySQL.
|
||||
Before you do that make sure you have up to date backup of your data. It
|
||||
should be mainly in $datadir directory.
|
||||
|
||||
EOF
|
||||
fi
|
||||
fi
|
||||
exit 0
|
||||
|
||||
%verifyscript
|
||||
%verify_permissions %{_libdir}/mysql/plugin/auth_pam_tool_dir/auth_pam_tool
|
||||
|
||||
%preun
|
||||
%service_del_preun mariadb.service mariadb.socket mariadb-extra.socket mariadb.target
|
||||
|
||||
%postun
|
||||
%service_del_postun mariadb.service mariadb.socket mariadb-extra.socket mariadb.target
|
||||
|
||||
%post -n libmariadbd%{soname} -p /sbin/ldconfig
|
||||
%postun -n libmariadbd%{soname} -p /sbin/ldconfig
|
||||
|
||||
%files -f mariadb.files -f mariadb-galera-exclude.files
|
||||
%config(noreplace) %attr(-, root, mysql) %{_sysconfdir}/my.cnf
|
||||
%config(noreplace) %attr(-, root, mysql) %{_sysconfdir}/my.cnf.d/
|
||||
%if %{with galera}
|
||||
%exclude %{_sysconfdir}/my.cnf.d/50-galera.cnf
|
||||
%endif
|
||||
%config(noreplace) %{_pam_secconfdir}/user_map.conf
|
||||
%config %{_sysconfdir}/logrotate.d/%{name}
|
||||
%{_datadir}/%{name}/%{name}.logrotate
|
||||
%doc %{_defaultdocdir}/%{name}
|
||||
%dir %{_libexecdir}/mysql
|
||||
%dir %attr(0700, mysql, mysql) %{_localstatedir}/log/mysql
|
||||
%{_libexecdir}/mysql/mysql-systemd-helper
|
||||
%{_unitdir}/mariadb.service
|
||||
%{_unitdir}/mariadb@.service
|
||||
%{_unitdir}/mariadb.target
|
||||
%{_unitdir}/mysql.service
|
||||
%{_unitdir}/mysql@.service
|
||||
%{_unitdir}/mariadb-extra.socket
|
||||
%{_unitdir}/mariadb-extra@.socket
|
||||
%{_unitdir}/mariadb.socket
|
||||
%{_unitdir}/mariadb@.socket
|
||||
%{_tmpfilesdir}/mariadb.conf
|
||||
%{_sbindir}/rcmysql
|
||||
%{_sbindir}/rcmariadb
|
||||
%dir %{_datadir}/%{name}
|
||||
%{_datadir}/%{name}/charsets/
|
||||
%{_datadir}/%{name}/*.sql
|
||||
%dir %{_libdir}/mysql
|
||||
%{_libdir}/mysql/mysqld.sym
|
||||
%{_libdir}/mysql/INFO_SRC
|
||||
%dir %{_libdir}/mysql/plugin
|
||||
%{_libdir}/mysql/plugin/*.so
|
||||
%exclude %{_libdir}/mysql/plugin/dialog*.so
|
||||
%if 0%{with_cracklib_plugin} > 0
|
||||
%exclude %{_libdir}/mysql/plugin/cracklib_password_check.so
|
||||
%endif
|
||||
%{_pam_moduledir}/pam_user_map.so
|
||||
%dir %attr(0750, root, mysql) %{_libdir}/mysql/plugin/auth_pam_tool_dir
|
||||
%verify(not mode) %attr(4755,root,root) %{_libdir}/mysql/plugin/auth_pam_tool_dir/auth_pam_tool
|
||||
%ghost %{_localstatedir}/adm/update-messages/%{name}-%{version}-%{release}-something
|
||||
%dir %attr(0750, mysql, mysql) %{_localstatedir}/lib/mysql-files
|
||||
%if 0%{with_mroonga} > 0
|
||||
%{_datadir}/mariadb/mroonga/
|
||||
%dir %{_datadir}/groonga/
|
||||
%{_datadir}/groonga/COPYING
|
||||
%{_datadir}/groonga/README.md
|
||||
%dir %{_datadir}/groonga-normalizer-mysql
|
||||
%{_datadir}/groonga-normalizer-mysql/README.md
|
||||
%{_datadir}/groonga-normalizer-mysql/lgpl-2.0.txt
|
||||
%endif
|
||||
%dir %{_datadir}/%{name}/policy
|
||||
%dir %{_datadir}/%{name}/policy/apparmor
|
||||
%{_datadir}/%{name}/policy/apparmor/README
|
||||
%{_datadir}/%{name}/policy/apparmor/usr.sbin.mysqld*
|
||||
%dir %{_datadir}/%{name}/policy/selinux
|
||||
%{_datadir}/%{name}/policy/selinux/README
|
||||
%{_datadir}/%{name}/policy/selinux/mariadb-server.*
|
||||
%{_datadir}/%{name}/policy/selinux/mariadb.te
|
||||
%dir %{_datadir}/%{name}/systemd
|
||||
%{_datadir}/%{name}/systemd/mariadb.service
|
||||
%{_datadir}/%{name}/systemd/mariadb@.service
|
||||
%{_datadir}/%{name}/systemd/mariadb-extra@.socket
|
||||
%{_datadir}/%{name}/systemd/mariadb@.socket
|
||||
|
||||
%files rpm-macros
|
||||
%{_rpmmacrodir}/macros.mariadb-test
|
||||
|
||||
%files -n libmariadbd%{soname}
|
||||
%{_libdir}/libmariadbd.so.*
|
||||
|
||||
%files -n libmariadbd-devel
|
||||
%{_libdir}/libmysqld.so
|
||||
%{_libdir}/libmariadbd.so
|
||||
|
||||
%files client -f mariadb-client.files
|
||||
%dir %{_libdir}/mysql
|
||||
%dir %{_libdir}/mysql/plugin
|
||||
%{_libdir}/mysql/plugin/dialog_examples.so
|
||||
%{_sysusersdir}/mysql-user.conf
|
||||
|
||||
%if %{with galera}
|
||||
%files galera -f mariadb-galera.files
|
||||
%doc Docs/README.wsrep
|
||||
%config(noreplace) %attr(-, root, mysql) %{_sysconfdir}/my.cnf.d/50-galera.cnf
|
||||
%{_datadir}/%{name}/systemd/use_galera_new_cluster.conf
|
||||
%{_datadir}/%{name}/wsrep_notify
|
||||
%endif
|
||||
|
||||
%files errormessages -f mariadb-errormessages.files
|
||||
%{_datadir}/%{name}/*/errmsg.sys
|
||||
|
||||
%files bench -f mariadb-bench.files
|
||||
%{_datadir}/sql-bench
|
||||
%{_datadir}/%{name}/mini-benchmark
|
||||
|
||||
%files test -f mariadb-test.files
|
||||
%{_bindir}/test-connect-t
|
||||
%{_mandir}/man1/my_safe_process.1%{?ext_man}
|
||||
%{_mandir}/man1/mysql-test-run.pl.1%{?ext_man}
|
||||
%{_mandir}/man1/mysql-stress-test.pl.1%{?ext_man}
|
||||
%{_datadir}/%{name}-test/valgrind.supp
|
||||
%dir %attr(755, mysql, mysql) %{_datadir}/%{name}-test
|
||||
%attr(-, mysql, mysql) %{_datadir}/%{name}-test/[^v]*
|
||||
%dir %attr(755, mysql, mysql) %{_datadir}/%{name}-test%{_localstatedir}
|
||||
|
||||
%files tools -f mariadb-tools.files
|
||||
%{_bindir}/mysqlrepair
|
||||
%{_bindir}/mysqlanalyze
|
||||
%{_bindir}/mysqloptimize
|
||||
|
||||
%if 0%{with_cracklib_plugin} > 0
|
||||
%files cracklib-password-check
|
||||
%{_libdir}/mysql/plugin/cracklib_password_check.so
|
||||
%endif
|
||||
|
||||
%changelog
|
2
mariadb.target
Normal file
2
mariadb.target
Normal file
@ -0,0 +1,2 @@
|
||||
[Unit]
|
||||
Description=MySQL target allowing to control multi setup
|
71
mariadb@.service.in
Normal file
71
mariadb@.service.in
Normal file
@ -0,0 +1,71 @@
|
||||
# It's not recommended to modify this unit file because your changes
|
||||
# would be overwritten during the package update.
|
||||
#
|
||||
# However, there are 2 methods how to customize this unit file:
|
||||
#
|
||||
# 1) Copy this unit file from /usr/lib/systemd/system to
|
||||
# /etc/systemd/system and modify the chosen settings.
|
||||
#
|
||||
# 2) Create a directory named mariadb.service.d/ within /etc/systemd/system
|
||||
# and place a drop-in file name.conf there that only changes the specific
|
||||
# settings one is interested in.
|
||||
#
|
||||
# see systemd.unit(5) for details
|
||||
#
|
||||
# Example - increasing of the TimeoutSec= limit
|
||||
# mkdir /etc/systemd/system/mariadb.service.d
|
||||
# cat > /etc/systemd/system/mariadb.service.d/timeout.conf << EOF
|
||||
# [Service]
|
||||
# TimeoutSec=600
|
||||
# EOF
|
||||
|
||||
[Unit]
|
||||
Description=MariaDB database server - %I instance
|
||||
Documentation=man:mysqld(8)
|
||||
Documentation=https://mariadb.com/kb/en/library/systemd/
|
||||
PartOf=mariadb.target
|
||||
After=network.target time-sync.target
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
Alias=mysql.service
|
||||
|
||||
[Service]
|
||||
ExecStartPre=@LIBEXECDIR@/mysql/mysql-systemd-helper install %i
|
||||
ExecStartPre=@LIBEXECDIR@/mysql/mysql-systemd-helper upgrade %i
|
||||
ExecStart=@LIBEXECDIR@/mysql/mysql-systemd-helper start %i
|
||||
|
||||
Type=notify
|
||||
User=mysql
|
||||
Group=mysql
|
||||
|
||||
KillSignal=SIGTERM
|
||||
|
||||
# Don't want to see an automated SIGKILL ever
|
||||
SendSIGKILL=no
|
||||
|
||||
# Restart crashed server only, on-failure would also restart, for example, when
|
||||
# my.cnf contains unknown option
|
||||
Restart=on-abort
|
||||
RestartSec=5s
|
||||
|
||||
# Configures the time to wait for start-up/stop
|
||||
TimeoutSec=300
|
||||
|
||||
# CAP_IPC_LOCK To allow memlock to be used as non-root user
|
||||
# CAP_DAC_OVERRIDE To allow auth_pam_tool (which is SUID root) to read /etc/shadow when it's chmod 0
|
||||
# does nothing for non-root, not needed if /etc/shadow is u+r
|
||||
# CAP_AUDIT_WRITE auth_pam_tool needs it on Debian for whatever reason
|
||||
CapabilityBoundingSet=CAP_IPC_LOCK CAP_DAC_OVERRIDE CAP_AUDIT_WRITE
|
||||
|
||||
# Prevent writes to /usr, /boot, and /etc
|
||||
ProtectSystem=full
|
||||
|
||||
# Prevent accessing /home, /root and /run/user
|
||||
ProtectHome=true
|
||||
|
||||
# Execute pre and post scripts as root, otherwise it does it as User=
|
||||
PermissionsStartOnly=true
|
||||
|
||||
UMask=007
|
||||
|
104
my.ini
Normal file
104
my.ini
Normal file
@ -0,0 +1,104 @@
|
||||
# The following options will be passed to all MariaDB clients
|
||||
[client]
|
||||
# Please note that storing the password in this file is not safe. For this
|
||||
# purpose you can, for example, list your password in the [client] section
|
||||
# of the '~/.my.cnf' configuration file with an access mode set to 400 or 600.
|
||||
# password = your_password
|
||||
# port = 3306
|
||||
# socket = /run/mysql/mysql.sock
|
||||
|
||||
# The MariaDB server
|
||||
[mysqld]
|
||||
|
||||
# For security reasons, bind to 127.0.0.1 by default to enable networking
|
||||
# only on the loopback interface.
|
||||
bind-address = 127.0.0.1
|
||||
|
||||
# If log-error is not set, mysqld will write to "/var/lib/mysql/$HOSTNAME.err"
|
||||
# which is not beneficial for rotating the log file if it grows in size.
|
||||
log-error = /var/log/mysql/mysqld.log
|
||||
|
||||
# Enable the slow query log to see queries with especially long duration
|
||||
# slow_query_log=1
|
||||
# slow_query_log_file = /var/log/mysql/mysqld_slow.log
|
||||
|
||||
# Operations 'LOAD DATA', 'SELECT ... INTO' and 'LOAD FILE()' will only
|
||||
# work with files in the specified directory
|
||||
secure_file_priv = /var/lib/mysql-files
|
||||
|
||||
# Remove leading # and set to the amount of RAM for the most important data
|
||||
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
|
||||
# innodb_buffer_pool_size = 128M
|
||||
|
||||
# Remove leading # to turn on a very important data integrity option: logging
|
||||
# changes to the binary log between backups.
|
||||
# log_bin=mysql-bin
|
||||
# binlog_format=mixed
|
||||
|
||||
# Remove leading # if you want to store your database elsewhere
|
||||
# datadir = /var/lib/mysql
|
||||
|
||||
# required unique id between 1 and 2^32 - 1
|
||||
# defaults to 1 if master-host is not set
|
||||
# but will not function as a master if omitted
|
||||
server-id = 1
|
||||
|
||||
# These are commonly set, remove the # and set as required.
|
||||
# port = 3306
|
||||
# socket = /run/mysql/mysql.sock
|
||||
|
||||
# Remove leading # to set options mainly useful for reporting servers.
|
||||
# The server defaults are faster for transactions and fast SELECTs.
|
||||
# Adjust sizes as needed, experiment to find the optimal values.
|
||||
# join_buffer_size = 128M
|
||||
# sort_buffer_size = 2M
|
||||
# read_rnd_buffer_size = 2M
|
||||
|
||||
# Configure the MariaDB server to use SSL
|
||||
# ssl-ca=/etc/mysql/ssl/ca-cert.pem
|
||||
# ssl-cert=/etc/mysql/ssl/server-cert.pem
|
||||
# ssl-key=/etc/mysql/ssl/server-key.pem
|
||||
|
||||
[mysqld_multi]
|
||||
mysqld = /usr/bin/mysqld_safe
|
||||
mysqladmin = /usr/bin/mysqladmin
|
||||
log = /var/log/mysqld_multi.log
|
||||
|
||||
# If you want to use mysqld_multi uncomment 1 or more mysqld sections
|
||||
# below or add your own ones.
|
||||
|
||||
# WARNING
|
||||
# --------
|
||||
# If you uncomment mysqld1 than make absolutely sure, that database mysql,
|
||||
# configured above, is not started. This may result in corrupted data!
|
||||
#
|
||||
# [mysqld1]
|
||||
# port = 3306
|
||||
# datadir = /var/lib/mysql
|
||||
# pid-file = /var/lib/mysql/mysqld.pid
|
||||
# socket = /var/lib/mysql/mysql.sock
|
||||
# user = mysql
|
||||
|
||||
# [mysqld2]
|
||||
# port = 3307
|
||||
# datadir = /var/lib/mysql-databases/mysqld2
|
||||
# pid-file = /var/lib/mysql-databases/mysqld2/mysql.pid
|
||||
# socket = /var/lib/mysql-databases/mysqld2/mysql.sock
|
||||
# user = mysql
|
||||
|
||||
# [mysqld3]
|
||||
# port = 3308
|
||||
# datadir = /var/lib/mysql-databases/mysqld3
|
||||
# pid-file = /var/lib/mysql-databases/mysqld3/mysql.pid
|
||||
# socket = /var/lib/mysql-databases/mysqld3/mysql.sock
|
||||
# user = mysql
|
||||
|
||||
# [mysqld6]
|
||||
# port = 3309
|
||||
# datadir = /var/lib/mysql-databases/mysqld6
|
||||
# pid-file = /var/lib/mysql-databases/mysqld6/mysql.pid
|
||||
# socket = /var/lib/mysql-databases/mysqld6/mysql.sock
|
||||
# user = mysql
|
||||
|
||||
!includedir /etc/my.cnf.d
|
||||
|
203
mysql-systemd-helper
Normal file
203
mysql-systemd-helper
Normal file
@ -0,0 +1,203 @@
|
||||
#!/bin/bash
|
||||
die() {
|
||||
echo "$1"
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Read options from config file
|
||||
read_config() {
|
||||
# Initial settings
|
||||
MYSQLVER="$(echo @MYSQLVER@ | sed 's|\.[0-9]\+$||')"
|
||||
mysql_daemon_user=mysql
|
||||
mysql_daemon_group=mysql
|
||||
# status information directory (e.g. info about a necessity of upgrade, current version etc)
|
||||
mariadb_status_dir="/var/lib/misc"
|
||||
|
||||
if [[ -z "$INSTANCE" ]]; then
|
||||
datadir=/var/lib/mysql
|
||||
socket="/run/mysql/mysql.sock"
|
||||
else
|
||||
datadir="/var/lib/mysql-$INSTANCE"
|
||||
socket="/run/mysql/mysql.${INSTANCE}.sock"
|
||||
fi
|
||||
|
||||
# Read options - important for multi setup
|
||||
if [[ -n "$INSTANCE" ]]; then
|
||||
opts="$(/usr/bin/my_print_defaults --defaults-extra-file=/etc/my${INSTANCE}.cnf mysqld mysqld_multi "$INSTANCE")"
|
||||
tmp_opts="$opts"
|
||||
config="/etc/my${INSTANCE}.cnf"
|
||||
else
|
||||
opts="$(/usr/bin/my_print_defaults mysqld)"
|
||||
tmp_opts="$opts"
|
||||
config="/etc/my.cnf"
|
||||
fi
|
||||
|
||||
# Update local variables according to the settings from config
|
||||
for arg in $tmp_opts; do
|
||||
case "$arg" in
|
||||
--basedir=*) basedir="$(echo "$arg" | sed -e 's/^[^=]*=//')" ;;
|
||||
--socket=*) socket="$(echo "$arg" | sed -e 's/^[^=]*=//')" ;;
|
||||
--datadir=*) datadir="$(echo "$arg" | sed -e 's/^[^=]*=//')" ;;
|
||||
--user=*) mysql_daemon_user="$(echo "$arg" | sed -e 's/^[^=]*=//')" ;;
|
||||
--group=*) mysql_daemon_group="$(echo "$arg" | sed -e 's/^[^=]*=//')" ;;
|
||||
esac
|
||||
done
|
||||
|
||||
# work-around for lost+found directory in $datadir (bug #986251)
|
||||
if [ -d "$datadir/lost+found" ]
|
||||
then
|
||||
ignore_db_dir="--ignore-db-dir=lost+found"
|
||||
else
|
||||
ignore_db_dir=""
|
||||
fi
|
||||
}
|
||||
|
||||
# Create new empty database if needed
|
||||
mysql_install() {
|
||||
if [[ ! -d "$datadir/mysql" ]]; then
|
||||
echo "Creating MySQL privilege database... "
|
||||
mysql_install_db --rpm --user="$mysql_daemon_user" --datadir="$datadir" || \
|
||||
die "Creation of MySQL database in $datadir failed"
|
||||
echo -n "$MYSQLVER" > "$mariadb_status_dir"/mariadb_upgrade_info
|
||||
fi
|
||||
}
|
||||
|
||||
# Upgrade database if needed
|
||||
mysql_upgrade() {
|
||||
# Run mysql_upgrade on every package install/upgrade. Not always
|
||||
# necessary, but doesn't do any harm.
|
||||
if [[ -f "$mariadb_status_dir/.mariadb_run_upgrade" ]]; then
|
||||
echo "Checking MySQL configuration for obsolete options..."
|
||||
sed -i -e 's|^\([[:blank:]]*\)skip-locking|\1skip-external-locking|' \
|
||||
-e 's|^\([[:blank:]]*skip-federated\)|#\1|' /etc/my.cnf
|
||||
|
||||
# instead of running mysqld --bootstrap, which wouldn't allow
|
||||
# us to run mysql_upgrade, we start a full-featured server with
|
||||
# --skip-grant-tables and restict access to it by unix
|
||||
# permissions of the named socket
|
||||
|
||||
echo "Trying to run upgrade of MySQL databases..."
|
||||
|
||||
# Check whether upgrade process is not already running
|
||||
protected="$(cat "/run/mysql/protecteddir.$INSTANCE" 2> /dev/null)"
|
||||
if [[ -n "$protected" && -d "$protected" ]]; then
|
||||
pid="$(cat "$protected/mysqld.pid" 2> /dev/null)"
|
||||
if [[ "$pid" && -d "/proc/$pid" ]] &&
|
||||
[[ $(readlink "/proc/$pid/exe" | grep -q "mysql") ]]; then
|
||||
die "Another upgrade in already in progress!"
|
||||
else
|
||||
echo "Stale files from previous upgrade detected, cleaned them up"
|
||||
rm -rf "$protected"
|
||||
rm -f "/run/mysql/protecteddir.$INSTANCE"
|
||||
fi
|
||||
fi
|
||||
protected="$(mktemp -d -p /var/tmp mysql-protected.XXXXXX | tee "/run/mysql/protecteddir.$INSTANCE")"
|
||||
[ -n "$protected" ] || die "Can't create a tmp dir '$protected'"
|
||||
|
||||
# Create a secure tmp dir
|
||||
chown --no-dereference "$mysql_daemon_user:$mysql_daemon_group" "$protected" || die "Failed to set group/user to '$protected'"
|
||||
chmod 0700 "$protected" || die "Failed to set permissions to '$protected'"
|
||||
|
||||
# Run protected MySQL accessible only though socket in our directory
|
||||
echo "Running protected MySQL... "
|
||||
/usr/sbin/mysqld \
|
||||
--defaults-file="$config" \
|
||||
--user="$mysql_daemon_user" \
|
||||
--skip-networking \
|
||||
--skip-grant-tables \
|
||||
$ignore_db_dir \
|
||||
--log-error="$protected/log_upgrade_run" \
|
||||
--socket="$protected/mysql.sock" \
|
||||
--pid-file="$protected/mysqld.pid" &
|
||||
|
||||
mysql_wait "$protected/mysql.sock" || die "MySQL didn't start, can't continue"
|
||||
|
||||
# Run upgrade itself
|
||||
echo "Running upgrade itself..."
|
||||
echo "It will do some chek first and report all errors and tries to correct them"
|
||||
echo
|
||||
if /usr/bin/mysql_upgrade --no-defaults --force --socket="$protected/mysql.sock"; then
|
||||
echo "Everything upgraded successfully"
|
||||
up_ok=""
|
||||
rm -f "$mariadb_status_dir/.mariadb_run_upgrade"
|
||||
[[ $(grep -q "^$MYSQLVER" "$mariadb_status_dir/mariadb_upgrade_info" 2> /dev/null) ]] || \
|
||||
echo -n "$MYSQLVER" > "$mariadb_status_dir/mariadb_upgrade_info"
|
||||
else
|
||||
echo "Upgrade failed"
|
||||
up_ok="false"
|
||||
fi
|
||||
|
||||
# Shut down MySQL
|
||||
echo "Shutting down protected MySQL"
|
||||
protected_pid=$(cat "$protected/mysqld.pid")
|
||||
kill $protected_pid
|
||||
for i in {1..30}; do
|
||||
/usr/bin/mysqladmin --socket="$protected/mysql.sock" ping > /dev/null 2>&1
|
||||
# Check both ping response and the pid in a process list as it can take some time till the process is terminated.
|
||||
# Otherwise it can lead to "found left-over process" situation when regular mariadb is started.
|
||||
if [[ $? -eq 1 ]] && ! ps -p $protected_pid > /dev/null 2>&1; then
|
||||
break
|
||||
fi
|
||||
sleep 1
|
||||
done
|
||||
/usr/bin/mysqladmin --socket="$protected/mysql.sock" ping > /dev/null 2>&1 && kill -9 $protected_pid
|
||||
|
||||
# Cleanup
|
||||
echo "Final cleanup"
|
||||
if [[ -z "$up_ok" ]]; then
|
||||
rm -rf "$protected" "/run/mysql/protecteddir.$INSTANCE"
|
||||
else
|
||||
die "Something failed during upgrade, please check logs"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
mysql_wait() {
|
||||
[[ -z "$1" ]] || socket="$1"
|
||||
echo "Waiting for MySQL to start"
|
||||
for i in {1..60}; do
|
||||
/usr/bin/mysqladmin --socket="$socket" ping > /dev/null 2>&1 && break
|
||||
sleep 1
|
||||
done
|
||||
if /usr/bin/mysqladmin --socket="$socket" ping > /dev/null 2>&1; then
|
||||
echo "MySQL is alive"
|
||||
return 0
|
||||
else
|
||||
echo "MySQL is still dead"
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
mysql_start() {
|
||||
exec /usr/sbin/mysqld \
|
||||
--defaults-file="$config" \
|
||||
$ignore_db_dir \
|
||||
--user="$mysql_daemon_user" \
|
||||
--socket="$socket"
|
||||
}
|
||||
|
||||
# We rely on output in english at some points
|
||||
LC_ALL=C
|
||||
|
||||
INSTANCE="$2"
|
||||
read_config
|
||||
# Make sure that /run/mysql is created and has correct permissions (bsc#1038740)
|
||||
systemd-tmpfiles --create /usr/lib/tmpfiles.d/mariadb.conf
|
||||
case "$1" in
|
||||
install)
|
||||
mysql_install ;;
|
||||
upgrade)
|
||||
mysql_upgrade ;;
|
||||
start)
|
||||
mysql_start ;;
|
||||
wait)
|
||||
mysql_wait ;;
|
||||
*)
|
||||
echo "Supported commands are:"
|
||||
echo " install - creates empty database if needed"
|
||||
echo " upgrade - tries to migrate data to newer version if needed"
|
||||
echo " start - tries to start instance"
|
||||
echo " wait - waits till instance is pingable"
|
||||
echo "All commands can take extra argument which is group from 'mysqld_multi' you want to work with"
|
||||
;;
|
||||
esac
|
2
mysql-user.conf
Normal file
2
mysql-user.conf
Normal file
@ -0,0 +1,2 @@
|
||||
# Type Name ID GECOS [HOME]
|
||||
u mysql 60 "MySQL database admin" /var/lib/mysql
|
8
series
Normal file
8
series
Normal file
@ -0,0 +1,8 @@
|
||||
mariadb-10.2.4-logrotate.patch -p0
|
||||
mariadb-10.1.1-mysqld_multi-features.patch -p0
|
||||
mariadb-10.0.15-logrotate-su.patch -p0
|
||||
mariadb-10.2.4-fortify-and-O.patch -p0
|
||||
mariadb-10.2.19-link-and-enable-c++11-atomics.patch -p1
|
||||
mariadb-10.4.12-harden_setuid.patch -p1
|
||||
mariadb-10.4.12-fix-install-db.patch -p1
|
||||
fix-lock-rollback-assert-abort.patch
|
17
suse-test-run
Normal file
17
suse-test-run
Normal file
@ -0,0 +1,17 @@
|
||||
#!/usr/bin/perl
|
||||
#
|
||||
# Test the SUSE mariadb package using the mysql-test framework
|
||||
|
||||
my $id = getpwnam("mysql") or die "can't find user \"mysql\": $!";
|
||||
my $dir = "/usr/share/mysql-test/";
|
||||
|
||||
if ($< == 0) {
|
||||
($<, $>) = ($id, $id);
|
||||
if ($< != $id || $> != $id) {
|
||||
die "can't switch to user mysql(id $id): $!";
|
||||
}
|
||||
}
|
||||
|
||||
chdir($dir) or die "can't cd to $dir: $!";
|
||||
exec("./mysql-test-run.pl", "--big-test", @ARGV);
|
||||
die "can't execute mysql-test-run.pl: $!";
|
47
suse_skipped_tests.list
Normal file
47
suse_skipped_tests.list
Normal file
@ -0,0 +1,47 @@
|
||||
#----------------------------------------------------------------
|
||||
type_test.type_test_double : since 10.5.6 - all
|
||||
|
||||
main.mysql_upgrade : since 10.7.3 - x86_64
|
||||
|
||||
binlog_encryption.rpl_cant_read_event_incident : since 10.9.2 - all
|
||||
rpl.rpl_perfschema_applier_status_by_coordinator : since 10.9.2 - all
|
||||
rpl.rpl_xa_survive_disconnect_lsu_off : since 10.9.2 - all
|
||||
rpl.rpl_cant_read_event_incident : since 10.9.2 - all
|
||||
rpl.rpl_heartbeat_basic : since 10.9.2 - all
|
||||
rpl.rpl_xa_survive_disconnect : since 10.9.2 - all
|
||||
rpl.rpl_report_port : since 10.9.2 - all
|
||||
rpl.rpl_reset_slave_fail : since 10.9.2 - all
|
||||
rpl.rpl_domain_id_filter_restart : since 10.9.2 - all
|
||||
rpl.rpl_upgrade_master_info : since 10.9.2 - all
|
||||
|
||||
rpl.rpl_rewrite_db_sys_vars : since 10.11.2 - all
|
||||
|
||||
binlog_encryption.rpl_gtid_basic : since 11.1.2 - all
|
||||
multi_source.info_logs : since 11.1.2 - all
|
||||
rpl.rpl_change_master_demote : since 11.1.2 - all
|
||||
rpl.rpl_mdev6020 : since 11.1.2 - all
|
||||
rpl.rpl_trigger : since 11.1.2 - all
|
||||
rpl.rpl_semi_sync_wait_point : since 11.1.2 - all
|
||||
rpl.rpl_err_ignoredtable : since 11.1.2 - all
|
||||
rpl.rpl_old_master : since 11.1.2 - all
|
||||
rpl.rpl_gtid_basic : since 11.1.2 - all
|
||||
rpl.rpl_slave_shutdown_mdev20821 : since 11.1.2 - all
|
||||
main.userstat : since 11.1.2 - all
|
||||
perfschema.threads_mysql : since 11.1.2 - all
|
||||
main.information_schema : since 11.1.2 - all
|
||||
main.ssl_crl : since 11.1.2 - all
|
||||
perfschema.nesting : since 11.1.2 - all
|
||||
perfschema.socket_summary_by_event_name_func : since 11.1.2 - all
|
||||
perfschema.socket_summary_by_instance_func : since 11.1.2 - all
|
||||
main.lock_kill : since 11.1.2 - all
|
||||
main.loadxml : since 11.1.2 - all
|
||||
sys_vars.tcp_nodelay : since 11.1.2 - all
|
||||
|
||||
perfschema.show_aggregate : since 11.2.3 - all
|
||||
main.mdev375 : since 11.2.3 - all
|
||||
|
||||
main.func_json_notembedded : since 11.2.3 - s390x
|
||||
mariabackup.encrypted_page_corruption : since 11.2.3 - s390x
|
||||
|
||||
main.ssl_autoverify : since 11.4.2 - all
|
||||
binlog.max_binlog_total_size : since 11.4.2 - all
|
Loading…
Reference in New Issue
Block a user