--- /usr/portage/eclass/mysql.eclass 2010-01-31 20:08:45.000000000 -0500 +++ mysql.eclass 2010-02-01 13:22:24.273812618 -0500 @@ -81,6 +81,8 @@ # AND in the re-merged mysql-5.0.82 and newer if [ "${PN}" == "mysql-community" ]; then MYSQL_COMMUNITY_FEATURES=1 +elif [ "${PN}" == "mysql-mariadb" ]; then + MYSQL_COMMUNITY_FEATURES=1 elif [ "${PV#5.0}" != "${PV}" ] && mysql_version_is_at_least "5.0.82"; then MYSQL_COMMUNITY_FEATURES=1 elif [ "${PV#5.1}" != "${PV}" ] && mysql_version_is_at_least "5.1.28"; then @@ -111,7 +113,7 @@ >=sys-libs/zlib-1.2.3" # Having different flavours at the same time is not a good idea -for i in "" "-community" ; do +for i in "" "-community" "-mariadb"; do [[ "${i}" == ${PN#mysql} ]] || DEPEND="${DEPEND} !dev-db/mysql${i}" done @@ -156,14 +158,14 @@ http://dev.gentoo.org/~robbat2/distfiles/mysql-extras-${MY_EXTRAS_VER}.tar.bz2" # PBXT engine -mysql_version_is_at_least "5.1.12" \ +mysql_version_is_at_least "5.1.12" && [ "${PN#mysql-}" != "mariadb" ] \ && [[ -n "${PBXT_VERSION}" ]] \ && PBXT_P="pbxt-${PBXT_VERSION}" \ && PBXT_SRC_URI="mirror://sourceforge/pbxt/${PBXT_P}.tar.gz" \ && SRC_URI="${SRC_URI} pbxt? ( ${PBXT_SRC_URI} )" # Get the percona tarball if XTRADB_VER and PERCONA_VER are both set -mysql_version_is_at_least "5.1.26" \ +mysql_version_is_at_least "5.1.26" && [ "${PN#mysql-}" != "mariadb" ] \ && [[ -n "${XTRADB_VER}" && -n "${PERCONA_VER}" ]] \ && XTRADB_P="percona-xtradb-${XTRADB_VER}" \ && XTRADB_SRC_URI="http://www.percona.com/${PN}/xtradb/${PERCONA_VER}/source/${XTRADB_P}.tar.gz" \ @@ -190,17 +192,21 @@ mysql_version_is_at_least "5.1" \ || IUSE="${IUSE} berkdb" -mysql_version_is_at_least "5.1.12" \ +mysql_version_is_at_least "5.1.12" && [ "${PN#mysql-}" != "mariadb" ] \ && [[ -n "${PBXT_VERSION}" ]] \ && IUSE="${IUSE} pbxt" -mysql_version_is_at_least "5.1.26" \ +#MariaDB includes XtraDB by default and cannot be disabled +mysql_version_is_at_least "5.1.26" && [ "${PN#mysql-}" != "mariadb" ] \ && [[ -n "${XTRADB_VER}" && -n "${PERCONA_VER}" ]] \ && IUSE="${IUSE} xtradb" [ "${MYSQL_COMMUNITY_FEATURES}" == "1" ] \ && IUSE="${IUSE} ${IUSE_DEFAULT_ON}community profiling" +[ "${PN#mysql-}" == "mariadb" ] \ +&& IUSE="${IUSE} maria-tmp-tables pbxt libevent" + # # HELPER FUNCTIONS: # @@ -490,9 +496,13 @@ if use extraengine ; then # like configuration=max-no-ndb, archive and example removed in 5.1.11 plugins="${plugins},archive,blackhole,example,federated,partition" - - elog "Before using the Federated storage engine, please be sure to read" - elog "http://dev.mysql.com/doc/refman/5.1/en/federated-limitations.html" + if [ "${PN#mysql-}" = "mariadb" ] ; then + elog "Before using the Federated storage engine, please be sure to read" + elog "http://dev.mysql.com/doc/refman/5.1/en/federated-limitations.html" + else + elog "MariaDB includes the FederatedX engine. Be sure to read" + elog "http://askmonty.org/wiki/index.php/Manual:FederatedX_storage_engine" + fi fi # Upstream specifically requests that InnoDB always be built. @@ -508,6 +518,16 @@ plugins="${plugins},falcon" fi + if [ "${PN#mysql-}" == "mariadb" ] ; then + plugins="${plugins},maria" + if use pbxt ; then + plugins="${plugins},pbxt" + else + myconf="${myconf} --without-plugin-pbxt" + fi + myconf="${myconf} $(use_with maria-tmp-tables) $(use_with libevent)" + fi + myconf="${myconf} --with-plugins=${plugins}" } @@ -659,6 +679,7 @@ local rebuilddirlist d + if [ "${PN}" != "mysql-mariadb" ] ; then if mysql_version_is_at_least "5.1.26" && use xtradb ; then einfo "Replacing InnoDB with Percona XtraDB" pushd "${S}"/storage @@ -671,6 +692,7 @@ ln -s "${WORKDIR}/${XTRADB_P}" "${i}" popd fi + fi if mysql_version_is_at_least "5.1.12" ; then einfo "Updating innobase cmake" @@ -773,7 +795,7 @@ -e 's|^pkglibdir *= *$(libdir)/mysql|pkglibdir = $(libdir)|;s|^pkgincludedir *= *$(includedir)/mysql|pkgincludedir = $(includedir)|' if [[ $EAPI == 2 ]]; then - mysql_version_is_at_least "5.1.12" && use pbxt && pbxt_src_configure + mysql_version_is_at_least "5.1.12" && [ "${PN#mysql-}" != "mariadb" ] && use pbxt && pbxt_src_configure fi } @@ -789,7 +811,7 @@ emake || die "emake failed" - mysql_version_is_at_least "5.1.12" && use pbxt && pbxt_src_compile + mysql_version_is_at_least "5.1.12" && [ "${PN#mysql-}" != "mariadb" ] && use pbxt && pbxt_src_compile } # @FUNCTION: mysql_src_install @@ -801,7 +823,7 @@ emake install DESTDIR="${D}" benchdir_root="${MY_SHAREDSTATEDIR}" || die "emake install failed" - mysql_version_is_at_least "5.1.12" && use pbxt && pbxt_src_install + mysql_version_is_at_least "5.1.12" && [ "${PN#mysql-}" != "mariadb" ] && use pbxt && pbxt_src_install # Convenience links einfo "Making Convenience links for mysqlcheck multi-call binary" @@ -941,7 +963,7 @@ einfo fi - if mysql_version_is_at_least "5.1.12" && use pbxt ; then + if mysql_version_is_at_least "5.1.12" && [ "${PN#mysql-}" != "mariadb" ] && use pbxt ; then # TODO: explain it better elog " mysql> INSTALL PLUGIN pbxt SONAME 'libpbxt.so';" elog " mysql> CREATE TABLE t1 (c1 int, c2 text) ENGINE=pbxt;"