Merge remote-tracking branch 'fedora/rawhide' into c10s
This commit is contained in:
		
						commit
						2652580919
					
				
							
								
								
									
										3
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @ -0,0 +1,3 @@ | |||||||
|  | /*/ | ||||||
|  | /*.rpm | ||||||
|  | /*.tar.gz | ||||||
							
								
								
									
										4
									
								
								README.mysql-docs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								README.mysql-docs
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,4 @@ | |||||||
|  | The official MySQL documentation is not freely redistributable, so we cannot | ||||||
|  | include it in RHEL or Fedora.  You can find it on-line at | ||||||
|  | 
 | ||||||
|  | http://dev.mysql.com/doc/ | ||||||
							
								
								
									
										9
									
								
								README.mysql-license
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								README.mysql-license
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,9 @@ | |||||||
|  | MySQL is distributed under GPL v2, but there are some licensing exceptions | ||||||
|  | that allow the client libraries to be linked with a non-GPL application, | ||||||
|  | so long as the application is under a license approved by Oracle. | ||||||
|  | For details see | ||||||
|  | 
 | ||||||
|  | http://www.mysql.com/about/legal/licensing/foss-exception/ | ||||||
|  | 
 | ||||||
|  | Some innobase code from Percona and Google is under BSD license. | ||||||
|  | Some code related to test-suite is under LGPLv2. | ||||||
							
								
								
									
										31
									
								
								boost-1.57.0-mpl-print.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								boost-1.57.0-mpl-print.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,31 @@ | |||||||
|  | diff -up boost_1_57_0/boost/mpl/print.hpp\~ boost_1_57_0/boost/mpl/print.hpp
 | ||||||
|  | --- boost_1_57_0/boost/mpl/print.hpp~	2014-07-09 23:12:31.000000000 +0200
 | ||||||
|  | +++ boost_1_57_0/boost/mpl/print.hpp	2015-01-20 12:44:59.621400948 +0100
 | ||||||
|  | @@ -52,16 +52,15 @@ struct print
 | ||||||
|  |      enum { n = sizeof(T) + -1 }; | ||||||
|  |  #elif defined(__MWERKS__) | ||||||
|  |      void f(int); | ||||||
|  | -#else 
 | ||||||
|  | -    enum {
 | ||||||
|  | -        n =
 | ||||||
|  | -# if defined(__EDG_VERSION__)
 | ||||||
|  | -           aux::dependent_unsigned<T>::value > -1
 | ||||||
|  | -# else 
 | ||||||
|  | -           sizeof(T) > -1
 | ||||||
|  | -# endif 
 | ||||||
|  | -        };
 | ||||||
|  | -#endif 
 | ||||||
|  | +#elif defined(__EDG_VERSION__)
 | ||||||
|  | +    enum { n = aux::dependent_unsigned<T>::value > -1 };
 | ||||||
|  | +#elif defined(BOOST_GCC)
 | ||||||
|  | +    enum { n1 };
 | ||||||
|  | +    enum { n2 };
 | ||||||
|  | +    enum { n = n1 != n2 };
 | ||||||
|  | +#else
 | ||||||
|  | +    enum { n = sizeof(T) > -1 };
 | ||||||
|  | +#endif
 | ||||||
|  |  }; | ||||||
|  |   | ||||||
|  |  #if defined(BOOST_MSVC) | ||||||
|  | 
 | ||||||
|  | Diff finished.  Tue Jan 20 12:45:03 2015 | ||||||
							
								
								
									
										120
									
								
								boost-1.58.0-pool.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										120
									
								
								boost-1.58.0-pool.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,120 @@ | |||||||
|  | Index: boost/pool/pool.hpp
 | ||||||
|  | ===================================================================
 | ||||||
|  | --- boost/pool/pool.hpp	(revision 78317)
 | ||||||
|  | +++ boost/pool/pool.hpp	(revision 78326)
 | ||||||
|  | @@ -27,4 +27,6 @@
 | ||||||
|  |  #include <boost/pool/poolfwd.hpp> | ||||||
|  |   | ||||||
|  | +// std::numeric_limits
 | ||||||
|  | +#include <boost/limits.hpp>
 | ||||||
|  |  // boost::integer::static_lcm | ||||||
|  |  #include <boost/integer/common_factor_ct.hpp> | ||||||
|  | @@ -358,4 +360,11 @@
 | ||||||
|  |      } | ||||||
|  |   | ||||||
|  | +    size_type max_chunks() const
 | ||||||
|  | +    { //! Calculated maximum number of memory chunks that can be allocated in a single call by this Pool.
 | ||||||
|  | +      size_type partition_size = alloc_size();
 | ||||||
|  | +      size_type POD_size = integer::static_lcm<sizeof(size_type), sizeof(void *)>::value + sizeof(size_type);
 | ||||||
|  | +      return (std::numeric_limits<size_type>::max() - POD_size) / alloc_size();
 | ||||||
|  | +    }
 | ||||||
|  | +
 | ||||||
|  |      static void * & nextof(void * const ptr) | ||||||
|  |      { //! \returns Pointer dereferenced. | ||||||
|  | @@ -377,5 +388,7 @@
 | ||||||
|  |        //!   the first time that object needs to allocate system memory. | ||||||
|  |        //!   The default is 32. This parameter may not be 0. | ||||||
|  | -      //! \param nmax_size is the maximum number of chunks to allocate in one block.
 | ||||||
|  | +      //! \param nmax_size is the maximum number of chunks to allocate in one block.			
 | ||||||
|  | +      set_next_size(nnext_size);
 | ||||||
|  | +      set_max_size(nmax_size);
 | ||||||
|  |      } | ||||||
|  |   | ||||||
|  | @@ -400,7 +413,7 @@
 | ||||||
|  |      } | ||||||
|  |      void set_next_size(const size_type nnext_size) | ||||||
|  | -    { //! Set number of chunks to request from the system the next time that object needs to allocate system memory. This value should never be set to 0.
 | ||||||
|  | -      //! \returns nnext_size.
 | ||||||
|  | -      next_size = start_size = nnext_size;
 | ||||||
|  | +    { //! Set number of chunks to request from the system the next time that object needs to allocate system memory. This value should never be set to 0.     
 | ||||||
|  | +      BOOST_USING_STD_MIN();
 | ||||||
|  | +      next_size = start_size = min BOOST_PREVENT_MACRO_SUBSTITUTION(nnext_size, max_chunks());
 | ||||||
|  |      } | ||||||
|  |      size_type get_max_size() const | ||||||
|  | @@ -410,5 +423,6 @@
 | ||||||
|  |      void set_max_size(const size_type nmax_size) | ||||||
|  |      { //! Set max_size. | ||||||
|  | -      max_size = nmax_size;
 | ||||||
|  | +      BOOST_USING_STD_MIN();
 | ||||||
|  | +      max_size = min BOOST_PREVENT_MACRO_SUBSTITUTION(nmax_size, max_chunks());
 | ||||||
|  |      } | ||||||
|  |      size_type get_requested_size() const | ||||||
|  | @@ -713,7 +727,7 @@
 | ||||||
|  |    BOOST_USING_STD_MIN(); | ||||||
|  |    if(!max_size) | ||||||
|  | -    next_size <<= 1;
 | ||||||
|  | +    set_next_size(next_size << 1);
 | ||||||
|  |    else if( next_size*partition_size/requested_size < max_size) | ||||||
|  | -    next_size = min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size*requested_size/ partition_size);
 | ||||||
|  | +    set_next_size(min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size * requested_size / partition_size));
 | ||||||
|  |   | ||||||
|  |    //  initialize it, | ||||||
|  | @@ -753,7 +767,7 @@
 | ||||||
|  |    BOOST_USING_STD_MIN(); | ||||||
|  |    if(!max_size) | ||||||
|  | -    next_size <<= 1;
 | ||||||
|  | +    set_next_size(next_size << 1);
 | ||||||
|  |    else if( next_size*partition_size/requested_size < max_size) | ||||||
|  | -    next_size = min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size*requested_size/ partition_size);
 | ||||||
|  | +    set_next_size(min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size * requested_size / partition_size));
 | ||||||
|  |   | ||||||
|  |    //  initialize it, | ||||||
|  | @@ -797,4 +811,6 @@
 | ||||||
|  |    //! \returns Address of chunk n if allocated ok. | ||||||
|  |    //! \returns 0 if not enough memory for n chunks. | ||||||
|  | +  if (n > max_chunks())
 | ||||||
|  | +    return 0;
 | ||||||
|  |   | ||||||
|  |    const size_type partition_size = alloc_size(); | ||||||
|  | @@ -845,7 +861,7 @@
 | ||||||
|  |    BOOST_USING_STD_MIN(); | ||||||
|  |    if(!max_size) | ||||||
|  | -    next_size <<= 1;
 | ||||||
|  | +    set_next_size(next_size << 1);
 | ||||||
|  |    else if( next_size*partition_size/requested_size < max_size) | ||||||
|  | -    next_size = min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size*requested_size/ partition_size);
 | ||||||
|  | +    set_next_size(min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size * requested_size / partition_size));
 | ||||||
|  |   | ||||||
|  |    //  insert it into the list, | ||||||
|  | Index: libs/pool/test/test_bug_6701.cpp
 | ||||||
|  | ===================================================================
 | ||||||
|  | --- libs/pool/test/test_bug_6701.cpp	(revision 78326)
 | ||||||
|  | +++ libs/pool/test/test_bug_6701.cpp	(revision 78326)
 | ||||||
|  | @@ -0,0 +1,27 @@
 | ||||||
|  | +/* Copyright (C) 2012 Étienne Dupuis
 | ||||||
|  | +* 
 | ||||||
|  | +* Use, modification and distribution is subject to the 
 | ||||||
|  | +* Boost Software License, Version 1.0. (See accompanying
 | ||||||
|  | +* file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 | ||||||
|  | +*/
 | ||||||
|  | +
 | ||||||
|  | +// Test of bug #6701 (https://svn.boost.org/trac/boost/ticket/6701)
 | ||||||
|  | +
 | ||||||
