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) # Maintainers: @@ -10,12 +10,12 @@ # - Robin H. Johnson # - Jorge Manuel B. S. Vicetto # - Luca Longinotti -# @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 # - Robin H. Johnson # - Jorge Manuel B. S. Vicetto -# @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 @@ -10,8 +10,11 @@ # - Jorge Manuel B. S. Vicetto # @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