[MDEV-23506] mariadb-connector-c-devel package from standard RHEL 8 repo conflicts with MariaDB's packages Created: 2020-08-18  Updated: 2021-09-23  Resolved: 2021-09-21

Status: Closed
Project: MariaDB Server
Component/s: Packaging, Platform RedHat
Affects Version/s: 10.5.5
Fix Version/s: 10.3.32, 10.4.22, 10.5.13

Type: Bug Priority: Major
Reporter: Geoff Montee (Inactive) Assignee: Alexey Bychko (Inactive)
Resolution: Fixed Votes: 1
Labels: not-10.1, not-10.2

Issue Links:
Relates
relates to MDEV-22971 MariaDB-shared conflicts with libmari... Confirmed
relates to MDEV-24629 mariadb-connector-c-config conflicts ... Closed

 Description   

The mariadb-connector-c-devel package from the standard RHEL 8 repo conflicts with MariaDB's packages. e.g.:

# dnf  -y  update ;
Last metadata expiration check: 0:04:17 ago on Tue 18 Aug 2020 02:03:54 PM EDT.
Error:
 Problem: package mariadb-connector-c-devel-3.0.7-1.el8.x86_64 requires mariadb-connector-c = 3.0.7-1.el8, but none of the providers can be installed
  - package MariaDB-shared-10.5.5-1.el8.x86_64 obsoletes mariadb-connector-c provided by mariadb-connector-c-3.0.7-1.el8.x86_64
  - package MariaDB-shared-10.5.5-1.el8.x86_64 obsoletes mariadb-connector-c provided by mariadb-connector-c-3.0.7-1.el8.i686
  - cannot install the best update candidate for package mariadb-connector-c-devel-3.0.7-1.el8.x86_64
  - cannot install the best update candidate for package mariadb-connector-c-3.0.7-1.el8.x86_64
(try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)

This was first reported here:

https://mariadb.com/kb/en/odd-mariadb-connector-c-error-on-update/

As far as I can tell, it looks like the problem is that our MariaDB-devel package should take precedence over the mariadb-connector-c-devel package from the standard RHEL 8 repo, but it currently doesn't.

We solved a similar problem for the MariaDB-devel package by making mariadb-connector-c an "alternative name" for the MariaDB-devel package:

ELSEIF(RPM MATCHES "(rhel|centos)8")
...
  ALTERNATIVE_NAME("shared" "mariadb-connector-c" ${MARIADB_CONNECTOR_C_VERSION}-1)
  ALTERNATIVE_NAME("shared" "mariadb-connector-c-config" ${MARIADB_CONNECTOR_C_VERSION}-1)
...
ENDIF()

https://github.com/MariaDB/server/blob/mariadb-10.5.5/cmake/cpack_rpm.cmake#L238

I suspect that we need a similar rule to add mariadb-connector-c-devel as an alternative name for the MariaDB-devel package.



 Comments   
Comment by mark f edwards [ 2020-08-19 ]

we have the same issue with 10.4:

# dnf -y install MariaDB-devel ;
Last metadata expiration check: 0:02:17 ago on Wed 19 Aug 2020 03:30:45 PM UTC.
All matches were filtered out by modular filtering for argument: MariaDB-devel
* Maybe you meant: mariadb-devel ;
Error: Unable to find a match: MariaDB-devel

# dnf -y install mariadb-devel

Running transaction check
Transaction check succeeded.
Running transaction test
The downloaded packages were saved in cache until the next successful transaction.
You can remove cached packages by executing 'dnf clean packages'.
Error: Transaction test error:
file /usr/lib64/libmariadb.so.3 conflicts between attempted installs of MariaDB-shared-10.4.12-1.el8.x86_64 and mariadb-connector-c-3.0.7-1.el8.x86_64

EDIT: same issue with 10.3...? 10.3 was first released on 2017-04-16 - i get the feeling that mariadb-connector-c is not maintained anymore?

Comment by Geoff Montee (Inactive) [ 2020-08-19 ]

Hi edwardsmarkf,

I had to work around the problem like this:

1.) Check installed packages:

$ sudo rpm -qa | grep -i mariadb
mariadb-connector-c-devel-3.0.7-1.el8.x86_64
mariadb-connector-c-3.0.7-1.el8.x86_64
mariadb-connector-c-config-3.0.7-1.el8.noarch

2.) Try to install the MariaDB Connector/C packages from MariaDB's repo, and it fails:

$ sudo yum install MariaDB-shared MariaDB-devel
Last metadata expiration check: 0:13:18 ago on Wed 19 Aug 2020 07:06:45 PM UTC.
Error: 
 Problem: problem with installed package mariadb-connector-c-devel-3.0.7-1.el8.x86_64
  - package mariadb-connector-c-devel-3.0.7-1.el8.x86_64 requires mariadb-connector-c = 3.0.7-1.el8, but none of the providers can be installed
  - package MariaDB-shared-10.5.5_3-1.el8.x86_64 obsoletes mariadb-connector-c provided by mariadb-connector-c-3.0.7-1.el8.x86_64
  - package MariaDB-shared-10.5.5_3-1.el8.x86_64 obsoletes mariadb-connector-c provided by mariadb-connector-c-3.0.7-1.el8.i686
  - conflicting requests
(try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)

3.) Remove the 3 mariadb-connector-c* packages from the standard RHEL/CentOS 8 repo:

$ sudo yum remove mariadb-connector-c mariadb-connector-c-config mariadb-connector-c-devel

4.) Try again to install the MariaDB Connector/C packages from MariaDB's repo, and it succeeds this time:

$ sudo yum install MariaDB-shared MariaDB-devel

Comment by mark f edwards [ 2020-08-19 ]

than you Geoff - here is what i see now:

  1. sudo yum install MariaDB-shared MariaDB-devel
    Last metadata expiration check: 0:18:08 ago on Wed 19 Aug 2020 07:28:18 PM
    UTC.
    All matches were filtered out by modular filtering for argument:
    MariaDB-devel
  • Maybe you meant: mariadb-devel
    Error: Unable to find a match: MariaDB-devel

Thank you,

Mark Edwards

On Wed, Aug 19, 2020 at 12:25 PM Geoff Montee (Jira) <jira@mariadb.org>

Comment by Geoff Montee (Inactive) [ 2020-08-19 ]

Hi edwardsmarkf,

That's odd. I don't know why that error would occur for you, but it wouldn't occur for me. Did you recently configure your MariaDB repository, or has it been configured for a while? If your repository configuration is too old, then I wonder if you could be hitting MDEV-20673, which was fixed by changing our mariadb_repo_setup script a while ago.

If that is your problem, then it may help to run the mariadb_repo_setup script to reconfigure your repository, as explained here: https://mariadb.com/kb/en/mariadb-package-repository-setup-and-usage/

e.g.:

curl -LsS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup |
    sudo bash -s -- --mariadb-server-version="mariadb-10.5"

Comment by Alexey Bychko (Inactive) [ 2021-09-21 ]

the issue is confirmed on RHEL-8.

installed packages:

mariadb-connector-c-3.1.11-2.el8_3.x86_64
mariadb-connector-c-config-3.1.11-2.el8_3.noarch
mariadb-connector-c-devel-3.1.11-2.el8_3.x86_64

the following is errored as per description:

# yum install MariaDB-shared MariaDB-devel
Error:
 Problem: problem with installed package mariadb-connector-c-devel-3.1.11-2.el8_3.x86_64
  - package mariadb-connector-c-devel-3.0.7-1.el8.x86_64 requires mariadb-connector-c = 3.0.7-1.el8, but none of the providers can be installed
  - package mariadb-connector-c-devel-3.1.11-2.el8_3.x86_64 conflicts with mysql-devel provided by MariaDB-devel-10.5.12-1.el8.x86_64
  - package MariaDB-shared-10.5.12-1.el8.x86_64 obsoletes mariadb-connector-c provided by mariadb-connector-c-3.0.7-1.el8.i686
  - package MariaDB-shared-10.5.12-1.el8.x86_64 obsoletes mariadb-connector-c provided by mariadb-connector-c-3.0.7-1.el8.x86_64
  - cannot install the best candidate for the job

the best way is to set alternative name for devel package, to do not create more provides:

ALTERNATIVE_NAME("devel" "mariadb-connector-c-devel" ${MARIADB_CONNECTOR_C_VERSION}-1)

Comment by Alexey Bychko (Inactive) [ 2021-09-21 ]

fixed in 25d6bbcd5172eb9af0a68be11fb662457a7d572b

Comment by mark f edwards [ 2021-09-22 ]

i still see:

  1. dnf -y install mariadb-connector-c-devel ;
    Last metadata expiration check: 0:50:50 ago on Wed 22 Sep 2021 06:53:05 PM
    EDT.
    Error:
    Problem: problem with installed package MariaDB-devel-10.5.12-1.el8.x86_64
  • package mariadb-connector-c-devel-3.1.11-2.el8_3.x86_64 conflicts with
    mysql-devel provided by MariaDB-devel-10.5.12-1.el8.x86_64
  • package mariadb-connector-c-devel-3.1.11-2.el8_3.x86_64 conflicts with
    mysql-devel provided by MariaDB-devel-10.5.10-1.el8.x86_64
  • package mariadb-connector-c-devel-3.1.11-2.el8_3.x86_64 conflicts with
    mysql-devel provided by MariaDB-devel-10.5.11-1.el8.x86_64
  • cannot install the best candidate for the job
    (try to add '--allowerasing' to command line to replace conflicting
    packages or '-skip-broken' to skip uninstallable packages or '-nobest' to
    use not only best candidate packages)

[root@edwardsmarkf reeval_section]# dnf list installed | grep mariadb ;
MariaDB-backup.x86_64 10.5.12-1.el8
@mariadb-main
MariaDB-client.x86_64 10.5.12-1.el8
@mariadb-main
MariaDB-common.x86_64 10.5.12-1.el8
@mariadb-main
MariaDB-devel.x86_64 10.5.12-1.el8
@mariadb-main
MariaDB-server.x86_64 10.5.12-1.el8
@mariadb-main
MariaDB-shared.x86_64 10.5.12-1.el8
@mariadb-main
galera-4.x86_64 26.4.9-1.el8
@mariadb-main

Thank you,

Mark Edwards

On Tue, Sep 21, 2021 at 2:41 AM Alexey Bychko (Jira) <jira@mariadb.org>

Comment by Alexey Bychko (Inactive) [ 2021-09-23 ]

edwardsmarkf
the fix is pushed to repository and will be available with next released version. currently available packages are not rebuilt to include the fix

please see FixVersions field - there is 10.5.13, you still have 10.5.12

Comment by mark f edwards [ 2021-09-23 ]

thanks – i noticed that after i sent the email. THANK YOU for maintaining
this package.

Thank you,

Mark Edwards

On Thu, Sep 23, 2021 at 1:32 AM Alexey Bychko (Jira) <jira@mariadb.org>

Generated at Thu Feb 08 09:22:54 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.