|  | +#include <boost/pool/object_pool.hpp>
 | ||||||
|  | +#include <boost/limits.hpp>
 | ||||||
|  | +
 | ||||||
|  | +int main()
 | ||||||
|  | +{
 | ||||||
|  | +  boost::pool<> p(1024, std::numeric_limits<size_t>::max() / 768);
 | ||||||
|  | +
 | ||||||
|  | +  void *x = p.malloc();
 | ||||||
|  | +  BOOST_ASSERT(!x);
 | ||||||
|  | +  
 | ||||||
|  | +  BOOST_ASSERT(std::numeric_limits<size_t>::max() / 1024 >= p.get_next_size());
 | ||||||
|  | +  BOOST_ASSERT(std::numeric_limits<size_t>::max() / 1024 >= p.get_max_size());
 | ||||||
|  | +
 | ||||||
|  | +  void *y = p.ordered_malloc(std::numeric_limits<size_t>::max() / 768);
 | ||||||
|  | +  BOOST_ASSERT(!y);
 | ||||||
|  | +
 | ||||||
|  | +  return 0;
 | ||||||
|  | +}
 | ||||||
							
								
								
									
										27
									
								
								boost-1.76.0-fix_multiprecision_issue_419-ppc64le.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								boost-1.76.0-fix_multiprecision_issue_419-ppc64le.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,27 @@ | |||||||
|  | From d1343f28dcbe25b100b082b34775bd92ead4602c Mon Sep 17 00:00:00 2001 | ||||||
|  | From: jzmaddock <john@johnmaddock.co.uk> | ||||||
|  | Date: Tue, 25 Jan 2022 09:27:40 +0000 | ||||||
|  | Subject: [PATCH] Update gcc Intel intrinsic usage config. Fixes | ||||||
|  |  https://github.com/boostorg/multiprecision/issues/419. | ||||||
|  | 
 | ||||||
|  | ---
 | ||||||
|  |  include/boost/multiprecision/cpp_int/intel_intrinsics.hpp | 6 +++++- | ||||||
|  |  1 file changed, 5 insertions(+), 1 deletion(-) | ||||||
|  | 
 | ||||||
|  | diff --git a/include/boost/multiprecision/cpp_int/intel_intrinsics.hpp b/include/boost/multiprecision/cpp_int/intel_intrinsics.hpp
 | ||||||
|  | index eb4624bb4..37717cd51 100644
 | ||||||
|  | --- a/include/boost/multiprecision/cpp_int/intel_intrinsics.hpp
 | ||||||
|  | +++ b/include/boost/multiprecision/cpp_int/intel_intrinsics.hpp
 | ||||||
|  | @@ -19,7 +19,11 @@
 | ||||||
|  |  // If this is GCC/clang, then check that the actual intrinsic exists: | ||||||
|  |  // | ||||||
|  |  #if defined(__has_builtin) && defined(__GNUC__) | ||||||
|  | -#if !__has_builtin(__builtin_ia32_addcarryx_u64) && defined(BOOST_MP_HAS_IMMINTRIN_H) && !(defined(BOOST_GCC) && (__GNUC__ >= 9))
 | ||||||
|  | +#if !__has_builtin(__builtin_ia32_addcarryx_u64) && defined(BOOST_MP_HAS_IMMINTRIN_H) \
 | ||||||
|  | +   && !(defined(BOOST_GCC) && (__GNUC__ >= 9) \
 | ||||||
|  | +      && (defined(__amd64__) || defined(__amd64) || defined(__x86_64__) || defined(__x86_64)\
 | ||||||
|  | +          || defined(i386) || defined(__i386) || defined(__i386__) || defined(_M_AMD64) \
 | ||||||
|  | +          || defined(_M_X64) || defined(__amd64__) || defined(_M_X64)))
 | ||||||
|  |  #undef BOOST_MP_HAS_IMMINTRIN_H | ||||||
|  |  #endif | ||||||
|  |  #elif defined(BOOST_MP_HAS_IMMINTRIN_H) && defined(__GNUC__) && !(defined(BOOST_GCC) && (__GNUC__ >= 9)) | ||||||
							
								
								
									
										6
									
								
								gating.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								gating.yaml
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,6 @@ | |||||||
|  | --- !Policy | ||||||
|  | product_versions: | ||||||
|  |   - rhel-* | ||||||
|  | decision_context: osci_compose_gate | ||||||
|  | rules: | ||||||
|  |   - !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tier1.functional} | ||||||
							
								
								
									
										16
									
								
								my.cnf.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								my.cnf.in
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,16 @@ | |||||||
|  | # | ||||||
|  | # This group is read both both by the client and the server | ||||||
|  | # use it for options that affect everything | ||||||
|  | # | ||||||
|  | [client-server] | ||||||
|  | 
 | ||||||
|  | # | ||||||
|  | # This group is read by the server | ||||||
|  | # | ||||||
|  | [mysqld] | ||||||
|  | 
 | ||||||
|  | # | ||||||
|  | # include all files from the config directory | ||||||
|  | # | ||||||
|  | !includedir @SYSCONF2DIR@ | ||||||
|  | 
 | ||||||
							
								
								
									
										12
									
								
								mysql-c99.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								mysql-c99.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,12 @@ | |||||||
|  | diff -ur mysql-8.0.35.orig/plugin/innodb_memcached/daemon_memcached/daemon/memcached.c mysql-8.0.35/plugin/innodb_memcached/daemon_memcached/daemon/memcached.c
 | ||||||
|  | --- mysql-8.0.35.orig/plugin/innodb_memcached/daemon_memcached/daemon/memcached.c	2023-10-12 13:45:01.000000000 +0200
 | ||||||
|  | +++ mysql-8.0.35/plugin/innodb_memcached/daemon_memcached/daemon/memcached.c	2023-12-19 10:48:46.718006624 +0100
 | ||||||
|  | @@ -4070,7 +4070,7 @@
 | ||||||
|  |      do { | ||||||
|  |          while(key_token->length != 0) { | ||||||
|  |              /* whether there are more keys to fetch */ | ||||||
|  | -            bool next_get = (key_token + 1)->value;
 | ||||||
|  | +            bool next_get = (key_token + 1)->value != NULL;
 | ||||||
|  |   | ||||||
|  |              key = key_token->value; | ||||||
|  |              nkey = key_token->length; | ||||||
							
								
								
									
										39
									
								
								mysql-check-socket.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								mysql-check-socket.sh
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,39 @@ | |||||||
|  | #!/bin/sh | ||||||
|  | 
 | ||||||
|  | # We check if there is already a process using the socket file, | ||||||
|  | # since otherwise the systemd service file could report false | ||||||
|  | # positive result when starting and mysqld_safe could remove | ||||||
|  | # a socket file, which is actually being used by a different daemon. | ||||||
|  | 
 | ||||||
|  | source "`dirname ${BASH_SOURCE[0]}`/mysql-scripts-common" | ||||||
|  | 
 | ||||||
|  | if test -e "$socketfile" ; then | ||||||
|  |     echo "Socket file $socketfile exists." >&2 | ||||||
|  | 
 | ||||||
|  |     # no write permissions | ||||||
|  |     if ! test -w "$socketfile" ; then | ||||||
|  |         echo "Not enough permission to write to the socket file $socketfile, which is suspicious." >&2 | ||||||
|  |         echo "Please, remove $socketfile manually to start the service." >&2 | ||||||
|  |         exit 1 | ||||||
|  |     fi | ||||||
|  | 
 | ||||||
|  |     # not a socket file | ||||||
|  |     if ! test -S "$socketfile" ; then | ||||||
|  |         echo "The file $socketfile is not a socket file, which is suspicious." >&2 | ||||||
|  |         echo "Please, remove $socketfile manually to start the service." >&2 | ||||||
|  |         exit 1 | ||||||
|  |     fi | ||||||
|  | 
 | ||||||
|  |     # some process uses the socket file | ||||||
|  |     if fuser "$socketfile" &>/dev/null ; then | ||||||
|  |         socketpid=$(fuser "$socketfile" 2>/dev/null) | ||||||
|  |         echo "Is another MySQL daemon already running with the same unix socket?" >&2 | ||||||
|  |         echo "Please, stop the process $socketpid or remove $socketfile manually to start the service." >&2 | ||||||
|  |         exit 1 | ||||||
|  |     fi | ||||||
|  | 
 | ||||||
|  |     # socket file is a garbage | ||||||
|  |     echo "No process is using $socketfile, which means it is a garbage, so it will be removed automatically." >&2 | ||||||
|  | fi | ||||||
|  | 
 | ||||||
|  | exit 0 | ||||||
							
								
								
									
										45
									
								
								mysql-file-contents.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								mysql-file-contents.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,45 @@ | |||||||
|  | Upstream chooses to install INFO_SRC and INFO_BIN into the docs dir, which | ||||||
|  | breaks at least two packaging commandments, so we put them into $libdir | ||||||
|  | instead.  That means we have to hack the file_contents regression test | ||||||
|  | to know about this. | ||||||
|  | 
 | ||||||
|  | Recommendation they change is at http://bugs.mysql.com/bug.php?id=61425 | ||||||
|  | 
 | ||||||
|  | diff --git a/mysql-test/t/file_contents.test b/mysql-test/t/file_contents.test
 | ||||||
|  | index 75f8c93..973291c 100644
 | ||||||
|  | --- a/mysql-test/t/file_contents.test
 | ||||||
|  | +++ b/mysql-test/t/file_contents.test
 | ||||||
|  | @@ -12,7 +12,7 @@
 | ||||||
|  |  --perl | ||||||
|  |  print "\nChecking 'INFO_SRC' and 'INFO_BIN'\n"; | ||||||
|  |  $dir_bin = $ENV{'MYSQL_BINDIR'}; | ||||||
|  | -if ($dir_bin =~ m|^/usr/|) {
 | ||||||
|  | +if ($dir_bin =~ m|.*/usr/$|) {
 | ||||||
|  |    # RPM package | ||||||
|  |    $dir_docs = $dir_bin; | ||||||
|  |    $dir_docs =~ s|/lib|/share/doc|; | ||||||
|  | @@ -35,7 +35,7 @@ if ($dir_bin =~ m|^/usr/|) {
 | ||||||
|  |        } | ||||||
|  |      } | ||||||
|  |    } | ||||||
|  | -} elsif ($dir_bin =~ m|/usr$|) {
 | ||||||
|  | +} elsif ($dir_bin =~ m|.*/usr$|) {
 | ||||||
|  |    # RPM build during development | ||||||
|  |    $dir_docs = "$dir_bin/share/doc"; | ||||||
|  |    if(-d "$dir_docs/packages") { | ||||||
|  | @@ -55,6 +55,15 @@ if ($dir_bin =~ m|^/usr/|) {
 | ||||||
|  |          $dir_docs = glob "$dir_bin/share/mysql-*/docs"; | ||||||
|  |        } | ||||||
|  |      } | ||||||
|  | +
 | ||||||
|  | +    # All the above is entirely wacko, because these files are not docs;
 | ||||||
|  | +    # they should be kept in libdir instead.  mtr does not provide a nice
 | ||||||
|  | +    # way to find libdir though, so we have to kluge it like this:
 | ||||||
|  | +    if (-d "$dir_bin/lib64/mysql") {
 | ||||||
|  | +       $dir_docs = "$dir_bin/lib64/mysql";
 | ||||||
|  | +    } else {
 | ||||||
|  | +       $dir_docs = "$dir_bin/lib/mysql";
 | ||||||
|  | +    }
 | ||||||
|  |    } | ||||||
|  |  } else { | ||||||
|  |    # tar.gz package, Windows, or developer work (in git) | ||||||
							
								
								
									
										17
									
								
								mysql-flush-logrotate.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								mysql-flush-logrotate.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,17 @@ | |||||||
|  | diff -up mysql-8.0.35/support-files/mysql-log-rotate.in.origf mysql-8.0.35/support-files/mysql-log-rotate.in
 | ||||||
|  | --- mysql-8.0.35/support-files/mysql-log-rotate.in.origf	2024-01-29 23:00:32.043257515 +0100
 | ||||||
|  | +++ mysql-8.0.35/support-files/mysql-log-rotate.in	2024-01-29 23:02:26.520440388 +0100
 | ||||||
|  | @@ -49,11 +49,7 @@
 | ||||||
|  |          missingok | ||||||
|  |          compress | ||||||
|  |      postrotate | ||||||
|  | -	# just if mysqld is really running
 | ||||||
|  | -	if test -x @bindir@/mysqladmin && \
 | ||||||
|  | -	   @bindir@/mysqladmin ping &>/dev/null
 | ||||||
|  | -	then
 | ||||||
|  | -	   @bindir@/mysqladmin flush-logs
 | ||||||
|  | -	fi
 | ||||||
|  | +	# SIGUSR1 makes the daemon to flush the logs, no need to connect
 | ||||||
|  | +	@bindir@/kill -USR1 $(systemctl show --property MainPID --value mysqld)
 | ||||||
|  |      endscript | ||||||
|  |  } | ||||||
							
								
								
									
										52
									
								
								mysql-install-test.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								mysql-install-test.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,52 @@ | |||||||
|  | Improve the documentation that will be installed in the mysql-test RPM. | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | diff -Naur mysql-5.5.20.orig/mysql-test/README mysql-5.5.20/mysql-test/README
 | ||||||
|  | --- mysql-5.5.20.orig/mysql-test/README	2011-12-16 14:52:05.000000000 -0500
 | ||||||
|  | +++ mysql-5.5.20/mysql-test/README	2012-02-10 17:06:19.531082253 -0500
 | ||||||
|  | @@ -1,14 +1,26 @@
 | ||||||
|  |  This directory contains a test suite for the MySQL daemon. To run | ||||||
|  | -the currently existing test cases, simply execute ./mysql-test-run in
 | ||||||
|  | -this directory. It will fire up the newly built mysqld and test it.
 | ||||||
|  | +the currently existing test cases, execute ./mysql-test-run in
 | ||||||
|  | +this directory.
 | ||||||
|  |   | ||||||
|  | -Note that you do not have to have to do "make install", and you could
 | ||||||
|  | -actually have a co-existing MySQL installation. The tests will not
 | ||||||
|  | -conflict with it.
 | ||||||
|  | -
 | ||||||
|  | -All tests must pass. If one or more of them fail on your system, please
 | ||||||
|  | -read the following manual section for instructions on how to report the
 | ||||||
|  | -problem:
 | ||||||
|  | +For use in Red Hat distributions, you should run the script as user mysql,
 | ||||||
|  | +so the best bet is something like
 | ||||||
|  | +	cd /usr/share/mysql-test
 | ||||||
|  | +	sudo -u mysql ./mysql-test-run --skip-test-list=platform-specific-tests.list
 | ||||||
|  | +This will use the installed mysql executables, but will run a private copy
 | ||||||
|  | +of the server process (using data files within /usr/share/mysql-test),
 | ||||||
|  | +so you need not start the mysqld service beforehand.
 | ||||||
|  | +
 | ||||||
|  | +The "--skip-test-list=platform-specific-tests.list" option excludes tests that are
 | ||||||
|  | +known to fail on one or more Red-Hat-supported platforms.  You can omit it
 | ||||||
|  | +if you want to check whether such failures occur for you.  Documentation
 | ||||||
|  | +about the reasons for omitting such tests can be found in the file
 | ||||||
|  | +platform-specific-tests.list.
 | ||||||
|  | +
 | ||||||
|  | +To clean up afterwards, remove the created "var" subdirectory, eg
 | ||||||
|  | +	sudo -u mysql rm -rf /usr/share/mysql-test/var
 | ||||||
|  | +
 | ||||||
|  | +If one or more tests fail on your system, please read the following manual
 | ||||||
|  | +section for instructions on how to report the problem:
 | ||||||
|  |   | ||||||
|  |  http://dev.mysql.com/doc/mysql/en/mysql-test-suite.html | ||||||
|  |   | ||||||
|  | @@ -25,7 +37,8 @@
 | ||||||
|  |   | ||||||
|  |  With no test cases named on the command line, mysql-test-run falls back | ||||||
|  |  to the normal "non-extern" behavior. The reason for this is that some | ||||||
|  | -tests cannot run with an external server.
 | ||||||
|  | +tests cannot run with an external server (because they need to control the
 | ||||||
|  | +options with which the server is started).
 | ||||||
|  |   | ||||||
|  |   | ||||||
|  |  You can create your own test cases. To create a test case, create a new | ||||||
							
								
								
									
										104
									
								
								mysql-mtr.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										104
									
								
								mysql-mtr.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,104 @@ | |||||||
|  | Avoid errors like: | ||||||
|  | 
 | ||||||
|  | |  Path length (109) is longer than maximum supported length (108) and will be truncated at /usr/lib64/perl5/vendor_perl/Socket.pm line 880, <GEN16094> line 1. | ||||||
|  | |  worker[2] mysql-test-run: *** ERROR: Socket path '/builddir/build/BUILDROOT/community-mysql-8.0.24-1.fc35.s390x/usr/share/mysql-test/var/tmp/2' too long, | ||||||
|  | |  it would be  truncated and thus not possible to use for connection to  MySQL Server. Set a shorter with --tmpdir=<path> option | ||||||
|  | 
 | ||||||
|  | ===
 | ||||||
|  | 
 | ||||||
|  | On Fedora 32: | ||||||
|  | 
 | ||||||
|  | |  $ grep -e "PATH" /usr/include/linux/limits.h | ||||||
|  | |  #define PATH_MAX        4096	/* # chars in a path name including nul */ | ||||||
|  | 
 | ||||||
|  | ===
 | ||||||
|  | 
 | ||||||
|  | Thus setting the maximum path length on Fedora to 108 characters is just too short. | ||||||
|  | 
 | ||||||
|  | BTW on the modern filesystems you can easily create path longer than PATH_MAX. | ||||||
|  | The PATH_MAX constant is unsafe. | ||||||
|  | Interesting article: https://insanecoding.blogspot.com/2007/11/pathmax-simply-isnt.html | ||||||
|  | 
 | ||||||
|  | ===
 | ||||||
|  | 
 | ||||||
|  | The question is why haven't I encountered this issue until recently ? | ||||||
|  | 
 | ||||||
|  | After the recent tweaks to the testsuite (between 8.0.24 and 8.0.25 release), the generated --tmpdir path changed from | ||||||
|  | |  --tmpdir=/builddir/build/BUILD/mysql-8.0.24/x86_64-redhat-linux-gnu/mysql-test/var/tmp/ | ||||||
|  | to | ||||||
|  | |  --tmpdir=/builddir/build/BUILDROOT/community-mysql-8.0.24-1.fc35.x86_64/usr/share/mysql-test/var/tmp/ | ||||||
|  | 
 | ||||||
|  | ===
 | ||||||
|  | 
 | ||||||
|  | The whole setup changed as follows: | ||||||
|  | BEFORE: | ||||||
|  | 
 | ||||||
|  | |  Installing system database | ||||||
|  | |  ### safe_path: /builddir/build/BUILD/mysql-8.0.24/x86_64-redhat-linux-gnu/runtime_output_directory///mysqltest_safe_process --verbose -- /builddir/build/BUILD/mysql-8.0.24/x86_64-redhat-linux-gnu/runtime_output_directory/mysqld --no-defaults --initialize-insecure --loose-skip-ndbcluster --tmpdir=/builddir/build/BUILD/mysql-8.0.24/x86_64-redhat-linux-gnu/mysql-test/var/tmp/ --core-file --datadir=/builddir/build/BUILD/mysql-8.0.24/x86_64-redhat-linux-gnu/mysql-test/var/data/ --secure-file-priv=/builddir/build/BUILD/mysql-8.0.24/x86_64-redhat-linux-gnu/mysql-test/var --innodb_buffer_pool_size=24M --innodb-log-file-size=5M --innodb_autoextend_increment=8 --character-sets-dir=/builddir/build/BUILD/mysql-8.0.24/share/charsets --loose-auto_generate_certs=OFF --loose-sha256_password_auto_generate_rsa_keys=OFF --loose-caching_sha2_password_auto_generate_rsa_keys=OFF --init-file=/builddir/build/BUILD/mysql-8.0.24/x86_64-redhat-linux-gnu/mysql-test/var/tmp/bootstrap.sql | ||||||
|  | 
 | ||||||
