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

Diff of /eclass/mysql.eclass

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

Revision 1.84 Revision 1.89
1# Copyright 1999-2007 Gentoo Foundation 1# Copyright 1999-2007 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.eclass,v 1.84 2008/01/16 04:01:14 robbat2 Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/mysql.eclass,v 1.89 2008/04/05 00:43:26 robbat2 Exp $
4 4
5# Author: Francesco Riosa (Retired) <vivo@gentoo.org> 5# Author: Francesco Riosa (Retired) <vivo@gentoo.org>
6# Maintainer: MySQL Team <mysql-bugs@gentoo.org>
6# Maintainer: Luca Longinotti <chtekk@gentoo.org> 7# - Luca Longinotti <chtekk@gentoo.org>
7 8# - Robin H. Johnson <robbat2@gentoo.org>
8# Both MYSQL_VERSION_ID and MYSQL_PATCHSET_REV must be set in the ebuild too!
9# Note that MYSQL_VERSION_ID must be empty!
10 9
11WANT_AUTOCONF="latest" 10WANT_AUTOCONF="latest"
12WANT_AUTOMAKE="latest" 11WANT_AUTOMAKE="latest"
13 12
14inherit eutils flag-o-matic gnuconfig autotools mysql_fx 13inherit eutils flag-o-matic gnuconfig autotools mysql_fx
16# Shorten the path because the socket path length must be shorter than 107 chars 15# Shorten the path because the socket path length must be shorter than 107 chars
17# and we will run a mysql server during test phase 16# and we will run a mysql server during test phase
18S="${WORKDIR}/mysql" 17S="${WORKDIR}/mysql"
19 18
20[[ "${MY_EXTRAS_VER}" == "latest" ]] && MY_EXTRAS_VER="20070108" 19[[ "${MY_EXTRAS_VER}" == "latest" ]] && MY_EXTRAS_VER="20070108"
20if [[ "${MY_EXTRAS_VER}" == "live" ]]; then
21 EGIT_PROJECT=mysql-extras
22 EGIT_REPO_URI="git://git.overlays.gentoo.org/proj/mysql-extras.git"
23 inherit git
24fi
21 25
22if [[ ${PR#r} -lt 60 ]] ; then 26if [[ ${PR#r} -lt 60 ]] ; then
23 IS_BITKEEPER=0 27 IS_BITKEEPER=0
24elif [[ ${PR#r} -lt 90 ]] ; then 28elif [[ ${PR#r} -lt 90 ]] ; then
25 IS_BITKEEPER=60 29 IS_BITKEEPER=60
30# MYSQL_VERSION_ID will be: 34# MYSQL_VERSION_ID will be:
31# major * 10e6 + minor * 10e4 + micro * 10e2 + gentoo revision number, all [0..99] 35# major * 10e6 + minor * 10e4 + micro * 10e2 + gentoo revision number, all [0..99]
32# This is an important part, because many of the choices the MySQL ebuild will do 36# This is an important part, because many of the choices the MySQL ebuild will do
33# depend on this variable. 37# depend on this variable.
34# In particular, the code below transforms a $PVR like "5.0.18-r3" in "5001803" 38# In particular, the code below transforms a $PVR like "5.0.18-r3" in "5001803"
39# We also strip off upstream's trailing letter that they use to respin tarballs
35 40
36MYSQL_VERSION_ID="" 41MYSQL_VERSION_ID=""
42tpv="${PV%[a-z]}"
37tpv=( ${PV//[-._]/ } ) ; tpv[3]="${PVR:${#PV}}" ; tpv[3]="${tpv[3]##*-r}" 43tpv=( ${tpv//[-._]/ } ) ; tpv[3]="${PVR:${#PV}}" ; tpv[3]="${tpv[3]##*-r}"
38for vatom in 0 1 2 3 ; do 44for vatom in 0 1 2 3 ; do
39 # pad to length 2 45 # pad to length 2
40 tpv[${vatom}]="00${tpv[${vatom}]}" 46 tpv[${vatom}]="00${tpv[${vatom}]}"
41 MYSQL_VERSION_ID="${MYSQL_VERSION_ID}${tpv[${vatom}]:0-2}" 47 MYSQL_VERSION_ID="${MYSQL_VERSION_ID}${tpv[${vatom}]:0-2}"
42done 48done
79 SERVER_URI="ftp://ftp.mysql.com/pub/mysql/src/mysql-${PV//_/-}.tar.gz" 85 SERVER_URI="ftp://ftp.mysql.com/pub/mysql/src/mysql-${PV//_/-}.tar.gz"
80 fi 86 fi
81fi 87fi
82 88
83# Define correct SRC_URIs 89# Define correct SRC_URIs
84SRC_URI="${SERVER_URI} 90SRC_URI="${SERVER_URI}"
91
92[[ ${MY_EXTRAS_VER} != live ]] && SRC_URI="${SRC_URI}
85 mirror://gentoo/mysql-extras-${MY_EXTRAS_VER}.tar.bz2 93 mirror://gentoo/mysql-extras-${MY_EXTRAS_VER}.tar.bz2
86 http://g3nt8.org/patches/mysql-extras-${MY_EXTRAS_VER}.tar.bz2" 94 http://g3nt8.org/patches/mysql-extras-${MY_EXTRAS_VER}.tar.bz2"
87mysql_version_is_at_least "5.1.12" \ 95mysql_version_is_at_least "5.1.12" \
88&& [[ -n "${PBXT_VERSION}" ]] \ 96&& [[ -n "${PBXT_VERSION}" ]] \
89&& SRC_URI="${SRC_URI} pbxt? ( mirror://sourceforge/pbxt/pbxt-${PBXT_VERSION}.tar.gz )" 97&& SRC_URI="${SRC_URI} pbxt? ( mirror://sourceforge/pbxt/pbxt-${PBXT_VERSION}.tar.gz )"
216 MY_DATADIR=`"my_print_defaults" mysqld 2>/dev/null \ 224 MY_DATADIR=`"my_print_defaults" mysqld 2>/dev/null \
217 | sed -ne '/datadir/s|^--datadir=||p' \ 225 | sed -ne '/datadir/s|^--datadir=||p' \
218 | tail -n1` 226 | tail -n1`
219 if [[ -z "${MY_DATADIR}" ]] ; then 227 if [[ -z "${MY_DATADIR}" ]] ; then
220 MY_DATADIR=`grep ^datadir "${MY_SYSCONFDIR}/my.cnf" \ 228 MY_DATADIR=`grep ^datadir "${MY_SYSCONFDIR}/my.cnf" \
221 | sed -e 's/.*=\s*//'` 229 | sed -e 's/.*=\s*//' \
230 | tail -n1`
222 fi 231 fi
223 fi 232 fi
224 if [[ -z "${MY_DATADIR}" ]] ; then 233 if [[ -z "${MY_DATADIR}" ]] ; then
225 MY_DATADIR="${MY_LOCALSTATEDIR}" 234 MY_DATADIR="${MY_LOCALSTATEDIR}"
226 einfo "Using default MY_DATADIR" 235 einfo "Using default MY_DATADIR"
495mysql_src_unpack() { 504mysql_src_unpack() {
496 # Initialize the proper variables first 505 # Initialize the proper variables first
497 mysql_init_vars 506 mysql_init_vars
498 507
499 unpack ${A} 508 unpack ${A}
509 # Grab the patches
510 [[ "${MY_EXTRAS_VER}" == "live" ]] && S="${WORKDIR}/mysql-extras" git_src_unpack
511 # Bitkeeper checkout support
500 if [[ ${IS_BITKEEPER} -eq 90 ]] ; then 512 if [[ ${IS_BITKEEPER} -eq 90 ]] ; then
501 if mysql_check_version_range "5.1 to 5.1.99" ; then 513 if mysql_check_version_range "5.1 to 5.1.99" ; then
502 bitkeeper_fetch "mysql-5.1-ndb" 514 bitkeeper_fetch "mysql-5.1-ndb"
503 elif mysql_check_version_range "5.2 to 5.2.99" ; then 515 elif mysql_check_version_range "5.2 to 5.2.99" ; then
504 bitkeeper_fetch "mysql-5.2-falcon" 516 bitkeeper_fetch "mysql-5.2-falcon"
514 fi 526 fi
515 527
516 # Apply the patches for this MySQL version 528 # Apply the patches for this MySQL version
517 EPATCH_SUFFIX="patch" 529 EPATCH_SUFFIX="patch"
518 mkdir -p "${EPATCH_SOURCE}" || die "Unable to create epatch directory" 530 mkdir -p "${EPATCH_SOURCE}" || die "Unable to create epatch directory"
531 # Clean out old items
532 rm -f "${EPATCH_SOURCE}"/*
533 # Now link in right patches
519 mysql_mv_patches 534 mysql_mv_patches
535 # And apply
520 epatch 536 epatch
521 537
522 # Additional checks, remove bundled zlib 538 # Additional checks, remove bundled zlib
523 rm -f "${S}/zlib/"*.[ch] 539 rm -f "${S}/zlib/"*.[ch]
524 sed -i -e "s/zlib\/Makefile dnl/dnl zlib\/Makefile/" "${S}/configure.in" 540 sed -i -e "s/zlib\/Makefile dnl/dnl zlib\/Makefile/" "${S}/configure.in"
819 && cp "${help_tables}" "${TMPDIR}/fill_help_tables.sql" \ 835 && cp "${help_tables}" "${TMPDIR}/fill_help_tables.sql" \
820 || touch "${TMPDIR}/fill_help_tables.sql" 836 || touch "${TMPDIR}/fill_help_tables.sql"
821 help_tables="${TMPDIR}/fill_help_tables.sql" 837 help_tables="${TMPDIR}/fill_help_tables.sql"
822 838
823 pushd "${TMPDIR}" &>/dev/null 839 pushd "${TMPDIR}" &>/dev/null
824 "${ROOT}/usr/bin/mysql_install_db" | grep -B5 -A999 -i "ERROR" 840 "${ROOT}/usr/bin/mysql_install_db" >"${TMPDIR}"/mysql_install_db.log 2>&1
841 if [ $? -ne 0 ]; then
842 grep -B5 -A999 -i "ERROR" "${TMPDIR}"/mysql_install_db.log 1>&2
843 die "Failed to run mysql_install_db. Please review /var/log/mysql/mysqld.err AND ${TMPDIR}/mysql_install_db.log"
844 fi
825 popd &>/dev/null 845 popd &>/dev/null
826 [[ -f "${ROOT}/${MY_DATADIR}/mysql/user.frm" ]] \ 846 [[ -f "${ROOT}/${MY_DATADIR}/mysql/user.frm" ]] \
827 || die "MySQL databases not installed" 847 || die "MySQL databases not installed"
828 chown -R mysql:mysql "${ROOT}/${MY_DATADIR}" 2> /dev/null 848 chown -R mysql:mysql "${ROOT}/${MY_DATADIR}" 2> /dev/null
829 chmod 0750 "${ROOT}/${MY_DATADIR}" 2> /dev/null 849 chmod 0750 "${ROOT}/${MY_DATADIR}" 2> /dev/null

Legend:
Removed from v.1.84  
changed lines
  Added in v.1.89

  ViewVC Help
Powered by ViewVC 1.1.20