public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] proj/mysql:master commit in: dev-db/myodbc/files/, dev-db/myodbc/
@ 2015-08-11 17:08 Brian Evans
  0 siblings, 0 replies; 2+ messages in thread
From: Brian Evans @ 2015-08-11 17:08 UTC (permalink / raw
  To: gentoo-commits

commit:     5929f97adf99d702bb2f0c415616f824a22caeb7
Author:     Brian Evans <grknight <AT> gentoo <DOT> org>
AuthorDate: Tue Aug 11 17:11:28 2015 +0000
Commit:     Brian Evans <grknight <AT> gentoo <DOT> org>
CommitDate: Tue Aug 11 17:11:28 2015 +0000
URL:        https://gitweb.gentoo.org/proj/mysql.git/commit/?id=5929f97a

dev-db/myodbc Add patch from bug 548912

Package-Manager: portage-2.2.20
Manifest-Sign-Key: D1F781EFF9F4A3B6

 dev-db/myodbc/ChangeLog                   |  4 ++++
 dev-db/myodbc/files/5.2.7-my_malloc.patch | 18 ++++++++++++++++++
 dev-db/myodbc/myodbc-5.2.7-r2.ebuild      |  5 +++--
 3 files changed, 25 insertions(+), 2 deletions(-)

diff --git a/dev-db/myodbc/ChangeLog b/dev-db/myodbc/ChangeLog
index 4a81ef1..8bc0aea 100644
--- a/dev-db/myodbc/ChangeLog
+++ b/dev-db/myodbc/ChangeLog
@@ -2,6 +2,10 @@
 # Copyright 1999-2015 Gentoo Foundation; Distributed under the GPL v2
 # $Id$
 
+  11 Aug 2015; Brian Evans <grknight@gentoo.org> +files/5.2.7-my_malloc.patch,
+  myodbc-5.2.7-r2.ebuild:
+  dev-db/myodbc Add patch from bug 548912
+
   17 May 2015; Brian Evans <grknight@gentoo.org> -files/5.2.7-cxxlinkage.patch,
   -files/myodbc-5.1.6-qt4-includedir.patch, -myodbc-5.1.6.ebuild,
   -myodbc-5.2.7.ebuild:

diff --git a/dev-db/myodbc/files/5.2.7-my_malloc.patch b/dev-db/myodbc/files/5.2.7-my_malloc.patch
new file mode 100644
index 0000000..bc6c65e
--- /dev/null
+++ b/dev-db/myodbc/files/5.2.7-my_malloc.patch
@@ -0,0 +1,18 @@
+diff -Brau a/util/odbcinstw.c b/util/odbcinstw.c
+--- a/util/odbcinstw.c	2014-04-23 21:54:40.000000000 +0200
++++ b/util/odbcinstw.c	2015-05-08 15:29:09.400568356 +0200
+@@ -68,13 +68,7 @@
+ 
+   if (lpszRetBuffer && cbRetBuffer)
+   {
+-    ret= malloc(cbRetBuffer + 1);
+-    /*
+-      We cannot rely on getting correct results from the next call of
+-      SQLGetPrivateProfileString. So, taking precautions against unititialized
+-      values in the allocated buffer.
+-    */
+-    memset(ret, 0, cbRetBuffer + 1);
++    ret= my_malloc(cbRetBuffer + 1, MYF(MY_ZEROFILL));
+   }
+   else
+     ret= NULL;

diff --git a/dev-db/myodbc/myodbc-5.2.7-r2.ebuild b/dev-db/myodbc/myodbc-5.2.7-r2.ebuild
index cf7133d..65b99da 100644
--- a/dev-db/myodbc/myodbc-5.2.7-r2.ebuild
+++ b/dev-db/myodbc/myodbc-5.2.7-r2.ebuild
@@ -44,8 +44,9 @@ src_prepare() {
 
 	# Patch document path so it doesn't install files to /usr
 	epatch "${FILESDIR}/cmake-doc-path.patch" \
-		"${FILESDIR}/${PVR}-cxxlinkage.patch" \
-		"${FILESDIR}/${PV}-mariadb-dynamic-array.patch"
+		"${FILESDIR}/${PV}-r1-cxxlinkage.patch" \
+		"${FILESDIR}/${PV}-mariadb-dynamic-array.patch" \
+		"${FILESDIR}/${PV}-my_malloc.patch"
 }
 
 multilib_src_configure() {


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* [gentoo-commits] proj/mysql:master commit in: dev-db/myodbc/files/, dev-db/myodbc/
@ 2018-02-11  4:18 Brian Evans
  0 siblings, 0 replies; 2+ messages in thread
From: Brian Evans @ 2018-02-11  4:18 UTC (permalink / raw
  To: gentoo-commits

commit:     2b93bcf7d21b4d4f299dfcb7a9f59e004be1199f
Author:     Brian Evans <grknight <AT> gentoo <DOT> org>
AuthorDate: Sun Feb 11 04:18:49 2018 +0000
Commit:     Brian Evans <grknight <AT> gentoo <DOT> org>
CommitDate: Sun Feb 11 04:18:49 2018 +0000
URL:        https://gitweb.gentoo.org/proj/mysql.git/commit/?id=2b93bcf7

dev-db/myodbc: Add version 5.3.10 for testing

Package-Manager: Portage-2.3.24, Repoman-2.3.6
Manifest-Sign-Key: 0xD1F781EFF9F4A3B6

 dev-db/myodbc/Manifest                             |  23 ++++
 dev-db/myodbc/files/5.3-cmake-doc-path.patch       |  43 ++++++
 dev-db/myodbc/files/5.3-cxxlinkage.patch           |  43 ++++++
 .../myodbc/files/5.3-mariadb-buffer_length.patch   |  93 +++++++++++++
 .../myodbc/files/5.3-mariadb-dynamic-array.patch   |  96 ++++++++++++++
 dev-db/myodbc/files/5.3.10-cxxlinkage.patch        |  29 +++++
 dev-db/myodbc/files/odbc.ini.m4                    |   1 -
 dev-db/myodbc/files/odbcinst.ini.m4                |   1 -
 dev-db/myodbc/myodbc-5.3.10.ebuild                 | 145 +++++++++++++++++++++
 9 files changed, 472 insertions(+), 2 deletions(-)

diff --git a/dev-db/myodbc/Manifest b/dev-db/myodbc/Manifest
index 809ce4d..ca32def 100644
--- a/dev-db/myodbc/Manifest
+++ b/dev-db/myodbc/Manifest
@@ -1,2 +1,25 @@
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA256
+
 DIST mysql-connector-odbc-5.2.7-src.tar.gz 606472 SHA256 0ad8fcccb4c41c7100fe02ec0aa87938d33329d23f7b68d1b9031c87750392c9 SHA512 f54ac8a23ade71da85e1335e95eccdccfd68a8687d17a584ced103812bdc5aee8014769a84eaa22724bb2cb23d34c7188c964d3283723defeaef5157a4b3c60f WHIRLPOOL 928808ac5b623ec345c8c1b8495ca1de7f10e65f0d14720e9bee6ab154ccf818ca690745a57fa7fa1c008ba57b24705657398cd9146fbf2e385c178deca0e499
+DIST mysql-connector-odbc-5.3.10-src.tar.gz 2646571 SHA256 e15fe714b0236bdb7adea28a5d14a62511b5657cd83a6be664b45a4ef077fcb5 SHA512 ebe56b95a1690332959a7a37e8ed381b46730fb9f6fbd6522ddc1a6961e4c8cdac59681a957b33abeb6cae12f210278e4063daa59ce952d92acf427bc188e22b WHIRLPOOL e27aa8c51b575972ceb2f82d36ae4146835e1893808d9a5f98c31924fb16ee576880c7ae3393b89beb4f952c5436699d25efb4cd0e0d25b454a31bdfeedea98e
 DIST mysql-connector-odbc-5.3.4-src.tar.gz 667340 SHA256 a5f7a490f2958f2768d18b8a57f71909f9699a8619c82776b3ad1c02b8abce0d SHA512 1e3a0c06091f6ca34e89f9fc915f34e94b840db8626a93f56d464aff8d1f8a275c4ef494046ac760e8bcf910a05b91e39a8a1842711e4a78adddcc412ff77ec8 WHIRLPOOL 37bbaac3098377c82889cc30a3bd8b088b751e81a0116b87945a0efccd60f5c3a689176ccbaf866f7957404bbb08d08f9a7885ad68448f7a65188da3b33eb9f2
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v2
+
+iQKTBAEBCAB9FiEEZsLkTtkOMnWOfVXA0feB7/n0o7YFAlp/xCZfFIAAAAAALgAo
+aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDY2
+QzJFNDRFRDkwRTMyNzU4RTdENTVDMEQxRjc4MUVGRjlGNEEzQjYACgkQ0feB7/n0
+o7axjw/8CvLJt67erbQNFH1HvJ+zWl0U7bNsXZAirgP0Z8qs4tRPLT7QrNI6TaUS
+1X31ETYfJ3GlUgvhXnw9UnASJ1DNRMHrRO1GJpOFIAmL+R5ZxKlm6Uvl4EBH3WF6
+rakfNklyx2OPwWqIf/K8IM7QwF+k2uxaXSPKF2lWapEUvxFsjsfcXKqJG4LmT8W1
+23y2RT6rMO2KUhElnM4skCWO2W1nIw8JnZvWfwN8gZnEIR7shv/sPNxaCYjO3EhR
+F/XDKoq7H1+Q81/UgxF/47RZZ7GX4yU6ba+kOU/nza/WCN15rGuXZ2HqZeKzcE5l
+KRuxNLOJqajdycFksUXHWLonboD0k9UPRJ4qFA2hq1mK3H/fUJQ9NZO8LnR61EO2
+RY052qrGcJ3g1vamH0onqdY5guld9MR3Bh5Gc1kuq6APG6nhaE+rpSTYJ6QYEq7V
+m31qFN6Se93j0ED0oDcY77APIVoGRFZMof4X+a9uO/DdwBr2MYG+Sfxnr12xWZmA
+ltwxcRjOSBQZbJwmblEl9zyyboivoXqAcrw1rfwBkZsyMgJdvgKs3fSBnUCFSOU+
+ei5DH8vDF9x6Ew6FFGHwpEQd7GULCE8jR+Vc8cyztEGiGHppEX8zhpM4iFgYai5i
+Grj19xsQ0wLvQHl/BJ5o8JxMmFryFXpYtmoddEz9xdzd+4KKa0I=
+=H5eI
+-----END PGP SIGNATURE-----

diff --git a/dev-db/myodbc/files/5.3-cmake-doc-path.patch b/dev-db/myodbc/files/5.3-cmake-doc-path.patch
new file mode 100644
index 0000000..54f35d4
--- /dev/null
+++ b/dev-db/myodbc/files/5.3-cmake-doc-path.patch
@@ -0,0 +1,43 @@
+=== modified file 'CMakeLists.txt'
+--- a/CMakeLists.txt	2013-03-09 09:51:06 +0000
++++ b/CMakeLists.txt	2013-03-09 11:05:27 +0000
+@@ -33,6 +33,12 @@
+ 
+ INCLUDE(version.cmake)
+ 
++IF(WITH_DOCUMENTATION_INSTALL_PATH)
++	set(DOCUMENTATION_INSTALL_PATH ${WITH_DOCUMENTATION_INSTALL_PATH})
++ELSE(WITH_DOCUMENTATION_INSTALL_PATH)
++	set(DOCUMENTATION_INSTALL_PATH ${CMAKE_INSTALL_PREFIX}/share/doc/myodbc-${CONNECTOR_MAJOR}.${CONNECTOR_MINOR})
++ENDIF(WITH_DOCUMENTATION_INSTALL_PATH)
++
+ #Default is to build both drivers
+ IF(UNICODE OR NOT ANSI)
+ 	MESSAGE(STATUS "Configuring to build Unicode driver")
+@@ -329,19 +335,17 @@
+ 
+ ELSE(WIN32)
+ 
+-  INSTALL(FILES ChangeLog    DESTINATION .)
+-  INSTALL(FILES README       DESTINATION .)
+-  INSTALL(FILES README.debug DESTINATION .)
+-  INSTALL(FILES INSTALL      DESTINATION .)
++    INSTALL(FILES ChangeLog    DESTINATION ${DOCUMENTATION_INSTALL_PATH})
++    INSTALL(FILES README       DESTINATION ${DOCUMENTATION_INSTALL_PATH})
++    INSTALL(FILES README.debug DESTINATION ${DOCUMENTATION_INSTALL_PATH})
++    INSTALL(FILES INSTALL      DESTINATION ${DOCUMENTATION_INSTALL_PATH})
+   IF(EXISTS "${CMAKE_SOURCE_DIR}/COPYING")
+-    INSTALL(FILES COPYING       DESTINATION .)
+   ELSE()
+-    INSTALL(FILES LICENSE.mysql DESTINATION .)
+   ENDIF()
+ 
+ ENDIF(WIN32)
+ 
+-INSTALL(FILES Licenses_for_Third-Party_Components.txt DESTINATION .)
++INSTALL(FILES Licenses_for_Third-Party_Components.txt DESTINATION ${DOCUMENTATION_INSTALL_PATH})
+ 
+ INCLUDE(CPack)
+ 
+
+

diff --git a/dev-db/myodbc/files/5.3-cxxlinkage.patch b/dev-db/myodbc/files/5.3-cxxlinkage.patch
new file mode 100644
index 0000000..319262c
--- /dev/null
+++ b/dev-db/myodbc/files/5.3-cxxlinkage.patch
@@ -0,0 +1,43 @@
+diff -aurN a/cmake/FindMySQL.cmake b/cmake/FindMySQL.cmake
+--- a/cmake/FindMySQL.cmake	2016-11-29 07:40:13.000000000 -0500
++++ b/cmake/FindMySQL.cmake	2017-02-17 13:59:18.115389096 -0500
+@@ -747,7 +747,7 @@
+     endif()
+ 
+     if(NOT MYSQL_CXXFLAGS)
+-      if(MYSQL_CXX_LINKAGE OR MYSQL_VERSION_ID GREATER 50603)
++      if(MYSQL_CXX_LINKAGE)
+         _mysql_conf(MYSQL_CXXFLAGS "--cxxflags")
+         set(MYSQL_CXX_LINKAGE 1)
+       else()
+diff -aurN a/CMakeLists.txt b/CMakeLists.txt
+--- a/CMakeLists.txt	2017-02-17 13:50:43.556006202 -0500
++++ b/CMakeLists.txt	2017-02-17 13:57:15.745676184 -0500
+@@ -242,10 +242,9 @@
+ SET(EXECUTABLE_OUTPUT_PATH "${CMAKE_BINARY_DIR}/bin")
+ SET(LIBRARY_OUTPUT_PATH "${CMAKE_BINARY_DIR}/lib")
+ 
+-SET(LIB_SUBDIR "lib")
+-IF(RPM_BUILD AND CMAKE_SYSTEM_PROCESSOR MATCHES "(x86_64|ppc64|ppc64p7|s390x|sparc64)") 
+-  SET(LIB_SUBDIR "lib64")
+-ENDIF()
++IF(NOT LIB_SUBDIR)
++	MESSAGE(ERROR "LIB_SUBDIR is not set")
++ENDIF(NOT LIB_SUBDIR)
+ 
+ MESSAGE(STATUS "Installation library subdir: ${LIB_SUBDIR}")
+ 
+diff -aurN a/cmake/FindMySQL.cmake b/cmake/FindMySQL.cmake
+--- a/cmake/FindMySQL.cmake	2017-02-17 14:44:29.532733308 -0500
++++ b/cmake/FindMySQL.cmake	2017-02-17 14:48:56.756740330 -0500
+@@ -270,8 +270,8 @@
+   set(_static_lib_ext ".lib")   # Careful, can be import library for DLL
+ elseif(MYSQLCLIENT_NO_THREADS)
+   # In 5.1 and below there is a single threaded library
+-  set(_dynamic_libs   "mysqlclient")
+-  set(_static_libs    "libmysqlclient.a")
++  set(_dynamic_libs   "${MYSQLCLIENT_LIB_NAME}")
++  set(_static_libs    "lib${MYSQLCLIENT_LIB_NAME}.a")
+   set(_static_lib_ext ".a")
+ else()
+   # We try the multithreaded "libmysqlclient_r" first and if not

diff --git a/dev-db/myodbc/files/5.3-mariadb-buffer_length.patch b/dev-db/myodbc/files/5.3-mariadb-buffer_length.patch
new file mode 100644
index 0000000..1be9cc4
--- /dev/null
+++ b/dev-db/myodbc/files/5.3-mariadb-buffer_length.patch
@@ -0,0 +1,93 @@
+diff -aurN a/driver/connect.c b/driver/connect.c
+--- a/driver/connect.c	2016-11-29 07:40:13.000000000 -0500
++++ b/driver/connect.c	2017-02-17 16:14:48.116640371 -0500
+@@ -510,11 +510,11 @@
+     }
+   }
+ 
+-#if MYSQL_VERSION_ID >= 50709
+-  mysql_get_option(mysql, MYSQL_OPT_NET_BUFFER_LENGTH, &dbc->net_buffer_length);
++#if MYSQL_VERSION_ID >= 50709 && !defined(MARIADB_BASE_VERSION)
++  mysql_get_option(mysql, MYSQL_OPT_NET_BUFFER_LENGTH, &dbc->net_buffer_length_value);
+ #else
+   // for older versions just use net_buffer_length() macro
+-  dbc->net_buffer_length = net_buffer_length;
++  dbc->net_buffer_length_value = net_buffer_length;
+ #endif
+   return rc;
+ 
+diff -aurN a/driver/cursor.c b/driver/cursor.c
+--- a/driver/cursor.c	2016-11-29 07:40:13.000000000 -0500
++++ b/driver/cursor.c	2017-02-17 16:13:19.163299885 -0500
+@@ -1485,7 +1485,7 @@
+               We have a limited capacity to shove data across the wire, but
+               we handle this by sending in multiple calls to exec_stmt_query()
+             */
+-            if (ext_query->length + length >= (SQLULEN) stmt->dbc->net_buffer_length)
++            if (ext_query->length + length >= (SQLULEN) stmt->dbc->net_buffer_length_value)
+             {
+                 break_insert= TRUE;
+                 break;
+diff -aurN a/driver/driver.h b/driver/driver.h
+--- a/driver/driver.h	2016-11-29 07:40:13.000000000 -0500
++++ b/driver/driver.h	2017-02-17 16:10:57.072950723 -0500
+@@ -378,7 +378,7 @@
+   int           txn_isolation;
+   uint          port;
+   uint          cursor_count;
+-  ulong         net_buffer_length;
++  ulong         net_buffer_length_value;
+   uint          commit_flag;
+ #ifdef THREAD
+   myodbc_mutex_t lock;
+diff -aurN a/driver/info.c b/driver/info.c
+--- a/driver/info.c	2016-11-29 07:40:13.000000000 -0500
++++ b/driver/info.c	2017-02-17 16:12:54.315763441 -0500
+@@ -587,7 +587,7 @@
+     MYINFO_SET_USHORT(0);
+ 
+   case SQL_MAX_STATEMENT_LEN:
+-    MYINFO_SET_ULONG(dbc->net_buffer_length);
++    MYINFO_SET_ULONG(dbc->net_buffer_length_value);
+ 
+   case SQL_MAX_TABLE_NAME_LEN:
+     MYINFO_SET_USHORT(NAME_LEN);
+diff -aurN a/driver/connect.c b/driver/connect.c
+--- a/driver/connect.c	2017-02-17 16:16:14.609026769 -0500
++++ b/driver/connect.c	2017-02-17 16:34:29.637592664 -0500
+@@ -179,7 +179,7 @@
+   /* Set other connection options */
+ 
+   if (ds->allow_big_results || ds->safe)
+-#if MYSQL_VERSION_ID >= 50709
++#if MYSQL_VERSION_ID >= 50709 && !defined(MARIADB_BASE_VERSION)
+     mysql_options(mysql, MYSQL_OPT_MAX_ALLOWED_PACKET, &max_long);
+ #else
+     /* max_allowed_packet is a magical mysql macro. */
+@@ -252,7 +252,7 @@
+                   ds_get_utf8attr(ds->rsakey, &ds->rsakey8));
+   }
+ 
+-#if MYSQL_VERSION_ID >= 50710
++#if MYSQL_VERSION_ID >= 50710 && !defined(MARIADB_BASE_VERSION)
+   {
+     char tls_options[128] = { 0 };
+     if (!ds->no_tls_1)
+@@ -323,7 +323,7 @@
+ #endif
+ 
+   mysql->options.use_ssl = !ds->disable_ssl_default;
+-#if MYSQL_VERSION_ID >= 50703
++#if MYSQL_VERSION_ID >= 50703 && !defined(MARIADB_BASE_VERSION)
+   {
+     if (ds->ssl_enforce)
+     {
+@@ -332,7 +332,7 @@
+   }
+ #endif
+ 
+-#if MYSQL_VERSION_ID >= 50711
++#if MYSQL_VERSION_ID >= 50711 && !defined(MARIADB_BASE_VERSION)
+   if (ds->sslmode)
+   {
+     unsigned int mode = 0;

diff --git a/dev-db/myodbc/files/5.3-mariadb-dynamic-array.patch b/dev-db/myodbc/files/5.3-mariadb-dynamic-array.patch
new file mode 100644
index 0000000..9672061
--- /dev/null
+++ b/dev-db/myodbc/files/5.3-mariadb-dynamic-array.patch
@@ -0,0 +1,96 @@
+diff -aurN a/driver/catalog_no_i_s.c b/driver/catalog_no_i_s.c
+--- a/driver/catalog_no_i_s.c	2016-11-29 07:40:13.000000000 -0500
++++ b/driver/catalog_no_i_s.c	2017-02-17 14:07:03.979683613 -0500
+@@ -1093,7 +1093,11 @@
+   unsigned long *lengths;
+   SQLRETURN rc= SQL_SUCCESS;
+ 
++#if defined(MARIADB_BASE_VERSION) && MYSQL_VERSION_ID > 100001
++  myodbc_init_dynamic_array(&records, sizeof(MY_FOREIGN_KEY_FIELD), 0, 0, MYF(0));
++#else
+   myodbc_init_dynamic_array(&records, sizeof(MY_FOREIGN_KEY_FIELD), 0, 0);
++#endif
+ 
+   /* Get the list of tables that match szCatalog and szTable */
+   myodbc_mutex_lock(&stmt->dbc->lock);
+diff -aurN a/driver/desc.c b/driver/desc.c
+--- a/driver/desc.c	2016-11-29 07:40:13.000000000 -0500
++++ b/driver/desc.c	2017-02-17 14:09:30.139954232 -0500
+@@ -63,13 +63,21 @@
+      but in desc_get_rec we manually get a pointer to it. This avoids
+      having to call set_dynamic after modifying the DESCREC.
+   */
++#if defined(MARIADB_BASE_VERSION) && MYSQL_VERSION_ID > 100001
++  if (myodbc_init_dynamic_array(&desc->records, sizeof(DESCREC), 0, 0, MYF(0)))
++#else
+   if (myodbc_init_dynamic_array(&desc->records, sizeof(DESCREC), 0, 0))
++#endif
+   {
+     x_free((char *)desc);
+     return NULL;
+   }
+ 
++#if defined(MARIADB_BASE_VERSION) && MYSQL_VERSION_ID > 100001
++  if (myodbc_init_dynamic_array(&desc->bookmark, sizeof(DESCREC), 0, 0, MYF(0)))
++#else
+   if (myodbc_init_dynamic_array(&desc->bookmark, sizeof(DESCREC), 0, 0))
++#endif
+   {
+     delete_dynamic(&desc->records);
+     x_free((char *)desc);
+@@ -997,7 +1005,11 @@
+   delete_dynamic(&dest->records);
+   if (myodbc_init_dynamic_array(&dest->records, sizeof(DESCREC),
+                             src->records.max_element,
++#if defined(MARIADB_BASE_VERSION) && MYSQL_VERSION_ID > 100001
++                            src->records.alloc_increment, MYF(0)))
++#else
+                             src->records.alloc_increment))
++#endif
+   {
+     return set_desc_error(dest, "HY001",
+               "Memory allocation error",
+diff -aurN a/driver/handle.c b/driver/handle.c
+--- a/driver/handle.c	2016-11-29 07:40:13.000000000 -0500
++++ b/driver/handle.c	2017-02-17 14:10:32.078797593 -0500
+@@ -409,7 +409,11 @@
+     }
+   }
+ 
++#if defined(MARIADB_BASE_VERSION) && MYSQL_VERSION_ID > 100001
++  myodbc_init_dynamic_array(*param_bind, sizeof(MYSQL_BIND), elements, 10, MYF(0));
++#else
+   myodbc_init_dynamic_array(*param_bind, sizeof(MYSQL_BIND), elements, 10);
++#endif
+   memset((*param_bind)->buffer, 0, sizeof(MYSQL_BIND) *
+ 											(*param_bind)->max_element);
+ 
+diff -aurN a/driver/parse.c b/driver/parse.c
+--- a/driver/parse.c	2016-11-29 07:40:13.000000000 -0500
++++ b/driver/parse.c	2017-02-17 14:12:00.638143846 -0500
+@@ -139,8 +139,13 @@
+ 
+     /* TODO: Store offsets rather than ptrs. In this case we will be fine
+        if work with copy of the originally parsed string */
++#if defined(MARIADB_BASE_VERSION) && MYSQL_VERSION_ID > 100001
++    myodbc_init_dynamic_array(&pq->token,     sizeof(uint), 20, 10, MYF(0));
++    myodbc_init_dynamic_array(&pq->param_pos, sizeof(uint), 10, 10, MYF(0));
++#else
+     myodbc_init_dynamic_array(&pq->token,     sizeof(uint), 20, 10);
+     myodbc_init_dynamic_array(&pq->param_pos, sizeof(uint), 10, 10);
++#endif
+   }
+ 
+   return pq;
+diff -aurN a/MYODBC_MYSQL.h b/MYODBC_MYSQL.h
+--- a/MYODBC_MYSQL.h	2016-11-29 07:40:13.000000000 -0500
++++ b/MYODBC_MYSQL.h	2017-02-17 15:04:47.153994839 -0500
+@@ -44,7 +44,7 @@
+ #endif
+ 
+ #ifdef THREAD
+-#if MYSQL_VERSION_ID < 50703
++#if MYSQL_VERSION_ID < 50703 || defined(MARIADB_BASE_VERSION)
+ #include <my_pthread.h>
+ #define myodbc_mutex_t pthread_mutex_t
+ #define myodbc_key_t pthread_key_t

diff --git a/dev-db/myodbc/files/5.3.10-cxxlinkage.patch b/dev-db/myodbc/files/5.3.10-cxxlinkage.patch
new file mode 100644
index 0000000..796a137
--- /dev/null
+++ b/dev-db/myodbc/files/5.3.10-cxxlinkage.patch
@@ -0,0 +1,29 @@
+diff -aurN a/cmake/FindMySQL.cmake b/cmake/FindMySQL.cmake
+--- a/cmake/FindMySQL.cmake	2016-11-29 07:40:13.000000000 -0500
++++ b/cmake/FindMySQL.cmake	2017-02-17 13:59:18.115389096 -0500
+@@ -747,7 +747,7 @@
+     endif()
+ 
+     if(NOT MYSQL_CXXFLAGS)
+-      if(MYSQL_CXX_LINKAGE OR MYSQL_VERSION_ID GREATER 50603)
++      if(MYSQL_CXX_LINKAGE)
+         _mysql_conf(MYSQL_CXXFLAGS "--cxxflags")
+         set(MYSQL_CXX_LINKAGE 1)
+       else()
+diff -aurN a/CMakeLists.txt b/CMakeLists.txt
+--- a/CMakeLists.txt	2018-02-10 21:41:13.161553751 -0500
++++ b/CMakeLists.txt	2018-02-10 21:45:20.038398824 -0500
+@@ -379,10 +379,9 @@
+ SET(EXECUTABLE_OUTPUT_PATH "${CMAKE_BINARY_DIR}/bin")
+ SET(LIBRARY_OUTPUT_PATH "${CMAKE_BINARY_DIR}/lib")
+ 
+-SET(LIB_SUBDIR "lib")
+-IF(RPM_BUILD AND CMAKE_SYSTEM_PROCESSOR MATCHES "(x86_64|ppc64|ppc64p7|s390x|sparc64)")
+-  SET(LIB_SUBDIR "lib64")
+-ENDIF()
++IF(NOT LIB_SUBDIR)
++	MESSAGE(ERROR "LIB_SUBDIR is not set")
++ENDIF(NOT LIB_SUBDIR)
+ 
+ MESSAGE(STATUS "Installation library subdir: ${LIB_SUBDIR}")
+ 

diff --git a/dev-db/myodbc/files/odbc.ini.m4 b/dev-db/myodbc/files/odbc.ini.m4
index 8783f4e..4255730 100644
--- a/dev-db/myodbc/files/odbc.ini.m4
+++ b/dev-db/myodbc/files/odbc.ini.m4
@@ -1,4 +1,3 @@
-# $Id$
 # vim:ts=4 noexpandtab ft=dosini:
 #
 [ODBC Data Sources]

diff --git a/dev-db/myodbc/files/odbcinst.ini.m4 b/dev-db/myodbc/files/odbcinst.ini.m4
index 7b3c8fc..744503c 100644
--- a/dev-db/myodbc/files/odbcinst.ini.m4
+++ b/dev-db/myodbc/files/odbcinst.ini.m4
@@ -1,4 +1,3 @@
-# $Id$
 # vim:ts=4 noexpandtab ft=dosini:
 #
 [__PN__]

diff --git a/dev-db/myodbc/myodbc-5.3.10.ebuild b/dev-db/myodbc/myodbc-5.3.10.ebuild
new file mode 100644
index 0000000..9fd6b22
--- /dev/null
+++ b/dev-db/myodbc/myodbc-5.3.10.ebuild
@@ -0,0 +1,145 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+# Build is broken with ninja
+CMAKE_MAKEFILE_GENERATOR=emake
+
+inherit cmake-multilib flag-o-matic versionator
+
+MAJOR="$(get_version_component_range 1-2 $PV)"
+MY_PN="mysql-connector-odbc"
+MY_P="${MY_PN}-${PV/_p/r}-src"
+
+DESCRIPTION="ODBC driver for MySQL"
+HOMEPAGE="http://www.mysql.com/products/myodbc/"
+SRC_URI="https://dev.mysql.com/get/Downloads/Connector-ODBC/${MAJOR}/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="${MAJOR}"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE=""
+
+# Does not build with mysql-connector-c
+RDEPEND="
+	dev-db/unixODBC[${MULTILIB_USEDEP}]
+	~virtual/libmysqlclient-18[${MULTILIB_USEDEP}]
+	abi_x86_32? (
+		!app-emulation/emul-linux-x86-db[-abi_x86_32(-)]
+	)
+"
+DEPEND="${RDEPEND}"
+S=${WORKDIR}/${MY_P}
+
+# Careful!
+DRIVER_NAME="${PN}-${SLOT}"
+
+# Patch document path so it doesn't install files to /usr
+PATCHES=(
+	"${FILESDIR}/${MAJOR}-cmake-doc-path.patch"
+	"${FILESDIR}/5.3.10-cxxlinkage.patch"
+#	"${FILESDIR}/${MAJOR}-mariadb-dynamic-array.patch"
+	"${FILESDIR}/5.2.7-my_malloc.patch"
+#	"${FILESDIR}/${MAJOR}-mariadb-buffer_length.patch"
+)
+
+src_prepare() {
+	# Fix undefined references due to standards change
+#	append-cflags -std=gnu89
+
+	# Remove Tests
+	sed -i -e "s/ADD_SUBDIRECTORY(test)//" \
+		"${S}/CMakeLists.txt"
+
+	# Fix as-needed on the installer binary
+	echo "TARGET_LINK_LIBRARIES(myodbc-installer odbc)" >> "${S}/installer/CMakeLists.txt"
+
+	cmake-utils_src_prepare
+}
+
+multilib_src_configure() {
+#	local clientlib
+#	for clientlib in "mariadb" "perconaclient" "mysqlclient" "notfound" ; do
+#		[[ -x "${EPREFIX}/usr/$(get_libdir)/lib${clientlib}.so" ]] && break
+#	done
+#	[[ "${clientlib}x" == "notfoundx" ]] && \
+#		die "Installed client library name could not be determined"
+
+	# MYSQL_CXX_LINKAGE expects "mysql_config --cxxflags" which doesn't exist on MariaDB
+	mycmakeargs+=(
+		-DMYSQL_CXX_LINKAGE=0
+		-DWITH_UNIXODBC=1
+#		-DMYSQLCLIENT_LIB_NAME="${clientlib}"
+#		-DMYSQLCLIENT_LIB_NAME="mysqlclient"
+		-DWITH_DOCUMENTATION_INSTALL_PATH=/usr/share/doc/${PF}
+		-DMYSQL_LIB_DIR="${EPREFIX}/usr/$(get_libdir)"
+		-DLIB_SUBDIR="$(get_libdir)/${PN}-${MAJOR}"
+		-DMYSQL_INCLUDE_DIR="$(mysql_config --variable=pkgincludedir)"
+		-DMYSQLCLIENT_NO_THREADS=ON
+		-DDISABLE_GUI=ON
+		# The NUMA and LIBWRAP options are not really used.
+		# They are just copied from the server code
+		-DWITH_NUMA=OFF
+		-DWITH_LIBWRAP=OFF
+	)
+	cmake-utils_src_configure
+}
+
+multilib_src_install_all() {
+	debug-print-function ${FUNCNAME} "$@"
+
+	dodir /usr/share/${PN}-${SLOT}
+	for i in odbc.ini odbcinst.ini; do
+		einfo "Building $i"
+			sed \
+			-e "s,__PN__,${DRIVER_NAME},g" \
+			-e "s,__PF__,${MAJOR},g" \
+			-e "s,lib/libmyodbc3.so,$(get_libdir)/${PN}-${MAJOR}/libmyodbc${SLOT:0:1}a.so,g" \
+			>"${D}"/usr/share/${PN}-${SLOT}/${i} \
+			<"${FILESDIR}"/${i}.m4 \
+			|| die "Failed to build $i"
+	done;
+	mv "${D}/usr/bin/myodbc-installer" \
+		"${D}/usr/bin/myodbc-installer-${MAJOR}" || die "failed to move slotted binary"
+}
+
+pkg_config() {
+
+	[ "${ROOT}" != "/" ] && \
+		die 'Sorry, non-standard ROOT setting is not supported :-('
+
+	local msg='MySQL ODBC driver'
+	local drivers=$(/usr/bin/odbcinst -q -d)
+
+	if echo $drivers | grep -vq "^\[${DRIVER_NAME}\]$" ; then
+		ebegin "Installing ${msg}"
+		/usr/bin/odbcinst -i -d -f /usr/share/${PN}-${SLOT}/odbcinst.ini
+		rc=$?
+		eend $rc
+		[ $rc -ne 0 ] && die
+	else
+		einfo "Skipping already installed ${msg}"
+	fi
+
+	local sources=$(/usr/bin/odbcinst -q -s)
+	msg='sample MySQL ODBC DSN'
+	if echo $sources | grep -vq "^\[${DRIVER_NAME}-test\]$"; then
+		ebegin "Installing ${msg}"
+		/usr/bin/odbcinst -i -s -l -f /usr/share/${PN}-${SLOT}/odbc.ini
+		rc=$?
+		eend $rc
+		[ $rc -ne 0 ] && die
+	else
+		einfo "Skipping already installed ${msg}"
+	fi
+}
+
+pkg_postinst() {
+
+	elog "If this is a new install, please run the following command"
+	elog "to configure the MySQL ODBC drivers and sources:"
+	elog "emerge --config =${CATEGORY}/${PF}"
+	elog "Please note that the driver name used to form the DSN now includes the SLOT."
+	elog "The myodbc-install utility is installed as myodbc-install-${MAJOR}"
+}


^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2018-02-11  4:19 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-02-11  4:18 [gentoo-commits] proj/mysql:master commit in: dev-db/myodbc/files/, dev-db/myodbc/ Brian Evans
  -- strict thread matches above, loose matches on Subject: below --
2015-08-11 17:08 Brian Evans

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox