Percona XtraDB Cluster 8.4 Rocky Linux 10 issue

PXC 8.4.10-10 EL10: RPM dependency conflict with Rocky Linux 10 AppStream

Summary

Installing percona-xtradb-cluster-server-8.4.10-10.1.el10.x86_64 on Rocky Linux 10 fails because the package requires perl-DBD-MySQL, which requires libmysqlclient.so.24.

On Rocky Linux 10, libmysqlclient.so.24 is provided by mysql8.4-libs, which requires mysql8.4-common.

However, percona-xtradb-cluster-server-8.4.10-10.1.el10 declares that it obsoletes mysql8.4-common < 99.

As a result, DNF cannot resolve the dependency graph.

PXC 8.4.8-8.1.el10 resolves successfully on the same Rocky Linux 10 system using the same repositories.

Environment

OS: Rocky Linux 10
Architecture: x86_64
Percona repository: pxc-84-lts-release-x86_64

Enabled Percona repositories:

prel - release | noarch
pxc - 84 | lts
telemetry - release | x86_64

Available PXC versions:

8.4.6-6.1.el10
8.4.7-7.1.el10
8.4.8-8.1.el10
8.4.10-10.1.el10

Failing installation

dnf install percona-xtradb-cluster-server

Relevant DNF error:

Problem: package perl-DBD-MySQL-5.007-4.el10.x86_64 from appstream requires libmysqlclient.so.24()(64bit), but none of the providers can be installed

package percona-xtradb-cluster-server-8.4.10-10.1.el10.x86_64 from pxc-84-lts-release-x86_64 requires perl-DBD-MySQL, but none of the providers can be installed

package percona-xtradb-cluster-server-8.4.10-10.1.el10.x86_64 from pxc-84-lts-release-x86_64 obsoletes mysql8.4-common < 99

cannot install the best candidate for the job

Dependency investigation

libmysqlclient.so.24 provider

[root@rocky10 ~]# dnf repoquery --whatprovides 'libmysqlclient.so.24()(64bit)'

mysql8.4-libs-0:8.4.8-1.el10_1.rocky.0.1.x86_64
mysql8.4-libs-0:8.4.9-1.el10_2.rocky.0.1.x86_64

Therefore the required library is provided by Rocky Linux AppStream’s mysql8.4-libs.

perl-DBD-MySQL dependency

[root@rocky10 ~]# dnf repoquery --whatrequires 'libmysqlclient.so.24()(64bit)'

perl-DBD-MySQL-0:5.007-4.el10.x86_64

Percona repository does not provide libmysqlclient.so.24

[root@rocky10 ~]# dnf repoquery --whatprovides 'libmysqlclient.so.24()(64bit)' \
  --repo=pxc-84-lts-release-x86_64

Result:

(no output)

Likewise, the Percona PXC repository does not provide perl-DBD-MySQL:

[root@rocky10 ~]# dnf repoquery --whatprovides 'perl-DBD-MySQL' \
  --repo=pxc-84-lts-release-x86_64

Result:

(no output)

PXC 8.4.10 requirements

[root@rocky10 ~]# dnf repoquery --requires \
  percona-xtradb-cluster-server-8.4.10-10.1.el10.x86_64

Relevant requirements include:

/usr/bin/perl
perl(Data::Dumper)
perl-DBI
perl-DBD-MySQL
policycoreutils-python-utils
nmap
socat
percona-xtradb-cluster-client = 8.4.10-10.1.el10
percona-xtradb-cluster-icu-data-files = 8.4.10-10.1.el10
percona-xtradb-cluster-shared = 8.4.10-10.1.el10

The relevant dependency chain is:

PXC 8.4.10
    |
    +--> perl-DBD-MySQL
              |
              +--> libmysqlclient.so.24
                        |
                        +--> mysql8.4-libs
                                  |
                                  +--> mysql8.4-common

At the same time:

PXC 8.4.10
    |
    +--> Obsoletes: mysql8.4-common < 99

Disabling AppStream confirms the dependency

dnf install percona-xtradb-cluster-server \
  --disablerepo=appstream \
  --setopt=install_weak_deps=False

fails with:

