Bug #118796 Rebuilding 9.4.0 / 8.4.6 rpms from src rpm does not work on OL10
Submitted: 6 Aug 22:31 Modified: 9 Aug 16:33
Reporter: Simon Mudd (OCA) Email Updates:
Status: Verified Impact on me:
None 
Category:MySQL Server: Compiling Severity:S3 (Non-critical)
Version:9.4.0 / 8.4.6 OS:Oracle Linux (10)
Assigned to: CPU Architecture:x86

[6 Aug 22:31] Simon Mudd
Description:
You may be aware of my scripts to check I can rebuild rpms against the original MySQL source code. The repo https://github.com/sjmudd/mysql-rpm-builder.

This has been working for multiple versions of MySQL against different EL builds (CentOS, OL).

However, with the same build process for Oracle Linux 10 building 9.4.0 this process fails. I've tried a number of times.

rpm does not complain about the installed rpms required for the build process so maybe there is something else that's wrong but I believe I'm following the correct process and doing this in an identical way.

Builds using this same process work against OL8 / OL9 on 8.0.43 / 8.4.6 / 9.4.0
(I have not yet tried builds against 8.0 or 8.4 on OL10 but will do that next.)

How to repeat:
Documented here: https://github.com/sjmudd/mysql-rpm-builder/pull/1

I will upload the build log.

However, this is some of the final logging I see:

