public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Jorge Manuel B. S. Vicetto" <jmbsvicetto@gentoo.org>
To: gentoo-dev@lists.gentoo.org
Subject: Re: [gentoo-dev] New mysql eclasses review
Date: Wed, 20 Apr 2011 11:12:52 +0000	[thread overview]
Message-ID: <4DAEBFB4.6070006@gentoo.org> (raw)
In-Reply-To: <19884.49943.966176.931006@a1i15.kph.uni-mainz.de>


[-- Attachment #1.1: Type: text/plain, Size: 4262 bytes --]

Hi.

On 18-04-2011 23:02, Ulrich Mueller wrote:
>>>>>> On Mon, 18 Apr 2011, Jorge Manuel B S Vicetto wrote:
> 
>> The mysql team now uses 3 eclasses: mysql-v2.eclass[2] (base
>> eclass), mysql-autotools.eclass[3] (for autotools based releases)
>> and mysql-cmake.eclass[4] (for cmake based releases). The first 2
>> eclasses are complete, pending any updates from the review. The
>> mysql-cmake eclass is still under development, but can also benefit
>> from a review.
> 
> I didn't go through all of it, but here are a few things that I've
> noticed in mysql-v2.eclass:

Thank you Ulrich for the review.
I'm attaching the diff to this email, but the commitdiff can also be
seen in the overlay -
http://git.overlays.gentoo.org/gitweb/?p=proj/mysql.git;a=commitdiff;h=7cd4cedb1dcade2a63018fc82a2622606c524126

>> # @ECLASS: mysql.eclass
> 
> Shouldn't this match the filename of the eclass? (Same for
> mysql-autotools.eclass.)

Fixed.

>> # @DESCRIPTION:
>> # The mysql.eclass provides almost all the code to build the mysql ebuilds
>> # including the src_unpack, src_prepare, src_configure, src_compile,
>> # scr_install, pkg_preinst, pkg_postinst, pkg_config and pkg_postrm
>> # phase hooks.
> 
> Name of the eclass should be updated.

Fixed.

>> MYSQL_EXPF="src_unpack src_compile src_install"
>> case "${EAPI:-0}" in
>> 	2|3|4) MYSQL_EXPF+=" src_prepare src_configure" ;;
>> 	*) die "Unsupported EAPI: ${EAPI}" ;;
>> esac
> 
>> EXPORT_FUNCTIONS ${MYSQL_EXPF}
> 
> You don't need a global variable here:
> ,----
> | EXPORT_FUNCTIONS src_unpack src_compile src_install
> | case "${EAPI:-0}" in
> | 	2|3|4) EXPORT_FUNCTIONS src_prepare src_configure ;;
> | 	*) die "Unsupported EAPI: ${EAPI}" ;;
> | esac
> `----
> 
> or even:
> ,----
> | case "${EAPI:-0}" in
> | 	2|3|4) ;;
> | 	*) die "Unsupported EAPI: ${EAPI}" ;;
> | esac
> | EXPORT_FUNCTIONS src_unpack src_prepare src_configure src_compile src_install
> `----

I was following base.eclass example, but switched to the last
alternative you presented.

