https://bugs.exim.org/show_bug.cgi?id=2165
Phil Pennock <[email protected]> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED Assignee|[email protected] |[email protected] --- Comment #6 from Phil Pennock <[email protected]> --- 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. -- ## List details at https://lists.exim.org/mailman/listinfo/exim-dev Exim details at http://www.exim.org/ ##
