Gentoo Archives: gentoo-commits

From: Thomas Deutschmann <whissi@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-db/mysql-connector-c++/, dev-db/mysql-connector-c++/files/
Date: Thu, 30 Apr 2020 20:45:31
Message-Id: 1588279497.2a0e2f90800f187b1d183c4a209e2669df171b87.whissi@gentoo
1 commit: 2a0e2f90800f187b1d183c4a209e2669df171b87
2 Author: Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
3 AuthorDate: Thu Apr 30 20:42:37 2020 +0000
4 Commit: Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
5 CommitDate: Thu Apr 30 20:44:57 2020 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2a0e2f90
7
8 dev-db/mysql-connector-c++: bump to v8.0.20
9
10 Package-Manager: Portage-2.3.99, Repoman-2.3.22
11 Signed-off-by: Thomas Deutschmann <whissi <AT> gentoo.org>
12
13 dev-db/mysql-connector-c++/Manifest | 1 +
14 ...connector-c++-8.0.20-fix-libressl-support.patch | 88 ++++++++++++++++++++++
15 .../mysql-connector-c++-8.0.20.ebuild | 44 +++++++++++
16 3 files changed, 133 insertions(+)
17
18 diff --git a/dev-db/mysql-connector-c++/Manifest b/dev-db/mysql-connector-c++/Manifest
19 index 33a459b80f0..24ff072f74d 100644
20 --- a/dev-db/mysql-connector-c++/Manifest
21 +++ b/dev-db/mysql-connector-c++/Manifest
22 @@ -1,2 +1,3 @@
23 DIST mysql-connector-c++-1.1.12.tar.gz 518615 BLAKE2B 386a4753ca3f03999a49a89507da1b1172b3db89797c38403fee4eea86e7108a5e4f91f24a17de86d585c2a3d9e5742a117fa84d9b14aad649f938a597f3dae9 SHA512 d7e132dbc2efda4a77f8ae00c24006a1ade1d0a50f22d89ece453505e6d206427ee7988df29c0d6ef8b396ad6b8d326b6d263a1d4fa08ef5db0966fb4f1479f4
24 DIST mysql-connector-c++-8.0.19-src.tar.gz 3137484 BLAKE2B 82a2900b0daa00bcfd72d562818ada25fe15901991a896a46ecdd9304e03066c4e7a3804287540559df1c74dbd1b3983b450ab783ee8cb7f0d7ec152f3cdc6b0 SHA512 5987ae31cda3a5db18ceded201ccbe66263b8ab7665ceacf70af6bb6b99130377b40514b96644b0768fd809b36ee02580520923c11c1edecccc75da15d7bb0bd
25 +DIST mysql-connector-c++-8.0.20-src.tar.gz 3774428 BLAKE2B a06114432ab21c36fd0b3b91df2382198b2a48871e8e0bfd8c7a94729ed0e29f33599c078c97670fe9d744b13042db52fb89de2294c75eae670a77112d11d251 SHA512 3edb7c3d4ccf218a3f76afcf83a6d233b7accd236c05105ab3f7a6610cfd8809a78c78142c82fb60fb0931d2ae0f0f8fdc3ce9caf5f0cde7ef54067a7e20270b
26
27 diff --git a/dev-db/mysql-connector-c++/files/mysql-connector-c++-8.0.20-fix-libressl-support.patch b/dev-db/mysql-connector-c++/files/mysql-connector-c++-8.0.20-fix-libressl-support.patch
28 new file mode 100644
29 index 00000000000..f2ae0d02ed7
30 --- /dev/null
31 +++ b/dev-db/mysql-connector-c++/files/mysql-connector-c++-8.0.20-fix-libressl-support.patch
32 @@ -0,0 +1,88 @@
33 +--- a/cdk/cmake/DepFindSSL.cmake
34 ++++ b/cdk/cmake/DepFindSSL.cmake
35 +@@ -88,7 +88,7 @@ function(main)
36 +
37 + set(OPENSSL_LIB_DIR "${OPENSSL_LIB_DIR}" CACHE INTERNAL "")
38 +
39 +- if(NOT OPENSSL_VERSION_MAJOR EQUAL 1)
40 ++ if(NOT OPENSSL_VERSION_MAJOR VERSION_GREATER_EQUAL 1)
41 + message(SEND_ERROR "OpenSSL version 1.x is required but version ${OPENSSL_VERSION} was found")
42 + else()
43 + message(STATUS "Using OpenSSL version: ${OPENSSL_VERSION}")
44 +@@ -184,41 +184,35 @@ function(find_openssl)
45 +
46 +
47 + # Verify version number. Version information looks like:
48 +- # #define OPENSSL_VERSION_TEXT "OpenSSL 1.1.1a 20 Nov 2018"
49 ++ # #define OPENSSL_VERSION_NUMBER 0x1000103fL
50 ++ # Encoded as MNNFFPPS: major minor fix patch status
51 +
52 + FILE(STRINGS "${OPENSSL_INCLUDE_DIR}/openssl/opensslv.h"
53 + OPENSSL_VERSION_NUMBER
54 +- REGEX "#[ ]*define[\t ]+OPENSSL_VERSION_TEXT"
55 ++ REGEX "^#[ ]*define[\t ]+OPENSSL_VERSION_NUMBER[\t ]+0x[0-9].*"
56 + )
57 +
58 +- #message("== OPENSSL_VERSION_NUMBER: ${OPENSSL_VERSION_NUMBER}")
59 +- # define OPENSSL_VERSION_TEXT "OpenSSL 1.1.1d-freebsd 10 Sep 2019"
60 + STRING(REGEX REPLACE
61 +- "^.*OPENSSL_VERSION_TEXT[\t ]+\"OpenSSL[\t ]([0-9]+)\\.([0-9]+)\\.([0-9]+)([a-z]|)[\t \\-].*$"
62 +- "\\1;\\2;\\3;\\4"
63 +- version_list "${OPENSSL_VERSION_NUMBER}"
64 ++ "^.*OPENSSL_VERSION_NUMBER[\t ]+0x([0-9]).*$" "\\1"
65 ++ OPENSSL_VERSION_MAJOR "${OPENSSL_VERSION_NUMBER}"
66 ++ )
67 ++ STRING(REGEX REPLACE
68 ++ "^.*OPENSSL_VERSION_NUMBER[\t ]+0x[0-9]([0-9][0-9]).*$" "\\1"
69 ++ OPENSSL_VERSION_MINOR "${OPENSSL_VERSION_NUMBER}"
70 ++ )
71 ++ STRING(REGEX REPLACE
72 ++ "^.*OPENSSL_VERSION_NUMBER[\t ]+0x[0-9][0-9][0-9]([0-9][0-9]).*$" "\\1"
73 ++ OPENSSL_VERSION_FIX "${OPENSSL_VERSION_NUMBER}"
74 + )
75 +- #message("-- OPENSSL_VERSION: ${version_list}")
76 +-
77 +- list(GET version_list 0 OPENSSL_VERSION_MAJOR)
78 +- math(EXPR OPENSSL_VERSION_MAJOR ${OPENSSL_VERSION_MAJOR})
79 +-
80 +- list(GET version_list 1 OPENSSL_VERSION_MINOR)
81 +- math(EXPR OPENSSL_VERSION_MINOR ${OPENSSL_VERSION_MINOR})
82 +-
83 +- list(GET version_list 2 OPENSSL_VERSION_FIX)
84 +- math(EXPR OPENSSL_VERSION_FIX ${OPENSSL_VERSION_FIX})
85 +-
86 +- list(GET version_list 3 OPENSSL_VERSION_PATCH)
87 +-
88 +
89 +
90 + set(OPENSSL_VERSION
91 +- "${OPENSSL_VERSION_MAJOR}.${OPENSSL_VERSION_MINOR}.${OPENSSL_VERSION_FIX}${OPENSSL_VERSION_PATCH}"
92 ++ "${OPENSSL_VERSION_MAJOR}.${OPENSSL_VERSION_MINOR}.${OPENSSL_VERSION_FIX}"
93 + PARENT_SCOPE
94 + )
95 + set(OPENSSL_VERSION_MAJOR ${OPENSSL_VERSION_MAJOR} PARENT_SCOPE)
96 +
97 ++ CHECK_SYMBOL_EXISTS(TLS1_3_VERSION "openssl/tls1.h" HAVE_TLS1_3_VERSION)
98 +
99 + find_library(OPENSSL_LIBRARY
100 + NAMES ssl ssleay32 ssleay32MD libssl
101 +--- a/cdk/foundation/connection_openssl.cc
102 ++++ b/cdk/foundation/connection_openssl.cc
103 +@@ -211,7 +211,7 @@ static void throw_ssl_error(SSL* tls, int err)
104 + case SSL_ERROR_WANT_CONNECT:
105 + case SSL_ERROR_WANT_ACCEPT:
106 + case SSL_ERROR_WANT_X509_LOOKUP:
107 +-# if OPENSSL_VERSION_NUMBER >= 0x10100000L
108 ++# if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)
109 + case SSL_ERROR_WANT_ASYNC:
110 + case SSL_ERROR_WANT_ASYNC_JOB:
111 + # endif
112 +@@ -387,7 +387,7 @@ void TLS_helper::setup(SSL_CTX *ctx)
113 +
114 + SSL_CTX_set_cipher_list(ctx, m_cipher_list.c_str());
115 +
116 +-#if OPENSSL_VERSION_NUMBER>=0x1010100fL
117 ++#if HAVE_TLS1_3_VERSION
118 +
119 + /*
120 + Note: If TLSv1.3 is not enabled, there is no need to restrict
121
122 diff --git a/dev-db/mysql-connector-c++/mysql-connector-c++-8.0.20.ebuild b/dev-db/mysql-connector-c++/mysql-connector-c++-8.0.20.ebuild
123 new file mode 100644
124 index 00000000000..fcacc48a054
125 --- /dev/null
126 +++ b/dev-db/mysql-connector-c++/mysql-connector-c++-8.0.20.ebuild
127 @@ -0,0 +1,44 @@
128 +# Copyright 1999-2020 Gentoo Authors
129 +# Distributed under the terms of the GNU General Public License v2
130 +
131 +EAPI="7"
132 +
133 +CMAKE_MAKEFILE_GENERATOR=emake
134 +inherit cmake-utils
135 +
136 +DESCRIPTION="MySQL database connector for C++ (mimics JDBC 4.0 API)"
137 +HOMEPAGE="https://dev.mysql.com/downloads/connector/cpp/"
138 +URI_DIR="Connector-C++"
139 +SRC_URI="https://dev.mysql.com/get/Downloads/${URI_DIR}/${P}-src.tar.gz"
140 +
141 +LICENSE="Artistic GPL-2"
142 +SLOT="0"
143 +KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~sparc ~x86"
144 +IUSE="+legacy libressl"
145 +
146 +RDEPEND="
147 + dev-libs/protobuf:=
148 + legacy? (
149 + dev-libs/boost:=
150 + >=dev-db/mysql-connector-c-6.1.8:=
151 + )
152 + !libressl? ( dev-libs/openssl:0= )
153 + libressl? ( dev-libs/libressl:0= )"
154 +DEPEND="${RDEPEND}"
155 +S="${WORKDIR}/${P}-src"
156 +
157 +PATCHES=(
158 + "${FILESDIR}"/${PN}-8.0.19-fix-build.patch
159 + "${FILESDIR}"/${PN}-8.0.20-fix-libressl-support.patch
160 +)
161 +
162 +src_configure() {
163 + local mycmakeargs=(
164 + -DWITH_SSL=system
165 + -DWITH_JDBC=$(usex legacy ON OFF)
166 + $(usex legacy '-DMYSQLCLIENT_STATIC_BINDING=0' '')
167 + $(usex legacy '-DMYSQLCLIENT_STATIC_LINKING=0' '')
168 + )
169 +
170 + cmake-utils_src_configure
171 +}