aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGregory M. Tuner <gmt@be-evil.net>2014-03-17 01:22:34 -0700
committerGregory M. Tuner <gmt@be-evil.net>2014-03-17 01:29:41 -0700
commitcc3bbea3cae81b6d9a7616f54be4c998bb92e4a0 (patch)
treeb710fe1674e6c74f816c5f05cfb23f928bdf21c3 /eclass/mysql-cmake-multilib.eclass
parentnet-libs/gnutls: update ChangeLog (should really be doing this everywhere... ... (diff)
downloadgmt-cc3bbea3cae81b6d9a7616f54be4c998bb92e4a0.tar.gz
gmt-cc3bbea3cae81b6d9a7616f54be4c998bb92e4a0.tar.bz2
gmt-cc3bbea3cae81b6d9a7616f54be4c998bb92e4a0.zip
eclass/mysql-{v2,cmake-multilib}: merge upstream
Here we merge upstream (nb: these two eclasses, and the ebuilds in dev-db/mysql are following the mysql overlay, not gentoo-x86 like most other stuff in this overlay) deltas. Something changed (I suspect, something in my workstation's kernel configuration that was breaking systemtap entirely, causing mysql to steer clear of it and, until now, thereby hiding this bug on my test box) So make sure to explicitly disable systemtap in the minimal build (which will also be used for non-best-ABI's. Otherwise, this is 99% robo-merge with no intersting new content. Signed-off-by: Gregory M. Tuner <gmt@be-evil.net>
Diffstat (limited to 'eclass/mysql-cmake-multilib.eclass')
-rw-r--r--eclass/mysql-cmake-multilib.eclass67
1 files changed, 36 insertions, 31 deletions
diff --git a/eclass/mysql-cmake-multilib.eclass b/eclass/mysql-cmake-multilib.eclass
index 57f365b..3a05764 100644
--- a/eclass/mysql-cmake-multilib.eclass
+++ b/eclass/mysql-cmake-multilib.eclass
@@ -12,10 +12,10 @@
# @DESCRIPTION:
# The mysql-cmake-multilib.eclass provides the support to build the mysql
# ebuilds using the cmake build system. This eclass provides
-# the src_prepare, src_configure, src_compile and src_install
+# the src_prepare, src_configure, src_compile, and src_install
# phase hooks.
-inherit flag-o-matic multilib prefix mysql-cmake cmake-multilib
+inherit flag-o-matic multilib prefix eutils mysql-cmake cmake-multilib
#
# HELPER FUNCTIONS:
@@ -40,14 +40,8 @@ configure_cmake_minimal() {
mycmakeargs+=(
-DWITHOUT_SERVER=1
-DWITHOUT_EMBEDDED_SERVER=1
- -DENABLED_LOCAL_INFILE=1
-DEXTRA_CHARSETS=none
-DINSTALL_SQLBENCHDIR=
- -DWITH_SSL=system
- -DWITH_ZLIB=system
- -DWITHOUT_LIBWRAP=1
- -DWITH_READLINE=0
- -DWITH_LIBEDIT=0
-DWITHOUT_ARCHIVE_STORAGE_ENGINE=1
-DWITHOUT_BLACKHOLE_STORAGE_ENGINE=1
-DWITHOUT_CSV_STORAGE_ENGINE=1
@@ -59,6 +53,7 @@ configure_cmake_minimal() {
-DWITHOUT_PARTITION_STORAGE_ENGINE=1
-DWITHOUT_INNOBASE_STORAGE_ENGINE=1
-DWITH_UNIT_TESTS=0
+ -DENABLE_DTRACE=0
)
}
@@ -69,13 +64,8 @@ configure_cmake_standard() {
debug-print-function ${FUNCNAME} "$@"
mycmakeargs+=(
- -DENABLED_LOCAL_INFILE=1
-DEXTRA_CHARSETS=all
-DMYSQL_USER=mysql
- -DWITH_READLINE=0
- -DWITH_LIBEDIT=0
- -DWITH_ZLIB=system
- -DWITHOUT_LIBWRAP=1
)
mycmakeargs+=(
@@ -85,18 +75,13 @@ configure_cmake_standard() {
$(cmake-utils_use_with profiling)
$(cmake-utils_use_enable systemtap DTRACE)
$(cmake-utils_use_with test UNIT_TESTS)
+ $(cmake-utils_use_enable static-libs STATIC_LIBS)
)
if use static; then
mycmakeargs+=( -DWITH_PIC=1 )
fi
- if use ssl; then
- mycmakeargs+=( -DWITH_SSL=system )
- else
- mycmakeargs+=( -DWITH_SSL=bundled )
- fi
-
if use jemalloc; then
mycmakeargs+=( -DWITH_SAFEMALLOC=OFF )
fi
@@ -118,7 +103,7 @@ configure_cmake_standard() {
$(cmake-utils_use_with extraengine FEDERATED_STORAGE_ENGINE)
)
- if pbxt_available ; then
+ if in_iuse pbxt ; then
mycmakeargs+=( $(cmake-utils_use_with pbxt PBXT_STORAGE_ENGINE) )
fi
@@ -131,12 +116,6 @@ configure_cmake_standard() {
$(mysql-cmake_use_plugin pam AUTH_PAM)
)
- if use jemalloc ; then
- mycmakeargs+=( -DWITH_JEMALLOC="system" )
- else
- mycmakeargs+=( -DWITH_JEMALLOC=no )
- fi
-
if mysql_version_is_at_least 10.0.5 ; then
# CassandraSE needs Apache Thrift which is not in portage
# TODO: Add use and deps for Connect SE external deps
@@ -202,7 +181,8 @@ mysql-cmake-multilib_src_configure() {
-DINSTALL_DOCREADMEDIR=share/doc/${P}
-DINSTALL_INCLUDEDIR=include/mysql
-DINSTALL_INFODIR=share/info
- -DINSTALL_LIBDIR=@GET_LIBDIR@/mysql
+ -DINSTALL_LIBDIR=@GET_LIBDIR@
+ -DINSTALL_ELIBDIR=@GET_LIBDIR@/mysql
-DINSTALL_MANDIR=share/man
-DINSTALL_MYSQLDATADIR=${EPREFIX}/var/lib/mysql
-DINSTALL_MYSQLSHAREDIR=share/mysql
@@ -214,29 +194,54 @@ mysql-cmake-multilib_src_configure() {
-DINSTALL_SUPPORTFILESDIR=${EPREFIX}/usr/share/mysql
-DMYSQL_UNIX_ADDR=${EPREFIX}/var/run/mysqld/mysqld.sock
-DWITH_COMMENT="Gentoo Linux ${PF}"
+ -DWITH_READLINE=0
+ -DWITH_LIBEDIT=0
+ -DWITH_ZLIB=system
+ -DWITHOUT_LIBWRAP=1
+ -DENABLED_LOCAL_INFILE=1
)
+ if [[ ${PN} == "mysql" || ${PN} == "percona-server" ]] && mysql_version_is_at_least "5.6.12" ; then
+ mycmakeargs+=( -DWITH_EDITLINE=system )
+ fi
+
+ if use ssl; then
+ mycmakeargs+=( -DWITH_SSL=system )
+ else
+ mycmakeargs+=( -DWITH_SSL=bundled )
+ fi
+
# Bug 412851
- # MariaDB requires this flag to compile with GPLv3 readline linked
+ # MariaDB requires this flag to compile with GPLv3 realine linked
# Adds a warning about redistribution to configure
if [[ ${PN} == "mariadb" || ${PN} == "mariadb-galera" ]] ; then
mycmakeargs+=( -DNOT_FOR_DISTRIBUTION=1 )
fi
+ if [[ ${PN} == "mariadb" || ${PN} == "mariadb-galera" ]]; then
+ if use jemalloc ; then
+ mycmakeargs+=( -DWITH_JEMALLOC="system" )
+ else
+ mycmakeargs+=( -DWITH_JEMALLOC=no )
+ fi
+ # TODO: uncomment this when libpcre 8.35 is released to remove bundled library
+# mysql_version_is_at_least "10.0.9" mycmakeargs+=( -DWITH_PCRE=system )
+ fi
+
configure_cmake_locale
# Bug #114895, bug #110149
filter-flags "-O" "-O[01]"
CXXFLAGS="${CXXFLAGS} -fno-strict-aliasing"
- CXXFLAGS="${CXXFLAGS} -felide-constructors -fno-rtti"
+ CXXFLAGS="${CXXFLAGS} -felide-constructors"
# Causes linkage failures. Upstream bug #59607 removes it
if ! mysql_version_is_at_least "5.6" ; then
CXXFLAGS="${CXXFLAGS} -fno-implicit-templates"
fi
- # As of 5.7, exceptions are used!
+ # As of 5.7, exceptions and rtti are used!
if ! mysql_version_is_at_least "5.7" ; then
- CXXFLAGS="${CXXFLAGS} -fno-exceptions"
+ CXXFLAGS="${CXXFLAGS} -fno-exceptions -fno-rtti"
fi
export CXXFLAGS