commit:     3ef9d241a4de69e68761eeaa26f12d3414defc44
Author:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
AuthorDate: Thu May 13 22:28:02 2021 +0000
Commit:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
CommitDate: Thu May 13 22:28:16 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3ef9d241

dev-db/mysql-connector-c++: bump to v8.0.25

Package-Manager: Portage-3.0.18, Repoman-3.0.3
Signed-off-by: Thomas Deutschmann <whissi <AT> gentoo.org>

 dev-db/mysql-connector-c++/Manifest                |   1 +
 ...c++-8.0.25-fix-mysqlclient-static-binding.patch | 274 +++++++++++++++++++++
 .../mysql-connector-c++-8.0.25.ebuild              |  45 ++++
 3 files changed, 320 insertions(+)

diff --git a/dev-db/mysql-connector-c++/Manifest 
b/dev-db/mysql-connector-c++/Manifest
index 5fac3703623..856ac8e3699 100644
--- a/dev-db/mysql-connector-c++/Manifest
+++ b/dev-db/mysql-connector-c++/Manifest
@@ -5,3 +5,4 @@ DIST mysql-connector-c++-8.0.21-src.tar.gz 3788740 BLAKE2B 
1862b4f2c6e2a2bbe8e30
 DIST mysql-connector-c++-8.0.22-src.tar.gz 3795112 BLAKE2B 
c5d6f0ebeb4649857f3217a35f3ae885d62be63af4da09815e7eb156538ece4f805578db24bfff3dd44a0e320c025a9936d7edacba69a2786d84dd932c5abb8a
 SHA512 
1975b43fa3f3806cccc685a695f84783164c5b17da10ac14a6013d27c837cc9c63fff01b1ed4b31f22dae60afa68d34ec56ca9c45ca3dac23635e8f0fa845aa4
 DIST mysql-connector-c++-8.0.23-src.tar.gz 3798295 BLAKE2B 
923eebbd7f9cde0252c84de4c70863b40c0dd93ad98a93e2ec14c935b2f3f0b0f251828a8bbbd0f23a5ec03491db06020294e19455901d15181c84fec9fb3d7f
 SHA512 
f8eb8842e199d7373f4b55644720ac63b93eb33be19294c433f57aaf556ce1b5752223154194469fa28af52adebe930f0a7b4e8f62df92cc810b545aa7bab928
 DIST mysql-connector-c++-8.0.24-src.tar.gz 3797356 BLAKE2B 
e509e04f6c93893948c573401188567bcbda91db0e608d53b1795593abf043117e1a525d3abe5c8396068a2ef750582cde15b64412e556e89762d08032abb602
 SHA512 
5507bc562e8263ee17efb9d4e2f52e471da75e73a1fc4dd1bc0a2ac1c2a593be889c4b042037cf6d3cbff854ae5cc865a8800251da475aed0f31710229af26f1
+DIST mysql-connector-c++-8.0.25-src.tar.gz 3800065 BLAKE2B 
67546b2d7d9de25ccb440c22bd58ee83e6fae78710e6dfa802cb0446bf5be433c56458424f0ee81c9a899bbfd5f464712d2d0b43dceb4205b492c7b1a79f7858
 SHA512 
44dd7f4296d666801be55642e53cb5181d9b5c3b080306975a48eb6280e555d9b924b42b14b44dffee4c54fab3f662a7b6bb6584d9a1ed710f0026788611c525

diff --git 
a/dev-db/mysql-connector-c++/files/mysql-connector-c++-8.0.25-fix-mysqlclient-static-binding.patch
 
