From fd33a2fdc43b6285085b8d20df2cd829f4f9889f Mon Sep 17 00:00:00 2001 From: David Fan Date: Tue, 6 Aug 2024 12:22:22 +0000 Subject: [PATCH] mysql8.0 package is retired on branch c10s for CS-2404 --- .gitignore | 3 - README.mysql-docs | 4 - README.mysql-license | 9 -- boost-1.57.0-mpl-print.patch | 31 ----- boost-1.58.0-pool.patch | 120 ------------------ ...fix_multiprecision_issue_419-ppc64le.patch | 27 ---- dead.package | 1 + gating.yaml | 6 - my.cnf.in | 16 --- mysql-arm32-timer.patch | 16 --- mysql-c99.patch | 12 -- mysql-check-socket.sh | 39 ------ mysql-file-contents.patch | 45 ------- mysql-flush-logrotate.patch | 17 --- mysql-install-test.patch | 52 -------- mysql-mtr.patch | 104 --------------- mysql-paths.patch | 77 ----------- mysql-prepare-db-dir.sh | 112 ---------------- mysql-rpath.patch | 19 --- mysql-scripts-common.sh | 68 ---------- mysql-scripts.patch | 33 ----- 21 files changed, 1 insertion(+), 810 deletions(-) delete mode 100644 .gitignore delete mode 100644 README.mysql-docs delete mode 100644 README.mysql-license delete mode 100644 boost-1.57.0-mpl-print.patch delete mode 100644 boost-1.58.0-pool.patch delete mode 100644 boost-1.76.0-fix_multiprecision_issue_419-ppc64le.patch create mode 100644 dead.package delete mode 100644 gating.yaml delete mode 100644 my.cnf.in delete mode 100644 mysql-arm32-timer.patch delete mode 100644 mysql-c99.patch delete mode 100644 mysql-check-socket.sh delete mode 100644 mysql-file-contents.patch delete mode 100644 mysql-flush-logrotate.patch delete mode 100644 mysql-install-test.patch delete mode 100644 mysql-mtr.patch delete mode 100644 mysql-paths.patch delete mode 100644 mysql-prepare-db-dir.sh delete mode 100644 mysql-rpath.patch delete mode 100644 mysql-scripts-common.sh delete mode 100644 mysql-scripts.patch diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 20870bb..0000000 --- a/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -/*/ -/*.rpm -/*.tar.gz diff --git a/README.mysql-docs b/README.mysql-docs deleted file mode 100644 index dd894a7..0000000 --- a/README.mysql-docs +++ /dev/null @@ -1,4 +0,0 @@ -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/ diff --git a/README.mysql-license b/README.mysql-license deleted file mode 100644 index ceabbcf..0000000 --- a/README.mysql-license +++ /dev/null @@ -1,9 +0,0 @@ -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. diff --git a/boost-1.57.0-mpl-print.patch b/boost-1.57.0-mpl-print.patch deleted file mode 100644 index 561cef1..0000000 --- a/boost-1.57.0-mpl-print.patch +++ /dev/null @@ -1,31 +0,0 @@ -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::value > -1 --# else -- sizeof(T) > -1 --# endif -- }; --#endif -+#elif defined(__EDG_VERSION__) -+ enum { n = aux::dependent_unsigned::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 diff --git a/boost-1.58.0-pool.patch b/boost-1.58.0-pool.patch deleted file mode 100644 index ed8449e..0000000 --- a/boost-1.58.0-pool.patch +++ /dev/null @@ -1,120 +0,0 @@ -Index: boost/pool/pool.hpp -=================================================================== ---- boost/pool/pool.hpp (revision 78317) -+++ boost/pool/pool.hpp (revision 78326) -@@ -27,4 +27,6 @@ - #include - -+// std::numeric_limits -+#include - // boost::integer::static_lcm - #include -@@ -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::value + sizeof(size_type); -+ return (std::numeric_limits::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 -+#include -+ -+int main() -+{ -+ boost::pool<> p(1024, std::numeric_limits::max() / 768); -+ -+ void *x = p.malloc(); -+ BOOST_ASSERT(!x); -+ -+ BOOST_ASSERT(std::numeric_limits::max() / 1024 >= p.get_next_size()); -+ BOOST_ASSERT(std::numeric_limits::max() / 1024 >= p.get_max_size()); -+ -+ void *y = p.ordered_malloc(std::numeric_limits::max() / 768); -+ BOOST_ASSERT(!y); -+ -+ return 0; -+} diff --git a/boost-1.76.0-fix_multiprecision_issue_419-ppc64le.patch b/boost-1.76.0-fix_multiprecision_issue_419-ppc64le.patch deleted file mode 100644 index 5cd6d40..0000000 --- a/boost-1.76.0-fix_multiprecision_issue_419-ppc64le.patch +++ /dev/null @@ -1,27 +0,0 @@ -From d1343f28dcbe25b100b082b34775bd92ead4602c Mon Sep 17 00:00:00 2001 -From: jzmaddock -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)) diff --git a/dead.package b/dead.package new file mode 100644 index 0000000..3c850e9 --- /dev/null +++ b/dead.package @@ -0,0 +1 @@ +mysql8.0 package is retired on branch c10s for CS-2404 \ No newline at end of file diff --git a/gating.yaml b/gating.yaml deleted file mode 100644 index 3442642..0000000 --- a/gating.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- !Policy -product_versions: - - rhel-10 -decision_context: osci_compose_gate -rules: - - !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tier1.functional} diff --git a/my.cnf.in b/my.cnf.in deleted file mode 100644 index 2bb9e88..0000000 --- a/my.cnf.in +++ /dev/null @@ -1,16 +0,0 @@ -# -# 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@ - diff --git a/mysql-arm32-timer.patch b/mysql-arm32-timer.patch deleted file mode 100644 index bafa0bb..0000000 --- a/mysql-arm32-timer.patch +++ /dev/null @@ -1,16 +0,0 @@ -diff --git a/mysql-test/include/mtr_warnings.sql b/mysql-test/include/mtr_warnings.sql -index 78b09285..b7153445 100644 ---- a/mysql-test/include/mtr_warnings.sql -+++ b/mysql-test/include/mtr_warnings.sql -@@ -376,6 +376,11 @@ INSERT INTO global_suppressions VALUES - - ("'mysql_native_password' is deprecated and will be removed in a future release."), - -+ /* -+ ARM32 don't support timers and get this warning in every test. -+ */ -+ ("The CYCLE timer is not available. WAIT events in the performance_schema will not be timed."), -+ - ("THE_LAST_SUPPRESSION"); - - diff --git a/mysql-c99.patch b/mysql-c99.patch deleted file mode 100644 index 935e64f..0000000 --- a/mysql-c99.patch +++ /dev/null @@ -1,12 +0,0 @@ -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; diff --git a/mysql-check-socket.sh b/mysql-check-socket.sh deleted file mode 100644 index b15cd32..0000000 --- a/mysql-check-socket.sh +++ /dev/null @@ -1,39 +0,0 @@ -#!/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 diff --git a/mysql-file-contents.patch b/mysql-file-contents.patch deleted file mode 100644 index 0f1cdba..0000000 --- a/mysql-file-contents.patch +++ /dev/null @@ -1,45 +0,0 @@ -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) diff --git a/mysql-flush-logrotate.patch b/mysql-flush-logrotate.patch deleted file mode 100644 index 1e30f6a..0000000 --- a/mysql-flush-logrotate.patch +++ /dev/null @@ -1,17 +0,0 @@ -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 - } diff --git a/mysql-install-test.patch b/mysql-install-test.patch deleted file mode 100644 index 1f67132..0000000 --- a/mysql-install-test.patch +++ /dev/null @@ -1,52 +0,0 @@ -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 diff --git a/mysql-mtr.patch b/mysql-mtr.patch deleted file mode 100644 index 3bb6559..0000000 --- a/mysql-mtr.patch +++ /dev/null @@ -1,104 +0,0 @@ -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, 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= 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= 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") diff --git a/mysql-paths.patch b/mysql-paths.patch deleted file mode 100644 index d5978b6..0000000 --- a/mysql-paths.patch +++ /dev/null @@ -1,77 +0,0 @@ -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)); diff --git a/mysql-prepare-db-dir.sh b/mysql-prepare-db-dir.sh deleted file mode 100644 index 46cf636..0000000 --- a/mysql-prepare-db-dir.sh +++ /dev/null @@ -1,112 +0,0 @@ -#!/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 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 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 diff --git a/mysql-rpath.patch b/mysql-rpath.patch deleted file mode 100644 index 16d5bc4..0000000 --- a/mysql-rpath.patch +++ /dev/null @@ -1,19 +0,0 @@ -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) - diff --git a/mysql-scripts-common.sh b/mysql-scripts-common.sh deleted file mode 100644 index 58f0437..0000000 --- a/mysql-scripts-common.sh +++ /dev/null @@ -1,68 +0,0 @@ -#!/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" - diff --git a/mysql-scripts.patch b/mysql-scripts.patch deleted file mode 100644 index 322577b..0000000 --- a/mysql-scripts.patch +++ /dev/null @@ -1,33 +0,0 @@ ---- 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()