dev-db/mariadb: Revbump 10.1.19 and fix REQUIRED_USE for jdbc
authorBrian Evans <grknight@gentoo.org>
Mon, 14 Nov 2016 15:19:53 +0000 (10:19 -0500)
committerBrian Evans <grknight@gentoo.org>
Mon, 14 Nov 2016 15:20:49 +0000 (10:20 -0500)
The 10.1 and 10.2 series were not given the correct cmake values to the options
to enable or disable innodb lzo, lz4 and snappy compression

Also added REQUIRED_USE for jdbc USE to make the error messages more user friendly
as the java-pkg-opt-2 eclass would bail out unexpectedly and cryptically to a user
if the correct options were not set

Package-Manager: portage-2.3.2

dev-db/mariadb/mariadb-10.0.28.ebuild
dev-db/mariadb/mariadb-10.1.19-r1.ebuild [new file with mode: 0644]
dev-db/mariadb/mariadb-10.2.1_alpha.ebuild

index dba5719380be1b2447d307be4d2dd74fb142ec74..57b95d76b1eb06fcd17b4eda73cca2bdd24d85d5 100644 (file)
@@ -17,7 +17,7 @@ DESCRIPTION="An enhanced, drop-in replacement for MySQL"
 IUSE="bindist jdbc odbc oqgraph pam sphinx tokudb xml"
 RESTRICT="!bindist? ( bindist )"
 
-REQUIRED_USE="server? ( tokudb? ( jemalloc ) ) static? ( !pam )"
+REQUIRED_USE="server? ( tokudb? ( jemalloc ) ) static? ( !pam ) jdbc? ( extraengine server !static )"
 
 # REMEMBER: also update eclass/mysql*.eclass before committing!
 KEYWORDS="~alpha amd64 arm ~arm64 hppa ~ia64 ~mips ~ppc ppc64 ~s390 ~sh ~sparc x86 ~sparc-fbsd ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris ~x86-solaris"
