← Back to team overview

maria-developers team mailing list archive

Re: [Commits] Rev 3653: MDEV-3882 .deb upgrade from mysql to mariadb fails due to apt-get considering it a downgrade. in file:///home/hf/wmar/mdev-3882/

 

<holyfoot@xxxxxxxxxxxx> writes:

> message:
>   MDEV-3882 .deb upgrade from mysql to mariadb fails due to apt-get considering it a downgrade.
>           The libmysqlclient18 package and all the dependencies on it removed.
>           The libmariadbclient18 set to provide the libmysqlclient's functions and
>           conflicts with all the libmysqlclients.
>   

> === modified file 'debian/dist/Debian/control'
> --- a/debian/dist/Debian/control	2012-08-23 13:32:03 +0000
> +++ b/debian/dist/Debian/control	2013-01-29 09:56:54 +0000
> @@ -13,7 +13,9 @@ Vcs-Bzr: bzr://lp:maria
>  Package: libmariadbclient18
>  Section: libs
>  Architecture: any
> -Depends: mariadb-common, libmysqlclient18 (= ${source:Version}), ${shlibs:Depends}, ${misc:Depends}
> +Depends: mariadb-common, ${shlibs:Depends}, ${misc:Depends}
> +Provides: libmysqlclient18
> +Conflicts: libmysqlclient10, libmysqlclient12, libmysqlclient14, libmysqlclient15, libmysqlclient16, libmysqlclient18

Are you sure this works?

The original reason for introducing a libmysqlclient18 package in the first
place (with all the problems in introduces) is that there are standard
packages with a versioned dependency on libmysqlclient18. And versioned
dependencies can not (used not to?) be satisfied by a Provides:

Eg. the following gives 143 packages with versioned dependencies on
libmysqlclient18:

    apt-cache rdepends libmysqlclient18|(read x; read x; while read x; do apt-cache show $x|grep ^Depends: | perl -nle 'print "'"$x:"' $1" if /libmysqlclient18[ \t]*\(([^)]+)\)/' ; done)

You need to test a number of these that they are still installable when
MariaDB is installed, also on old .deb distros (ie. Ubuntu 8.04).

On the other hand, if this works then it is a nice solution for sure, and
could also solve other issues.

A related issue is that we might get the distro mysql-common package or the
MariaDB mysql-common package somewhat at random, depending on which has the
newer version number on any given day. I believe we made it so we work with
the distro mysql-common package as well as the MariaDB one, it it will not
necessarily cause any problems. It does seem a bit of a mess though, maybe we
should just drop the mysql-common package from our repos?

 - Kristian.