|  | AFTER: | ||||||
|  | 
 | ||||||
|  | |  Installing system database | ||||||
|  | |  ### safe_path: /builddir/build/BUILDROOT/community-mysql-8.0.24-1.fc35.x86_64/usr/bin//mysqltest_safe_process --verbose -- /builddir/build/BUILDROOT/community-mysql-8.0.24-1.fc35.x86_64/usr/libexec/mysqld --no-defaults --initialize-insecure --loose-skip-ndbcluster --tmpdir=/builddir/build/BUILDROOT/community-mysql-8.0.24-1.fc35.x86_64/usr/share/mysql-test/var/tmp/ --core-file --datadir=/builddir/build/BUILDROOT/community-mysql-8.0.24-1.fc35.x86_64/usr/share/mysql-test/var/data/ --secure-file-priv=/builddir/build/BUILDROOT/community-mysql-8.0.24-1.fc35.x86_64/usr/share/mysql-test/var --innodb_buffer_pool_size=24M --innodb-log-file-size=5M --innodb_autoextend_increment=8 --character-sets-dir=/builddir/build/BUILDROOT/community-mysql-8.0.24-1.fc35.x86_64/usr/share/community-mysql/charsets --loose-auto_generate_certs=OFF --loose-sha256_password_auto_generate_rsa_keys=OFF --loose-caching_sha2_password_auto_generate_rsa_keys=OFF --init-file=/builddir/build/BUILDROOT/community-mysql-8.0.24-1.fc35.x86_64/usr/share/mysql-test/var/tmp/bootstrap.sql | ||||||
|  | 
 | ||||||
|  | ===
 | ||||||
|  | 
 | ||||||
|  | The likely cause is the added | ||||||
|  | 
 | ||||||
|  | |  cd %{buildroot}%{_datadir}/mysql-test | ||||||
|  | 
 | ||||||
|  | which was not originally present in the SPECfile. | ||||||
|  | 
 | ||||||
|  | However the MariaDB implementation does not have this issue, even though it has the same SPECfile %check phase code. | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | ===
 | ||||||
|  | 
 | ||||||
|  | In the extended log, you can see '/tmp/XfTFAis2Jl' being created and deleted short after. | ||||||
|  | Even though the script warns about the path length, tries to workaround it; it destroyes that workaround short after and use the too-long path instead. | ||||||
|  | 
 | ||||||
|  | I'm not sure whether the output is synchronous, but even if it wasn'tit still looks weird. | ||||||
|  | 
 | ||||||
|  | | + cd /builddir/build/BUILDROOT/community-mysql-8.0.24-1.fc35.x86_64/usr/share/mysql-test | ||||||
|  | | Logging: ./mysql-test-run.pl  --verbose --parallel=auto --force --retry=2 --suite-timeout=900 --testcase-timeout=30 --mysqld=--binlog-format=mixed --max-test-fail=5 --report-unstable-tests --clean-vardir --suite=main --mem --skip-test-list=platform-specific-tests.list | ||||||
|  | | Path length (109) is longer than maximum supported length (108) and will be truncated at /usr/lib64/perl5/vendor_perl/Socket.pm line 880. | ||||||
|  | | Too long tmpdir path '/builddir/build/BUILDROOT/community-mysql-8.0.24-1.fc35.x86_64/usr/share/mysql-test/var/tmp'  creating a shorter one | ||||||
|  | |  - Using tmpdir: '/tmp/XfTFAis2Jl' | ||||||
|  | | > Collecting: main | ||||||
|  | | > testdir: /builddir/build/BUILDROOT/community-mysql-8.0.24-1.fc35.x86_64/usr/share/mysql-test/t | ||||||
|  | | > resdir: /builddir/build/BUILDROOT/community-mysql-8.0.24-1.fc35.x86_64/usr/share/mysql-test/r | ||||||
|  | | > Collecting: i_main | ||||||
|  | | Removing old var directory | ||||||
|  | | > opt_vardir: /builddir/build/BUILDROOT/community-mysql-8.0.24-1.fc35.x86_64/usr/share/mysql-test/var | ||||||
|  | | > Removing /builddir/build/BUILDROOT/community-mysql-8.0.24-1.fc35.x86_64/usr/share/mysql-test/var/ | ||||||
|  | | > Removing /dev/shm/var_933_jfTb | ||||||
|  | | > Removing /tmp/XfTFAis2Jl/ | ||||||
|  | | Creating var directory '/builddir/build/BUILDROOT/community-mysql-8.0.24-1.fc35.x86_64/usr/share/mysql-test/var' | ||||||
|  | | > Creating /dev/shm/var_933_jfTb | ||||||
|  | |  - symlinking 'var' to '/dev/shm/var_933_jfTb' | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | diff --git a/mysql-test/mysql-test-run.pl b/mysql-test/mysql-test-run.pl
 | ||||||
|  | index 26e6c92c..9d85c6d6 100755
 | ||||||
|  | --- a/mysql-test/mysql-test-run.pl
 | ||||||
|  | +++ b/mysql-test/mysql-test-run.pl
 | ||||||
