Last-Update: 2019-07-27
Forwarded: not-needed
Author: Dmitry Smirnov <onlyjob@member.fsf.org>
Description: fix FTBFS with MariaDB. This patch has been taken from Fedora's SRPM.

--- a/cppconn/version_info.h.cmake
+++ b/cppconn/version_info.h.cmake
@@ -41,6 +41,7 @@
 /* Driver version info */
 
 #define MYCPPCONN_STATIC_MYSQL_VERSION     "@MYSQL_VERSION@"
 #define MYCPPCONN_STATIC_MYSQL_VERSION_ID  @MYSQL_NUM_VERSION@
+#define MYCPPCONN_MARIADB_BUILD
 
 #define MYCPPCONN_BOOST_VERSION            @Boost_VERSION@
--- a/driver/mysql_connection.cpp
+++ b/driver/mysql_connection.cpp
@@ -239,9 +239,9 @@
     {"OPT_ENABLE_CLEARTEXT_PLUGIN", MYSQL_ENABLE_CLEARTEXT_PLUGIN, false},
     {"OPT_CAN_HANDLE_EXPIRED_PASSWORDS", MYSQL_OPT_CAN_HANDLE_EXPIRED_PASSWORDS, true},
     {"OPT_CONNECT_ATTR_RESET",      MYSQL_OPT_CONNECT_ATTR_RESET, true},
     {"OPT_RECONNECT",               MYSQL_OPT_RECONNECT, true},
-#if MYCPPCONN_STATIC_MYSQL_VERSION_ID < 80000
+#if MYCPPCONN_STATIC_MYSQL_VERSION_ID < 80000 || defined(MYCPPCONN_MARIADB_BUILD)
     {"sslVerify",                   MYSQL_OPT_SSL_VERIFY_SERVER_CERT, false}, // Deprecated
     {"sslEnforce",                  MYSQL_OPT_SSL_ENFORCE, false} // Deprecated
 #else
     {"sslVerify",                   MYSQL_OPT_SSL_MODE, true}, // Deprecated
@@ -261,10 +261,10 @@
 #if MYCPPCONN_STATIC_MYSQL_VERSION_ID >= 50700
     {"OPT_MAX_ALLOWED_PACKET",  MYSQL_OPT_MAX_ALLOWED_PACKET, false},
     {"OPT_NET_BUFFER_LENGTH",   MYSQL_OPT_NET_BUFFER_LENGTH, false},
 #endif
-    {"OPT_SSL_MODE",            MYSQL_OPT_SSL_MODE    , false},
-#if MYCPPCONN_STATIC_MYSQL_VERSION_ID >= 80000
+    //{"OPT_SSL_MODE",            MYSQL_OPT_SSL_MODE    , false},
+#if MYCPPCONN_STATIC_MYSQL_VERSION_ID >= 80000 && !defined(MYCPPCONN_MARIADB_BUILD)
     {"OPT_RETRY_COUNT",         MYSQL_OPT_RETRY_COUNT, false},
 #endif
   };
 /* Array for mapping of string connection options to mysql_options call */