b/dev-db/mysql-connector-c++/files/mysql-connector-c++-8.0.25-fix-mysqlclient-static-binding.patch
new file mode 100644
index 00000000000..f211f113f04
--- /dev/null
+++ 
b/dev-db/mysql-connector-c++/files/mysql-connector-c++-8.0.25-fix-mysqlclient-static-binding.patch
@@ -0,0 +1,274 @@
+From 774d7bd983a2e12e78a0231c7936a9481bb3df1d Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Lu=C3=ADs=20Silva?= <luis.m.si...@oracle.com>
+Date: Thu, 13 May 2021 23:14:57 +0100
+Subject: [PATCH] Bug #32882344: FIX MYSQLCLIENT_STATIC_BINDING=0 BUILD
+
+---
+ driver/nativeapi/libmysql_dynamic_proxy.cpp |  13 ++
+ driver/nativeapi/libmysql_dynamic_proxy.h   | 132 ++++++++++----------
+ driver/nativeapi/mysql_client_api.h         |   2 +
+ 3 files changed, 83 insertions(+), 64 deletions(-)
+
+diff --git a/driver/nativeapi/libmysql_dynamic_proxy.cpp 
b/driver/nativeapi/libmysql_dynamic_proxy.cpp
+index 4c70074e..9bd4bd99 100644
+--- a/jdbc/driver/nativeapi/libmysql_dynamic_proxy.cpp
++++ b/jdbc/driver/nativeapi/libmysql_dynamic_proxy.cpp
+@@ -512,6 +512,19 @@ LibmysqlDynamicProxy::real_connect_dns_srv(MYSQL * mysql,
+ /* }}} */
+ 
+ 
++/* {{{ LibmysqlDynamicProxy::bind_param() */
++bool
++LibmysqlDynamicProxy::bind_param(MYSQL *mysql, unsigned n_params,
++                                 MYSQL_BIND *binds, const char **names)
++{
++  ptr2mysql_bind_param ptr2_bind_param=
++    symbol_safe_cast<ptr2mysql_bind_param>(GetProcAddr("mysql_bind_param"));
++
++  return (*ptr2_bind_param)(mysql, n_params, binds, names);
++}
++/* }}} */
++
++
+ /* {{{ LibmysqlDynamicProxy::real_escape_string() */
+ unsigned long
+ LibmysqlDynamicProxy::real_escape_string(MYSQL * mysql, char * to, const char 
* from, unsigned long length)
+diff --git a/driver/nativeapi/libmysql_dynamic_proxy.h 
b/driver/nativeapi/libmysql_dynamic_proxy.h
+index 93dc9700..e0f00c95 100644
+--- a/jdbc/driver/nativeapi/libmysql_dynamic_proxy.h
++++ b/jdbc/driver/nativeapi/libmysql_dynamic_proxy.h
+@@ -65,67 +65,67 @@ public:
+ 
+   // MySQL C-API calls wrappers
+ 
+-  my_ulonglong affected_rows(MYSQL *);
++  my_ulonglong affected_rows(MYSQL *) override;
+ 
+-  my_bool autocommit(MYSQL * , my_bool);
++  my_bool autocommit(MYSQL * , my_bool) override;
+ 
+-  void close (MYSQL *mysql);
++  void close (MYSQL *mysql) override;
+ 
+-  my_bool commit(MYSQL *mysql);
++  my_bool commit(MYSQL *mysql) override;
+ 
+-  void data_seek(MYSQL_RES *, my_ulonglong);
++  void data_seek(MYSQL_RES *, my_ulonglong) override;
+ 
+-  void debug(const char *);
++  void debug(const char *) override;
+ 
+-  unsigned int mysql_errno(MYSQL *);
++  unsigned int mysql_errno(MYSQL *) override;
+ 
+-  const char *  error(MYSQL *);
++  const char *  error(MYSQL *) override;
+ 
+-  MYSQL_FIELD * fetch_field(MYSQL_RES *);
++  MYSQL_FIELD * fetch_field(MYSQL_RES *) override;
+ 
+-  MYSQL_FIELD * fetch_field_direct(MYSQL_RES *, unsigned int);
++  MYSQL_FIELD * fetch_field_direct(MYSQL_RES *, unsigned int) override;
+ 
+-  unsigned long * fetch_lengths(MYSQL_RES *);
++  unsigned long * fetch_lengths(MYSQL_RES *) override;
+ 
+-  MYSQL_ROW fetch_row(MYSQL_RES *);
++  MYSQL_ROW fetch_row(MYSQL_RES *) override;
+ 
+-  unsigned int field_count(MYSQL *);
++  unsigned int field_count(MYSQL *) override;
+ 
+-  void free_result(MYSQL_RES *);
++  void free_result(MYSQL_RES *) override;
+ 
+-  unsigned long get_client_version();
++  unsigned long get_client_version() override;
+ 
+-  const char *  get_server_info(MYSQL *);
++  const char *  get_server_info(MYSQL *) override;
+ 
+-  unsigned long get_server_version(MYSQL *);
++  unsigned long get_server_version(MYSQL *) override;
+ 
+-  void get_character_set_info(MYSQL *, void *);
++  void get_character_set_info(MYSQL *, void *) override;
+ 
+-  const char * info(MYSQL *);
++  const char * info(MYSQL *) override;
+ 
+-  MYSQL * init(MYSQL *mysql);
++  MYSQL * init(MYSQL *mysql) override;
+ 
+-  int library_init(int, char **, char **);
++  int library_init(int, char **, char **) override;
+ 
+-  void library_end();
++  void library_end() override;
+ 
+-  my_bool more_results(MYSQL *);
++  my_bool more_results(MYSQL *) override;
+ 
+-  int next_result(MYSQL *);
++  int next_result(MYSQL *) override;
+ 
+-  unsigned int num_fields(MYSQL_RES *);
++  unsigned int num_fields(MYSQL_RES *) override;
+ 
+-  my_ulonglong num_rows(MYSQL_RES *);
++  my_ulonglong num_rows(MYSQL_RES *) override;
+ 
+-  int options (MYSQL *, enum mysql_option, const void *);
++  int options (MYSQL *, enum mysql_option, const void *) override;
+ 
+-  int options (MYSQL *, enum mysql_option, const void *, const void *);
++  int options (MYSQL *, enum mysql_option, const void *, const void *) 
override;
+ 
+-  int get_option (MYSQL *, enum mysql_option, const void *);
++  int get_option (MYSQL *, enum mysql_option, const void *) override;
+ 
+-  int ping(MYSQL *);
++  int ping(MYSQL *) override;
+ 
+-  int query(MYSQL *, const char *);
++  int query(MYSQL *, const char *) override;
+ 
+   MYSQL * real_connect(MYSQL * mysql, const char *  host,
+               const char *  user,
+@@ -133,82 +133,86 @@ public:
+               const char *  db,
+               unsigned int  port,
+               const char *  unix_socket,
+-              unsigned long client_flag);
++              unsigned long client_flag) override;
+ 
+   MYSQL * real_connect_dns_srv(MYSQL * mysql,
+               const char *  host,
+               const char *  user,
+               const char *  passwd,
+               const char *  db,
+-              unsigned long client_flag);
++              unsigned long client_flag) override;
+ 
+-  unsigned long real_escape_string(MYSQL * mysql, char * to, const char * 
from, unsigned long length);
++  bool bind_param(MYSQL *mysql, unsigned n_params,
++                  MYSQL_BIND *binds, const char **names) override;
+ 
+-  int real_query(MYSQL *, const char *, unsigned long);
+ 
+-  my_bool rollback(MYSQL *);
++  unsigned long real_escape_string(MYSQL * mysql, char * to, const char * 
from, unsigned long length) override;
+ 
+-  const char * sqlstate(MYSQL *);
++  int real_query(MYSQL *, const char *, unsigned long) override;
++
++  my_bool rollback(MYSQL *) override;
++
++  const char * sqlstate(MYSQL *) override;
+ 
+   my_bool ssl_set(MYSQL * mysql,
+           const char * key,
+           const char * cert,
+           const char * ca,
+           const char * capath,
+-          const char * cipher);
++          const char * cipher) override;
+ 
+-  MYSQL_RES * store_result(MYSQL *);
++  MYSQL_RES * store_result(MYSQL *) override;
+ 
+-  MYSQL_RES * use_result(MYSQL *);
++  MYSQL_RES * use_result(MYSQL *) override;
+ 
+-  unsigned int warning_count(MYSQL *);
++  unsigned int warning_count(MYSQL *) override;
+ 
+   /* Prepared Statement stmt_* functions */
+-  my_ulonglong  stmt_affected_rows  (MYSQL_STMT *);
++  my_ulonglong  stmt_affected_rows  (MYSQL_STMT *) override;
+ 
+-  my_bool stmt_attr_set(MYSQL_STMT *, enum enum_stmt_attr_type, const void *);
++  my_bool stmt_attr_set(MYSQL_STMT *, enum enum_stmt_attr_type, const void *) 
override;
+ 
+-  my_bool stmt_bind_param(MYSQL_STMT *, MYSQL_BIND *);
++  my_bool stmt_bind_param(MYSQL_STMT *, MYSQL_BIND *) override;
+ 
+-  my_bool stmt_bind_result(MYSQL_STMT *, MYSQL_BIND *);
++  my_bool stmt_bind_result(MYSQL_STMT *, MYSQL_BIND *) override;
+ 
+-  my_bool stmt_close(MYSQL_STMT *);
++  my_bool stmt_close(MYSQL_STMT *) override;
+ 
+-  void stmt_data_seek(MYSQL_STMT *, my_ulonglong);
++  void stmt_data_seek(MYSQL_STMT *, my_ulonglong) override;
+ 
+-  unsigned int stmt_errno(MYSQL_STMT *);
++  unsigned int stmt_errno(MYSQL_STMT *) override;
+ 
+-  const char * stmt_error(MYSQL_STMT *);
++  const char * stmt_error(MYSQL_STMT *) override;
+ 
+-  int stmt_execute(MYSQL_STMT *);
++  int stmt_execute(MYSQL_STMT *) override;
+ 
+-  int stmt_fetch(MYSQL_STMT *);
++  int stmt_fetch(MYSQL_STMT *) override;
+ 
+-  unsigned int stmt_field_count(MYSQL_STMT *);
++  unsigned int stmt_field_count(MYSQL_STMT *) override;
+ 
+-  MYSQL_STMT * stmt_init(MYSQL *);
++  MYSQL_STMT * stmt_init(MYSQL *) override;
+ 
+-  my_ulonglong stmt_num_rows(MYSQL_STMT *);
++  my_ulonglong stmt_num_rows(MYSQL_STMT *) override;
+ 
+-  unsigned long stmt_param_count(MYSQL_STMT *);
++  unsigned long stmt_param_count(MYSQL_STMT *) override;
+ 
+-  int stmt_prepare(MYSQL_STMT *, const char *, unsigned long);
++  int stmt_prepare(MYSQL_STMT *, const char *, unsigned long) override;
+ 
+-  MYSQL_RES * stmt_result_metadata(MYSQL_STMT *);
++  MYSQL_RES * stmt_result_metadata(MYSQL_STMT *) override;
+ 
+-  my_bool stmt_send_long_data (MYSQL_STMT * , unsigned int, const char *, 
unsigned long);
++  my_bool stmt_send_long_data (MYSQL_STMT * , unsigned int, const char *, 
unsigned long) override;
+ 
+-  const char * stmt_sqlstate(MYSQL_STMT *);
++  const char * stmt_sqlstate(MYSQL_STMT *) override;
+ 
+-  int stmt_store_result(MYSQL_STMT *);
++  int stmt_store_result(MYSQL_STMT *) override;
+ 
+-  int stmt_next_result(MYSQL_STMT *);
++  int stmt_next_result(MYSQL_STMT *) override;
+ 
+-  bool stmt_free_result(MYSQL_STMT *);
++  bool stmt_free_result(MYSQL_STMT *) override;
+ 
+-  void thread_init();
++  void thread_init() override;
+ 
+-  void thread_end();
++  void thread_end() override;
+ };
+ 
+ } /* namespace NativeAPI */
+diff --git a/driver/nativeapi/mysql_client_api.h 
b/driver/nativeapi/mysql_client_api.h
+index b738cf9a..fa044c93 100644
+--- a/jdbc/driver/nativeapi/mysql_client_api.h
++++ b/jdbc/driver/nativeapi/mysql_client_api.h
+@@ -111,6 +111,8 @@ typedef MYSQL * (STDCALL *ptr2mysql_real_connect)(MYSQL *, 
const char *, const c
+ 
+ typedef MYSQL * (STDCALL *ptr2mysql_real_connect_dns_srv)(MYSQL *, const char 
*, const char *, const char * , const char *, unsigned long);
+ 
++typedef bool (STDCALL *ptr2mysql_bind_param)(MYSQL *mysql, unsigned n_params, 
MYSQL_BIND *binds, const char **names);
++
+ typedef unsigned long (STDCALL *ptr2mysql_real_escape_string)(MYSQL * mysql, 
char *, const char *, unsigned long);
+ 
+ typedef int (STDCALL *ptr2mysql_real_query)(MYSQL *, const char *, unsigned 
long);
+-- 
+2.30.2
+

diff --git a/dev-db/mysql-connector-c++/mysql-connector-c++-8.0.25.ebuild 
b/dev-db/mysql-connector-c++/mysql-connector-c++-8.0.25.ebuild
new file mode 100644
index 00000000000..1d5c5bd6f51
--- /dev/null
+++ b/dev-db/mysql-connector-c++/mysql-connector-c++-8.0.25.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+
+CMAKE_MAKEFILE_GENERATOR=emake
+inherit cmake
+
+DESCRIPTION="MySQL database connector for C++ (mimics JDBC 4.0 API)"
+HOMEPAGE="https://dev.mysql.com/downloads/connector/cpp/";
+URI_DIR="Connector-C++"
+SRC_URI="https://dev.mysql.com/get/Downloads/${URI_DIR}/${P}-src.tar.gz";
+
+LICENSE="Artistic GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~sparc ~x86"
+IUSE="+legacy"
+
+RDEPEND="
+       dev-libs/protobuf:=
+       legacy? (
+               dev-libs/boost:=
+               >=dev-db/mysql-connector-c-6.1.8:=
+       )
+       dev-libs/openssl:0=
+       "
+DEPEND="${RDEPEND}"
+S="${WORKDIR}/${P}-src"
+
+PATCHES=(
+       "${FILESDIR}"/${PN}-8.0.22-fix-build.patch
+       "${FILESDIR}"/${PN}-8.0.24-gcc11-numeric_limits.patch
+       "${FILESDIR}"/${PN}-8.0.25-fix-mysqlclient-static-binding.patch
+)
+
+src_configure() {
+       local mycmakeargs=(
+               -DWITH_SSL=system
+               -DWITH_JDBC=$(usex legacy ON OFF)
+               $(usex legacy '-DMYSQLCLIENT_STATIC_BINDING=0' '')
+               $(usex legacy '-DMYSQLCLIENT_STATIC_LINKING=0' '')
+       )
+
+       cmake_src_configure
+}

Reply via email to