diff --git a/README.install b/README.install index ed5fb13..d67956f 100644 --- a/README.install +++ b/README.install @@ -1,12 +1,14 @@ -You just installed MySQL server for the first time. +You have just installed MariaDB server for the first time. -You can start it using: +You can start it via: + systemctl start mariadb +or rcmysql start -During first start empty database will be created for your automatically. +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, then issue the following commands: +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 password 'new-password' diff --git a/_constraints b/_constraints index 00ccf2a..3af2077 100644 --- a/_constraints +++ b/_constraints @@ -7,7 +7,7 @@ - 7000 + 10 diff --git a/mariadb-10.1.12-deharcode-libdir.patch b/mariadb-10.1.12-deharcode-libdir.patch deleted file mode 100644 index a1f0524..0000000 --- a/mariadb-10.1.12-deharcode-libdir.patch +++ /dev/null @@ -1,27 +0,0 @@ -PATCH-P0-FIX-SUSE: dehardcode libdir - -Don't expect libdir is set to lib64 on x86_64 only. -There is other occurances like ppc64 and aarch64. -Use %{_libdir} macro instead - -Maintainer: Dinar Valeev - -Index: cmake/install_layout.cmake -=================================================================== ---- cmake/install_layout.cmake.orig -+++ cmake/install_layout.cmake -@@ -137,14 +137,6 @@ SET(INSTALL_SCRIPTDIR_RPM - SET(INSTALL_SYSCONFDIR_RPM "/etc") - SET(INSTALL_SYSCONF2DIR_RPM "/etc/my.cnf.d") - # --IF(CMAKE_SIZEOF_VOID_P EQUAL 8) -- SET(INSTALL_LIBDIR_RPM "lib64") -- SET(INSTALL_PLUGINDIR_RPM "lib64/mysql/plugin") --ELSE() -- SET(INSTALL_LIBDIR_RPM "lib") -- SET(INSTALL_PLUGINDIR_RPM "lib/mysql/plugin") --ENDIF() --# - SET(INSTALL_INCLUDEDIR_RPM "include/mysql") - # - SET(INSTALL_DOCDIR_RPM "share/doc") diff --git a/mariadb-10.2.19-link-and-enable-c++11-atomics.patch b/mariadb-10.2.19-link-and-enable-c++11-atomics.patch index b54e834..b566996 100644 --- a/mariadb-10.2.19-link-and-enable-c++11-atomics.patch +++ b/mariadb-10.2.19-link-and-enable-c++11-atomics.patch @@ -1,276 +1,64 @@ -Index: mariadb-10.2.24/configure.cmake -=================================================================== ---- mariadb-10.2.24.orig/configure.cmake -+++ mariadb-10.2.24/configure.cmake -@@ -946,6 +946,21 @@ ELSEIF(NOT WITH_ATOMIC_OPS) - }" - HAVE_GCC_ATOMIC_BUILTINS) - CHECK_CXX_SOURCE_COMPILES(" -+ #include -+ int main() { -+ uint64_t x = 1; -+ __atomic_add_fetch(&x, 0, __ATOMIC_RELAXED); -+ return x; -+ } -+ " HAVE__ATOMIC_ADD_FETCH) -+ if (NOT HAVE__ATOMIC_ADD_FETCH) -+ check_library_exists(atomic __atomic_add_fetch_8 "" HAVE_LIBATOMIC) -+ if (HAVE_LIBATOMIC) -+ SET(CMAKE_REQUIRED_LIBRARIES atomic) -+ SET(LIBATOMIC atomic) -+ endif() -+ endif() +Author: Vicențiu Ciorbaru +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. + +--- a/configure.cmake ++++ b/configure.cmake +@@ -926,7 +926,25 @@ int main() + 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; -Index: mariadb-10.2.24/include/atomic/gcc_builtins.h -=================================================================== ---- mariadb-10.2.24.orig/include/atomic/gcc_builtins.h -+++ mariadb-10.2.24/include/atomic/gcc_builtins.h -@@ -16,6 +16,72 @@ - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ ++ 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 defined(HAVE_GCC_C11_ATOMICS) -+#define MY_ATOMIC_MODE "gcc-atomics-smp" -+ -+#define MY_MEMORY_ORDER_RELAXED __ATOMIC_RELAXED -+#define MY_MEMORY_ORDER_CONSUME __ATOMIC_CONSUME -+#define MY_MEMORY_ORDER_ACQUIRE __ATOMIC_ACQUIRE -+#define MY_MEMORY_ORDER_RELEASE __ATOMIC_RELEASE -+#define MY_MEMORY_ORDER_ACQ_REL __ATOMIC_ACQ_REL -+#define MY_MEMORY_ORDER_SEQ_CST __ATOMIC_SEQ_CST -+ -+#define my_atomic_store32_explicit(P, D, O) __atomic_store_n((P), (D), (O)) -+#define my_atomic_store64_explicit(P, D, O) __atomic_store_n((P), (D), (O)) -+#define my_atomic_storeptr_explicit(P, D, O) __atomic_store_n((P), (D), (O)) -+ -+#define my_atomic_load32_explicit(P, O) __atomic_load_n((P), (O)) -+#define my_atomic_load64_explicit(P, O) __atomic_load_n((P), (O)) -+#define my_atomic_loadptr_explicit(P, O) __atomic_load_n((P), (O)) -+ -+#define my_atomic_fas32_explicit(P, D, O) __atomic_exchange_n((P), (D), (O)) -+#define my_atomic_fas64_explicit(P, D, O) __atomic_exchange_n((P), (D), (O)) -+#define my_atomic_fasptr_explicit(P, D, O) __atomic_exchange_n((P), (D), (O)) -+ -+#define my_atomic_add32_explicit(P, A, O) __atomic_fetch_add((P), (A), (O)) -+#define my_atomic_add64_explicit(P, A, O) __atomic_fetch_add((P), (A), (O)) -+ -+#define my_atomic_cas32_weak_explicit(P, E, D, S, F) \ -+ __atomic_compare_exchange_n((P), (E), (D), true, (S), (F)) -+#define my_atomic_cas64_weak_explicit(P, E, D, S, F) \ -+ __atomic_compare_exchange_n((P), (E), (D), true, (S), (F)) -+#define my_atomic_casptr_weak_explicit(P, E, D, S, F) \ -+ __atomic_compare_exchange_n((P), (E), (D), true, (S), (F)) -+ -+#define my_atomic_cas32_strong_explicit(P, E, D, S, F) \ -+ __atomic_compare_exchange_n((P), (E), (D), false, (S), (F)) -+#define my_atomic_cas64_strong_explicit(P, E, D, S, F) \ -+ __atomic_compare_exchange_n((P), (E), (D), false, (S), (F)) -+#define my_atomic_casptr_strong_explicit(P, E, D, S, F) \ -+ __atomic_compare_exchange_n((P), (E), (D), false, (S), (F)) -+ -+#define my_atomic_store32(P, D) __atomic_store_n((P), (D), __ATOMIC_SEQ_CST) -+#define my_atomic_store64(P, D) __atomic_store_n((P), (D), __ATOMIC_SEQ_CST) -+#define my_atomic_storeptr(P, D) __atomic_store_n((P), (D), __ATOMIC_SEQ_CST) -+ -+#define my_atomic_load32(P) __atomic_load_n((P), __ATOMIC_SEQ_CST) -+#define my_atomic_load64(P) __atomic_load_n((P), __ATOMIC_SEQ_CST) -+#define my_atomic_loadptr(P) __atomic_load_n((P), __ATOMIC_SEQ_CST) -+ -+#define my_atomic_fas32(P, D) __atomic_exchange_n((P), (D), __ATOMIC_SEQ_CST) -+#define my_atomic_fas64(P, D) __atomic_exchange_n((P), (D), __ATOMIC_SEQ_CST) -+#define my_atomic_fasptr(P, D) __atomic_exchange_n((P), (D), __ATOMIC_SEQ_CST) -+ -+#define my_atomic_add32(P, A) __atomic_fetch_add((P), (A), __ATOMIC_SEQ_CST) -+#define my_atomic_add64(P, A) __atomic_fetch_add((P), (A), __ATOMIC_SEQ_CST) -+ -+#define my_atomic_cas32(P, E, D) \ -+ __atomic_compare_exchange_n((P), (E), (D), 0, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) -+#define my_atomic_cas64(P, E, D) \ -+ __atomic_compare_exchange_n((P), (E), (D), 0, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) -+#define my_atomic_casptr(P, E, D) \ -+ __atomic_compare_exchange_n((P), (E), (D), 0, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) -+#else -+#define MY_ATOMIC_MODE "gcc-builtins-smp" -+#define make_atomic_load_body(S) \ -+ ret= __sync_fetch_and_or(a, 0); -+#define make_atomic_store_body(S) \ -+ (void) __sync_lock_test_and_set(a, v); - #define make_atomic_add_body(S) \ - v= __sync_fetch_and_add(a, v); - #define make_atomic_fas_body(S) \ -@@ -25,24 +91,6 @@ - int ## S cmp_val= *cmp; \ - sav= __sync_val_compare_and_swap(a, cmp_val, set);\ - if (!(ret= (sav == cmp_val))) *cmp= sav -- --#ifdef MY_ATOMIC_MODE_DUMMY --#define make_atomic_load_body(S) ret= *a --#define make_atomic_store_body(S) *a= v --#define MY_ATOMIC_MODE "gcc-builtins-up" -- --#elif defined(HAVE_GCC_C11_ATOMICS) --#define MY_ATOMIC_MODE "gcc-atomics-smp" --#define make_atomic_load_body(S) \ -- ret= __atomic_load_n(a, __ATOMIC_SEQ_CST) --#define make_atomic_store_body(S) \ -- __atomic_store_n(a, v, __ATOMIC_SEQ_CST) --#else --#define MY_ATOMIC_MODE "gcc-builtins-smp" --#define make_atomic_load_body(S) \ -- ret= __sync_fetch_and_or(a, 0); --#define make_atomic_store_body(S) \ -- (void) __sync_lock_test_and_set(a, v); - #endif + IF(WITH_VALGRIND) + SET(HAVE_valgrind 1) +--- a/mysys/CMakeLists.txt ++++ b/mysys/CMakeLists.txt +@@ -78,6 +78,10 @@ TARGET_LINK_LIBRARIES(mysys dbug strings + ${LIBNSL} ${LIBM} ${LIBRT} ${LIBDL} ${LIBSOCKET} ${LIBEXECINFO} ${CRC32_LIBRARY}) + DTRACE_INSTRUMENT(mysys) - #endif /* ATOMIC_GCC_BUILTINS_INCLUDED */ -Index: mariadb-10.2.24/include/my_atomic.h -=================================================================== ---- mariadb-10.2.24.orig/include/my_atomic.h -+++ mariadb-10.2.24/include/my_atomic.h -@@ -104,7 +104,6 @@ - but can be added, if necessary. - */ - --#define intptr void * - /** - Currently we don't support 8-bit and 16-bit operations. - It can be added later if needed. -@@ -126,18 +125,20 @@ - #include "atomic/generic-msvc.h" - #elif defined(HAVE_SOLARIS_ATOMIC) - #include "atomic/solaris.h" --#elif defined(HAVE_GCC_ATOMIC_BUILTINS) -+#elif defined(HAVE_GCC_ATOMIC_BUILTINS) || defined(HAVE_GCC_C11_ATOMICS) - #include "atomic/gcc_builtins.h" - #elif defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__)) - #include "atomic/x86-gcc.h" - #endif - -- -+#ifndef HAVE_GCC_C11_ATOMICS - #ifndef make_atomic_cas_body - /* nolock.h was not able to generate even a CAS function, fall back */ - #error atomic ops for this platform are not implemented - #endif - -+#define intptr void * ++IF (HAVE_GCC_C11_ATOMICS_WITH_LIBATOMIC) ++ TARGET_LINK_LIBRARIES(mysys atomic) ++ENDIF() + - /* define missing functions by using the already generated ones */ - #ifndef make_atomic_add_body - #define make_atomic_add_body(S) \ -@@ -297,20 +298,6 @@ make_atomic_store(32) - make_atomic_store(64) - make_atomic_store(ptr) - --#if SIZEOF_LONG == 4 --#define my_atomic_addlong(A,B) my_atomic_add32((int32*) (A), (B)) --#define my_atomic_loadlong(A) my_atomic_load32((int32*) (A)) --#define my_atomic_storelong(A,B) my_atomic_store32((int32*) (A), (B)) --#define my_atomic_faslong(A,B) my_atomic_fas32((int32*) (A), (B)) --#define my_atomic_caslong(A,B,C) my_atomic_cas32((int32*) (A), (int32*) (B), (C)) --#else --#define my_atomic_addlong(A,B) my_atomic_add64((int64*) (A), (B)) --#define my_atomic_loadlong(A) my_atomic_load64((int64*) (A)) --#define my_atomic_storelong(A,B) my_atomic_store64((int64*) (A), (B)) --#define my_atomic_faslong(A,B) my_atomic_fas64((int64*) (A), (B)) --#define my_atomic_caslong(A,B,C) my_atomic_cas64((int64*) (A), (int64*) (B), (C)) --#endif -- - #ifdef _atomic_h_cleanup_ - #include _atomic_h_cleanup_ - #undef _atomic_h_cleanup_ -@@ -345,6 +332,7 @@ make_atomic_store(ptr) - #undef make_atomic_store_body - #undef make_atomic_fas_body - #undef intptr -+#endif - - /* - the macro below defines (as an expression) the code that -@@ -355,6 +343,20 @@ make_atomic_store(ptr) - #define LF_BACKOFF (1) - #endif - -+#if SIZEOF_LONG == 4 -+#define my_atomic_addlong(A,B) my_atomic_add32((int32*) (A), (B)) -+#define my_atomic_loadlong(A) my_atomic_load32((int32*) (A)) -+#define my_atomic_storelong(A,B) my_atomic_store32((int32*) (A), (B)) -+#define my_atomic_faslong(A,B) my_atomic_fas32((int32*) (A), (B)) -+#define my_atomic_caslong(A,B,C) my_atomic_cas32((int32*) (A), (int32*) (B), (C)) -+#else -+#define my_atomic_addlong(A,B) my_atomic_add64((int64*) (A), (B)) -+#define my_atomic_loadlong(A) my_atomic_load64((int64*) (A)) -+#define my_atomic_storelong(A,B) my_atomic_store64((int64*) (A), (B)) -+#define my_atomic_faslong(A,B) my_atomic_fas64((int64*) (A), (B)) -+#define my_atomic_caslong(A,B,C) my_atomic_cas64((int64*) (A), (int64*) (B), (C)) -+#endif -+ - #define MY_ATOMIC_OK 0 - #define MY_ATOMIC_NOT_1CPU 1 - extern int my_atomic_initialize(); -Index: mariadb-10.2.24/libmysqld/CMakeLists.txt -=================================================================== ---- mariadb-10.2.24.orig/libmysqld/CMakeLists.txt -+++ mariadb-10.2.24/libmysqld/CMakeLists.txt -@@ -137,7 +137,7 @@ ENDIF() - - - SET(LIBS -- dbug strings mysys mysys_ssl pcre vio -+ dbug strings mysys mysys_ssl pcre vio ${LIBATOMIC} - ${ZLIB_LIBRARY} ${SSL_LIBRARIES} - ${LIBWRAP} ${LIBCRYPT} ${LIBDL} - ${MYSQLD_STATIC_PLUGIN_LIBS} -Index: mariadb-10.2.24/sql/CMakeLists.txt -=================================================================== ---- mariadb-10.2.24.orig/sql/CMakeLists.txt -+++ mariadb-10.2.24/sql/CMakeLists.txt -@@ -168,7 +168,8 @@ TARGET_LINK_LIBRARIES(sql ${MYSQLD_STATI - ${LIBWRAP} ${LIBCRYPT} ${LIBDL} ${CMAKE_THREAD_LIBS_INIT} - ${WSREP_LIB} - ${SSL_LIBRARIES} -- ${LIBSYSTEMD}) -+ ${LIBSYSTEMD} -+ ${LIBATOMIC}) - - IF(WIN32) - SET(MYSQLD_SOURCE main.cc nt_servc.cc message.rc) -Index: mariadb-10.2.24/storage/perfschema/unittest/CMakeLists.txt -=================================================================== ---- mariadb-10.2.24.orig/storage/perfschema/unittest/CMakeLists.txt -+++ mariadb-10.2.24/storage/perfschema/unittest/CMakeLists.txt -@@ -29,4 +29,4 @@ ADD_DEPENDENCIES(pfs_server_stubs GenErr - - MY_ADD_TESTS(pfs_instr_class pfs_instr_class-oom pfs_instr pfs_instr-oom - pfs_account-oom pfs_host-oom pfs_timer pfs_user-oom pfs pfs_misc -- EXT "cc" LINK_LIBRARIES perfschema mysys pfs_server_stubs) -+ EXT "cc" LINK_LIBRARIES perfschema mysys pfs_server_stubs ${LIBATOMIC}) -Index: mariadb-10.2.24/unittest/mysys/CMakeLists.txt -=================================================================== ---- mariadb-10.2.24.orig/unittest/mysys/CMakeLists.txt -+++ mariadb-10.2.24/unittest/mysys/CMakeLists.txt -@@ -15,7 +15,7 @@ - - MY_ADD_TESTS(bitmap base64 my_atomic my_rdtsc lf my_malloc my_getopt dynstring - aes byte_order -- LINK_LIBRARIES mysys) -+ LINK_LIBRARIES mysys ${LIBATOMIC}) - MY_ADD_TESTS(my_vsnprintf LINK_LIBRARIES strings mysys) - - ADD_DEFINITIONS(${SSL_DEFINES}) -Index: mariadb-10.2.24/unittest/sql/CMakeLists.txt -=================================================================== ---- mariadb-10.2.24.orig/unittest/sql/CMakeLists.txt -+++ mariadb-10.2.24/unittest/sql/CMakeLists.txt -@@ -27,7 +27,7 @@ ELSE() - ADD_EXECUTABLE(explain_filename-t explain_filename-t.cc) + IF(HAVE_BFD_H) + TARGET_LINK_LIBRARIES(mysys bfd) + ENDIF(HAVE_BFD_H) +--- a/sql/CMakeLists.txt ++++ b/sql/CMakeLists.txt +@@ -178,6 +178,10 @@ ELSE() + SET(MYSQLD_SOURCE main.cc ${DTRACE_PROBES_ALL}) ENDIF() --TARGET_LINK_LIBRARIES(explain_filename-t sql mytap) -+TARGET_LINK_LIBRARIES(explain_filename-t sql mytap ${LIBATOMIC}) - MY_ADD_TEST(explain_filename) ++IF (HAVE_GCC_C11_ATOMICS_WITH_LIBATOMIC) ++ TARGET_LINK_LIBRARIES(sql atomic) ++ENDIF() ++ - ADD_EXECUTABLE(mf_iocache-t mf_iocache-t.cc ../../sql/mf_iocache_encr.cc) + IF(MSVC AND NOT WITHOUT_DYNAMIC_PLUGINS) + diff --git a/mariadb-10.2.24.tar.gz b/mariadb-10.2.24.tar.gz deleted file mode 100644 index 36067c5..0000000 --- a/mariadb-10.2.24.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:97f4d924e69f77abb2f650116785c2f5ef356230442534ebcbaadb51d9bb8bc4 -size 71965656 diff --git a/mariadb-10.2.24.tar.gz.sig b/mariadb-10.2.24.tar.gz.sig deleted file mode 100644 index 40674c8..0000000 --- a/mariadb-10.2.24.tar.gz.sig +++ /dev/null @@ -1,7 +0,0 @@ ------BEGIN PGP SIGNATURE----- -Version: GnuPG v2 - -iEYEABECAAYFAlzTJE4ACgkQy8sIKhu5Q9tQDwCeKknxOY+mXMPmPEd3JopVIjwf -I70An3GunClhcxs/PeHN98pu/GBX8PHK -=rlBJ ------END PGP SIGNATURE----- diff --git a/mariadb-10.2.4-fortify-and-O.patch b/mariadb-10.2.4-fortify-and-O.patch index a019735..0f3b768 100644 --- a/mariadb-10.2.4-fortify-and-O.patch +++ b/mariadb-10.2.4-fortify-and-O.patch @@ -9,14 +9,14 @@ Index: CMakeLists.txt =================================================================== --- CMakeLists.txt.orig +++ CMakeLists.txt -@@ -224,7 +224,6 @@ IF(SECURITY_HARDENED) - MY_CHECK_AND_SET_COMPILER_FLAG("-pie -fPIC") - MY_CHECK_AND_SET_COMPILER_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) +@@ -236,7 +236,6 @@ IF(NOT WITH_TSAN) + MY_CHECK_AND_SET_COMPILER_FLAG("-pie -fPIC") + MY_CHECK_AND_SET_COMPILER_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() ENDIF() - # Always enable debug sync for debug builds. Index: storage/tokudb/PerconaFT/cmake_modules/TokuSetupCompiler.cmake =================================================================== --- storage/tokudb/PerconaFT/cmake_modules/TokuSetupCompiler.cmake.orig @@ -33,7 +33,7 @@ Index: storage/tokudb/PerconaFT/cmake_modules/TokuSetupCompiler.cmake ) endif () -@@ -111,23 +109,23 @@ set_cflags_if_supported( +@@ -103,23 +101,23 @@ set_cflags_if_supported( set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fexceptions") ## set extra debugging flags and preprocessor definitions @@ -65,7 +65,7 @@ Index: storage/tokudb/PerconaFT/cmake_modules/TokuSetupCompiler.cmake else () if (APPLE) set(FLTO_OPTS "-fwhole-program") -@@ -135,10 +133,10 @@ else () +@@ -127,10 +125,10 @@ else () set(FLTO_OPTS "-fuse-linker-plugin") endif() # we overwrite this because the default passes -DNDEBUG and we don't want that diff --git a/mariadb-10.2.9-galera_cnf.patch b/mariadb-10.2.9-galera_cnf.patch deleted file mode 100644 index 49c5c73..0000000 --- a/mariadb-10.2.9-galera_cnf.patch +++ /dev/null @@ -1,29 +0,0 @@ -PATCH-P1-FIX-FEATURE: Enhance wsrep.cnf (galera configuration file) - -wsrep_on option defines whether or not wsrep replication is enabled. -It's set to OFF by default since MariaDB 10.1 but we want to mention -this option explicitly in galera configuration file in order to bring -it to the user's attention. - -Set the location of the wsrep library (wsrep_provider option). - -Maintainer: Kristyna Streitova - - -Index: mariadb-10.2.16/support-files/wsrep.cnf.sh -=================================================================== ---- mariadb-10.2.16.orig/support-files/wsrep.cnf.sh -+++ mariadb-10.2.16/support-files/wsrep.cnf.sh -@@ -31,10 +31,10 @@ bind-address=0.0.0.0 - ## - - # Enable wsrep --wsrep_on=1 -+wsrep_on=OFF - - # Full path to wsrep provider library or 'none' --wsrep_provider=none -+wsrep_provider=%{_libdir}/galera/libgalera_smm.so - - # Provider specific configuration options - #wsrep_provider_options= diff --git a/mariadb-10.3.17-fix_ppc_build.patch b/mariadb-10.3.17-fix_ppc_build.patch new file mode 100644 index 0000000..a44b84c --- /dev/null +++ b/mariadb-10.3.17-fix_ppc_build.patch @@ -0,0 +1,27 @@ +From 13e8f728ec83133b990ed21404cbac1d8a0bc74c Mon Sep 17 00:00:00 2001 +From: Sergei Golubchik +Date: Sun, 16 Jun 2019 01:25:03 +0200 +Subject: [PATCH] compilation failure on ppc with -DCMAKE_BUILD_TYPE=Debug + +if ${CRC32_LIBRARY} target has no COMPILE_FLAGS yet, +GET_TARGET_PROPERTY returns COMPILE_FLAGS-NOTFOUND, which +doesn't work very well when it's later fed back into COMPILE_FLAGS. + +GET_PROPERTY() returns an empty string in this case. +--- + extra/crc32-vpmsum/CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/extra/crc32-vpmsum/CMakeLists.txt b/extra/crc32-vpmsum/CMakeLists.txt +index 31c09a97d6af..b4adebdadf5a 100644 +--- a/extra/crc32-vpmsum/CMakeLists.txt ++++ b/extra/crc32-vpmsum/CMakeLists.txt +@@ -2,7 +2,7 @@ ADD_CONVENIENCE_LIBRARY(${CRC32_LIBRARY} $ $ - -Index: support-files/my-huge.cnf.sh -=================================================================== ---- support-files/my-huge.cnf.sh.orig -+++ support-files/my-huge.cnf.sh -@@ -131,7 +131,15 @@ server-id = 1 - #innodb_flush_log_at_trx_commit = 1 - #innodb_lock_wait_timeout = 50 - -+# The safe_mysqld script -+[safe_mysqld] -+log-error=/var/log/mysql/mysqld.log -+socket = @MYSQL_UNIX_ADDR@ -+ -+!includedir /etc/mysql -+ - [mysqldump] -+socket = @MYSQL_UNIX_ADDR@ - quick - max_allowed_packet = 16M - -Index: support-files/my-large.cnf.sh -=================================================================== ---- support-files/my-large.cnf.sh.orig -+++ support-files/my-large.cnf.sh -@@ -131,7 +131,15 @@ server-id = 1 - #innodb_flush_log_at_trx_commit = 1 - #innodb_lock_wait_timeout = 50 - -+# The safe_mysqld script -+[safe_mysqld] -+log-error=/var/log/mysql/mysqld.log -+socket = @MYSQL_UNIX_ADDR@ -+ -+!includedir /etc/mysql -+ - [mysqldump] -+socket = @MYSQL_UNIX_ADDR@ - quick - max_allowed_packet = 16M - -Index: support-files/my-medium.cnf.sh -=================================================================== ---- support-files/my-medium.cnf.sh.orig -+++ support-files/my-medium.cnf.sh -@@ -26,6 +26,8 @@ socket = @MYSQL_UNIX_ADDR@ - [mysqld] - port = @MYSQL_TCP_PORT@ - socket = @MYSQL_UNIX_ADDR@ -+# Change following line if you want to store your database elsewhere -+datadir = /var/lib/mysql - skip-external-locking - key_buffer_size = 16M - max_allowed_packet = 1M -@@ -129,7 +131,15 @@ server-id = 1 - #innodb_flush_log_at_trx_commit = 1 - #innodb_lock_wait_timeout = 50 - -+# The safe_mysqld script -+[safe_mysqld] -+log-error = /var/log/mysql/mysqld.log -+socket = @MYSQL_UNIX_ADDR@ -+ -+!includedir /etc/mysql -+ - [mysqldump] -+socket = @MYSQL_UNIX_ADDR@ - quick - max_allowed_packet = 16M - -Index: support-files/my-small.cnf.sh -=================================================================== ---- support-files/my-small.cnf.sh.orig -+++ support-files/my-small.cnf.sh -@@ -65,7 +65,15 @@ server-id = 1 - #innodb_flush_log_at_trx_commit = 1 - #innodb_lock_wait_timeout = 50 - -+# The safe_mysqld script -+[safe_mysqld] -+log-error = /var/log/mysql/mysqld.log -+socket = @MYSQL_UNIX_ADDR@ -+ -+!includedir /etc/mysql -+ - [mysqldump] -+socket = @MYSQL_UNIX_ADDR@ - quick - max_allowed_packet = 16M - diff --git a/mariadb-5.5.28-install_db-quiet.patch b/mariadb-5.5.28-install_db-quiet.patch deleted file mode 100644 index 5efc59f..0000000 --- a/mariadb-5.5.28-install_db-quiet.patch +++ /dev/null @@ -1,38 +0,0 @@ -PATCH-P0-FEATURE-SUSE: Use better comments in install_db - -We ship init script so we don't need to warn user to install one and we also -have a testsuite in separate packege. - -Maintainer: Michal Hrusecky - -Index: scripts/mysql_install_db.sh -=================================================================== ---- scripts/mysql_install_db.sh.orig -+++ scripts/mysql_install_db.sh -@@ -521,9 +521,10 @@ fi - # the screen. - if test "$cross_bootstrap" -eq 0 && test -z "$srcdir" - then -- s_echo -- s_echo "To start mysqld at boot time you have to copy" -- s_echo "support-files/mysql.server to the right place for your system" -+# Output disabled, since the SUSE RPM comes with an init script installed -+# s_echo -+# s_echo "To start mysqld at boot time you have to copy" -+# s_echo "support-files/mysql.server to the right place for your system" - - if test "$auth_root_authentication_method" = normal - then -@@ -551,10 +552,9 @@ then - then - echo - echo "You can start the MariaDB daemon with:" -- echo "cd '$basedir' ; $bindir/mysqld_safe --datadir='$ldata'" -+ echo "rcmysql start" - echo -- echo "You can test the MariaDB daemon with mysql-test-run.pl" -- echo "cd '$basedir/mysql-test' ; perl mysql-test-run.pl" -+ echo "You can test the MariaDB daemon with mariadb-test package" - fi - - echo diff --git a/mariadb.changes b/mariadb.changes index 51b3825..3361ff9 100644 --- a/mariadb.changes +++ b/mariadb.changes @@ -1,3 +1,171 @@ +------------------------------------------------------------------- +Thu Aug 8 10:06:04 UTC 2019 - Kristyna Streitova + +- remove sql_mode from my.ini/my.cnf as NO_ENGINE_SUBSTITUTION and + STRICT_TRANS_TABLES are already set by default from version + 10.2.4 [bsc#1144314] + +------------------------------------------------------------------- +Wed Aug 7 11:22:39 UTC 2019 - Kristyna Streitova + +- add mariadb-10.3.17-fix_ppc_build.patch to fix a compilation + failure for ppc if ${CRC32_LIBRARY} target has no COMPILE_FLAGS + yet. Then GET_TARGET_PROPERTY returns COMPILE_FLAGS-NOTFOUND, + which doesn't work very well when it's later fed back into + COMPILE_FLAGS. +- _constraints: increase the memory because of the ppc build +- adjust mysql-systemd-helper ("shutdown protected MySQL" section) + so it checks 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 [bsc#1143215] + +------------------------------------------------------------------- +Fri Aug 2 10:32:48 UTC 2019 - Kristyna Streitova + +- update to 10.3.17 [bsc#1141798] + * notable changes: + * MDEV-19795: Merge upstream MyRocks. + * MDEV-17228: Encrypted temporary tables are not encrypted. + * MDEV-18328: Disks Plugin is now stable and requires the FILE + privilege. + * Merge relevant InnoDB changes from MySQL 5.7.27 + * Adjust spin loops to the x86 PAUSE instruction latency + * CREATE TABLE: MDEV-19292, MDEV-20102 + * ALTER TABLE: MDEV-15641, MDEV-19630, MDEV-19916, MDEV-19974 + * Indexed virtual columns: MDEV-16222, MDEV-17005, MDEV-19870 + * FULLTEXT INDEX: MDEV-14154 + * Encryption: MDEV-17228, MDEV-19914 + * Galera + FOREIGN KEY: MDEV-19660 + * Recovery & Mariabackup: MDEV-19978 + * MDEV-19781: Add page id matching check in innochecksum tool + * MDEV-20091: DROP TEMPORARY table is logged despite no CREATE + was logged + * MDEV-19427: mysql_upgrade_service throws exception upgrading + from 10.0 to 10.3 + * MDEV-19814: Server crash in row_upd_del_mark_clust_rec or + Assertion + * MDEV-17363: Compressed columns cannot be restored from dump + * fixes for the following security vulnerabilities: + CVE-2019-2805, CVE-2019-2740, CVE-2019-2739, CVE-2019-2737, + CVE-2019-2758 + * release notes and changelog: + https://mariadb.com/kb/en/library/mariadb-10317-release-notes + https://mariadb.com/kb/en/library/mariadb-10317-changelog +- add "BuildRequires: python3" as some tests and myrocks_hotbackup + script need python3. Make the PYTHON_SHEBANG value configurable + [bsc#1142909] +- remove "innodb_file_format" option from my.ini (my.cnf) file that + was removed in MariaDB 10.3.1. Also remove "innodb_file_per_table=ON" + option that is by default ON and it's redundant now. +- remove mariadb-10.2.9-galera_cnf.patch as it's not clear what the + correct path to galera wsrep provider is while users can use + galera 3, galera 4 or galera compiled on their own +- add "Requires: python3-mysqlclient" that is needed by + myrocks_hotbackup script + +------------------------------------------------------------------- +Fri Aug 2 08:14:49 UTC 2019 - Martin Liška + +- Use FAT LTO objects in order to provide proper static library. + +------------------------------------------------------------------- +Thu Jul 25 11:07:30 UTC 2019 - Kristyna Streitova + +- remove client_ed25519.so plugin because it's shipped in + mariadb-connector-c package (libmariadb_plugins) + +------------------------------------------------------------------- +Wed Jul 24 12:49:32 UTC 2019 - matthias.gerstner@suse.com + +- removal of SuSEfirewall2 service, since SuSEfirewall2 has been replaced by + firewalld, see [1]. + + [1]: https://lists.opensuse.org/opensuse-factory/2019-01/msg00490.html + +------------------------------------------------------------------- +Mon Jun 17 13:39:54 UTC 2019 - Kristýna Streitová + +- update to 10.3.16 [bsc#1108088] + * notable changes: + * MDEV-19490: show tables fails when selecting the + information_schema database + * MDEV-19491: multi-update with triggers and stored routines + * MDEV-19541: InnoDB crashes when trying to recover + a corrupted page + * MDEV-19725: Incorrect error handling in ALTER TABLE + * MDEV-19445: FULLTEXT INDEX fix + * MDEV-19486: System Versioning fix + * MDEV-19509: InnoDB skips the tablespace in rotation list + * MDEV-19614: SET GLOBAL innodb_ deadlock due to + LOCK_global_system_variables + * MDEV-17458: Unable to start galera node + * MDEV-17456: Malicious SUPER user can possibly change audit + log configuration without leaving traces + * MDEV-19588: Wrong results from query, using left join + * MDEV-19258: RIGHT JOIN hangs in MariaDB + * Virtual columns fixes: MDEV-19027, MDEV-19602 + * Crash recovery fixes: MDEV-13080, MDEV-19587, MDEV-19435 + * MDEV-11094: Fixed row-based event applying with an error anymore + when the events aim at the blackhole engine and row annotation + is enabled + * MDEV-19076: Fixed slave_parallel_mode=optimistic did not always + properly order replication events on temporary tables in some + case to attempt execution before a parent event has been already + processed + * MDEV-19158: Fixed duplicated entries in binlog occurred in + combination of LOCK TABLES and binlog_format=MIXED when a being + locked table was under replication unsafe operation + * fixes for the following security vulnerabilities: none + * release notes and changelog: + https://mariadb.com/kb/en/library/mariadb-10316-release-notes + https://mariadb.com/kb/en/library/mariadb-10316-changelog +- fix reading options for multiple instances if my${INSTANCE}.cnf + is used. Also remove "umask 077" from mysql-systemd-helper that + causes that new datadirs are created with wrong permissions. Set + correct permissions for files created by us (mysql_upgrade_info, + .run-mysql_upgrade) [bsc#1132666] +- remove mariadb-5.5.28-install_db-quiet.patch and add "--rpm" + option to the mysql_install_db script that does basically the same + [bsc#1080891] +- remove mariadb-10.1.12-deharcode-libdir.patch because it's not + needed - we don't build libmariadb library in mariadb package + anymore so we don't need to take care about LIBDIR and PLUGINDIR + here. Moreover we shouldn't (and we don't) touch *_RPM + variables as they are internal) [bsc#1080891] +- update suse_skipped_tests.list + +------------------------------------------------------------------- +Tue Jun 4 12:01:57 UTC 2019 - Kristýna Streitová + +- update to 10.3.15 + * see changes in 10.3 series + https://mariadb.com/kb/en/library/changes-improvements-in-mariadb-103/ + * fixes for the following security vulnerabilities: + [CVE-2019-2503] (the rest was already applied for 10.2) +- remove mysql-community-server-5.1.45-multi-configuration.patch as + we have the same configuration in /etc/my.cnf and it doesn't make + any sense to keep it twice. Moreover the patched file + support-files/my-medium.cnf.sh was removed in upstream +- remove mariadb-5.2.3-cnf.patch as all patched files were removed + upstream +- refresh mariadb-10.2.4-fortify-and-O.patch +- refresh mariadb-10.2.19-link-and-enable-c++11-atomics.patch and + use a simplified version from Debian +- refresh README.install and suse-test-run +- remove caching_sha2_password.so as it's shipped in mariadb-connector-c + package (libmariadb_plugins) +- rename libmysqld subpackage (embedded library) to libmariadbd as + libmysqld.so was renamed to libmariadbd.so (MDEV-14953) +- simplify removing static libs (we don't need to have .static) +- add perl(Memoize) and perl(Symbol) to BuildRequires and Requires + that are needed for tests +- replace Requires pwdutils with shadow +- build RocksDB only for x86_64 as other platforms are not supported +- remove xtrabackup scripts as we already removed xtrabackup requires + and it doesn't work for MariaDB 10.3 anyway +- run spec-cleaner + ------------------------------------------------------------------- Tue May 14 12:20:09 UTC 2019 - Kristýna Streitová diff --git a/mariadb.spec b/mariadb.spec index 3375f47..99ccf1a 100644 --- a/mariadb.spec +++ b/mariadb.spec @@ -1,7 +1,7 @@ # # spec file for package mariadb # -# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -12,11 +12,11 @@ # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. -# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# Please submit bugfixes or comments via https://bugs.opensuse.org/ # -# libmysqld soname +# 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 @@ -37,26 +37,34 @@ # and a build without jemalloc is not supported upstream (MDEV-15034) # Also we can't use PerconaFT (AGPL licence) that is needed for tokudb %define with_tokudb 0 -# Mroonga currently only supports the x86_64 architecture -# see https://mariadb.com/kb/en/mariadb/about-mroonga/ +# 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 +# Define python interpreter version +%if 0%{?suse_version} >= 1500 +%define python_path /usr/bin/python3 +%else +%define python_path /usr/bin/python2 %endif Name: mariadb -Version: 10.2.24 +Version: 10.3.17 Release: 0 Summary: Server part of MariaDB License: SUSE-GPL-2.0-with-FLOSS-exception Group: Productivity/Databases/Servers -Url: https://www.mariadb.org +URL: https://www.mariadb.org Source: https://downloads.mariadb.org/f/mariadb-%{version}/source/mariadb-%{version}.tar.gz Source1: %{name}-%{version}.tar.gz.sig Source2: %{name}.keyring Source4: README.debug Source5: suse-test-run -Source6: mysql.SuSEfirewall2 Source7: README.install Source14: my.ini Source15: mariadb.service @@ -64,30 +72,34 @@ Source16: mariadb.target Source17: mysql-systemd-helper Source18: mariadb@.service Source50: suse_skipped_tests.list -Patch0: mysql-community-server-5.1.45-multi-configuration.patch Patch1: mariadb-10.2.4-logrotate.patch -Patch2: mariadb-5.5.28-install_db-quiet.patch Patch3: mariadb-10.1.1-mysqld_multi-features.patch -Patch4: mariadb-5.2.3-cnf.patch -Patch6: mariadb-10.1.12-deharcode-libdir.patch Patch7: mariadb-10.0.15-logrotate-su.patch Patch8: mariadb-10.2.4-fortify-and-O.patch Patch9: mariadb-10.2.19-link-and-enable-c++11-atomics.patch -Patch11: mariadb-10.2.9-galera_cnf.patch +Patch10: mariadb-10.3.17-fix_ppc_build.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: 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 @@ -95,7 +107,9 @@ BuildRequires: pam-devel BuildRequires: pcre-devel BuildRequires: pkgconfig BuildRequires: procps -BuildRequires: pwdutils +# Some tests and myrocks_hotbackup script need python3 +BuildRequires: python3 +BuildRequires: shadow BuildRequires: sqlite BuildRequires: tcpd-devel # Tests requires time and ps and some perl modules @@ -110,7 +124,9 @@ 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) @@ -123,12 +139,14 @@ Requires: %{name}-errormessages = %{version} # It can be switched back to plain "hostname" when this bug is resolved Requires: /bin/hostname Requires: perl-base -Requires(pre): pwdutils +# myrocks_hotbackup needs MySQLdb - if we want to use it under python3, we need python3-mysqlclient +Requires: python3-mysqlclient +Requires(pre): shadow Recommends: logrotate -Conflicts: otherproviders(mariadb-server) -Conflicts: otherproviders(mysql) -Conflicts: otherproviders(mysql-debug) -Conflicts: otherproviders(mysql-server) +Conflicts: mariadb-server +Conflicts: mysql +Conflicts: mysql-debug +Conflicts: mysql-server # Compatibility with Fedora/CentOS Provides: mariadb-server = %{version} Provides: mysql-server = %{version} @@ -151,7 +169,7 @@ Obsoletes: mysql-debug < %{version} %ifnarch i586 %{arm} BuildRequires: lzo-devel %endif -BuildRequires: libedit-devel +# boost and Judy are required for oograph %if 0%{with_oqgraph} > 0 BuildRequires: judy-devel %if 0%{?suse_version} > 1315 @@ -171,25 +189,29 @@ MySQL Community Server. This package only contains the server-side programs. -%package -n libmysqld%{soname} +%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 libmysqld%{soname} +%description -n libmariadbd%{soname} This package contains MariaDB library that allows to run an embedded MariaDB server inside a client application. -%package -n libmysqld-devel +%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: libmysqld%{soname} = %{version} +Requires: libmariadbd%{soname} = %{version} Requires: tcpd-devel +Provides: libmysqld-devel = %{version}-%{release} +Obsoletes: libmysqld-devel < %{version}-%{release} -%description -n libmysqld-devel +%description -n libmariadbd-devel This package contains the development header files and libraries for developing applications that embed the MariaDB. @@ -199,8 +221,8 @@ Group: Productivity/Databases/Clients Requires: %{name}-errormessages = %{version} # Explicit requires to pull in charsets for errormessages Requires: libmariadb3 >= 3.0 -Requires(pre): pwdutils -Conflicts: otherproviders(mysql-client) +Requires(pre): shadow +Conflicts: mysql-client Provides: mysql-client = %{version} Obsoletes: mysql-client < %{version} @@ -230,7 +252,7 @@ This package contains configuration files and scripts that are needed for running MariaDB Galera Cluster. %package errormessages -Summary: The error messages files required by server, client and libmysqld +Summary: The error messages files required by server, client and libmariadbd Group: System/Localization BuildArch: noarch @@ -243,7 +265,7 @@ Summary: Benchmarks for MariaDB Group: Productivity/Databases/Tools Requires: %{name}-client Requires: perl-DBD-mysql -Conflicts: otherproviders(mysql-bench) +Conflicts: mysql-bench Provides: mysql-bench = %{version} Obsoletes: mysql-bench < %{version} @@ -273,11 +295,13 @@ 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: otherproviders(mysql-test) +Conflicts: mysql-test Provides: mysql-test = %{version} Obsoletes: mysql-test < %{version} @@ -290,7 +314,7 @@ To run the testsuite, run %{_datadir}/mysql-test/suse-test-run. Summary: MariaDB tools Group: Productivity/Databases/Servers Requires: perl-DBD-mysql -Conflicts: otherproviders(mysql-tools) +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} @@ -305,16 +329,12 @@ applications with MariaDB. %setup -q # Remove JAR files from the tarball (used for testing from the source) find . -name "*.jar" -type f -exec rm --verbose -f {} \; -%patch0 -p0 -%patch1 -p0 -%patch2 -p0 -%patch3 -p0 -%patch4 -p0 -%patch6 -p0 -%patch7 -p0 -%patch8 -p0 +%patch1 +%patch3 +%patch7 +%patch8 %patch9 -p1 -%patch11 -p1 +%patch10 -p1 cp %{_sourcedir}/suse-test-run . @@ -351,6 +371,7 @@ rm -r storage/tokudb/mysql-test/tokudb/t/*.py rm -rf storage/tokudb/PerconaFT %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" @@ -387,6 +408,10 @@ export CXXFLAGS="$CFLAGS -felide-constructors" %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 \ @@ -461,10 +486,8 @@ 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 most static libs (FIXME: don't build them at all...) -[ \! -f "%{buildroot}%{_libdir}/"libmysqld.a ] || mv "%{buildroot}%{_libdir}/"libmysqld.a "%{buildroot}%{_libdir}/"libmysqld.static -rm -f %{buildroot}%{_libdir}/*.a -[ \! -f "%{buildroot}%{_libdir}/"libmysqld.static ] || mv "%{buildroot}%{_libdir}/"libmysqld.static "%{buildroot}%{_libdir}/"libmysqld.a +# 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} @@ -478,6 +501,9 @@ rm -f %{buildroot}%{_datadir}/mysql/mysql.server rm -f %{buildroot}%{_datadir}/mysql/mysqld_multi.server # 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' @@ -489,18 +515,18 @@ rm -f %{buildroot}%{_sysusersdir}/sysusers.conf # Remove client libraries that are now provided in mariadb-connector-c # Client library and links -rm %{buildroot}%{_libdir}/libmariadb*.so.* +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} +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}%{_datadir}/pkgconfig/mariadb.pc rm -f %{buildroot}%{_prefix}/lib/pkgconfig/libmariadb.pc -rm -f %{buildroot}%{_prefix}/lib64/pkgconfig/libmariadb.pc +rm -f %{buildroot}%{_libdir}/pkgconfig/libmariadb.pc rm %{buildroot}%{_datadir}/aclocal/mysql.m4 rm %{buildroot}%{_mandir}/man1/mysql_config*.1* rm -r %{buildroot}%{_includedir}/mysql @@ -527,7 +553,7 @@ if [ -f scripts/mysqlaccess.conf ] ; then fi # mariadb-galera.files -filelist galera_new_cluster galera_recovery wsrep_sst_common wsrep_sst_mariabackup wsrep_sst_mysqldump wsrep_sst_rsync wsrep_sst_xtrabackup-v2 wsrep_sst_xtrabackup 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 >mariadb-galera.files # mariadb-bench.files filelist mysqlslap >mariadb-bench.files @@ -588,9 +614,6 @@ cat >> %{buildroot}%{_tmpfilesdir}/mariadb.conf < - -Index: support-files/my-medium.cnf.sh -=================================================================== ---- support-files/my-medium.cnf.sh.orig -+++ support-files/my-medium.cnf.sh -@@ -154,3 +154,46 @@ write_buffer = 2M - - [mysqlhotcopy] - interactive-timeout -+ -+[mysqld_multi] -+mysqld = /usr/bin/mysqld_safe -+mysqladmin = /usr/bin/mysqladmin -+log = /var/log/mysqld_multi.log -+# user = multi_admin -+# password = secret -+ -+# 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 = @MYSQL_TCP_PORT@ -+# 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 -+ diff --git a/mysql-systemd-helper b/mysql-systemd-helper index c2b1f72..7676af2 100644 --- a/mysql-systemd-helper +++ b/mysql-systemd-helper @@ -20,7 +20,7 @@ read_config() { # Read options - important for multi setup if [[ -n "$INSTANCE" ]]; then - opts="$(/usr/bin/my_print_defaults mysqld mysqld_multi "$INSTANCE")" + opts="$(/usr/bin/my_print_defaults mysqld mysqld_multi "$INSTANCE" --defaults-extra-file=/etc/my${INSTANCE}.cnf)" tmp_opts="$opts" config="/etc/my${INSTANCE}.cnf" else @@ -52,9 +52,10 @@ read_config() { mysql_install() { if [[ ! -d "$datadir/mysql" ]]; then echo "Creating MySQL privilege database... " - mysql_install_db --user="$mysql_daemon_user" --datadir="$datadir" || \ - die "Creation of MySQL databse in $datadir failed" + mysql_install_db --rpm --user="$mysql_daemon_user" --datadir="$datadir" || \ + die "Creation of MySQL database in $datadir failed" echo -n "$MYSQLVER" > "$datadir"/mysql_upgrade_info + chmod 640 "$datadir/mysql_upgrade_info" fi } @@ -118,18 +119,26 @@ mysql_upgrade() { rm -f "$datadir/.run-mysql_upgrade" [[ $(grep -q "^$MYSQLVER" "$datadir/mysql_upgrade_info" 2> /dev/null) ]] || \ echo -n "$MYSQLVER" > "$datadir/mysql_upgrade_info" + chmod 640 "$datadir/mysql_upgrade_info" else echo "Upgrade failed" up_ok="false" fi # Shut down MySQL - echo "Shuting down protected MySQL" - kill "$(cat "$protected/mysqld.pid")" + 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 || break + /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 "$(cat "$protected/mysqld.pid")" + /usr/bin/mysqladmin --socket="$protected/mysql.sock" ping > /dev/null 2>&1 && kill -9 $protected_pid # Cleanup echo "Final cleanup" @@ -167,9 +176,6 @@ mysql_start() { # We rely on output in english at some points LC_ALL=C -# set the default umask bsc#1020976 -umask 077 - INSTANCE="$2" read_config mkdir -p /run/mysql diff --git a/mysql.SuSEfirewall2 b/mysql.SuSEfirewall2 deleted file mode 100644 index cd28da8..0000000 --- a/mysql.SuSEfirewall2 +++ /dev/null @@ -1,6 +0,0 @@ -## Name: MySQL server -## Description: opens ports for MySQL in order to allow other hosts connect to it - -# space separated list of allowed TCP ports -TCP="3306" - diff --git a/suse-test-run b/suse-test-run index 2d790b4..e3948c2 100644 --- a/suse-test-run +++ b/suse-test-run @@ -1,6 +1,6 @@ #!/usr/bin/perl # -# Test the SUSE mysql package using the MySQL testsuite +# 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/"; diff --git a/suse_skipped_tests.list b/suse_skipped_tests.list index 3e0a6a2..de8cedc 100644 --- a/suse_skipped_tests.list +++ b/suse_skipped_tests.list @@ -2,8 +2,7 @@ # The SSL tests that are failing correctly main.ssl_7937 : bsc#937835, MDEV-8404 -main.ssl_crl_clients : bsc#937835, MDEV-8404 -main.ssl_cert_verify : bsc#937835, MDEV-8404 +main.ssl_crl : bsc#937835, MDEV-8404 main.ssl_8k_key : bsc#937835, MDEV-8404 # Main and perfschema tests @@ -12,11 +11,6 @@ perfschema.nesting : bsc#937836, MDEV-8446 perfschema.socket_summary_by_event_name_func : bsc#937836, MDEV-8446 perfschema.socket_summary_by_instance_func : bsc#937836, MDEV-8446 -# It's not a critical test. The problem is that it's not easy to -# unify the correct number of the repetition in the test for all -# various platforms (fails for s390x) -main.func_regexp_pcre : bsc#1058722 comment 11 - # Failing because of "Self Signed Certificate in the Certificate Chain" perfschema.cnf_option : all rpl.rpl_row_img_blobs : all @@ -25,53 +19,30 @@ rpl.rpl_row_img_eng_noblob : all #---------------------------------------------------------------- -# Failing with OpenSSL 1.1.1. -main.ssl_cipher : MDEV-17184 -main.openssl_6975 : MDEV-17184 -main.ssl : MDEV-17184 - # Needs to be investigated (issues trackers will be added) -sys_vars.slave_parallel_threads_basic : all -main.mysqldump : all -unit.lf : all -unit.my_atomic : all - -mariabackup.huge_lsn : x86_64 -rocksdb.deadlock : x86_64 - -rocksdb.2pc_group_commit : aarch64, ppc64le, x86_64, armv7l -rocksdb.read_only_tx : aarch64, ppc64le, x86_64, armv7l -rocksdb.shutdown : aarch64, ppc64le, x86_64, armv7l -rocksdb.index_merge_rocksdb : aarch64, ppc64le, x86_64, armv7l - -main.ps : ppc64le -main.type_ranges : ppc64le -main.select : ppc64le -main.select_jcl6 : ppc64le -main.derived_cond_pushdown : ppc64le -main.select_pkeycache : ppc64le -main.sp : ppc64le -main.type_float : ppc64le -main.type_newdecimal : ppc64le -rocksdb.type_float : ppc64le -rocksdb.col_opt_not_null : ppc64le -rocksdb.col_opt_null : ppc64le -rocksdb.col_opt_unsigned : ppc64le -innodb.temporary_table_optimization : ppc64le - -rocksdb.bulk_load_errors : armv7l -encryption.innodb-encryption-alter : armv7l -plugins.processlist : armv7l -rocksdb.add_index_inplace : armv7l -rocksdb.bulk_load_unsorted : armv7l -rocksdb.bulk_load_unsorted_rev : armv7l -rocksdb.commit_in_the_middle_ddl : armv7l -rocksdb.concurrent_alter : armv7l -rocksdb.drop_index_inplace : armv7l -rocksdb.rocksdb : armv7l -rocksdb_sys_vars.rocksdb_merge_buf_size_basic : armv7l -rocksdb_sys_vars.rocksdb_merge_combine_read_size_basic : armv7l -rocksdb_sys_vars.rocksdb_merge_tmp_file_removal_delay_ms_basic : armv7l -rocksdb.unique_sec : armv7l - -sys_vars.innodb_ft_result_cache_limit_32 : s390 +sys_vars.slave_parallel_threads_basic : since 10.3.16 - x86_64, i386, s390x, armv7l +rocksdb.2pc_group_commit : since 10.3.16 - x86_64 +rocksdb.read_only_tx : since 10.3.16 - x86_64 +rocksdb.shutdown : since 10.3.16 - x86_64 +rocksdb.index_merge_rocksdb : since 10.3.16 - x86_64 +rocksdb_rpl.mdev12179 : since 10.3.16 - x86_64 +main.gis_notembedded : since 10.3.16 - x86_64, i386, s390x, armv7l +unit.conc_ps_bugs : since 10.3.16 - x86_64, i386, s390x, armv7l +handler.heap : since 10.3.16 - s390x +federated.federatedx_versioning : since 10.3.16 - amrv7l +versioning.partition : since 10.3.16 - amrv7l +versioning.online : since 10.3.16 - amrv7l +versioning.auto_increment : since 10.3.16 - amrv7l +versioning.truncate : since 10.3.16 - amrv7l +versioning.select : since 10.3.16 - amrv7l +versioning.delete : since 10.3.16 - amrv7l +versioning.foreign : since 10.3.16 - amrv7l +versioning.insert : since 10.3.16 - amrv7l +versioning.replace : since 10.3.16 - amrv7l +versioning.select2 : since 10.3.16 - amrv7l +versioning.update : since 10.3.16 - amrv7l +versioning.alter : since 10.3.16 - amrv7l +versioning.commit_id : since 10.3.16 - amrv7l +versioning.trx_id : since 10.3.16 - amrv7l +mariabackup.system_versioning : since 10.3.16 - amrv7l +versioning.insert2 : since 10.3.16 - amrv7l