diff --git a/mysql-flush-logrotate.patch b/mysql-flush-logrotate.patch index 48eff40..ecffab9 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.4.6/packaging/rpm-common/mysql.logrotate.in mysql-8.4.6_patched/packaging/rpm-common/mysql.logrotate.in +--- mysql-8.4.6/packaging/rpm-common/mysql.logrotate.in 2025-07-10 16:20:26.000000000 +0200 ++++ mysql-8.4.6_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/mysql-paths.patch b/mysql-paths.patch index d5978b6..e68d8bf 100644 --- a/mysql-paths.patch +++ b/mysql-paths.patch @@ -3,32 +3,21 @@ 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) +diff -Naur mysql-8.4.6/cmake/install_layout.cmake mysql-8.4.6_patched/cmake/install_layout.cmake +--- mysql-8.4.6/cmake/install_layout.cmake 2025-07-10 16:20:26.000000000 +0200 ++++ mysql-8.4.6_patched/cmake/install_layout.cmake 2025-07-23 09:50:42.278223154 +0200 +@@ -202,6 +202,7 @@ + ELSE() + SET(INSTALL_SBINDIR_RPM "sbin") 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) { +diff -Naur mysql-8.4.6/mysys/my_default.cc mysql-8.4.6_patched/mysys/my_default.cc +--- mysql-8.4.6/mysys/my_default.cc 2025-07-10 16:20:26.000000000 +0200 ++++ mysql-8.4.6_patched/mysys/my_default.cc 2025-07-23 09:52:21.494414633 +0200 +@@ -1693,12 +1693,12 @@ #else @@ -44,11 +33,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.4.6/scripts/CMakeLists.txt mysql-8.4.6_patched/scripts/CMakeLists.txt +--- mysql-8.4.6/scripts/CMakeLists.txt 2025-07-10 16:20:26.000000000 +0200 ++++ mysql-8.4.6_patched/scripts/CMakeLists.txt 2025-07-23 09:53:30.114124746 +0200 +@@ -331,9 +331,9 @@ ENDIF(UNIX) SET(prefix "${CMAKE_INSTALL_PREFIX}") @@ -60,11 +48,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.4.6/scripts/mysqld_multi.pl.in mysql-8.4.6_patched/scripts/mysqld_multi.pl.in +--- mysql-8.4.6/scripts/mysqld_multi.pl.in 2025-07-10 16:20:26.000000000 +0200 ++++ mysql-8.4.6_patched/scripts/mysqld_multi.pl.in 2025-07-23 09:54:16.090991270 +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/mysql.tmpfiles.d.in b/mysql.tmpfiles.d.in index d2c4b31..097295c 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) +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 - diff --git a/mysql8.4.spec b/mysql8.4.spec index 0c6b756..6aa0b7c 100644 --- a/mysql8.4.spec +++ b/mysql8.4.spec @@ -2,18 +2,18 @@ ExcludeArch: %{ix86} # Name of the package without any prefixes %global majorname mysql -%global package_version 8.4.5 +%global package_version 8.4.7 %global majorversion %(echo %{package_version} | cut -d'.' -f1-2 ) %global pkgnamepatch mysql # Set if this package will be the default one in distribution -%{!?mysql_default:%global mysql_default 0} +%{!?mysql_default:%global mysql_default 1} # 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 0} +%{!?runselftest:%global runselftest 1} # Set this to 1 to see which tests fail, but 0 on production ready build %global ignore_testsuite_result 0 @@ -21,7 +21,7 @@ ExcludeArch: %{ix86} # 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.4.5 +%global last_tested_version 8.4.7 # Set to 1 to force run the testsuite even if it was already tested in current version %global force_run_testsuite 0 @@ -104,13 +104,13 @@ ExcludeArch: %{ix86} Name: %{majorname}%{majorversion} Version: %{package_version} -Release: 2%{?with_debug:.debug}%{?dist} +Release: 5%{?with_debug:.debug}%{?dist} Summary: MySQL client programs and shared libraries URL: http://www.mysql.com -# Exceptions allow client libraries to be linked with most open source SW, -# not only GPL code. See README.mysql-license -License: GPL-2.0-or-later AND LGPL-2.1-only AND BSL-1.0 AND BSD-2-Clause +# The the `Universal-FOSS-exception-1.0` exception allow client libraries to be linked with most open source SW, not only GPL code. +# Usage of the `Universal-FOSS-exception-1.0` in the SPDX license expression does not signify that we regard "Interfaces" as protected by copyright. +License: GPL-2.0-only AND ( GPL-2.0-only WITH Universal-FOSS-exception-1.0 ) AND GPL-2.0-or-later AND ( LGPL-2.0-only WITH Universal-FOSS-exception-1.0 ) AND ( GPL-3.0-or-later WITH Bison-exception-2.2 ) AND ( GPL-2.0-only OR BSD-2-Clause ) AND BSD-2-Clause AND BSL-1.0 AND Apache-2.0 AND MIT Source0: https://cdn.mysql.com/Downloads/MySQL-8.4/mysql-%{version}.tar.gz Source3: my.cnf.in @@ -132,6 +132,7 @@ Source50: rh-skipped-tests-list-base.list Source51: rh-skipped-tests-list-arm.list Source52: rh-skipped-tests-list-s390.list Source53: rh-skipped-tests-list-ppc.list +Source54: rh-skipped-tests-list-riscv.list # Comments for these patches are in the patch files # Patches common for more mysql-like packages @@ -169,7 +170,7 @@ BuildRequires: mecab-devel BuildRequires: bison BuildRequires: libzstd-devel BuildRequires: libcurl-devel -%ifnarch aarch64 s390x +%ifnarch aarch64 s390x riscv64 BuildRequires: numactl-devel BuildRequires: libquadmath-devel %endif @@ -250,9 +251,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} @@ -394,6 +395,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} @@ -410,11 +412,11 @@ Requires: (mysql-selinux if selinux-policy-targeted) Suggests: logrotate -%{?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} @@ -435,7 +437,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} @@ -478,7 +480,7 @@ Requires: perl(Test::More) Requires: perl(Time::HiRes) Requires: perl(File::Compare) -%{?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} @@ -543,6 +545,9 @@ cat %{SOURCE52} | tee -a mysql-test/%{skiplist} cat %{SOURCE53} | tee -a mysql-test/%{skiplist} %endif +%ifarch riscv64 +cat %{SOURCE54} | tee -a mysql-test/%{skiplist} +%endif cp %{SOURCE3} %{SOURCE10} %{SOURCE11} %{SOURCE12} \ @@ -592,10 +597,10 @@ cp %{SOURCE3} %{SOURCE10} %{SOURCE11} %{SOURCE12} \ -DSYSTEMD_SERVICE_NAME="%{daemon_name}" \ -DSYSTEMD_PID_DIR="%{pidfiledir}" \ -DWITH_INNODB_MEMCACHED=ON \ -%ifnarch aarch64 s390x +%ifnarch aarch64 s390x riscv64 -DWITH_NUMA=ON \ %endif -%ifarch s390x +%ifarch s390x riscv64 -DUSE_LD_GOLD=OFF \ %endif -DWITH_ROUTER=OFF \ @@ -658,7 +663,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 @@ -800,9 +805,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 @@ -979,12 +981,14 @@ fi %{_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} -%attr(0640,mysql,mysql) %config %ghost %verify(not md5 size mtime) %{logfile} + %config(noreplace) %{logrotateddir}/%{daemon_name} %if %{with devel} @@ -1119,6 +1123,42 @@ fi %endif %changelog +* Tue Dec 02 2025 David Abdurachmanov - 8.4.7-5 +- Disable numactrl and libquadmath on risc-v +- Disable ld.gold on risc-v +- Add list of skipped tests for risc-v + +* Fri Nov 21 2025 Michal Schorm - 8.4.7-4 +- Bump release for tmpfiles.d fixup + +* Thu Nov 20 2025 Michal Schorm - 8.4.7-3 +- Bump release for tmpfiles.d fixup + +* Mon Nov 3 2025 Nikola Davidova - 8.4.7-2 +- Bump release for tmpfiles.d change + +* Thu Oct 30 2025 Pavol Sloboda - 8.4.7-1 +- Rebase to 8.4.7 + +* Mon Oct 27 2025 Lukas Javorsky - 8.4.6-4 +- Revert to soft static allocation of MariaDB and MySQL sysusers.d files + +* Tue Aug 26 2025 Pavol Sloboda - 8.4.6-3 +- Bump release for package rebuild + +* Wed Aug 06 2025 FrantiĊĦek Zatloukal - 8.4.6-2 +- Rebuilt for icu 77.1 + +* Thu Jul 24 2025 Pavol Sloboda - 8.4.6-1 +- Rebase to 8.4.6 + +* Thu Jul 24 2025 Fedora Release Engineering - 8.4.5-101 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Tue Jul 15 2025 Michal Schorm - 8.4.5-100 +- Disable the 'distribution default' in MySQL 8.0 (package 'mysql8.0') +- Enable the 'distribution default' in MySQL 8.4 in this package + * Mon Apr 28 2025 Pavol Sloboda - 8.4.5-1 - Rebase to 8.4.5 diff --git a/rh-skipped-tests-list-base.list b/rh-skipped-tests-list-base.list index 2315383..1a9e323 100644 --- a/rh-skipped-tests-list-base.list +++ b/rh-skipped-tests-list-base.list @@ -27,3 +27,10 @@ auth_sec.fips_persisted_option : BUG#0 auth_sec.fips_tlsv13 : BUG#0 rpl.rpl_fips : BUG#0 x.connection_fips : BUG#0 + +# Fails since 8.4.7 +perfschema.statement_digest_query_sample : BUG#0 +rpl.rpl_eventlog_psi_memory : BUG#0 +perfschema.system_events_component : BUG#0 +rpl.rpl_json : BUG#0 +perfschema.system_events_plugin : BUG#0 diff --git a/rh-skipped-tests-list-ppc.list b/rh-skipped-tests-list-ppc.list index 9bd8439..7937566 100644 --- a/rh-skipped-tests-list-ppc.list +++ b/rh-skipped-tests-list-ppc.list @@ -3,3 +3,28 @@ main.mysql_client_test : BUG#0 # Unstable in 8.4.4 in Fedora KOJI main.mysqlslap : BUG#0 + +# Fails in 8.4.6 in Fedora KOJI +federated.federated_server : BUG#0 +innodb.lob_recovery : BUG#0 +innodb.multi_value_basic : BUG#0 +innodb_fts.bug_34846823 : BUG#0 +innodb_gis.rtree_search : BUG#0 +main.lock_multi_bug38691 : BUG#0 +perfschema.system_events_component : BUG#0 +perfschema.system_events_plugin : BUG#0 +rpl.rpl_eventlog_psi_memory : BUG#0 +rpl.rpl_parallel_ddl_innodb : BUG#0 +rpl.rpl_parallel_ddl_myisam : BUG#0 +rpl_gtid.mysqldump_bug33630199 : BUG#0 +sys_vars.myisam_data_pointer_size_func : BUG#0 +# unstable on ELN +main.multi_update : BUG#0 + +# Fails since 8.4.7 +innodb_fts.optimize_big : BUG#0 +innodb_undo.undo_settings : BUG#0 +rpl_gtid.rpl_perfschema_applier_status_by_worker_gtid_skipped_transaction_mts : BUG#0 + +# Times out since 8.4.7 +parts.partition_reverse_scan_icp : BUG#0 diff --git a/rh-skipped-tests-list-riscv.list b/rh-skipped-tests-list-riscv.list new file mode 100644 index 0000000..2bba0af --- /dev/null +++ b/rh-skipped-tests-list-riscv.list @@ -0,0 +1,3 @@ +# Fails since 8.0.40 +# [Warning] [MY-011037] [Server] The CYCLE timer is not available. WAIT events in the performance_schema will not be timed. +main.test_mysql_thd_store_service : BUG#0 diff --git a/rh-skipped-tests-list-s390.list b/rh-skipped-tests-list-s390.list index 20e655e..38a53f7 100644 --- a/rh-skipped-tests-list-s390.list +++ b/rh-skipped-tests-list-s390.list @@ -5,3 +5,6 @@ test_services.test_event_tracking_consumer : BUG#0 # Unstable since 8.4 innodb_undo.truncate_xa : BUG#0 x.result_types : BUG#0 + +# Times out since 8.4.7 +rpl_gtid.rpl_perfschema_applier_status_by_worker_gtid_skipped_transaction_mts : BUG#0 diff --git a/sources b/sources index 1e98dee..99a2f70 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (mysql-8.4.5.tar.gz) = d5353bbc618fb6ec3658773d834942f5bfd11f6f5d3fb4778aa684b970a6143d5e96919ba2311bfb00faf3882da307c62b9370aca8f41136ec129d5fa06bcf5c +SHA512 (mysql-8.4.7.tar.gz) = d9596395b176490d5e58be307c2f82f55c9acd3206c1ba29bdb8c96c67438bbe5594621f601161ccb77f56c8262d00255ab6fd8aa62db61c80a1721e3d4e45a2