From 3556d5e19375af505775dc22be0ec7f8fb98687d Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Sun, 6 Apr 2025 10:58:03 +0200 Subject: [PATCH 01/27] Switch from the RPM scriptlet to the sysusers.d configuration for 'mysql' user / group creation See https://fedoraproject.org/wiki/Changes/RPMSuportForSystemdSysusers. --- My final decision is to be progressive and completely remove the old behaviour. --- My original strategy was to introduce these changes with full backward compatibility for older Fedora releases and hopefully also existing RHEL releases. However that didn't work as smoothly as I expected. https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/F6DCB3KCTB3SEMQWLE7OITV3I4T24ZV6 Now I'm pressured by latest Rawhide change that strenghten the automatically generated user(), group() from 'Recommends:' to 'Requires:' https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/4CNWZ7HYSUO5TUDU7RHRFHPEWQENNYNI --- The MySQL upstream do not ship their own sysusers.d configuration file. WARNING: We no longer enforce the fixed UID/GID 27 !!! The fixed UID/GID 27 was also drooped from the Fedora static allocation list: https://src.fedoraproject.org/rpms/setup/c/df5ba7?branch=rawhide --- mysql8.0.spec | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/mysql8.0.spec b/mysql8.0.spec index b323e42..e138f09 100644 --- a/mysql8.0.spec +++ b/mysql8.0.spec @@ -102,7 +102,7 @@ Name: %{majorname}%{majorversion} Version: %{package_version} -Release: 1%{?with_debug:.debug}%{?dist} +Release: 2%{?with_debug:.debug}%{?dist} Summary: MySQL client programs and shared libraries URL: http://www.mysql.com @@ -388,7 +388,6 @@ Requires: %{_sysconfdir}/my.cnf.d Requires: %{pkgname}-errmsg = %{sameevr} %{?mecab:Requires: mecab-ipadic} Requires: coreutils -Requires(pre): /usr/sbin/useradd # We require this to be present for %%{_tmpfilesdir} Requires: systemd # Make sure it's there when scriptlets run, too @@ -646,6 +645,13 @@ install -D -p -m 644 %{_vpath_builddir}/scripts/mysql@.service %{buildroot}%{_un install -D -p -m 0644 %{_vpath_builddir}/scripts/mysql.tmpfiles.d %{buildroot}%{_tmpfilesdir}/%{daemon_name}.conf rm -r %{buildroot}%{_tmpfilesdir}/mysql.conf +# Create a sysusers.d config file +# We no longer enforce the hardcoded UID/GID 27 +mkdir -p %{buildroot}%{_sysusersdir} +cat > %{buildroot}%{_sysusersdir}/%{name}.conf << EOF +u mysql - 'MariaDB and MySQL Server' %{dbdatadir} - +EOF + # helper scripts for service starting install -D -p -m 755 %{_vpath_builddir}/scripts/mysql-prepare-db-dir %{buildroot}%{_libexecdir}/mysql-prepare-db-dir install -p -m 755 %{_vpath_builddir}/scripts/mysql-wait-stop %{buildroot}%{_libexecdir}/mysql-wait-stop @@ -783,11 +789,6 @@ popd -%pre -n %{pkgname}-server -/usr/sbin/groupadd -g 27 -o -r mysql >/dev/null 2>&1 || : -/usr/sbin/useradd -M -N -g mysql -o -r -d %{dbdatadir} -s /sbin/nologin \ - -c "MySQL Server" -u 27 mysql >/dev/null 2>&1 || : - %post -n %{pkgname}-server %systemd_post %{daemon_name}.service if [ ! -e "%{logfile}" -a ! -h "%{logfile}" ] ; then @@ -979,6 +980,7 @@ fi %{_libexecdir}/mysql-scripts-common %{_tmpfilesdir}/%{daemon_name}.conf +%{_sysusersdir}/%{name}.conf %attr(0755,mysql,mysql) %dir %{dbdatadir} %attr(0750,mysql,mysql) %dir %{_localstatedir}/lib/mysql-files %attr(0700,mysql,mysql) %dir %{_localstatedir}/lib/mysql-keyring @@ -1104,6 +1106,11 @@ fi %endif %changelog +* Sun Apr 06 2025 Michal Schorm - 8.0.41-2 +- Switch from the RPM scriptlet to the sysusers.d configuration + for 'mysql' user / group creation +- We no longer enforce the fixed UID/GID 27 !!! + * Fri Feb 28 2025 Michal Schorm - 8.0.41-1 - Rebase to MySQL 8.0.41 From 546ef48c7559cb6b4cadb02065bfc6e578fbf41d Mon Sep 17 00:00:00 2001 From: Pavol Sloboda Date: Thu, 24 Apr 2025 15:31:36 +0200 Subject: [PATCH 02/27] Rebase to 8.0.42 Rebase to 8.0.42 Upstream release notes: https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-42.html updated the patch that disables using the deprecated openssl engine https://fedoraproject.org/wiki/Changes/OpensslNoEngine https://fedoraproject.org/wiki/Changes/OpensslDeprecateEngine --- mysql-openssl-engine.patch | 15 +++++++-------- mysql8.0.spec | 7 +++++-- sources | 2 +- 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/mysql-openssl-engine.patch b/mysql-openssl-engine.patch index de1d368..840fe72 100644 --- a/mysql-openssl-engine.patch +++ b/mysql-openssl-engine.patch @@ -1,15 +1,14 @@ -https://fedoraproject.org/wiki/Changes/OpensslDeprecateEngine -https://fedoraproject.org/wiki/Changes/OpensslNoEngine - ---- mysql-8.0.37/plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/network/xcom_network_provider_ssl_native_lib.cc 2024-03-27 20:22:56.000000000 +0100 -+++ mysql-8.0.37/plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/network/xcom_network_provider_ssl_native_lib.cc_patched 2024-07-18 17:01:59.488433958 +0200 -@@ -41,7 +41,9 @@ +--- mysql-8.0.42/plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/network/xcom_network_provider_ssl_native_lib.cc 2025-03-31 10:19:27.000000000 +0200 ++++ mysql-8.0.42-patched/plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/network/xcom_network_provider_ssl_native_lib.cc 2025-04-24 15:27:29.155287397 +0200 +@@ -50,9 +50,9 @@ #include "my_compiler.h" #endif +-#if OPENSSL_VERSION_NUMBER < 0x10100000L +#if !defined(OPENSSL_NO_ENGINE) - #include "openssl/engine.h" + #include +-#endif /* OPENSSL_VERSION_NUMBER < 0x10100000L */ +#endif + #include "xcom/retry.h" #include "xcom/task_debug.h" - #include "xcom/x_platform.h" diff --git a/mysql8.0.spec b/mysql8.0.spec index e138f09..3f5715a 100644 --- a/mysql8.0.spec +++ b/mysql8.0.spec @@ -1,6 +1,6 @@ # Name of the package without any prefixes %global majorname mysql -%global package_version 8.0.41 +%global package_version 8.0.42 %define majorversion %(echo %{package_version} | cut -d'.' -f1-2 ) %global pkgnamepatch mysql @@ -102,7 +102,7 @@ Name: %{majorname}%{majorversion} Version: %{package_version} -Release: 2%{?with_debug:.debug}%{?dist} +Release: 1%{?with_debug:.debug}%{?dist} Summary: MySQL client programs and shared libraries URL: http://www.mysql.com @@ -1106,6 +1106,9 @@ fi %endif %changelog +* Thu Apr 24 2025 Pavol Sloboda - 8.0.42-1 +- Rebase to MySQL 8.0.42 + * Sun Apr 06 2025 Michal Schorm - 8.0.41-2 - Switch from the RPM scriptlet to the sysusers.d configuration for 'mysql' user / group creation diff --git a/sources b/sources index f014b75..4ca1e17 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (mysql-boost-8.0.41.tar.gz) = e5bb314082be6bf037808ea7a2130c8e2b44491a6c54bc3f611d823be5285021d05093afca71c3d33da6dece2bac3a8e24da5198080060407d8c4dbfeeea8a99 +SHA512 (mysql-boost-8.0.42.tar.gz) = 66776b5a1be603f215d4b227d395e72476bde76fdc0ba5ffdcfcb851a8261f1428c23c8abf1edca616765ee8254354e9092eaadde5ed43e7e2daa2ac265a0b23 From e3dcb9ae5cf5b5c50acb7276f4802bf300445a20 Mon Sep 17 00:00:00 2001 From: Pavol Sloboda Date: Wed, 7 May 2025 14:44:03 +0200 Subject: [PATCH 03/27] Added the tests that failed reocurringly Added the tests with reocurring failures for arches s390x and ppc64le into their respective ignore lists, other arches (and the ones mentioned here) had a few failing tests but these were the only ones that failed almost every time Bumped the version of last_tested_version Changed the version of last_tested_version to the current one after running the expanded testsuite and updating the skipped test lists Koji scratch builds with full testsuite: f40: https://koji.fedoraproject.org/koji/taskinfo?taskID=132209779 rebuild of ppc64le because of a misc test unrelated fail: https://koji.fedoraproject.org/koji/taskinfo?taskID=132343011 https://koji.fedoraproject.org/koji/taskinfo?taskID=132348944 f41: https://koji.fedoraproject.org/koji/taskinfo?taskID=132209572 https://koji.fedoraproject.org/koji/taskinfo?taskID=132348955 f42: https://koji.fedoraproject.org/koji/taskinfo?taskID=132209514 https://koji.fedoraproject.org/koji/taskinfo?taskID=132348960 f43: https://koji.fedoraproject.org/koji/taskinfo?taskID=132209508 https://koji.fedoraproject.org/koji/taskinfo?taskID=132348945 --- mysql8.0.spec | 2 +- rh-skipped-tests-list-ppc.list | 3 +++ rh-skipped-tests-list-s390.list | 3 +++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/mysql8.0.spec b/mysql8.0.spec index 3f5715a..61edd84 100644 --- a/mysql8.0.spec +++ b/mysql8.0.spec @@ -19,7 +19,7 @@ # The last version on which the full testsuite has been run # In case of further rebuilds of that version, don't require full testsuite to be run # run only "main" suite -%global last_tested_version 8.0.41 +%global last_tested_version 8.0.42 # Set to 1 to force run the testsuite even if it was already tested in current version %global force_run_testsuite 0 diff --git a/rh-skipped-tests-list-ppc.list b/rh-skipped-tests-list-ppc.list index 9ffdb04..a534953 100644 --- a/rh-skipped-tests-list-ppc.list +++ b/rh-skipped-tests-list-ppc.list @@ -47,3 +47,6 @@ main.dd_upgrade_partition : BUG#0 main.disabled_storage_engines : BUG#0 main.partition : BUG#0 main.multi_update : BUG#0 + +# Fails since 8.0.42 +innodb_fts.optimize_big : BUG#0 diff --git a/rh-skipped-tests-list-s390.list b/rh-skipped-tests-list-s390.list index a2d393c..451d206 100644 --- a/rh-skipped-tests-list-s390.list +++ b/rh-skipped-tests-list-s390.list @@ -5,3 +5,6 @@ rpl_gtid.rpl_perfschema_applier_status_by_worker_gtid_skipped_transaction_mts : # Fails since 8.0.37 innodb.lob_recovery : BUG#0 sys_vars.myisam_data_pointer_size_func : BUG#0 + +# Fails since 8.0.42 +x.connection_not_alive : BUG#0 From 4e228547e523f9150f1f3f2a75b517cde0228e68 Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Wed, 9 Jul 2025 09:56:08 +0200 Subject: [PATCH 04/27] Disable the testsuite - ppc64le infractructure issues Can be re-enabled when the ppc64le builds reach similar time and stability as the other architectures --- mysql8.0.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mysql8.0.spec b/mysql8.0.spec index 61edd84..b95ed5e 100644 --- a/mysql8.0.spec +++ b/mysql8.0.spec @@ -11,7 +11,7 @@ # Regression tests may take a long time (many cores recommended), skip them by # passing --nocheck to rpmbuild or by setting runselftest to 0 if defining # --nocheck is not possible (e.g. in koji build) -%{!?runselftest:%global runselftest 1} +%{!?runselftest:%global runselftest 0} # Set this to 1 to see which tests fail, but 0 on production ready build %global ignore_testsuite_result 0 From b0482a3e354b6c7a7c1cf1707163727943b68cd1 Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Wed, 9 Jul 2025 09:55:43 +0200 Subject: [PATCH 05/27] [Fix for Fedora Change] Fix versioned layout macros - cover both arch and noarch sub-packages - add obsoletes against the older versions to the distribution default version --- mysql8.0.spec | 38 +++++++++++++++++++++++++------------- 1 file changed, 25 insertions(+), 13 deletions(-) diff --git a/mysql8.0.spec b/mysql8.0.spec index b95ed5e..03b27d0 100644 --- a/mysql8.0.spec +++ b/mysql8.0.spec @@ -102,7 +102,7 @@ Name: %{majorname}%{majorversion} Version: %{package_version} -Release: 1%{?with_debug:.debug}%{?dist} +Release: 2%{?with_debug:.debug}%{?dist} Summary: MySQL client programs and shared libraries URL: http://www.mysql.com @@ -273,20 +273,32 @@ Conflicts: %{majorname}%{?1:-%{1}}-any\ # Provide also mysqlX.X if default %if %?mysql_default -%define mysqlX_if_default() %{expand:\ +%define mysqlX_if_default_arched() %{expand:\ +Obsoletes: mysql%{?1:-%{1}} < %{sameevr}\ +Obsoletes: mysql%{majorversion}%{?1:-%{1}} < %{sameevr}\ Provides: mysql%{majorversion}%{?1:-%{1}} = %{sameevr}\ Provides: mysql%{majorversion}%{?1:-%{1}}%{?_isa} = %{sameevr}\ } +%define mysqlX_if_default_noarch() %{expand:\ +Obsoletes: mysql%{?1:-%{1}} < %{sameevr}\ +Obsoletes: mysql%{majorversion}%{?1:-%{1}} < %{sameevr}\ +Provides: mysql%{majorversion}%{?1:-%{1}} = %{sameevr}\ +} %else -%define mysqlX_if_default() %{nil} +%define mysqlX_if_default_arched() %{nil} +%define mysqlX_if_default_noarch() %{nil} %endif -%define add_metadata() %{expand:\ +%define add_metadata_arched() %{expand:\ %conflict_with_other_streams %{**}\ -%mysqlX_if_default %{**}\ +%mysqlX_if_default_arched %{**}\ +} +%define add_metadata_noarch() %{expand:\ +%conflict_with_other_streams %{**}\ +%mysqlX_if_default_noarch %{**}\ } -%add_metadata +%add_metadata_arched %description MySQL is a multi-user, multi-threaded SQL database server. MySQL is a @@ -308,7 +320,7 @@ Requires: %{pkgname}-common = %{sameevr} %{?with_provides_community_mysql:Provides: community-mysql-libs%{?_isa}= %community_mysql_version} %{?with_obsoletes_community_mysql:Obsoletes: community-mysql-libs <= %obsolete_community_mysql_version} -%add_metadata libs +%add_metadata_arched libs %description -n %{pkgname}-libs The mysql-libs package provides the essential shared libraries for any @@ -325,7 +337,7 @@ Summary: The config files required by server and client %{?with_provides_community_mysql:Provides: community-mysql-config%{?_isa} = %community_mysql_version} %{?with_obsoletes_community_mysql:Obsoletes: community-mysql-config <= %obsolete_community_mysql_version} -%add_metadata config +%add_metadata_arched config %description -n %{pkgname}-config The package provides the config file my.cnf and my.cnf.d directory used by any @@ -348,7 +360,7 @@ Requires: %{_sysconfdir}/my.cnf %{?with_obsoletes_community_mysql:Obsoletes: community-mysql-common <= %obsolete_community_mysql_version} # As this package is noarch, it can't use the %%{?_isa} RPM macro -%conflict_with_other_streams common +%add_metadata_noarch common %description -n %{pkgname}-common The mysql-common package provides the essential shared files for any @@ -366,7 +378,7 @@ Requires: %{pkgname}-common = %{sameevr} %{?with_obsoletes_community_mysql:Obsoletes: community-mysql-errmsg <= %obsolete_community_mysql_version} # As this package is noarch, it can't use the %%{?_isa} RPM macro -%conflict_with_other_streams errmsg +%add_metadata_noarch errmsg %description -n %{pkgname}-errmsg The package provides error messages files for the MySQL daemon @@ -412,7 +424,7 @@ Requires: (mysql-selinux if selinux-policy-targeted) %{?with_provides_community_mysql:Provides: community-mysql-server%{?_isa} = %community_mysql_version} %{?with_obsoletes_community_mysql:Obsoletes: community-mysql-server <= %obsolete_community_mysql_version} -%add_metadata server +%add_metadata_arched server %description -n %{pkgname}-server MySQL is a multi-user, multi-threaded SQL database server. MySQL is a @@ -434,7 +446,7 @@ Requires: libzstd-devel %{?with_provides_community_mysql:Provides: community-mysql-devel%{?_isa} = %community_mysql_version} %{?with_obsoletes_community_mysql:Obsoletes: community-mysql-devel <= %obsolete_community_mysql_version} -%add_metadata devel +%add_metadata_arched devel %description -n %{pkgname}-devel MySQL is a multi-user, multi-threaded SQL database server. This @@ -474,7 +486,7 @@ Requires: perl(Time::HiRes) %{?with_provides_community_mysql:Provides: community-mysql-test%{?_isa} = %community_mysql_version} %{?with_obsoletes_community_mysql:Obsoletes: community-mysql-test <= %obsolete_community_mysql_version} -%add_metadata test +%add_metadata_arched test %description -n %{pkgname}-test MySQL is a multi-user, multi-threaded SQL database server. This From f1889a9c87b8c2a807c04a1a7c919c0468733e39 Mon Sep 17 00:00:00 2001 From: Pavol Sloboda Date: Thu, 24 Apr 2025 15:31:36 +0200 Subject: [PATCH 06/27] Rebase to 8.0.42 Upstream release notes: https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-42.html updated the patch that disables using the deprecated openssl engine https://fedoraproject.org/wiki/Changes/OpensslNoEngine https://fedoraproject.org/wiki/Changes/OpensslDeprecateEngine --- mysql-openssl-engine.patch | 15 +++++++-------- mysql8.0.spec | 5 ++++- sources | 2 +- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/mysql-openssl-engine.patch b/mysql-openssl-engine.patch index de1d368..840fe72 100644 --- a/mysql-openssl-engine.patch +++ b/mysql-openssl-engine.patch @@ -1,15 +1,14 @@ -https://fedoraproject.org/wiki/Changes/OpensslDeprecateEngine -https://fedoraproject.org/wiki/Changes/OpensslNoEngine - ---- mysql-8.0.37/plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/network/xcom_network_provider_ssl_native_lib.cc 2024-03-27 20:22:56.000000000 +0100 -+++ mysql-8.0.37/plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/network/xcom_network_provider_ssl_native_lib.cc_patched 2024-07-18 17:01:59.488433958 +0200 -@@ -41,7 +41,9 @@ +--- mysql-8.0.42/plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/network/xcom_network_provider_ssl_native_lib.cc 2025-03-31 10:19:27.000000000 +0200 ++++ mysql-8.0.42-patched/plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/network/xcom_network_provider_ssl_native_lib.cc 2025-04-24 15:27:29.155287397 +0200 +@@ -50,9 +50,9 @@ #include "my_compiler.h" #endif +-#if OPENSSL_VERSION_NUMBER < 0x10100000L +#if !defined(OPENSSL_NO_ENGINE) - #include "openssl/engine.h" + #include +-#endif /* OPENSSL_VERSION_NUMBER < 0x10100000L */ +#endif + #include "xcom/retry.h" #include "xcom/task_debug.h" - #include "xcom/x_platform.h" diff --git a/mysql8.0.spec b/mysql8.0.spec index b323e42..b43058a 100644 --- a/mysql8.0.spec +++ b/mysql8.0.spec @@ -1,6 +1,6 @@ # Name of the package without any prefixes %global majorname mysql -%global package_version 8.0.41 +%global package_version 8.0.42 %define majorversion %(echo %{package_version} | cut -d'.' -f1-2 ) %global pkgnamepatch mysql @@ -1104,6 +1104,9 @@ fi %endif %changelog +* Thu Apr 24 2025 Pavol Sloboda - 8.0.42-1 +- Rebase to MySQL 8.0.42 + * Fri Feb 28 2025 Michal Schorm - 8.0.41-1 - Rebase to MySQL 8.0.41 diff --git a/sources b/sources index f014b75..4ca1e17 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (mysql-boost-8.0.41.tar.gz) = e5bb314082be6bf037808ea7a2130c8e2b44491a6c54bc3f611d823be5285021d05093afca71c3d33da6dece2bac3a8e24da5198080060407d8c4dbfeeea8a99 +SHA512 (mysql-boost-8.0.42.tar.gz) = 66776b5a1be603f215d4b227d395e72476bde76fdc0ba5ffdcfcb851a8261f1428c23c8abf1edca616765ee8254354e9092eaadde5ed43e7e2daa2ac265a0b23 From 5d6ba8cf831aabda4cdabf99d680e17412af00da Mon Sep 17 00:00:00 2001 From: Pavol Sloboda Date: Wed, 7 May 2025 14:44:03 +0200 Subject: [PATCH 07/27] Added the tests that failed reocurringly Added the tests with reocurring failures for arches s390x and ppc64le into their respective ignore lists, other arches (and the ones mentioned here) had a few failing tests but these were the only ones that failed almost every time Bumped the version of last_tested_version Changed the version of last_tested_version to the current one after running the expanded testsuite and updating the skipped test lists Koji scratch builds with full testsuite: f40: https://koji.fedoraproject.org/koji/taskinfo?taskID=132209779 rebuild of ppc64le because of a misc test unrelated fail: https://koji.fedoraproject.org/koji/taskinfo?taskID=132343011 https://koji.fedoraproject.org/koji/taskinfo?taskID=132348944 f41: https://koji.fedoraproject.org/koji/taskinfo?taskID=132209572 https://koji.fedoraproject.org/koji/taskinfo?taskID=132348955 f42: https://koji.fedoraproject.org/koji/taskinfo?taskID=132209514 https://koji.fedoraproject.org/koji/taskinfo?taskID=132348960 f43: https://koji.fedoraproject.org/koji/taskinfo?taskID=132209508 https://koji.fedoraproject.org/koji/taskinfo?taskID=132348945 --- mysql8.0.spec | 2 +- rh-skipped-tests-list-ppc.list | 3 +++ rh-skipped-tests-list-s390.list | 3 +++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/mysql8.0.spec b/mysql8.0.spec index b43058a..2eec54f 100644 --- a/mysql8.0.spec +++ b/mysql8.0.spec @@ -19,7 +19,7 @@ # The last version on which the full testsuite has been run # In case of further rebuilds of that version, don't require full testsuite to be run # run only "main" suite -%global last_tested_version 8.0.41 +%global last_tested_version 8.0.42 # Set to 1 to force run the testsuite even if it was already tested in current version %global force_run_testsuite 0 diff --git a/rh-skipped-tests-list-ppc.list b/rh-skipped-tests-list-ppc.list index 9ffdb04..a534953 100644 --- a/rh-skipped-tests-list-ppc.list +++ b/rh-skipped-tests-list-ppc.list @@ -47,3 +47,6 @@ main.dd_upgrade_partition : BUG#0 main.disabled_storage_engines : BUG#0 main.partition : BUG#0 main.multi_update : BUG#0 + +# Fails since 8.0.42 +innodb_fts.optimize_big : BUG#0 diff --git a/rh-skipped-tests-list-s390.list b/rh-skipped-tests-list-s390.list index a2d393c..451d206 100644 --- a/rh-skipped-tests-list-s390.list +++ b/rh-skipped-tests-list-s390.list @@ -5,3 +5,6 @@ rpl_gtid.rpl_perfschema_applier_status_by_worker_gtid_skipped_transaction_mts : # Fails since 8.0.37 innodb.lob_recovery : BUG#0 sys_vars.myisam_data_pointer_size_func : BUG#0 + +# Fails since 8.0.42 +x.connection_not_alive : BUG#0 From 688ea0bb57a50c6ae0118080d9b36675a49facb6 Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Wed, 9 Jul 2025 09:56:08 +0200 Subject: [PATCH 08/27] Disable the testsuite - ppc64le infractructure issues Can be re-enabled when the ppc64le builds reach similar time and stability as the other architectures --- mysql8.0.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mysql8.0.spec b/mysql8.0.spec index 2eec54f..ef05bea 100644 --- a/mysql8.0.spec +++ b/mysql8.0.spec @@ -11,7 +11,7 @@ # Regression tests may take a long time (many cores recommended), skip them by # passing --nocheck to rpmbuild or by setting runselftest to 0 if defining # --nocheck is not possible (e.g. in koji build) -%{!?runselftest:%global runselftest 1} +%{!?runselftest:%global runselftest 0} # Set this to 1 to see which tests fail, but 0 on production ready build %global ignore_testsuite_result 0 From b853f1b08768892b680ee12c36cc7328a0235d3a Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Wed, 9 Jul 2025 09:55:43 +0200 Subject: [PATCH 09/27] [Fix for Fedora Change] Fix versioned layout macros - cover both arch and noarch sub-packages - add obsoletes against the older versions to the distribution default version --- mysql8.0.spec | 38 +++++++++++++++++++++++++------------- 1 file changed, 25 insertions(+), 13 deletions(-) diff --git a/mysql8.0.spec b/mysql8.0.spec index ef05bea..a1979d6 100644 --- a/mysql8.0.spec +++ b/mysql8.0.spec @@ -102,7 +102,7 @@ Name: %{majorname}%{majorversion} Version: %{package_version} -Release: 1%{?with_debug:.debug}%{?dist} +Release: 2%{?with_debug:.debug}%{?dist} Summary: MySQL client programs and shared libraries URL: http://www.mysql.com @@ -273,20 +273,32 @@ Conflicts: %{majorname}%{?1:-%{1}}-any\ # Provide also mysqlX.X if default %if %?mysql_default -%define mysqlX_if_default() %{expand:\ +%define mysqlX_if_default_arched() %{expand:\ +Obsoletes: mysql%{?1:-%{1}} < %{sameevr}\ +Obsoletes: mysql%{majorversion}%{?1:-%{1}} < %{sameevr}\ Provides: mysql%{majorversion}%{?1:-%{1}} = %{sameevr}\ Provides: mysql%{majorversion}%{?1:-%{1}}%{?_isa} = %{sameevr}\ } +%define mysqlX_if_default_noarch() %{expand:\ +Obsoletes: mysql%{?1:-%{1}} < %{sameevr}\ +Obsoletes: mysql%{majorversion}%{?1:-%{1}} < %{sameevr}\ +Provides: mysql%{majorversion}%{?1:-%{1}} = %{sameevr}\ +} %else -%define mysqlX_if_default() %{nil} +%define mysqlX_if_default_arched() %{nil} +%define mysqlX_if_default_noarch() %{nil} %endif -%define add_metadata() %{expand:\ +%define add_metadata_arched() %{expand:\ %conflict_with_other_streams %{**}\ -%mysqlX_if_default %{**}\ +%mysqlX_if_default_arched %{**}\ +} +%define add_metadata_noarch() %{expand:\ +%conflict_with_other_streams %{**}\ +%mysqlX_if_default_noarch %{**}\ } -%add_metadata +%add_metadata_arched %description MySQL is a multi-user, multi-threaded SQL database server. MySQL is a @@ -308,7 +320,7 @@ Requires: %{pkgname}-common = %{sameevr} %{?with_provides_community_mysql:Provides: community-mysql-libs%{?_isa}= %community_mysql_version} %{?with_obsoletes_community_mysql:Obsoletes: community-mysql-libs <= %obsolete_community_mysql_version} -%add_metadata libs +%add_metadata_arched libs %description -n %{pkgname}-libs The mysql-libs package provides the essential shared libraries for any @@ -325,7 +337,7 @@ Summary: The config files required by server and client %{?with_provides_community_mysql:Provides: community-mysql-config%{?_isa} = %community_mysql_version} %{?with_obsoletes_community_mysql:Obsoletes: community-mysql-config <= %obsolete_community_mysql_version} -%add_metadata config +%add_metadata_arched config %description -n %{pkgname}-config The package provides the config file my.cnf and my.cnf.d directory used by any @@ -348,7 +360,7 @@ Requires: %{_sysconfdir}/my.cnf %{?with_obsoletes_community_mysql:Obsoletes: community-mysql-common <= %obsolete_community_mysql_version} # As this package is noarch, it can't use the %%{?_isa} RPM macro -%conflict_with_other_streams common +%add_metadata_noarch common %description -n %{pkgname}-common The mysql-common package provides the essential shared files for any @@ -366,7 +378,7 @@ Requires: %{pkgname}-common = %{sameevr} %{?with_obsoletes_community_mysql:Obsoletes: community-mysql-errmsg <= %obsolete_community_mysql_version} # As this package is noarch, it can't use the %%{?_isa} RPM macro -%conflict_with_other_streams errmsg +%add_metadata_noarch errmsg %description -n %{pkgname}-errmsg The package provides error messages files for the MySQL daemon @@ -413,7 +425,7 @@ Requires: (mysql-selinux if selinux-policy-targeted) %{?with_provides_community_mysql:Provides: community-mysql-server%{?_isa} = %community_mysql_version} %{?with_obsoletes_community_mysql:Obsoletes: community-mysql-server <= %obsolete_community_mysql_version} -%add_metadata server +%add_metadata_arched server %description -n %{pkgname}-server MySQL is a multi-user, multi-threaded SQL database server. MySQL is a @@ -435,7 +447,7 @@ Requires: libzstd-devel %{?with_provides_community_mysql:Provides: community-mysql-devel%{?_isa} = %community_mysql_version} %{?with_obsoletes_community_mysql:Obsoletes: community-mysql-devel <= %obsolete_community_mysql_version} -%add_metadata devel +%add_metadata_arched devel %description -n %{pkgname}-devel MySQL is a multi-user, multi-threaded SQL database server. This @@ -475,7 +487,7 @@ Requires: perl(Time::HiRes) %{?with_provides_community_mysql:Provides: community-mysql-test%{?_isa} = %community_mysql_version} %{?with_obsoletes_community_mysql:Obsoletes: community-mysql-test <= %obsolete_community_mysql_version} -%add_metadata test +%add_metadata_arched test %description -n %{pkgname}-test MySQL is a multi-user, multi-threaded SQL database server. This From ca2e54345016dfc475f13f18ba0f0b57dfc0ad05 Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Tue, 15 Jul 2025 12:19:48 +0200 Subject: [PATCH 10/27] [Fedora Change] Switch the distribution default version of MySQL from 8.0 to 8.4 - Disable the 'distribution default' in MySQL 8.0 in this package - Enable the 'distribution default' in MySQL 8.4 (package 'mysql8.4') --- mysql8.0.spec | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/mysql8.0.spec b/mysql8.0.spec index 03b27d0..a348345 100644 --- a/mysql8.0.spec +++ b/mysql8.0.spec @@ -6,7 +6,7 @@ # Set if this package will be the default one in distribution -%{!?mysql_default:%global mysql_default 1} +%{!?mysql_default:%global mysql_default 0} # Regression tests may take a long time (many cores recommended), skip them by # passing --nocheck to rpmbuild or by setting runselftest to 0 if defining @@ -102,7 +102,7 @@ Name: %{majorname}%{majorversion} Version: %{package_version} -Release: 2%{?with_debug:.debug}%{?dist} +Release: 100%{?with_debug:.debug}%{?dist} Summary: MySQL client programs and shared libraries URL: http://www.mysql.com @@ -1118,6 +1118,10 @@ fi %endif %changelog +* Tue Jul 15 2025 Michal Schorm - 8.0.42-100 +- Disable the 'distribution default' in MySQL 8.0 in this package +- Enable the 'distribution default' in MySQL 8.4 (package 'mysql8.4') + * Thu Apr 24 2025 Pavol Sloboda - 8.0.42-1 - Rebase to MySQL 8.0.42 From fa22f6d900c818ecaea942535d31934b6fe66ffb Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 24 Jul 2025 22:33:25 +0000 Subject: [PATCH 11/27] Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild --- mysql8.0.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/mysql8.0.spec b/mysql8.0.spec index a348345..fcb5db7 100644 --- a/mysql8.0.spec +++ b/mysql8.0.spec @@ -102,7 +102,7 @@ Name: %{majorname}%{majorversion} Version: %{package_version} -Release: 100%{?with_debug:.debug}%{?dist} +Release: 101%{?with_debug:.debug}%{?dist} Summary: MySQL client programs and shared libraries URL: http://www.mysql.com @@ -1118,6 +1118,9 @@ fi %endif %changelog +* Thu Jul 24 2025 Fedora Release Engineering - 8.0.42-101 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + * Tue Jul 15 2025 Michal Schorm - 8.0.42-100 - Disable the 'distribution default' in MySQL 8.0 in this package - Enable the 'distribution default' in MySQL 8.4 (package 'mysql8.4') From a53f16ad7d68dfb1ad300bcc645bdc827f47a1e9 Mon Sep 17 00:00:00 2001 From: Pavol Sloboda Date: Tue, 29 Jul 2025 15:46:20 +0200 Subject: [PATCH 12/27] [logrotate] Enhance the logrotate configuration to use `systemctl kill` `systemctl kill` leverages systemd's knowledge of the daemon's main PID, eliminating the need to rely on PID files or external tools like `killall` or `pkill`. This ensures precise signal sending to the intended process, reducing the risk of errors in process identification. Additionally, using `systemctl kill` logs the signal sending in the service's journal, providing a record of actions taken. Requires selinux-policy-41.43 or higher, which is currently available as an update for F41, F42, and Rawhide. Resolves: RHBZ#2372778 Also updated the comment for 'Requires: systemd' to list all of the parts that 'systemd' is required for. This is useful for packaging for systems without systemd, such as containers. --- mysql-flush-logrotate.patch | 7 ++++--- mysql8.0.spec | 1 + 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/mysql-flush-logrotate.patch b/mysql-flush-logrotate.patch index 48eff40..c9bfe60 100644 --- a/mysql-flush-logrotate.patch +++ b/mysql-flush-logrotate.patch @@ -1,5 +1,6 @@ ---- mysql-8.0.40/packaging/rpm-common/mysql.logrotate.in 2024-09-18 12:08:24.000000000 +0200 -+++ mysql-8.0.40/packaging/rpm-common/mysql.logrotate.in_patched 2025-02-13 16:00:32.325677977 +0100 +diff -Naur mysql-8.0.42/packaging/rpm-common/mysql.logrotate.in mysql-8.0.42_patched/packaging/rpm-common/mysql.logrotate.in +--- mysql-8.0.42/packaging/rpm-common/mysql.logrotate.in 2025-07-10 16:20:26.000000000 +0200 ++++ mysql-8.0.42_patched/packaging/rpm-common/mysql.logrotate.in 2025-07-29 10:16:39.509884723 +0200 @@ -5,18 +5,6 @@ # [mysqld] # log-error=@LOGFILE_RPM@ @@ -30,6 +31,6 @@ -# @bindir@/mysqladmin flush-logs -# fi +# # SIGUSR1 makes the daemon to flush the logs, no need to connect through mysqladmin -+# @bindir@/kill -USR1 $(systemctl show --property MainPID --value mysqld) ++# @bindir@/systemctl kill --signal=USR1 --kill-whom=main mysqld.service 2>/dev/null || true # endscript #} diff --git a/mysql8.0.spec b/mysql8.0.spec index fcb5db7..2df6c6d 100644 --- a/mysql8.0.spec +++ b/mysql8.0.spec @@ -401,6 +401,7 @@ Requires: %{pkgname}-errmsg = %{sameevr} %{?mecab:Requires: mecab-ipadic} Requires: coreutils # We require this to be present for %%{_tmpfilesdir} +# `systemd` is also required for logrotate, as it uses `systemctl kill` Requires: systemd # Make sure it's there when scriptlets run, too %{?systemd_requires: %systemd_requires} From aae2ff3d0d9db957a59ff0e64392dae2dc63f9cb Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Fri, 1 Aug 2025 09:46:43 +0200 Subject: [PATCH 13/27] [bugfix] Fix the 'Conflicts:' with MariaDB packages The package conflicts between MariaDB and MySQL packages are only set against the un-versioned names. (the un-versioned names are only provided by the distribution default version) The conflicts has to be extended to cover the '-any' virtually provided names, which are provided by all versions of the versioned packages. --- mysql8.0.spec | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/mysql8.0.spec b/mysql8.0.spec index 2df6c6d..fa7a505 100644 --- a/mysql8.0.spec +++ b/mysql8.0.spec @@ -259,9 +259,9 @@ Provides: bundled(rapidjson) # https://github.com/martinus/unordered_dense Provides: bundled(unordered_dense) -%{?with_conflicts_mariadb:Conflicts: mariadb} +%{?with_conflicts_mariadb:Conflicts: mariadb-any} # Explicitly disallow installation of mysql + mariadb-server -%{?with_conflicts_mariadb:Conflicts: mariadb-server} +%{?with_conflicts_mariadb:Conflicts: mariadb-server-any} %{?with_provides_community_mysql:Provides: community-mysql = %community_mysql_version} %{?with_provides_community_mysql:Provides: community-mysql%{?_isa} = %community_mysql_version} %{?with_obsoletes_community_mysql:Obsoletes: community-mysql <= %obsolete_community_mysql_version} @@ -416,11 +416,11 @@ Requires(post): policycoreutils-python-utils Requires: (mysql-selinux if selinux-policy-targeted) %endif -%{?with_conflicts_mariadb:Conflicts: mariadb-server} -%{?with_conflicts_mariadb:Conflicts: mariadb-server-utils} -%{?with_conflicts_mariadb:Conflicts: mariadb-server-galera} +%{?with_conflicts_mariadb:Conflicts: mariadb-server-any} +%{?with_conflicts_mariadb:Conflicts: mariadb-server-utils-any} +%{?with_conflicts_mariadb:Conflicts: mariadb-server-galera-any} # Explicitly disallow installation of mysql + mariadb-server -%{?with_conflicts_mariadb:Conflicts: mariadb} +%{?with_conflicts_mariadb:Conflicts: mariadb-any} %{?with_provides_community_mysql:Provides: community-mysql-server = %community_mysql_version} %{?with_provides_community_mysql:Provides: community-mysql-server%{?_isa} = %community_mysql_version} %{?with_obsoletes_community_mysql:Obsoletes: community-mysql-server <= %obsolete_community_mysql_version} @@ -441,7 +441,7 @@ Summary: Files for development of MySQL applications Requires: openssl-devel Requires: zlib-devel Requires: libzstd-devel -%{?with_conflicts_mariadb:Conflicts: mariadb-devel} +%{?with_conflicts_mariadb:Conflicts: mariadb-devel-any} %{?with_conflicts_mariadb:Conflicts: mariadb-connector-c-devel} %{?with_provides_community_mysql:Provides: community-mysql-devel = %community_mysql_version} %{?with_provides_community_mysql:Provides: community-mysql-devel%{?_isa} = %community_mysql_version} @@ -482,7 +482,7 @@ Requires: perl(Sys::Hostname) Requires: perl(Test::More) Requires: perl(Time::HiRes) -%{?with_conflicts_mariadb:Conflicts: mariadb-test} +%{?with_conflicts_mariadb:Conflicts: mariadb-test-any} %{?with_provides_community_mysql:Provides: community-mysql-test = %community_mysql_version} %{?with_provides_community_mysql:Provides: community-mysql-test%{?_isa} = %community_mysql_version} %{?with_obsoletes_community_mysql:Obsoletes: community-mysql-test <= %obsolete_community_mysql_version} From a828b5122f3bbaed538670fae9401f3820c493a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Franti=C5=A1ek=20Zatloukal?= Date: Wed, 6 Aug 2025 09:56:04 +0200 Subject: [PATCH 14/27] Rebuilt for icu 77.1 --- mysql8.0.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/mysql8.0.spec b/mysql8.0.spec index fa7a505..9c8946d 100644 --- a/mysql8.0.spec +++ b/mysql8.0.spec @@ -102,7 +102,7 @@ Name: %{majorname}%{majorversion} Version: %{package_version} -Release: 101%{?with_debug:.debug}%{?dist} +Release: 102%{?with_debug:.debug}%{?dist} Summary: MySQL client programs and shared libraries URL: http://www.mysql.com @@ -1119,6 +1119,9 @@ fi %endif %changelog +* Wed Aug 06 2025 František Zatloukal - 8.0.42-102 +- Rebuilt for icu 77.1 + * Thu Jul 24 2025 Fedora Release Engineering - 8.0.42-101 - Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild From 756024ea7feed74274c1c0590e64cfb6256a5bfa Mon Sep 17 00:00:00 2001 From: Pavol Sloboda Date: Tue, 5 Aug 2025 10:15:41 +0200 Subject: [PATCH 15/27] Rebase to 8.0.43 Upstream release notes: https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-43.html Resolves: RHBZ#2383954 Resolves: RHBZ#2381703 --- mysql-paths.patch | 44 ++++++++++++++++++++------------------------ mysql8.0.spec | 7 +++++-- sources | 2 +- 3 files changed, 26 insertions(+), 27 deletions(-) diff --git a/mysql-paths.patch b/mysql-paths.patch index d5978b6..517025d 100644 --- a/mysql-paths.patch +++ b/mysql-paths.patch @@ -3,11 +3,10 @@ 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) +diff -Naur mysql-8.0.43/cmake/install_layout.cmake mysql-8.0.43_patched/cmake/install_layout.cmake +--- mysql-8.0.43/cmake/install_layout.cmake 2025-07-09 10:45:01.000000000 +0200 ++++ mysql-8.0.43_patched/cmake/install_layout.cmake 2025-08-05 09:22:54.506782584 +0200 +@@ -106,7 +106,7 @@ " Choose between ${VALID_INSTALL_LAYOUTS}" ) ENDIF() @@ -16,19 +15,18 @@ index 9f7945d8..6734cdfd 100644 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") +@@ -202,6 +202,7 @@ + ELSE() + SET(INSTALL_SBINDIR_RPM "sbin") + ENDIF() +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) { +diff -Naur mysql-8.0.43/mysys/my_default.cc mysql-8.0.43_patched/mysys/my_default.cc +--- mysql-8.0.43/mysys/my_default.cc 2025-07-09 10:45:01.000000000 +0200 ++++ mysql-8.0.43_patched/mysys/my_default.cc 2025-08-05 09:24:59.510804797 +0200 +@@ -1652,12 +1652,12 @@ #else @@ -44,11 +42,10 @@ index 290f1666..8403425f 100644 #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) +diff -Naur mysql-8.0.43/scripts/CMakeLists.txt mysql-8.0.43_patched/scripts/CMakeLists.txt +--- mysql-8.0.43/scripts/CMakeLists.txt 2025-07-09 10:45:01.000000000 +0200 ++++ mysql-8.0.43_patched/scripts/CMakeLists.txt 2025-08-05 09:25:55.019369630 +0200 +@@ -271,9 +271,9 @@ ENDIF(UNIX) SET(prefix "${CMAKE_INSTALL_PREFIX}") @@ -60,11 +57,10 @@ index 4149a764..b091d5e2 100644 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 +diff -Naur mysql-8.0.43/scripts/mysqld_multi.pl.in mysql-8.0.43_patched/scripts/mysqld_multi.pl.in +--- mysql-8.0.43/scripts/mysqld_multi.pl.in 2025-07-09 10:45:01.000000000 +0200 ++++ mysql-8.0.43_patched/scripts/mysqld_multi.pl.in 2025-08-05 09:26:57.252077640 +0200 +@@ -587,9 +587,7 @@ my %seen; # Don't list the same file more than once return grep { defined $_ and not $seen{$_}++ and -f $_ and -r $_ } diff --git a/mysql8.0.spec b/mysql8.0.spec index 9c8946d..3f724a4 100644 --- a/mysql8.0.spec +++ b/mysql8.0.spec @@ -1,6 +1,6 @@ # Name of the package without any prefixes %global majorname mysql -%global package_version 8.0.42 +%global package_version 8.0.43 %define majorversion %(echo %{package_version} | cut -d'.' -f1-2 ) %global pkgnamepatch mysql @@ -102,7 +102,7 @@ Name: %{majorname}%{majorversion} Version: %{package_version} -Release: 102%{?with_debug:.debug}%{?dist} +Release: 1%{?with_debug:.debug}%{?dist} Summary: MySQL client programs and shared libraries URL: http://www.mysql.com @@ -1119,6 +1119,9 @@ fi %endif %changelog +* Wed Aug 06 2025 Pavol Sloboda - 8.0.43-1 +- Rebase to MySQL 8.0.43 + * Wed Aug 06 2025 František Zatloukal - 8.0.42-102 - Rebuilt for icu 77.1 diff --git a/sources b/sources index 4ca1e17..632c51a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (mysql-boost-8.0.42.tar.gz) = 66776b5a1be603f215d4b227d395e72476bde76fdc0ba5ffdcfcb851a8261f1428c23c8abf1edca616765ee8254354e9092eaadde5ed43e7e2daa2ac265a0b23 +SHA512 (mysql-boost-8.0.43.tar.gz) = 433666f03448833a24e3811afb0fb98cdaeac573f1dc3b682afa10f534f3d3750c515ea93ef2b07557ea5d7151051e181a845e0885d2ac63f01558938c4485ba From c38f6e85b225ecff8093d715a679819ec238c8d4 Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Wed, 9 Apr 2025 14:46:24 +0200 Subject: [PATCH 16/27] [bugfix] Fixup of the versioned package layout control code --- mysql8.0.spec | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mysql8.0.spec b/mysql8.0.spec index 3f724a4..c47d5f4 100644 --- a/mysql8.0.spec +++ b/mysql8.0.spec @@ -306,11 +306,13 @@ client/server implementation consisting of a server daemon (mysqld) and many different client programs and libraries. The base package contains the standard MySQL client programs and generic MySQL files. +%if %?mysql_default %description -n %{pkgname} MySQL is a multi-user, multi-threaded SQL database server. MySQL is a client/server implementation consisting of a server daemon (mysqld) and many different client programs and libraries. The base package contains the standard MySQL client programs and generic MySQL files. +%endif %if %{with clibrary} %package -n %{pkgname}-libs From d99794503e152699886286c65eb3f7e1738b0792 Mon Sep 17 00:00:00 2001 From: Pavol Sloboda Date: Wed, 6 Aug 2025 08:51:52 +0000 Subject: [PATCH 17/27] [bugfix] Fix packaging of the default MySQL server log We've received a bug report, that the 'rpm -qc' incorrectly returns the MySQL server default log file '/var/log/mysql/mysqld.log' as a configuration file. https://issues.redhat.com/browse/RHEL-57601 This was caused by us packing it in the SPECfile '%files' section with the '%config %ghost' directives. The reason was historical. We tried to mark the file as owned by the package, but at the same time to not pack it, and also prevent its deleteion on package removal. The correct way is to not list the file at all. The parent directory is properly packed and owned instead (already), so it should be clear that the files inside are associated with that package. This is how we already do it with the DB datadir '/var/lib/mysql'. Resolves: RHEL-57601 While investigating this issue, we also reviewed the log file creation. The log file is created automatically by the MySQL server when needed. This can even happen in the middle of the server runtime, when the file is (re)moved, and the DB server is tasked to flush the logs. I checked the MySQL server documentation, and tested it, and I found, that the logfile is indeed created by the server. The only possible reason why the file might be needed to be created beforehand, is when the file lies on a location to which the MySQL server won't have permissions to write to. This is likely the case of MySQL upstream RPMs, which place it by default to the '/var/log': https://github.com/mysql/mysql-server/blob/96d58aa2b9a65aa1622f57aa943a336711fdb600/packaging/rpm-fedora/mysql.spec.in#L703 However Fedora and RHEL uses a designated directory '/var/log/mysql', which is owened by 'mysql:mysql', so the issue does not exists here. --- mysql8.0.spec | 4 ---- 1 file changed, 4 deletions(-) diff --git a/mysql8.0.spec b/mysql8.0.spec index c47d5f4..7fd40b9 100644 --- a/mysql8.0.spec +++ b/mysql8.0.spec @@ -806,9 +806,6 @@ popd %post -n %{pkgname}-server %systemd_post %{daemon_name}.service -if [ ! -e "%{logfile}" -a ! -h "%{logfile}" ] ; then - install /dev/null -m0640 -omysql -gmysql "%{logfile}" -fi %preun -n %{pkgname}-server %systemd_preun %{daemon_name}.service @@ -1001,7 +998,6 @@ fi %attr(0700,mysql,mysql) %dir %{_localstatedir}/lib/mysql-keyring %attr(0755,mysql,mysql) %dir %{pidfiledir} %attr(0750,mysql,mysql) %dir %{logfiledir} -%attr(0640,mysql,mysql) %config %ghost %verify(not md5 size mtime) %{logfile} %config(noreplace) %{logrotateddir}/%{daemon_name} %if %{with devel} From 53e0c251d185e9d3ebf11c93920f3f475f582c09 Mon Sep 17 00:00:00 2001 From: Lukas Javorsky Date: Thu, 30 Oct 2025 08:02:02 +0000 Subject: [PATCH 18/27] Revert to soft static allocation of MariaDB and MySQL sysusers.d files Resolves: RHEL-119789 Related PR for `setup` RPM: https://src.fedoraproject.org/rpms/setup/pull-request/30 Partially reverts commit: 3556d5e The MariaDB and MySQL sysusers.d files has to use soft static allocation in order to correctly handle the MariaDB PAM v2 plugin which utilizes setuid-to-root binary "/usr/lib64/mariadb/plugin/auth_pam_tool_dir/auth_pam_tool". --- mysql8.0.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/mysql8.0.spec b/mysql8.0.spec index 7fd40b9..b8976b5 100644 --- a/mysql8.0.spec +++ b/mysql8.0.spec @@ -102,7 +102,7 @@ Name: %{majorname}%{majorversion} Version: %{package_version} -Release: 1%{?with_debug:.debug}%{?dist} +Release: 2%{?with_debug:.debug}%{?dist} Summary: MySQL client programs and shared libraries URL: http://www.mysql.com @@ -664,7 +664,7 @@ rm -r %{buildroot}%{_tmpfilesdir}/mysql.conf # We no longer enforce the hardcoded UID/GID 27 mkdir -p %{buildroot}%{_sysusersdir} cat > %{buildroot}%{_sysusersdir}/%{name}.conf << EOF -u mysql - 'MariaDB and MySQL Server' %{dbdatadir} - +u mysql 27 'MariaDB and MySQL Server' %{dbdatadir} - EOF # helper scripts for service starting @@ -1117,6 +1117,9 @@ popd %endif %changelog +* Mon Oct 27 2025 Lukas Javorsky - 8.0.43-2 +- Revert to soft static allocation of MariaDB and MySQL sysusers.d files + * Wed Aug 06 2025 Pavol Sloboda - 8.0.43-1 - Rebase to MySQL 8.0.43 From 44fec87a5688bef4b62978e571741daeb4899e89 Mon Sep 17 00:00:00 2001 From: Pavol Sloboda Date: Wed, 5 Nov 2025 14:47:18 +0100 Subject: [PATCH 19/27] Rebase to 8.0.44 Upstream release notes: https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-44.html Resolves: RHBZ#2407154 --- mysql8.0.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/mysql8.0.spec b/mysql8.0.spec index b8976b5..d2768d4 100644 --- a/mysql8.0.spec +++ b/mysql8.0.spec @@ -1,6 +1,6 @@ # Name of the package without any prefixes %global majorname mysql -%global package_version 8.0.43 +%global package_version 8.0.44 %define majorversion %(echo %{package_version} | cut -d'.' -f1-2 ) %global pkgnamepatch mysql @@ -102,7 +102,7 @@ Name: %{majorname}%{majorversion} Version: %{package_version} -Release: 2%{?with_debug:.debug}%{?dist} +Release: 1%{?with_debug:.debug}%{?dist} Summary: MySQL client programs and shared libraries URL: http://www.mysql.com @@ -1117,6 +1117,9 @@ popd %endif %changelog +* Thu Oct 30 2025 Pavol Sloboda - 8.0.44-1 +- Rebase to MySQL 8.0.44 + * Mon Oct 27 2025 Lukas Javorsky - 8.0.43-2 - Revert to soft static allocation of MariaDB and MySQL sysusers.d files diff --git a/sources b/sources index 632c51a..1f8aebd 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (mysql-boost-8.0.43.tar.gz) = 433666f03448833a24e3811afb0fb98cdaeac573f1dc3b682afa10f534f3d3750c515ea93ef2b07557ea5d7151051e181a845e0885d2ac63f01558938c4485ba +SHA512 (mysql-boost-8.0.44.tar.gz) = f6881d6f88a4060796e1eac47c1ffe3ea005c27f1b0509fd97774ba5b1e7bf86d0f8c4e13126750f0cc3dd86af92c26459ae8fecf9e8f0f058dab43e93bb3b42 From bbb4a8ea1243b6dfea6fe32605a4299c22575dab Mon Sep 17 00:00:00 2001 From: Pavol Sloboda Date: Wed, 5 Nov 2025 14:50:19 +0100 Subject: [PATCH 20/27] Updated the skipped test list with the newest finding s in the main test suite. The tests are still disabled because the infrastructure issues with s390x and ppc64le are still present --- rh-skipped-tests-list-base.list | 4 ++++ rh-skipped-tests-list-ppc.list | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/rh-skipped-tests-list-base.list b/rh-skipped-tests-list-base.list index 2e99fba..9e3083a 100644 --- a/rh-skipped-tests-list-base.list +++ b/rh-skipped-tests-list-base.list @@ -44,3 +44,7 @@ main.subquery_sj_all_bka_nobnl : BUG#0 https://bugzilla.redhat.com/s # Failing since 2025 main.time_zone : BUG#0 main.basedir : BUG#0 + +# Failing since 8.0.44 +main.lock_backup : BUG#0 +main.sdi_tablespace : BUG#0 diff --git a/rh-skipped-tests-list-ppc.list b/rh-skipped-tests-list-ppc.list index a534953..e91799b 100644 --- a/rh-skipped-tests-list-ppc.list +++ b/rh-skipped-tests-list-ppc.list @@ -50,3 +50,8 @@ main.multi_update : BUG#0 # Fails since 8.0.42 innodb_fts.optimize_big : BUG#0 + +# Fails since 8.0.44 +main.join_cache_bnl : BUG#0 +main.mysql : BUG#0 +main.join_cache_nojb : BUG#0 From 85f9177077b2b24d4e415f67ad21baefa79767f1 Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Wed, 19 Nov 2025 07:19:52 +0100 Subject: [PATCH 21/27] Testsuite verification for 8.0.44 release The testsuite is currently disabled because of very long build times on the s390x Fedora builders. The x86_64 build without tetsuite takes ~15 minutes. The x86_64, i686, ppc64le, aarch64 builds with the main suite all takes between 50 and 60 minutes, while the s390x takes nearly 7 hours. Builds with the full testsuite takes approximatelly double the time of the builds with just the main suite. -- There were some failing tests: | auth_sec.admin_channel_tls | auth_sec.admin_channel_tls_startup | auth_sec.cert_verify | auth_sec.cert_verify_openssl | x.mysqlxtest_mode_ssl | x.mysqlxtest_mode_ssl_unixsocket and all of them fail because the test certificates in the 'std_data' testsuite directory have expired. Some of those tests fail gracefuly, some not. But all of them produce variant of this error message: "Server SSL certificate doesn't verify: certificate has expired" -- I believe this is a recuring timebomb bug in MySQL. I found this upstream commit dealing with the issue few years ago: https://github.com/mysql/mysql-server/commit/8c22b5f6df99f9b055c62ccf57e9e634e280abc5 but this time different certificates needs refreshing, e.g.: | std_data/server-cert-verify-fail.pem | std_data/server-cert-verify-pass.pem and maybe some more. --- mysql8.0.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mysql8.0.spec b/mysql8.0.spec index d2768d4..db4bcc7 100644 --- a/mysql8.0.spec +++ b/mysql8.0.spec @@ -19,7 +19,7 @@ # The last version on which the full testsuite has been run # In case of further rebuilds of that version, don't require full testsuite to be run # run only "main" suite -%global last_tested_version 8.0.42 +%global last_tested_version 8.0.44 # Set to 1 to force run the testsuite even if it was already tested in current version %global force_run_testsuite 0 From 7f57d257adbd928682c181e9fa55836509be03da Mon Sep 17 00:00:00 2001 From: Nikola Davidova Date: Tue, 4 Nov 2025 13:32:39 +0000 Subject: [PATCH 22/27] Extend tmpfiles.d rules for ImageMode After switching to a container image with bootc switch, systemd failed to start mysqld because required runtime directories were missing or had wrong permissions. Adding tmpfiles entries with correct ownership ensures systemd creates the necessary directories at boot and gives them correct permissions, allowing the mysql daemon to start. "In a container build, you can write to '/var'. However, this will have a semantic similar to a Dockerfile VOLUME instruction; the content from the container image is only copied at initial install time. Any subsequent system updates will not by default see new changes. It's recommended instead to use e.g. systemd tmpfiles.d as a way to ensure that newly added state "reconciles" across upgrades as desired." https://docs.fedoraproject.org/en-US/bootc/filesystem/#_filesystem_bind_mount_var This covers all the files in /var sicne we only ship these as can be seen here: find | grep /var/ ./mysql8.0-server-8.4.5-1.fc43.x86_64.rpm/var/lib ./mysql8.0-server-8.4.5-1.fc43.x86_64.rpm/var/lib/mysql ./mysql8.0-server-8.4.5-1.fc43.x86_64.rpm/var/lib/mysql-files ./mysql8.0-server-8.4.5-1.fc43.x86_64.rpm/var/lib/mysql-keyring ./mysql8.0-server-8.4.5-1.fc43.x86_64.rpm/var/log ./mysql8.0-server-8.4.5-1.fc43.x86_64.rpm/var/log/mysql The '/usr' directory is not persistent therefore this change does not affect it and the '/etc' directory is merged in a different way and also not under the 'mysql:mysql' user --- mysql.tmpfiles.d.in | 7 +++++++ mysql8.0.spec | 3 +++ 2 files changed, 10 insertions(+) diff --git a/mysql.tmpfiles.d.in b/mysql.tmpfiles.d.in index d2c4b31..d22e348 100644 --- a/mysql.tmpfiles.d.in +++ b/mysql.tmpfiles.d.in @@ -1 +1,8 @@ d @PID_FILE_DIR@ 0755 mysql mysql - + +Rules for ephemeral file systems (ImageMode) +/var/lib/mysql 0755 mysql mysql - +/var/log/mysql 0750 mysql mysql - +/var/log/mysql/mysql.log 0640 mysql mysql - +/var/lib/mysql-files 0750 mysql mysql - +/var/lib/mysql-keyring 0700 mysql mysql - diff --git a/mysql8.0.spec b/mysql8.0.spec index db4bcc7..f6e7cd8 100644 --- a/mysql8.0.spec +++ b/mysql8.0.spec @@ -993,11 +993,14 @@ popd %{_tmpfilesdir}/%{daemon_name}.conf %{_sysusersdir}/%{name}.conf + +# Remember to also update the mysql.tmpfiles.d.in file when updating these permissions %attr(0755,mysql,mysql) %dir %{dbdatadir} %attr(0750,mysql,mysql) %dir %{_localstatedir}/lib/mysql-files %attr(0700,mysql,mysql) %dir %{_localstatedir}/lib/mysql-keyring %attr(0755,mysql,mysql) %dir %{pidfiledir} %attr(0750,mysql,mysql) %dir %{logfiledir} + %config(noreplace) %{logrotateddir}/%{daemon_name} %if %{with devel} From 854c93083bae6ff1658039a81e908d1cd729d531 Mon Sep 17 00:00:00 2001 From: Nikola Davidova Date: Tue, 4 Nov 2025 13:32:42 +0000 Subject: [PATCH 23/27] Bump release for tmpfiles.d change --- mysql8.0.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/mysql8.0.spec b/mysql8.0.spec index f6e7cd8..18f4321 100644 --- a/mysql8.0.spec +++ b/mysql8.0.spec @@ -102,7 +102,7 @@ Name: %{majorname}%{majorversion} Version: %{package_version} -Release: 1%{?with_debug:.debug}%{?dist} +Release: 2%{?with_debug:.debug}%{?dist} Summary: MySQL client programs and shared libraries URL: http://www.mysql.com @@ -1120,6 +1120,9 @@ popd %endif %changelog +* Mon Nov 3 2025 Nikola Davidova - 8.0.44-2 +- Bump release for tmpfiles.d change + * Thu Oct 30 2025 Pavol Sloboda - 8.0.44-1 - Rebase to MySQL 8.0.44 From 42b4b7282e773f0161ae8b5af1d7f53ac475f1d4 Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Thu, 20 Nov 2025 16:01:48 +0100 Subject: [PATCH 24/27] [tmpfiles.d] Fixup of the tmpfile.d rules A comment is misisng a comment line prefix --- mysql.tmpfiles.d.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mysql.tmpfiles.d.in b/mysql.tmpfiles.d.in index d22e348..0471433 100644 --- a/mysql.tmpfiles.d.in +++ b/mysql.tmpfiles.d.in @@ -1,6 +1,6 @@ d @PID_FILE_DIR@ 0755 mysql mysql - -Rules for ephemeral file systems (ImageMode) +# Rules for ephemeral file systems (ImageMode) /var/lib/mysql 0755 mysql mysql - /var/log/mysql 0750 mysql mysql - /var/log/mysql/mysql.log 0640 mysql mysql - From 66facf6b2dcf649cd4145c00d5ec8a56952029ca Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Thu, 20 Nov 2025 16:02:31 +0100 Subject: [PATCH 25/27] Bump release for tmpfiles.d fixup --- mysql8.0.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/mysql8.0.spec b/mysql8.0.spec index 18f4321..5293180 100644 --- a/mysql8.0.spec +++ b/mysql8.0.spec @@ -102,7 +102,7 @@ Name: %{majorname}%{majorversion} Version: %{package_version} -Release: 2%{?with_debug:.debug}%{?dist} +Release: 3%{?with_debug:.debug}%{?dist} Summary: MySQL client programs and shared libraries URL: http://www.mysql.com @@ -1120,6 +1120,9 @@ popd %endif %changelog +* Thu Nov 20 2025 Michal Schorm - 8.0.44-3 +- Bump release for tmpfiles.d fixup + * Mon Nov 3 2025 Nikola Davidova - 8.0.44-2 - Bump release for tmpfiles.d change From 9d88aad69f898ba91e53bebbdc5014515cfbd849 Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Tue, 25 Nov 2025 09:29:33 +0100 Subject: [PATCH 26/27] [tmpfiles.d] Fixup of the tmpfile.d rules Each line must begin with a valid prefix (type) https://www.man7.org/linux/man-pages/man5/tmpfiles.d.5.html --- mysql.tmpfiles.d.in | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/mysql.tmpfiles.d.in b/mysql.tmpfiles.d.in index 0471433..097295c 100644 --- a/mysql.tmpfiles.d.in +++ b/mysql.tmpfiles.d.in @@ -1,8 +1,8 @@ d @PID_FILE_DIR@ 0755 mysql mysql - # Rules for ephemeral file systems (ImageMode) -/var/lib/mysql 0755 mysql mysql - -/var/log/mysql 0750 mysql mysql - -/var/log/mysql/mysql.log 0640 mysql mysql - -/var/lib/mysql-files 0750 mysql mysql - -/var/lib/mysql-keyring 0700 mysql mysql - +d /var/lib/mysql 0755 mysql mysql - +d /var/log/mysql 0750 mysql mysql - +f /var/log/mysql/mysql.log 0640 mysql mysql - +d /var/lib/mysql-files 0750 mysql mysql - +d /var/lib/mysql-keyring 0700 mysql mysql - From fe20b389760e526defdee8aea4824dd502b36f7f Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Tue, 25 Nov 2025 09:30:23 +0100 Subject: [PATCH 27/27] Bump release for tmpfiles.d fixup --- mysql8.0.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/mysql8.0.spec b/mysql8.0.spec index 5293180..1a5455c 100644 --- a/mysql8.0.spec +++ b/mysql8.0.spec @@ -102,7 +102,7 @@ Name: %{majorname}%{majorversion} Version: %{package_version} -Release: 3%{?with_debug:.debug}%{?dist} +Release: 4%{?with_debug:.debug}%{?dist} Summary: MySQL client programs and shared libraries URL: http://www.mysql.com @@ -1120,6 +1120,9 @@ popd %endif %changelog +* Tue Nov 25 2025 Michal Schorm - 8.0.44-4 +- Bump release for tmpfiles.d fixup + * Thu Nov 20 2025 Michal Schorm - 8.0.44-3 - Bump release for tmpfiles.d fixup