Hi Stefan, On Sat, Nov 26, 2016 at 11:40:34PM +0100, Stefan Fritsch wrote: > Are the mariadb client libraries compatible with current mysql servers?
I believe this is true at the moment, though as one might reasonably expect I believe this is "unsupported" by MySQL upstream. For us, that probably just means that they won't accept bugs unless they are reproduced with MySQL client libraries. The MariaDB client library fork of libmysqlclient hasn't (AFAIK) really changed since they forked from MySQL. I believe a different MariaDB client library API exists that is more actively maintained by MariaDB upstream, but I don't know of any commitments MariaDB make about compatibility with current MySQL servers, protocols or libraries. If this turns out not to be true (an incompatibility is found), I'm not sure what MariaDB upstream's view would be on fixing it. From a Debian packaging view, as one member of pkg-mysql-maint, my opinion would be to "wontfix" any bug that originates upstream about this type of incompatibility as a result of mixing MySQL and MariaDB as "upstreams don't support this". > If > yes, it is expected that this changes in the future or does mariadb work to > stay compatible? In my view, we shouldn't make any assumptions about future compatibility whatsoever except that one particular version of MariaDB is able to take and use the on-disk database format of one particular version of MySQL for a one-off, one-way migration. AFAIK, we have seen no evidence or commitment that either upstream are interested in any form of convergence in library API or ABI, wire protocol or database format in the future. So in making technical plans for the future we should assume that they will diverge and not rely on any of this even if it happens to work right now. > If no, are there any plans to make libmariadbclient-dev and > libmysqlclient-dev co-installable so that apr-util could build one driver for > mariadb and one for myqsl? No current plans. They ship conflicting files in /usr/include/mysql/ (both taking the #include <mysql/*> namespace). AIUI, these headers have already diverged upstream. In packaging, we have only gone as far as to avoid co-installability conflicts in resulting binaries at runtime, and we do conflict at build time as you discovered. I suppose we could theoretically rename all of /usr/include/mysql to /usr/include/mariadb in libmariadbclient-dev, and then have libmariadbclient-dev-compat provide a /usr/include/mysql -> /usr/include/mariadb symlink. I'm not sure what Otto's opinion on this would be. I'm also not sure what additional changes we'd need to do to make libmariadbclient-dev usable with the -compat. Right now if a reverse build dep wants to use libmariadbclient-dev without the -compat, the only change it needs is to link with -lmariadbclient instead of -lmysqlclient. There would be a few (probably minor) additional things to resolve, such as the mysql_config binary, mysql.m4, etc. Robie
signature.asc
Description: PGP signature