On Mon, 30 Jan 2017 09:28:52 +0000 Robie Basak <robie.ba...@ubuntu.com> wrote: > I think the root cause here is that both MySQL and MariaDB packaging > "own" /var/lib/mysql. This causes confusion because even though the > packages Conflict, one can still be purged while the other is installed. > > I think that sharing /var/lib/mysql in this way leads to a slew of bugs, > and we should fix it in the long term so that the packaging doesn't do > this. > > This is https://launchpad.net/bugs/1490071 and > https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=841345 > > Unfortunately fixing this properly is quite involved. I've had time to > think up a solution, but not had time to code it up yet, and I don't > expect to have the necessary time in the next few months.
I don't know what solution you had in mind, but for solving the shared ownership of /var/lib/mysql I'd suggest to create a new package, e.g. "var-lib-mysql", from src:mysql-defaults. * All server packages (but not server-core packages) will depend on this new package. * The new package should have Breaks against all server packages that existed in the past and didn't conform to this new scheme. * The new package will be handling the removal of the database directory upon purge. No other place should care about this in the future. So the purge logic is in one place only and does need to be kept in sync across several packages. * Abusing mysql-common for this task is not a good idea since mysql-common is being depended upon by client packages. It may be a bit late to get this into stretch, but not impossible, since this is "fallout" from the mysql->mariadb transition. But it needs to be acted quickly, with an unblock filed ideally before the freeze on Feb 5th. It will not help the jessie->stretch upgrades, but it will make the stretch->buster upgrades more smooth. And if it's only mariadb-server-10.1 -> mariadb-server-10.2 In case you need to deactivate the postrm purge action of a removed but not purged old m*-x.y-server package, you could try something like sed -i '2iif [ "$1" = "purge" ]; then exit 0; fi # old postrm script deactivated by $PKG to prevent postrm purge messing around with /var/lib/mysql, see #853008 for details' $OLD_OTHER_POSTRM (unwrap, must be a single line) Andreas