>> # @ECLASS-VARIABLE: XTRADB_VER
>> # @DESCRIPTION:
>> # Version of the XTRADB storage engine
>> XTRADB_VER="${XTRADB_VER}"
> 
> Is this assignment needed, or could you use @DEFAULT_UNSET instead?
> (Assuming it's for the eclass manpage.) Same for other variables.

Did you mean using ": ${XTRADB_VER:=}"? Done.

>> # Having different flavours at the same time is not a good idea
>> for i in "mysql" "mysql-community" "mysql-cluster" "mariadb" ; do
>> 	[[ "${i}" == ${PN} ]] ||
> 
> Quotes are not necessary here.

Fixed.

>> pbxt_patch_available \
>> && PBXT_P="pbxt-${PBXT_VERSION}" \
>> && PBXT_SRC_URI="http://www.primebase.org/download/${PBXT_P}.tar.gz mirror://sourceforge/pbxt/${PBXT_P}.tar.gz" \
>> && SRC_URI="${SRC_URI} pbxt? ( ${PBXT_SRC_URI} )" \
> 
>> # PBXT_NEWSTYLE means pbxt is in storage/ and gets enabled as other plugins
>> # vs. built outside the dir
>> pbxt_available \
>> && IUSE="${IUSE} pbxt" \
>> && mysql_version_is_at_least "5.1.40" \
>> && PBXT_NEWSTYLE=1
> 
>> xtradb_patch_available \
>> && XTRADB_P="percona-xtradb-${XTRADB_VER}" \
>> && XTRADB_SRC_URI_COMMON="${PERCONA_VER}/source/${XTRADB_P}.tar.gz" \
>> && XTRADB_SRC_B1="http://www.percona.com/" \
>> && XTRADB_SRC_B2="${XTRADB_SRC_B1}/percona-builds/" \
>> && XTRADB_SRC_URI1="${XTRADB_SRC_B2}/Percona-Server/Percona-Server-${XTRADB_SRC_URI_COMMON}" \
>> && XTRADB_SRC_URI2="${XTRADB_SRC_B2}/xtradb/${XTRADB_SRC_URI_COMMON}" \
>> && XTRADB_SRC_URI3="${XTRADB_SRC_B1}/${PN}/xtradb/${XTRADB_SRC_URI_COMMON}" \
>> && SRC_URI="${SRC_URI} xtradb? ( ${XTRADB_SRC_URI1} ${XTRADB_SRC_URI2} ${XTRADB_SRC_URI3} )" \
>> && IUSE="${IUSE} xtradb"
> 
> Probably a matter of taste, but I'd use "if" blocks instead of the
> multiple && here.

I switched to if blocks here.

>> 				mv --strip-trailing-slashes -T "${old_MY_DATADIR_s}" "${MY_DATADIR_s}" \
> 
> Both options --strip-trailing-slashes and -T are GNUisms and may not
> exist on other userlands (like BSD).

I'll let Robin take a look at this one.

> Ulrich

-- 
Regards,

Jorge Vicetto (jmbsvicetto) - jmbsvicetto at gentoo dot org
Gentoo- forums / Userrel / Devrel / KDE / Elections / RelEng

[-- Attachment #1.2: mysql-diff --]
[-- Type: text/plain, Size: 15573 bytes --]

diff --git a/dev-db/mysql/Manifest b/dev-db/mysql/Manifest
index a76baf5..99f845f 100644
--- a/dev-db/mysql/Manifest
+++ b/dev-db/mysql/Manifest
@@ -11,6 +11,7 @@ DIST mysql-5.1.52.tar.gz 23841760 RMD160 5809c7a5932a014fe412ddc5b9f15632c7367c2
 DIST mysql-5.1.53.tar.gz 23871815 RMD160 e8fd69450dda85cf3f41269e6e3fca05caccc76d SHA1 24064a4c0f8b88b30acb6ddb03f32e897ef061f3 SHA256 d68c0db580bb514bb1759d4c69dc71ceb0e3573ac88a1025111bdd8f89e234a4
 DIST mysql-5.1.56.tar.gz 24795624 RMD160 c2ff6eb06d0797d4b56630b783d4ad2d1add1422 SHA1 8665c76ab4ab36e8d2379ddf6d678c89b95d9321 SHA256 930e731c8f9318aa3f5e2e6985f6776aaaec81cd32df310e79e73d87177f6613
 DIST mysql-5.5.10.tar.gz 23877968 RMD160 7f190513e38bbbcac21291e226de87b3b95a1ba4 SHA1 7e0b426d7a9ef0eaa6e2b2ea3e5fef1e1a078c5d SHA256 f4a0dae6d2626705ccede5126f2a3d45700195cb2568537c8b18bf1b604315a5
+DIST mysql-5.5.11.tar.gz 23664849 RMD160 e220a2b105d43de0544b097ffae954e2d0829da6 SHA1 f6a9ccf00fe723e7f18027cfd64527d1e71c8322 SHA256 6cdb5150022502a6915e4c01126ee3a38ac38af04d53f51c63cea83dbe237736
 DIST mysql-5.5.4-m3.tar.gz 22761869 RMD160 502f5d4731abae86fa280f657a51bf3a9567e8a4 SHA1 5ea4e6a0385569654ab3e45ab0137ca16637594d SHA256 d1c45dd628593c6f872b234a28889bf249bdc872c4f4e3c91afff8ebda18e764
 DIST mysql-extras-20100201-0104Z.tar.bz2 933785 RMD160 7780fcc370d2eb8e48993aaeba480e2ec7785c14 SHA1 ce098829243327c5941a9864a9e0632ae5cee418 SHA256 d06f7d2e6920576392adf0fa544931aa6dcecf45060dac4968ea8d88e84c2f70
 DIST mysql-extras-20101006-0004Z.tar.bz2 1251792 RMD160 ee333704688e4e9f07f5e7fb68961d3ffaff0755 SHA1 c1633295abb7f3d2ff463938f85e1bc8ed708b4f SHA256 a42c4988a25113bef5cc727fb24c994502f4d02469246ff839f8ea2a08c07bb7
@@ -26,6 +27,7 @@ EBUILD mysql-5.1.52-r2.ebuild 8599 RMD160 d1a1ee50ba91135ceefd5d864c674f94abf804
 EBUILD mysql-5.1.53-r1.ebuild 8605 RMD160 48dc76fceda6b3d78c2eeb615e5b988cb8fb8dd4 SHA1 11546673524f53b852ecd89c768c628c2a7f2c97 SHA256 9cec68559741bf8c40252aae7366f637da863b91f19f21454f07e58f11c48c82
 EBUILD mysql-5.1.56.ebuild 8656 RMD160 1a6373b692f1d05d43e9762cc31cecbe3af47cb2 SHA1 cc4854bf71a9a9f9d45c92bdeffbe03f8e50cdff SHA256 2b0ce97fbaabab178a578db4656d5d6286a90259bd25de17bdd3c483ef5a2892
 EBUILD mysql-5.5.10.ebuild 3094 RMD160 d5c858a6306ce8a9014d96c4576cb98515c5d877 SHA1 5954233017a1ad62ab076c9efc5896225a57ed27 SHA256 4cdf16465343f86cea98bcd9457eab60dd826491b46d641a54c3e71c6dbe52a5
+EBUILD mysql-5.5.11.ebuild 3094 RMD160 d5c858a6306ce8a9014d96c4576cb98515c5d877 SHA1 5954233017a1ad62ab076c9efc5896225a57ed27 SHA256 4cdf16465343f86cea98bcd9457eab60dd826491b46d641a54c3e71c6dbe52a5
 EBUILD mysql-5.5.4_alpha_pre3.ebuild 6903 RMD160 dd85e75069e59ae77f5fccdd9fff994aaeb06899 SHA1 8a0f91a49b63681f428beb589512924d347cc643 SHA256 25cf50e56a99318309cd9f51d86695018d957dec53e7ef5eda7e9d2a3233d086
 MISC ChangeLog 4755 RMD160 4008c773c0e239dc5b2f19a440eb4a800df01e2b SHA1 5311fe6fba62c3d28ade01af27ef83a547878f99 SHA256 49f79a8e3fe26d52a5e3e034531c09ad92cf488775fc4e919dd83c4136f54c59
 MISC metadata.xml 1144 RMD160 2e8b432149e8467becaf1e52884437a80d31673d SHA1 b516bc717f95725fe9e6486b6101f42e42007909 SHA256 e84ceb0d15ac0384c33c6a6451ccf4902f7c2aa9d227b931c12c25695e4b62a2
diff --git a/eclass/mysql-autotools.eclass b/eclass/mysql-autotools.eclass
index aeda0f6..d6eb3e1 100644
--- a/eclass/mysql-autotools.eclass
+++ b/eclass/mysql-autotools.eclass
@@ -2,7 +2,7 @@
 # Distributed under the terms of the GNU General Public License v2
 # $Header: $
 
-# @ECLASS: mysql.eclass
+# @ECLASS: mysql-autotools.eclass
 # @MAINTAINER:
 # Author: Francesco Riosa (Retired) <vivo@gentoo.org>
 # Maintainers:
@@ -10,12 +10,12 @@
 #	- Robin H. Johnson <robbat2@gentoo.org>
 #	- Jorge Manuel B. S. Vicetto <jmbsvicetto@gentoo.org>
 #	- Luca Longinotti <chtekk@gentoo.org>
-# @BLURB: This eclass provides most of the functions for mysql ebuilds
+# @BLURB: This eclass provides support for autotools based mysql releases
 # @DESCRIPTION:
-# The mysql.eclass provides almost all the code to build the mysql ebuilds
-# including the src_unpack, src_prepare, src_configure, src_compile,
-# scr_install, pkg_preinst, pkg_postinst, pkg_config and pkg_postrm
-# phase hooks.
+# The mysql-autotools.eclass provides the support to build the mysql
+# ebuilds using the autotools build system. This eclass provides
+# the src_unpack, src_prepare, src_configure, src_compile, scr_install,
+# pkg_preinst, pkg_postinst, pkg_config and pkg_postrm phase hooks.
 
 inherit autotools
 
@@ -23,7 +23,7 @@ inherit autotools
 # HELPER FUNCTIONS:
 #
 
-# @FUNCTION: mysql_disable_test
+# @FUNCTION: mysql-autotools_disable_test
 # @DESCRIPTION:
 # Helper function to disable specific tests.
 mysql-autotools_disable_test() {
@@ -66,6 +66,9 @@ mysql-autotools_disable_test() {
 	fi
 }
 
+# @FUNCTION: mysql-autotools_configure_minimal
+# @DESCRIPTION:
+# Helper function to configure a minimal build
 mysql-autotools_configure_minimal() {
 
 	# These are things we exclude from a minimal build, please
@@ -95,6 +98,9 @@ mysql-autotools_configure_minimal() {
 	fi
 }
 
+# @FUNCTION: mysql-autotools_configure_common
+# @DESCRIPTION:
+# Helper function to configure the common builds
 mysql-autotools_configure_common() {
 
 	myconf="${myconf} $(use_with big-tables)"
@@ -146,6 +152,9 @@ mysql-autotools_configure_common() {
 
 }
 
+# @FUNCTION: mysql-autotools_configure_40_41_50
+# @DESCRIPTION:
+# Helper function to configure 4.0, 4.1 and 5.0 builds
 mysql-autotools_configure_40_41_50() {
 
 	myconf="${myconf} $(use_with perl bench)"
@@ -225,6 +234,9 @@ mysql-autotools_configure_40_41_50() {
 	&& myconf="${myconf} --with-max-indexes=128"
 }
 
+# @FUNCTION: mysql-autotools_configure_51
+# @DESCRIPTION:
+# Helper function to configure 5.1 and later builds
 mysql-autotools_configure_51() {
 
 	# TODO: !!!! readd --without-readline
diff --git a/eclass/mysql-cmake.eclass b/eclass/mysql-cmake.eclass
index 4beeee3..97a9a74 100644
--- a/eclass/mysql-cmake.eclass
+++ b/eclass/mysql-cmake.eclass
@@ -2,16 +2,18 @@
 # Distributed under the terms of the GNU General Public License v2
 # $Header: $
 
-# @ECLASS: mysql.cmake.eclass
+# @ECLASS: mysql-cmake.eclass
 # @MAINTAINER:
 # Maintainers:
 #	- MySQL Team <mysql-bugs@gentoo.org>
 #	- Robin H. Johnson <robbat2@gentoo.org>
 #	- Jorge Manuel B. S. Vicetto <jmbsvicetto@gentoo.org>
-# @BLURB: This eclass provides the cmake supporting functions for mysql ebuilds
+# @BLURB: This eclass provides the support for cmake based mysql releases
 # @DESCRIPTION:
-# The mysql-cmake.eclass provides provides the cmake specific code
-# for mysql ebuilds.
+# The mysql-cmake.eclass provides the support to build the mysql
+# ebuilds using the cmake build system. This eclass provides
+# the src_unpack, src_prepare, src_configure, src_compile, scr_install,
+# pkg_preinst, pkg_postinst, pkg_config and pkg_postrm phase hooks.
 
 inherit cmake-utils
 
@@ -92,7 +94,7 @@ configure_cmake_locale() {
 
 # @FUNCTION: configure_cmake_minimal
 # @DESCRIPTION:
-# Helper function to configure minimal install
+# Helper function to configure minimal build
 configure_cmake_minimal() {
 
 	mycmakeargs+=(
@@ -113,7 +115,7 @@ configure_cmake_minimal() {
 
 # @FUNCTION: configure_cmake_standard
 # @DESCRIPTION:
-# Helper function to configure standard install
+# Helper function to configure standard build
 configure_cmake_standard() {
 
 	mycmakeargs+=(
@@ -145,6 +147,9 @@ configure_cmake_standard() {
 	fi
 }
 
+# @FUNCTION: configure_51
+# @DESCRIPTION:
+# Helper function to configure 5.1 and later builds
 configure_51() {
 
 	# This is an explict die here, because if we just forcibly disable it, then the
diff --git a/eclass/mysql-v2.eclass b/eclass/mysql-v2.eclass
index 8e64608..6ddb13a 100644
--- a/eclass/mysql-v2.eclass
+++ b/eclass/mysql-v2.eclass
@@ -2,7 +2,7 @@
 # Distributed under the terms of the GNU General Public License v2
 # $Header: $
 
-# @ECLASS: mysql.eclass
+# @ECLASS: mysql-v2.eclass
 # @MAINTAINER:
 # Maintainers:
 #	- MySQL Team <mysql-bugs@gentoo.org>
@@ -10,8 +10,11 @@
 #	- Jorge Manuel B. S. Vicetto <jmbsvicetto@gentoo.org>
 # @BLURB: This eclass provides most of the functions for mysql ebuilds
 # @DESCRIPTION:
-# The mysql.eclass provides almost all the code to build the mysql ebuilds
-# including the src_unpack, src_prepare, src_configure, src_compile,
+# The mysql-v2.eclass is the base eclass to build the mysql and
+# alternative projects (mariadb) ebuilds.
+# This eclass uses the mysql-autotools and mysql-cmake eclasses for the
+# specific bits related to the build system.
+# It provides the src_unpack, src_prepare, src_configure, src_compile,
 # scr_install, pkg_preinst, pkg_postinst, pkg_config and pkg_postrm
 # phase hooks.
 
@@ -36,6 +39,9 @@ case ${BUILD} in
 esac
 
 MYSQL_EXTRAS=""
+
+# @ECLASS-VARIABLE: MYSQL_EXTRAS_VER
+# @DESCRIPTION: The version of the MYSQL_EXTRAS repo to use to build mysql
 [[ "${MY_EXTRAS_VER}" == "live" ]] && MYSQL_EXTRAS="git"
 
 inherit eutils flag-o-matic gnuconfig ${MYSQL_EXTRAS} ${BUILD_INHERIT} mysql_fx versionator toolchain-funcs
@@ -44,13 +50,12 @@ inherit eutils flag-o-matic gnuconfig ${MYSQL_EXTRAS} ${BUILD_INHERIT} mysql_fx
 # Supported EAPI versions and export functions
 #
 
-MYSQL_EXPF="src_unpack src_compile src_install"
 case "${EAPI:-0}" in
-	2|3|4) MYSQL_EXPF+=" src_prepare src_configure" ;;
+	2|3|4) ;;
 	*) die "Unsupported EAPI: ${EAPI}" ;;
 esac
 
-EXPORT_FUNCTIONS ${MYSQL_EXPF}
+EXPORT_FUNCTIONS src_unpack src_prepare src_configure src_compile src_install
 
 #
 # VARIABLES:
@@ -89,7 +94,6 @@ fi
 # depend on this variable.
 # In particular, the code below transforms a $PVR like "5.0.18-r3" in "5001803"
 # We also strip off upstream's trailing letter that they use to respin tarballs
-
 MYSQL_VERSION_ID=""
 tpv="${PV%[a-z]}"
 tpv=( ${tpv//[-._]/ } ) ; tpv[3]="${PVR:${#PV}}" ; tpv[3]="${tpv[3]##*-r}"
@@ -124,14 +128,12 @@ fi
 # @ECLASS-VARIABLE: XTRADB_VER
 # @DESCRIPTION:
 # Version of the XTRADB storage engine
-XTRADB_VER="${XTRADB_VER}"
-
+: ${XTRADB_VER:=}
 
 # @ECLASS-VARIABLE: PERCONA_VER
 # @DESCRIPTION:
 # Designation by PERCONA for a MySQL version to apply an XTRADB release
-PERCONA_VER="${PERCONA_VER}"
-
+: ${PERCONA_VER:=}
 
 # Work out the default SERVER_URI correctly
 if [ -z "${SERVER_URI}" ]; then
@@ -201,7 +203,7 @@ esac
 IUSE="${IUSE} latin1"
 
 IUSE="${IUSE} extraengine"
-if [[ "${PN}" != "mysql-cluster" ]] ; then
+if [[ ${PN} != "mysql-cluster" ]] ; then
 	IUSE="${IUSE} cluster"
 fi
 
@@ -210,17 +212,17 @@ mysql_version_is_at_least "5.0.18" \
 
 IUSE="${IUSE} berkdb"
 
-[ "${MYSQL_COMMUNITY_FEATURES}" == "1" ] \
+[[ ${MYSQL_COMMUNITY_FEATURES} == 1 ]] \
 && IUSE="${IUSE} +community profiling"
 
-[[ "${PN}" == "mariadb" ]] \
+[[ ${PN} == "mariadb" ]] \
 && IUSE="${IUSE} libevent"
 
-[[ "${PN}" == "mariadb" ]] \
+[[ ${PN} == "mariadb" ]] \
 && mysql_version_is_at_least "5.2" \
 && IUSE="${IUSE} oqgraph"
 
-[[ "${PN}" == "mariadb" ]] \
+[[ ${PN} == "mariadb" ]] \
 && mysql_version_is_at_least "5.2.5" \
 && IUSE="${IUSE} sphinx"
 
@@ -240,12 +242,12 @@ DEPEND="
 	>=sys-libs/zlib-1.2.3
 "
 
-[[ "${PN}" == "mariadb" ]] \
+[[ ${PN} == mariadb ]] \
 && DEPEND="${DEPEND} libevent? ( >=dev-libs/libevent-1.4 )"
 
 # Having different flavours at the same time is not a good idea
 for i in "mysql" "mysql-community" "mysql-cluster" "mariadb" ; do
-	[[ "${i}" == ${PN} ]] ||
+	[[ ${i} == ${PN} ]] ||
 	DEPEND="${DEPEND} !dev-db/${i}"
 done
 
@@ -287,14 +289,14 @@ PDEPEND="${PDEPEND} =virtual/mysql-${MYSQL_PV_MAJOR}"
 # PBXT_VERSION means that we have a PBXT patch for this PV
 # PBXT was only introduced after 5.1.12
 pbxt_patch_available() {
-	[[ "${PN}" != "mariadb" ]] \
+	[[ ${PN} != "mariadb" ]] \
 	&& mysql_version_is_at_least "5.1.12" \
 	&& [[ -n "${PBXT_VERSION}" ]]
 	return $?
 }
 
 pbxt_available() {
-	pbxt_patch_available || [[ "${PN}" == "mariadb" ]]
+	pbxt_patch_available || [[ ${PN} == "mariadb" ]]
 	return $?
 }
 
@@ -303,51 +305,64 @@ pbxt_available() {
 # XTRADB_VERS means that we have a XTRADB patch for this PV
 # XTRADB was only introduced after 5.1.26
 xtradb_patch_available() {
-	[[ "${PN}" != "mariadb" ]] \
+	[[ ${PN} != "mariadb" ]] \
 	&& mysql_version_is_at_least "5.1.26" \
 	&& [[ -n "${XTRADB_VER}" && -n "${PERCONA_VER}" ]]
 	return $?
 }
 
 
-pbxt_patch_available \
-&& PBXT_P="pbxt-${PBXT_VERSION}" \
-&& PBXT_SRC_URI="http://www.primebase.org/download/${PBXT_P}.tar.gz mirror://sourceforge/pbxt/${PBXT_P}.tar.gz" \
-&& SRC_URI="${SRC_URI} pbxt? ( ${PBXT_SRC_URI} )" \
-
-# PBXT_NEWSTYLE means pbxt is in storage/ and gets enabled as other plugins
-# vs. built outside the dir
-pbxt_available \
-&& IUSE="${IUSE} pbxt" \
-&& mysql_version_is_at_least "5.1.40" \
-&& PBXT_NEWSTYLE=1
-
-xtradb_patch_available \
-&& XTRADB_P="percona-xtradb-${XTRADB_VER}" \
-&& XTRADB_SRC_URI_COMMON="${PERCONA_VER}/source/${XTRADB_P}.tar.gz" \
-&& XTRADB_SRC_B1="http://www.percona.com/" \
-&& XTRADB_SRC_B2="${XTRADB_SRC_B1}/percona-builds/" \
-&& XTRADB_SRC_URI1="${XTRADB_SRC_B2}/Percona-Server/Percona-Server-${XTRADB_SRC_URI_COMMON}" \
-&& XTRADB_SRC_URI2="${XTRADB_SRC_B2}/xtradb/${XTRADB_SRC_URI_COMMON}" \
-&& XTRADB_SRC_URI3="${XTRADB_SRC_B1}/${PN}/xtradb/${XTRADB_SRC_URI_COMMON}" \
-&& SRC_URI="${SRC_URI} xtradb? ( ${XTRADB_SRC_URI1} ${XTRADB_SRC_URI2} ${XTRADB_SRC_URI3} )" \
-&& IUSE="${IUSE} xtradb"
+if pbxt_patch_available; then
+
+	PBXT_P="pbxt-${PBXT_VERSION}"
+	PBXT_SRC_URI="http://www.primebase.org/download/${PBXT_P}.tar.gz mirror://sourceforge/pbxt/${PBXT_P}.tar.gz"
+	SRC_URI="${SRC_URI} pbxt? ( ${PBXT_SRC_URI} )"
+
+	# PBXT_NEWSTYLE means pbxt is in storage/ and gets enabled as other plugins
+	# vs. built outside the dir
+	if pbxt_available; then
+
+		IUSE="${IUSE} pbxt"
+		if mysql_version_is_at_least "5.1.40"; then
+
+			PBXT_NEWSTYLE=1
+		fi
+	fi
+fi
+
+if xtradb_patch_available; then
+	XTRADB_P="percona-xtradb-${XTRADB_VER}"
+	XTRADB_SRC_URI_COMMON="${PERCONA_VER}/source/${XTRADB_P}.tar.gz"
+	XTRADB_SRC_B1="http://www.percona.com/"
+	XTRADB_SRC_B2="${XTRADB_SRC_B1}/percona-builds/"
+	XTRADB_SRC_URI1="${XTRADB_SRC_B2}/Percona-Server/Percona-Server-${XTRADB_SRC_URI_COMMON}"
+	XTRADB_SRC_URI2="${XTRADB_SRC_B2}/xtradb/${XTRADB_SRC_URI_COMMON}"
+	XTRADB_SRC_URI3="${XTRADB_SRC_B1}/${PN}/xtradb/${XTRADB_SRC_URI_COMMON}"
+	SRC_URI="${SRC_URI} xtradb? ( ${XTRADB_SRC_URI1} ${XTRADB_SRC_URI2} ${XTRADB_SRC_URI3} )"
+	IUSE="${IUSE} xtradb"
+fi
 
 #
 # HELPER FUNCTIONS:
 #
 
-# @FUNCTION: mysql_disable_test
+# @FUNCTION: mysql-v2_disable_test
 # @DESCRIPTION:
 # Helper function to disable specific tests.
 mysql_disable_test() {
 	${BUILD_INHERIT}_disable_test "$@"
 }
 
+# @FUNCTION: mysql-v2_configure_minimal
+# @DESCRIPTION:
+# Helper function to configure minimal build
 configure_minimal() {
 	${BUILD_INHERIT}_configure_minimal "$@"
 }
 
+# @FUNCTION: mysql-v2_configure_common
+# @DESCRIPTION:
+# Helper function to configure common builds
 configure_common() {
 	${BUILD_INHERIT}_configure_common "$@"
 }
@@ -421,7 +436,7 @@ mysql-v2_pkg_setup() {
 
 # @FUNCTION: mysql-v2_src_unpack
 # @DESCRIPTION:
-# Unpack the source code and call mysql_src_prepare for EAPI < 2.
+# Unpack the source code
 mysql-v2_src_unpack() {
 
 	# Initialize the proper variables first

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 900 bytes --]

  reply	other threads:[~2011-04-20 11:14 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-04-18 21:26 [gentoo-dev] New mysql eclasses review Jorge Manuel B. S. Vicetto
2011-04-18 23:02 ` Ulrich Mueller
2011-04-20 11:12   ` Jorge Manuel B. S. Vicetto [this message]
2011-04-20 13:06     ` Ulrich Mueller

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4DAEBFB4.6070006@gentoo.org \
    --to=jmbsvicetto@gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox