Hello community,
here is the log from the commit of package mariadb-connector-odbc for
openSUSE:Factory checked in at 2020-09-25 16:31:06
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/mariadb-connector-odbc (Old)
and /work/SRC/openSUSE:Factory/.mariadb-connector-odbc.new.4249 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "mariadb-connector-odbc"
Fri Sep 25 16:31:06 2020 rev:10 rq:833852 version:3.1.9
Changes:
--------
---
/work/SRC/openSUSE:Factory/mariadb-connector-odbc/mariadb-connector-odbc.changes
2020-04-14 16:24:14.015740375 +0200
+++
/work/SRC/openSUSE:Factory/.mariadb-connector-odbc.new.4249/mariadb-connector-odbc.changes
2020-09-25 16:31:18.911878713 +0200
@@ -1,0 +2,19 @@
+Fri Sep 11 17:35:40 UTC 2020 - Adam Majer <[email protected]>
+
+** LOCATION CHANGE ** - the ODBC driver location has been changed to
+/usr/lib{,64}/mariadb/libmaodbc.so Adjust your paths accordingly.
+
+- New upstream version 3.1.9. Fixes since 3.1.7 include,
+ * ODBC-214 - Mediumint(INT24) is always empty
+ * ODBC-284 - properly handle curly bracket escape in connection string
+ * ODBC-283 - Add support for passphrase protected private keys (TlsKeyPwd=)
+ * ODBC-280 - fixes multi-threaded issue when multiple connection are
+ established simultaneously from different threads.
+ * ODBC-279 - SQL_C_TIME binding type not working
+- missing_libs.patch: dropped
+- added patches forwarded upstream: fix_macros.patch,
implicit_decleration.patch, wrong_types.patch
+- nosoname.patch: refreshed
+- DSN_names.patch: refreshed. Added new option,
+ TlsKeyPwd =
+
+-------------------------------------------------------------------
Old:
----
mariadb-connector-odbc-3.1.7-ga-src.tar.gz
mariadb-connector-odbc-3.1.7-ga-src.tar.gz.asc
missing_libs.patch
New:
----
fix_macros.patch
implicit_decleration.patch
mariadb-connector-odbc-3.1.9-ga-src.tar.gz
mariadb-connector-odbc-3.1.9-ga-src.tar.gz.asc
wrong_types.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ mariadb-connector-odbc.spec ++++++
--- /var/tmp/diff_new_pack.eNuWqj/_old 2020-09-25 16:31:19.575879302 +0200
+++ /var/tmp/diff_new_pack.eNuWqj/_new 2020-09-25 16:31:19.579879305 +0200
@@ -17,12 +17,12 @@
Name: mariadb-connector-odbc
-Version: 3.1.7
+Version: 3.1.9
Release: 0
Summary: MariaDB ODBC Connector
License: LGPL-2.1-or-later
Group: Productivity/Databases/Tools
-Url: https://downloads.mariadb.org/connector-odbc/
+URL: https://downloads.mariadb.org/connector-odbc/
Source:
https://downloads.mariadb.org/interstitial/connector-odbc-%{version}/mariadb-connector-odbc-%{version}-ga-src.tar.gz
# signature is from copy/pasted stuff found on the download page, not actual
file
Source1: mariadb-connector-odbc-%{version}-ga-src.tar.gz.asc
@@ -31,8 +31,10 @@
Source4: mariadb-connector-odbc-rpmlintrc
Patch1: mysql_header_path.patch
Patch6: DSN_names.patch
-Patch7: missing_libs.patch
Patch8: nosoname.patch
+Patch9: fix_macros.patch
+Patch10: implicit_decleration.patch
+Patch11: wrong_types.patch
BuildRequires: cmake > 3.5.0
BuildRequires: gcc-c++
# This is actually MariaDB -devel package(s)
@@ -54,21 +56,25 @@
-DWITH_OPENSSL=ON \
-DMARIADB_LINK_DYNAMIC=1 \
-DINSTALL_DOC_DIR=%{_docdir}/%{name} \
+ -DINSTALL_LAYOUT=RPM \
-DINSTALL_LICENSE_DIR=%{_licensedir}/%{name}
-%make_jobs
+%cmake_build
%install
%cmake_install
-install -Dpm 0644 %{SOURCE2} %{SOURCE3} \
- %{buildroot}%{_docdir}/%{name}
+rm %{buildroot}/usr/docs/COPYING
+rm %{buildroot}/usr/docs/README
+rmdir %{buildroot}/usr/docs
+install -Dpm 0644 -t %{buildroot}%{_docdir}/%{name} %{SOURCE2} %{SOURCE3}
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%files
%dir %{_docdir}/%{name}
+%dir %{_libdir}/mariadb
%license COPYING
-%{_libdir}/libmaodbc.so
+%{_libdir}/mariadb/libmaodbc.so
%{_docdir}/%{name}/README
%{_docdir}/%{name}/sample_odbc.ini
++++++ DSN_names.patch ++++++
--- /var/tmp/diff_new_pack.eNuWqj/_old 2020-09-25 16:31:19.607879330 +0200
+++ /var/tmp/diff_new_pack.eNuWqj/_new 2020-09-25 16:31:19.607879330 +0200
@@ -8,23 +8,28 @@
The sample DSN config file is manually maintained based on
these options.
-Index: mariadb-connector-odbc-3.1.6-ga-src/ma_dsn.c
+Index: mariadb-connector-odbc-3.1.9-ga-src/ma_dsn.c
===================================================================
---- mariadb-connector-odbc-3.1.6-ga-src.orig/ma_dsn.c
-+++ mariadb-connector-odbc-3.1.6-ga-src/ma_dsn.c
-@@ -33,53 +33,53 @@
+--- mariadb-connector-odbc-3.1.9-ga-src.orig/ma_dsn.c
++++ mariadb-connector-odbc-3.1.9-ga-src/ma_dsn.c
+@@ -33,54 +33,54 @@
MADB_DsnKey DsnKeys[]=
{
- {"DSN", offsetof(MADB_Dsn, DSNName), DSN_TYPE_STRING,
0, 0}, /* 0 */
- {"DESCRIPTION", offsetof(MADB_Dsn, Description), DSN_TYPE_STRING,
0, 0},
- {"DRIVER", offsetof(MADB_Dsn, Driver), DSN_TYPE_STRING,
0, 0},
-- /* OPTIONS should go above all DSN_TYPE_OPTION. They are not saved in DSN
separately, and then DSN is read, corresponding
-- properties are filled from OPTIONS. Also putting its alias here - it
should not appear on Windows(unless somebody edits
-- registry manually), but on *nix we can expect everything. Array index
used in some places to decide if the key is OPTIONS */
++ {"DSN", offsetof(MADB_Dsn, DSNName),
DSN_TYPE_STRING, 0, 0}, /* 0 */
++ {"DESCRIPTION", offsetof(MADB_Dsn, Description),
DSN_TYPE_STRING, 0, 0},
++ {"DRIVER", offsetof(MADB_Dsn, Driver),
DSN_TYPE_STRING, 0, 0},
+ /* OPTIONS should go above all DSN_TYPE_OPTION. They are not saved in DSN
separately, and then DSN is read, corresponding
+ properties are filled from OPTIONS. Also putting its alias here - it
should not appear on Windows(unless somebody edits
+ registry manually), but on *nix we can expect everything. Array index
used in some places to decide if the key is OPTIONS */
- {"OPTIONS", offsetof(MADB_Dsn, Options), DSN_TYPE_INT,
0, 0}, /* DSNKEY_OPTIONS_INDEX */
- {"OPTION", DSNKEY_OPTIONS_INDEX, DSN_TYPE_INT,
0, 1}, /* DSNKEY_OPTION_INDEX */
--
++ {"OPTIONS", offsetof(MADB_Dsn, Options), DSN_TYPE_INT,
0, 0}, /* DSNKEY_OPTIONS_INDEX */
++ {"OPTION", DSNKEY_OPTIONS_INDEX, DSN_TYPE_INT,
0, 1}, /* DSNKEY_OPTION_INDEX */
+
- {"NamedPipe", offsetof(MADB_Dsn, IsNamedPipe), DSN_TYPE_OPTION,
MADB_OPT_FLAG_NAMED_PIPE, 0}, /* MADB_DSNKEY_NAMEDPIPE_INDEX */
- {"TCPIP", offsetof(MADB_Dsn, IsTcpIp), DSN_TYPE_BOOL,
0, 0}, /* DSNKEY_TCPIP_INDEX */
- {"SERVER", offsetof(MADB_Dsn, ServerName), DSN_TYPE_STRING,
0, 0}, /* DSNKEY_SERVER_INDEX */
@@ -55,16 +60,15 @@
- {"USE_MYCNF", offsetof(MADB_Dsn, ReadMycnf), DSN_TYPE_OPTION,
MADB_OPT_FLAG_USE_CNF, 0},
- {"TLSVERSION", offsetof(MADB_Dsn, TlsVersion),
DSN_TYPE_CBOXGROUP, 0, 0},
- {"FORCETLS", offsetof(MADB_Dsn, ForceTls), DSN_TYPE_BOOL,
0, 0},
-- {"SERVERKEY", offsetof(MADB_Dsn, ServerKey), DSN_TYPE_STRING,
0, 0},
-+ {"DSN", offsetof(MADB_Dsn, DSNName),
DSN_TYPE_STRING, 0, 0}, /* 0 */
-+ {"DESCRIPTION", offsetof(MADB_Dsn, Description),
DSN_TYPE_STRING, 0, 0},
-+ {"DRIVER", offsetof(MADB_Dsn, Driver),
DSN_TYPE_STRING, 0, 0},
-+ /* OPTIONS should go above all DSN_TYPE_OPTION. They are not saved in DSN
separately, and then DSN is read, corresponding
-+ properties are filled from OPTIONS. Also putting its alias here - it
should not appear on Windows(unless somebody edits
-+ registry manually), but on *nix we can expect everything. Array index
used in some places to decide if the key is OPTIONS */
-+ {"OPTIONS", offsetof(MADB_Dsn, Options), DSN_TYPE_INT,
0, 0}, /* DSNKEY_OPTIONS_INDEX */
-+ {"OPTION", DSNKEY_OPTIONS_INDEX, DSN_TYPE_INT,
0, 1}, /* DSNKEY_OPTION_INDEX */
-+
+- {"SERVERKEY", offsetof(MADB_Dsn, ServerKey), DSN_TYPE_STRING,
0, 0},
+- {"TLSKEYPWD", offsetof(MADB_Dsn, TlsKeyPwd), DSN_TYPE_STRING,
0, 0},
+- /* Aliases. Here offset is index of aliased key */
+- {"SERVERNAME", DSNKEY_SERVER_INDEX, DSN_TYPE_STRING,
0, 1},
+- {"USER", DSNKEY_UID_INDEX, DSN_TYPE_STRING,
0, 1},
+- {"PASSWORD", DSNKEY_PWD_INDEX, DSN_TYPE_STRING,
0, 1},
+- {"DB", DSNKEY_DATABASE_INDEX, DSN_TYPE_COMBO,
0, 1},
+- {"SSLFP", DSNKEY_FP_INDEX, DSN_TYPE_STRING,
0, 1},
+- {"SSLFPLIST", DSNKEY_FPLIST_INDEX, DSN_TYPE_STRING,
0, 1},
+ {"NamedPipe", offsetof(MADB_Dsn, IsNamedPipe),
DSN_TYPE_OPTION, MADB_OPT_FLAG_NAMED_PIPE, 0}, /* MADB_DSNKEY_NAMEDPIPE_INDEX */
+ {"TCPIP", offsetof(MADB_Dsn, IsTcpIp), DSN_TYPE_BOOL,
0, 0}, /* DSNKEY_TCPIP_INDEX */
+ {"SERVER", offsetof(MADB_Dsn, ServerName),
DSN_TYPE_STRING, 0, 0}, /* DSNKEY_SERVER_INDEX */
@@ -86,8 +90,8 @@
+ {"SSLCAPATH", offsetof(MADB_Dsn, SslCaPath),
DSN_TYPE_STRING, 0, 0},
+ {"SSLCIPHER", offsetof(MADB_Dsn, SslCipher),
DSN_TYPE_STRING, 0, 0},
+ {"SSLVERIFY", offsetof(MADB_Dsn, SslVerify), DSN_TYPE_BOOL,
0, 0},
-+ {"TLSPEERFP", offsetof(MADB_Dsn, TlsPeerFp), DSN_TYPE_STRING,
0, 0},
-+ {"TLSPEERFPLIST", offsetof(MADB_Dsn, TlsPeerFpList), DSN_TYPE_STRING,
0, 0},
++ {"TLSPEERFP", offsetof(MADB_Dsn, TlsPeerFp),
DSN_TYPE_STRING, 0, 0},
++ {"TLSPEERFPLIST", offsetof(MADB_Dsn, TlsPeerFpList),
DSN_TYPE_STRING, 0, 0},
+ {"SSLCRL", offsetof(MADB_Dsn, SslCrl),
DSN_TYPE_STRING, 0, 0},
+ {"SSLCRLPATH", offsetof(MADB_Dsn, SslCrlPath),
DSN_TYPE_STRING, 0, 0},
+ {"SOCKET", offsetof(MADB_Dsn, Socket),
DSN_TYPE_STRING, 0, 0},
@@ -95,14 +99,9 @@
+ {"USE_MYCNF", offsetof(MADB_Dsn, ReadMycnf),
DSN_TYPE_OPTION, MADB_OPT_FLAG_USE_CNF, 0},
+ {"TLSVERSION", offsetof(MADB_Dsn, TlsVersion),
DSN_TYPE_CBOXGROUP, 0, 0},
+ {"FORCETLS", offsetof(MADB_Dsn, ForceTls), DSN_TYPE_BOOL,
0, 0},
-+ {"SERVERKEY", offsetof(MADB_Dsn, ServerKey), DSN_TYPE_STRING,
0, 0},
- /* Aliases. Here offset is index of aliased key */
-- {"SERVERNAME", DSNKEY_SERVER_INDEX, DSN_TYPE_STRING,
0, 1},
-- {"USER", DSNKEY_UID_INDEX, DSN_TYPE_STRING,
0, 1},
-- {"PASSWORD", DSNKEY_PWD_INDEX, DSN_TYPE_STRING,
0, 1},
-- {"DB", DSNKEY_DATABASE_INDEX, DSN_TYPE_COMBO,
0, 1},
-- {"SSLFP", DSNKEY_FP_INDEX, DSN_TYPE_STRING,
0, 1},
-- {"SSLFPLIST", DSNKEY_FPLIST_INDEX, DSN_TYPE_STRING,
0, 1},
++ {"SERVERKEY", offsetof(MADB_Dsn, ServerKey),
DSN_TYPE_STRING, 0, 0},
++ {"TLSKEYPWD", offsetof(MADB_Dsn, TlsKeyPwd),
DSN_TYPE_STRING, 0, 0},
++ /* Aliases. Here offset is index of aliased key */
+ {"SERVERNAME", DSNKEY_SERVER_INDEX,
DSN_TYPE_STRING, 0, 1},
+ {"USER", DSNKEY_UID_INDEX,
DSN_TYPE_STRING, 0, 1},
+ {"PASSWORD", DSNKEY_PWD_INDEX,
DSN_TYPE_STRING, 0, 1},
++++++ fix_macros.patch ++++++
Fixing macro issues,
/home/abuild/rpmbuild/BUILD/mariadb-connector-odbc-3.1.9-ga-src/ma_helper.h:97:3:
warning: macro expands to multiple statements [-Wmultistatement-macros]
97 | free((a));\
| ^~~~
/home/abuild/rpmbuild/BUILD/mariadb-connector-odbc-3.1.9-ga-src/ma_dsn.c:162:5:
note: in expansion of macro 'MADB_FREE'
162 | MADB_FREE(Dsn);
| ^~~~~~~~~
/home/abuild/rpmbuild/BUILD/mariadb-connector-odbc-3.1.9-ga-src/ma_dsn.c:161:3:
note: some parts of macro expansion are not guarded by this 'if' clause
161 | if (Dsn->FreeMe)
| ^~
/home/abuild/rpmbuild/BUILD/mariadb-connector-odbc-3.1.9-ga-src/ma_helper.h:97:3:
warning: macro expands to multiple statements [-Wmultistatement-macros]
97 | free((a));\
| ^~~~
/home/abuild/rpmbuild/BUILD/mariadb-connector-odbc-3.1.9-ga-src/ma_string.c:387:5:
note: in expansion of macro 'MADB_FREE'
387 | MADB_FREE(StmtStr);
| ^~~~~~~~~
/home/abuild/rpmbuild/BUILD/mariadb-connector-odbc-3.1.9-ga-src/ma_string.c:386:3:
note: some parts of macro expansion are not guarded by this 'if' clause
386 | if (StmtStr)
| ^~
/home/abuild/rpmbuild/BUILD/mariadb-connector-odbc-3.1.9-ga-src/ma_error.h:163:3:
warning: macro expands to multiple statements [-Wmultistatement-macros]
163 | strcpy_s((a)->SqlState, SQL_SQLSTATE_SIZE+1,
MADB_ErrorList[MADB_ERR_00000].SqlState); \
| ^~~~~~~~
/home/abuild/rpmbuild/BUILD/mariadb-connector-odbc-3.1.9-ga-src/ma_platform_posix.c:256:5:
note: in expansion of macro 'MADB_CLEAR_ERROR'
256 | MADB_CLEAR_ERROR(Error);
| ^~~~~~~~~~~~~~~~
/home/abuild/rpmbuild/BUILD/mariadb-connector-odbc-3.1.9-ga-src/ma_platform_posix.c:255:3:
note: some parts of macro expansion are not guarded by this 'if' clause
255 | if (Error)
| ^~
Index: mariadb-connector-odbc-3.1.9-ga-src/ma_error.h
===================================================================
--- mariadb-connector-odbc-3.1.9-ga-src.orig/ma_error.h
+++ mariadb-connector-odbc-3.1.9-ga-src/ma_error.h
@@ -159,12 +159,13 @@ SQLRETURN MADB_GetDiagField(SQLSMALLINT
DiagInfoPtr, SQLSMALLINT BufferLength,
SQLSMALLINT *StringLengthPtr, my_bool isWChar);
-#define MADB_CLEAR_ERROR(a) \
+#define MADB_CLEAR_ERROR(a) do { \
strcpy_s((a)->SqlState, SQL_SQLSTATE_SIZE+1,
MADB_ErrorList[MADB_ERR_00000].SqlState); \
(a)->SqlErrorMsg[(a)->PrefixLen]= 0; \
(a)->NativeError= 0;\
(a)->ReturnValue= SQL_SUCCESS;\
- (a)->ErrorNum= 0;
+ (a)->ErrorNum= 0; \
+} while (0)
#define MADB_CLEAR_HANDLE_ERROR(handle_type, handle) \
switch (handle_type) { \
Index: mariadb-connector-odbc-3.1.9-ga-src/ma_helper.h
===================================================================
--- mariadb-connector-odbc-3.1.9-ga-src.orig/ma_helper.h
+++ mariadb-connector-odbc-3.1.9-ga-src/ma_helper.h
@@ -93,9 +93,11 @@ extern my_bool DummyError;
#define BUFFER_CHAR_LEN(blen,wchar) (wchar) ? (blen) / sizeof(SQLWCHAR) :
(blen)
-#define MADB_FREE(a) \
+#define MADB_FREE(a) do { \
free((a));\
- (a)= NULL;
+ (a)= NULL; \
+} while(0)
+
#define MADB_ALLOC(a) malloc((a))
#define MADB_CALLOC(a) calloc((a) > 0 ? (a) : 1, sizeof(char))
#define MADB_REALLOC(a,b) realloc((a),(b))
++++++ implicit_decleration.patch ++++++
Index: mariadb-connector-odbc-3.1.9-ga-src/ma_common.c
===================================================================
--- mariadb-connector-odbc-3.1.9-ga-src.orig/ma_common.c
+++ mariadb-connector-odbc-3.1.9-ga-src/ma_common.c
@@ -21,6 +21,7 @@
* Moved to avoid redundant dependencies */
#include <ma_odbc.h>
+#include <wctype.h>
static unsigned int ValidChar(const char *start, const char *end)
{
Index: mariadb-connector-odbc-3.1.9-ga-src/ma_dsn.c
===================================================================
--- mariadb-connector-odbc-3.1.9-ga-src.orig/ma_dsn.c
+++ mariadb-connector-odbc-3.1.9-ga-src/ma_dsn.c
@@ -16,6 +16,7 @@
or write to the Free Software Foundation, Inc.,
51 Franklin St., Fifth Floor, Boston, MA 02110, USA
*************************************************************************************/
+#define _GNU_SOURCE
#include <ma_odbc.h>
Index: mariadb-connector-odbc-3.1.9-ga-src/ma_debug.c
===================================================================
--- mariadb-connector-odbc-3.1.9-ga-src.orig/ma_debug.c
+++ mariadb-connector-odbc-3.1.9-ga-src/ma_debug.c
@@ -17,6 +17,7 @@
51 Franklin St., Fifth Floor, Boston, MA 02110, USA
*************************************************************************************/
#include <ma_odbc.h>
+#include <wchar.h>
#ifdef MAODBC_DEBUG
extern char LogFile[];
++++++ mariadb-connector-odbc-3.1.7-ga-src.tar.gz ->
mariadb-connector-odbc-3.1.9-ga-src.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/mariadb-connector-odbc-3.1.7-ga-src/CMakeLists.txt
new/mariadb-connector-odbc-3.1.9-ga-src/CMakeLists.txt
--- old/mariadb-connector-odbc-3.1.7-ga-src/CMakeLists.txt 2020-04-07
22:32:37.000000000 +0200
+++ new/mariadb-connector-odbc-3.1.9-ga-src/CMakeLists.txt 2020-06-30
19:43:44.000000000 +0200
@@ -22,10 +22,10 @@
SET(MARIADB_ODBC_VERSION_MAJOR 3)
SET(MARIADB_ODBC_VERSION_MINOR 1)
-SET(MARIADB_ODBC_VERSION_PATCH 7)
+SET(MARIADB_ODBC_VERSION_PATCH 9)
SET(MARIADB_ODBC_VERSION_QUALITY "ga")
-SET(MARIADB_ODBC_VERSION "03.01.0007")
+SET(MARIADB_ODBC_VERSION "03.01.0009")
SET(MARIADB_DEFAULT_PLUGINS_SUBDIR "plugin")
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/ma_odbc_version.h.in
@@ -100,7 +100,7 @@
ENDIF()
MESSAGE(STATUS "Libraries installation dir: ${INSTALL_LIB_SUFFIX}")
SET(INSTALL_PLUGINDIR "${INSTALL_LIB_SUFFIX}/mariadb/plugin")
- MESSAGE(STATUS "Autentication Plugins installation dir:
${INSTALL_PLUGINDIR}")
+ MESSAGE(STATUS "Authentication Plugins installation dir:
${INSTALL_PLUGINDIR}")
ENDIF()
IF(WIN32 OR WITH_OPENSSL OR "${WITH_SSL}" STREQUAL "OPENSSL")
@@ -130,6 +130,22 @@
MESSAGE(STATUS "Configuring to build without SSL support")
ENDIF()
+IF(APPLE)
+ SET(CMAKE_SKIP_BUILD_RPATH FALSE)
+ SET(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)
+ SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH FALSE)
+ OPTION(WITH_IODBC "Build with iOdbc" ON)
+ CMAKE_POLICY(SET CMP0042 NEW)
+ CMAKE_POLICY(SET CMP0068 NEW)
+ set(CMAKE_INSTALL_RPATH "")
+ SET(CMAKE_INSTALL_NAME_DIR "")
+ SET(CMAKE_MACOSX_RPATH ON)
+ELSE()
+ OPTION(WITH_IODBC "Build with iOdbc" OFF)
+ENDIF()
+
+ADD_OPTION(WITH_UNIT_TESTS "build test suite" ON)
+
IF(EXISTS ${CMAKE_SOURCE_DIR}/libmariadb)
IF(GIT_BUILD_SRCPKG)
# We don't want conn/c (wrong) src pkg to be built.
@@ -138,8 +154,14 @@
ENDIF()
MESSAGE(STATUS "Running C/C cmake scripts")
INCLUDE(${CMAKE_SOURCE_DIR}/cmake/connector_c.cmake)
+
+ INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}
${CMAKE_SOURCE_DIR}/libmariadb/include)
+ INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}
${CMAKE_BINARY_DIR}/libmariadb/include)
ELSE()
SET(USE_SYSTEM_INSTALLED_LIB TRUE)
+ # Adding mariadb subdirs of standard include locations
+ INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR} "/usr/local/include/mariadb")
+ INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR} "/usr/include/mariadb")
MESSAGE(STATUS "There is no Connector/C sub-project folder, linking against
libmariadb installed on the system")
ENDIF()
@@ -148,12 +170,6 @@
ADD_OPTION(WITH_SIGNCODE "Digitally sign files" OFF)
ENDIF()
-IF(APPLE)
- OPTION(WITH_IODBC "Build with iOdbc" ON)
-ELSE()
- OPTION(WITH_IODBC "Build with iOdbc" OFF)
-ENDIF()
-#ADD_OPTION(WITH_UNIT_TESTS "build test suite" ON)
#ADD_OPTION(WITH_SSL "Enables use of TLS/SSL library" ON)
IF(WITH_SIGNCODE)
@@ -171,9 +187,6 @@
INCLUDE(${CMAKE_SOURCE_DIR}/cmake/SearchLibrary.cmake)
INCLUDE(${CMAKE_SOURCE_DIR}/cmake/SetValueMacro.cmake)
-INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR} ${CMAKE_SOURCE_DIR}/libmariadb/include)
-INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR}/libmariadb/include)
-
IF(WIN32)
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR} ${CMAKE_SOURCE_DIR}/dsn)
SET(ODBC_LIBS odbc32)
@@ -203,7 +216,7 @@
# SET(DSN_DIALOG_FILES ${DSN_DIALOG_FILES}
# ma_platform_win32.c)
- SET(PLATFORM_DEPENDENCIES ws2_32 Shlwapi)
+ SET(PLATFORM_DEPENDENCIES ws2_32 Shlwapi Pathcch)
IF (MSVC)
MESSAGE(STATUS "MSVC_VERSION= ${MSVC_VERSION}")
IF (NOT(MSVC_VERSION LESS 1900))
@@ -249,7 +262,6 @@
SET(CPACK_PACKAGE_VERSION
${MARIADB_ODBC_VERSION_MAJOR}.${MARIADB_ODBC_VERSION_MINOR}.${MARIADB_ODBC_VERSION_PATCH})
-SET(CPACK_ARCHIVE_COMPONENT_INSTALL ON)
SET(CPACK_COMPONENTS_ALL ClientPlugins ODBCLibs Documentation)
#SET(CPACK_COMPONENTS_ALL ODBCLibs Documentation)
SET(CPACK_COMPONENTS_ALL_IN_ONE_PACKAGE 1)
@@ -272,14 +284,12 @@
ADD_DEFINITIONS(-DSQLCOLATTRIB_SQLLEN_PTR)
ENDIF()
-# This is interim, we port ascii version to Linux first
IF(WIN32)
SET(UNICODE "W")
ELSE()
IF (DIRECT_LINK_TESTS)
ADD_DEFINITIONS(-DHAVE_UNICODE)
ENDIF()
-
ENDIF()
SET(LIBRARY_NAME "maodbc")
@@ -305,13 +315,19 @@
ADD_LIBRARY(${LIBRARY_NAME} SHARED ${MARIADB_ODBC_SOURCES} maodbcu.rc)
IF(APPLE)
- SET_TARGET_PROPERTIES(${LIBRARY_NAME} PROPERTIES LINK_FLAGS "-Wl")
+ SET(MAODBC_INSTALL_RPATH "${ODBC_LIB_DIR}" "@loader_path"
"/usr/local/opt/libiodbc" "/usr/local/iODBC/lib"
"/usr/local/opt/[email protected]/lib" "/usr/local/opt/libressl/lib")
+ SET_TARGET_PROPERTIES(${LIBRARY_NAME}
+ PROPERTIES LINK_FLAGS "-Wl"
+ INSTALL_RPATH_USE_LINK_PATH 0
+ BUILD_WITH_INSTALL_RPATH 1
+ INSTALL_RPATH "${MAODBC_INSTALL_RPATH}")
ELSE()
SET_TARGET_PROPERTIES(${LIBRARY_NAME} PROPERTIES LINK_FLAGS
"-Wl,--version-script=${CMAKE_SOURCE_DIR}/maodbc.def")
ENDIF()
ENDIF()
SET_TARGET_PROPERTIES(${LIBRARY_NAME} PROPERTIES LANGUAGE C)
+MESSAGE(STATUS "All linked targets/external dependencies:
${MARIADB_CLIENT_TARGET_NAME} ${ODBC_INSTLIBS} ${PLATFORM_DEPENDENCIES}")
TARGET_LINK_LIBRARIES(${LIBRARY_NAME} ${MARIADB_CLIENT_TARGET_NAME}
${ODBC_INSTLIBS} ${PLATFORM_DEPENDENCIES})
# Currently on Windows only
@@ -332,8 +348,13 @@
ADD_EXECUTABLE(dsn_test dsn_test.c)
TARGET_LINK_LIBRARIES(dsn_test ${MARIADB_LIB})
+ELSEIF(APPLE)
+ ADD_CUSTOM_COMMAND(TARGET maodbc POST_BUILD
+ COMMAND ${CMAKE_SOURCE_DIR}/osxpostbuild.sh ARGS
$<TARGET_FILE:${LIBRARY_NAME}>
+ )
ENDIF()
+INCLUDE("${CMAKE_SOURCE_DIR}/cmake/install.cmake")
SET(CPACK_PACKAGE_NAME "mariadb-connector-odbc")
IF(WIN32)
@@ -346,69 +367,71 @@
ADD_SUBDIRECTORY(osxinstall)
ENDIF()
INSTALL(TARGETS
- maodbc
- LIBRARY DESTINATION ./${INSTALL_LIB_SUFFIX}
+ ${LIBRARY_NAME}
+ LIBRARY DESTINATION ${INSTALL_LIBDIR}
COMPONENT ODBCLibs)
- IF(NOT DEFINED INSTALL_DOC_DIR)
- SET(INSTALL_DOC_DIR "./share/doc/${CPACK_PACKAGE_NAME}/" CACHE STRING
"Directory, where to install documentation(README)")
- ENDIF()
-
- IF(NOT DEFINED INSTALL_LICENSE_DIR)
- SET(INSTALL_LICENSE_DIR "./share/doc/${CPACK_PACKAGE_NAME}/" CACHE STRING
"Directory, where to install license file")
- ENDIF()
- MESSAGE(STATUS "Documetnation installed to ${INSTALL_DOC_DIR}")
- MESSAGE(STATUS "License file installed to ${INSTALL_LICENSE_DIR}")
+ #IF(NOT DEFINED INSTALL_DOC_DIR)
+ # SET(INSTALL_DOC_DIR
"${CMAKE_INSTALL_PREFIX}/share/doc/${CPACK_PACKAGE_NAME}/" CACHE STRING
"Directory, where to install documentation(README)")
+ #ENDIF()
+
+ #IF(NOT DEFINED INSTALL_LICENSE_DIR)
+ # SET(INSTALL_LICENSE_DIR
"${CMAKE_INSTALL_PREFIX}/share/doc/${CPACK_PACKAGE_NAME}/" CACHE STRING
"Directory, where to install license file")
+ #ENDIF()
+ MESSAGE(STATUS "Documentation and License file are installed to
${INSTALL_DOCDIR}")
+ # MESSAGE(STATUS "License file installed to ${INSTALL_LICENSE_DIR}")
INSTALL(FILES
${CMAKE_SOURCE_DIR}/README
DESTINATION
- ${INSTALL_DOC_DIR}
+ "${INSTALL_DOCDIR}"
COMPONENT Documentation)
INSTALL(FILES
${CMAKE_SOURCE_DIR}/COPYING
DESTINATION
- ${INSTALL_LICENSE_DIR}
+ "${INSTALL_DOCDIR}"
COMPONENT Documentation)
ENDIF()
# Tests. Checking if we have them. May be not the case if we are building from
source package
IF(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/test/CMakeLists.txt")
- ADD_SUBDIRECTORY(test)
- IF(NOT WIN32)
- # Configuring ini files for testing with UnixODBC
- SET_VALUE(TEST_DRIVER "maodbc_test")
- SET_VALUE(TEST_DSN "maodbc_test")
- SET_VALUE(TEST_PORT "3306")
- SET_VALUE(TEST_SERVER "localhost")
- SET_VALUE(TEST_SOCKET "")
- SET_VALUE(TEST_SCHEMA "test")
- SET_VALUE(TEST_UID "root")
- SET_VALUE(TEST_PASSWORD "")
-
- MESSAGE(STATUS "Configurig Test Driver: ${TEST_DRIVER}, Test DSN:
${TEST_DSN}, tcp://${TEST_UID}@${TEST_SERVER}:${TEST_PORT}/${TEST_SCHEMA}
socket: ${TEST_SOCKET}")
-
- ADD_CUSTOM_COMMAND(TARGET maodbc POST_BUILD
- COMMAND ${CMAKE_COMMAND} ARGS -DDRIVER_LIB_LOCATION=$<TARGET_FILE:maodbc>
- -DTEST_DRIVER=${TEST_DRIVER}
-
-DFILE_IN=${CMAKE_SOURCE_DIR}/test/odbcinst.ini.in
-
-DFILE_OUT=${CMAKE_BINARY_DIR}/test/odbcinst.ini
- -P
${CMAKE_SOURCE_DIR}/cmake/ConfigureFile.cmake
- )
-
- ADD_CUSTOM_COMMAND(TARGET maodbc POST_BUILD
- COMMAND ${CMAKE_COMMAND} ARGS -DTEST_DRIVER=${TEST_DRIVER}
- -DTEST_DSN=${TEST_DSN}
- -DTEST_PORT=${TEST_PORT}
- -DTEST_SERVER=${TEST_SERVER}
- -DTEST_SOCKET=${TEST_SOCKET}
- -DTEST_SCHEMA=${TEST_SCHEMA}
- -DTEST_UID=${TEST_UID}
- -DTEST_PASSWORD=${TEST_PASSWORD}
-
-DFILE_IN=${CMAKE_SOURCE_DIR}/test/odbc.ini.in
-
-DFILE_OUT=${CMAKE_BINARY_DIR}/test/odbc.ini
- -P
${CMAKE_SOURCE_DIR}/cmake/ConfigureFile.cmake
- )
+ IF(WITH_UNIT_TESTS)
+ ADD_SUBDIRECTORY(test)
+ IF(NOT WIN32)
+ # Configuring ini files for testing with UnixODBC
+ SET_VALUE(TEST_DRIVER "maodbc_test")
+ SET_VALUE(TEST_DSN "maodbc_test")
+ SET_VALUE(TEST_PORT "3306")
+ SET_VALUE(TEST_SERVER "localhost")
+ SET_VALUE(TEST_SOCKET "")
+ SET_VALUE(TEST_SCHEMA "test")
+ SET_VALUE(TEST_UID "root")
+ SET_VALUE(TEST_PASSWORD "")
+
+ MESSAGE(STATUS "Configurig Test Driver: ${TEST_DRIVER}, Test DSN:
${TEST_DSN}, tcp://${TEST_UID}@${TEST_SERVER}:${TEST_PORT}/${TEST_SCHEMA}
socket: ${TEST_SOCKET}")
+
+ ADD_CUSTOM_COMMAND(TARGET maodbc POST_BUILD
+ COMMAND ${CMAKE_COMMAND} ARGS
-DDRIVER_LIB_LOCATION=$<TARGET_FILE:maodbc>
+ -DTEST_DRIVER=${TEST_DRIVER}
+
-DFILE_IN=${CMAKE_SOURCE_DIR}/test/odbcinst.ini.in
+
-DFILE_OUT=${CMAKE_BINARY_DIR}/test/odbcinst.ini
+ -P
${CMAKE_SOURCE_DIR}/cmake/ConfigureFile.cmake
+ )
+
+ ADD_CUSTOM_COMMAND(TARGET maodbc POST_BUILD
+ COMMAND ${CMAKE_COMMAND} ARGS -DTEST_DRIVER=${TEST_DRIVER}
+ -DTEST_DSN=${TEST_DSN}
+ -DTEST_PORT=${TEST_PORT}
+ -DTEST_SERVER=${TEST_SERVER}
+ -DTEST_SOCKET=${TEST_SOCKET}
+ -DTEST_SCHEMA=${TEST_SCHEMA}
+ -DTEST_UID=${TEST_UID}
+ -DTEST_PASSWORD=${TEST_PASSWORD}
+
-DFILE_IN=${CMAKE_SOURCE_DIR}/test/odbc.ini.in
+
-DFILE_OUT=${CMAKE_BINARY_DIR}/test/odbc.ini
+ -P
${CMAKE_SOURCE_DIR}/cmake/ConfigureFile.cmake
+ )
+ ENDIF()
ENDIF()
ENDIF()
@@ -416,10 +439,14 @@
SET(CPACK_PACKAGE_VENDOR "MariaDB Corporation Ab")
SET(CPACK_PACKAGE_DESCRIPTION "MariaDB Connector/ODBC. ODBC driver library for
connecting to MariaDB and MySQL servers")
IF(NOT SYSTEM_NAME)
- STRING(TOLOWER ${CMAKE_SYSTEM_NAME} SYSTEM_NAME)
+ STRING(TOLOWER ${CMAKE_SYSTEM_NAME} system_name)
+ENDIF()
+IF(PACKAGE_PLATFORM_SUFFIX)
+ SET(CPACK_PACKAGE_FILE_NAME
"mariadb-connector-odbc-${CPACK_PACKAGE_VERSION}-${PACKAGE_PLATFORM_SUFFIX}")
+ELSE()
+ SET(CPACK_PACKAGE_FILE_NAME
"mariadb-connector-odbc-${CPACK_PACKAGE_VERSION}-${MARIADB_ODBC_VERSION_QUALITY}-${system_name}-${CMAKE_SYSTEM_PROCESSOR}")
ENDIF()
-MESSAGE(STATUS "${SYSTEM_NAME}")
-SET(CPACK_PACKAGE_FILE_NAME
"mariadb-connector-odbc-${CPACK_PACKAGE_VERSION}-${MARIADB_ODBC_VERSION_QUALITY}-${SYSTEM_NAME}-${CMAKE_SYSTEM_PROCESSOR}")
+MESSAGE(STATUS "Package Name: ${CPACK_PACKAGE_FILE_NAME}")
SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/COPYING")
SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README")
SET(CPACK_SOURCE_PACKAGE_FILE_NAME
"mariadb-connector-odbc-${CPACK_PACKAGE_VERSION}-${MARIADB_ODBC_VERSION_QUALITY}-src")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/mariadb-connector-odbc-3.1.7-ga-src/README.md
new/mariadb-connector-odbc-3.1.9-ga-src/README.md
--- old/mariadb-connector-odbc-3.1.7-ga-src/README.md 2020-04-07
22:32:37.000000000 +0200
+++ new/mariadb-connector-odbc-3.1.9-ga-src/README.md 2020-06-30
19:43:44.000000000 +0200
@@ -8,7 +8,7 @@
## Status
[](http://opensource.org/licenses/LGPL-2.1)
-[](https://travis-ci.org/MariaDB/mariadb-connector-odbc)
+[](https://travis-ci.org/MariaDB/mariadb-connector-odbc)
[](https://ci.appveyor.com/project/LawrinNovitsky/mariadb-connector-odbc)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/mariadb-connector-odbc-3.1.7-ga-src/cmake/FindDM.cmake
new/mariadb-connector-odbc-3.1.9-ga-src/cmake/FindDM.cmake
--- old/mariadb-connector-odbc-3.1.7-ga-src/cmake/FindDM.cmake 2020-04-07
22:32:37.000000000 +0200
+++ new/mariadb-connector-odbc-3.1.9-ga-src/cmake/FindDM.cmake 2020-06-30
19:43:44.000000000 +0200
@@ -34,86 +34,90 @@
SET(ODBC_INSTLIBS odbcinst)
ENDIF()
-FIND_PROGRAM(ODBC_CONFIG ${ODBC_CONFIG_EXEC}
- PATH
- /usr/bin
- ${DM_DIR}
- )
-
-IF(ODBC_CONFIG)
- MESSAGE(STATUS "Found ${ODBC_CONFIG_EXEC}: ${ODBC_CONFIG}")
- EXECUTE_PROCESS(COMMAND ${ODBC_CONFIG} ${ODBC_CONFIG_INCLUDES}
- OUTPUT_VARIABLE result)
- STRING(REPLACE "\n" "" ODBC_INCLUDE_DIR ${result})
- EXECUTE_PROCESS(COMMAND ${ODBC_CONFIG} ${ODBC_CONFIG_LIBS}
- OUTPUT_VARIABLE result)
- STRING(REPLACE "\n" "" ODBC_LIB_DIR ${result})
-
- IF(WITH_IODBC)
- STRING(REPLACE "-I" "" ODBC_INCLUDE_DIR ${ODBC_INCLUDE_DIR})
- STRING(REPLACE "-L" "" ODBC_LIB_DIR ${ODBC_LIB_DIR})
- STRING(REGEX REPLACE " +-liodbc -liodbcinst" "" ODBC_LIB_DIR
${ODBC_LIB_DIR})
- ENDIF()
+IF(ODBC_LIB_DIR AND ODBC_INCLUDE_DIR)
+ MESSAGE(STATUS "Using preset values for DM dirs")
ELSE()
- MESSAGE(STATUS "${ODBC_CONFIG_EXEC} is not found ")
- # Try to find the include directory, giving precedence to special variables
- SET(LIB_PATHS /usr/local /usr /usr/local/Cellar/libiodbc/3.52.12)
-
- IF("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
- SET(LIB_PATHS "${LIB_PATHS}" "/usr/lib/x86_64-linux-gnu")
-
- IF(EXISTS "/usr/lib64/")
- SET(LIB_SUFFIX "lib64" "x86_64-linux-gnu")
- ELSE()
- SET(LIB_SUFFIX "lib" "x86_64-linux-gnu")
+ FIND_PROGRAM(ODBC_CONFIG ${ODBC_CONFIG_EXEC}
+ PATH
+ /usr/bin
+ ${DM_DIR}
+ )
+
+ IF(ODBC_CONFIG)
+ MESSAGE(STATUS "Found ${ODBC_CONFIG_EXEC}: ${ODBC_CONFIG}")
+ EXECUTE_PROCESS(COMMAND ${ODBC_CONFIG} ${ODBC_CONFIG_INCLUDES}
+ OUTPUT_VARIABLE result)
+ STRING(REPLACE "\n" "" ODBC_INCLUDE_DIR ${result})
+ EXECUTE_PROCESS(COMMAND ${ODBC_CONFIG} ${ODBC_CONFIG_LIBS}
+ OUTPUT_VARIABLE result)
+ STRING(REPLACE "\n" "" ODBC_LIB_DIR ${result})
+
+ IF(WITH_IODBC)
+ STRING(REPLACE "-I" "" ODBC_INCLUDE_DIR ${ODBC_INCLUDE_DIR})
+ STRING(REPLACE "-L" "" ODBC_LIB_DIR ${ODBC_LIB_DIR})
+ STRING(REGEX REPLACE " +-liodbc -liodbcinst" "" ODBC_LIB_DIR
${ODBC_LIB_DIR})
ENDIF()
-
ELSE()
- SET(LIB_PATHS "${LIB_PATHS}" "/usr/local/lib/i386-linux-gnu"
"/usr/lib/i386-linux-gnu" "/usr/local/lib/i686-linux-gnu"
"/usr/lib/i686-linux-gnu")
- SET(LIB_SUFFIX "lib" "i386-linux-gnu" "i686-linux-gnu")
- ENDIF()
+ MESSAGE(STATUS "${ODBC_CONFIG_EXEC} is not found ")
+ # Try to find the include directory, giving precedence to special variables
+ SET(LIB_PATHS /usr/local /usr /usr/local/Cellar/libiodbc/3.52.12)
+
+ IF("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
+ SET(LIB_PATHS "${LIB_PATHS}" "/usr/lib/x86_64-linux-gnu")
+
+ IF(EXISTS "/usr/lib64/")
+ SET(LIB_SUFFIX "lib64" "x86_64-linux-gnu")
+ ELSE()
+ SET(LIB_SUFFIX "lib" "x86_64-linux-gnu")
+ ENDIF()
+
+ ELSE()
+ SET(LIB_PATHS "${LIB_PATHS}" "/usr/local/lib/i386-linux-gnu"
"/usr/lib/i386-linux-gnu" "/usr/local/lib/i686-linux-gnu"
"/usr/lib/i686-linux-gnu")
+ SET(LIB_SUFFIX "lib" "i386-linux-gnu" "i686-linux-gnu")
+ ENDIF()
- FIND_PATH(ODBC_INCLUDE_DIR sql.h
- HINTS ${DM_INCLUDE_DIR}
- ${DM_DIR}
- ENV DM_INCLUDE_DIR
- ENV DM_DIR
- PATHS /usr/local
- /usr
- /usr/local/Cellar/libiodbc/3.52.12
- PATH_SUFFIXES include include/iodbc
- NO_DEFAULT_PATH
- DOC "Driver Manager Includes")
- # Giving chance to cmake_(environment)path
- FIND_PATH(ODBC_INCLUDE_DIR sql.h
- DOC "Driver Manager Includes")
+ FIND_PATH(ODBC_INCLUDE_DIR sql.h
+ HINTS ${DM_INCLUDE_DIR}
+ ${DM_DIR}
+ ENV DM_INCLUDE_DIR
+ ENV DM_DIR
+ PATHS /usr/local
+ /usr
+ /usr/local/Cellar/libiodbc/3.52.12
+ PATH_SUFFIXES include include/iodbc
+ NO_DEFAULT_PATH
+ DOC "Driver Manager Includes")
+ # Giving chance to cmake_(environment)path
+ FIND_PATH(ODBC_INCLUDE_DIR sql.h
+ DOC "Driver Manager Includes")
- IF(ODBC_INCLUDE_DIR)
- MESSAGE(STATUS "Found ODBC Driver Manager includes: ${ODBC_INCLUDE_DIR}")
+ IF(ODBC_INCLUDE_DIR)
+ MESSAGE(STATUS "Found ODBC Driver Manager includes: ${ODBC_INCLUDE_DIR}")
+ ENDIF()
+ # Try to find DM libraries, giving precedence to special variables
+ FIND_PATH(ODBC_LIB_DIR "lib${ODBC_LIBS}.so"
+ HINTS ${DM_LIB_DIR}
+ ${DM_DIR}
+ ENV DM_LIB_DIR
+ ENV DM_DIR
+ PATHS ${LIB_PATHS}
+ PATH_SUFFIXES ${LIB_SUFFIX}
+ NO_DEFAULT_PATH
+ DOC "Driver Manager Libraries")
+ FIND_PATH(ODBC_LIB_DIR "lib${ODBC_LIBS}.so"
+ DOC "Driver Manager Libraries")
+ FIND_PATH(ODBCINST_LIB_DIR "lib${ODBC_INSTLIBS}.so"
+ HINTS ${DM_LIB_DIR}
+ ${DM_DIR}
+ ENV DM_LIB_DIR
+ ENV DM_DIR
+ PATHS ${LIB_PATHS}
+ PATH_SUFFIXES ${LIB_SUFFIX}
+ NO_DEFAULT_PATH
+ DOC "Driver Manager Libraries")
+ FIND_PATH(ODBCINST_LIB_DIR "lib${ODBC_INSTLIBS}.so"
+ DOC "Driver Manager Libraries")
ENDIF()
- # Try to find DM libraries, giving precedence to special variables
- FIND_PATH(ODBC_LIB_DIR "lib${ODBC_LIBS}.so"
- HINTS ${DM_LIB_DIR}
- ${DM_DIR}
- ENV DM_LIB_DIR
- ENV DM_DIR
- PATHS ${LIB_PATHS}
- PATH_SUFFIXES ${LIB_SUFFIX}
- NO_DEFAULT_PATH
- DOC "Driver Manager Libraries")
- FIND_PATH(ODBC_LIB_DIR "lib${ODBC_LIBS}.so"
- DOC "Driver Manager Libraries")
- FIND_PATH(ODBCINST_LIB_DIR "lib${ODBC_INSTLIBS}.so"
- HINTS ${DM_LIB_DIR}
- ${DM_DIR}
- ENV DM_LIB_DIR
- ENV DM_DIR
- PATHS ${LIB_PATHS}
- PATH_SUFFIXES ${LIB_SUFFIX}
- NO_DEFAULT_PATH
- DOC "Driver Manager Libraries")
- FIND_PATH(ODBCINST_LIB_DIR "lib${ODBC_INSTLIBS}.so"
- DOC "Driver Manager Libraries")
ENDIF()
IF(ODBC_LIB_DIR AND ODBC_INCLUDE_DIR)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/mariadb-connector-odbc-3.1.7-ga-src/cmake/install.cmake
new/mariadb-connector-odbc-3.1.9-ga-src/cmake/install.cmake
--- old/mariadb-connector-odbc-3.1.7-ga-src/cmake/install.cmake 1970-01-01
01:00:00.000000000 +0100
+++ new/mariadb-connector-odbc-3.1.9-ga-src/cmake/install.cmake 2020-06-30
19:43:44.000000000 +0200
@@ -0,0 +1,148 @@
+#
+# Copyright (C) 2013-2016 MariaDB Corporation AB
+#
+# Redistribution and use is allowed according to the terms of the New
+# BSD license.
+# For details see the COPYING-CMAKE-SCRIPTS file.
+#
+
+#
+# This file contains settings for the following layouts:
+#
+# - RPM
+# Built with default prefix=/usr
+#
+#
+# The following va+riables are used and can be overwritten
+#
+# INSTALL_LAYOUT installation layout (DEFAULT = standard for tar.gz and
zip packages
+# RPM packages
+#
+# INSTALL_BINDIR location of binaries (mariadb_config)
+# INSTALL_LIBDIR location of libraries
+# INSTALL_PLUGINDIR location of plugins
+
+IF(NOT INSTALL_LAYOUT)
+ SET(INSTALL_LAYOUT "DEFAULT")
+ENDIF()
+
+SET(INSTALL_LAYOUT ${INSTALL_LAYOUT} CACHE
+ STRING "Installation layout. Currently supported options are DEFAULT (tar.gz
and zip), RPM and DEB")
+
+# On Windows we only provide zip and .msi. Latter one uses a different
packager.
+IF(UNIX)
+ IF(INSTALL_LAYOUT MATCHES "RPM")
+ SET(libmariadb_prefix "/usr")
+ ELSEIF(INSTALL_LAYOUT MATCHES "DEFAULT|DEB")
+ SET(libmariadb_prefix ${CMAKE_INSTALL_PREFIX})
+ ENDIF()
+ENDIF()
+
+IF(CMAKE_DEFAULT_PREFIX_INITIALIZED_BY_DEFAULT)
+ SET(CMAKE_DEFAULT_PREFIX ${libmariadb_prefix} CACHE PATH "Installation
prefix" FORCE)
+ENDIF()
+
+# check if the specified installation layout is valid
+SET(VALID_INSTALL_LAYOUTS "DEFAULT" "RPM" "DEB")
+LIST(FIND VALID_INSTALL_LAYOUTS "${INSTALL_LAYOUT}" layout_no)
+IF(layout_no EQUAL -1)
+ MESSAGE(FATAL_ERROR "Invalid installation layout ${INSTALL_LAYOUT}. Please
specify one of the following layouts: ${VALID_INSTALL_LAYOUTS}")
+ENDIF()
+
+
+
+#
+# Todo: We don't generate man pages yet, will fix it
+# later (webhelp to man transformation)
+#
+
+#
+# DEFAULT layout
+#
+
+SET(INSTALL_BINDIR_DEFAULT "bin")
+SET(INSTALL_LIBDIR_DEFAULT "lib/mariadb")
+SET(INSTALL_PCDIR_DEFAULT "lib/pkgconfig")
+SET(INSTALL_INCLUDEDIR_DEFAULT "include/mariadb")
+SET(INSTALL_DOCDIR_DEFAULT "docs")
+IF(NOT IS_SUBPROJECT)
+ SET(INSTALL_PLUGINDIR_DEFAULT "lib/mariadb/plugin")
+ELSE()
+ENDIF()
+SET(LIBMARIADB_STATIC_DEFAULT "mariadbclient")
+#
+# RPM layout
+#
+SET(INSTALL_BINDIR_RPM "bin")
+IF((CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64" OR CMAKE_SYSTEM_PROCESSOR MATCHES
"ppc64" OR CMAKE_SYSTEM_PROCESSOR MATCHES "ppc64le" OR CMAKE_SYSTEM_PROCESSOR
MATCHES "aarch64" OR CMAKE_SYSTEM_PROCESSOR MATCHES "s390x") AND
CMAKE_SIZEOF_VOID_P EQUAL 8)
+ SET(INSTALL_LIBDIR_RPM "lib64/mariadb")
+ SET(INSTALL_PCDIR_RPM "lib64/pkgconfig")
+ SET(INSTALL_PLUGINDIR_RPM "lib64/mariadb/plugin")
+ELSE()
+ SET(INSTALL_LIBDIR_RPM "lib/mariadb")
+ SET(INSTALL_PCDIR_RPM "lib/pkgconfig")
+ SET(INSTALL_PLUGINDIR_RPM "lib/mariadb/plugin")
+ENDIF()
+SET(INSTALL_INCLUDEDIR_RPM "include")
+SET(INSTALL_DOCDIR_RPM "docs")
+SET(LIBMARIADB_STATIC_RPM "mariadbclient")
+
+#
+# DEB layout
+#
+SET(INSTALL_BINDIR_DEB "bin")
+SET(INSTALL_LIBDIR_DEB "lib/${CMAKE_LIBRARY_ARCHITECTURE}")
+SET(INSTALL_PCDIR_DEB "lib/${CMAKE_LIBRARY_ARCHITECTURE}/pkgconfig")
+SET(INSTALL_PLUGINDIR_DEB
"${INSTALL_LIBDIR_DEB}/libmariadb${CPACK_PACKAGE_VERSION_MAJOR}/plugin")
+SET(INSTALL_INCLUDEDIR_DEB "include/mariadb")
+SET(LIBMARIADB_STATIC_DEB "mariadb")
+
+IF(INSTALL_LAYOUT MATCHES "DEB")
+ SET(INSTALL_PLUGINDIR_CLIENT ${INSTALL_PLUGINDIR_DEB})
+ENDIF()
+
+
+#
+# Overwrite defaults
+#
+IF(INSTALL_LIBDIR)
+ SET(INSTALL_LIBDIR_${INSTALL_LAYOUT} ${INSTALL_LIBDIR})
+ENDIF()
+
+IF(INSTALL_PCDIR)
+ SET(INSTALL_PCDIR_${INSTALL_LAYOUT} ${INSTALL_PCDIR})
+ENDIF()
+
+IF(INSTALL_PLUGINDIR)
+ SET(INSTALL_PLUGINDIR_${INSTALL_LAYOUT} ${INSTALL_PLUGINDIR})
+ENDIF()
+
+# Extra INSTALL_PLUGINDIR_CLIENT that overrides any INSTALL_PLUGINDIR override
+IF(INSTALL_PLUGINDIR_CLIENT)
+ SET(INSTALL_PLUGINDIR_${INSTALL_LAYOUT} ${INSTALL_PLUGINDIR_CLIENT})
+ENDIF()
+
+IF(INSTALL_INCLUDEDIR)
+ SET(INSTALL_INCLUDEDIR_${INSTALL_LAYOUT} ${INSTALL_INCLUDEDIR})
+ENDIF()
+
+IF(INSTALL_BINDIR)
+ SET(INSTALL_BINDIR_${INSTALL_LAYOUT} ${INSTALL_BINDIR})
+ENDIF()
+
+IF(NOT INSTALL_PREFIXDIR)
+ SET(INSTALL_PREFIXDIR_${INSTALL_LAYOUT} ${libmariadb_prefix})
+ELSE()
+ SET(INSTALL_PREFIXDIR_${INSTALL_LAYOUT} ${INSTALL_PREFIXDIR})
+ENDIF()
+
+IF(DEFINED INSTALL_SUFFIXDIR)
+ SET(INSTALL_SUFFIXDIR_${INSTALL_LAYOUT} ${INSTALL_SUFFIXDIR})
+ENDIF()
+
+FOREACH(dir "BIN" "LIB" "PC" "INCLUDE" "DOC" "PLUGIN")
+ SET(INSTALL_${dir}DIR ${INSTALL_${dir}DIR_${INSTALL_LAYOUT}})
+ MARK_AS_ADVANCED(INSTALL_${dir}DIR)
+ #MESSAGE1(INSTALL_${dir}DIR "MariaDB Connector ODBC:
INSTALL_${dir}DIR=${INSTALL_${dir}DIR}")
+ENDFOREACH()
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/mariadb-connector-odbc-3.1.7-ga-src/dsn/odbc_dsn.c
new/mariadb-connector-odbc-3.1.9-ga-src/dsn/odbc_dsn.c
--- old/mariadb-connector-odbc-3.1.7-ga-src/dsn/odbc_dsn.c 2020-04-07
22:32:37.000000000 +0200
+++ new/mariadb-connector-odbc-3.1.9-ga-src/dsn/odbc_dsn.c 2020-06-30
19:43:44.000000000 +0200
@@ -16,7 +16,6 @@
or write to the Free Software Foundation, Inc.,
51 Franklin St., Fifth Floor, Boston, MA 02110, USA
*************************************************************************************/
-#define WIN32_LEAN_AND_MEAN
#include <Windows.h>
#include <stdlib.h>
@@ -83,6 +82,7 @@
{&DsnKeys[14], 2, ckReconnect, 0, 0},
{&DsnKeys[15], 2, ckConnectPrompt, 0, 0},
{&DsnKeys[16], 2, cbCharset, 0, 0},
+ {&DsnKeys[34], 2, txtServerKey, 260, 0},
{&DsnKeys[18], 3, txtPluginDir, 260, 0},
{&DsnKeys[19], 4, txtSslKey, 260, 0},
{&DsnKeys[20], 4, txtSslCert, 260, 0},
@@ -94,7 +94,7 @@
{&DsnKeys[32], 4, cbTls12, 2, 0},
{&DsnKeys[32], 4, cbTls13, 4, 0},
{&DsnKeys[33], 4, cbForceTls, 0, 0},
- {&DsnKeys[34], 4, txtServerKey, 260, 0},
+ {&DsnKeys[27], 4, txtCrl, 0, 0},
{&DsnKeys[25], 4, txtTlsPeerFp, 41, 0},
{&DsnKeys[26], 4, txtTlsPeerFpList, 260, 0 },
{NULL, 0, 0, 0, 0}
@@ -729,6 +729,10 @@
res= SelectPath(hDlg, txtTlsPeerFpList, L"Select File with SHA1
fingerprints of server certificates", FALSE, OpenCurSelection);
OpenCurSelection= OpenCurSelection && !res;
return res;
+ case pbCrlBrowse:
+ res = SelectPath(hDlg, txtCrl, L"Select PEM File Certificate Revocation
List(CRL)", FALSE, OpenCurSelection);
+ OpenCurSelection = OpenCurSelection && !res;
+ return res;
case rbTCP:
case rbPipe:
if (HIWORD(wParam) == BN_CLICKED)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/mariadb-connector-odbc-3.1.7-ga-src/dsn/odbc_dsn.rc
new/mariadb-connector-odbc-3.1.9-ga-src/dsn/odbc_dsn.rc
--- old/mariadb-connector-odbc-3.1.7-ga-src/dsn/odbc_dsn.rc 2020-04-07
22:32:37.000000000 +0200
+++ new/mariadb-connector-odbc-3.1.9-ga-src/dsn/odbc_dsn.rc 2020-06-30
19:43:44.000000000 +0200
@@ -129,21 +129,27 @@
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_SYSMENU
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
- LTEXT "Do you want tio send initial statement(s) after
establishing connection to MariaDB?",IDC_STATIC,7,7,264,8,0,WS_EX_TRANSPARENT
- EDITTEXT txtInitCmd,74,30,197,39,ES_MULTILINE | ES_AUTOHSCROLL |
WS_VSCROLL
- LTEXT "Statement(s):",IDC_STATIC,20,32,46,8,0,WS_EX_TRANSPARENT
- RTEXT "Connection timeout in
sec:",IDC_STATIC,17,77,86,8,0,WS_EX_TRANSPARENT
- EDITTEXT txtConnectionTimeOut,111,75,40,14,ES_AUTOHSCROLL
- CONTROL "Enable automatic
&reconnect",ckReconnect,"Button",BS_AUTOCHECKBOX |
WS_TABSTOP,16,94,107,10,WS_EX_TRANSPARENT
- CONTROL "Don't prompt when
connecting",ckConnectPrompt,"Button",BS_AUTOCHECKBOX |
WS_TABSTOP,16,110,113,10,WS_EX_TRANSPARENT
- CONTROL "Use compression",ckCompressed,"Button",BS_AUTOCHECKBOX |
WS_TABSTOP,163,94,107,10,WS_EX_TRANSPARENT
- CONTROL "Read odbc section from
my.cnf",ckUseMycnf,"Button",BS_AUTOCHECKBOX |
WS_TABSTOP,163,110,198,10,WS_EX_TRANSPARENT
+ LTEXT "Do you want to send initial statement(s) after
establishing connection to MariaDB?",IDC_STATIC,7,0,264,8,0,WS_EX_TRANSPARENT
+ EDITTEXT txtInitCmd,74,15,197,39,ES_MULTILINE | ES_AUTOHSCROLL |
WS_VSCROLL
+ LTEXT "Statement(s):",IDC_STATIC,20,17,46,8,0,WS_EX_TRANSPARENT
+ RTEXT "Connection timeout in
sec:",IDC_STATIC,17,62,86,8,0,WS_EX_TRANSPARENT
+ EDITTEXT txtConnectionTimeOut,111,60,40,14,ES_AUTOHSCROLL
+ CONTROL "Enable automatic
&reconnect",ckReconnect,"Button",BS_AUTOCHECKBOX |
WS_TABSTOP,16,79,107,10,WS_EX_TRANSPARENT
+ CONTROL "Don't prompt when
connecting",ckConnectPrompt,"Button",BS_AUTOCHECKBOX |
WS_TABSTOP,16,95,113,10,WS_EX_TRANSPARENT
+ CONTROL "Use compression",ckCompressed,"Button",BS_AUTOCHECKBOX |
WS_TABSTOP,163,79,107,10,WS_EX_TRANSPARENT
+ CONTROL "Read odbc section from
my.cnf",ckUseMycnf,"Button",BS_AUTOCHECKBOX |
WS_TABSTOP,163,95,198,10,WS_EX_TRANSPARENT
+
+ COMBOBOX cbCharset,113,110,160,80,CBS_DROPDOWN |
CBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
+ RTEXT "Connection Character
Set:",IDC_STATIC,7,113,96,8,0,WS_EX_TRANSPARENT
+
+ RTEXT "Server RSA public
key:",IDC_STATIC,15,128,88,8,0,WS_EX_TRANSPARENT
+ EDITTEXT txtServerKey,113,127,110,12,ES_AUTOHSCROLL
+ PUSHBUTTON "Browse",pbServerKeyBrowse,224,126,30,14
+
PUSHBUTTON "Cancel",IDCANCEL,178,149,50,14
PUSHBUTTON "Next >",PB_NEXT,104,149,50,14
PUSHBUTTON "< Previous",PB_PREV,50,149,50,14,WS_DISABLED
PUSHBUTTON "Help",IDCANCEL4,236,149,50,14
- COMBOBOX cbCharset,113,127,160,80,CBS_DROPDOWN |
CBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
- RTEXT "Connection Character
Set:",IDC_STATIC,7,130,96,8,0,WS_EX_TRANSPARENT
END
Page_3 DIALOGEX 0, 0, 299, 182
@@ -165,11 +171,11 @@
PUSHBUTTON "Help",IDCANCEL4,236,149,50,14
END
-Page_4 DIALOGEX 0, 0, 299, 182
+Page_4 DIALOGEX -10, -9, 320, 188
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_SYSMENU
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
- GROUPBOX "SSL Settings",IDC_STATIC,7,-2,278,148,0,WS_EX_TRANSPARENT
+ GROUPBOX "TLS Settings",IDC_STATIC,1,-2,303,151,0,WS_EX_TRANSPARENT
LTEXT "Key",IDC_STATIC,15,10,56,8,0,WS_EX_TRANSPARENT
EDITTEXT txtSslKey,84,10,110,10,ES_AUTOHSCROLL
@@ -199,11 +205,11 @@
CONTROL "v.1.2",cbTls12,"Button",BS_AUTOCHECKBOX |
WS_TABSTOP,155,91,30,10,WS_EX_TRANSPARENT
CONTROL "v.1.3",cbTls13,"Button",BS_AUTOCHECKBOX |
WS_TABSTOP,185,91,30,10,WS_EX_TRANSPARENT
- LTEXT "Server public
key",IDC_STATIC,15,104,68,8,0,WS_EX_TRANSPARENT
- EDITTEXT txtServerKey,84,104,110,10,ES_AUTOHSCROLL
- PUSHBUTTON "Browse",pbServerKeyBrowse,195,102,30,14
+ LTEXT "CRL File",IDC_STATIC,15,104,68,8,0,WS_EX_TRANSPARENT
+ EDITTEXT txtCrl,84,104,110,10,ES_AUTOHSCROLL
+ PUSHBUTTON "Browse",pbCrlBrowse,195,102,30,14
- LTEXT "Tls Peer Fingerprint", IDC_STATIC, 15, 118, 68, 8, 0,
WS_EX_TRANSPARENT
+ LTEXT "TLS Peer Fingerprint", IDC_STATIC, 15, 118, 68, 8, 0,
WS_EX_TRANSPARENT
EDITTEXT txtTlsPeerFp, 84, 118, 110, 10, ES_AUTOHSCROLL
LTEXT "Fingerprints List File", IDC_STATIC, 15, 132, 68, 8, 0,
WS_EX_TRANSPARENT
Binary files old/mariadb-connector-odbc-3.1.7-ga-src/dsn/resource.h and
new/mariadb-connector-odbc-3.1.9-ga-src/dsn/resource.h differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/mariadb-connector-odbc-3.1.7-ga-src/ma_connection.c
new/mariadb-connector-odbc-3.1.9-ga-src/ma_connection.c
--- old/mariadb-connector-odbc-3.1.7-ga-src/ma_connection.c 2020-04-07
22:32:37.000000000 +0200
+++ new/mariadb-connector-odbc-3.1.9-ga-src/ma_connection.c 2020-06-30
19:43:44.000000000 +0200
@@ -18,6 +18,8 @@
*************************************************************************************/
#include <ma_odbc.h>
+extern const char* DefaultPluginLocation;
+
struct st_madb_isolation MADB_IsolationLevel[] =
{
{SQL_TRANSACTION_REPEATABLE_READ, "REPEATABLE READ"},
@@ -140,7 +142,7 @@
if (!Dbc)
{
/* Todo: check */
- if (Attribute != SQL_ATTR_TRACE ||
+ if (Attribute != SQL_ATTR_TRACE &&
Attribute != SQL_ATTR_TRACEFILE)
return SQL_INVALID_HANDLE;
return SQL_SUCCESS;
@@ -609,10 +611,9 @@
}
else
{
- const char *DefaultLocation= MADB_GetDefaultPluginsDir(Connection);
- if (DefaultLocation != NULL)
+ if (DefaultPluginLocation != NULL)
{
- mysql_optionsv(Connection->mariadb, MYSQL_PLUGIN_DIR, DefaultLocation);
+ mysql_optionsv(Connection->mariadb, MYSQL_PLUGIN_DIR,
DefaultPluginLocation);
}
}
@@ -776,6 +777,10 @@
mysql_optionsv(Connection->mariadb, MYSQL_OPT_SSL_ENFORCE, (const
char*)&ForceTls);
}
+ if (!MADB_IS_EMPTY(Dsn->SslCrl))
+ {
+ mysql_optionsv(Connection->mariadb, MYSQL_OPT_SSL_CRL, Dsn->SslCrl);
+ }
if (!MADB_IS_EMPTY(Dsn->SslCrlPath))
{
mysql_optionsv(Connection->mariadb, MYSQL_OPT_SSL_CRLPATH,
Dsn->SslCrlPath);
@@ -795,6 +800,11 @@
mysql_optionsv(Connection->mariadb, MARIADB_OPT_TLS_PEER_FP_LIST,
(void*)Dsn->TlsPeerFpList);
}
+ if (!MADB_IS_EMPTY(Dsn->TlsKeyPwd))
+ {
+ mysql_optionsv(Connection->mariadb, MARIADB_OPT_TLS_PASSPHRASE,
(void*)Dsn->TlsKeyPwd);
+ }
+
if (!mysql_real_connect(Connection->mariadb,
Dsn->Socket ? "localhost" : Dsn->ServerName, Dsn->UserName,
Dsn->Password,
Dsn->Catalog && Dsn->Catalog[0] ? Dsn->Catalog : NULL, Dsn->Port,
Dsn->Socket, client_flags))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/mariadb-connector-odbc-3.1.7-ga-src/ma_connection.h
new/mariadb-connector-odbc-3.1.9-ga-src/ma_connection.h
--- old/mariadb-connector-odbc-3.1.7-ga-src/ma_connection.h 2020-04-07
22:32:37.000000000 +0200
+++ new/mariadb-connector-odbc-3.1.9-ga-src/ma_connection.h 2020-06-30
19:43:44.000000000 +0200
@@ -57,7 +57,7 @@
SQLSMALLINT *StringLengthPtr, my_bool isWChar);
BOOL MADB_SqlMode(MADB_Dbc *Connection, enum enum_madb_sql_mode SqlMode);
/* Has platform versions */
-const char* MADB_GetDefaultPluginsDir(MADB_Dbc *Dbc);
+char* MADB_GetDefaultPluginsDir(char* Buffer, size_t Size);
#define MADB_SUPPORTED_CONVERSIONS SQL_CVT_BIGINT | SQL_CVT_BIT |
SQL_CVT_CHAR | SQL_CVT_DATE |\
SQL_CVT_DECIMAL | SQL_CVT_DOUBLE |
SQL_CVT_FLOAT |\
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/mariadb-connector-odbc-3.1.7-ga-src/ma_debug.h
new/mariadb-connector-odbc-3.1.9-ga-src/ma_debug.h
--- old/mariadb-connector-odbc-3.1.7-ga-src/ma_debug.h 2020-04-07
22:32:37.000000000 +0200
+++ new/mariadb-connector-odbc-3.1.9-ga-src/ma_debug.h 2020-06-30
19:43:44.000000000 +0200
@@ -50,7 +50,7 @@
{\
SYSTEMTIME st;\
GetSystemTime(&st);\
- ma_debug_print(0, ">>> %d-%02d-%02d %02d:%02d:%02d --- %s (thread: %d)
---", st.wYear, st.wMonth, st.wDay, st.wHour, st.wMinute, st.wSecond, A,
((MADB_Dbc*)(C))->mariadb ? mysql_thread_id(((MADB_Dbc*)(C))->mariadb) : 0);\
+ ma_debug_print(0, ">>> %d-%02d-%02d %02d:%02d:%02d --- %s (thread: %lu)
---", st.wYear, st.wMonth, st.wDay, st.wHour, st.wMinute, st.wSecond, A,
((MADB_Dbc*)(C))->mariadb ? mysql_thread_id(((MADB_Dbc*)(C))->mariadb) : 0);\
}
#else
#define MDBUG_C_ENTER(C,A)\
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/mariadb-connector-odbc-3.1.7-ga-src/ma_dsn.c
new/mariadb-connector-odbc-3.1.9-ga-src/ma_dsn.c
--- old/mariadb-connector-odbc-3.1.7-ga-src/ma_dsn.c 2020-04-07
22:32:37.000000000 +0200
+++ new/mariadb-connector-odbc-3.1.9-ga-src/ma_dsn.c 2020-06-30
19:43:44.000000000 +0200
@@ -72,7 +72,8 @@
{"USE_MYCNF", offsetof(MADB_Dsn, ReadMycnf), DSN_TYPE_OPTION,
MADB_OPT_FLAG_USE_CNF, 0},
{"TLSVERSION", offsetof(MADB_Dsn, TlsVersion),
DSN_TYPE_CBOXGROUP, 0, 0},
{"FORCETLS", offsetof(MADB_Dsn, ForceTls), DSN_TYPE_BOOL,
0, 0},
- {"SERVERKEY", offsetof(MADB_Dsn, ServerKey), DSN_TYPE_STRING,
0, 0},
+ {"SERVERKEY", offsetof(MADB_Dsn, ServerKey), DSN_TYPE_STRING,
0, 0},
+ {"TLSKEYPWD", offsetof(MADB_Dsn, TlsKeyPwd), DSN_TYPE_STRING,
0, 0},
/* Aliases. Here offset is index of aliased key */
{"SERVERNAME", DSNKEY_SERVER_INDEX, DSN_TYPE_STRING,
0, 1},
{"USER", DSNKEY_UID_INDEX, DSN_TYPE_STRING,
0, 1},
@@ -156,7 +157,7 @@
MADB_FREE(Dsn->TlsPeerFpList);
MADB_FREE(Dsn->SaveFile);
MADB_FREE(Dsn->ServerKey);
-
+ MADB_FREE(Dsn->TlsKeyPwd);
if (Dsn->FreeMe)
MADB_FREE(Dsn);
}
@@ -484,8 +485,8 @@
/* {{{ MADB_ParseConnString */
my_bool MADB_ParseConnString(MADB_Dsn *Dsn, const char *String, size_t Length,
char Delimiter)
{
- char *Buffer, *Key, *Value;
- my_bool ret;
+ char *Buffer, *Key, *Value, *ValueBuf;
+ my_bool ret= TRUE;
if (!String)
return FALSE;
@@ -498,10 +499,19 @@
Buffer= MADB_ALLOC(Length + 1);
Buffer= memcpy(Buffer, String, Length + 1);
Key= Buffer;
+ ValueBuf= MADB_ALLOC(Length - 4); /*DSN=<value> - DSN or DRIVER must be in */
while (Key && Key < ((char *)Buffer + Length))
{
int i= 0;
+
+ /* The case of ;; - "empty key/value pair. Probably that shouldn't be
allowed. But parser uset to digest this, so leaving this as a feature so far
+ TODO: check and maybe remove for the next version */
+ if (Delimiter != '\0' && *Key == Delimiter)
+ {
+ ++Key;
+ continue;
+ }
if (!(Value= strchr(Key, '=')))
{
ret= FALSE;
@@ -516,34 +526,52 @@
{
if (_stricmp(DsnKeys[i].DsnKey, Key) == 0)
{
- char *p;
- my_bool special= FALSE;
+ char *p= NULL;
if (DsnKeys[i].IsAlias)
{
i= DsnKeys[i].DsnOffset; /* For aliases DsnOffset is index of
aliased "main" key */
}
- Value= trim(Value);
+ Value= ltrim(Value);
if (Value[0] == '{')
{
- ++Value;
- if ((p = strchr(Value, '}')))
+ char *valueBufPtr= ValueBuf;
+ char *prev= ++Value;
+ *valueBufPtr= '\0';
+ while ((p = strchr(prev, '}')) != NULL )
{
- *p= 0;
- special= TRUE;
+ memcpy(valueBufPtr, prev, p - prev);
+ valueBufPtr+= p - prev;
+ if (*(p + 1) == '}')
+ {
+ *(valueBufPtr++)= '}';
+ *valueBufPtr= '\0';
+ prev= p + 2;
+ }
+ else
+ {
+ *valueBufPtr= '\0';
+ ++p;
+ break;
+ }
}
+ Value= ValueBuf;
}
else if ((p= strchr(Value, Delimiter)))
{
*p= 0;
}
+ /* TODO: 3.2 we should not trim enclosed in braces, I think */
Value= trim(Value);
/* Overwriting here - if an option repeated more than once in the
string, its last entrance will determine the value */
if (!MADB_DsnStoreValue(Dsn, i, Value, TRUE))
- return FALSE;
+ {
+ ret= FALSE;
+ goto end;
+ }
if (IS_OPTIONS_BITMAP(i))
{
MADB_DsnUpdateOptionsFields(Dsn);
@@ -551,19 +579,33 @@
if (p)
{
- *p= (special) ? ' ' : Delimiter;
+ Key= p + 1;
+ }
+ else
+ {
+ Key= NULL;
}
break;
}
++i;
}
- if ((Key= strchr(Value, Delimiter)))
+ /* Unknown keyword */
+ if (DsnKeys[i].DsnKey == NULL)
{
- ++Key;
+ //TODO: shouldn't some error/warning be thrown?
+ Key= strchr(Value, Delimiter);
+ if (Key != NULL)
+ {
+ ++Key;
+ }
}
}
+
+end:
MADB_FREE(Buffer);
- return TRUE;
+ MADB_FREE(ValueBuf);
+
+ return ret;
}
/* }}} */
@@ -598,7 +640,7 @@
SQLULEN TotalLength= 0;
char *p= OutString;
char *Value= NULL;
- char TmpStr[1024];
+ char TmpStr[1024]= { '\0' };
char IntVal[12];
int CpyLength;
@@ -633,6 +675,7 @@
{
Value= "1";
}
+ break;
case DSN_TYPE_CBOXGROUP:
if (*GET_FIELD_PTR(Dsn, &DsnKeys[i], char))
{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/mariadb-connector-odbc-3.1.7-ga-src/ma_dsn.h
new/mariadb-connector-odbc-3.1.9-ga-src/ma_dsn.h
--- old/mariadb-connector-odbc-3.1.7-ga-src/ma_dsn.h 2020-04-07
22:32:37.000000000 +0200
+++ new/mariadb-connector-odbc-3.1.9-ga-src/ma_dsn.h 2020-06-30
19:43:44.000000000 +0200
@@ -129,6 +129,7 @@
char *SslCrlPath;
char *TlsPeerFp;
char *TlsPeerFpList;
+ char *TlsKeyPwd;
my_bool SslVerify;
char TlsVersion;
my_bool ForceTls;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/mariadb-connector-odbc-3.1.7-ga-src/ma_environment.c
new/mariadb-connector-odbc-3.1.9-ga-src/ma_environment.c
--- old/mariadb-connector-odbc-3.1.7-ga-src/ma_environment.c 2020-04-07
22:32:37.000000000 +0200
+++ new/mariadb-connector-odbc-3.1.9-ga-src/ma_environment.c 2020-06-30
19:43:44.000000000 +0200
@@ -22,6 +22,11 @@
extern MARIADB_CHARSET_INFO* DmUnicodeCs;
extern MARIADB_CHARSET_INFO dummyUtf32le;
Client_Charset SourceAnsiCs= {0, 0}; /* Basically it should be initialized
with 0 anyway */
+char* DefaultPluginLocation= NULL;
+#ifndef _MAX_PATH
+# define _MAX_PATH 260
+#endif
+static char PluginLocationBuf[_MAX_PATH];
MARIADB_CHARSET_INFO * mysql_find_charset_name(const char *name);
@@ -114,7 +119,11 @@
utf8.cs_info= mariadb_get_charset_by_name("utf8mb4");
GetDefaultLogDir();
GetSourceAnsiCs(&SourceAnsiCs);
-
+ /* If we have something in the buffer - then we've already tried to get
default location w/out much success */
+ if (DefaultPluginLocation == NULL && strlen(PluginLocationBuf) == 0)
+ {
+ DefaultPluginLocation= MADB_GetDefaultPluginsDir(PluginLocationBuf,
sizeof(PluginLocationBuf));
+ }
cleanup:
#ifdef _WIN32
if (!Env)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/mariadb-connector-odbc-3.1.7-ga-src/ma_helper.c
new/mariadb-connector-odbc-3.1.9-ga-src/ma_helper.c
--- old/mariadb-connector-odbc-3.1.7-ga-src/ma_helper.c 2020-04-07
22:32:37.000000000 +0200
+++ new/mariadb-connector-odbc-3.1.9-ga-src/ma_helper.c 2020-06-30
19:43:44.000000000 +0200
@@ -80,7 +80,7 @@
return Length;
}
-
+/* Function assumes that the query is multistatement. And, e.g.
STMT_COUNT(Stmt->Query) > 1 */
unsigned int GetMultiStatements(MADB_Stmt *Stmt, BOOL ExecDirect)
{
int i= 0;
@@ -521,7 +521,6 @@
case MYSQL_TYPE_SHORT:
return 2;
case MYSQL_TYPE_INT24:
- return 3;
case MYSQL_TYPE_LONG:
return 4;
case MYSQL_TYPE_LONGLONG:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/mariadb-connector-odbc-3.1.7-ga-src/ma_platform_posix.c
new/mariadb-connector-odbc-3.1.9-ga-src/ma_platform_posix.c
--- old/mariadb-connector-odbc-3.1.7-ga-src/ma_platform_posix.c 2020-04-07
22:32:37.000000000 +0200
+++ new/mariadb-connector-odbc-3.1.9-ga-src/ma_platform_posix.c 2020-06-30
19:43:44.000000000 +0200
@@ -398,7 +398,7 @@
/* Stub - atm it looks like we don't need to do anything here */
-const char* MADB_GetDefaultPluginsDir(MADB_Dbc *Dbc)
+char* MADB_GetDefaultPluginsDir(char* Buffer, size_t Size)
{
return NULL;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/mariadb-connector-odbc-3.1.7-ga-src/ma_platform_win32.c
new/mariadb-connector-odbc-3.1.9-ga-src/ma_platform_win32.c
--- old/mariadb-connector-odbc-3.1.7-ga-src/ma_platform_win32.c 2020-04-07
22:32:37.000000000 +0200
+++ new/mariadb-connector-odbc-3.1.9-ga-src/ma_platform_win32.c 2020-06-30
19:43:44.000000000 +0200
@@ -23,8 +23,8 @@
/* NOTE If you change something in this program, please consider if other
platform's version
of the function you are changing, needs to be changed accordingly */
-#include <ma_odbc.h>
-#include "Shlwapi.h"
+#include "ma_odbc.h"
+#include <pathcch.h>
extern Client_Charset utf8;
char LogFile[256];
@@ -295,22 +295,25 @@
return (FileAttributes != INVALID_FILE_ATTRIBUTES) && (FileAttributes &
FILE_ATTRIBUTE_DIRECTORY);
}
-const char* MADB_GetDefaultPluginsDir(MADB_Dbc *Dbc)
+char* MADB_GetDefaultPluginsDir(char* Buffer, size_t Size)
{
HMODULE hModule = GetModuleHandle(MADB_DRIVER_NAME);
- static char OurLocation[_MAX_PATH];
+ wchar_t wOurLocation[_MAX_PATH];
const char *PluginsSubDirName= "\\"MADB_DEFAULT_PLUGINS_SUBDIR;
+ HRESULT hr;
- GetModuleFileName(hModule, OurLocation, _MAX_PATH);
- PathRemoveFileSpec(OurLocation);
+ memset(Buffer, 0, Size);
+ GetModuleFileNameW(hModule, wOurLocation, _MAX_PATH);
+ hr= PathCchRemoveFileSpec(wOurLocation, _MAX_PATH);
- if (strlen(OurLocation) < _MAX_PATH - strlen(PluginsSubDirName))
+ WideCharToMultiByte(GetACP(), 0, wOurLocation, -1, Buffer, Size, NULL, NULL);
+ if (strlen(Buffer) < Size - strlen(PluginsSubDirName))
{
- strcpy(OurLocation + strlen(OurLocation), PluginsSubDirName);
+ strcpy(Buffer + strlen(Buffer), PluginsSubDirName);
- if (MADB_DirectoryExists(OurLocation) != FALSE)
+ if (MADB_DirectoryExists(Buffer) != FALSE)
{
- return OurLocation;
+ return Buffer;
}
}
return NULL;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/mariadb-connector-odbc-3.1.7-ga-src/ma_platform_win32.h
new/mariadb-connector-odbc-3.1.9-ga-src/ma_platform_win32.h
--- old/mariadb-connector-odbc-3.1.7-ga-src/ma_platform_win32.h 2020-04-07
22:32:37.000000000 +0200
+++ new/mariadb-connector-odbc-3.1.9-ga-src/ma_platform_win32.h 2020-06-30
19:43:44.000000000 +0200
@@ -28,7 +28,10 @@
#define _ma_platform_x_h_
-#define WIN32_LEAN_AND_MEAN
+#ifndef WIN32_LEAN_AND_MEAN
+# define WIN32_LEAN_AND_MEAN
+#endif // !WIN32_LEAN_AND_MEAN
+
#define _WINSOCKAPI_
#define DONT_DEFINE_VOID
#define HAVE_UNICODE
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/mariadb-connector-odbc-3.1.7-ga-src/ma_result.c
new/mariadb-connector-odbc-3.1.9-ga-src/ma_result.c
--- old/mariadb-connector-odbc-3.1.7-ga-src/ma_result.c 2020-04-07
22:32:37.000000000 +0200
+++ new/mariadb-connector-odbc-3.1.9-ga-src/ma_result.c 2020-06-30
19:43:44.000000000 +0200
@@ -222,8 +222,8 @@
mysql_stmt_data_seek(Stmt->stmt, 0);
}
}
- UNLOCK_MARIADB(Stmt->Connection);
}
+ UNLOCK_MARIADB(Stmt->Connection);
return ret;
}
@@ -232,7 +232,7 @@
/* {{{ MADB_RecordsToFetch */
SQLULEN MADB_RowsToFetch(MADB_Cursor *Cursor, SQLULEN ArraySize, unsigned long
long RowsInResultst)
{
- SQLLEN Position= Cursor->Position >= 0 ? Cursor->Position : 0;
+ SQLULEN Position= Cursor->Position >= 0 ? Cursor->Position : 0;
SQLULEN result= ArraySize;
Cursor->RowsetSize= ArraySize;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/mariadb-connector-odbc-3.1.7-ga-src/ma_statement.c
new/mariadb-connector-odbc-3.1.9-ga-src/ma_statement.c
--- old/mariadb-connector-odbc-3.1.7-ga-src/ma_statement.c 2020-04-07
22:32:37.000000000 +0200
+++ new/mariadb-connector-odbc-3.1.9-ga-src/ma_statement.c 2020-06-30
19:43:44.000000000 +0200
@@ -884,7 +884,9 @@
return Stmt->Error.ReturnValue;
}
if (Stmt->Query.QueryType == SQL_DELETE)
+ {
MADB_STMT_RESET_CURSOR(Stmt->PositionedCursor);
+ }
}
//MADB_FREE(DataPtr);
@@ -1128,7 +1130,6 @@
}
memset(Stmt->params, 0, sizeof(MYSQL_BIND) *
MADB_STMT_PARAM_COUNT(Stmt));
-
}
if (MADB_DOING_BULK_OPER(Stmt))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/mariadb-connector-odbc-3.1.7-ga-src/ma_typeconv.c
new/mariadb-connector-odbc-3.1.9-ga-src/ma_typeconv.c
--- old/mariadb-connector-odbc-3.1.7-ga-src/ma_typeconv.c 2020-04-07
22:32:37.000000000 +0200
+++ new/mariadb-connector-odbc-3.1.9-ga-src/ma_typeconv.c 2020-06-30
19:43:44.000000000 +0200
@@ -24,7 +24,7 @@
/* Borrowed from C/C and adapted */
SQLRETURN MADB_Str2Ts(const char *Str, size_t Length, MYSQL_TIME *Tm, BOOL
Interval, MADB_Error *Error, BOOL *isTime)
{
- char *Start= MADB_ALLOC(Length + 1), *Frac, *End= Start + Length;
+ char *localCopy= MADB_ALLOC(Length + 1), *Start= localCopy, *Frac, *End=
Start + Length;
my_bool isDate= 0;
if (Start == NULL)
@@ -36,11 +36,11 @@
memcpy(Start, Str, Length);
Start[Length]= '\0';
- while (Length && isspace(*Start)) Start++, Length--;
+ while (Length && isspace(*Start)) ++Start, --Length;
if (Length == 0)
{
- return SQL_SUCCESS;//MADB_SetError(Error, MADB_ERR_22008, NULL, 0);
+ goto end;//MADB_SetError(Error, MADB_ERR_22008, NULL, 0);
}
/* Determine time type:
@@ -113,7 +113,9 @@
}
}
}
-
+
+end:
+ MADB_FREE(localCopy);
return SQL_SUCCESS;
}
@@ -575,14 +577,19 @@
tm->month= cur_tm->tm_mon + 1;
tm->day= cur_tm->tm_mday;
tm->second_part= 0;
+
+ tm->time_type= MYSQL_TIMESTAMP_DATETIME;
+ MaBind->buffer_type= MYSQL_TYPE_TIMESTAMP;
}
else
{
tm->year= 0;
tm->month= 0;
tm->day= 0;
- }
+ tm->time_type = MYSQL_TIMESTAMP_TIME;
+ MaBind->buffer_type= MYSQL_TYPE_TIME;
+ }
tm->hour= ts->hour;
tm->minute= ts->minute;
@@ -590,9 +597,6 @@
tm->second_part= 0;
- tm->time_type= MYSQL_TIMESTAMP_DATETIME;
-
- MaBind->buffer_type= MYSQL_TYPE_DATETIME;
*LengthPtr= sizeof(MYSQL_TIME);
return SQL_SUCCESS;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/mariadb-connector-odbc-3.1.7-ga-src/odbc_3_api.c
new/mariadb-connector-odbc-3.1.9-ga-src/odbc_3_api.c
--- old/mariadb-connector-odbc-3.1.7-ga-src/odbc_3_api.c 2020-04-07
22:32:37.000000000 +0200
+++ new/mariadb-connector-odbc-3.1.9-ga-src/odbc_3_api.c 2020-06-30
19:43:44.000000000 +0200
@@ -697,6 +697,7 @@
if (ServerName && !ServerName[0])
{
MADB_SetError(&Connection->Error, MADB_ERR_HY000, "Invalid DSN", 0);
+ MADB_DSN_Free(Dsn);
return Connection->Error.ReturnValue;
}
@@ -1441,7 +1442,7 @@
SQLRETURN SQL_API SQLFreeHandle(SQLSMALLINT HandleType,
SQLHANDLE Handle)
{
- SQLRETURN ret;
+ SQLRETURN ret= SQL_INVALID_HANDLE;
MADB_CHECK_HANDLE_CLEAR_ERROR(HandleType, Handle);
switch (HandleType)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/mariadb-connector-odbc-3.1.7-ga-src/osxinstall/CMakeLists.txt
new/mariadb-connector-odbc-3.1.9-ga-src/osxinstall/CMakeLists.txt
--- old/mariadb-connector-odbc-3.1.7-ga-src/osxinstall/CMakeLists.txt
2020-04-07 22:32:37.000000000 +0200
+++ new/mariadb-connector-odbc-3.1.9-ga-src/osxinstall/CMakeLists.txt
2020-06-30 19:43:44.000000000 +0200
@@ -1,3 +1,22 @@
+#
************************************************************************************
+# Copyright (C) 2019,2020 MariaDB Corporation AB
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Library General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Library General Public License for more details.
+#
+# You should have received a copy of the GNU Library General Public
+# License along with this library; if not see <http://www.gnu.org/licenses>
+# or write to the Free Software Foundation, Inc.,
+# 51 Franklin St., Fifth Floor, Boston, MA 02110, USA
+#
*************************************************************************************/
+
SET(ODBC_SOURCE_PKG_DIR ${CMAKE_SOURCE_DIR}/osxinstall)
# Get revision number
@@ -22,9 +41,13 @@
SET(PRODUCT_IDENTIFIER "com.mariadb.connector.odbc")
IF(${revno})
- SET(PKG_PACKAGE
"mariadb-connector-odbc-${PRODUCT_VERSION}-r${revno}-osx-${PLATFORM}.pkg")
+ SET(PKG_PACKAGE
"mariadb-connector-odbc-${PRODUCT_VERSION}-r${revno}-osx-${CMAKE_SYSTEM_PROCESSOR}.pkg")
ELSE()
- SET(PKG_PACKAGE
"mariadb-connector-odbc-${PRODUCT_VERSION}-osx-${PLATFORM}.pkg")
+ IF(PACKAGE_PLATFORM_SUFFIX)
+ SET(PKG_PACKAGE
"mariadb-connector-odbc-${PRODUCT_VERSION}-osx-${CMAKE_SYSTEM_PROCESSOR}-${PACKAGE_PLATFORM_SUFFIX}.pkg")
+ ELSE()
+ SET(PKG_PACKAGE
"mariadb-connector-odbc-${PRODUCT_VERSION}-osx-${CMAKE_SYSTEM_PROCESSOR}.pkg")
+ ENDIF()
ENDIF()
MESSAGE(STATUS "PKG package file name ${PKG_PACKAGE}")
@@ -53,17 +76,23 @@
ADD_CUSTOM_TARGET(copypkgfiles
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/copy_package_files.sh
$<TARGET_FILE_DIR:maodbc>
DEPENDS maodbc install_driver
- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
ELSE()
+ SET(GNUTLS_LIB "")
+ IF("${WITH_SSL}" STREQUAL "GNUTLS")
+ SET(GNUTLS_LIB "${GNUTLS_LIBRARY}")
+ MESSAGE(STATUS "Configuring to include gnutls library(${GNUTLS_LIB}) into
the package")
+ ENDIF()
ADD_CUSTOM_TARGET(copypkgfiles
- COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/copy_package_files.sh
$<TARGET_FILE_DIR:maodbc> $<TARGET_FILE_DIR:dialog>
- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
+ COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/copy_package_files.sh
$<TARGET_FILE_DIR:maodbc> $<TARGET_FILE_DIR:dialog> ${GNUTLS_LIB}
+ DEPENDS maodbc install_driver
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
ENDIF()
ADD_CUSTOM_TARGET(maodbcpkg
COMMAND ${CMAKE_CURRENT_BINARY_DIR}/build_package.sh
${PRODUCT_IDENTIFIER} ${PRODUCT_VERSION} ${PKG_PACKAGE}
DEPENDS copypkgfiles
${CMAKE_CURRENT_BINARY_DIR}/scripts/postinstall
${CMAKE_CURRENT_BINARY_DIR}/distribution.plist README.html
${CMAKE_CURRENT_BINARY_DIR}/WELCOME.html LICENSE.html
- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
SET_TARGET_PROPERTIES(maodbcpkg PROPERTIES EXCLUDE_FROM_ALL OFF)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/mariadb-connector-odbc-3.1.7-ga-src/osxinstall/README.html
new/mariadb-connector-odbc-3.1.9-ga-src/osxinstall/README.html
--- old/mariadb-connector-odbc-3.1.7-ga-src/osxinstall/README.html
2020-04-07 22:32:37.000000000 +0200
+++ new/mariadb-connector-odbc-3.1.9-ga-src/osxinstall/README.html
2020-06-30 19:43:44.000000000 +0200
@@ -9,10 +9,12 @@
</head>
<body>
<p>MariaDB Connector/ODBC files will be installed in
/Library/MariaDB/MariaDB-Connector-ODBC.</p>
-<p>The connector requires the libraries for OpenSSL and iODBC to be installed.
With homebrew they are easy to install:</p>
+<p><strong><font color="red">Warning:</font>The driver library requires latest
versions of <a href="https://www.openssl.org/">openssl</a> libraries</strong>,
that are not available natively, and can be obtained with <a
href="https://brew.sh/">Homebrew</a></p>
+<p>Homebrew installation instructions can be found <a
href="https://docs.brew.sh/Installation">here</a>. The short version at the
moment is to run the following command in the terminal:
+<div><strong>/bin/bash -c "$(curl -fsSL
https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"</strong></div></p>
+<p>The command to install openssl is: <div><strong>brew install
[email protected]</strong></div></p>
<ul>
<li>brew install openssl</li>
-<li>brew install libiodbc</li>
</ul>
</body>
</html>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/mariadb-connector-odbc-3.1.7-ga-src/osxinstall/WELCOME.html.in
new/mariadb-connector-odbc-3.1.9-ga-src/osxinstall/WELCOME.html.in
--- old/mariadb-connector-odbc-3.1.7-ga-src/osxinstall/WELCOME.html.in
2020-04-07 22:32:37.000000000 +0200
+++ new/mariadb-connector-odbc-3.1.9-ga-src/osxinstall/WELCOME.html.in
2020-06-30 19:43:44.000000000 +0200
@@ -9,5 +9,9 @@
</head>
<body>
<p>This is going to install MariaDB Connector/ODBC(Unicode)
@PRODUCT_ARCH_BITS@bit version @PRODUCT_VERSION@ - a database driver that uses
the industry standard Open Database Connectivity (ODBC) API.</p>
+<p><strong><font color="red">Warning: </font>The driver library requires the
latest version of the <a href="https://www.openssl.org/">openssl</a>
libraries.</strong>These are not natively available in macOS, but can be
obtained using <a href="https://brew.sh/">Homebrew</a></p>
+<p>Homebrew installation instructions can be found <a
href="https://docs.brew.sh/Installation">here</a>. The short version at the
moment is to run the following command in the terminal:
+<div><strong>/bin/bash -c "$(curl -fsSL
https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"</strong></div></p>
+<p>The command to install openssl is: <div><strong>brew install
[email protected]</strong></div></p>
</body>
</html>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/mariadb-connector-odbc-3.1.7-ga-src/osxinstall/copy_package_files.sh
new/mariadb-connector-odbc-3.1.9-ga-src/osxinstall/copy_package_files.sh
--- old/mariadb-connector-odbc-3.1.7-ga-src/osxinstall/copy_package_files.sh
2020-04-07 22:32:37.000000000 +0200
+++ new/mariadb-connector-odbc-3.1.9-ga-src/osxinstall/copy_package_files.sh
2020-06-30 19:43:44.000000000 +0200
@@ -20,6 +20,7 @@
LibPath="Library/MariaDB/MariaDB-Connector-ODBC"
+set -e
rm -rf ./ROOT
mkdir -p ./ROOT/${LibPath}/bin
@@ -32,7 +33,16 @@
cp $2/auth_gssapi_client.so ./ROOT/${LibPath}/plugin/
cp $2/caching_sha2_password.so ./ROOT/${LibPath}/plugin/
cp $2/mysql_clear_password.so ./ROOT/${LibPath}/plugin/
- cp $2/sha256_password.so ./ROOT/${LibPath}/plugin/
cp $2/client_ed25519.so ./ROOT/${LibPath}/plugin/
+ cp $2/sha256_password.so ./ROOT/${LibPath}/plugin/
fi
+if [ $3 ]; then
+ if [ -L $3 ]; then
+ LibRealName=`readlink $3`
+ cp $3 ./ROOT/${LibPath}/${LibRealName}
+ cp -a $3 ./ROOT/${LibPath}/
+ else
+ cp $3 ./ROOT/${LibPath}/
+ fi
+fi
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/mariadb-connector-odbc-3.1.7-ga-src/osxpostbuild.sh
new/mariadb-connector-odbc-3.1.9-ga-src/osxpostbuild.sh
--- old/mariadb-connector-odbc-3.1.7-ga-src/osxpostbuild.sh 1970-01-01
01:00:00.000000000 +0100
+++ new/mariadb-connector-odbc-3.1.9-ga-src/osxpostbuild.sh 2020-06-30
19:43:44.000000000 +0200
@@ -0,0 +1,33 @@
+#!/bin/bash
+#
************************************************************************************
+# Copyright (C) 2020 MariaDB Corporation AB
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Library General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Library General Public License for more details.
+#
+# You should have received a copy of the GNU Library General Public
+# License along with this library; if not see <http://www.gnu.org/licenses>
+# or write to the Free Software Foundation, Inc.,
+# 51 Franklin St., Fifth Floor, Boston, MA 02110, USA
+#
*************************************************************************************/
+
+set -x
+echo $1
+LinkedLibName=`otool -L $1 | grep -i iodbcinst | sed 's/ //' | sed 's/
[(].*$//'`
+install_name_tool -change $LinkedLibName @rpath/libiodbcinst.dylib $1
+LinkedLibName=`otool -L $1 | grep -i libgnutls | sed 's/ //' | sed 's/
[(].*$//'`
+if [ $LinkedLibName ] ; then
+ LinkedLibFileName=`echo $LinkedLibName | sed 's/.*[/]//'`
+ install_name_tool -change $LinkedLibName @rpath/$LinkedLibFileName $1
+fi
+
+#LinkedLibName=`otool -L $1 | grep -i libcrypto | sed 's/ //' | sed 's/
[(].*$//'`
+#install_name_tool -change $LinkedLibName @rpath/libcrypto.1.1.dylib $1
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/mariadb-connector-odbc-3.1.7-ga-src/wininstall/CMakeLists.txt
new/mariadb-connector-odbc-3.1.9-ga-src/wininstall/CMakeLists.txt
--- old/mariadb-connector-odbc-3.1.7-ga-src/wininstall/CMakeLists.txt
2020-04-07 22:32:37.000000000 +0200
+++ new/mariadb-connector-odbc-3.1.9-ga-src/wininstall/CMakeLists.txt
2020-06-30 19:43:44.000000000 +0200
@@ -56,7 +56,7 @@
ENDIF()
ADD_EXECUTABLE(change_dsns_driver change_dsns_driver.c
${CMAKE_SOURCE_DIR}/ma_dsn.c ${CMAKE_SOURCE_DIR}/ma_platform_win32.c
${CMAKE_SOURCE_DIR}/ma_common.c)
-TARGET_LINK_LIBRARIES(change_dsns_driver ${ODBC_LIBS} ${ODBC_INSTLIBS}
legacy_stdio_definitions Shlwapi)
+TARGET_LINK_LIBRARIES(change_dsns_driver ${ODBC_LIBS} ${ODBC_INSTLIBS}
legacy_stdio_definitions Shlwapi Pathcch)
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/wininstall/mariadb_odbc.xml.in
${CMAKE_BINARY_DIR}/wininstall/mariadb_odbc.xml)
++++++ nosoname.patch ++++++
--- /var/tmp/diff_new_pack.eNuWqj/_old 2020-09-25 16:31:19.799879501 +0200
+++ /var/tmp/diff_new_pack.eNuWqj/_new 2020-09-25 16:31:19.803879504 +0200
@@ -1,8 +1,8 @@
-Index: mariadb-connector-odbc-3.1.1-ga-src/CMakeLists.txt
+Index: mariadb-connector-odbc-3.1.9-ga-src/CMakeLists.txt
===================================================================
---- mariadb-connector-odbc-3.1.1-ga-src.orig/CMakeLists.txt
-+++ mariadb-connector-odbc-3.1.1-ga-src/CMakeLists.txt
-@@ -281,7 +281,7 @@ IF(WIN32)
+--- mariadb-connector-odbc-3.1.9-ga-src.orig/CMakeLists.txt
++++ mariadb-connector-odbc-3.1.9-ga-src/CMakeLists.txt
+@@ -312,7 +312,7 @@ IF(WIN32)
ADD_LIBRARY(${LIBRARY_NAME} SHARED ${MARIADB_ODBC_SOURCES}
${CMAKE_SOURCE_DIR}/mariadb-odbc-driver-uni.def maodbcu.rc)
ELSE()
MESSAGE(STATUS "Version script: ${CMAKE_SOURCE_DIR}/maodbc.def")
@@ -10,4 +10,4 @@
+ ADD_LIBRARY(${LIBRARY_NAME} MODULE ${MARIADB_ODBC_SOURCES} maodbcu.rc)
IF(APPLE)
- SET_TARGET_PROPERTIES(${LIBRARY_NAME} PROPERTIES LINK_FLAGS "-Wl")
+ SET(MAODBC_INSTALL_RPATH "${ODBC_LIB_DIR}" "@loader_path"
"/usr/local/opt/libiodbc" "/usr/local/iODBC/lib"
"/usr/local/opt/[email protected]/lib" "/usr/local/opt/libressl/lib")
++++++ wrong_types.patch ++++++
Index: mariadb-connector-odbc-3.1.9-ga-src/ma_error.c
===================================================================
--- mariadb-connector-odbc-3.1.9-ga-src.orig/ma_error.c
+++ mariadb-connector-odbc-3.1.9-ga-src/ma_error.c
@@ -144,7 +144,7 @@ MADB_ERROR MADB_ErrorList[] =
{ "S1000", "", "General error", SQL_ERROR},
{ "S1107", "", "Row value out of range", SQL_ERROR},
{ "S1C00", "", "Optional feature not implemented", SQL_ERROR},
- { 0,0,0, -1}
+ { "", "", "", -1}
};
/* }}} */