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:
- Make
perl-DBD-MySQLuse a compatible client library supplied by the Percona PXC packages; or - Adjust the PXC package’s
Obsoletes:relationship so that the requiredmysql8.4-commondependency can be satisfied; or - 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.
