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

Diff of /eclass/mysql.eclass

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

Revision 1.137 Revision 1.153
1# Copyright 1999-2009 Gentoo Foundation 1# Copyright 1999-2009 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/Attic/mysql.eclass,v 1.137 2010/03/15 18:50:43 robbat2 Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/Attic/mysql.eclass,v 1.153 2010/10/27 07:19:24 robbat2 Exp $
4 4
5# @ECLASS: mysql.eclass 5# @ECLASS: mysql.eclass
6# @MAINTAINER: 6# @MAINTAINER:
7# Author: Francesco Riosa (Retired) <vivo@gentoo.org> 7# Author: Francesco Riosa (Retired) <vivo@gentoo.org>
8# Maintainers: MySQL Team <mysql-bugs@gentoo.org> 8# Maintainers: MySQL Team <mysql-bugs@gentoo.org>
59# Upstream MySQL considers the first two parts of the version number to be the 59# Upstream MySQL considers the first two parts of the version number to be the
60# major version. Upgrades that change major version should always run 60# major version. Upgrades that change major version should always run
61# mysql_upgrade. 61# mysql_upgrade.
62MYSQL_PV_MAJOR="$(get_version_component_range 1-2 ${PV})" 62MYSQL_PV_MAJOR="$(get_version_component_range 1-2 ${PV})"
63 63
64# Cluster is a special case...
65if [[ "${PN}" == "mysql-cluster" ]]; then
66 case $PV in
67 6.1*|7.0*|7.1*) MYSQL_PV_MAJOR=5.1 ;;
68 esac
69fi
70
71
64# @ECLASS-VARIABLE: MYSQL_VERSION_ID 72# @ECLASS-VARIABLE: MYSQL_VERSION_ID
65# @DESCRIPTION: 73# @DESCRIPTION:
66# MYSQL_VERSION_ID will be: 74# MYSQL_VERSION_ID will be:
67# major * 10e6 + minor * 10e4 + micro * 10e2 + gentoo revision number, all [0..99] 75# major * 10e6 + minor * 10e4 + micro * 10e2 + gentoo revision number, all [0..99]
68# This is an important part, because many of the choices the MySQL ebuild will do 76# This is an important part, because many of the choices the MySQL ebuild will do
95 MYSQL_COMMUNITY_FEATURES=1 103 MYSQL_COMMUNITY_FEATURES=1
96elif [ "${PV#5.4}" != "${PV}" ] ; then 104elif [ "${PV#5.4}" != "${PV}" ] ; then
97 MYSQL_COMMUNITY_FEATURES=1 105 MYSQL_COMMUNITY_FEATURES=1
98elif [ "${PV#5.5}" != "${PV}" ] ; then 106elif [ "${PV#5.5}" != "${PV}" ] ; then
99 MYSQL_COMMUNITY_FEATURES=1 107 MYSQL_COMMUNITY_FEATURES=1
100elif [ "${PV#6.0}" != "${PV}" ] ; then 108elif [ "${PV#6}" != "${PV}" ] ; then
109 MYSQL_COMMUNITY_FEATURES=1
110elif [ "${PV#7}" != "${PV}" ] ; then
101 MYSQL_COMMUNITY_FEATURES=1 111 MYSQL_COMMUNITY_FEATURES=1
102else 112else
103 MYSQL_COMMUNITY_FEATURES=0 113 MYSQL_COMMUNITY_FEATURES=0
104fi 114fi
105 115
124 134
125[[ "${PN}" == "mariadb" ]] \ 135[[ "${PN}" == "mariadb" ]] \
126&& DEPEND="${DEPEND} libevent? ( >=dev-libs/libevent-1.4 )" 136&& DEPEND="${DEPEND} libevent? ( >=dev-libs/libevent-1.4 )"
127 137
128# Having different flavours at the same time is not a good idea 138# Having different flavours at the same time is not a good idea
129for i in "mysql" "mysql-community" "mariadb" ; do 139for i in "mysql" "mysql-community" "mysql-cluster" "mariadb" ; do
130 [[ "${i}" == ${PN} ]] || 140 [[ "${i}" == ${PN} ]] ||
131 DEPEND="${DEPEND} !dev-db/${i}" 141 DEPEND="${DEPEND} !dev-db/${i}"
132done 142done
133 143
134RDEPEND="${DEPEND} 144RDEPEND="${DEPEND}
152# Work out the default SERVER_URI correctly 162# Work out the default SERVER_URI correctly
153if [ -z "${SERVER_URI}" ]; then 163if [ -z "${SERVER_URI}" ]; then
154 [ -z "${MY_PV}" ] && MY_PV="${PV//_/-}" 164 [ -z "${MY_PV}" ] && MY_PV="${PV//_/-}"
155 if [ "${PN}" == "mariadb" ]; then 165 if [ "${PN}" == "mariadb" ]; then
156 MARIA_FULL_PV="$(replace_version_separator 3 '-' ${PV})" 166 MARIA_FULL_PV="$(replace_version_separator 3 '-' ${PV})"
167 MARIA_FULL_P="${PN}-${MARIA_FULL_PV}"
168 SERVER_URI="
169 http://ftp.osuosl.org/pub/mariadb/${MARIA_FULL_P}/kvm-tarbake-jaunty-x86/${MARIA_FULL_P}.tar.gz
170 http://ftp.rediris.es/mirror/MariaDB/${MARIA_FULL_P}/kvm-tarbake-jaunty-x86/${MARIA_FULL_P}.tar.gz
171 http://maria.llarian.net/download/${MARIA_FULL_P}/kvm-tarbake-jaunty-x86/${MARIA_FULL_P}.tar.gz
157 SERVER_URI="http://launchpad.net/maria/${MYSQL_PV_MAJOR}/ongoing/+download/mariadb-${MARIA_FULL_PV}.tar.gz" 172 http://launchpad.net/maria/${MYSQL_PV_MAJOR}/ongoing/+download/${MARIA_FULL_P}.tar.gz
173 http://mirrors.fe.up.pt/pub/${PN}/${MARIA_FULL_P}/kvm-tarbake-jaunty-x86/${MARIA_FULL_P}.tar.gz
174 http://ftp-stud.hs-esslingen.de/pub/Mirrors/${PN}/${MARIA_FULL_P}/kvm-tarbake-jaunty-x86/${MARIA_FULL_P}.tar.gz
175 "
158 # The community build is on the mirrors 176 # The community and cluster builds are on the mirrors
159 elif [ "${MYSQL_COMMUNITY_FEATURES}" == "1" ]; then 177 elif [[ "${MYSQL_COMMUNITY_FEATURES}" == "1" || ${PN} == "mysql-cluster" ]] ; then
160 SERVER_URI="mirror://mysql/Downloads/MySQL-${PV%.*}/mysql-${MY_PV}.tar.gz" 178 if [[ "${PN}" == "mysql-cluster" ]] ; then
179 URI_DIR="MySQL-Cluster"
180 URI_FILE="mysql-cluster-gpl"
181 else
182 URI_DIR="MySQL"
183 URI_FILE="mysql"
184 fi
185 URI_A="${URI_FILE}-${MY_PV}.tar.gz"
186 MIRROR_PV=$(get_version_component_range 1-2 ${PV})
187 # Recently upstream switched to an archive site, and not on mirrors
188 SERVER_URI="http://downloads.mysql.com/archives/${URI_FILE}-${MIRROR_PV}/${URI_A}
189 mirror://mysql/Downloads/${URI_DIR}-${PV%.*}/${URI_A}"
161 # The (old) enterprise source is on the primary site only 190 # The (old) enterprise source is on the primary site only
162 elif [ "${PN}" == "mysql" ]; then 191 elif [ "${PN}" == "mysql" ]; then
163 SERVER_URI="ftp://ftp.mysql.com/pub/mysql/src/mysql-${MY_PV}.tar.gz" 192 SERVER_URI="ftp://ftp.mysql.com/pub/mysql/src/mysql-${MY_PV}.tar.gz"
164 fi 193 fi
165fi 194fi
178HOMEPAGE="http://www.mysql.com/" 207HOMEPAGE="http://www.mysql.com/"
179if [[ "${PN}" == "mariadb" ]]; then 208if [[ "${PN}" == "mariadb" ]]; then
180 HOMEPAGE="http://askmonty.org/" 209 HOMEPAGE="http://askmonty.org/"
181 DESCRIPTION="MariaDB is a MySQL fork with 3rd-party patches and additional storage engines merged." 210 DESCRIPTION="MariaDB is a MySQL fork with 3rd-party patches and additional storage engines merged."
182fi 211fi
212if [[ "${PN}" == "mysql-community" ]]; then
213 DESCRIPTION="${DESCRIPTION} (obsolete, move to dev-db/mysql)"
214fi
183LICENSE="GPL-2" 215LICENSE="GPL-2"
184SLOT="0" 216SLOT="0"
185IUSE="big-tables debug embedded minimal ${IUSE_DEFAULT_ON}perl selinux ssl static test" 217IUSE="big-tables debug embedded minimal ${IUSE_DEFAULT_ON}perl selinux ssl static test"
186 218
187mysql_version_is_at_least "4.1" \ 219mysql_version_is_at_least "4.1" \
188&& IUSE="${IUSE} latin1" 220&& IUSE="${IUSE} latin1"
189 221
190mysql_version_is_at_least "4.1.3" \ 222if mysql_version_is_at_least "4.1.3" ; then
191&& IUSE="${IUSE} cluster extraengine" 223 IUSE="${IUSE} extraengine"
224 if [[ "${PN}" != "mysql-cluster" ]] ; then
225 IUSE="${IUSE} cluster"
226 fi
227fi
192 228
193mysql_version_is_at_least "5.0" \ 229mysql_version_is_at_least "5.0" \
194|| IUSE="${IUSE} raid" 230|| IUSE="${IUSE} raid"
195 231
196mysql_version_is_at_least "5.0.18" \ 232mysql_version_is_at_least "5.0.18" \
229 && mysql_version_is_at_least "5.1.26" \ 265 && mysql_version_is_at_least "5.1.26" \
230 && [[ -n "${XTRADB_VER}" && -n "${PERCONA_VER}" ]] 266 && [[ -n "${XTRADB_VER}" && -n "${PERCONA_VER}" ]]
231 return $? 267 return $?
232} 268}
233 269
270
234pbxt_patch_available \ 271pbxt_patch_available \
235&& PBXT_P="pbxt-${PBXT_VERSION}" \ 272&& PBXT_P="pbxt-${PBXT_VERSION}" \
236&& PBXT_SRC_URI="http://www.primebase.org/download/${PBXT_P}.tar.gz mirror://sourceforge/pbxt/${PBXT_P}.tar.gz" \ 273&& PBXT_SRC_URI="http://www.primebase.org/download/${PBXT_P}.tar.gz mirror://sourceforge/pbxt/${PBXT_P}.tar.gz" \
237&& SRC_URI="${SRC_URI} pbxt? ( ${PBXT_SRC_URI} )" \ 274&& SRC_URI="${SRC_URI} pbxt? ( ${PBXT_SRC_URI} )" \
238 275
276# PBXT_NEWSTYLE means pbxt is in storage/ and gets enabled as other plugins
277# vs. built outside the dir
239pbxt_available \ 278pbxt_available \
240&& IUSE="${IUSE} pbxt" 279&& IUSE="${IUSE} pbxt" \
280&& mysql_version_is_at_least "5.1.40" \
281&& PBXT_NEWSTYLE=1
241 282
242xtradb_patch_available \ 283xtradb_patch_available \
243&& XTRADB_P="percona-xtradb-${XTRADB_VER}" \ 284&& XTRADB_P="percona-xtradb-${XTRADB_VER}" \
244&& XTRADB_SRC_URI_COMMON="${PERCONA_VER}/source/${XTRADB_P}.tar.gz" \ 285&& XTRADB_SRC_URI_COMMON="${PERCONA_VER}/source/${XTRADB_P}.tar.gz" \
245&& XTRADB_SRC_URI1="http://www.percona.com/percona-builds/xtradb/${XTRADB_SRC_URI_COMMON}" \ 286&& XTRADB_SRC_B1="http://www.percona.com/" \
287&& XTRADB_SRC_B2="${XTRADB_SRC_B1}/percona-builds/" \
288&& XTRADB_SRC_URI1="${XTRADB_SRC_B2}/Percona-Server/Percona-Server-${XTRADB_SRC_URI_COMMON}" \
246&& XTRADB_SRC_URI2="http://www.percona.com/${PN}/xtradb/${XTRADB_SRC_URI_COMMON}" \ 289&& XTRADB_SRC_URI2="${XTRADB_SRC_B2}/xtradb/${XTRADB_SRC_URI_COMMON}" \
290&& XTRADB_SRC_URI3="${XTRADB_SRC_B1}/${PN}/xtradb/${XTRADB_SRC_URI_COMMON}" \
247&& SRC_URI="${SRC_URI} xtradb? ( ${XTRADB_SRC_URI1} ${XTRADB_SRC_URI2} )" \ 291&& SRC_URI="${SRC_URI} xtradb? ( ${XTRADB_SRC_URI1} ${XTRADB_SRC_URI2} ${XTRADB_SRC_URI3} )" \
248&& IUSE="${IUSE} xtradb" 292&& IUSE="${IUSE} xtradb"
249 293
250# 294#
251# HELPER FUNCTIONS: 295# HELPER FUNCTIONS:
252# 296#
257mysql_disable_test() { 301mysql_disable_test() {
258 local rawtestname testname testsuite reason mysql_disable_file 302 local rawtestname testname testsuite reason mysql_disable_file
259 rawtestname="${1}" ; shift 303 rawtestname="${1}" ; shift
260 reason="${@}" 304 reason="${@}"
261 ewarn "test '${rawtestname}' disabled: '${reason}'" 305 ewarn "test '${rawtestname}' disabled: '${reason}'"
262 306
263 testsuite="${rawtestname/.*}" 307 testsuite="${rawtestname/.*}"
264 testname="${rawtestname/*.}" 308 testname="${rawtestname/*.}"
265 mysql_disable_file="${S}/mysql-test/t/disabled.def" 309 mysql_disable_file="${S}/mysql-test/t/disabled.def"
266 #einfo "rawtestname=${rawtestname} testname=${testname} testsuite=${testsuite}" 310 #einfo "rawtestname=${rawtestname} testname=${testname} testsuite=${testsuite}"
267 echo ${testname} : ${reason} >> "${mysql_disable_file}" 311 echo ${testname} : ${reason} >> "${mysql_disable_file}"
349 MY_DATADIR="${new_MY_DATADIR}" 393 MY_DATADIR="${new_MY_DATADIR}"
350 fi 394 fi
351 fi 395 fi
352 fi 396 fi
353 397
398 if [ "${MY_SOURCEDIR:-unset}" == "unset" ]; then
354 MY_SOURCEDIR=${SERVER_URI##*/} 399 MY_SOURCEDIR=${SERVER_URI##*/}
355 MY_SOURCEDIR=${MY_SOURCEDIR%.tar*} 400 MY_SOURCEDIR=${MY_SOURCEDIR%.tar*}
401 fi
356 402
357 export MY_SHAREDSTATEDIR MY_SYSCONFDIR 403 export MY_SHAREDSTATEDIR MY_SYSCONFDIR
358 export MY_LIBDIR MY_LOCALSTATEDIR MY_LOGDIR 404 export MY_LIBDIR MY_LOCALSTATEDIR MY_LOGDIR
359 export MY_INCLUDEDIR MY_DATADIR MY_SOURCEDIR 405 export MY_INCLUDEDIR MY_DATADIR MY_SOURCEDIR
360} 406}
407 if use debug ; then 453 if use debug ; then
408 myconf="${myconf} --with-debug=full" 454 myconf="${myconf} --with-debug=full"
409 else 455 else
410 myconf="${myconf} --without-debug" 456 myconf="${myconf} --without-debug"
411 mysql_version_is_at_least "4.1.3" \ 457 mysql_version_is_at_least "4.1.3" \
412 && use cluster \ 458 && ( use cluster || [[ "${PN}" == "mysql-cluster" ]] ) \
413 && myconf="${myconf} --without-ndb-debug" 459 && myconf="${myconf} --without-ndb-debug"
414 fi 460 fi
415 461
416 if [ -n "${MYSQL_DEFAULT_CHARSET}" -a -n "${MYSQL_DEFAULT_COLLATION}" ]; then 462 if [ -n "${MYSQL_DEFAULT_CHARSET}" -a -n "${MYSQL_DEFAULT_COLLATION}" ]; then
417 ewarn "You are using a custom charset of ${MYSQL_DEFAULT_CHARSET}" 463 ewarn "You are using a custom charset of ${MYSQL_DEFAULT_CHARSET}"
474 myconf="${myconf} --without-berkeley-db" 520 myconf="${myconf} --without-berkeley-db"
475 fi 521 fi
476 522
477 if mysql_version_is_at_least "4.1.3" ; then 523 if mysql_version_is_at_least "4.1.3" ; then
478 myconf="${myconf} --with-geometry" 524 myconf="${myconf} --with-geometry"
525 if [[ "${PN}" != "mysql-cluster" ]] ; then
479 myconf="${myconf} $(use_with cluster ndbcluster)" 526 myconf="${myconf} $(use_with cluster ndbcluster)"
527 fi
480 fi 528 fi
481 529
482 if mysql_version_is_at_least "4.1.3" && use extraengine ; then 530 if mysql_version_is_at_least "4.1.3" && use extraengine ; then
483 # http://dev.mysql.com/doc/mysql/en/archive-storage-engine.html 531 # http://dev.mysql.com/doc/mysql/en/archive-storage-engine.html
484 myconf="${myconf} --with-archive-storage-engine" 532 myconf="${myconf} --with-archive-storage-engine"
521 myconf="${myconf} --enable-assembler" 569 myconf="${myconf} --enable-assembler"
522 myconf="${myconf} --with-geometry" 570 myconf="${myconf} --with-geometry"
523 myconf="${myconf} --with-readline" 571 myconf="${myconf} --with-readline"
524 myconf="${myconf} --with-zlib-dir=/usr/" 572 myconf="${myconf} --with-zlib-dir=/usr/"
525 myconf="${myconf} --without-pstack" 573 myconf="${myconf} --without-pstack"
574 myconf="${myconf} --with-plugindir=/usr/$(get_libdir)/mysql/plugin"
575
526 use max-idx-128 && myconf="${myconf} --with-max-indexes=128" 576 use max-idx-128 && myconf="${myconf} --with-max-indexes=128"
527 if [ "${MYSQL_COMMUNITY_FEATURES}" == "1" ]; then 577 if [ "${MYSQL_COMMUNITY_FEATURES}" == "1" ]; then
528 myconf="${myconf} $(use_enable community community-features)" 578 myconf="${myconf} $(use_enable community community-features)"
529 if use community; then 579 if use community; then
530 myconf="${myconf} $(use_enable profiling)" 580 myconf="${myconf} $(use_enable profiling)"
531 else 581 else
532 myconf="${myconf} --disable-profiling" 582 myconf="${myconf} --disable-profiling"
533 fi 583 fi
534 fi 584 fi
535 585
586 # Scan for all available plugins
587 local plugins_avail="$(
588 LANG=C \
589 find "${S}" \
590 \( \
591 -name 'plug.in' \
592 -o -iname 'configure.in' \
593 -o -iname 'configure.ac' \
594 \) \
595 -print0 \
596 | xargs -0 sed -r -n \
597 -e '/^MYSQL_STORAGE_ENGINE/{
598 s~MYSQL_STORAGE_ENGINE\([[:space:]]*\[?([-_a-z0-9]+)\]?.*,~\1 ~g ;
599 s~^([^ ]+).*~\1~gp;
600 }' \
601 | tr -s '\n' ' '
602 )"
603
536 # 5.1 introduces a new way to manage storage engines (plugins) 604 # 5.1 introduces a new way to manage storage engines (plugins)
537 # like configuration=none 605 # like configuration=none
606 # This base set are required, and will always be statically built.
538 local plugins="csv,myisam,myisammrg,heap" 607 local plugins_sta="csv myisam myisammrg heap"
608 local plugins_dyn=""
609 local plugins_dis="example ibmdb2i"
610
611 # These aren't actually required by the base set, but are really useful:
612 plugins_sta="${plugins_sta} archive blackhole"
613
614 # default in 5.5.4
615 if mysql_version_is_at_least "5.5.4" ; then
616 plugins_sta="${plugins_sta} partition"
617 fi
618 # Now the extras
539 if use extraengine ; then 619 if use extraengine ; then
540 # like configuration=max-no-ndb, archive and example removed in 5.1.11 620 # like configuration=max-no-ndb, archive and example removed in 5.1.11
541 # not added yet: ibmdb2i 621 # not added yet: ibmdb2i
542 # Not supporting as examples: example,daemon_example,ftexample 622 # Not supporting as examples: example,daemon_example,ftexample
543 plugins="${plugins},archive,blackhole,federated,partition" 623 plugins_sta="${plugins_sta} partition"
624 plugins_dyn="${plugins_sta} federated"
544 625
545 if [[ "${PN}" != "mariadb" ]] ; then 626 if [[ "${PN}" != "mariadb" ]] ; then
546 elog "Before using the Federated storage engine, please be sure to read" 627 elog "Before using the Federated storage engine, please be sure to read"
547 elog "http://dev.mysql.com/doc/refman/5.1/en/federated-limitations.html" 628 elog "http://dev.mysql.com/doc/refman/5.1/en/federated-limitations.html"
548 else 629 else
549 elog "MariaDB includes the FederatedX engine. Be sure to read" 630 elog "MariaDB includes the FederatedX engine. Be sure to read"
550 elog "http://askmonty.org/wiki/index.php/Manual:FederatedX_storage_engine" 631 elog "http://askmonty.org/wiki/index.php/Manual:FederatedX_storage_engine"
551 fi 632 fi
633 else
634 plugins_dis="${plugins_dis} partition federated"
552 fi 635 fi
553 636
554 # Upstream specifically requests that InnoDB always be built: 637 # Upstream specifically requests that InnoDB always be built:
555 # - innobase, innodb_plugin 638 # - innobase, innodb_plugin
556 # Build falcon if available for 6.x series. 639 # Build falcon if available for 6.x series.
557 for i in innobase innodb_plugin falcon ; do 640 for i in innobase falcon ; do
558 [ -e "${S}"/storage/${i} ] && plugins="${plugins},${i}" 641 [ -e "${S}"/storage/${i} ] && plugins_sta="${plugins_sta} ${i}"
559 done 642 done
643 for i in innodb_plugin ; do
644 [ -e "${S}"/storage/${i} ] && plugins_dyn="${plugins_dyn} ${i}"
645 done
560 646
561 # like configuration=max-no-ndb 647 # like configuration=max-no-ndb
562 if use cluster ; then 648 if ( use cluster || [[ "${PN}" == "mysql-cluster" ]] ) ; then
563 plugins="${plugins},ndbcluster" 649 plugins_sta="${plugins_sta} ndbcluster partition"
650 plugins_dis="${plugins_dis//partition}"
564 myconf="${myconf} --with-ndb-binlog" 651 myconf="${myconf} --with-ndb-binlog"
652 else
653 plugins_dis="${plugins_dis} ndbcluster"
565 fi 654 fi
566 655
567 if [[ "${PN}" == "mariadb" ]] ; then 656 if [[ "${PN}" == "mariadb" ]] ; then
568 # In MariaDB, InnoDB is packaged in the xtradb directory, so it's not 657 # In MariaDB, InnoDB is packaged in the xtradb directory, so it's not
569 # caught above. 658 # caught above.
570 plugins="${plugins},maria,innobase" 659 plugins_sta="${plugins_sta} maria"
571 if use pbxt ; then 660
572 plugins="${plugins},pbxt" 661 [ -e "${S}"/storage/innobase ] || [ -e "${S}"/storage/xtradb ] ||
573 else 662 die "The ${P} package doesn't provide innobase nor xtradb"
574 myconf="${myconf} --without-plugin-pbxt" 663
575 fi 664 for i in innobase xtradb ; do
665 [ -e "${S}"/storage/${i} ] && plugins_sta="${plugins_sta} ${i}"
666 done
667
576 myconf="${myconf} $(use_with libevent)" 668 myconf="${myconf} $(use_with libevent)"
577 # This is not optional, without it several upstream testcases fail. 669 # This is not optional, without it several upstream testcases fail.
578 # Also strongly recommended by upstream. 670 # Also strongly recommended by upstream.
579 myconf="${myconf} --with-maria-tmp-tables" 671 myconf="${myconf} --with-maria-tmp-tables"
580 fi 672 fi
581 673
674 if pbxt_available && [[ "${PBXT_NEWSTYLE}" == "1" ]]; then
675 use pbxt \
676 && plugins_dyn="${plugins_dyn} pbxt" \
677 || plugins_dis="${plugins_dis} pbxt"
678 fi
679
680 use static && \
681 plugins_sta="${plugins_sta} ${plugins_dyn}" && \
682 plugins_dyn=""
683
684 einfo "Available plugins: ${plugins_avail}"
685 einfo "Dynamic plugins: ${plugins_dyn}"
686 einfo "Static plugins: ${plugins_sta}"
687 einfo "Disabled plugins: ${plugins_dis}"
688
689 # These are the static plugins
582 myconf="${myconf} --with-plugins=${plugins}" 690 myconf="${myconf} --with-plugins=${plugins_sta// /,}"
691 # And the disabled ones
692 for i in ${plugins_dis} ; do
693 myconf="${myconf} --without-plugin-${i}"
694 done
583} 695}
584 696
585pbxt_src_configure() { 697pbxt_src_configure() {
586 mysql_init_vars 698 mysql_init_vars
587 699
588 pushd "${WORKDIR}/pbxt-${PBXT_VERSION}" &>/dev/null 700 pushd "${WORKDIR}/pbxt-${PBXT_VERSION}" &>/dev/null
589 701
590 einfo "Reconfiguring dir '${PWD}'" 702 einfo "Reconfiguring dir '${PWD}'"
591 AT_GNUCONF_UPDATE="yes" eautoreconf 703 eautoreconf
592 704
593 local myconf="" 705 local myconf=""
594 myconf="${myconf} --with-mysql=${S} --libdir=${MY_LIBDIR}" 706 myconf="${myconf} --with-mysql=${S} --libdir=/usr/$(get_libdir)"
595 use debug && myconf="${myconf} --with-debug=full" 707 use debug && myconf="${myconf} --with-debug=full"
596 # TODO: is it safe/needed to use econf here ?
597 ./configure ${myconf} || die "Problem configuring PBXT storage engine" 708 econf ${myconf} || die "Problem configuring PBXT storage engine"
598} 709}
599 710
600pbxt_src_compile() { 711pbxt_src_compile() {
712
601 # Be backwards compatible for now 713 # Be backwards compatible for now
602 if [[ $EAPI != 2 ]]; then 714 if [[ $EAPI != 2 ]]; then
603 pbxt_src_configure 715 pbxt_src_configure
604 fi 716 fi
605 # TODO: is it safe/needed to use emake here ? 717 # TODO: is it safe/needed to use emake here ?
634 fi 746 fi
635 fi 747 fi
636 748
637 # Check for USE flag problems in pkg_setup 749 # Check for USE flag problems in pkg_setup
638 if use static && use ssl ; then 750 if use static && use ssl ; then
639 eerror "MySQL does not support being built statically with SSL support enabled!"
640 die "MySQL does not support being built statically with SSL support enabled!" 751 M="MySQL does not support being built statically with SSL support enabled!"
752 eerror "${M}"
753 die "${M}"
641 fi 754 fi
642 755
643 if ! mysql_version_is_at_least "5.0" \ 756 if ! mysql_version_is_at_least "5.0" \
644 && use raid \ 757 && use raid \
645 && use static ; then 758 && use static ; then
647 eerror "with RAID support enabled." 760 eerror "with RAID support enabled."
648 die "USE flags 'raid' and 'static' conflict!" 761 die "USE flags 'raid' and 'static' conflict!"
649 fi 762 fi
650 763
651 if mysql_version_is_at_least "4.1.3" \ 764 if mysql_version_is_at_least "4.1.3" \
652 && ( use cluster || use extraengine ) \ 765 && ( use cluster || use extraengine || use embedded ) \
653 && use minimal ; then 766 && use minimal ; then
654 eerror "USE flags 'cluster' and 'extraengine' conflict with 'minimal' USE flag!"
655 die "USE flags 'cluster' and 'extraengine' conflict with 'minimal' USE flag!" 767 M="USE flags 'cluster', 'extraengine', 'embedded' conflict with 'minimal' USE flag!"
768 eerror "${M}"
769 die "${M}"
656 fi 770 fi
657 771
658 # Bug #290570 fun. Upstream made us need a fairly new GCC4.
659 if mysql_version_is_at_least "5.0.83" ; then 772 if mysql_version_is_at_least "5.1" \
773 && xtradb_patch_available \
774 && use xtradb \
775 && use embedded ; then
776 M="USE flags 'xtradb' and 'embedded' conflict and cause build failures"
777 eerror "${M}"
778 die "${M}"
779 fi
780
781 # Bug #290570, 284946, 307251
782 # Upstream changes made us need a fairly new GCC4.
783 # But only for 5.0.8[3-6]!
784 if mysql_version_is_at_least "5.0.83" && ! mysql_version_is_at_least 5.0.87 ; then
660 GCC_VER=$(gcc-version) 785 GCC_VER=$(gcc-version)
661 case ${GCC_VER} in 786 case ${GCC_VER} in
662 2*|3*|4.0|4.1|4.2) die "Active GCC too old! Must have at least GCC4.3" ;; 787 2*|3*|4.0|4.1|4.2)
788 eerror "Some releases of MySQL required a very new GCC, and then"
789 eerror "later release relaxed that requirement again. Either pick a"
790 eerror "MySQL >=5.0.87, or use a newer GCC."
791 die "Active GCC too old!" ;;
663 esac 792 esac
664 fi 793 fi
665 794
666 # This should come after all of the die statements 795 # This should come after all of the die statements
667 enewgroup mysql 60 || die "problem adding 'mysql' group" 796 enewgroup mysql 60 || die "problem adding 'mysql' group"
717 mysql_mv_patches 846 mysql_mv_patches
718 # And apply 847 # And apply
719 epatch 848 epatch
720 849
721 # last -fPIC fixup, per bug #305873 850 # last -fPIC fixup, per bug #305873
722 i="${S}"/storage/innodb_plugin/plug.in 851 i="${S}"/storage/innodb_plugin/plug.in
723 [ -f "${i}" ] && sed -i -e '/CFLAGS/s,-prefer-non-pic,,g' "${i}" 852 [ -f "${i}" ] && sed -i -e '/CFLAGS/s,-prefer-non-pic,,g' "${i}"
724 853
725 # Additional checks, remove bundled zlib 854 # Additional checks, remove bundled zlib (Cluster needs this, for static
855 # memory management in zlib, leave available for Cluster)
856 if [[ "${PN}" != "mysql-cluster" ]] ; then
726 rm -f "${S}/zlib/"*.[ch] 857 rm -f "${S}/zlib/"*.[ch]
727 sed -i -e "s/zlib\/Makefile dnl/dnl zlib\/Makefile/" "${S}/configure.in" 858 sed -i -e "s/zlib\/Makefile dnl/dnl zlib\/Makefile/" "${S}/configure.in"
859 fi
728 rm -f "scripts/mysqlbug" 860 rm -f "scripts/mysqlbug"
729 861
730 # Make charsets install in the right place 862 # Make charsets install in the right place
731 find . -name 'Makefile.am' \ 863 find . -name 'Makefile.am' \
732 -exec sed --in-place -e 's!$(pkgdatadir)!'${MY_SHAREDSTATEDIR}'!g' {} \; 864 -exec sed --in-place -e 's!$(pkgdatadir)!'${MY_SHAREDSTATEDIR}'!g' {} \;
743 fi 875 fi
744 876
745 local rebuilddirlist d 877 local rebuilddirlist d
746 878
747 if xtradb_patch_available && use xtradb ; then 879 if xtradb_patch_available && use xtradb ; then
748 einfo "Replacing InnoDB with Percona XtraDB" 880 einfo "Adding storage engine: Percona XtraDB (replacing InnoDB)"
749 pushd "${S}"/storage 881 pushd "${S}"/storage >/dev/null
750 i="innobase" 882 i="innobase"
751 o="${WORKDIR}/storage-${i}.mysql-upstream" 883 o="${WORKDIR}/storage-${i}.mysql-upstream"
752 # Have we been here already? 884 # Have we been here already?
753 [ -d "${o}" ] && rm -f "${i}" 885 [ -d "${o}" ] && rm -f "${i}"
754 # Or maybe we haven't 886 # Or maybe we haven't
755 [ -d "${i}" -a ! -d "${o}" ] && mv "${i}" "${o}" 887 [ -d "${i}" -a ! -d "${o}" ] && mv "${i}" "${o}"
756 cp -ra "${WORKDIR}/${XTRADB_P}" "${i}" 888 cp -ral "${WORKDIR}/${XTRADB_P}" "${i}"
757 popd 889 popd >/dev/null
890 fi
891
892 if pbxt_available && [[ "${PBXT_NEWSTYLE}" == "1" ]] && use pbxt ; then
893 einfo "Adding storage engine: PBXT"
894 pushd "${S}"/storage >/dev/null
895 i='pbxt'
896 [ -d "${i}" ] && rm -rf "${i}"
897 cp -ral "${WORKDIR}/${PBXT_P}" "${i}"
898 popd >/dev/null
758 fi 899 fi
759 900
760 if mysql_version_is_at_least "5.1.12" ; then 901 if mysql_version_is_at_least "5.1.12" ; then
761 rebuilddirlist="." 902 rebuilddirlist="."
762 # This does not seem to be needed presently. robbat2 2010/02/23 903 # This does not seem to be needed presently. robbat2 2010/02/23
771 fi 912 fi
772 913
773 for d in ${rebuilddirlist} ; do 914 for d in ${rebuilddirlist} ; do
774 einfo "Reconfiguring dir '${d}'" 915 einfo "Reconfiguring dir '${d}'"
775 pushd "${d}" &>/dev/null 916 pushd "${d}" &>/dev/null
776 AT_GNUCONF_UPDATE="yes" eautoreconf 917 eautoreconf
777 popd &>/dev/null 918 popd &>/dev/null
778 done 919 done
779 920
780 if mysql_check_version_range "4.1 to 5.0.99.99" \ 921 if mysql_check_version_range "4.1 to 5.0.99.99" \
781 && use berkdb ; then 922 && use berkdb ; then
836 && CXXFLAGS="${CXXFLAGS} -fno-implicit-templates" 977 && CXXFLAGS="${CXXFLAGS} -fno-implicit-templates"
837 export CXXFLAGS 978 export CXXFLAGS
838 979
839 # bug #283926, with GCC4.4, this is required to get correct behavior. 980 # bug #283926, with GCC4.4, this is required to get correct behavior.
840 append-flags -fno-strict-aliasing 981 append-flags -fno-strict-aliasing
982
983 # bug #335185, with GCC4.5 on x86 only, omit-frame-pointer causes a
984 # mis-compile
985 use x86 && [[ "$(gcc-version)" == "4.5" ]] && \
986 append-flags -fno-omit-frame-pointer && \
987 filter-flags -fomit-frame-pointer
841 988
842 econf \ 989 econf \
843 --libexecdir="/usr/sbin" \ 990 --libexecdir="/usr/sbin" \
844 --sysconfdir="${MY_SYSCONFDIR}" \ 991 --sysconfdir="${MY_SYSCONFDIR}" \
845 --localstatedir="${MY_LOCALSTATEDIR}" \ 992 --localstatedir="${MY_LOCALSTATEDIR}" \
856 # TODO: Move this before autoreconf !!! 1003 # TODO: Move this before autoreconf !!!
857 find . -type f -name Makefile -print0 \ 1004 find . -type f -name Makefile -print0 \
858 | xargs -0 -n100 sed -i \ 1005 | xargs -0 -n100 sed -i \
859 -e 's|^pkglibdir *= *$(libdir)/mysql|pkglibdir = $(libdir)|;s|^pkgincludedir *= *$(includedir)/mysql|pkgincludedir = $(includedir)|' 1006 -e 's|^pkglibdir *= *$(libdir)/mysql|pkglibdir = $(libdir)|;s|^pkgincludedir *= *$(includedir)/mysql|pkgincludedir = $(includedir)|'
860 1007
861 if [[ $EAPI == 2 ]]; then 1008 if [[ $EAPI == 2 ]] && [[ "${PBXT_NEWSTYLE}" != "1" ]]; then
862 pbxt_patch_available && use pbxt && pbxt_src_configure 1009 pbxt_patch_available && use pbxt && pbxt_src_configure
863 fi 1010 fi
864} 1011}
865 1012
866# @FUNCTION: mysql_src_compile 1013# @FUNCTION: mysql_src_compile
873 0 | 1) mysql_src_configure ;; 1020 0 | 1) mysql_src_configure ;;
874 esac 1021 esac
875 1022
876 emake || die "emake failed" 1023 emake || die "emake failed"
877 1024
1025 if [[ "${PBXT_NEWSTYLE}" != "1" ]]; then
878 pbxt_patch_available && use pbxt && pbxt_src_compile 1026 pbxt_patch_available && use pbxt && pbxt_src_compile
1027 fi
879} 1028}
880 1029
881# @FUNCTION: mysql_src_install 1030# @FUNCTION: mysql_src_install
882# @DESCRIPTION: 1031# @DESCRIPTION:
883# Install mysql. 1032# Install mysql.
889 DESTDIR="${D}" \ 1038 DESTDIR="${D}" \
890 benchdir_root="${MY_SHAREDSTATEDIR}" \ 1039 benchdir_root="${MY_SHAREDSTATEDIR}" \
891 testroot="${MY_SHAREDSTATEDIR}" \ 1040 testroot="${MY_SHAREDSTATEDIR}" \
892 || die "emake install failed" 1041 || die "emake install failed"
893 1042
1043 if [[ "${PBXT_NEWSTYLE}" != "1" ]]; then
894 pbxt_patch_available && use pbxt && pbxt_src_install 1044 pbxt_patch_available && use pbxt && pbxt_src_install
1045 fi
895 1046
896 # Convenience links 1047 # Convenience links
897 einfo "Making Convenience links for mysqlcheck multi-call binary" 1048 einfo "Making Convenience links for mysqlcheck multi-call binary"
898 dosym "/usr/bin/mysqlcheck" "/usr/bin/mysqlanalyze" 1049 dosym "/usr/bin/mysqlcheck" "/usr/bin/mysqlanalyze"
899 dosym "/usr/bin/mysqlcheck" "/usr/bin/mysqlrepair" 1050 dosym "/usr/bin/mysqlcheck" "/usr/bin/mysqlrepair"
923 if use !test ; then 1074 if use !test ; then
924 rm -rf "${D}"/${MY_SHAREDSTATEDIR}/mysql-test 1075 rm -rf "${D}"/${MY_SHAREDSTATEDIR}/mysql-test
925 fi 1076 fi
926 1077
927 # Configuration stuff 1078 # Configuration stuff
928 if mysql_version_is_at_least "4.1" ; then 1079 case ${MYSQL_PV_MAJOR} in
929 mysql_mycnf_version="4.1"
930 else
931 mysql_mycnf_version="4.0" 1080 3*|4.0) mysql_mycnf_version="4.0" ;;
932 fi 1081 4.[1-9]|5.0) mysql_mycnf_version="4.1" ;;
933 einfo "Building default my.cnf" 1082 5.[1-9]|6*|7*) mysql_mycnf_version="5.1" ;;
1083 esac
1084 einfo "Building default my.cnf (${mysql_mycnf_version})"
934 insinto "${MY_SYSCONFDIR}" 1085 insinto "${MY_SYSCONFDIR}"
935 doins scripts/mysqlaccess.conf 1086 doins scripts/mysqlaccess.conf
1087 mycnf_src="my.cnf-${mysql_mycnf_version}"
936 sed -e "s!@DATADIR@!${MY_DATADIR}!g" \ 1088 sed -e "s!@DATADIR@!${MY_DATADIR}!g" \
937 "${FILESDIR}/my.cnf-${mysql_mycnf_version}" \ 1089 "${FILESDIR}/${mycnf_src}" \
938 > "${TMPDIR}/my.cnf.ok" 1090 > "${TMPDIR}/my.cnf.ok"
939 if mysql_version_is_at_least "4.1" && use latin1 ; then 1091 if use latin1 ; then
940 sed -e "s|utf8|latin1|g" -i "${TMPDIR}/my.cnf.ok" 1092 sed -i \
1093 -e "/character-set/s|utf8|latin1|g" \
1094 "${TMPDIR}/my.cnf.ok"
941 fi 1095 fi
942 newins "${TMPDIR}/my.cnf.ok" my.cnf 1096 newins "${TMPDIR}/my.cnf.ok" my.cnf
943 1097
944 # Minimal builds don't have the MySQL server 1098 # Minimal builds don't have the MySQL server
945 if ! use minimal ; then 1099 if ! use minimal ; then
1036 1190
1037 einfo 1191 einfo
1038 elog "You might want to run:" 1192 elog "You might want to run:"
1039 elog "\"emerge --config =${CATEGORY}/${PF}\"" 1193 elog "\"emerge --config =${CATEGORY}/${PF}\""
1040 elog "if this is a new install." 1194 elog "if this is a new install."
1195 einfo
1196
1197 einfo
1198 elog "If you are upgrading major versions, you should run the"
1199 elog "mysql_upgrade tool."
1041 einfo 1200 einfo
1042 fi 1201 fi
1043 1202
1044 if pbxt_available && use pbxt ; then 1203 if pbxt_available && use pbxt ; then
1045 # TODO: explain it better 1204 # TODO: explain it better
1100 fi 1259 fi
1101 fi 1260 fi
1102 1261
1103 local pwd1="a" 1262 local pwd1="a"
1104 local pwd2="b" 1263 local pwd2="b"
1264 local MYSQL_ROOT_PASSWORD=''
1105 local maxtry=5 1265 local maxtry=15
1266
1267 if [ -z "${MYSQL_ROOT_PASSWORD}" -a -f "${ROOT}/root/.my.cnf" ]; then
1268 MYSQL_ROOT_PASSWORD="$(sed -n -e '/^password=/s,^password=,,gp' "${ROOT}/root/.my.cnf")"
1269 fi
1106 1270
1107 if [[ -d "${ROOT}/${MY_DATADIR}/mysql" ]] ; then 1271 if [[ -d "${ROOT}/${MY_DATADIR}/mysql" ]] ; then
1108 ewarn "You have already a MySQL database in place." 1272 ewarn "You have already a MySQL database in place."
1109 ewarn "(${ROOT}/${MY_DATADIR}/*)" 1273 ewarn "(${ROOT}/${MY_DATADIR}/*)"
1110 ewarn "Please rename or delete it if you wish to replace it." 1274 ewarn "Please rename or delete it if you wish to replace it."
1113 1277
1114 # Bug #213475 - MySQL _will_ object strenously if your machine is named 1278 # Bug #213475 - MySQL _will_ object strenously if your machine is named
1115 # localhost. Also causes weird failures. 1279 # localhost. Also causes weird failures.
1116 [[ "${HOSTNAME}" == "localhost" ]] && die "Your machine must NOT be named localhost" 1280 [[ "${HOSTNAME}" == "localhost" ]] && die "Your machine must NOT be named localhost"
1117 1281
1118 einfo "Creating the mysql database and setting proper" 1282 if [ -z "${MYSQL_ROOT_PASSWORD}" ]; then
1119 einfo "permissions on it ..."
1120 1283
1121 einfo "Insert a password for the mysql 'root' user" 1284 einfo "Please provide a password for the mysql 'root' user now,"
1285 einfo "or in the MYSQL_ROOT_PASSWORD env var."
1122 ewarn "Avoid [\"'\\_%] characters in the password" 1286 ewarn "Avoid [\"'\\_%] characters in the password"
1123 read -rsp " >" pwd1 ; echo 1287 read -rsp " >" pwd1 ; echo
1124 1288
1125 einfo "Retype the password" 1289 einfo "Retype the password"
1126 read -rsp " >" pwd2 ; echo 1290 read -rsp " >" pwd2 ; echo
1127 1291
1128 if [[ "x$pwd1" != "x$pwd2" ]] ; then 1292 if [[ "x$pwd1" != "x$pwd2" ]] ; then
1129 die "Passwords are not the same" 1293 die "Passwords are not the same"
1294 fi
1295 MYSQL_ROOT_PASSWORD="${pwd1}"
1296 unset pwd1 pwd2
1130 fi 1297 fi
1131 1298
1132 local options="" 1299 local options=""
1133 local sqltmp="$(emktemp)" 1300 local sqltmp="$(emktemp)"
1134 1301
1148 [[ -f "${ROOT}/${MY_DATADIR}/mysql/user.frm" ]] \ 1315 [[ -f "${ROOT}/${MY_DATADIR}/mysql/user.frm" ]] \
1149 || die "MySQL databases not installed" 1316 || die "MySQL databases not installed"
1150 chown -R mysql:mysql "${ROOT}/${MY_DATADIR}" 2>/dev/null 1317 chown -R mysql:mysql "${ROOT}/${MY_DATADIR}" 2>/dev/null
1151 chmod 0750 "${ROOT}/${MY_DATADIR}" 2>/dev/null 1318 chmod 0750 "${ROOT}/${MY_DATADIR}" 2>/dev/null
1152 1319
1320 # Figure out which options we need to disable to do the setup
1321 helpfile="${TMPDIR}/mysqld-help"
1322 ${ROOT}/usr/sbin/mysqld --verbose --help >"${helpfile}" 2>/dev/null
1323 for opt in grant-tables host-cache name-resolve networking slave-start bdb \
1324 federated innodb ssl log-bin relay-log slow-query-log external-locking \
1325 ndbcluster \
1326 ; do
1327 optexp="--(skip-)?${opt}" optfull="--skip-${opt}"
1328 egrep -sq -- "${optexp}" "${helpfile}" && options="${options} ${optfull}"
1329 done
1330 # But some options changed names
1331 egrep -sq external-locking "${helpfile}" && \
1332 options="${options/skip-locking/skip-external-locking}"
1333
1153 if mysql_version_is_at_least "4.1.3" ; then 1334 if mysql_version_is_at_least "4.1.3" ; then
1154 options="--skip-ndbcluster"
1155
1156 # Filling timezones, see 1335 # Filling timezones, see
1157 # http://dev.mysql.com/doc/mysql/en/time-zone-support.html 1336 # http://dev.mysql.com/doc/mysql/en/time-zone-support.html
1158 "${ROOT}/usr/bin/mysql_tzinfo_to_sql" "${ROOT}/usr/share/zoneinfo" > "${sqltmp}" 2>/dev/null 1337 "${ROOT}/usr/bin/mysql_tzinfo_to_sql" "${ROOT}/usr/share/zoneinfo" > "${sqltmp}" 2>/dev/null
1159 1338
1160 if [[ -r "${help_tables}" ]] ; then 1339 if [[ -r "${help_tables}" ]] ; then
1161 cat "${help_tables}" >> "${sqltmp}" 1340 cat "${help_tables}" >> "${sqltmp}"
1162 fi 1341 fi
1163 fi 1342 fi
1343
1344 einfo "Creating the mysql database and setting proper"
1345 einfo "permissions on it ..."
1164 1346
1165 local socket="${ROOT}/var/run/mysqld/mysqld${RANDOM}.sock" 1347 local socket="${ROOT}/var/run/mysqld/mysqld${RANDOM}.sock"
1166 local pidfile="${ROOT}/var/run/mysqld/mysqld${RANDOM}.pid" 1348 local pidfile="${ROOT}/var/run/mysqld/mysqld${RANDOM}.pid"
1167 local mysqld="${ROOT}/usr/sbin/mysqld \ 1349 local mysqld="${ROOT}/usr/sbin/mysqld \
1168 ${options} \ 1350 ${options} \
1169 --user=mysql \ 1351 --user=mysql \
1170 --skip-grant-tables \
1171 --basedir=${ROOT}/usr \ 1352 --basedir=${ROOT}/usr \
1172 --datadir=${ROOT}/${MY_DATADIR} \ 1353 --datadir=${ROOT}/${MY_DATADIR} \
1173 --skip-innodb \
1174 --skip-bdb \
1175 --skip-networking \
1176 --max_allowed_packet=8M \ 1354 --max_allowed_packet=8M \
1177 --net_buffer_length=16K \ 1355 --net_buffer_length=16K \
1356 --default-storage-engine=MyISAM \
1178 --socket=${socket} \ 1357 --socket=${socket} \
1179 --pid-file=${pidfile}" 1358 --pid-file=${pidfile}"
1359 #einfo "About to start mysqld: ${mysqld}"
1360 ebegin "Starting mysqld"
1180 ${mysqld} & 1361 ${mysqld} &
1362 rc=$?
1181 while ! [[ -S "${socket}" || "${maxtry}" -lt 1 ]] ; do 1363 while ! [[ -S "${socket}" || "${maxtry}" -lt 1 ]] ; do
1182 maxtry=$((${maxtry}-1)) 1364 maxtry=$((${maxtry}-1))
1183 echo -n "." 1365 echo -n "."
1184 sleep 1 1366 sleep 1
1185 done 1367 done
1368 eend $rc
1186 1369
1370 if ! [[ -S "${socket}" ]]; then
1371 die "Completely failed to start up mysqld with: ${mysqld}"
1372 fi
1373
1374 ebegin "Setting root password"
1187 # Do this from memory, as we don't want clear text passwords in temp files 1375 # Do this from memory, as we don't want clear text passwords in temp files
1188 local sql="UPDATE mysql.user SET Password = PASSWORD('${pwd1}') WHERE USER='root'" 1376 local sql="UPDATE mysql.user SET Password = PASSWORD('${MYSQL_ROOT_PASSWORD}') WHERE USER='root'"
1189 "${ROOT}/usr/bin/mysql" \ 1377 "${ROOT}/usr/bin/mysql" \
1190 --socket=${socket} \ 1378 --socket=${socket} \
1191 -hlocalhost \ 1379 -hlocalhost \
1192 -e "${sql}" 1380 -e "${sql}"
1381 eend $?
1193 1382
1194 einfo "Loading \"zoneinfo\", this step may require a few seconds ..." 1383 ebegin "Loading \"zoneinfo\", this step may require a few seconds ..."
1195
1196 "${ROOT}/usr/bin/mysql" \ 1384 "${ROOT}/usr/bin/mysql" \
1197 --socket=${socket} \ 1385 --socket=${socket} \
1198 -hlocalhost \ 1386 -hlocalhost \
1199 -uroot \ 1387 -uroot \
1200 -p"${pwd1}" \ 1388 -p"${MYSQL_ROOT_PASSWORD}" \
1201 mysql < "${sqltmp}" 1389 mysql < "${sqltmp}"
1390 rc=$?
1391 eend $?
1392 [ $rc -ne 0 ] && ewarn "Failed to load zoneinfo!"
1202 1393
1203 # Stop the server and cleanup 1394 # Stop the server and cleanup
1395 einfo "Stopping the server ..."
1204 kill $(< "${pidfile}" ) 1396 kill $(< "${pidfile}" )
1205 rm -f "${sqltmp}" 1397 rm -f "${sqltmp}"
1206 einfo "Stopping the server ..."
1207 wait %1 1398 wait %1
1208 einfo "Done" 1399 einfo "Done"
1209} 1400}
1210 1401
1211# @FUNCTION: mysql_pkg_postrm 1402# @FUNCTION: mysql_pkg_postrm

Legend:
Removed from v.1.137  
changed lines
  Added in v.1.153

  ViewVC Help
Powered by ViewVC 1.1.20