...
-- Installing: /home/rpmbuild/rpmbuild/BUILDROOT/mysql-community-9.4.0-1.el10.x86_64/usr/share/man/man1/mysqlrouter_plugin_info.1
+ install -D -m 0644 packaging/rpm-common/mysql.logrotate /home/rpmbuild/rpmbuild/BUILDROOT/mysql-community-9.4.0-1.el10.x86_64/etc/logrotate.d/mysql
+ install -D -m 0644 packaging/rpm-common/my.cnf /home/rpmbuild/rpmbuild/BUILDROOT/mysql-community-9.4.0-1.el10.x86_64/etc/my.cnf
+ install -d /home/rpmbuild/rpmbuild/BUILDROOT/mysql-community-9.4.0-1.el10.x86_64/etc/my.cnf.d
+ install -d -m 0755 /home/rpmbuild/rpmbuild/BUILDROOT/mysql-community-9.4.0-1.el10.x86_64/etc/ld.so.conf.d
+ echo /usr/lib64/mysql
+ mv /home/rpmbuild/rpmbuild/BUILDROOT/mysql-community-9.4.0-1.el10.x86_64//usr/bin/mysql_config /home/rpmbuild/rpmbuild/BUILDROOT/mysql-community-9.4.0-1.el10.x86_64//usr/bin/mysql_config-64
+ install -p -m 0755 packaging/rpm-common/mysql_config.sh /home/rpmbuild/rpmbuild/BUILDROOT/mysql-community-9.4.0-1.el10.x86_64//usr/bin/mysql_config
+ install -D -p -m 0644 packaging/rpm-common/mysqlrouter.conf /home/rpmbuild/rpmbuild/BUILDROOT/mysql-community-9.4.0-1.el10.x86_64/etc/mysqlrouter/mysqlrouter.conf
+ /usr/bin/find-debuginfo -j12 --strict-build-id -m -i --build-id-seed 9.4.0-1.el10 --unique-debug-suffix -9.4.0-1.el10.x86_64 --unique-debug-src-base mysql-community-9.4.0-1.el10.x86_64 --run-dwz --dwz-low-mem-die
-limit 10000000 --dwz-max-die-limit 110000000 -S debugsourcefiles.list /home/rpmbuild/rpmbuild/BUILD/mysql-9.4.0
find-debuginfo: starting
Extracting debug info from 525 files
warning: Unsupported auto-load script at offset 0 in section .debug_gdb_scripts
of file /home/rpmbuild/rpmbuild/BUILDROOT/mysql-community-9.4.0-1.el10.x86_64/usr/sbin/mysqld.
Use `info auto-load python-scripts [REGEXP]' to list them.
warning: Unsupported auto-load script at offset 0 in section .debug_gdb_scripts
of file /home/rpmbuild/rpmbuild/BUILDROOT/mysql-community-9.4.0-1.el10.x86_64/usr/sbin/mysqld-debug.
Use `info auto-load python-scripts [REGEXP]' to list them.
DWARF-compressing 525 files
sepdebugcrcfix: Updated 525 CRC32s, 0 CRC32s did match.
Creating .debug symlinks for symlinks to ELF files
Copying sources found by 'debugedit -l' to /usr/src/debug/mysql-community-9.4.0-1.el10.x86_64
cpio: debug/storage/include/fts0blex.h: Cannot stat: No such file or directory
cpio: debug/storage/include/fts0tlex.h: Cannot stat: No such file or directory
cpio: debug/storage/innobase/fts0blex.cc: Cannot stat: No such file or directory
cpio: debug/storage/innobase/fts0blex.l: Cannot stat: No such file or directory
cpio: debug/storage/innobase/fts0pars.cc: Cannot stat: No such file or directory
cpio: debug/storage/innobase/fts0pars.hh: Cannot stat: No such file or directory
cpio: debug/storage/innobase/fts0pars.y: Cannot stat: No such file or directory
cpio: debug/storage/innobase/fts0tlex.cc: Cannot stat: No such file or directory
cpio: debug/storage/innobase/fts0tlex.l: Cannot stat: No such file or directory
cpio: debug/storage/innobase/lexyy.cc: Cannot stat: No such file or directory
cpio: debug/storage/innobase/pars0grm.cc: Cannot stat: No such file or directory
cpio: debug/storage/innobase/pars0grm.y: Cannot stat: No such file or directory
cpio: debug/storage/innobase/pars0lex.l: Cannot stat: No such file or directory
find-debuginfo: done
+ /usr/lib/rpm/check-buildroot
+ /usr/lib/rpm/redhat/brp-ldconfig
+ /usr/lib/rpm/brp-compress
+ /usr/lib/rpm/redhat/brp-strip-lto /usr/bin/strip
+ /usr/lib/rpm/brp-strip-static-archive /usr/bin/strip
+ /usr/lib/rpm/check-rpaths
*******************************************************************************
*
* WARNING: 'check-rpaths' detected a broken RPATH OR RUNPATH and will cause
*          'rpmbuild' to fail. To ignore these errors, you can set the
*          '$QA_RPATHS' environment variable which is a bitmask allowing the
*          values below. The current value of QA_RPATHS is 0x0000.
*
*    0x0001 ... standard RPATHs (e.g. /usr/lib); such RPATHs are a minor
*               issue but are introducing redundant searchpaths without
*               providing a benefit. They can also cause errors in multilib
*               environments.
*    0x0002 ... invalid RPATHs; these are RPATHs which are neither absolute
*               nor relative filenames and can therefore be a SECURITY risk
*    0x0004 ... insecure RPATHs; these are relative RPATHs which are a
*               SECURITY risk
*    0x0008 ... the special '$ORIGIN' RPATHs are appearing after other
*               RPATHs; this is just a minor issue but usually unwanted
*    0x0010 ... the RPATH is empty; there is no reason for such RPATHs
*               and they cause unneeded work while loading libraries
*    0x0020 ... an RPATH references '..' of an absolute path; this will break
*               the functionality when the path before '..' is a symlink
*
*
* Examples:
* - to ignore standard and empty RPATHs, execute 'rpmbuild' like
*   $ QA_RPATHS=$(( 0x0001|0x0010 )) rpmbuild my-package.src.rpm
* - to check existing files, set $RPM_BUILD_ROOT and execute check-rpaths like
*   $ RPM_BUILD_ROOT=<top-dir> /usr/lib/rpm/check-rpaths
*
*******************************************************************************
ERROR   0002: file '/usr/sbin/mysqld-debug' contains an invalid rpath '/home/rpmbuild/rpmbuild/BUILD/mysql-9.4.0/debug/library_output_directory' in [$ORIGIN/../lib64/mysql/private:/home/rpmbuild/rpmbuild/BUILD/mysq
l-9.4.0/debug/library_output_directory:]
ERROR   0010: file '/usr/sbin/mysqld-debug' contains an empty rpath in [$ORIGIN/../lib64/mysql/private:/home/rpmbuild/rpmbuild/BUILD/mysql-9.4.0/debug/library_output_directory:]
...

My C/C++ experience is not good enough to identify why this may be failing.

Suggested fix:
Determine why the build environment does not complete successfully.

Ideally rpm builds should be repeatable but it's also true that there's no support by rpm to verify the exact build environment's configuration. Any differences may lead to the builds being different from what is expected or not complete at all which is what I'm seeing here.

This is built against a base Oracle Linux docker image so any differences with other "equivalent EL distros" should not be relevant.
[6 Aug 22:33] Simon Mudd
rpm build log for 9.4.0 on ol10

