From Fedora Project Wiki

This is a proposal for Packages that require the MySQL/MariaDB client library -- those packages should use mariadb-connector-c, instead of mariadb-devel used historically.

Longer story: Historically, MySQL and MariaDB packages have shipped both, the server daemon and the client library. Applications and libraries, that wanted to use some of the client functions to talk to the server need to link against the client library, unless they implement whole MySQL protocol. Since we've had a monolytic Fedora distribution, it was not important where the client package came from -- in the latest releases, the client library has come from the big MariaDB package, but was able to be installed separately.

With the latest MariaDB upstream release the client library was reimplemented and is also available as a separate package (also in Fedora under mariadb-connector-c). The same library is also part of the mariadb component, because it's necessary for the server packge.

With dawn of the Modularity we break the monolythic distribution into separate stacks. However, having a package that needs to connect to a MySQL/MariaDB database will be still quite common use case. The aim is that MySQL and MariaDB stacks will provide only the server features, and the client library will be part of the particular modules (or will be part of the common base platform). In that scenario it will be much beneficial for the dependent packages to build against mariadb-connector-c. Some of the benefits are:

  • Depending on a server package (mariadb) would pull a lot of unnecessary dependencies.
  • Since MySQL's upstream does not share all the information about CVEs, it's sometimes hard to distinguish whether the security issue is only exploitable on the server part, or can influence also the client part.
  • Depending on a small project, separated from the large MariaDB codebase will also mean less updates in the future.
  • Project mariadb-connector-c is licensed under LGPL2+, which is more suitable for a client library.

Package mariadb-connector-c was made to be as compatible as possible with the previous implementation from MariaDB client library, so depended packages should not have big troubles moving to the new package.

Once no packages in Fedora use mariadb-libs, this package will be removed from mariadb package.

To sum it up, packages that require the MySQL/MariaDB client library should use mariadb-connector-c.