/[gentoo-x86]/eclass/mysql-v2.eclass
Gentoo

Diff of /eclass/mysql-v2.eclass

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.12 Revision 1.15
1# Copyright 1999-2012 Gentoo Foundation 1# Copyright 1999-2012 Gentoo Foundation
2# Distributed under the terms of the GNU General Public License v2 2# Distributed under the terms of the GNU General Public License v2
3# $Header: /var/cvsroot/gentoo-x86/eclass/mysql-v2.eclass,v 1.12 2012/01/06 21:32:48 jmbsvicetto Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/mysql-v2.eclass,v 1.15 2012/04/18 02:08:34 robbat2 Exp $
4 4
5# @ECLASS: mysql-v2.eclass 5# @ECLASS: mysql-v2.eclass
6# @MAINTAINER: 6# @MAINTAINER:
7# Maintainers: 7# Maintainers:
8# - MySQL Team <mysql-bugs@gentoo.org> 8# - MySQL Team <mysql-bugs@gentoo.org>
77# @DESCRIPTION: 77# @DESCRIPTION:
78# Upstream MySQL considers the first two parts of the version number to be the 78# Upstream MySQL considers the first two parts of the version number to be the
79# major version. Upgrades that change major version should always run 79# major version. Upgrades that change major version should always run
80# mysql_upgrade. 80# mysql_upgrade.
81MYSQL_PV_MAJOR="$(get_version_component_range 1-2 ${PV})" 81MYSQL_PV_MAJOR="$(get_version_component_range 1-2 ${PV})"
82
83# Cluster is a special case...
84if [[ "${PN}" == "mysql-cluster" ]]; then
85 case $PV in
86 6.1*|7.0*|7.1*) MYSQL_PV_MAJOR=5.1 ;;
87 esac
88fi
89
90 82
91# @ECLASS-VARIABLE: MYSQL_VERSION_ID 83# @ECLASS-VARIABLE: MYSQL_VERSION_ID
92# @DESCRIPTION: 84# @DESCRIPTION:
93# MYSQL_VERSION_ID will be: 85# MYSQL_VERSION_ID will be:
94# major * 10e6 + minor * 10e4 + micro * 10e2 + gentoo revision number, all [0..99] 86# major * 10e6 + minor * 10e4 + micro * 10e2 + gentoo revision number, all [0..99]
108MYSQL_VERSION_ID=${MYSQL_VERSION_ID##"0"} 100MYSQL_VERSION_ID=${MYSQL_VERSION_ID##"0"}
109 101
110# This eclass should only be used with at least mysql-5.1.50 102# This eclass should only be used with at least mysql-5.1.50
111mysql_version_is_at_least "5.1.50" || die "This eclass should only be used with >=mysql-5.1.50" 103mysql_version_is_at_least "5.1.50" || die "This eclass should only be used with >=mysql-5.1.50"
112 104
113# @ECLASS-VARIABLE: MYSQL_COMMUNITY_FEATURES
114# @DESCRIPTION:
115# Specifiy if community features are available. Possible values are 1 (yes)
116# and 0 (no).
117# Community features are available in mysql-community
118# AND in the re-merged mysql-5.0.82 and newer
119if [ "${PN}" == "mysql-community" -o "${PN}" == "mariadb" ]; then
120 MYSQL_COMMUNITY_FEATURES=1
121elif [ "${MYSQL_PV_MAJOR}" == "5.1" ]; then
122 MYSQL_COMMUNITY_FEATURES=1
123elif mysql_version_is_at_least "5.4.0"; then
124 MYSQL_COMMUNITY_FEATURES=1
125else
126 MYSQL_COMMUNITY_FEATURES=0
127fi
128
129
130# @ECLASS-VARIABLE: XTRADB_VER 105# @ECLASS-VARIABLE: XTRADB_VER
131# @DEFAULT_UNSET 106# @DEFAULT_UNSET
132# @DESCRIPTION: 107# @DESCRIPTION:
133# Version of the XTRADB storage engine 108# Version of the XTRADB storage engine
134 109
139 114
140# Work out the default SERVER_URI correctly 115# Work out the default SERVER_URI correctly
141if [ -z "${SERVER_URI}" ]; then 116if [ -z "${SERVER_URI}" ]; then
142 [ -z "${MY_PV}" ] && MY_PV="${PV//_/-}" 117 [ -z "${MY_PV}" ] && MY_PV="${PV//_/-}"
143 if [ "${PN}" == "mariadb" ]; then 118 if [ "${PN}" == "mariadb" ]; then
144 MARIA_FULL_PV="$(replace_version_separator 3 '-' ${PV})" 119 MARIA_FULL_PV="$(replace_version_separator 3 '-' ${MY_PV})"
145 MARIA_FULL_P="${PN}-${MARIA_FULL_PV}" 120 MARIA_FULL_P="${PN}-${MARIA_FULL_PV}"
146 SERVER_URI=" 121 SERVER_URI="
147 http://ftp.osuosl.org/pub/mariadb/${MARIA_FULL_P}/kvm-tarbake-jaunty-x86/${MARIA_FULL_P}.tar.gz 122 http://ftp.osuosl.org/pub/mariadb/${MARIA_FULL_P}/kvm-tarbake-jaunty-x86/${MARIA_FULL_P}.tar.gz
148 http://ftp.rediris.es/mirror/MariaDB/${MARIA_FULL_P}/kvm-tarbake-jaunty-x86/${MARIA_FULL_P}.tar.gz 123 http://ftp.rediris.es/mirror/MariaDB/${MARIA_FULL_P}/kvm-tarbake-jaunty-x86/${MARIA_FULL_P}.tar.gz
149 http://maria.llarian.net/download/${MARIA_FULL_P}/kvm-tarbake-jaunty-x86/${MARIA_FULL_P}.tar.gz 124 http://maria.llarian.net/download/${MARIA_FULL_P}/kvm-tarbake-jaunty-x86/${MARIA_FULL_P}.tar.gz
150 http://launchpad.net/maria/${MYSQL_PV_MAJOR}/ongoing/+download/${MARIA_FULL_P}.tar.gz 125 http://launchpad.net/maria/${MYSQL_PV_MAJOR}/ongoing/+download/${MARIA_FULL_P}.tar.gz
151 http://mirrors.fe.up.pt/pub/${PN}/${MARIA_FULL_P}/kvm-tarbake-jaunty-x86/${MARIA_FULL_P}.tar.gz 126 http://mirrors.fe.up.pt/pub/${PN}/${MARIA_FULL_P}/kvm-tarbake-jaunty-x86/${MARIA_FULL_P}.tar.gz
152 http://ftp-stud.hs-esslingen.de/pub/Mirrors/${PN}/${MARIA_FULL_P}/kvm-tarbake-jaunty-x86/${MARIA_FULL_P}.tar.gz 127 http://ftp-stud.hs-esslingen.de/pub/Mirrors/${PN}/${MARIA_FULL_P}/kvm-tarbake-jaunty-x86/${MARIA_FULL_P}.tar.gz
153 " 128 "
154 # The community and cluster builds are on the mirrors
155 elif [[ "${MYSQL_COMMUNITY_FEATURES}" == "1" || ${PN} == "mysql-cluster" ]] ; then
156 if [[ "${PN}" == "mysql-cluster" ]] ; then
157 URI_DIR="MySQL-Cluster"
158 URI_FILE="mysql-cluster-gpl"
159 else 129 else
160 URI_DIR="MySQL" 130 URI_DIR="MySQL"
161 URI_FILE="mysql" 131 URI_FILE="mysql"
162 fi
163 URI_A="${URI_FILE}-${MY_PV}.tar.gz" 132 URI_A="${URI_FILE}-${MY_PV}.tar.gz"
164 MIRROR_PV=$(get_version_component_range 1-2 ${PV}) 133 MIRROR_PV=$(get_version_component_range 1-2 ${PV})
165 # Recently upstream switched to an archive site, and not on mirrors 134 # Recently upstream switched to an archive site, and not on mirrors
166 SERVER_URI="http://downloads.mysql.com/archives/${URI_FILE}-${MIRROR_PV}/${URI_A} 135 SERVER_URI="http://downloads.mysql.com/archives/${URI_FILE}-${MIRROR_PV}/${URI_A}
167 mirror://mysql/Downloads/${URI_DIR}-${PV%.*}/${URI_A}" 136 mirror://mysql/Downloads/${URI_DIR}-${PV%.*}/${URI_A}"
168 # The (old) enterprise source is on the primary site only
169 elif [ "${PN}" == "mysql" ]; then
170 SERVER_URI="ftp://ftp.mysql.com/pub/mysql/src/mysql-${MY_PV}.tar.gz"
171 fi 137 fi
172fi 138fi
173 139
174# Define correct SRC_URIs 140# Define correct SRC_URIs
175SRC_URI="${SERVER_URI}" 141SRC_URI="${SERVER_URI}"
185DESCRIPTION="A fast, multi-threaded, multi-user SQL database server." 151DESCRIPTION="A fast, multi-threaded, multi-user SQL database server."
186HOMEPAGE="http://www.mysql.com/" 152HOMEPAGE="http://www.mysql.com/"
187if [[ "${PN}" == "mariadb" ]]; then 153if [[ "${PN}" == "mariadb" ]]; then
188 HOMEPAGE="http://mariadb.org/" 154 HOMEPAGE="http://mariadb.org/"
189 DESCRIPTION="MariaDB is a MySQL fork with 3rd-party patches and additional storage engines merged." 155 DESCRIPTION="MariaDB is a MySQL fork with 3rd-party patches and additional storage engines merged."
190fi
191if [[ "${PN}" == "mysql-community" ]]; then
192 DESCRIPTION="${DESCRIPTION} (obsolete, move to dev-db/mysql)"
193fi 156fi
194LICENSE="GPL-2" 157LICENSE="GPL-2"
195SLOT="0" 158SLOT="0"
196 159
197case "${BUILD}" in 160case "${BUILD}" in
204esac 167esac
205 168
206IUSE="${IUSE} latin1" 169IUSE="${IUSE} latin1"
207 170
208IUSE="${IUSE} extraengine" 171IUSE="${IUSE} extraengine"
209if [[ ${PN} != "mysql-cluster" ]] ; then
210 IUSE="${IUSE} cluster" 172IUSE="${IUSE} cluster"
211fi
212 173
213IUSE="${IUSE} max-idx-128" 174IUSE="${IUSE} max-idx-128"
214IUSE="${IUSE} berkdb" 175IUSE="${IUSE} berkdb"
215
216[[ ${MYSQL_COMMUNITY_FEATURES} == 1 ]] \
217&& IUSE="${IUSE} +community profiling" 176IUSE="${IUSE} +community profiling"
218 177
219[[ ${PN} == "mariadb" ]] \ 178[[ ${PN} == "mariadb" ]] \
220&& IUSE="${IUSE} libevent" 179&& IUSE="${IUSE} libevent"
221 180
222[[ ${PN} == "mariadb" ]] \ 181[[ ${PN} == "mariadb" ]] \
247 206
248[[ ${PN} == mariadb ]] \ 207[[ ${PN} == mariadb ]] \
249&& DEPEND="${DEPEND} libevent? ( >=dev-libs/libevent-1.4 )" 208&& DEPEND="${DEPEND} libevent? ( >=dev-libs/libevent-1.4 )"
250 209
251# Having different flavours at the same time is not a good idea 210# Having different flavours at the same time is not a good idea
252for i in "mysql" "mysql-community" "mysql-cluster" "mariadb" ; do 211for i in "mysql" "mariadb" ; do
253 [[ ${i} == ${PN} ]] || 212 [[ ${i} == ${PN} ]] ||
254 DEPEND="${DEPEND} !dev-db/${i}" 213 DEPEND="${DEPEND} !dev-db/${i}"
255done 214done
256 215
257# prefix: first need to implement something for #196294 216# prefix: first need to implement something for #196294
287# dev-perl/DBD-mysql is needed by some scripts installed by MySQL 246# dev-perl/DBD-mysql is needed by some scripts installed by MySQL
288PDEPEND="perl? ( >=dev-perl/DBD-mysql-2.9004 )" 247PDEPEND="perl? ( >=dev-perl/DBD-mysql-2.9004 )"
289 248
290# For other stuff to bring us in 249# For other stuff to bring us in
291PDEPEND="${PDEPEND} =virtual/mysql-${MYSQL_PV_MAJOR}" 250PDEPEND="${PDEPEND} =virtual/mysql-${MYSQL_PV_MAJOR}"
292
293 251
294# 252#
295# External patches 253# External patches
296# 254#
297 255
324 282
325 PBXT_P="pbxt-${PBXT_VERSION}" 283 PBXT_P="pbxt-${PBXT_VERSION}"
326 PBXT_SRC_URI="http://www.primebase.org/download/${PBXT_P}.tar.gz mirror://sourceforge/pbxt/${PBXT_P}.tar.gz" 284 PBXT_SRC_URI="http://www.primebase.org/download/${PBXT_P}.tar.gz mirror://sourceforge/pbxt/${PBXT_P}.tar.gz"
327 SRC_URI="${SRC_URI} pbxt? ( ${PBXT_SRC_URI} )" 285 SRC_URI="${SRC_URI} pbxt? ( ${PBXT_SRC_URI} )"
328 286
287fi
288
329 # PBXT_NEWSTYLE means pbxt is in storage/ and gets enabled as other plugins 289# PBXT_NEWSTYLE means pbxt is in storage/ and gets enabled as other plugins
330 # vs. built outside the dir 290# vs. built outside the dir
331 if pbxt_available; then 291if pbxt_available; then
332 292
333 IUSE="${IUSE} pbxt" 293 IUSE="${IUSE} pbxt"
334 PBXT_NEWSTYLE=1 294 PBXT_NEWSTYLE=1
335 fi
336fi 295fi
337 296
338if xtradb_patch_available; then 297if xtradb_patch_available; then
339 XTRADB_P="percona-xtradb-${XTRADB_VER}" 298 XTRADB_P="percona-xtradb-${XTRADB_VER}"
340 XTRADB_SRC_URI_COMMON="${PERCONA_VER}/source/${XTRADB_P}.tar.gz" 299 XTRADB_SRC_URI_COMMON="${PERCONA_VER}/source/${XTRADB_P}.tar.gz"
423 382
424 # This should come after all of the die statements 383 # This should come after all of the die statements
425 enewgroup mysql 60 || die "problem adding 'mysql' group" 384 enewgroup mysql 60 || die "problem adding 'mysql' group"
426 enewuser mysql 60 -1 /dev/null mysql || die "problem adding 'mysql' user" 385 enewuser mysql 60 -1 /dev/null mysql || die "problem adding 'mysql' user"
427 386
428 if [ "${PN}" != "mysql-cluster" ] && use cluster; then 387 if use cluster; then
429 ewarn "Upstream has noted that the NDB cluster support in the 5.0 and" 388 ewarn "Upstream has noted that the NDB cluster support in the 5.0 and"
430 ewarn "5.1 series should NOT be put into production. In the near" 389 ewarn "5.1 series should NOT be put into production. In the near"
431 ewarn "future, it will be disabled from building." 390 ewarn "future, it will be disabled from building."
432 ewarn ""
433 ewarn "If you need NDB support, you should instead move to the new"
434 ewarn "mysql-cluster package that represents that upstream NDB"
435 ewarn "development."
436 fi 391 fi
437} 392}
438 393
439# @FUNCTION: mysql-v2_src_unpack 394# @FUNCTION: mysql-v2_src_unpack
440# @DESCRIPTION: 395# @DESCRIPTION:

Legend:
Removed from v.1.12  
changed lines
  Added in v.1.15

  ViewVC Help
Powered by ViewVC 1.1.20