commit: cedf64ba91607985f9e5dd2faf314afbe20b6f67 Author: Brian Evans <grknight <AT> gentoo <DOT> org> AuthorDate: Wed Sep 16 20:55:34 2015 +0000 Commit: Brian Evans <grknight <AT> gentoo <DOT> org> CommitDate: Wed Sep 16 20:55:34 2015 +0000 URL: https://gitweb.gentoo.org/proj/mysql.git/commit/?id=cedf64ba
mysql-connector-c: Revbump with preinst message Signed-off-by: Brian Evans <grknight <AT> gentoo.org> dev-db/mysql-connector-c/files/mysql_com.patch | 31 +++++++++ .../mysql-connector-c-6.1.6-r2.ebuild | 80 ++++++++++++++++++++++ eclass/mysql-multilib.eclass | 10 +++ 3 files changed, 121 insertions(+) diff --git a/dev-db/mysql-connector-c/files/mysql_com.patch b/dev-db/mysql-connector-c/files/mysql_com.patch new file mode 100644 index 0000000..36a7d5a --- /dev/null +++ b/dev-db/mysql-connector-c/files/mysql_com.patch @@ -0,0 +1,31 @@ +--- a/include/mysql_com.h 2014-06-10 23:10:43.000000000 -0400 ++++ b/include/mysql_com.h 2015-08-11 15:20:54.487091000 -0400 +@@ -179,7 +171,7 @@ + #define CLIENT_IGNORE_SIGPIPE 4096 /* IGNORE sigpipes */ + #define CLIENT_TRANSACTIONS 8192 /* Client knows about transactions */ + #define CLIENT_RESERVED 16384 /* Old flag for 4.1 protocol */ +-#define CLIENT_RESERVED2 32768 /* Old flag for 4.1 authentication */ ++#define CLIENT_SECURE_CONNECTION 32768 /* New 4.1 authentication */ + #define CLIENT_MULTI_STATEMENTS (1UL << 16) /* Enable/disable multi-stmt support */ + #define CLIENT_MULTI_RESULTS (1UL << 17) /* Enable/disable multi-results */ + #define CLIENT_PS_MULTI_RESULTS (1UL << 18) /* Multi-results in PS-protocol */ +@@ -226,7 +216,7 @@ + | CLIENT_IGNORE_SIGPIPE \ + | CLIENT_TRANSACTIONS \ + | CLIENT_RESERVED \ +- | CLIENT_RESERVED2 \ ++ | CLIENT_SECURE_CONNECTION \ + | CLIENT_MULTI_STATEMENTS \ + | CLIENT_MULTI_RESULTS \ + | CLIENT_PS_MULTI_RESULTS \ +--- a/libmysql/client_settings.h 2015-02-25 16:09:49.000000000 -0500 ++++ b/libmysql/client_settings.h 2015-08-11 15:44:10.804091000 -0400 +@@ -31,7 +31,7 @@ + CLIENT_LONG_FLAG | \ + CLIENT_TRANSACTIONS | \ + CLIENT_PROTOCOL_41 | \ +- CLIENT_RESERVED2 | \ ++ CLIENT_SECURE_CONNECTION | \ + CLIENT_MULTI_RESULTS | \ + CLIENT_PS_MULTI_RESULTS | \ + CLIENT_PLUGIN_AUTH | \ diff --git a/dev-db/mysql-connector-c/mysql-connector-c-6.1.6-r2.ebuild b/dev-db/mysql-connector-c/mysql-connector-c-6.1.6-r2.ebuild new file mode 100644 index 0000000..f77fcf5 --- /dev/null +++ b/dev-db/mysql-connector-c/mysql-connector-c-6.1.6-r2.ebuild @@ -0,0 +1,80 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 +CMAKE_MIN_VERSION="2.8.12" + +inherit cmake-multilib eutils 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="mirror://mysql/Downloads/Connector-C/${P}-src.tar.gz" +S="${WORKDIR}/${P}-src" +KEYWORDS="~amd64 ~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 Docs/ChangeLog ) + +src_prepare() { + epatch "${FILESDIR}/openssl-cmake-detection.patch" \ + "${FILESDIR}/conn-c-includes.patch" \ + "${FILESDIR}/mysql_com.patch" + epatch_user +} + +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) + ) + 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 +} diff --git a/eclass/mysql-multilib.eclass b/eclass/mysql-multilib.eclass index 1f67e3a..74c47bf 100644 --- a/eclass/mysql-multilib.eclass +++ b/eclass/mysql-multilib.eclass @@ -785,6 +785,16 @@ mysql-multilib_pkg_preinst() { if [[ ${PN} == "mysql-cluster" ]] ; then mysql_version_is_at_least "7.2.9" && java-pkg-opt-2_pkg_preinst fi + local CHECK_REPLACING + if ! in_iuse client-libs || use_if_iuse client-libs ; then + CHECK_REPLACING=1 + fi + if [[ ${CHECK_REPLACING} && -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 } # @FUNCTION: mysql-multilib_pkg_postinst