|  | @@ -3533,17 +3533,6 @@ sub setup_vardir() {
 | ||||||
|  |    mkpath("$opt_vardir/tmp"); | ||||||
|  |    mkpath($opt_tmpdir) if ($opt_tmpdir ne "$opt_vardir/tmp"); | ||||||
|  |   | ||||||
|  | -  # On some operating systems, there is a limit to the length of a
 | ||||||
|  | -  # UNIX domain socket's path far below PATH_MAX. Don't allow that
 | ||||||
|  | -  # to happen.
 | ||||||
|  | -  my $res =
 | ||||||
|  | -    check_socket_path_length("$opt_tmpdir/mysqld.NN.sock", $opt_parallel);
 | ||||||
|  | -  if ($res) {
 | ||||||
|  | -    mtr_error("Socket path '$opt_tmpdir' too long, it would be ",
 | ||||||
|  | -              "truncated and thus not possible to use for connection to ",
 | ||||||
|  | -              "MySQL Server. Set a shorter with --tmpdir=<path> option");
 | ||||||
|  | -  }
 | ||||||
|  | -
 | ||||||
|  |    # Copy all files from std_data into var/std_data | ||||||
|  |    # and make them world readable | ||||||
|  |    copytree("$glob_mysql_test_dir/std_data", "$opt_vardir/std_data", "0022") | ||||||
							
								
								
									
										77
									
								
								mysql-paths.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										77
									
								
								mysql-paths.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,77 @@ | |||||||
|  | Some hard-coded paths make problems when package is built into chroot like | ||||||
|  | Software Collections. Removing these hard-coded paths should fix it. | ||||||
|  | 
 | ||||||
|  | Upstream report: https://mariadb.atlassian.net/browse/MDEV-6485 | ||||||
|  | 
 | ||||||
|  | diff --git a/cmake/install_layout.cmake b/cmake/install_layout.cmake
 | ||||||
|  | index 9f7945d8..6734cdfd 100644
 | ||||||
|  | --- a/cmake/install_layout.cmake
 | ||||||
|  | +++ b/cmake/install_layout.cmake
 | ||||||
|  | @@ -105,7 +105,7 @@ IF(UNIX)
 | ||||||
|  |      " Choose between ${VALID_INSTALL_LAYOUTS}" ) | ||||||
|  |    ENDIF() | ||||||
|  |   | ||||||
|  | -  SET(SYSCONFDIR "${CMAKE_INSTALL_PREFIX}/etc"
 | ||||||
|  | +  SET(SYSCONFDIR "/etc"
 | ||||||
|  |      CACHE PATH "config directory (for my.cnf)") | ||||||
|  |    MARK_AS_ADVANCED(SYSCONFDIR) | ||||||
|  |  ENDIF() | ||||||
|  | @@ -189,6 +189,7 @@ SET(INSTALL_SECURE_FILE_PRIVDIR_TARGZ ${secure_file_priv_path})
 | ||||||
|  |  # | ||||||
|  |  SET(INSTALL_BINDIR_RPM                  "bin") | ||||||
|  |  SET(INSTALL_SBINDIR_RPM                 "sbin") | ||||||
|  | +SET(INSTALL_SYSCONFDIR_RPM              "/etc")
 | ||||||
|  |  # | ||||||
|  |  IF(CMAKE_SYSTEM_PROCESSOR IN_LIST KNOWN_64BIT_ARCHITECTURES) | ||||||
|  |    SET(INSTALL_LIBDIR_RPM                "lib64/mysql") | ||||||
|  | diff --git a/mysys/my_default.cc b/mysys/my_default.cc
 | ||||||
|  | index 290f1666..8403425f 100644
 | ||||||
|  | --- a/mysys/my_default.cc
 | ||||||
|  | +++ b/mysys/my_default.cc
 | ||||||
|  | @@ -1570,12 +1570,12 @@ static const char **init_default_directories(MEM_ROOT *alloc) {
 | ||||||
|  |   | ||||||
|  |  #else | ||||||
|  |   | ||||||
|  | -  errors += add_directory(alloc, "/etc/", dirs);
 | ||||||
|  | -  errors += add_directory(alloc, "/etc/mysql/", dirs);
 | ||||||
|  | -
 | ||||||
|  |  #if defined(DEFAULT_SYSCONFDIR) | ||||||
|  |    if (DEFAULT_SYSCONFDIR[0]) | ||||||
|  | +  {
 | ||||||
|  |      errors += add_directory(alloc, DEFAULT_SYSCONFDIR, dirs); | ||||||
|  | +    errors += add_directory(alloc, DEFAULT_SYSCONFDIR "/mysql", dirs);
 | ||||||
|  | +  }
 | ||||||
|  |  #endif /* DEFAULT_SYSCONFDIR */ | ||||||
|  |   | ||||||
|  |  #endif | ||||||
|  | diff --git a/scripts/CMakeLists.txt b/scripts/CMakeLists.txt
 | ||||||
|  | index 4149a764..b091d5e2 100644
 | ||||||
|  | --- a/scripts/CMakeLists.txt
 | ||||||
|  | +++ b/scripts/CMakeLists.txt
 | ||||||
|  | @@ -288,9 +288,9 @@ IF(UNIX)
 | ||||||
|  |  ENDIF(UNIX) | ||||||
|  |   | ||||||
|  |  SET(prefix "${CMAKE_INSTALL_PREFIX}") | ||||||
|  | -SET(sysconfdir ${prefix})
 | ||||||
|  | +SET(sysconfdir ${SYSCONFDIR})
 | ||||||
|  |  SET(bindir ${prefix}/${INSTALL_BINDIR}) | ||||||
|  | -SET(libexecdir ${prefix}/${INSTALL_SBINDIR})
 | ||||||
|  | +SET(libexecdir ${prefix}/${INSTALL_LIBEXECDIR})
 | ||||||
|  |  SET(datadir ${prefix}/${INSTALL_MYSQLSHAREDIR}) | ||||||
|  |  SET(libsubdir  ${INSTALL_LIBDIR}) | ||||||
|  |  SET(pkgincludedir ${prefix}/${INSTALL_INCLUDEDIR}) | ||||||
|  | diff --git a/scripts/mysqld_multi.pl.in b/scripts/mysqld_multi.pl.in
 | ||||||
|  | index 84dd4d7c..50397ddd 100644
 | ||||||
|  | --- a/scripts/mysqld_multi.pl.in
 | ||||||
|  | +++ b/scripts/mysqld_multi.pl.in
 | ||||||
|  | @@ -586,9 +586,7 @@ sub list_defaults_files
 | ||||||
|  |   | ||||||
|  |    my %seen;  # Don't list the same file more than once | ||||||
|  |    return grep { defined $_ and not $seen{$_}++ and -f $_ and -r $_ } | ||||||
|  | -              ('/etc/my.cnf',
 | ||||||
|  | -               '/etc/mysql/my.cnf',
 | ||||||
|  | -               '@sysconfdir@/my.cnf',
 | ||||||
|  | +              ('@sysconfdir@/my.cnf',
 | ||||||
|  |                 ($ENV{MYSQL_HOME} ? "$ENV{MYSQL_HOME}/my.cnf" : undef), | ||||||
|  |                 $opt{'extra-file'}, | ||||||
|  |                 ($ENV{HOME} ? "$ENV{HOME}/.my.cnf" : undef)); | ||||||
							
								
								
									
										112
									
								
								mysql-prepare-db-dir.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										112
									
								
								mysql-prepare-db-dir.sh
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,112 @@ | |||||||
|  | #!/bin/sh | ||||||
|  | 
 | ||||||
|  | # This script creates the mysql data directory during first service start. | ||||||
|  | # In subsequent starts, it does nothing much. | ||||||
|  | # | ||||||
|  | # This script is meant to be run as non-root user either during initscript | ||||||
|  | # or systemd service execution, before starting the mysqld daemon. | ||||||
|  | # Running it as root may have some security risks, because it touches files | ||||||
|  | # that can be symlinks pointing to unexpected locations. | ||||||
|  | # | ||||||
|  | # On the other hand, when using non-standard locations for datadir and logfile, | ||||||
|  | # this script might not be able to create the files and the daemon won't start | ||||||
|  | # properly. A solution for that is to created the locations for datadir and | ||||||
|  | # logfile with correct ownership before starting the daemon. | ||||||
|  | 
 | ||||||
|  | source "`dirname ${BASH_SOURCE[0]}`/mysql-scripts-common" | ||||||
|  | 
 | ||||||
|  | # If two args given first is user, second is group | ||||||
|  | # otherwise the arg is the systemd service file | ||||||
|  | if [ "$#" -eq 2 ] | ||||||
|  | then | ||||||
|  |     myuser="$1" | ||||||
|  |     mygroup="$2" | ||||||
|  | else | ||||||
|  |     # Absorb configuration settings from the specified systemd service file, | ||||||
|  |     # or the default service if not specified | ||||||
|  |     SERVICE_NAME="$1" | ||||||
|  |     if [ x"$SERVICE_NAME" = x ] | ||||||
|  |     then | ||||||
|  |         SERVICE_NAME=@DAEMON_NAME@.service | ||||||
|  |     fi | ||||||
|  | 
 | ||||||
|  |     myuser=`systemctl show -p User "${SERVICE_NAME}" | | ||||||
|  |       sed 's/^User=//'` | ||||||
|  |     if [ x"$myuser" = x ] | ||||||
|  |     then | ||||||
|  |         myuser=mysql | ||||||
|  |     fi | ||||||
|  | 
 | ||||||
|  |     mygroup=`systemctl show -p Group "${SERVICE_NAME}" | | ||||||
|  |       sed 's/^Group=//'` | ||||||
|  |     if [ x"$mygroup" = x ] | ||||||
|  |     then | ||||||
|  |         mygroup=mysql | ||||||
|  |     fi | ||||||
|  | fi | ||||||
|  | 
 | ||||||
|  | # Set up the errlogfile with appropriate permissions | ||||||
|  | if [ ! -e "$errlogfile" -a ! -h "$errlogfile" -a x$(dirname "$errlogfile") = "x/var/log" ]; then | ||||||
|  |     case $(basename "$errlogfile") in | ||||||
|  |         mysql*.log|mariadb*.log) install /dev/null -m0640 -o$myuser -g$mygroup "$errlogfile" ;; | ||||||
|  |         *) ;; | ||||||
|  |     esac | ||||||
|  | else | ||||||
|  |     # Provide some advice if the log file cannot be created by this script | ||||||
|  |     errlogdir=$(dirname "$errlogfile") | ||||||
|  |     if ! [ -d "$errlogdir" ] ; then | ||||||
|  |         echo "The directory $errlogdir does not exist." | ||||||
|  |         exit 1 | ||||||
|  |     elif [ -e "$errlogfile" -a ! -w "$errlogfile" ] ; then | ||||||
|  |         echo "The log file $errlogfile cannot be written, please, fix its permissions." | ||||||
|  |         echo "The daemon will be run under $myuser:$mygroup" | ||||||
|  |         exit 1 | ||||||
|  |     fi | ||||||
|  | fi | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | export LC_ALL=C | ||||||
|  | 
 | ||||||
|  | # Returns content of the specified directory | ||||||
|  | # If listing files fails, fake-file is returned so which means | ||||||
|  | # we'll behave like there was some data initialized | ||||||
|  | # Some files or directories are fine to be there, so those are | ||||||
|  | # explicitly removed from the listing | ||||||
|  | # @param <dir> datadir | ||||||
|  | list_datadir () | ||||||
|  | { | ||||||
|  |     ( ls -1A "$1" 2>/dev/null || echo "fake-file" ) | grep -v \ | ||||||
|  |     -e '^lost+found$' \ | ||||||
|  |     -e '\.err$' \ | ||||||
|  |     -e '^\.bash_history$' | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | # Checks whether datadir should be initialized | ||||||
|  | # @param <dir> datadir | ||||||
|  | should_initialize () | ||||||
|  | { | ||||||
|  |     test -z "$(list_datadir "$1")" | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | # Make the data directory if doesn't exist or empty | ||||||
|  | if should_initialize "$datadir" ; then | ||||||
|  | 
 | ||||||
|  |     # Now create the database | ||||||
|  |     echo "Initializing @NICE_PROJECT_NAME@ database" | ||||||
|  |     @libexecdir@/mysqld --initialize-insecure --datadir="$datadir" --user="$myuser" | ||||||
|  |     ret=$? | ||||||
|  |     if [ $ret -ne 0 ] ; then | ||||||
|  |         echo "Initialization of @NICE_PROJECT_NAME@ database failed." >&2 | ||||||
|  |         echo "Perhaps @sysconfdir@/my.cnf is misconfigured." >&2 | ||||||
|  |         # Clean up any partially-created database files | ||||||
|  |         if [ ! -e "$datadir/mysql/user.frm" ] ; then | ||||||
|  |             rm -rf "$datadir"/* | ||||||
|  |         fi | ||||||
|  |         exit $ret | ||||||
|  |     fi | ||||||
|  |     # upgrade does not need to be run on a fresh datadir | ||||||
|  |     echo "@VERSION@" >"$datadir/mysql_upgrade_info" | ||||||
|  | fi | ||||||
|  | 
 | ||||||
|  | exit 0 | ||||||
							
								
								
									
										19
									
								
								mysql-rpath.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								mysql-rpath.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,19 @@ | |||||||
|  | MySQL 8.0 includes a feature that requires we set linux NICE capabilities to | ||||||
|  | mysqld daemon. Because of that, LD_LIBRARY_PATH does not work (see | ||||||
|  | secure-execution mode in http://man7.org/linux/man-pages/man8/ld.so.8.html). | ||||||
|  | 
 | ||||||
|  | Related: #1628814 | ||||||
|  | 
 | ||||||
|  | diff --git a/sql/CMakeLists.txt b/sql/CMakeLists.txt
 | ||||||
|  | index 3f179a7a..209b3eb2 100644
 | ||||||
|  | --- a/sql/CMakeLists.txt
 | ||||||
|  | +++ b/sql/CMakeLists.txt
 | ||||||
|  | @@ -918,6 +918,8 @@ IF(UNIX_INSTALL_RPATH_ORIGIN_PRIV_LIBDIR)
 | ||||||
|  |    ADD_INSTALL_RPATH_FOR_PROTOBUF(mysqld) | ||||||
|  |  ENDIF() | ||||||
|  |   | ||||||
|  | +SET_TARGET_PROPERTIES(mysqld PROPERTIES INSTALL_RPATH "${RPATH_LIBDIR}")
 | ||||||
|  | +
 | ||||||
|  |  OPTION(DEBUG_EXTNAME "Build server as mysqld-debug (debug builds only)" OFF) | ||||||
|  |  MARK_AS_ADVANCED(DEBUG_EXTNAME) | ||||||
|  |   | ||||||
							
								
								
									
										68
									
								
								mysql-scripts-common.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										68
									
								
								mysql-scripts-common.sh
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,68 @@ | |||||||
|  | #!/bin/sh | ||||||
|  | 
 | ||||||
|  | # Some useful functions used in other MySQL helper scripts | ||||||
|  | # This scripts defines variables datadir, errlogfile, socketfile | ||||||
|  | 
 | ||||||
|  | export LC_ALL=C | ||||||
|  | 
 | ||||||
|  | # extract value of a MySQL option from config files | ||||||
|  | # Usage: get_mysql_option VARNAME DEFAULT SECTION [ SECTION, ... ] | ||||||
|  | # result is returned in $result | ||||||
|  | # We use my_print_defaults which prints all options from multiple files, | ||||||
|  | # with the more specific ones later; hence take the last match. | ||||||
|  | get_mysql_option(){ | ||||||
|  | 	if [ $# -ne 3 ] ; then | ||||||
|  | 		echo "get_mysql_option requires 3 arguments: section option default_value" | ||||||
|  | 		return | ||||||
|  | 	fi | ||||||
|  | 	sections="$1" | ||||||
|  | 	option_name="$2" | ||||||
|  | 	default_value="$3" | ||||||
|  | 	result=`@bindir@/my_print_defaults $my_print_defaults_extra_args $sections | sed -n "s/^--${option_name}=//p" | tail -n 1` | ||||||
|  | 	if [ -z "$result" ]; then | ||||||
|  | 	    # not found, use default | ||||||
|  | 	    result="${default_value}" | ||||||
|  | 	fi | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | # For the case of running more instances via systemd, scrits that source | ||||||
|  | # this file can get --default-group-suffix or similar option as the first | ||||||
|  | # argument. The utility my_print_defaults needs to use it as well, so the | ||||||
|  | # scripts sourcing this file work with the same options as the daemon. | ||||||
|  | my_print_defaults_extra_args='' | ||||||
|  | while echo "$1" | grep -q '^--defaults' ; do | ||||||
|  | 	my_print_defaults_extra_args="${my_print_defaults_extra_args} $1" | ||||||
|  | 	shift | ||||||
|  | done | ||||||
|  | 
 | ||||||
|  | # Defaults here had better match what mysqld_safe will default to | ||||||
|  | # The option values are generally defined on three important places | ||||||
|  | # on the default installation: | ||||||
|  | #  1) default values are hardcoded in the code of mysqld daemon or | ||||||
|  | #     mysqld_safe script | ||||||
|  | #  2) configurable values are defined in @sysconfdir@/my.cnf | ||||||
|  | #  3) default values for helper scripts are specified bellow | ||||||
|  | # So, in case values are defined in my.cnf, we need to get that value. | ||||||
|  | # In case they are not defined in my.cnf, we need to get the same value | ||||||
|  | # in the daemon, as in the helper scripts. Thus, default values here | ||||||
|  | # must correspond with values defined in mysqld_safe script and source | ||||||
|  | # code itself. | ||||||
|  | 
 | ||||||
|  | server_sections="mysqld_safe mysqld server mysqld-@MAJOR_VERSION@.@MINOR_VERSION@ client-server" | ||||||
|  | 
 | ||||||
|  | get_mysql_option "$server_sections" datadir "@MYSQL_DATADIR@" | ||||||
|  | datadir="$result" | ||||||
|  | 
 | ||||||
|  | # if there is log_error in the my.cnf, my_print_defaults still | ||||||
|  | # returns log-error | ||||||
|  | # log-error might be defined in mysqld_safe and mysqld sections, | ||||||
|  | # the former has bigger priority | ||||||
|  | get_mysql_option "$server_sections" log-error "$datadir/`hostname`.err" | ||||||
|  | errlogfile="$result" | ||||||
|  | 
 | ||||||
|  | get_mysql_option "$server_sections" socket "@MYSQL_UNIX_ADDR@" | ||||||
|  | socketfile="$result" | ||||||
|  | 
 | ||||||
|  | get_mysql_option "$server_sections" pid-file "$datadir/`hostname`.pid" | ||||||
|  | pidfile="$result" | ||||||
|  | 
 | ||||||
							
								
								
									
										33
									
								
								mysql-scripts.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								mysql-scripts.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,33 @@ | |||||||
|  | --- mysql-8.0.22/scripts/CMakeLists.txt.old	2020-10-21 11:08:50.654252563 +0200
 | ||||||
|  | +++ mysql-8.0.22/scripts/CMakeLists.txt	2020-10-21 11:11:33.635935366 +0200
 | ||||||
|  | @@ -507,4 +507,30 @@
 | ||||||
|  |        ) | ||||||
|  |      ENDIF() | ||||||
|  |    ENDIF() | ||||||
|  | +
 | ||||||
|  | +  # files for systemd
 | ||||||
|  | +  SET(SYSTEMD_SCRIPTS
 | ||||||
|  | +    mysql.tmpfiles.d
 | ||||||
|  | +    mysql.service
 | ||||||
|  | +    mysql@.service
 | ||||||
|  | +    mysql-prepare-db-dir
 | ||||||
|  | +    mysql-wait-stop
 | ||||||
|  | +    mysql-check-socket
 | ||||||
|  | +    mysql-scripts-common
 | ||||||
|  | +    mysql_config_multilib
 | ||||||
|  | +    my.cnf
 | ||||||
|  | +    server.cnf
 | ||||||
|  | +  )
 | ||||||
|  | +  FOREACH(file ${SYSTEMD_SCRIPTS})
 | ||||||
|  | +    IF(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${file}.sh)
 | ||||||
|  | +      CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/${file}.sh
 | ||||||
|  | +        ${CMAKE_CURRENT_BINARY_DIR}/${file} ESCAPE_QUOTES @ONLY)
 | ||||||
|  | +    ELSEIF(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${file}.in)
 | ||||||
|  | +      CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/${file}.in
 | ||||||
|  | +        ${CMAKE_CURRENT_BINARY_DIR}/${file} ESCAPE_QUOTES @ONLY)
 | ||||||
|  | +    ELSE()
 | ||||||
|  | +      MESSAGE(FATAL_ERROR "Can not find ${file}.sh or ${file}.in in "
 | ||||||
|  | +        "${CMAKE_CURRENT_SOURCE_DIR}" )
 | ||||||
|  | +    ENDIF()
 | ||||||
|  | +  ENDFOREACH()
 | ||||||
|  |  ENDIF() | ||||||
							
								
								
									
										27
									
								
								mysql-sharedir.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								mysql-sharedir.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,27 @@ | |||||||
|  | diff --git a/mysql-test/CMakeLists.txt b/mysql-test/CMakeLists.txt
 | ||||||
|  | index f77bd022..a3a3bd9f 100644
 | ||||||
|  | --- a/mysql-test/CMakeLists.txt
 | ||||||
|  | +++ b/mysql-test/CMakeLists.txt
 | ||||||
|  | @@ -57,6 +57,9 @@ IF(INSTALL_MYSQLTESTDIR)
 | ||||||
|  |  ENDIF() | ||||||
|  |   | ||||||
|  |   | ||||||
|  | +# Expand some paths in the perl script correctly
 | ||||||
|  | +CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/mysql-test-run.pl ${CMAKE_CURRENT_SOURCE_DIR}/mysql-test-run.pl @ONLY)
 | ||||||
|  | +
 | ||||||
|  |  IF(NOT ${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR}) | ||||||
|  |    # Enable running mtr from build directory | ||||||
|  |    FIND_PROGRAM(PERL_EXECUTABLE perl | ||||||
|  | diff --git a/mysql-test/mysql-test-run.pl b/mysql-test/mysql-test-run.pl
 | ||||||
|  | index b82611fd..7fc5987e 100755
 | ||||||
|  | --- a/mysql-test/mysql-test-run.pl
 | ||||||
|  | +++ b/mysql-test/mysql-test-run.pl
 | ||||||
|  | @@ -1656,7 +1656,7 @@ sub command_line_setup {
 | ||||||
|  |    my $path_share = $path_language; | ||||||
|  |   | ||||||
|  |    @share_locations = | ||||||
|  | -    ("share/mysql-" . $mysql_base_version, "share/mysql", "share");
 | ||||||
|  | +    ("@INSTALL_MYSQLSHAREDIR@", "share/mysql-" . $mysql_base_version, "share/mysql", "share");
 | ||||||
|  |   | ||||||
|  |    $path_charsetsdir = my_find_dir($basedir, \@share_locations, "charsets"); | ||||||
|  |   | ||||||
							
								
								
									
										36
									
								
								mysql-wait-stop.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								mysql-wait-stop.sh
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,36 @@ | |||||||
|  | #!/bin/sh | ||||||
|  | 
 | ||||||
|  | source "`dirname ${BASH_SOURCE[0]}`/mysql-scripts-common" | ||||||
|  | 
 | ||||||
|  | # This script waits for mysqld to be properly stopped | ||||||
|  | # (which can be many seconds in some large load). | ||||||
|  | # Running this as ExecStopPost is useful so that starting which is done | ||||||
|  | # as part of restart doesn't see the former process still running. | ||||||
|  | 
 | ||||||
|  | # Wait for the server to properly end the main server | ||||||
|  | ret=0 | ||||||
|  | TIMEOUT=60 | ||||||
|  | SECONDS=0 | ||||||
|  | 
 | ||||||
|  | if ! [ -f "$pidfile" ]; then | ||||||
|  | 	exit 0 | ||||||
|  | fi | ||||||
|  | 
 | ||||||
|  | MYSQLPID=`cat "$pidfile" 2>/dev/null` | ||||||
|  | if [ -z "$MYSQLPID" ] ; then | ||||||
|  | 	exit 2 | ||||||
|  | fi | ||||||
|  | 
 | ||||||
|  | while /bin/true; do | ||||||
|  | 	# Check process still exists | ||||||
|  | 	if ! [ -d "/proc/${MYSQLPID}" ] ; then | ||||||
|  | 	    break | ||||||
|  | 	fi | ||||||
|  | 	if [ $SECONDS -gt $TIMEOUT ] ; then | ||||||
|  | 	    ret=3 | ||||||
|  | 	    break | ||||||
|  | 	fi | ||||||
|  | 	sleep 1 | ||||||
|  | done | ||||||
|  | 
 | ||||||
|  | exit $ret | ||||||
							
								
								
									
										37
									
								
								mysql.rpmlintrc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								mysql.rpmlintrc
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,37 @@ | |||||||
|  | # THIS FILE SERVES FOR WHITELISTING RPMLINT ERRORS AND WARNINGS IN TASKOTRON | ||||||
|  | # https://fedoraproject.org/wiki/Taskotron/Tasks/dist.rpmlint#Whitelisting_errors | ||||||
|  | 
 | ||||||
|  | # (same file in python3 package served as a great example) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | # Spelling errors | ||||||
|  | addFilter(r'spelling-error .* en_US (cnf|mysqld|subpackage) ') | ||||||
|  | 
 | ||||||
|  | # Debug symlinks | ||||||
|  | addFilter(r'dangling-relative-symlink /usr/lib/.build-id') | ||||||
|  | 
 | ||||||
|  | # Testsuite | ||||||
|  | #   Some expected tests results are zero-length files | ||||||
|  | addFilter(r'(zero-length|pem-certificate|hidden-file-or-dir) /usr/share/mysql-test/*') | ||||||
|  | 
 | ||||||
|  | # Chroot function | ||||||
|  | #   False positive; checked by upstream | ||||||
|  | addFilter(r'missing-call-to-chdir-with-chroot') | ||||||
|  | 
 | ||||||
|  | # Missing documentation | ||||||
|  | #   I don't think that's on the upstream priority list | ||||||
|  | addFilter(r'no-documentation') | ||||||
|  | addFilter(r'no-manual-page-for-binary') | ||||||
|  | 
 | ||||||
|  | # Cluster is gone | ||||||
|  | addFilter("W: obsolete-not-provided mysql-cluster") | ||||||
|  | addFilter("W: obsolete-not-provided mysql-bench") | ||||||
|  | addFilter("W: obsolete-not-provided community-mysql-bench") | ||||||
|  | 
 | ||||||
|  | # Config file without noreplace flag | ||||||
|  | #   Don't replace logs that may contain old entries | ||||||
|  | addFilter(r'conffile-without-noreplace-flag /var/log/mariadb/mariadb.log') | ||||||
|  | 
 | ||||||
|  | # Seems pretty standard to me ... | ||||||
|  | addFilter(r'non-standard-dir-perm /var/log/mysql 750') | ||||||
							
								
								
									
										62
									
								
								mysql.service.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								mysql.service.in
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,62 @@ | |||||||
|  | # It's not recommended to modify this file in-place, because it will be | ||||||
|  | # overwritten during package upgrades.  If you want to customize, the | ||||||
|  | # best way is to use systemctl edit: | ||||||
|  | # | ||||||
|  | # $ systemctl edit @DAEMON_NAME@.service | ||||||
|  | # | ||||||
|  | # this will create file | ||||||
|  | # | ||||||
|  | #  /etc/systemd/system/@DAEMON_NAME@.service.d/override.conf | ||||||
|  | # | ||||||
|  | # which be parsed after the file @DAEMON_NAME@.service itself is parsed. | ||||||
|  | # | ||||||
|  | # For example, if you want to increase mysql's open-files-limit to 20000 | ||||||
|  | # add following when editing with command above: | ||||||
|  | # | ||||||
|  | #	[Service] | ||||||
|  | #	LimitNOFILE=20000 | ||||||
|  | # | ||||||
|  | # Or if you require to execute pre and post scripts in the unit file as root, set | ||||||
|  | #       PermissionsStartOnly=true | ||||||
|  | # | ||||||
|  | # For more info about custom unit files, see systemd.unit(5) or | ||||||
|  | # http://fedoraproject.org/wiki/Systemd#How_do_I_customize_a_unit_file.2F_add_a_custom_unit_file.3F | ||||||
|  | # | ||||||
|  | # Don't forget to reload systemd daemon after you change unit configuration: | ||||||
|  | # root> systemctl --system daemon-reload | ||||||
|  | 
 | ||||||
|  | [Unit] | ||||||
|  | Description=@NICE_PROJECT_NAME@ @MAJOR_VERSION@.@MINOR_VERSION@ database server | ||||||
|  | After=syslog.target | ||||||
|  | After=network.target | ||||||
|  | 
 | ||||||
|  | [Service] | ||||||
|  | Type=notify | ||||||
|  | User=mysql | ||||||
|  | Group=mysql | ||||||
|  | 
 | ||||||
|  | ExecStartPre=@libexecdir@/mysql-check-socket | ||||||
|  | ExecStartPre=@libexecdir@/mysql-prepare-db-dir %n | ||||||
|  | # Note: we set --basedir to prevent probes that might trigger SELinux alarms, | ||||||
|  | # per bug #547485 | ||||||
|  | ExecStart=@libexecdir@/mysqld --basedir=@prefix@ | ||||||
|  | ExecStopPost=@libexecdir@/mysql-wait-stop | ||||||
|  | 
 | ||||||
|  | # Give a reasonable amount of time for the server to start up/shut down | ||||||
|  | TimeoutSec=300 | ||||||
|  | 
 | ||||||
|  | # Place temp files in a secure directory, not /tmp | ||||||
|  | PrivateTmp=true | ||||||
|  | 
 | ||||||
|  | Restart=on-failure | ||||||
|  | 
 | ||||||
|  | RestartPreventExitStatus=1 | ||||||
|  | 
 | ||||||
|  | # Sets open_files_limit | ||||||
|  | LimitNOFILE = 10000 | ||||||
|  | 
 | ||||||
|  | # Set enviroment variable MYSQLD_PARENT_PID. This is required for SQL restart command. | ||||||
|  | Environment=MYSQLD_PARENT_PID=1 | ||||||
|  | 
 | ||||||
|  | [Install] | ||||||
|  | WantedBy=multi-user.target | ||||||
							
								
								
									
										1
									
								
								mysql.tmpfiles.d.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								mysql.tmpfiles.d.in
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1 @@ | |||||||
|  | d @PID_FILE_DIR@ 0755 mysql mysql - | ||||||
							
								
								
									
										3187
									
								
								mysql8.0.spec
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3187
									
								
								mysql8.0.spec
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										62
									
								
								mysql@.service.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								mysql@.service.in
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,62 @@ | |||||||
|  | # It's not recommended to modify this file in-place, because it will be | ||||||
|  | # overwritten during package upgrades.  If you want to customize, the | ||||||
|  | # best way is to use systemctl edit: | ||||||
|  | # | ||||||
|  | # $ systemctl edit @DAEMON_NAME@.service | ||||||
|  | # | ||||||
|  | # this will create file | ||||||
|  | # | ||||||
|  | #  /etc/systemd/system/@DAEMON_NAME@.service.d/override.conf | ||||||
|  | # | ||||||
|  | # which be parsed after the file @DAEMON_NAME@.service itself is parsed. | ||||||
|  | # | ||||||
|  | # For example, if you want to increase mysql's open-files-limit to 20000 | ||||||
|  | # add following when editing with command above: | ||||||
|  | # | ||||||
|  | #	[Service] | ||||||
|  | #	LimitNOFILE=20000 | ||||||
|  | # | ||||||
|  | # Or if you require to execute pre and post scripts in the unit file as root, set | ||||||
|  | #       PermissionsStartOnly=true | ||||||
|  | # | ||||||
|  | # For more info about custom unit files, see systemd.unit(5) or | ||||||
|  | # http://fedoraproject.org/wiki/Systemd#How_do_I_customize_a_unit_file.2F_add_a_custom_unit_file.3F | ||||||
|  | # | ||||||
|  | # Don't forget to reload systemd daemon after you change unit configuration: | ||||||
|  | # root> systemctl --system daemon-reload | ||||||
|  | 
 | ||||||
|  | [Unit] | ||||||
|  | Description=@NICE_PROJECT_NAME@ @MAJOR_VERSION@.@MINOR_VERSION@ database server | ||||||
|  | After=syslog.target | ||||||
|  | After=network.target | ||||||
|  | 
 | ||||||
|  | [Service] | ||||||
|  | Type=notify | ||||||
|  | User=mysql | ||||||
|  | Group=mysql | ||||||
|  | 
 | ||||||
|  | ExecStartPre=@libexecdir@/mysql-check-socket --defaults-group-suffix=.%I | ||||||
|  | ExecStartPre=@libexecdir@/mysql-prepare-db-dir --defaults-group-suffix=.%I %n | ||||||
|  | # Note: we set --basedir to prevent probes that might trigger SELinux alarms, | ||||||
|  | # per bug #547485 | ||||||
|  | ExecStart=@libexecdir@/mysqld --defaults-group-suffix=.%I --basedir=@prefix@ | ||||||
|  | ExecStopPost=@libexecdir@/mysql-wait-stop --defaults-group-suffix=.%I | ||||||
|  | 
 | ||||||
|  | # Give a reasonable amount of time for the server to start up/shut down | ||||||
|  | TimeoutSec=300 | ||||||
|  | 
 | ||||||
|  | # Place temp files in a secure directory, not /tmp | ||||||
|  | PrivateTmp=true | ||||||
|  | 
 | ||||||
|  | Restart=on-failure | ||||||
|  | 
 | ||||||
|  | RestartPreventExitStatus=1 | ||||||
|  | 
 | ||||||
|  | # Sets open_files_limit | ||||||
|  | LimitNOFILE = 10000 | ||||||
|  | 
 | ||||||
|  | # Set enviroment variable MYSQLD_PARENT_PID. This is required for SQL restart command. | ||||||
|  | Environment=MYSQLD_PARENT_PID=1 | ||||||
|  | 
 | ||||||
|  | [Install] | ||||||
|  | WantedBy=multi-user.target | ||||||
							
								
								
									
										26
									
								
								mysql_config_multilib.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								mysql_config_multilib.sh
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,26 @@ | |||||||
|  | #! /bin/sh | ||||||
|  | # | ||||||
|  | # Wrapper script for mysql_config to support multilib | ||||||
|  | # | ||||||
|  | # This command respects setarch | ||||||
|  | 
 | ||||||
|  | bits=$(rpm --eval %__isa_bits) | ||||||
|  | 
 | ||||||
|  | case $bits in | ||||||
|  |     32|64) status=known ;; | ||||||
|  |         *) status=unknown ;; | ||||||
|  | esac | ||||||
|  | 
 | ||||||
|  | if [ "$status" = "unknown" ] ; then | ||||||
|  |     echo "$0: error: command 'rpm --eval %__isa_bits' returned unknown value: $bits" | ||||||
|  |     exit 1 | ||||||
|  | fi | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | if [ -x @bindir@/mysql_config-$bits ] ; then | ||||||
|  |     @bindir@/mysql_config-$bits "$@" | ||||||
|  | else | ||||||
|  |     echo "$0: error: needed binary: @bindir@/mysql_config-$bits is missing" | ||||||
|  |     exit 1 | ||||||
|  | fi | ||||||
|  | 
 | ||||||
							
								
								
									
										0
									
								
								rh-skipped-tests-list-arm.list
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								rh-skipped-tests-list-arm.list
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										37
									
								
								rh-skipped-tests-list-base.list
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								rh-skipped-tests-list-base.list
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,37 @@ | |||||||
|  | auth_sec.keyring_file_data_qa              : BUG#0 failing on F32+ | ||||||
|  | innodb.alter_kill                          : BUG#0 failing on F34+ | ||||||
|  | main.mtr_unit_tests                        : BUG#0 failing on F35+ | ||||||
|  | 
 | ||||||
|  | # Expected to fail in Fedora 33+ | ||||||
|  | #  TLS 1.1 and older has been disabled by system-wide crypto-policies setting | ||||||
|  | #  https://fedoraproject.org/wiki/Changes/StrongCryptoSettings2 | ||||||
|  | #  Tests pass when using legacy crypto-policies seetings | ||||||
|  | x.connection_tls_version                   : BUG#0 Expected to fail on F33+ | ||||||
|  | 
 | ||||||
|  | # We intentionaly compile in a different default value than the upstream | ||||||
|  | # Thus the commands expected by upstream to fail succeeds in our builds | ||||||
|  | # and thus the test fails | ||||||
|  | #   Cmake option: -DENABLED_LOCAL_INFILE=ON | ||||||
|  | main.mysql_load_data_local_dir             : BUG#0 Intentional divergence from the upstream compiled-in default | ||||||
|  | 
 | ||||||
|  | # Failing since MySQL 8.0.29 | ||||||
|  | main.mysqlpump_bugs                        : BUG#0 | ||||||
|  | 
 | ||||||
|  | # Failing since 8.0.34 | ||||||
|  | binlog.binlog_mysqlbinlog_linux            : BUG#0 | ||||||
|  | 
 | ||||||
|  | # Failing since 8.0.37 | ||||||
|  | auth_sec.wl15800_ciphers_tlsv13            : BUG#0 | ||||||
|  | binlog.binlog_mysqlbinlog_linux            : BUG#0 | ||||||
|  | 
 | ||||||
|  | main.archive                               : BUG#0 | ||||||
|  | main.mysqlpump_basic_lz4                   : BUG#0 | ||||||
|  | 
 | ||||||
|  | clone.local_dml_auto_tune                  : BUG#0 | ||||||
|  | clone.remote_dml_auto_tune                 : BUG#0 | ||||||
|  | 
 | ||||||
|  | innodb.check_ibd_filesize_16k              : BUG#0 | ||||||
|  | 
 | ||||||
|  | rpl_gtid.mysqldump_bug33630199             : BUG#0 | ||||||
|  | rpl.rpl_eventlog_psi_memory                : BUG#0 | ||||||
|  | rpl.rpl_tlsv13                             : BUG#0 | ||||||
							
								
								
									
										49
									
								
								rh-skipped-tests-list-ppc.list
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										49
									
								
								rh-skipped-tests-list-ppc.list
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,49 @@ | |||||||
|  | # Fails since 8.0.30 | ||||||
|  | federated.federated_server                      : BUG#0 | ||||||
|  | rpl.rpl_innodb_bug28430                         : BUG#0 | ||||||
|  | 
 | ||||||
|  | # Fails since 8.0.31 | ||||||
|  | main.lock_multi_bug38691                        : BUG#0 | ||||||
|  | 
 | ||||||
|  | # Fails since 8.0.34 | ||||||
|  | rpl_gtid.rpl_gtid_row_event_max_size            : BUG#0 | ||||||
|  | rpl.rpl_channel_creation_under_replica_load     : BUG#0 | ||||||
|  | 
 | ||||||
|  | # Fails since 8.0.37 | ||||||
|  | clone.local_dml                                 : BUG#0 | ||||||
|  | clone.remote_dml_no_binlog                      : BUG#0 | ||||||
|  | clone.remote_dml_replace                        : BUG#0 | ||||||
|  | 
 | ||||||
|  | innodb.create_index_with_disable_sort_file_cache  : BUG#0 | ||||||
|  | innodb_fts.bug_34846823                         : BUG#0 | ||||||
|  | innodb_gis.rtree_search                         : BUG#0 | ||||||
|  | innodb.innodb_autoextend_import_export          : BUG#0 | ||||||
|  | innodb.instant_ddl_upgrade_rollback             : BUG#0 | ||||||
|  | innodb.lob_recovery                             : BUG#0 | ||||||
|  | innodb.multi_value_basic                        : BUG#0 | ||||||
|  | innodb_undo.undo_settings                       : BUG#0 | ||||||
|  | 
 | ||||||
|  | main.mysql_client_test                          : BUG#0 | ||||||
|  | main.mysqlslap                                  : BUG#0 | ||||||
|  | 
 | ||||||
|  | parts.partition_reverse_scan_icp                : BUG#0 | ||||||
|  | 
 | ||||||
|  | rpl_gtid.rpl_perfschema_applier_status_by_worker_gtid_skipped_transaction_mts  : BUG#0 | ||||||
|  | rpl_nogtid.rpl_loaddatalocal                    : BUG#0 | ||||||
|  | rpl_nogtid.rpl_row_event_max_size               : BUG#0 | ||||||
|  | rpl_nogtid.rpl_typeconv                         : BUG#0 | ||||||
|  | rpl.rpl_mysql_upgrade                           : BUG#0 | ||||||
|  | rpl.rpl_parallel                                : BUG#0 | ||||||
|  | rpl.rpl_priv_checks_user_start_info             : BUG#0 | ||||||
|  | 
 | ||||||
|  | sys_vars.myisam_data_pointer_size_func          : BUG#0 | ||||||
|  | x.upgrade                                       : BUG#0 | ||||||
|  | 
 | ||||||
|  | # Unstable in 8.0.37 | ||||||
|  | main.component-upgrade                          : BUG#0 | ||||||
|  | main.count_distinct2                            : BUG#0 | ||||||
|  | main.dd_upgrade_non_debug                       : BUG#0 | ||||||
|  | main.dd_upgrade_partition                       : BUG#0 | ||||||
|  | main.disabled_storage_engines                   : BUG#0 | ||||||
|  | main.partition                                  : BUG#0 | ||||||
|  | main.multi_update                               : BUG#0 | ||||||
							
								
								
									
										7
									
								
								rh-skipped-tests-list-s390.list
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								rh-skipped-tests-list-s390.list
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,7 @@ | |||||||
|  | # Fails since 8.0.34 | ||||||
|  | rpl.rpl_channel_creation_under_replica_load       : BUG#0 | ||||||
|  | rpl_gtid.rpl_perfschema_applier_status_by_worker_gtid_skipped_transaction_mts : BUG#0 | ||||||
|  | 
 | ||||||
|  | # Fails since 8.0.37 | ||||||
|  | innodb.lob_recovery                      : BUG#0 | ||||||
|  | sys_vars.myisam_data_pointer_size_func   : BUG#0 | ||||||
							
								
								
									
										13
									
								
								rpminspect.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								rpminspect.yaml
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,13 @@ | |||||||
|  | # Set up global ignore list | ||||||
|  | ignore: | ||||||
|  |     # mysql-test/ directory contains an extensive test-suite of about 20.000 files; | ||||||
|  |     # It is very time consuming to be fully analysed and the results aren't useful anyway | ||||||
|  |     # It is expected the tests change during rebases, as the underlying functionality the test evolve | ||||||
|  |     # Some of the tests contain broken or problematic code, however that is on purpose | ||||||
|  |     - /usr/share/mysql-test/ | ||||||
|  | 
 | ||||||
|  | badfuncs: | ||||||
|  |   ignore: | ||||||
|  |     # udf_example.so can be ignored, as it is an example of how to write loadable functions | ||||||
|  |     # Loadable functions were formerly know as UDF (User Defined Functions). | ||||||
|  |     - /usr/lib64/mysql/plugin/udf_example.so | ||||||
							
								
								
									
										18
									
								
								server.cnf.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								server.cnf.in
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,18 @@ | |||||||
|  | # | ||||||
|  | # This group are read by MySQL server. | ||||||
|  | # Use it for options that only the server (but not clients) should see | ||||||
|  | # | ||||||
|  | # For advice on how to change settings please see | ||||||
|  | # http://dev.mysql.com/doc/refman/en/server-configuration-defaults.html | ||||||
|  | 
 | ||||||
|  | # Settings user and group are ignored when systemd is used. | ||||||
|  | # If you need to run mysqld under a different user or group, | ||||||
|  | # customize your systemd unit file for mysqld according to the | ||||||
|  | # instructions in http://fedoraproject.org/wiki/Systemd | ||||||
|  | 
 | ||||||
|  | [mysqld] | ||||||
|  | datadir=@MYSQL_DATADIR@ | ||||||
|  | socket=@MYSQL_UNIX_ADDR@ | ||||||
|  | log-error=@LOGFILE_RPM@ | ||||||
|  | pid-file=@PID_FILE_DIR@/@DAEMON_NO_PREFIX@.pid | ||||||
|  | 
 | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user