Attachment: build.log.gz (application/x-gzip, text), 1.14 MiB.

[7 Aug 6:52] Simon Mudd
Additional thoughts:

Usually this sort of problem is caused by:
- missing BuildRequires: in the spec file, meaning that some needed rpms are not installed on the build environment
- potentially some rpmbuild flags have been provided during the upstream build which change the behaviour of the rpm build process.  Not providing those changes the build process

Oracle does not share the full build process (which would be nice) at least for the MySQL community builds.  The process for building Enterprise versions, which are under a different non-GPL license, does not need to be shared.

This process is repeatable is effectively a clean-room build which could be reproducible by Oracle staff. It is true that the oraclelinux:10 base container is a moving target but it's intended to be stable enough to build against using the script I shared which just pulls down the latest version of specific rpms from the  oraclelinux repos.
[7 Aug 7:03] Simon Mudd
This should be built on a container with at least 16 GB of RAM and the process generally works against arm64 (docker on osx) and x86_64 containers.  The build log was taken from a run on a docker x86_64 container.
[7 Aug 7:37] Simon Mudd
I followed the same process against 8.4.6 to see if this would work. The only difference in the procedure was to pull the 8.4.6 src rpm from https://dev.mysql.com/get/Downloads/MySQL-9.0/mysql-community-8.4.6-1.el10.src.rpm

This failed with a different error: 