diff --git a/dev-db/mariadb/mariadb-10.1.19-r1.ebuild b/dev-db/mariadb/mariadb-10.1.19-r1.ebuild
new file mode 100644 (file)
index 0000000..fd663ad
--- /dev/null
@@ -0,0 +1,207 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="6"
+MY_EXTRAS_VER="20160721-1526Z"
+# The wsrep API version must match between upstream WSREP and sys-cluster/galera major number
+WSREP_REVISION="25"
+SUBSLOT="18"
+MYSQL_PV_MAJOR="5.6"
+
+JAVA_PKG_OPT_USE="jdbc"
+
+inherit toolchain-funcs java-pkg-opt-2 mysql-multilib-r1
+
+HOMEPAGE="http://mariadb.org/"
+DESCRIPTION="An enhanced, drop-in replacement for MySQL"
+
+IUSE="bindist cracklib galera kerberos innodb-lz4 innodb-lzo innodb-snappy jdbc mroonga odbc oqgraph pam sphinx sst-rsync sst-xtrabackup tokudb systemd xml"
+RESTRICT="!bindist? ( bindist )"
+
+REQUIRED_USE="server? ( tokudb? ( jemalloc ) ) static? ( !pam ) jdbc? ( extraengine server !static )"
+
+# REMEMBER: also update eclass/mysql*.eclass before committing!
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~hppa ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~sparc-fbsd ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris ~x86-solaris"
+
+MY_PATCH_DIR="${WORKDIR}/mysql-extras-${MY_EXTRAS_VER}"
+
+PATCHES=(
+       "${MY_PATCH_DIR}"/20006_all_cmake_elib-mariadb-10.1.16.patch
+       "${MY_PATCH_DIR}"/20009_all_mariadb_myodbc_symbol_fix-5.5.38.patch
+       "${MY_PATCH_DIR}"/20015_all_mariadb-pkgconfig-location.patch
+       "${MY_PATCH_DIR}"/20018_all_mariadb-10.1.16-without-clientlibs-tools.patch
+)
+
+COMMON_DEPEND="
+       mroonga? ( app-text/groonga-normalizer-mysql )
+       kerberos? ( virtual/krb5[${MULTILIB_USEDEP}] )
+       systemd? ( sys-apps/systemd:= )
+       !bindist? (
+               sys-libs/binutils-libs:0=
+               >=sys-libs/readline-4.1:0=
+       )
+       server? (
+               cracklib? ( sys-libs/cracklib:0= )
+               extraengine? (
+                       odbc? ( dev-db/unixODBC:0= )
+                       xml? ( dev-libs/libxml2:2= )
+               )
+               innodb-lz4? ( app-arch/lz4 )
+               innodb-lzo? ( dev-libs/lzo )
+               innodb-snappy? ( app-arch/snappy )
+               oqgraph? ( >=dev-libs/boost-1.40.0:0= dev-libs/judy:0= )
+               pam? ( virtual/pam:0= )
+               tokudb? ( app-arch/snappy )
+       )
+       >=dev-libs/libpcre-8.35:3=
+"
+DEPEND="|| ( >=sys-devel/gcc-3.4.6 >=sys-devel/gcc-apple-4.0 )
+       server? ( extraengine? ( jdbc? ( >=virtual/jdk-1.6 ) ) )
+       ${COMMON_DEPEND}"
+RDEPEND="${RDEPEND} ${COMMON_DEPEND}
+       galera? (
+               sys-apps/iproute2
+               =sys-cluster/galera-${WSREP_REVISION}*
+               sst-rsync? ( sys-process/lsof )
+               sst-xtrabackup? ( net-misc/socat[ssl] )
+       )
+       perl? ( !dev-db/mytop
+               virtual/perl-Getopt-Long
+               dev-perl/TermReadKey
+               virtual/perl-Term-ANSIColor
+               virtual/perl-Time-HiRes )
+       server? ( extraengine? ( jdbc? ( >=virtual/jre-1.6 ) ) )
+"
+# xtrabackup-bin causes a circular dependency if DBD-mysql is not already installed
+PDEPEND="galera? ( sst-xtrabackup? ( || ( >=dev-db/xtrabackup-bin-2.2.4 dev-db/percona-xtrabackup ) ) )"
+
+MULTILIB_WRAPPED_HEADERS+=( /usr/include/mysql/mysql_version.h
+       /usr/include/mysql/private/probes_mysql_nodtrace.h
+       /usr/include/mysql/private/probes_mysql_dtrace.h )
+
+pkg_setup() {
+       java-pkg-opt-2_pkg_setup
+       mysql-multilib-r1_pkg_setup
+}
+
+pkg_preinst() {
+       java-pkg-opt-2_pkg_preinst
+       mysql-multilib-r1_pkg_preinst
+}
+
+src_prepare() {
+       java-pkg-opt-2_src_prepare
+       mysql-multilib-r1_src_prepare
+}
+
+src_configure(){
+       # bug 508724 mariadb cannot use ld.gold
+       tc-ld-disable-gold
+
+       local MYSQL_CMAKE_NATIVE_DEFINES=(
+                       -DWITH_JEMALLOC=$(usex jemalloc system)
+                       -DWITH_PCRE=system
+       )
+       local MYSQL_CMAKE_EXTRA_DEFINES=(
+                       -DPLUGIN_AUTH_GSSAPI_CLIENT=$(usex kerberos YES NO)
+       )
+       if use server ; then
+               # Federated{,X} must be treated special otherwise they will not be built as plugins
+               if ! use extraengine ; then
+                       MYSQL_CMAKE_NATIVE_DEFINES+=(
+                               -DPLUGIN_FEDERATED=NO
+                               -DPLUGIN_FEDERATEDX=NO )
+               fi
+
+               MYSQL_CMAKE_NATIVE_DEFINES+=(
+                       -DPLUGIN_OQGRAPH=$(usex oqgraph YES NO)
+                       -DPLUGIN_SPHINX=$(usex sphinx YES NO)
+                       -DPLUGIN_TOKUDB=$(usex tokudb YES NO)
+                       -DPLUGIN_AUTH_PAM=$(usex pam YES NO)
+                       -DPLUGIN_CRACKLIB_PASSWORD_CHECK=$(usex cracklib YES NO)
+                       -DPLUGIN_CASSANDRA=NO
+                       -DPLUGIN_SEQUENCE=$(usex extraengine YES NO)
+                       -DPLUGIN_SPIDER=$(usex extraengine YES NO)
+                       -DPLUGIN_CONNECT=$(usex extraengine YES NO)
+                       -DCONNECT_WITH_MYSQL=1
+                       -DCONNECT_WITH_LIBXML2=$(usex xml)
+                       -DCONNECT_WITH_ODBC=$(usex odbc)
+                       -DCONNECT_WITH_JDBC=$(usex jdbc)
+                       -DWITH_WSREP=$(usex galera)
+                       -DWITH_INNODB_LZ4=$(usex innodb-lz4 ON OFF)
+                       -DWITH_INNODB_LZO=$(usex innodb-lzo ON OFF)
+                       -DWITH_INNODB_SNAPPY=$(usex innodb-snappy ON OFF)
+                       -DPLUGIN_MROONGA=$(usex mroonga YES NO)
+                       -DPLUGIN_AUTH_GSSAPI=$(usex kerberos YES NO)
+               )
+       fi
+       mysql-multilib-r1_src_configure
+}
+
+# Official test instructions:
+# USE='embedded extraengine perl server openssl static-libs' \
+# FEATURES='test userpriv -usersandbox' \
+# ebuild mariadb-X.X.XX.ebuild \
+# digest clean package
+multilib_src_test() {
+
+       if ! multilib_is_native_abi ; then
+               einfo "Server tests not available on non-native abi".
+               return 0;
+       fi
+
+       local TESTDIR="${BUILD_DIR}/mysql-test"
+       local retstatus_unit
+       local retstatus_tests
+
+       if ! use server ; then
+               einfo "Skipping server tests due to minimal build."
+               return 0
+       fi
+
+       # Bug #213475 - MySQL _will_ object strenously if your machine is named
+       # localhost. Also causes weird failures.
+       [[ "${HOSTNAME}" == "localhost" ]] && die "Your machine must NOT be named localhost"
+
+       if [[ $UID -eq 0 ]]; then
+               die "Testing with FEATURES=-userpriv is no longer supported by upstream. Tests MUST be run as non-root."
+       fi
+       has usersandbox $FEATURES && ewarn "Some tests may fail with FEATURES=usersandbox"
+
+       einfo ">>> Test phase [test]: ${CATEGORY}/${PF}"
+
+       # Run CTest (test-units)
+       cmake-utils_src_test
+       retstatus_unit=$?
+
+       # Ensure that parallel runs don't die
+       export MTR_BUILD_THREAD="$((${RANDOM} % 100))"
+       # Enable parallel testing, auto will try to detect number of cores
+       # You may set this by hand.
+       # The default maximum is 8 unless MTR_MAX_PARALLEL is increased
+       export MTR_PARALLEL="${MTR_PARALLEL:-auto}"
+
+       # create directories because mysqladmin might run out of order
+       mkdir -p "${T}"/var-tests{,/log}
+
+       # Run mysql tests
+       pushd "${TESTDIR}" || die
+
+       # run mysql-test tests
+       perl mysql-test-run.pl --force --vardir="${T}/var-tests" --reorder
+       retstatus_tests=$?
+
+       popd || die
+
+       # Cleanup is important for these testcases.
+       pkill -9 -f "${S}/ndb" 2>/dev/null
+       pkill -9 -f "${S}/sql" 2>/dev/null
+
+       local failures=""
+       [[ $retstatus_unit -eq 0 ]] || failures="${failures} test-unit"
+       [[ $retstatus_tests -eq 0 ]] || failures="${failures} tests"
+
+       [[ -z "$failures" ]] || eerror "Test failures: $failures"
+       einfo "Tests successfully completed"
+}
index 0562c69477fcf70e2542872a15bed713e51c79e3..510eed6e9b911af2aa424dd545e6d38767b75854 100644 (file)
@@ -17,7 +17,7 @@ DESCRIPTION="An enhanced, drop-in replacement for MySQL"
 IUSE="bindist cracklib galera kerberos innodb-lz4 innodb-lzo innodb-snappy jdbc mroonga odbc oqgraph pam sphinx sst-rsync sst-xtrabackup tokudb systemd xml"
 RESTRICT="!bindist? ( bindist )"
 
