summaryrefslogtreecommitdiff
path: root/external/mariadb-connector-c
diff options
context:
space:
mode:
authorMichael Stahl <mstahl@redhat.com>2017-09-14 13:30:05 +0200
committerMichael Stahl <mstahl@redhat.com>2017-09-15 10:59:56 +0200
commit871d75e9c2c82d4b3ffbbff80f1dfa7a823e4f3d (patch)
treeba997ca727e6eccaea4b1877f2b4b1f682facaba /external/mariadb-connector-c
parent0bb764854361249c60ea31c5366a91dcd938c747 (diff)
consistent naming of externals: libmariadb -> mariadb-connector-c
The used version is actually named mariadb_client but since 2.1.0 upstream calls it MariaDB Connector/C. Change-Id: I51b12a9be55151919585dec91a5fc802ff4fc86b Reviewed-on: https://gerrit.libreoffice.org/42295 Reviewed-by: Michael Stahl <mstahl@redhat.com> Tested-by: Michael Stahl <mstahl@redhat.com>
Diffstat (limited to 'external/mariadb-connector-c')
-rw-r--r--external/mariadb-connector-c/Makefile7
-rw-r--r--external/mariadb-connector-c/Module_mariadb-connector-c.mk17
-rw-r--r--external/mariadb-connector-c/README16
-rw-r--r--external/mariadb-connector-c/StaticLibrary_mariadb-connector-c.mk112
-rw-r--r--external/mariadb-connector-c/UnpackedTarball_mariadb-connector-c.mk36
-rw-r--r--external/mariadb-connector-c/configs/linux_my_config.h278
-rw-r--r--external/mariadb-connector-c/configs/mac_my_config.h277
-rw-r--r--external/mariadb-connector-c/configs/mysql_version.h28
-rw-r--r--external/mariadb-connector-c/mariadb-CONC-104.patch.149
-rw-r--r--external/mariadb-connector-c/mariadb-inline.patch.123
-rw-r--r--external/mariadb-connector-c/mariadb-msvc.patch.113
-rw-r--r--external/mariadb-connector-c/mariadb-swap.patch24
12 files changed, 880 insertions, 0 deletions
diff --git a/external/mariadb-connector-c/Makefile b/external/mariadb-connector-c/Makefile
new file mode 100644
index 000000000000..e4968cf85fb6
--- /dev/null
+++ b/external/mariadb-connector-c/Makefile
@@ -0,0 +1,7 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+
+module_directory:=$(dir $(realpath $(firstword $(MAKEFILE_LIST))))
+
+include $(module_directory)/../../solenv/gbuild/partial_build.mk
+
+# vim: set noet sw=4 ts=4:
diff --git a/external/mariadb-connector-c/Module_mariadb-connector-c.mk b/external/mariadb-connector-c/Module_mariadb-connector-c.mk
new file mode 100644
index 000000000000..e6608a01151c
--- /dev/null
+++ b/external/mariadb-connector-c/Module_mariadb-connector-c.mk
@@ -0,0 +1,17 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+
+$(eval $(call gb_Module_Module,mariadb-connector-c))
+
+$(eval $(call gb_Module_add_targets,mariadb-connector-c,\
+ StaticLibrary_mariadb-connector-c \
+ UnpackedTarball_mariadb-connector-c \
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/external/mariadb-connector-c/README b/external/mariadb-connector-c/README
new file mode 100644
index 000000000000..03a1138b47f8
--- /dev/null
+++ b/external/mariadb-connector-c/README
@@ -0,0 +1,16 @@
+Update to new upstream bzr snapshot:
+
+Don't use 'bzr diff', it will not put renames in the diff in a way
+that patch understands.
+
+bzr -Ossl.cert_reqs=none branch lp:mariadb-native-client
+mv mariadb-native-client mariadb-native-client.trunk
+cp -R mariadb-native-client.trunk mariadb-native-client.release
+cd mariadb-native-client.release
+bzr revert -r mariadb-native-client-1.0.0
+cd ..
+diff -x .bzr -u --recursive -N mariadb-native-client.release/ mariadb-native-client.trunk/ > /path/to/libreoffice_tree/libmariadb/mariadb-trunk-NNN.patch
+sed -i -e 's@^\([+-]\{3\} \)mariadb-native-client.\(trunk\|release\)/@\1mariadb/@' /path/to/libreoffice_tree/libmariadb/mariadb-trunk-NNN.patch
+dos2unix -f /path/to/libreoffice_tree/libmariadb/mariadb-trunk-NNN.patch
+
+regenerate configs \ No newline at end of file
diff --git a/external/mariadb-connector-c/StaticLibrary_mariadb-connector-c.mk b/external/mariadb-connector-c/StaticLibrary_mariadb-connector-c.mk
new file mode 100644
index 000000000000..952f69a78d86
--- /dev/null
+++ b/external/mariadb-connector-c/StaticLibrary_mariadb-connector-c.mk
@@ -0,0 +1,112 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+
+$(eval $(call gb_StaticLibrary_StaticLibrary,mariadb-connector-c))
+
+$(eval $(call gb_StaticLibrary_set_warnings_not_errors,mariadb-connector-c))
+
+$(eval $(call gb_StaticLibrary_use_unpacked,mariadb-connector-c,mariadb-connector-c))
+
+$(eval $(call gb_StaticLibrary_set_include,mariadb-connector-c,\
+ $$(INCLUDE) \
+ -I$(call gb_UnpackedTarball_get_dir,mariadb-connector-c)/include \
+))
+
+# This is needed for MSVC 2008: it somehow finds a dlopen somewhere
+# but the static library then contains unreferenced symbols.
+# This macro enables a re-definition to native Win32 APIs in my_global.h.
+## TODO missing enable: -DHAVE_OPENSSL -D HAVE_COMPRESS
+## (but then need to add "-lssl -lcrypto -lz" to mysqlcppconn linking)
+$(eval $(call gb_StaticLibrary_add_cflags,mariadb-connector-c,-DHAVE_DLOPEN -D ENABLED_LOCAL_INFILE -D LIBMARIADB -D THREAD -DSQLITE_ENABLE_COLUMN_METADATA=1))
+
+$(eval $(call gb_StaticLibrary_add_generated_cobjects,mariadb-connector-c,\
+ UnpackedTarball/mariadb-connector-c/libmariadb/array \
+ UnpackedTarball/mariadb-connector-c/libmariadb/ma_dyncol \
+ UnpackedTarball/mariadb-connector-c/libmariadb/bchange \
+ UnpackedTarball/mariadb-connector-c/libmariadb/bmove \
+ UnpackedTarball/mariadb-connector-c/libmariadb/bmove_upp \
+ UnpackedTarball/mariadb-connector-c/libmariadb/my_charset \
+ UnpackedTarball/mariadb-connector-c/libmariadb/hash \
+ UnpackedTarball/mariadb-connector-c/libmariadb/violite \
+ UnpackedTarball/mariadb-connector-c/libmariadb/net \
+ UnpackedTarball/mariadb-connector-c/libmariadb/charset \
+ UnpackedTarball/mariadb-connector-c/libmariadb/ma_time \
+ UnpackedTarball/mariadb-connector-c/libmariadb/dbug \
+ UnpackedTarball/mariadb-connector-c/libmariadb/default \
+ UnpackedTarball/mariadb-connector-c/libmariadb/errmsg \
+ UnpackedTarball/mariadb-connector-c/libmariadb/my_vsnprintf \
+ UnpackedTarball/mariadb-connector-c/libmariadb/errors \
+ UnpackedTarball/mariadb-connector-c/libmariadb/getopt1 \
+ UnpackedTarball/mariadb-connector-c/libmariadb/getopt \
+ UnpackedTarball/mariadb-connector-c/libmariadb/get_password \
+ UnpackedTarball/mariadb-connector-c/libmariadb/int2str \
+ UnpackedTarball/mariadb-connector-c/libmariadb/is_prefix \
+ UnpackedTarball/mariadb-connector-c/libmariadb/libmariadb \
+ UnpackedTarball/mariadb-connector-c/libmariadb/list \
+ UnpackedTarball/mariadb-connector-c/libmariadb/llstr \
+ UnpackedTarball/mariadb-connector-c/libmariadb/longlong2str \
+ UnpackedTarball/mariadb-connector-c/libmariadb/mf_dirname \
+ UnpackedTarball/mariadb-connector-c/libmariadb/mf_fn_ext \
+ UnpackedTarball/mariadb-connector-c/libmariadb/mf_format \
+ UnpackedTarball/mariadb-connector-c/libmariadb/mf_loadpath \
+ UnpackedTarball/mariadb-connector-c/libmariadb/mf_pack \
+ UnpackedTarball/mariadb-connector-c/libmariadb/mf_path \
+ UnpackedTarball/mariadb-connector-c/libmariadb/mf_unixpath \
+ UnpackedTarball/mariadb-connector-c/libmariadb/mf_wcomp \
+ UnpackedTarball/mariadb-connector-c/libmariadb/mulalloc \
+ UnpackedTarball/mariadb-connector-c/libmariadb/my_alloc \
+ UnpackedTarball/mariadb-connector-c/libmariadb/my_compress \
+ UnpackedTarball/mariadb-connector-c/libmariadb/my_div \
+ UnpackedTarball/mariadb-connector-c/libmariadb/my_error \
+ UnpackedTarball/mariadb-connector-c/libmariadb/my_fopen \
+ UnpackedTarball/mariadb-connector-c/libmariadb/my_fstream \
+ UnpackedTarball/mariadb-connector-c/libmariadb/my_getwd \
+ UnpackedTarball/mariadb-connector-c/libmariadb/my_init \
+ UnpackedTarball/mariadb-connector-c/libmariadb/my_lib \
+ UnpackedTarball/mariadb-connector-c/libmariadb/my_malloc \
+ UnpackedTarball/mariadb-connector-c/libmariadb/my_messnc \
+ UnpackedTarball/mariadb-connector-c/libmariadb/my_net \
+ UnpackedTarball/mariadb-connector-c/libmariadb/my_once \
+ UnpackedTarball/mariadb-connector-c/libmariadb/my_open \
+ UnpackedTarball/mariadb-connector-c/libmariadb/my_port \
+ UnpackedTarball/mariadb-connector-c/libmariadb/my_pthread \
+ UnpackedTarball/mariadb-connector-c/libmariadb/my_read \
+ UnpackedTarball/mariadb-connector-c/libmariadb/my_realloc \
+ UnpackedTarball/mariadb-connector-c/libmariadb/my_seek \
+ UnpackedTarball/mariadb-connector-c/libmariadb/my_static \
+ UnpackedTarball/mariadb-connector-c/libmariadb/my_symlink \
+ UnpackedTarball/mariadb-connector-c/libmariadb/my_thr_init \
+ UnpackedTarball/mariadb-connector-c/libmariadb/my_write \
+ UnpackedTarball/mariadb-connector-c/libmariadb/password \
+ UnpackedTarball/mariadb-connector-c/libmariadb/str2int \
+ UnpackedTarball/mariadb-connector-c/libmariadb/strcend \
+ UnpackedTarball/mariadb-connector-c/libmariadb/strcont \
+ UnpackedTarball/mariadb-connector-c/libmariadb/strend \
+ UnpackedTarball/mariadb-connector-c/libmariadb/strfill \
+ UnpackedTarball/mariadb-connector-c/libmariadb/string \
+ UnpackedTarball/mariadb-connector-c/libmariadb/strinstr \
+ UnpackedTarball/mariadb-connector-c/libmariadb/strmake \
+ UnpackedTarball/mariadb-connector-c/libmariadb/strmov \
+ UnpackedTarball/mariadb-connector-c/libmariadb/strnmov \
+ UnpackedTarball/mariadb-connector-c/libmariadb/strtoll \
+ UnpackedTarball/mariadb-connector-c/libmariadb/strtoull \
+ UnpackedTarball/mariadb-connector-c/libmariadb/strxmov \
+ UnpackedTarball/mariadb-connector-c/libmariadb/strxnmov \
+ UnpackedTarball/mariadb-connector-c/libmariadb/thr_mutex \
+ UnpackedTarball/mariadb-connector-c/libmariadb/typelib \
+ UnpackedTarball/mariadb-connector-c/libmariadb/sha1 \
+ UnpackedTarball/mariadb-connector-c/libmariadb/my_stmt \
+ UnpackedTarball/mariadb-connector-c/libmariadb/my_loaddata \
+ UnpackedTarball/mariadb-connector-c/libmariadb/my_stmt_codec \
+ UnpackedTarball/mariadb-connector-c/libmariadb/client_plugin \
+ UnpackedTarball/mariadb-connector-c/libmariadb/my_auth \
+ UnpackedTarball/mariadb-connector-c/libmariadb/ma_secure \
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/external/mariadb-connector-c/UnpackedTarball_mariadb-connector-c.mk b/external/mariadb-connector-c/UnpackedTarball_mariadb-connector-c.mk
new file mode 100644
index 000000000000..4318dbfa7aae
--- /dev/null
+++ b/external/mariadb-connector-c/UnpackedTarball_mariadb-connector-c.mk
@@ -0,0 +1,36 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+
+$(eval $(call gb_UnpackedTarball_UnpackedTarball,mariadb-connector-c))
+
+$(eval $(call gb_UnpackedTarball_set_tarball,mariadb-connector-c,$(MARIADB_CONNECTOR_C_TARBALL)))
+
+$(eval $(call gb_UnpackedTarball_add_file,mariadb-connector-c,include/mysql_version.h,external/mariadb-connector-c/configs/mysql_version.h))
+
+ifneq ($(OS),WNT)
+ifeq ($(OS),MACOSX)
+$(eval $(call gb_UnpackedTarball_add_file,mariadb-connector-c,include/my_config.h,external/mariadb-connector-c/configs/mac_my_config.h))
+else
+$(eval $(call gb_UnpackedTarball_add_file,mariadb-connector-c,include/my_config.h,external/mariadb-connector-c/configs/linux_my_config.h))
+endif
+endif # $(OS),WNT
+
+$(eval $(call gb_UnpackedTarball_set_patchlevel,mariadb-connector-c,1))
+
+# mariadb-connector-c/mariadb-static-inline.patch upstream at
+# <https://mariadb.atlassian.net/browse/CONC-18> "no external definition of
+# non-static inline local_thr_alarm in libmariadb/net.c":
+$(eval $(call gb_UnpackedTarball_add_patches,mariadb-connector-c,\
+ external/mariadb-connector-c/mariadb-swap.patch \
+ $(if $(filter MSC,$(COM)),external/mariadb-connector-c/mariadb-msvc.patch.1) \
+ external/mariadb-connector-c/mariadb-inline.patch.1 \
+ external/mariadb-connector-c/mariadb-CONC-104.patch.1 \
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/external/mariadb-connector-c/configs/linux_my_config.h b/external/mariadb-connector-c/configs/linux_my_config.h
new file mode 100644
index 000000000000..a52a62ce0cdd
--- /dev/null
+++ b/external/mariadb-connector-c/configs/linux_my_config.h
@@ -0,0 +1,278 @@
+
+/*
+ * Include file constants (processed in LibmysqlIncludeFiles.txt 1
+ */
+#define HAVE_ALLOCA_H 1
+#define HAVE_ARPA_INET_H 1
+#define HAVE_CRYPT_H 1
+#define HAVE_DIRENT_H 1
+#define HAVE_DLFCN_H 1
+#define HAVE_EXECINFO_H 1
+#define HAVE_FCNTL_H 1
+#define HAVE_FENV_H 1
+#define HAVE_FLOAT_H 1
+/* #undef HAVE_FPU_CONTROL_H */
+#define HAVE_GRP_H 1
+/* #undef HAVE_IEEEFP_H */
+#define HAVE_LIMITS_H 1
+#define HAVE_MALLOC_H 1
+#define HAVE_MEMORY_H 1
+#define HAVE_NETINET_IN_H 1
+#define HAVE_PATHS_H 1
+#define HAVE_PWD_H 1
+#define HAVE_SCHED_H 1
+/* #undef HAVE_SELECT_H */
+#define HAVE_STDDEF_H 1
+#define HAVE_STDINT_H 1
+#define HAVE_STDLIB_H 1
+#define HAVE_STRING_H 1
+#define HAVE_STRINGS_H 1
+/* #undef HAVE_SYNCH_H */
+/* #undef HAVE_SYS_FPU_H */
+#define HAVE_SYS_IOCTL_H 1
+#define HAVE_SYS_IPC_H 1
+#define HAVE_SYS_MMAN_H 1
+#define HAVE_SYS_PRCTL_H 1
+#define HAVE_SYS_SELECT_H 1
+#define HAVE_SYS_SHM_H 1
+#define HAVE_SYS_SOCKET_H 1
+#define HAVE_SYS_STAT_H 1
+/* #undef HAVE_SYS_STREAM_H */
+#define HAVE_SYS_TIMEB_H 1
+#define HAVE_SYS_TYPES_H 1
+#define HAVE_SYS_UN_H 1
+/* #undef HAVE_SYSENT_H */
+#define HAVE_TERMIO_H 1
+#define HAVE_TERMIOS_H 1
+#define HAVE_UNISTD_H 1
+#define HAVE_UTIME_H 1
+
+/*
+ * function definitions - processed in LibmysqlFunctions.txt
+ */
+#define HAVE_ACCESS 1
+/* #undef HAVE_AIOWAIT */
+#define HAVE_ALARM 1
+/* #undef HAVE_ALLOCA */
+#define HAVE_BCMP 1
+/* #undef HAVE_BFILL */
+/* #undef HAVE_BMOVE */
+#define HAVE_BZERO 1
+#define HAVE_CLOCK_GETTIME 1
+/* #undef HAVE_COMPRESS */
+/* #undef HAVE_CRYPT */
+#define HAVE_DLERROR 1
+#define HAVE_DLOPEN 1
+#define HAVE_FCHMOD 1
+#define HAVE_FCNTL 1
+/* #undef HAVE_FCONVERT */
+#define HAVE_FDATASYNC 1
+#define HAVE_FESETROUND 1
+#define HAVE_FINITE 1
+#define HAVE_FSEEKO 1
+#define HAVE_FSYNC 1
+#define HAVE_GETADDRINFO 1
+#define HAVE_GETCWD 1
+#define HAVE_GETHOSTBYADDR_R 1
+#define HAVE_GETHOSTBYNAME_R 1
+/* #undef HAVE_GETHRTIME */
+#define HAVE_GETNAMEINFO 1
+#define HAVE_GETPAGESIZE 1
+#define HAVE_GETPASS 1
+/* #undef HAVE_GETPASSPHRASE */
+#define HAVE_GETPWNAM 1
+#define HAVE_GETPWUID 1
+#define HAVE_GETRLIMIT 1
+#define HAVE_GETRUSAGE 1
+#define HAVE_GETWD 1
+#define HAVE_GMTIME_R 1
+#define HAVE_INITGROUPS 1
+#define HAVE_LDIV 1
+#define HAVE_LOCALTIME_R 1
+#define HAVE_LOG2 1
+#define HAVE_LONGJMP 1
+#define HAVE_LSTAT 1
+#define HAVE_MADVISE 1
+#define HAVE_MALLINFO 1
+#define HAVE_MEMALIGN 1
+#define HAVE_MEMCPY 1
+#define HAVE_MEMMOVE 1
+#define HAVE_MKSTEMP 1
+#define HAVE_MLOCK 1
+#define HAVE_MLOCKALL 1
+#define HAVE_MMAP 1
+#define HAVE_MMAP64 1
+#define HAVE_PERROR 1
+#define HAVE_POLL 1
+#define HAVE_PREAD 1
+/* #undef HAVE_PTHREAD_ATTR_CREATE */
+#define HAVE_PTHREAD_ATTR_GETSTACKSIZE 1
+/* #undef HAVE_PTHREAD_ATTR_SETPRIO */
+#define HAVE_PTHREAD_ATTR_SETSCHEDPARAM 1
+#define HAVE_PTHREAD_ATTR_SETSCOPE 1
+#define HAVE_PTHREAD_ATTR_SETSTACKSIZE 1
+/* #undef HAVE_PTHREAD_CONDATTR_CREATE */
+/* #undef HAVE_PTHREAD_INIT */
+#define HAVE_PTHREAD_KEY_DELETE 1
+#define HAVE_PTHREAD_KILL 1
+#define HAVE_PTHREAD_RWLOCK_RDLOCK 1
+/* #undef HAVE_PTHREAD_SETPRIO_NP */
+#define HAVE_PTHREAD_SETSCHEDPARAM 1
+#define HAVE_PTHREAD_SIGMASK 1
+/* #undef HAVE_PTHREAD_THREADMASK */
+/* #undef HAVE_PTHREAD_YIELD_NP */
+#define HAVE_READDIR_R 1
+#define HAVE_READLINK 1
+#define HAVE_REALPATH 1
+#define HAVE_RENAME 1
+#define HAVE_SCHED_YIELD 1
+#define HAVE_SELECT 1
+/* #undef HAVE_SETFD */
+/* #undef HAVE_SETFILEPOINTER */
+#define HAVE_SIGNAL 1
+#define HAVE_SIGACTION 1
+/* #undef HAVE_SIGTHREADMASK */
+#define HAVE_SIGWAIT 1
+#define HAVE_SLEEP 1
+#define HAVE_SNPRINTF 1
+/* #undef HAVE_SQLITE */
+#define HAVE_STPCPY 1
+#define HAVE_STRERROR 1
+/* #undef HAVE_STRLCPY */
+#define HAVE_STRNLEN 1
+#define HAVE_STRPBRK 1
+#define HAVE_STRSEP 1
+#define HAVE_STRSTR 1
+#define HAVE_STRTOK_R 1
+#define HAVE_STRTOL 1
+#define HAVE_STRTOLL 1
+#define HAVE_STRTOUL 1
+#define HAVE_STRTOULL 1
+/* #undef HAVE_TELL */
+/* #undef HAVE_THR_SETCONCURRENCY */
+/* #undef HAVE_THR_YIELD */
+#define HAVE_VASPRINTF 1
+#define HAVE_VSNPRINTF 1
+
+/*
+ * types and sizes
+ */
+/* Types we may use */
+#define SIZEOF_CHAR 1
+#if SIZEOF_CHAR
+# define HAVE_CHAR 1
+#endif
+
+#define SIZEOF_CHARP 8
+#if SIZEOF_CHARP
+# define HAVE_CHARP 1
+#endif
+
+#define SIZEOF_SHORT 2
+#if SIZEOF_SHORT
+# define HAVE_SHORT 1
+#endif
+
+#define SIZEOF_INT 4
+#if SIZEOF_INT
+# define HAVE_INT 1
+#endif
+
+#define SIZEOF_LONG 8
+#if SIZEOF_LONG
+# define HAVE_LONG 1
+#endif
+
+#define SIZEOF_LONG_LONG 8
+#if SIZEOF_LONG_LONG
+# define HAVE_LONG_LONG 1
+#endif
+
+#define SIZEOF_OFF_T 8
+#if SIZEOF_OFF_T
+# define HAVE_OFF_T 1
+#endif
+
+#define SIZEOF_SIGSET_T 128
+#if SIZEOF_SIGSET_T
+# define HAVE_SIGSET_T 1
+#endif
+
+#define SIZEOF_SIZE_T 8
+#if SIZEOF_SIZE_T
+# define HAVE_SIZE_T 1
+#endif
+
+/* #undef SIZEOF_UCHAR */
+#if SIZEOF_UCHAR
+# define HAVE_UCHAR 1
+#endif
+
+#define SIZEOF_UINT 4
+#if SIZEOF_UINT
+# define HAVE_UINT 1
+#endif
+
+#define SIZEOF_ULONG 8
+#if SIZEOF_ULONG
+# define HAVE_ULONG 1
+#endif
+
+/* #undef SIZEOF_INT8 */
+#if SIZEOF_INT8
+# define HAVE_INT8 1
+#endif
+/* #undef SIZEOF_UINT8 */
+#if SIZEOF_UINT8
+# define HAVE_UINT8 1
+#endif
+
+/* #undef SIZEOF_INT16 */
+#if SIZEOF_INT16
+# define HAVE_INT16 1
+#endif
+/* #undef SIZEOF_UINT16 */
+#if SIZEOF_UINT16
+# define HAVE_UINT16 1
+#endif
+
+/* #undef SIZEOF_INT32 */
+#if SIZEOF_INT32
+# define HAVE_INT32 1
+#endif
+/* #undef SIZEOF_UINT32 */
+#if SIZEOF_UINT32
+# define HAVE_UINT32 1
+#endif
+/* #undef SIZEOF_U_INT32_T */
+#if SIZEOF_U_INT32_T
+# define HAVE_U_INT32_T 1
+#endif
+
+/* #undef SIZEOF_INT64 */
+#if SIZEOF_INT64
+# define HAVE_INT64 1
+#endif
+/* #undef SIZEOF_UINT64 */
+#if SIZEOF_UINT64
+# define HAVE_UINT64 1
+#endif
+
+/* #undef SIZEOF_SOCKLEN_T */
+#if SIZEOF_SOCKLEN_T
+# define HAVE_SOCKLEN_T 1
+#endif
+
+#define SOCKET_SIZE_TYPE socklen_t
+
+#define RETSIGTYPE void
+#define RETQSORTTYPE void
+
+/*
+ * various other defines
+ */
+/* #undef HAVE_THREADS */
+#define SHAREDIR "share"
+#define DEFAULT_CHARSET_HOME "/usr/local"
+#define PLUGINDIR "/usr/local/lib/plugin"
+
diff --git a/external/mariadb-connector-c/configs/mac_my_config.h b/external/mariadb-connector-c/configs/mac_my_config.h
new file mode 100644
index 000000000000..766c757c27e5
--- /dev/null
+++ b/external/mariadb-connector-c/configs/mac_my_config.h
@@ -0,0 +1,277 @@
+
+#define HAVE_GETHOSTBYNAME_R_GLIBC2_STYLE 1
+
+/*
+ * Include file constants (processed in LibmysqlIncludeFiles.txt 1
+ */
+#define HAVE_ALLOCA_H 1
+#define HAVE_ARPA_INET_H 1
+/* #undef HAVE_CRYPT_H */
+#define HAVE_DIRENT_H 1
+#define HAVE_DLFCN_H 1
+#define HAVE_EXECINFO_H 1
+#define HAVE_FCNTL_H 1
+#define HAVE_FENV_H 1
+#define HAVE_FLOAT_H 1
+/* #undef HAVE_FPU_CONTROL_H */
+#define HAVE_GRP_H 1
+/* #undef HAVE_IEEEFP_H */
+#define HAVE_LIMITS_H 1
+/* #undef HAVE_MALLOC_H */
+#define HAVE_MEMORY_H 1
+#define HAVE_NETINET_IN_H 1
+#define HAVE_PATHS_H 1
+#define HAVE_PWD_H 1
+#define HAVE_SCHED_H 1
+/* #undef HAVE_SELECT_H */
+#define HAVE_STDDEF_H 1
+#define HAVE_STDINT_H 1
+#define HAVE_STDLIB_H 1
+#define HAVE_STRING_H 1
+#define HAVE_STRINGS_H 1
+/* #undef HAVE_SYNCH_H */
+/* #undef HAVE_SYS_FPU_H */
+#define HAVE_SYS_IOCTL_H 1
+#define HAVE_SYS_IPC_H 1
+#define HAVE_SYS_MMAN_H 1
+/* #undef HAVE_SYS_PRCTL_H */
+#define HAVE_SYS_SELECT_H 1
+#define HAVE_SYS_SHM_H 1
+#define HAVE_SYS_SOCKET_H 1
+#define HAVE_SYS_STAT_H 1
+/* #undef HAVE_SYS_STREAM_H */
+#define HAVE_SYS_TIMEB_H 1
+#define HAVE_SYS_TYPES_H 1
+#define HAVE_SYS_UN_H 1
+/* #undef HAVE_SYSENT_H */
+/* #undef HAVE_TERMIO_H */
+#define HAVE_TERMIOS_H 1
+#define HAVE_UNISTD_H 1
+#define HAVE_UTIME_H 1
+
+/*
+ * function definitions - processed in LibmysqlFunctions.txt
+ */
+#define HAVE_ACCESS 1
+/* #undef HAVE_AIOWAIT */
+#define HAVE_ALARM 1
+/* #undef HAVE_ALLOCA */
+#define HAVE_BCMP 1
+/* #undef HAVE_BFILL */
+/* #undef HAVE_BMOVE */
+#define HAVE_BZERO 1
+/* #undef HAVE_CLOCK_GETTIME */
+/* #undef HAVE_COMPRESS */
+#define HAVE_CRYPT 1
+#define HAVE_DLERROR 1
+#define HAVE_DLOPEN 1
+#define HAVE_FCHMOD 1
+#define HAVE_FCNTL 1
+/* #undef HAVE_FCONVERT */
+/* #undef HAVE_FDATASYNC */
+#define HAVE_FESETROUND 1
+#define HAVE_FINITE 1
+#define HAVE_FSEEKO 1
+#define HAVE_FSYNC 1
+#define HAVE_GETADDRINFO 1
+#define HAVE_GETCWD 1
+/* #undef HAVE_GETHOSTBYADDR_R */
+/* #undef HAVE_GETHOSTBYNAME_R */
+/* #undef HAVE_GETHRTIME */
+#define HAVE_GETNAMEINFO 1
+#define HAVE_GETPAGESIZE 1
+#define HAVE_GETPASS 1
+/* #undef HAVE_GETPASSPHRASE */
+#define HAVE_GETPWNAM 1
+#define HAVE_GETPWUID 1
+#define HAVE_GETRLIMIT 1
+#define HAVE_GETRUSAGE 1
+#define HAVE_GETWD 1
+#define HAVE_GMTIME_R 1
+#define HAVE_INITGROUPS 1
+#define HAVE_LDIV 1
+#define HAVE_LOCALTIME_R 1
+#define HAVE_LOG2 1
+#define HAVE_LONGJMP 1
+#define HAVE_LSTAT 1
+#define HAVE_MADVISE 1
+/* #undef HAVE_MALLINFO */
+/* #undef HAVE_MEMALIGN */
+#define HAVE_MEMCPY 1
+#define HAVE_MEMMOVE 1
+#define HAVE_MKSTEMP 1
+#define HAVE_MLOCK 1
+#define HAVE_MLOCKALL 1
+#define HAVE_MMAP 1
+/* #undef HAVE_MMAP64 */
+#define HAVE_PERROR 1
+#define HAVE_POLL 1
+#define HAVE_PREAD 1
+/* #undef HAVE_PTHREAD_ATTR_CREATE */
+#define HAVE_PTHREAD_ATTR_GETSTACKSIZE 1
+/* #undef HAVE_PTHREAD_ATTR_SETPRIO */
+#define HAVE_PTHREAD_ATTR_SETSCHEDPARAM 1
+#define HAVE_PTHREAD_ATTR_SETSCOPE 1
+#define HAVE_PTHREAD_ATTR_SETSTACKSIZE 1
+/* #undef HAVE_PTHREAD_CONDATTR_CREATE */
+/* #undef HAVE_PTHREAD_INIT */
+#define HAVE_PTHREAD_KEY_DELETE 1
+#define HAVE_PTHREAD_KILL 1
+#define HAVE_PTHREAD_RWLOCK_RDLOCK 1
+/* #undef HAVE_PTHREAD_SETPRIO_NP */
+#define HAVE_PTHREAD_SETSCHEDPARAM 1
+#define HAVE_PTHREAD_SIGMASK 1
+/* #undef HAVE_PTHREAD_THREADMASK */
+#define HAVE_PTHREAD_YIELD_NP 1
+#define HAVE_READDIR_R 1
+#define HAVE_READLINK 1
+#define HAVE_REALPATH 1
+#define HAVE_RENAME 1
+#define HAVE_SCHED_YIELD 1
+#define HAVE_SELECT 1
+/* #undef HAVE_SETFD */
+/* #undef HAVE_SETFILEPOINTER */
+#define HAVE_SIGNAL 1
+#define HAVE_SIGACTION 1
+/* #undef HAVE_SIGTHREADMASK */
+#define HAVE_SIGWAIT 1
+#define HAVE_SLEEP 1
+#define HAVE_SNPRINTF 1
+#define HAVE_STPCPY 1
+#define HAVE_STRERROR 1
+#define HAVE_STRLCPY 1
+#define HAVE_STRNLEN 1
+#define HAVE_STRPBRK 1
+#define HAVE_STRSEP 1
+#define HAVE_STRSTR 1
+#define HAVE_STRTOK_R 1
+#define HAVE_STRTOL 1
+#define HAVE_STRTOLL 1
+#define HAVE_STRTOUL 1
+#define HAVE_STRTOULL 1
+/* #undef HAVE_TELL */
+/* #undef HAVE_THR_SETCONCURRENCY */
+/* #undef HAVE_THR_YIELD */
+#define HAVE_VASPRINTF 1
+#define HAVE_VSNPRINTF 1
+
+/*
+ * types and sizes
+ */
+/* Types we may use */
+#define SIZEOF_CHAR 1
+#ifdef SIZEOF_CHAR
+# define HAVE_CHAR 1
+#endif
+
+#define SIZEOF_CHARP 4
+#ifdef SIZEOF_CHARP
+# define HAVE_CHARP 1
+#endif
+
+#define SIZEOF_SHORT 2
+#ifdef SIZEOF_SHORT
+# define HAVE_SHORT 1
+#endif
+
+#define SIZEOF_INT 4
+#ifdef SIZEOF_INT
+# define HAVE_INT 1
+#endif
+
+#define SIZEOF_LONG 4
+#ifdef SIZEOF_LONG
+# define HAVE_LONG 1
+#endif
+
+#define SIZEOF_LONG_LONG 8
+#ifdef SIZEOF_LONG_LONG
+# define HAVE_LONG_LONG 1
+#endif
+
+#define SIZEOF_OFF_T 8
+#ifdef SIZEOF_OFF_T
+# define HAVE_OFF_T 1
+#endif
+
+#define SIZEOF_SIGSET_T 4
+#ifdef SIZEOF_SIGSET_T
+# define HAVE_SIGSET_T 1
+#endif
+
+#define SIZEOF_SIZE_T 4
+#ifdef SIZEOF_SIZE_T
+# define HAVE_SIZE_T 1
+#endif
+
+/* #undef SIZEOF_UCHAR */
+#ifdef SIZEOF_UCHAR
+# define HAVE_UCHAR 1
+#endif
+
+#define SIZEOF_UINT 4
+#ifdef SIZEOF_UINT
+# define HAVE_UINT 1
+#endif
+
+/* #undef SIZEOF_ULONG */
+#ifdef SIZEOF_ULONG
+# define HAVE_ULONG 1
+#endif
+
+/* #undef SIZEOF_INT8 */
+#ifdef SIZEOF_INT8
+# define HAVE_INT8 1
+#endif
+/* #undef SIZEOF_UINT8 */
+#ifdef SIZEOF_UINT8
+# define HAVE_UINT8 1
+#endif
+
+/* #undef SIZEOF_INT16 */
+#ifdef SIZEOF_INT16
+# define HAVE_INT16 1
+#endif
+/* #undef SIZEOF_UINT16 */
+#ifdef SIZEOF_UINT16
+# define HAVE_UINT16 1
+#endif
+
+/* #undef SIZEOF_INT32 */
+#ifdef SIZEOF_INT32
+# define HAVE_INT32 1
+#endif
+/* #undef SIZEOF_UINT32 */
+#ifdef SIZEOF_UINT32
+# define HAVE_UINT32 1
+#endif
+/* #undef SIZEOF_U_INT32_T */
+#ifdef SIZEOF_U_INT32_T
+# define HAVE_U_INT32_T 1
+#endif
+
+/* #undef SIZEOF_INT64 */
+#ifdef SIZEOF_INT64
+# define HAVE_INT64 1
+#endif
+/* #undef SIZEOF_UINT64 */
+#ifdef SIZEOF_UINT64
+# define HAVE_UINT64 1
+#endif
+
+/* #undef SIZEOF_SOCKLEN_T */
+#ifdef SIZEOF_SOCKLEN_T
+# define HAVE_SOCKLEN_T 1
+#endif
+
+#define SOCKET_SIZE_TYPE socklen_t
+
+#define RETSIGTYPE void
+#define RETQSORTTYPE void
+
+/*
+ * various other defines
+ */
+/* #undef HAVE_THREADS */
+#define SHAREDIR "share"
+#define DEFAULT_CHARSET_HOME "/usr/local"
diff --git a/external/mariadb-connector-c/configs/mysql_version.h b/external/mariadb-connector-c/configs/mysql_version.h
new file mode 100644
index 000000000000..050e861b7b91
--- /dev/null
+++ b/external/mariadb-connector-c/configs/mysql_version.h
@@ -0,0 +1,28 @@
+/* Copyright Abandoned 1996, 1999, 2001 MySQL AB
+ This file is public domain and comes with NO WARRANTY of any kind */
+
+/* Version numbers for protocol & mysqld */
+
+#ifdef _CUSTOMCONFIG_
+#include <custom_conf.h>
+#else
+#define PROTOCOL_VERSION 10
+#define MYSQL_CLIENT_VERSION "5.5.0"
+#define MYSQL_SERVER_VERSION "5.5.0"
+#define MYSQL_SERVER_SUFFIX ""
+#define FRM_VER
+#define MYSQL_VERSION_ID 50500
+#define MYSQL_PORT 3306
+#define MYSQL_UNIX_ADDR "/tmp/mysql.sock"
+#define MYSQL_CONFIG_NAME "my"
+
+#define MARIADB_PACKAGE_VERSION "1.1.2"
+#define MARIADB_SYSTEM_TYPE "Linux"
+#define MARIADB_MACHINE_TYPE "x86_64"
+
+/* mysqld compile time options */
+#ifndef MYSQL_CHARSET
+#define MYSQL_CHARSET ""
+#endif
+#endif
+
diff --git a/external/mariadb-connector-c/mariadb-CONC-104.patch.1 b/external/mariadb-connector-c/mariadb-CONC-104.patch.1
new file mode 100644
index 000000000000..cba9fbba339d
--- /dev/null
+++ b/external/mariadb-connector-c/mariadb-CONC-104.patch.1
@@ -0,0 +1,49 @@
+--- mariadb/include/errmsg.h 2014-04-04 12:21:01.000000000 +0200
++++ mariadb/include/errmsg.h 2014-09-17 17:47:25.000000000 +0200
+@@ -66,6 +66,7 @@
+ #define CR_PARAMS_NOT_BOUND 2031
+ #define CR_INVALID_PARAMETER_NO 2034
+ #define CR_UNSUPPORTED_PARAM_TYPE 2036
++#define CR_SECURE_AUTH 2049
+ #define CR_NO_DATA 2051
+ #define CR_NO_STMT_METADATA 2052
+ #define CR_NOT_IMPLEMENTED 2054
+--- mariadb/libmariadb/errmsg.c 2014-04-04 12:21:01.000000000 +0200
++++ mariadb/libmariadb/errmsg.c 2014-09-17 17:48:44.000000000 +0200
+@@ -129,7 +129,7 @@
+ /* 2046 */ "",
+ /* 2047 */ "",
+ /* 2048 */ "",
+-/* 2049 */ "",
++/* 2049 */ "Connection with old authentication protocol refused.",
+ /* 2050 */ "",
+ /* 2051 */ "",
+ /* 2052 */ "Prepared statement contains no metadata",
+--- mariadb/libmariadb/libmariadb.c 2014-04-04 12:21:01.000000000 +0200
++++ mariadb/libmariadb/libmariadb.c 2014-09-17 17:56:13.000000000 +0200
+@@ -1864,7 +1864,14 @@
+ scramble_plugin= native_password_plugin_name;
+ }
+ } else
++ {
+ mysql->server_capabilities&= ~CLIENT_SECURE_CONNECTION;
++ if (mysql->options.secure_auth)
++ {
++ SET_CLIENT_ERROR(mysql, CR_SECURE_AUTH, unknown_sqlstate, 0);
++ goto error;
++ }
++ }
+
+ /* Set character set */
+ if (mysql->options.charset_name)
+@@ -3031,7 +3038,9 @@
+ }
+ }
+ break;
+-
++ case MYSQL_SECURE_AUTH:
++ mysql->options.secure_auth= *(my_bool *)arg1;
++ break;
+ default:
+ va_end(ap);
+ DBUG_RETURN(-1);
diff --git a/external/mariadb-connector-c/mariadb-inline.patch.1 b/external/mariadb-connector-c/mariadb-inline.patch.1
new file mode 100644
index 000000000000..84ebc814069e
--- /dev/null
+++ b/external/mariadb-connector-c/mariadb-inline.patch.1
@@ -0,0 +1,23 @@
+diff -ur mariadb.org/libmariadb/hash.c mariadb/libmariadb/hash.c
+--- mariadb.org/libmariadb/hash.c 2014-09-03 14:57:29.000000000 +0200
++++ mariadb/libmariadb/hash.c 2014-09-03 14:59:09.000000000 +0200
+@@ -94,7 +94,7 @@
+ handle inline functions that are not defined as native types
+ */
+
+-inline char*
++uchar*
+ hash_key(HASH *hash,const uchar *record,uint *length,my_bool first)
+ {
+ if (hash->get_key)
+@@ -191,9 +191,6 @@
+ #endif
+
+
+-#ifndef __SUNPRO_C /* SUNPRO can't handle this */
+-inline
+-#endif
+ unsigned int rec_hashnr(HASH *hash,const uchar *record)
+ {
+ uint length;
+
diff --git a/external/mariadb-connector-c/mariadb-msvc.patch.1 b/external/mariadb-connector-c/mariadb-msvc.patch.1
new file mode 100644
index 000000000000..b88f00f8d309
--- /dev/null
+++ b/external/mariadb-connector-c/mariadb-msvc.patch.1
@@ -0,0 +1,13 @@
+--- mariadb/libmariadb/my_pthread.c.orig 2013-04-17 15:45:52.025896770 +0200
++++ mariadb/libmariadb/my_pthread.c 2013-04-17 15:47:32.292895908 +0200
+@@ -28,6 +28,10 @@
+
+ #ifdef _WIN32
+
++#ifndef ETIMEDOUT /* does not exist MSVC 2008 but was added in MSVC 2010 */
++#define ETIMEDOUT 145
++#endif
++
+ int
+ pthread_cond_init (pthread_cond_t *cv, const pthread_condattr_t *attr)
+ {
diff --git a/external/mariadb-connector-c/mariadb-swap.patch b/external/mariadb-connector-c/mariadb-swap.patch
new file mode 100644
index 000000000000..bfada2d2c4a6
--- /dev/null
+++ b/external/mariadb-connector-c/mariadb-swap.patch
@@ -0,0 +1,24 @@
+--- mariadb/include/global.h 2013-03-06 17:06:42.545906061 +0100
++++ mariadb/include/global.h 2013-03-07 14:45:03.811128674 +0100
+@@ -247,7 +247,9 @@
+ #endif
+
+ #define sgn(a) (((a) < 0) ? -1 : ((a) > 0) ? 1 : 0)
++#ifndef __cplusplus
+ #define swap(t,a,b) { register t dummy; dummy = a; a = b; b = dummy; }
++#endif
+ #define test(a) ((a) ? 1 : 0)
+ #define set_if_bigger(a,b) { if ((a) < (b)) (a)=(b); }
+ #define set_if_smaller(a,b) { if ((a) > (b)) (a)=(b); }
+--- mariadb/include/my_global.h 2013-03-06 17:06:42.546906037 +0100
++++ mariadb/include/my_global.h 2013-03-07 14:44:47.032529753 +0100
+@@ -278,7 +278,9 @@
+ #endif
+
+ #define sgn(a) (((a) < 0) ? -1 : ((a) > 0) ? 1 : 0)
++#ifndef __cplusplus
+ #define swap(t,a,b) { register t dummy; dummy = a; a = b; b = dummy; }
++#endif
+ #define test(a) ((a) ? 1 : 0)
+ #define set_if_bigger(a,b) { if ((a) < (b)) (a)=(b); }
+ #define set_if_smaller(a,b) { if ((a) > (b)) (a)=(b); }