...
cd /home/rpmbuild/rpmbuild/BUILD/mysql-8.4.6/debug/sql && /usr/bin/g++ -DBOOST_NO_CXX98_FUNCTION_BASE -DHAVE_EXT_BACKTRACE -DHAVE_TLSv13 -DLZ4_DISABLE_DEPRECATE_WARNINGS -DMYSQL_SERVER -DPROTOBUF_USE_DLLS -DRAPIDJSON_HAS_STDSTRING=1 -DRAPIDJSON_NO_SIZETYPEDEFINE -DRAPIDJSON_SCHEMA_USE_INTERNALREGEX=0 -DRAPIDJSON_SCHEMA_USE_STDREGEX=1 -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -D_USE_MATH_DEFINES -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/home/rpmbuild/rpmbuild/BUILD/mysql-8.4.6/debug -I/home/rpmbuild/rpmbuild/BUILD/mysql-8.4.6/debug/include -I/home/rpmbuild/rpmbuild/BUILD/mysql-8.4.6/mysql-8.4.6 -I/home/rpmbuild/rpmbuild/BUILD/mysql-8.4.6/mysql-8.4.6/include -I/home/rpmbuild/rpmbuild/BUILD/mysql-8.4.6/mysql-8.4.6/libs -I/home/rpmbuild/rpmbuild/BUILD/mysql-8.4.6/mysql-8.4.6/extra/libbacktrace/include -I/home/rpmbuild/rpmbuild/BUILD/mysql-8.4.6/mysql-8.4.6/router/src/harness/include -isystem /home/rpmbuild/rpmbuild/BUILD/mysql-8.4.6/mysql-8.4.6/extra/protobuf/protobuf-24.4/src -isystem /home/rpmbuild/rpmbuild/BUILD/mysql-8.4.6/mysql-8.4.6/extra/libedit/libedit-20240808-3.1/src/editline -isystem /home/rpmbuild/rpmbuild/BUILD/mysql-8.4.6/mysql-8.4.6/extra/icu/icu-release-77-1/source/common -isystem /home/rpmbuild/rpmbuild/BUILD/mysql-8.4.6/mysql-8.4.6/extra/icu/icu-release-77-1/source/stubdata -isystem /home/rpmbuild/rpmbuild/BUILD/mysql-8.4.6/mysql-8.4.6/extra/icu/icu-release-77-1/source/i18n -isystem /home/rpmbuild/rpmbuild/BUILD/mysql-8.4.6/mysql-8.4.6/extra/unordered_dense/unordered_dense-4.4.0/include -isystem /home/rpmbuild/rpmbuild/BUILD/mysql-8.4.6/mysql-8.4.6/extra/zlib/zlib-1.3.1 -isystem /home/rpmbuild/rpmbuild/BUILD/mysql-8.4.6/debug/extra/zlib/zlib-1.3.1 -isystem /home/rpmbuild/rpmbuild/BUILD/mysql-8.4.6/mysql-8.4.6/extra/rapidjson/include -isystem /home/rpmbuild/rpmbuild/BUILD/mysql-8.4.6/mysql-8.4.6/extra/zstd/zstd-1.5.7/lib -isystem /home/rpmbuild/rpmbuild/BUILD/mysql-8.4.6/mysql-8.4.6/extra/lz4/lz4-1.10.0/lib -isystem /home/rpmbuild/rpmbuild/BUILD/mysql-8.4.6/mysql-8.4.6/extra/abseil/abseil-cpp-20230802.1 -isystem /home/rpmbuild/rpmbuild/BUILD/mysql-8.4.6/mysql-8.4.6/plugin/x/client -isystem /home/rpmbuild/rpmbuild/BUILD/mysql-8.4.6/debug/plugin/x/generated/protobuf_lite -isystem /home/rpmbuild/rpmbuild/BUILD/mysql-8.4.6/debug/plugin/x/generated -isystem /home/rpmbuild/rpmbuild/BUILD/mysql-8.4.6/mysql-8.4.6/include/boost_1_84_0/patches -isystem /home/rpmbuild/rpmbuild/BUILD/mysql-8.4.6/mysql-8.4.6/extra/boost/boost_1_84_0 -std=c++20 -fno-omit-frame-pointer -ftls-model=initial-exec    -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wno-complain-wrong-lang -Werror=format-security   -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -Wall -Wextra -Wformat-security -Wvla -Wundef -Wmissing-format-attribute -Woverloaded-virtual -Wcast-qual -Wimplicit-fallthrough=5 -Wstringop-truncation -Wsuggest-override -Wmissing-include-dirs -Wextra-semi -Wlogical-op -Werror -DSAFE_MUTEX -DENABLED_DEBUG_SYNC -g -std=gnu++20 -fPIC -Wshadow=local -MD -MT sql/CMakeFiles/sql_gis.dir/gis/frechet_distance.cc.o -MF CMakeFiles/sql_gis.dir/gis/frechet_distance.cc.o.d -o CMakeFiles/sql_gis.dir/gis/frechet_distance.cc.o -c /home/rpmbuild/rpmbuild/BUILD/mysql-8.4.6/mysql-8.4.6/sql/gis/frechet_distance.cc
In file included from /home/rpmbuild/rpmbuild/BUILD/mysql-8.4.6/mysql-8.4.6/extra/boost/boost_1_84_0/boost/geometry/core/coordinate_promotion.hpp:16,
                 from /home/rpmbuild/rpmbuild/BUILD/mysql-8.4.6/mysql-8.4.6/extra/boost/boost_1_84_0/boost/geometry/core/radian_access.hpp:30,
                 from /home/rpmbuild/rpmbuild/BUILD/mysql-8.4.6/mysql-8.4.6/extra/boost/boost_1_84_0/boost/geometry/geometry.hpp:50,
                 from /home/rpmbuild/rpmbuild/BUILD/mysql-8.4.6/mysql-8.4.6/extra/boost/boost_1_84_0/boost/geometry.hpp:17,
                 from /home/rpmbuild/rpmbuild/BUILD/mysql-8.4.6/mysql-8.4.6/sql/gis/distance_functor.h:38,
                 from /home/rpmbuild/rpmbuild/BUILD/mysql-8.4.6/mysql-8.4.6/sql/gis/distance.cc:29:
/home/rpmbuild/rpmbuild/BUILD/mysql-8.4.6/mysql-8.4.6/extra/boost/boost_1_84_0/boost/multiprecision/cpp_bin_float.hpp:40:10: fatal error: quadmath.h: No such file or directory
   40 | #include <quadmath.h>
      |          ^~~~~~~~~~~~
compilation terminated.
In file included from /home/rpmbuild/rpmbuild/BUILD/mysql-8.4.6/mysql-8.4.6/extra/boost/boost_1_84_0/boost/geometry/core/coordinate_promotion.hpp:16,
                 from /home/rpmbuild/rpmbuild/BUILD/mysql-8.4.6/mysql-8.4.6/extra/boost/boost_1_84_0/boost/geometry/core/radian_access.hpp:30,
                 from /home/rpmbuild/rpmbuild/BUILD/mysql-8.4.6/mysql-8.4.6/extra/boost/boost_1_84_0/boost/geometry/geometry.hpp:50,
                 from /home/rpmbuild/rpmbuild/BUILD/mysql-8.4.6/mysql-8.4.6/extra/boost/boost_1_84_0/boost/geometry.hpp:17,
                 from /home/rpmbuild/rpmbuild/BUILD/mysql-8.4.6/mysql-8.4.6/sql/gis/covered_by.cc:28:
