[debian-mysql] Fixing the jessie->stretch upgrade path

Ondřej Surý ondrej at sury.org
Fri May 12 12:09:02 UTC 2017

On Fri, May 12, 2017, at 13:31, Norvald H. Ryeng wrote:
> On Fri, 12 May 2017 11:26:13 +0200
> Ondřej Surý <ondrej at sury.org> wrote:
> > Dear release team and fellow MySQL/MariaDB maintainers,
> > 
> > the situation in stretch in regards to clean upgrade path from jessie
> > is a little bit unfortunate. It works for most cases when something
> > depends on default-mysql-server and pulls it as a dependency. But in
> > situations where mysql-server was the top dependency, it simply
> > uninstalls mysql-server-5.5 without any replacement.
> > 
> > I understand the reasons why we are here, but the situation where user
> > needs to do:
> > apt-get update
> > # apt-get upgrade
> > apt-get install default-mysql-server
> > apt-get dist-upgrade
> > 
> > is very inconvenient for the users and I foresee this will cause a lot
> > of complaints, because it's quite common to run just "mysql-server" on
> > the server.
> > 
> > Therefore I am proposing a one time fix specifically targeted at
> > stretch. I would like to prepare 'mysql-transitional' package that
> > will create a couple of dummy/transitional packages structured like
> > this:
> > 
> > mysql-server depends on default-mysql-server
> > mysql-client depends on default-mysql-client
> > 
> > The version would be 5.5.999+mariadb, so it is always higher than
> > version in jessie, but always lower than version in sid, as I don't
> > want force epoch on mysql-5.7.
> I agree that this sounds like it will work for stretch, and it's much
> better than bumping epoch on mysql-5.7.
> As you say, it's a one time fix, but I'm a bit concerned about what
> happens when those packages again are provided by MySQL. Let's think
> through what will happen in buster. There are three options:

And all of them would be easily solved by having the mariadb-server-10.X
and mariadb-client-10.X Conflicts with mysql-server and mysql-client.

> 1) Buster contains only MariaDB. Will these packages also be in buster?
> If not, what happens on upgrade from stretch to buster? Will we have
> the same problem again?

default-mysql-* will already be installed, it will pull new
mariadb-*-10.x packages and mysql-server/mysql-client will be removed.
Nothing must depend on mysql-server/mysql-client already, so those will
be just dangling packages ready to be removed.

> 2) Buster contains both MySQL and MariaDB. MariaDB is default. The
> mysql-server and mysql-client packages are provided by MySQL, but
> default-mysql-server and default-mysql-client point to MariaDB. How
> will the upgrade go? Some users have installed mysql-server or
> mysql-client explicitly, while others have installed a different
> package that depends on default-mysql-server or default-mysql-client.

I don't think this is going to happen, but if it does, we will have to
make MariaDB and MySQL coinstallable with each other, because the
packages might depend on specific flavour.

> 3) Buster contains both MySQL and MariaDB. MySQL is default. The
> mysql-server and mysql-client packages are provided by MySQL, and the
> default-mysql-server and default-mysql-client packages point to MySQL.
> I assume the dist-upgrade will move users back to MySQL, but will there
> be other problems?

Same as 2).

Ondřej Surý <ondrej at sury.org>
Knot DNS (https://www.knot-dns.cz/) – a high-performance DNS server
Knot Resolver (https://www.knot-resolver.cz/) – secure, privacy-aware,
fast DNS(SEC) resolver
Vše pro chleba (https://vseprochleba.cz) – Mouky ze mlýna a potřeby pro
pečení chleba všeho druhu

More information about the pkg-mysql-maint mailing list