dev-db/mysql-connector-c: Version bump and fix gcc 7 build
authorBrian Evans <grknight@gentoo.org>
Tue, 21 Nov 2017 18:48:25 +0000 (13:48 -0500)
committerBrian Evans <grknight@gentoo.org>
Tue, 21 Nov 2017 19:34:14 +0000 (14:34 -0500)
Closes: https://bugs.gentoo.org/638360
Package-Manager: Portage-2.3.15, Repoman-2.3.6

dev-db/mysql-connector-c/Manifest
dev-db/mysql-connector-c/files/20028_all_mysql-5.6-gcc7.patch [new file with mode: 0644]
dev-db/mysql-connector-c/mysql-connector-c-6.1.11.ebuild [new file with mode: 0644]

index 08b0e7b13d586ed751f6fca81307739fe0d2003e..6a895e6d895180c28c49bb197e72b1614bcf213b 100644 (file)
@@ -1,3 +1,4 @@
+DIST mysql-connector-c-6.1.11-src.tar.gz 3489345 BLAKE2B 813512520ef660521221565a4466e81d902629d0ee731f746b68eed2b9129ea8361fcabe184537ec8ba91aed5a4b02dfb3450b36524c2e98f81fba148eee0cf1 SHA512 271395c888a93b833e0bbe1840b9987ecdb37d0f1cf89904207cc9aa99ed32e538aee8c9529ff39b6533947159776a8f5aa079da86ed51b1d26b086f4ffdd7c6
 DIST mysql-connector-c-6.1.5-src.tar.gz 3455028 SHA256 278f2b40f3980079bc7ad247cb2bf08967ce56ef79da468ae26ff2e2a560be66 SHA512 be47ed70865744ff9ecb9376972208504327514f03635e54c05e81d324bcf9ba777300a12738d8ca32b95c9c31d734dc9f6ebb7bb24fd11821560a6b0f09bb56 WHIRLPOOL bfdd17908cae63ef5b5006bdf28432bb12738044fe99960fdddab6da527ab41211a48396270a778ce500c5758c2f5d50c1fd850a92c684996612ab7c38637c61
 DIST mysql-connector-c-6.1.6-src.tar.gz 3475044 SHA256 2222433012c415871958b61bc4f3683e1ebe77e3389f698b267058c12533ea78 SHA512 2a3db4aec5b8e5357fa407d6e2b52534f7aa9c0b78c4ebe9a61e2e25dc5f7dc1f1962f6e6fd847107ce53ca369e0babe7118b947a87189495212596348cfd760 WHIRLPOOL 6a0a55a47a88606c12511f9fd155bafcf5d73b1ffa2c4877b838bca018f4a8a8f4427ac6af6e4c567eced7e1108dba4a613255f813ab481e8ea948b3a6cdff33
 DIST mysql-connector-c-6.1.9-src.tar.gz 3494748 SHA256 4e808704443365ad5b649673d03eca8fbebc0a4da9f1f96616c6bd1b1901ab2b SHA512 3127d08428e820044e25ab5ebb741a128325be6ca0fca0300cab33891693e11e57d4ded5a25918a67d23cceb8a2c6ee99879ffb50c31bc4c2e225a9dba9674dc WHIRLPOOL 7f0cb1fa7bb0f77447f4884b567e7881d8d9c1dda2e27250838fe8a51ac4ddcb8f7aa683fe11a3f7f9545f90918b15fe9e033da138c86e5bd4f360164ebaeb2e