/home/rpmbuild/rpmbuild/BUILD/mysql-8.4.6/mysql-8.4.6/extra/boost/boost_1_84_0/boost/multiprecision/cpp_bin_float.hpp:40:10: fatal error: quadmath.h: No such file or directory
   40 | #include <quadmath.h>
      |          ^~~~~~~~~~~~
compilation terminated.

...

Also I checked the compiler version installed into the container:

bash-5.2# rpm -qa | grep gcc
libgcc-14.2.1-7.el10.x86_64
gcc-14.2.1-7.el10.x86_64
annobin-plugin-gcc-12.92-1.el10.x86_64
gcc-c++-14.2.1-7.el10.x86_64
gcc-plugin-annobin-14.2.1-7.el10.x86_64
bash-5.2#

In theory Oracle Linux 10 is now generally available according to https://blogs.oracle.com/linux/post/oracle-linux-10-now-generally-available

Perhaps what I'm seeing are some toothing problems of the OS, the compiler or the docker container setup?
[7 Aug 7:41] Simon Mudd
I also checked the build configuration I use against working 9.4.0 on OL9.
The only difference is the OS setup which uses an oraclelinux:9 container vs a oraclelinux:10 container and the difference in the rpms installed into the container to allow for building are shown below:

bash-5.2# diff -u ol9__9.4.0.sh ol10__9.4.0.sh
--- ol9__9.4.0.sh       2025-08-06 12:55:10.050324458 +0000
+++ ol10__9.4.0.sh      2025-08-06 18:38:25.918657551 +0000
@@ -2,7 +2,7 @@

 ############################################################################
 #                                                                          #
-# OS Setup functions for OS9                                               #
+# OS Setup for OL10 for 9.4.0                                              #
 #                                                                          #
 ############################################################################

@@ -13,18 +13,18 @@
 yum update -y
 yum install -y 'dnf-command(config-manager)'

-# OEL9 differences vs CentOS 9 stream
+# OEL10 differences vs CentOS 10 stream
 if rpm -q centos-stream-release 2>&1 >/dev/null; then
-       echo "- found CentOS 9 stream"
+       echo "- found CentOS 10 stream"
        extra_repo=crb
 elif rpm -q oraclelinux-release 2>&1 >/dev/null; then
-       echo "- found Oracle Linux 9"
-       extra_repo=ol9_codeready_builder
+       echo "- found Oracle Linux 10"
+       extra_repo=ol10_codeready_builder
 elif rpm -q almalinux-release 2>&1 >/dev/null; then
-       echo "- found Alma Linux 9"
+       echo "- found Alma Linux 10"
        extra_repo=crb
 elif rpm -q rocky-release 2>&1 >/dev/null; then
-       echo "- found Rocky Linux 9"
+       echo "- found Rocky Linux 10"
        extra_repo=crb
 else
        echo "- OS not recognised, giving up"
@@ -54,43 +54,16 @@
        perl-JSON rpcgen \
        rpm-build \
        time \
-       gcc-toolset-12-annobin-annocheck \
-       gcc-toolset-12-annobin-plugin-gcc \
-       gcc-toolset-12-binutils \
-       gcc-toolset-12-dwz \
-       gcc-toolset-12-gcc \
-       gcc-toolset-12-gcc-c++ \
-       gcc-toolset-14-annobin-annocheck \
-       gcc-toolset-14-annobin-plugin-gcc \
-       gcc-toolset-14-binutils  \
-       gcc-toolset-14-dwz \
-       gcc-toolset-14-gcc \
-       gcc-toolset-14-gcc-c++ \
+       annobin-annocheck \
+       annobin-plugin-gcc \
+       binutils  \
+       dwz \
+       gcc \
+       gcc-c++ \
        wget \
        zlib-devel