nothing provides /usr/bin/perl needed by percona-xtradb-cluster-server-8.4.10-10.1.el10
nothing provides perl(Data::Dumper) needed by percona-xtradb-cluster-server-8.4.10-10.1.el10
nothing provides perl-DBI needed by percona-xtradb-cluster-server-8.4.10-10.1.el10
nothing provides perl-DBD-MySQL needed by percona-xtradb-cluster-server-8.4.10-10.1.el10
nothing provides policycoreutils-python-utils needed by percona-xtradb-cluster-server-8.4.10-10.1.el10
nothing provides socat needed by percona-xtradb-cluster-server-8.4.10-10.1.el10

This confirms that the PXC package depends on several EL10/AppStream packages.

Regression test: PXC 8.4.8

The same system can successfully resolve:

dnf install percona-xtradb-cluster-server-8.4.8-8.1.el10 \
  --setopt=install_weak_deps=False

DNF resolves the transaction successfully.

Relevant packages selected include:

percona-xtradb-cluster-server      8.4.8-8.1.el10
percona-xtradb-cluster-client      8.4.8-8.1.el10
percona-xtradb-cluster-shared      8.4.8-8.1.el10
percona-xtradb-cluster-icu-data-files
                                    8.4.8-8.1.el10
mysql8.4-common                    8.4.9-1.el10_2.rocky.0.1
mysql8.4-libs                      8.4.9-1.el10_2.rocky.0.1
perl-DBD-MySQL                     5.007-4.el10
perl-DBI                           1.643-26.el10_2.3

The transaction contains 87 packages and resolves successfully. The operation was manually aborted at the confirmation prompt, but DNF successfully resolved the complete dependency graph.

Expected behavior

PXC 8.4.10 should be installable on a supported EL10/Rocky Linux 10 system using the official PXC 8.4 repository and normal OS repositories.

The package dependency graph should not require a package that is simultaneously obsoleted by the PXC server package.

Possible fixes include:

  1. Make perl-DBD-MySQL use a compatible client library supplied by the Percona PXC packages; or
  2. Adjust the PXC package’s Obsoletes: relationship so that the required mysql8.4-common dependency can be satisfied; or
  3. Provide/require a compatible alternative that avoids the conflict.

Actual behavior

PXC 8.4.10-10.1.el10 cannot be installed because:

PXC 8.4.10
    requires perl-DBD-MySQL
        requires libmysqlclient.so.24
            provided by mysql8.4-libs
                requires mysql8.4-common

PXC 8.4.10
    obsoletes mysql8.4-common < 99

This causes DNF dependency resolution to fail.

Regression comparison

Version Rocky Linux 10 dependency resolution
PXC 8.4.8-8.1.el10 Works
PXC 8.4.10-10.1.el10 Fails

This makes the issue reproducible as a version-specific packaging regression.

Suggested fix

Please review the EL10 RPM spec/dependency metadata for:

percona-xtradb-cluster-server-8.4.10-10.1.el10

especially:

Requires: perl-DBD-MySQL
Obsoletes: mysql8.4-common < 99

and the compatibility of perl-DBD-MySQL with the Rocky Linux 10 AppStream MySQL client libraries.

A subsequent PXC package rebuild/revision may be sufficient if this is an RPM packaging metadata issue.

Workaround

For now, PXC 8.4.8-8.1.el10 can be used as a workaround on Rocky Linux 10:

dnf install percona-xtradb-cluster-server-8.4.8-8.1.el10 \
  --setopt=install_weak_deps=False

Pinning to 8.4.8 is only a temporary workaround and is not intended as the permanent solution.

References

Percona PXC 8.4.10 release notes:

Request

Could the Percona packaging team please verify the EL10 RPM metadata for percona-xtradb-cluster-server-8.4.10-10.1.el10 and confirm whether this is an unintended dependency/obsoletes conflict?

The issue is reproducible with the official PXC repository and Rocky Linux 10 AppStream, and PXC 8.4.8-8.1.el10 provides a working version comparison on the same OS.

Hi Arya,

Please use our distribution repository pdpxc-84-lts

Hey @Arya_Emini
Thanks for your detailed research and suggestions. THe issue is already fixed as @Vadim_Yalovets mentioned in his post.
So just use the distribution repository - it contains all needed packages and also some additional tools that would be useful for PXC usage. Percona Distribution for MySQL