/[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.88
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.88 2008/03/10 02:47:20 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 )"
495mysql_src_unpack() { 503mysql_src_unpack() {
496 # Initialize the proper variables first 504 # Initialize the proper variables first
497 mysql_init_vars 505 mysql_init_vars
498 506
499 unpack ${A} 507 unpack ${A}
508 # Grab the patches
509 [[ "${MY_EXTRAS_VER}" == "live" ]] && S="${WORKDIR}/mysql-extras" git_src_unpack
510 # Bitkeeper checkout support
500 if [[ ${IS_BITKEEPER} -eq 90 ]] ; then 511 if [[ ${IS_BITKEEPER} -eq 90 ]] ; then
501 if mysql_check_version_range "5.1 to 5.1.99" ; then 512 if mysql_check_version_range "5.1 to 5.1.99" ; then
502 bitkeeper_fetch "mysql-5.1-ndb" 513 bitkeeper_fetch "mysql-5.1-ndb"
503 elif mysql_check_version_range "5.2 to 5.2.99" ; then 514 elif mysql_check_version_range "5.2 to 5.2.99" ; then
504 bitkeeper_fetch "mysql-5.2-falcon" 515 bitkeeper_fetch "mysql-5.2-falcon"
514 fi 525 fi
515 526
516 # Apply the patches for this MySQL version 527 # Apply the patches for this MySQL version
517 EPATCH_SUFFIX="patch" 528 EPATCH_SUFFIX="patch"
518 mkdir -p "${EPATCH_SOURCE}" || die "Unable to create epatch directory" 529 mkdir -p "${EPATCH_SOURCE}" || die "Unable to create epatch directory"
530 # Clean out old items
531 rm -f "${EPATCH_SOURCE}"/*
532 # Now link in right patches
519 mysql_mv_patches 533 mysql_mv_patches
534 # And apply
520 epatch 535 epatch
521 536
522 # Additional checks, remove bundled zlib 537 # Additional checks, remove bundled zlib
523 rm -f "${S}/zlib/"*.[ch] 538 rm -f "${S}/zlib/"*.[ch]
524 sed -i -e "s/zlib\/Makefile dnl/dnl zlib\/Makefile/" "${S}/configure.in" 539 sed -i -e "s/zlib\/Makefile dnl/dnl zlib\/Makefile/" "${S}/configure.in"
819 && cp "${help_tables}" "${TMPDIR}/fill_help_tables.sql" \ 834 && cp "${help_tables}" "${TMPDIR}/fill_help_tables.sql" \
820 || touch "${TMPDIR}/fill_help_tables.sql" 835 || touch "${TMPDIR}/fill_help_tables.sql"
821 help_tables="${TMPDIR}/fill_help_tables.sql" 836 help_tables="${TMPDIR}/fill_help_tables.sql"
822 837
823 pushd "${TMPDIR}" &>/dev/null 838 pushd "${TMPDIR}" &>/dev/null
824 "${ROOT}/usr/bin/mysql_install_db" | grep -B5 -A999 -i "ERROR" 839 "${ROOT}/usr/bin/mysql_install_db" >"${TMPDIR}"/mysql_install_db.log 2>&1
840 if [ $? -ne 0 ]; then
841 grep -B5 -A999 -i "ERROR" "${TMPDIR}"/mysql_install_db.log 1>&2
842 die "Failed to run mysql_install_db. Please review /var/log/mysql/mysqld.err AND ${TMPDIR}/mysql_install_db.log"
843 fi
825 popd &>/dev/null 844 popd &>/dev/null
826 [[ -f "${ROOT}/${MY_DATADIR}/mysql/user.frm" ]] \ 845 [[ -f "${ROOT}/${MY_DATADIR}/mysql/user.frm" ]] \
827 || die "MySQL databases not installed" 846 || die "MySQL databases not installed"
828 chown -R mysql:mysql "${ROOT}/${MY_DATADIR}" 2> /dev/null 847 chown -R mysql:mysql "${ROOT}/${MY_DATADIR}" 2> /dev/null
829 chmod 0750 "${ROOT}/${MY_DATADIR}" 2> /dev/null 848 chmod 0750 "${ROOT}/${MY_DATADIR}" 2> /dev/null

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

  ViewVC Help
Powered by ViewVC 1.1.20