diff --git a/mysql-flush-logrotate.patch b/mysql-flush-logrotate.patch index ecffab9..48eff40 100644 --- a/mysql-flush-logrotate.patch +++ b/mysql-flush-logrotate.patch @@ -1,6 +1,5 @@ -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 +--- 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 @@ -5,18 +5,6 @@ # [mysqld] # log-error=@LOGFILE_RPM@ @@ -31,6 +30,6 @@ diff -Naur mysql-8.4.6/packaging/rpm-common/mysql.logrotate.in mysql-8.4.6_patch -# @bindir@/mysqladmin flush-logs -# fi +# # SIGUSR1 makes the daemon to flush the logs, no need to connect through mysqladmin -+# @bindir@/systemctl kill --signal=USR1 --kill-whom=main mysqld.service 2>/dev/null || true ++# @bindir@/kill -USR1 $(systemctl show --property MainPID --value mysqld) # endscript #} diff --git a/mysql-paths.patch b/mysql-paths.patch index e68d8bf..d5978b6 100644 --- a/mysql-paths.patch +++ b/mysql-paths.patch @@ -3,21 +3,32 @@ Software Collections. Removing these hard-coded paths should fix it. Upstream report: https://mariadb.atlassian.net/browse/MDEV-6485 -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") +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 -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 @@ +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 @@ -33,10 +44,11 @@ diff -Naur mysql-8.4.6/mysys/my_default.cc mysql-8.4.6_patched/mysys/my_default. #endif /* DEFAULT_SYSCONFDIR */ #endif -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 @@ +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}") @@ -48,10 +60,11 @@ diff -Naur mysql-8.4.6/scripts/CMakeLists.txt mysql-8.4.6_patched/scripts/CMakeL SET(datadir ${prefix}/${INSTALL_MYSQLSHAREDIR}) SET(libsubdir ${INSTALL_LIBDIR}) SET(pkgincludedir ${prefix}/${INSTALL_INCLUDEDIR}) -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 @@ +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 $_ } diff --git a/mysql.tmpfiles.d.in b/mysql.tmpfiles.d.in index 097295c..d2c4b31 100644 --- a/mysql.tmpfiles.d.in +++ b/mysql.tmpfiles.d.in @@ -1,8 +1 @@ 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 6aa0b7c..241dac4 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.7 +%global package_version 8.4.5 %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 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 # --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 @@ -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.7 +%global last_tested_version 8.4.5 # 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: 5%{?with_debug:.debug}%{?dist} +Release: 1%{?with_debug:.debug}%{?dist} Summary: MySQL client programs and shared libraries URL: http://www.mysql.com -# 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 +# 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 Source0: https://cdn.mysql.com/Downloads/MySQL-8.4/mysql-%{version}.tar.gz Source3: my.cnf.in @@ -132,7 +132,6 @@ 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 @@ -170,7 +169,7 @@ BuildRequires: mecab-devel BuildRequires: bison BuildRequires: libzstd-devel BuildRequires: libcurl-devel -%ifnarch aarch64 s390x riscv64 +%ifnarch aarch64 s390x BuildRequires: numactl-devel BuildRequires: libquadmath-devel %endif @@ -251,9 +250,9 @@ Provides: bundled(rapidjson) # https://github.com/martinus/unordered_dense Provides: bundled(unordered_dense) -%{?with_conflicts_mariadb:Conflicts: mariadb-any} +%{?with_conflicts_mariadb:Conflicts: mariadb} # Explicitly disallow installation of mysql + mariadb-server -%{?with_conflicts_mariadb:Conflicts: mariadb-server-any} +%{?with_conflicts_mariadb:Conflicts: mariadb-server} %{?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,8 +393,8 @@ 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} -# `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} @@ -412,11 +411,11 @@ Requires: (mysql-selinux if selinux-policy-targeted) Suggests: logrotate -%{?with_conflicts_mariadb:Conflicts: mariadb-server-any} -%{?with_conflicts_mariadb:Conflicts: mariadb-server-utils-any} -%{?with_conflicts_mariadb:Conflicts: mariadb-server-galera-any} +%{?with_conflicts_mariadb:Conflicts: mariadb-server} +%{?with_conflicts_mariadb:Conflicts: mariadb-server-utils} +%{?with_conflicts_mariadb:Conflicts: mariadb-server-galera} # Explicitly disallow installation of mysql + mariadb-server -%{?with_conflicts_mariadb:Conflicts: mariadb-any} +%{?with_conflicts_mariadb:Conflicts: mariadb} %{?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} @@ -437,7 +436,7 @@ Summary: Files for development of MySQL applications Requires: openssl-devel Requires: zlib-devel Requires: libzstd-devel -%{?with_conflicts_mariadb:Conflicts: mariadb-devel-any} +%{?with_conflicts_mariadb:Conflicts: mariadb-devel} %{?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} @@ -480,7 +479,7 @@ Requires: perl(Test::More) Requires: perl(Time::HiRes) Requires: perl(File::Compare) -%{?with_conflicts_mariadb:Conflicts: mariadb-test-any} +%{?with_conflicts_mariadb:Conflicts: mariadb-test} %{?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} @@ -545,9 +544,6 @@ 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} \ @@ -597,10 +593,10 @@ cp %{SOURCE3} %{SOURCE10} %{SOURCE11} %{SOURCE12} \ -DSYSTEMD_SERVICE_NAME="%{daemon_name}" \ -DSYSTEMD_PID_DIR="%{pidfiledir}" \ -DWITH_INNODB_MEMCACHED=ON \ -%ifnarch aarch64 s390x riscv64 +%ifnarch aarch64 s390x -DWITH_NUMA=ON \ %endif -%ifarch s390x riscv64 +%ifarch s390x -DUSE_LD_GOLD=OFF \ %endif -DWITH_ROUTER=OFF \ @@ -659,13 +655,6 @@ 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 27 '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 @@ -803,8 +792,16 @@ 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 + install /dev/null -m0640 -omysql -gmysql "%{logfile}" +fi %preun -n %{pkgname}-server %systemd_preun %{daemon_name}.service @@ -980,15 +977,12 @@ popd %{_libexecdir}/mysql-scripts-common %{_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} @@ -1123,42 +1117,6 @@ popd %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 1a9e323..2315383 100644 --- a/rh-skipped-tests-list-base.list +++ b/rh-skipped-tests-list-base.list @@ -27,10 +27,3 @@ 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 7937566..9bd8439 100644 --- a/rh-skipped-tests-list-ppc.list +++ b/rh-skipped-tests-list-ppc.list @@ -3,28 +3,3 @@ 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 deleted file mode 100644 index 2bba0af..0000000 --- a/rh-skipped-tests-list-riscv.list +++ /dev/null @@ -1,3 +0,0 @@ -# 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 38a53f7..20e655e 100644 --- a/rh-skipped-tests-list-s390.list +++ b/rh-skipped-tests-list-s390.list @@ -5,6 +5,3 @@ 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 99a2f70..1e98dee 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (mysql-8.4.7.tar.gz) = d9596395b176490d5e58be307c2f82f55c9acd3206c1ba29bdb8c96c67438bbe5594621f601161ccb77f56c8262d00255ab6fd8aa62db61c80a1721e3d4e45a2 +SHA512 (mysql-8.4.5.tar.gz) = d5353bbc618fb6ec3658773d834942f5bfd11f6f5d3fb4778aa684b970a6143d5e96919ba2311bfb00faf3882da307c62b9370aca8f41136ec129d5fa06bcf5c