@@ -768,9 +768,9 @@
       }
     } else if (!it->first.compare("OPT_CONNECT_ATTR_RESET")) {
       proxy->options(MYSQL_OPT_CONNECT_ATTR_RESET, 0);
 
-#if MYCPPCONN_STATIC_MYSQL_VERSION_ID > 80000
+#if MYCPPCONN_STATIC_MYSQL_VERSION_ID > 80000 && !defined(MYCPPCONN_MARIADB_BUILD)
 
     } else if (!it->first.compare("sslVerify")) {
 
       ssl_mode ssl_mode_val = (it->second).get< bool >() ? SSL_MODE_VERIFY_CA
--- a/driver/mysql_connection_options.h
+++ b/driver/mysql_connection_options.h
@@ -40,9 +40,9 @@
 {
 
 enum MySQL_Connection_Options
 {
-#if MYCPPCONN_STATIC_MYSQL_VERSION_ID >= 80000
+#if MYCPPCONN_STATIC_MYSQL_VERSION_ID >= 80000 && !defined(MYCPPCONN_MARIADB_BUILD)
   MYSQL_OPT_CONNECT_TIMEOUT, MYSQL_OPT_COMPRESS, MYSQL_OPT_NAMED_PIPE,
   MYSQL_INIT_COMMAND, MYSQL_READ_DEFAULT_FILE, MYSQL_READ_DEFAULT_GROUP,
   MYSQL_SET_CHARSET_DIR, MYSQL_SET_CHARSET_NAME, MYSQL_OPT_LOCAL_INFILE,
   MYSQL_OPT_PROTOCOL, MYSQL_SHARED_MEMORY_BASE_NAME, MYSQL_OPT_READ_TIMEOUT,
@@ -85,10 +85,10 @@
   MYSQL_OPT_CAN_HANDLE_EXPIRED_PASSWORDS,
   MYSQL_OPT_SSL_ENFORCE,
 #if MYCPPCONN_STATIC_MYSQL_VERSION_ID >= 50700
   MYSQL_OPT_MAX_ALLOWED_PACKET, MYSQL_OPT_NET_BUFFER_LENGTH,
-  MYSQL_OPT_TLS_VERSION,
-  MYSQL_OPT_SSL_MODE
+  MYSQL_OPT_TLS_VERSION
+//  MYSQL_OPT_SSL_MODE
 #endif //MYCPPCONN_STATIC_MYSQL_VERSION_ID >= 50700
 #endif //MYCPPCONN_STATIC_MYSQL_VERSION_ID >= 80000
 
 };
--- a/driver/mysql_resultset_metadata.h
+++ b/driver/mysql_resultset_metadata.h
@@ -37,9 +37,9 @@
 
 #include <cppconn/resultset_metadata.h>
 #include <cppconn/version_info.h>
 
-#if (MYCPPCONN_STATIC_MYSQL_VERSION_ID > 80004)
+#if (MYCPPCONN_STATIC_MYSQL_VERSION_ID > 80004 && !defined(MYCPPCONN_MARIADB_BUILD))
 struct MYSQL_FIELD;
 #else
 struct st_mysql_field;
 #define MYSQL_FIELD st_mysql_field
--- a/driver/nativeapi/libmysql_static_proxy.cpp
+++ b/driver/nativeapi/libmysql_static_proxy.cpp
@@ -325,9 +325,9 @@
 int
 LibmysqlStaticProxy::get_option(MYSQL * mysql, enum mysql_option option, const void *arg)
 {
 #if not defined MARIADB_BASE_VERSION && MYSQL_VERSION_ID >= 50703
-  if (::mysql_get_option(mysql, option, arg)) {
+  if (::mysql_get_option(mysql, option, const_cast<void*>(arg))) {
     throw sql::InvalidArgumentException("Unsupported option provided to mysql_get_option()");
   } else {
     return 0;
   }
--- a/driver/nativeapi/mysql_native_connection_wrapper.cpp
+++ b/driver/nativeapi/mysql_native_connection_wrapper.cpp
@@ -96,13 +96,13 @@
 #if MYCPPCONN_STATIC_MYSQL_VERSION_ID >= 50700
   case sql::mysql::MYSQL_OPT_MAX_ALLOWED_PACKET: return ::MYSQL_OPT_MAX_ALLOWED_PACKET;
   case sql::mysql::MYSQL_OPT_NET_BUFFER_LENGTH: return ::MYSQL_OPT_NET_BUFFER_LENGTH;
   case sql::mysql::MYSQL_OPT_TLS_VERSION: return ::MYSQL_OPT_TLS_VERSION;
-  case sql::mysql::MYSQL_OPT_SSL_MODE: return ::MYSQL_OPT_SSL_MODE;
+  //case sql::mysql::MYSQL_OPT_SSL_MODE: return ::MYSQL_OPT_SSL_MODE;
 #endif
 
 
-#if MYCPPCONN_STATIC_MYSQL_VERSION_ID >= 80000
+#if MYCPPCONN_STATIC_MYSQL_VERSION_ID >= 80000 && !defined(MYCPPCONN_MARIADB_BUILD)
   case sql::mysql::MYSQL_OPT_RETRY_COUNT: return ::MYSQL_OPT_RETRY_COUNT;
   case sql::mysql::MYSQL_OPT_GET_SERVER_PUBLIC_KEY: return ::MYSQL_OPT_GET_SERVER_PUBLIC_KEY;
   case sql::mysql::MYSQL_OPT_OPTIONAL_RESULTSET_METADATA: return ::MYSQL_OPT_OPTIONAL_RESULTSET_METADATA;
 #else
--- a/driver/nativeapi/mysql_native_connection_wrapper.h
+++ b/driver/nativeapi/mysql_native_connection_wrapper.h
@@ -59,9 +59,9 @@
   /* api should be declared before mysql here */
   boost::shared_ptr< IMySQLCAPI >	api;
 
 
-#if (MYCPPCONN_STATIC_MYSQL_VERSION_ID > 80004)
+#if (MYCPPCONN_STATIC_MYSQL_VERSION_ID > 80004 && !defined(MYCPPCONN_MARIADB_BUILD))
 struct MYSQL* mysql;
 #else
 struct st_mysql* mysql;
 #endif
--- a/driver/nativeapi/mysql_native_resultset_wrapper.h
+++ b/driver/nativeapi/mysql_native_resultset_wrapper.h
@@ -37,9 +37,9 @@
 
 #include "native_resultset_wrapper.h"
 #include "../cppconn/version_info.h"
 
-#if (MYCPPCONN_STATIC_MYSQL_VERSION_ID > 80004)
+#if (MYCPPCONN_STATIC_MYSQL_VERSION_ID > 80004 && !defined(MYCPPCONN_MARIADB_BUILD))
 struct MYSQL_RES;
 #else
 struct st_mysql_res;
 #define MYSQL_RES st_mysql_res
--- a/driver/nativeapi/mysql_native_statement_wrapper.h
+++ b/driver/nativeapi/mysql_native_statement_wrapper.h
@@ -37,9 +37,9 @@
 #include <boost/shared_ptr.hpp>
 
 #include "native_statement_wrapper.h"
 
-#if (MYCPPCONN_STATIC_MYSQL_VERSION_ID > 80004)
+#if (MYCPPCONN_STATIC_MYSQL_VERSION_ID > 80004 && !defined(MYCPPCONN_MARIADB_BUILD))
 struct MYSQL_STMT;
 #else
 struct st_mysql_stmt;
 #define MYSQL_STMT st_mysql_stmt
--- a/driver/nativeapi/native_resultset_wrapper.h
+++ b/driver/nativeapi/native_resultset_wrapper.h
@@ -40,9 +40,9 @@
 #endif
 
 #include "../cppconn/version_info.h"
 
-#if (MYCPPCONN_STATIC_MYSQL_VERSION_ID > 80004)
+#if (MYCPPCONN_STATIC_MYSQL_VERSION_ID > 80004 && !defined(MYCPPCONN_MARIADB_BUILD))
 struct MYSQL_FIELD;
 #else
 struct st_mysql_field;
 #define MYSQL_FIELD st_mysql_field
--- a/driver/nativeapi/native_statement_wrapper.h
+++ b/driver/nativeapi/native_statement_wrapper.h
@@ -41,9 +41,9 @@
 
 #include "../mysql_statement_options.h"
 #include "../cppconn/version_info.h"
 
-#if (MYCPPCONN_STATIC_MYSQL_VERSION_ID > 80004)
+#if (MYCPPCONN_STATIC_MYSQL_VERSION_ID > 80004 && !defined(MYCPPCONN_MARIADB_BUILD))
 struct MYSQL_BIND;
 struct MYSQL_RES;
 #else
 struct st_mysql_bind;