diff --git a/dev-db/mysql-connector-c/files/20028_all_mysql-5.6-gcc7.patch b/dev-db/mysql-connector-c/files/20028_all_mysql-5.6-gcc7.patch
new file mode 100644 (file)
index 0000000..cf8caed
--- /dev/null
@@ -0,0 +1,13 @@
+diff --git a/sql-common/client_authentication.cc b/sql-common/client_authentication.cc
+index eaeb2d4..035ecd2 100644
+--- a/sql-common/client_authentication.cc
++++ b/sql-common/client_authentication.cc
+@@ -84,7 +84,7 @@ RSA *rsa_init(MYSQL *mysql)
+   if (mysql->options.extension != NULL &&
+       mysql->options.extension->server_public_key_path != NULL &&
+-      mysql->options.extension->server_public_key_path != '\0')
++      mysql->options.extension->server_public_key_path[0] != '\0')
+   {
+     pub_key_file= fopen(mysql->options.extension->server_public_key_path,
+                         "r");
diff --git a/dev-db/mysql-connector-c/mysql-connector-c-6.1.11.ebuild b/dev-db/mysql-connector-c/mysql-connector-c-6.1.11.ebuild
new file mode 100644 (file)
index 0000000..c4494ba
--- /dev/null
@@ -0,0 +1,82 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit cmake-multilib
+
+MULTILIB_WRAPPED_HEADERS+=(
+       /usr/include/mysql/my_config.h
+)
+
+# wrap the config script
+MULTILIB_CHOST_TOOLS=( /usr/bin/mysql_config )
+
+DESCRIPTION="C client library for MariaDB/MySQL"
+HOMEPAGE="https://dev.mysql.com/downloads/connector/c/"
+LICENSE="GPL-2"
+
+SRC_URI="https://dev.mysql.com/get/Downloads/Connector-C/${P}-src.tar.gz"
+S="${WORKDIR}/${P}-src"
+KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc64 ~x86"
+
+SUBSLOT="18"
+SLOT="0/${SUBSLOT}"
+IUSE="+ssl static-libs"
+
+CDEPEND="
+       sys-libs/zlib:=[${MULTILIB_USEDEP}]
+       ssl? ( dev-libs/openssl:0=[${MULTILIB_USEDEP}] )
+       "
+RDEPEND="${CDEPEND}
+       !dev-db/mysql[client-libs(+)]
+       !dev-db/mysql-cluster[client-libs(+)]
+       !dev-db/mariadb[client-libs(+)]
+       !dev-db/mariadb-connector-c[mysqlcompat]
+       !dev-db/mariadb-galera[client-libs(+)]
+       !dev-db/percona-server[client-libs(+)]
+       "
+DEPEND="${CDEPEND}"
+
+DOCS=( README )
+PATCHES=(
+       "${FILESDIR}/mysql_com.patch"
+       "${FILESDIR}/20028_all_mysql-5.6-gcc7.patch"
+)
+
+src_prepare() {
+       sed -i -e 's/CLIENT_LIBS/CONFIG_CLIENT_LIBS/' "${S}/scripts/CMakeLists.txt" || die
+       cmake-utils_src_prepare
+}
+
+multilib_src_configure() {
+       mycmakeargs+=(
+               -DINSTALL_LAYOUT=RPM
+               -DINSTALL_LIBDIR=$(get_libdir)
+               -DWITH_DEFAULT_COMPILER_OPTIONS=OFF
+               -DWITH_DEFAULT_FEATURE_SET=OFF
+               -DENABLED_LOCAL_INFILE=ON
+               -DMYSQL_UNIX_ADDR="${EPREFIX}/var/run/mysqld/mysqld.sock"
+               -DWITH_ZLIB=system
+               -DENABLE_DTRACE=OFF
+               -DWITH_SSL=$(usex ssl system bundled)
+               -DLIBMYSQL_OS_OUTPUT_NAME=mysqlclient
+               -DSHARED_LIB_PATCH_VERSION="0"
+       )
+       cmake-utils_src_configure
+}
+
+multilib_src_install_all() {
+       if ! use static-libs ; then
+               find "${ED}" -name "*.a" -delete || die
+       fi
+}
+
+pkg_preinst() {
+       if [[ -z ${REPLACING_VERSIONS} && -e "${EROOT}usr/$(get_libdir)/libmysqlclient.so" ]] ; then
+               elog "Due to ABI changes when switching between different client libraries,"
+               elog "revdep-rebuild must find and rebuild all packages linking to libmysqlclient."
+               elog "Please run: revdep-rebuild --library libmysqlclient.so.${SUBSLOT}"
+               ewarn "Failure to run revdep-rebuild may cause issues with other programs or libraries"
+       fi
+}