← Back to team overview

maria-developers team mailing list archive

Re: Debian/Ubuntu packages


I’ve submitted a merge request to fix the Debian/Ubuntu packaging issues described in MDEV-5252. I eliminated the mysql-common and libmysqlclient18 packages from the mariadb source package and altered the package relationships to conflict with MySQL. That enabled fresh installation of MariaDB, since the mysql-common and libmysqlclient18 packages from MySQL will no longer cause conflicts.

There are many packages that depend on mysql-server, mysql-client, and libmysqlclient18. You can see a list of them by running, for example: apt-cache showpkg libmysqlclient18

If we want people to be able to use MariaDB, we need to provide packages with those names. We can't use "Provides" statements (which create virtual packages) in our dpkg control file because many of the packages that depend on libmysqlclient18, mysql-client, and mysql-server specify a minimum version. When a version spec is present, virtual packages are ignored. I have created a separate package, maria-compat, that creates very simple dummy packages for libmysqlclient18, mysql-client, and mysql-server. The dummy packages have version number 9.999 to override anything MySQL might produce for a long time, and they depend on their MariaDB equivalents. This will ensure that MariaDB is installed when a user has added the MariaDB repository to their APT configuration and installs any package that depends on MySQL.

I consider this a temporary solution. To resolve this permanently, we should discuss handling conflicting database engines with the Debian/Ubuntu distribution maintainers. Additionally, we should reach out to everyone producing packages that depend on MySQL packages and request that they add the equivalent MariaDB packages as alternate dependencies.

The merge request has a more detailed description and can be viewed here: https://code.launchpad.net/~mcoleman/maria/maria-fix-bug5190/+merge/194226


On Oct 30, 2013, at 6:19 PM, Sergei Golubchik <serg@xxxxxxxxxxx> wrote:

> Hi, Matt!
> On Oct 30, Matt Coleman wrote:
>> I’m working on fixing the dependency issues with MariaDB 5.5.33a vs
>> MySQL 5.5.34.
>> When I’m ready to publish my fix, what version number should I give
>> it? The current packages have the version 5.5.33a+maria-1~CODENAME,
>> where CODENAME is the code name for the Debian or Ubuntu release (ie.
>> “sid” or “precise”, etc). Since I am not changing any code, it seems
>> like like 5.5.33a should remain the same. I expected that the fixed
>> package would be 5.5.33a+maria-2~CODENAME, but autobake-deb.sh
>> assembles that version string and the 1 is hardcoded, not set by a
>> variable. The two variables RELEASE_NAME and RELEASE_EXTRA can insert
>> text between “+maria-“ and “1”. What is this project’s versioning
>> convention in regards to changes that only affect the packaging?
> You're right, it should be "2".
> "1" was hard-coded by the original author (like, 3 or 4 years ago?) and
> we've never had a problem with that, as we never needed to release a new
> package, where only the packaging was changed, not the code.
> It's the first time now, so feel free to replace the hard-coded 1 with a
> variable.
> Regards,
> Sergei