https://bugs.exim.org/show_bug.cgi?id=2165
Phil Pennock <pdp@???> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |ASSIGNED
Assignee|nigel@??? |pdp@???
--- Comment #6 from Phil Pennock <pdp@???> ---
Choosing a repo from
https://downloads.mariadb.org/mariadb/repositories/ we
get:
% vagrant up stretch
% vagrant ssh stretch
$ sudo apt-get install software-properties-common dirmngr
$ sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com
0xF1656F24C74CD1D8
$ sudo add-apt-repository 'deb [arch=amd64,i386,ppc64el]
http://mirrors.syringanetworks.net/mariadb/repo/10.2/debian stretch main'
$ sudo apt update
$ sudo apt install mariadb-server
$ mysql --version
mysql Ver 15.1 Distrib 10.2.8-MariaDB, for debian-linux-gnu (x86_64) using
readline 5.2
So far, no client headers.
$ sudo apt install libmariadb-dev
Confirmed. More, this package claims to "Provides"
"libmariadbclient-dev-compat", so it is asserting itself to be a compatibility
package. I think their idea of compatibility is not compatible with my idea of
compatibility.
At this point, half-assing it with tinkering with include paths is no longer
tenable. If things keep changing like this then clearly we're not using the
supported public APIs.
I am struggling to find any documentation aimed at client developers on how to
use the API, to figure out what we should be doing.
Can someone find / point us at documentation please?
Failing that, I _think_ that the correct solution is:
#include <mysql.h>
#ifdef LIBMARIADB
# include <mariadb_version.h>
#else
# include <mysql_version.h>
#endif
and then in mysql_version_report(), which is the only place we're using this,
to let sysadmins see what's actually being used, switch again on LIBMARIADB,
report MARIADB_CLIENT_VERSION_STR and not the compilation comment. We can
change the wording to mention MariaDB.
Is it plausible that this is a bug in the MariaDB version of mysql_config
(*not* mariadb_config) which should have added the server/ sub-directory to
--cflags when the content was moved?
Since we don't actually use mysql_config (I never use MySQL and I think I'm the
only one who has done pkgconf-style migration work) ... is it plausible that
instead of pulling in server/, we should just change src/EDITME and the
examples for LOOKUP_INCLUDE to say something like:
## If using MariaDB 10.2.8 or newer, then:
# LOOKUP_INCLUDE=-I/usr/include/mysql -I/usr/include/mysql/server
ie the API expects the server dir to have been added to the search-path, rather
than to appear in import statements? This hypothesis seems to be borne out by
"grep include *" inside /usr/include/mysql/server, where none of the imports
include "server/".
--
You are receiving this mail because:
You are on the CC list for the bug.