From 2841f5646cce2e2a965828ba9d9a78f3704c12d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Grubbstr=C3=B6m=20=28Grubba=29?= <grubba@grubba.org> Date: Fri, 17 Dec 2021 14:29:11 +0100 Subject: [PATCH] Configure [Mysql]: Survive MariaDB Connector/C 3.2.1 and later (CONC-509). MariaDB Connector/C 3.2.1 CONC-509 changed the value returned from mysql_get_client_version(3) from MYSQL_VERSION_ID to MARIADB_PACKAGE_VERSION_ID. Fixes support for MariaDB from 2021-05-31 and later. --- .gitattributes | 1 - src/modules/Mysql/configure.in | 19 ++++++++++++++++--- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/.gitattributes b/.gitattributes index 947719b11c..ee1420a1f5 100644 --- a/.gitattributes +++ b/.gitattributes @@ -561,7 +561,6 @@ testfont binary /src/modules/Msql/version.h foreign_ident /src/modules/Mysql/Makefile.in foreign_ident /src/modules/Mysql/acconfig.h foreign_ident -/src/modules/Mysql/configure.in foreign_ident /src/modules/Mysql/dummy.c foreign_ident /src/modules/Mysql/mysql.c foreign_ident /src/modules/Mysql/precompiled_mysql.h foreign_ident diff --git a/src/modules/Mysql/configure.in b/src/modules/Mysql/configure.in index f6e06a6846..63964a4bda 100644 --- a/src/modules/Mysql/configure.in +++ b/src/modules/Mysql/configure.in @@ -1,5 +1,5 @@ # -# $Id: configure.in,v 1.62 2010/05/03 11:26:21 grubba Exp $ +# $Id$ # # Configure script for the mysql-module # @@ -324,9 +324,22 @@ int main(int argc, char *argv[]) { #ifdef MYSQL_VERSION_ID unsigned long ver = mysql_get_client_version(); - if((ver/100) != (MYSQL_VERSION_ID/100)) { + unsigned long expected_ver = MYSQL_VERSION_ID; +#if defined(MARIADB_PACKAGE_VERSION_ID) && (MARIADB_PACKAGE_VERSION_ID >= 30201) + /* From MariaDB/mysql_get_client_version(3) (CONC-509/CONC-554): + * + * Note: Since MariaDB Server 10.2.6 and MariaDB Connector/C 3.0.1 the + * client library is bundled with server package and returns the server + * package version. + * + * The above however does not seem to be true, and the change instead + * happened a few commits before the bump to MariaDB Connector/C 3.2.1. + */ + expected_ver = MARIADB_PACKAGE_VERSION_ID; +#endif + if((ver/100) != (expected_ver/100)) { fprintf(stderr, "Version mismatch: compile=%lu, run=%lu\n", - (unsigned long)MYSQL_VERSION_ID, ver); + (unsigned long)expected_ver, ver); exit(1); } #endif -- GitLab