-REQUIRED_USE="server? ( tokudb? ( jemalloc ) ) static? ( !pam ) "
+REQUIRED_USE="server? ( tokudb? ( jemalloc ) ) static? ( !pam ) jdbc? ( extraengine server !static )"
 
 # REMEMBER: also update eclass/mysql*.eclass before committing!
 KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~hppa ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~sparc-fbsd ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris ~x86-solaris"
@@ -112,9 +112,9 @@ src_configure(){
                        -DCONNECT_WITH_ODBC=$(usex odbc)
                        -DCONNECT_WITH_JDBC=$(usex jdbc)
                        -DWITH_WSREP=$(usex galera)
-                       -DWITH_INNODB_LZ4=$(usex innodb-lz4)
-                       -DWITH_INNODB_LZO=$(usex innodb-lzo)
-                       -DWITH_INNODB_SNAPPY=$(usex innodb-snappy)
+                       -DWITH_INNODB_LZ4=$(usex innodb-lz4 ON OFF)
+                       -DWITH_INNODB_LZO=$(usex innodb-lzo ON OFF)
+                       -DWITH_INNODB_SNAPPY=$(usex innodb-snappy ON OFF)
                        -DPLUGIN_MROONGA=$(usex mroonga YES NO)
                        -DPLUGIN_AUTH_GSSAPI=$(usex kerberos YES NO)
                )