-# FIXME: Handle aarch64 architecture.
-# See: https://bugs.mysql.com/bug.php?id=108049. Without this symlink the
-# build process will fail to find something the code needs to complete
-# the build.
-#
-# Even better in 9.X we have to support this symlinking in CentOS9 for
-# both gcctoolset-12 (8.0/8.4 compat builds) and gcctoolset-13/14 (9.0 builds)
-ARCH=$(uname -m) # to handle x86_64 and aarch64
-gcctoolset_versions="12 13 14"
-for version in $gcctoolset_versions; do
-       PLUGINDIR=/opt/rh/gcc-toolset-$version/root/usr/lib/gcc/$ARCH-redhat-linux/$version/plugin
-       if [ -d $PLUGINDIR ]; then
-               pushd $PLUGINDIR
-
-               echo "Handling CentOS 9 workaround symlinks for gcc-toolset-$version"
-               for p in annobin.so annobin.so.0.0.0 gcc-annobin.so gcc-annobin.so.0.0.0; do
-                       echo "Symlinking missing $p..."
-                       test -e $p || ln -s gts-annobin.so.0.0.0 $p
-               done
-               popd
-       fi
-done
+# temporarily remove the arch gcc-toolset plugindir patching

 echo "########################################################"
 echo "#           os preparation complete                    #"
bash-5.2#

So I am confused that this is not working as expected.
[7 Aug 13:18] MySQL Verification Team
Thanks for the report. I can reproduce the problem, verifying the bug so that engineering team can take a look.
[7 Aug 14:22] MySQL Verification Team
Do you have libquadmath installed ?

https://bugs.mysql.com/bug.php?id=117443

-- 
Shane Bester, MySQL Senior Principal Technical Support Engineer
Oracle Corporation
http://dev.mysql.com/
[7 Aug 17:44] Simon Mudd
let me check the rpm -qa list I grabbed prior to building. I'll upload it.
[7 Aug 17:46] Simon Mudd
uploaded rpm-qa file.

To answer your question, no it was not installed.
[7 Aug 22:27] Simon Mudd
I notice that:
- 9.4.0 includes boost 1.87.0 source code.
- 8.4.6 includes boost 1.84.0 source code.

So clearly we need to be careful comparing what's required.
this bug report was initially pinned against 9.4.0 though I shared issues with 8.4.6 (released at the same time). I've not tried rebuilding 8.0.43 yet to see if that's successful or not.

Also once the reason for this building failing is determined it would be good to provide updated src and binary rpms even if the behaviour of the binary rpms will not be expected to change. Not doing this will make 9.4.0 (and 8.4.6) rpm build from a src rpm always be broken and it won't be obvious why.  Updating them (and providing an update on github to the packaging/rpm-oel/mysql.spec.in file would ensure that the updated rpm packages are clean and known to be rebuildable.

Otherwise people like myself will need to provide special workarounds to rebuild these versions forever.
[8 Aug 7:04] Simon Mudd
I was asked: "Do you have libquadmath installed ?"

This was not installed. Installing libquadmath-devel on the 8.4.6 build was not enough, further errors emerged. It also did not seem to make much difference with the 9.4.0 build.

I will see if I can take a look at the 8.4 diffs or the 9.3-9.4 diffs to see if I can identify what else may be missing. However, having said that it should be straightforward for the rpm build team to compare their rpm -qa package list to mine and from that figure out what may be missing.
[8 Aug 7:50] Simon Mudd
I have modified the Synopsis to mention 8.4.6 in addition to 9.4.0.

I mentioned in previous comments 8.0.43 which was released at the same time but notice that there are no MySQL 8.0.43 rpms provide by Oracle for OL10, thus 8.0.43 references in this ticket are not appropriate. I am assuming that this is because of 8.0 going end of life in April 2026 so there's no desire to add to the support burden and also 8.4.6 LTS is a long term supported version for MySQL which can be used on OL10 for some time.
[8 Aug 16:15] MySQL Verification Team
Hi Simon,

I can work out what exactly you are missing if that info is of use to you but I'm sure you can do it too, I verified the bug as src.rpm should provide all this data. While back libaio was a problem, now we know about libquadmath but obviously there are few more.

Thanks for help sorting this out.
[9 Aug 16:33] Simon Mudd
It's not apparent to me exactly what's missing as I'm not a C/C++ developer and I don't have a working setup to compare the failed build against.  Clearly your rpm build team have been able to build the rpms correctly so their environment is "complete".

If you're able to provide me a list of missing rpms that would be most helpful as then I can modify my build environment script to include these rpms and the build should then be successful. That would be for 8.4.0 and 9.4.0, the build environments may be different. Traditionally the gcc version was different between  8.0 / 8.4 and 9.x but it may be on OL10 that you're currently using the same tool chain.

While it would be good to get new src / binary rpms updated (and the github git repo updated) that would be less necessary as anyone trying to figure this out could find the missing dependencies in this bug report. I'd expect if you don't do this that when 8.4.7 / 9.5.0 are released the updates will be applied there.