/[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.2 Revision 1.16
1# Copyright 1999-2011 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.2 2011/07/20 14:23:11 jmbsvicetto Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/mysql-v2.eclass,v 1.16 2012/05/06 10:42:36 heroxbd 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>
13# The mysql-v2.eclass is the base eclass to build the mysql and 13# The mysql-v2.eclass is the base eclass to build the mysql and
14# alternative projects (mariadb) ebuilds. 14# alternative projects (mariadb) ebuilds.
15# This eclass uses the mysql-autotools and mysql-cmake eclasses for the 15# This eclass uses the mysql-autotools and mysql-cmake eclasses for the
16# specific bits related to the build system. 16# specific bits related to the build system.
17# It provides the src_unpack, src_prepare, src_configure, src_compile, 17# It provides the src_unpack, src_prepare, src_configure, src_compile,
18# scr_install, pkg_preinst, pkg_postinst, pkg_config and pkg_postrm 18# src_install, pkg_preinst, pkg_postinst, pkg_config and pkg_postrm
19# phase hooks. 19# phase hooks.
20 20
21# @ECLASS-VARIABLE: BUILD 21# @ECLASS-VARIABLE: BUILD
22# @DESCRIPTION:
22# @DESCRIPTION: Build type of the mysql version 23# Build type of the mysql version
23# The default value is autotools
24: ${BUILD:=autotools} 24: ${BUILD:=autotools}
25 25
26case ${BUILD} in 26case ${BUILD} in
27 "cmake") 27 "cmake")
28 BUILD_INHERIT="mysql-cmake" 28 BUILD_INHERIT="mysql-cmake"
39esac 39esac
40 40
41MYSQL_EXTRAS="" 41MYSQL_EXTRAS=""
42 42
43# @ECLASS-VARIABLE: MYSQL_EXTRAS_VER 43# @ECLASS-VARIABLE: MYSQL_EXTRAS_VER
44# @DESCRIPTION:
44# @DESCRIPTION: The version of the MYSQL_EXTRAS repo to use to build mysql 45# The version of the MYSQL_EXTRAS repo to use to build mysql
46# Use "none" to disable it's use
45[[ "${MY_EXTRAS_VER}" == "live" ]] && MYSQL_EXTRAS="git-2" 47[[ "${MY_EXTRAS_VER}" == "live" ]] && MYSQL_EXTRAS="git-2"
46 48
47inherit eutils flag-o-matic gnuconfig ${MYSQL_EXTRAS} ${BUILD_INHERIT} mysql_fx versionator toolchain-funcs 49inherit eutils flag-o-matic gnuconfig ${MYSQL_EXTRAS} ${BUILD_INHERIT} mysql_fx versionator toolchain-funcs
48 50
49# 51#
50# Supported EAPI versions and export functions 52# Supported EAPI versions and export functions
51# 53#
52 54
53case "${EAPI:-0}" in 55case "${EAPI:-0}" in
54 2|3|4) ;; 56 3|4) ;;
55 *) die "Unsupported EAPI: ${EAPI}" ;; 57 *) die "Unsupported EAPI: ${EAPI}" ;;
56esac 58esac
57 59
58EXPORT_FUNCTIONS pkg_setup src_unpack src_prepare src_configure src_compile src_install 60EXPORT_FUNCTIONS pkg_setup src_unpack src_prepare src_configure src_compile src_install pkg_preinst pkg_postinst pkg_config pkg_postrm
59 61
60# 62#
61# VARIABLES: 63# VARIABLES:
62# 64#
63 65
75# @DESCRIPTION: 77# @DESCRIPTION:
76# 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
77# major version. Upgrades that change major version should always run 79# major version. Upgrades that change major version should always run
78# mysql_upgrade. 80# mysql_upgrade.
79MYSQL_PV_MAJOR="$(get_version_component_range 1-2 ${PV})" 81MYSQL_PV_MAJOR="$(get_version_component_range 1-2 ${PV})"
80
81# Cluster is a special case...
82if [[ "${PN}" == "mysql-cluster" ]]; then
83 case $PV in
84 6.1*|7.0*|7.1*) MYSQL_PV_MAJOR=5.1 ;;
85 esac
86fi
87
88 82
89# @ECLASS-VARIABLE: MYSQL_VERSION_ID 83# @ECLASS-VARIABLE: MYSQL_VERSION_ID
90# @DESCRIPTION: 84# @DESCRIPTION:
91# MYSQL_VERSION_ID will be: 85# MYSQL_VERSION_ID will be:
92# 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]
106MYSQL_VERSION_ID=${MYSQL_VERSION_ID##"0"} 100MYSQL_VERSION_ID=${MYSQL_VERSION_ID##"0"}
107 101
108# 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
109mysql_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"
110 104
111# @ECLASS-VARIABLE: MYSQL_COMMUNITY_FEATURES
112# @DESCRIPTION:
113# Specifiy if community features are available. Possible values are 1 (yes)
114# and 0 (no).
115# Community features are available in mysql-community
116# AND in the re-merged mysql-5.0.82 and newer
117if [ "${PN}" == "mysql-community" -o "${PN}" == "mariadb" ]; then
118 MYSQL_COMMUNITY_FEATURES=1
119elif [ "${MYSQL_PV_MAJOR}" == "5.1" ]; then
120 MYSQL_COMMUNITY_FEATURES=1
121elif mysql_version_is_at_least "5.4.0"; then
122 MYSQL_COMMUNITY_FEATURES=1
123else
124 MYSQL_COMMUNITY_FEATURES=0
125fi
126
127
128# @ECLASS-VARIABLE: XTRADB_VER 105# @ECLASS-VARIABLE: XTRADB_VER
129# @DEFAULT_UNSET 106# @DEFAULT_UNSET
130# @DESCRIPTION: 107# @DESCRIPTION:
131# Version of the XTRADB storage engine 108# Version of the XTRADB storage engine
132 109
137 114
138# Work out the default SERVER_URI correctly 115# Work out the default SERVER_URI correctly
139if [ -z "${SERVER_URI}" ]; then 116if [ -z "${SERVER_URI}" ]; then
140 [ -z "${MY_PV}" ] && MY_PV="${PV//_/-}" 117 [ -z "${MY_PV}" ] && MY_PV="${PV//_/-}"
141 if [ "${PN}" == "mariadb" ]; then 118 if [ "${PN}" == "mariadb" ]; then
142 MARIA_FULL_PV="$(replace_version_separator 3 '-' ${PV})" 119 MARIA_FULL_PV="$(replace_version_separator 3 '-' ${MY_PV})"
143 MARIA_FULL_P="${PN}-${MARIA_FULL_PV}" 120 MARIA_FULL_P="${PN}-${MARIA_FULL_PV}"
144 SERVER_URI=" 121 SERVER_URI="
145 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
146 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
147 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
148 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
149 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
150 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
151 " 128 "
152 # The community and cluster builds are on the mirrors
153 elif [[ "${MYSQL_COMMUNITY_FEATURES}" == "1" || ${PN} == "mysql-cluster" ]] ; then
154 if [[ "${PN}" == "mysql-cluster" ]] ; then
155 URI_DIR="MySQL-Cluster"
156 URI_FILE="mysql-cluster-gpl"
157 else 129 else
158 URI_DIR="MySQL" 130 URI_DIR="MySQL"
159 URI_FILE="mysql" 131 URI_FILE="mysql"
160 fi
161 URI_A="${URI_FILE}-${MY_PV}.tar.gz" 132 URI_A="${URI_FILE}-${MY_PV}.tar.gz"
162 MIRROR_PV=$(get_version_component_range 1-2 ${PV}) 133 MIRROR_PV=$(get_version_component_range 1-2 ${PV})
163 # Recently upstream switched to an archive site, and not on mirrors 134 # Recently upstream switched to an archive site, and not on mirrors
164 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}
165 mirror://mysql/Downloads/${URI_DIR}-${PV%.*}/${URI_A}" 136 mirror://mysql/Downloads/${URI_DIR}-${PV%.*}/${URI_A}"
166 # The (old) enterprise source is on the primary site only
167 elif [ "${PN}" == "mysql" ]; then
168 SERVER_URI="ftp://ftp.mysql.com/pub/mysql/src/mysql-${MY_PV}.tar.gz"
169 fi 137 fi
170fi 138fi
171 139
172# Define correct SRC_URIs 140# Define correct SRC_URIs
173SRC_URI="${SERVER_URI}" 141SRC_URI="${SERVER_URI}"
174 142
175# Gentoo patches to MySQL 143# Gentoo patches to MySQL
176[[ ${MY_EXTRAS_VER} != live ]] \ 144[[ ${MY_EXTRAS_VER} != live ]] && [[ ${MY_EXTRAS_VER} != none ]] \
177&& SRC_URI="${SRC_URI} 145&& SRC_URI="${SRC_URI}
178 mirror://gentoo/mysql-extras-${MY_EXTRAS_VER}.tar.bz2 146 mirror://gentoo/mysql-extras-${MY_EXTRAS_VER}.tar.bz2
179 http://g3nt8.org/patches/mysql-extras-${MY_EXTRAS_VER}.tar.bz2 147 http://g3nt8.org/patches/mysql-extras-${MY_EXTRAS_VER}.tar.bz2
180 http://dev.gentoo.org/~robbat2/distfiles/mysql-extras-${MY_EXTRAS_VER}.tar.bz2" 148 http://dev.gentoo.org/~robbat2/distfiles/mysql-extras-${MY_EXTRAS_VER}.tar.bz2
149 http://dev.gentoo.org/~jmbsvicetto/distfiles/mysql-extras-${MY_EXTRAS_VER}.tar.bz2"
181 150
182DESCRIPTION="A fast, multi-threaded, multi-user SQL database server." 151DESCRIPTION="A fast, multi-threaded, multi-user SQL database server."
183HOMEPAGE="http://www.mysql.com/" 152HOMEPAGE="http://www.mysql.com/"
184if [[ "${PN}" == "mariadb" ]]; then 153if [[ "${PN}" == "mariadb" ]]; then
185 HOMEPAGE="http://mariadb.org/" 154 HOMEPAGE="http://mariadb.org/"
186 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."
187fi
188if [[ "${PN}" == "mysql-community" ]]; then
189 DESCRIPTION="${DESCRIPTION} (obsolete, move to dev-db/mysql)"
190fi 156fi
191LICENSE="GPL-2" 157LICENSE="GPL-2"
192SLOT="0" 158SLOT="0"
193 159
194case "${BUILD}" in 160case "${BUILD}" in
201esac 167esac
202 168
203IUSE="${IUSE} latin1" 169IUSE="${IUSE} latin1"
204 170
205IUSE="${IUSE} extraengine" 171IUSE="${IUSE} extraengine"
206if [[ ${PN} != "mysql-cluster" ]] ; then
207 IUSE="${IUSE} cluster" 172IUSE="${IUSE} cluster"
208fi
209 173
210IUSE="${IUSE} max-idx-128" 174IUSE="${IUSE} max-idx-128"
211IUSE="${IUSE} berkdb" 175IUSE="${IUSE} berkdb"
212
213[[ ${MYSQL_COMMUNITY_FEATURES} == 1 ]] \
214&& IUSE="${IUSE} +community profiling" 176IUSE="${IUSE} +community profiling"
215 177
216[[ ${PN} == "mariadb" ]] \ 178[[ ${PN} == "mariadb" ]] \
217&& IUSE="${IUSE} libevent" 179&& IUSE="${IUSE} libevent"
218 180
219[[ ${PN} == "mariadb" ]] \ 181[[ ${PN} == "mariadb" ]] \
222 184
223[[ ${PN} == "mariadb" ]] \ 185[[ ${PN} == "mariadb" ]] \
224&& mysql_version_is_at_least "5.2.5" \ 186&& mysql_version_is_at_least "5.2.5" \
225&& IUSE="${IUSE} sphinx" 187&& IUSE="${IUSE} sphinx"
226 188
189mysql_version_is_at_least "5.5.7" \
190&& IUSE="${IUSE} systemtap"
227 191
228# 192#
229# DEPENDENCIES: 193# DEPENDENCIES:
230# 194#
231 195
232# Be warned, *DEPEND are version-dependant 196# Be warned, *DEPEND are version-dependant
233# These are used for both runtime and compiletime 197# These are used for both runtime and compiletime
234DEPEND=" 198DEPEND="
235 ssl? ( >=dev-libs/openssl-0.9.6d ) 199 ssl? ( >=dev-libs/openssl-0.9.6d )
236 userland_GNU? ( sys-process/procps ) 200 kernel_linux? ( sys-process/procps )
237 >=sys-apps/sed-4 201 >=sys-apps/sed-4
238 >=sys-apps/texinfo-4.7-r1 202 >=sys-apps/texinfo-4.7-r1
239 >=sys-libs/readline-4.1 203 >=sys-libs/readline-4.1
240 >=sys-libs/zlib-1.2.3 204 >=sys-libs/zlib-1.2.3
241" 205"
242 206
243[[ ${PN} == mariadb ]] \ 207[[ ${PN} == mariadb ]] \
244&& DEPEND="${DEPEND} libevent? ( >=dev-libs/libevent-1.4 )" 208&& DEPEND="${DEPEND} libevent? ( >=dev-libs/libevent-1.4 )"
245 209
246# 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
247for i in "mysql" "mysql-community" "mysql-cluster" "mariadb" ; do 211for i in "mysql" "mariadb" ; do
248 [[ ${i} == ${PN} ]] || 212 [[ ${i} == ${PN} ]] ||
249 DEPEND="${DEPEND} !dev-db/${i}" 213 DEPEND="${DEPEND} !dev-db/${i}"
250done 214done
251 215
216# prefix: first need to implement something for #196294
252RDEPEND="${DEPEND} 217RDEPEND="${DEPEND}
253 !minimal? ( dev-db/mysql-init-scripts ) 218 !minimal? ( !prefix? ( dev-db/mysql-init-scripts ) )
254 selinux? ( sec-policy/selinux-mysql ) 219 selinux? ( sec-policy/selinux-mysql )
220"
221
222DEPEND="${DEPEND}
223 virtual/yacc
255" 224"
256 225
257DEPEND="${DEPEND} static? ( || ( sys-libs/ncurses[static-libs] <=sys-libs/ncurses-5.7-r3 ) )" 226DEPEND="${DEPEND} static? ( || ( sys-libs/ncurses[static-libs] <=sys-libs/ncurses-5.7-r3 ) )"
258 227
259# compile-time-only 228# compile-time-only
269 238
270[[ "${PN}" == "mariadb" ]] \ 239[[ "${PN}" == "mariadb" ]] \
271&& mysql_version_is_at_least "5.2.5" \ 240&& mysql_version_is_at_least "5.2.5" \
272&& DEPEND="${DEPEND} sphinx? ( app-misc/sphinx )" 241&& DEPEND="${DEPEND} sphinx? ( app-misc/sphinx )"
273 242
243mysql_version_is_at_least "5.5.7" \
244&& DEPEND="${DEPEND} systemtap? ( >=dev-util/systemtap-1.3 )"
245
274# 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
275PDEPEND="perl? ( >=dev-perl/DBD-mysql-2.9004 )" 247PDEPEND="perl? ( >=dev-perl/DBD-mysql-2.9004 )"
276 248
277# For other stuff to bring us in 249# For other stuff to bring us in
278PDEPEND="${PDEPEND} =virtual/mysql-${MYSQL_PV_MAJOR}" 250PDEPEND="${PDEPEND} =virtual/mysql-${MYSQL_PV_MAJOR}"
279
280 251
281# 252#
282# External patches 253# External patches
283# 254#
284 255
311 282
312 PBXT_P="pbxt-${PBXT_VERSION}" 283 PBXT_P="pbxt-${PBXT_VERSION}"
313 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"
314 SRC_URI="${SRC_URI} pbxt? ( ${PBXT_SRC_URI} )" 285 SRC_URI="${SRC_URI} pbxt? ( ${PBXT_SRC_URI} )"
315 286
287fi
288
316 # 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
317 # vs. built outside the dir 290# vs. built outside the dir
318 if pbxt_available; then 291if pbxt_available; then
319 292
320 IUSE="${IUSE} pbxt" 293 IUSE="${IUSE} pbxt"
321 PBXT_NEWSTYLE=1 294 PBXT_NEWSTYLE=1
322 fi
323fi 295fi
324 296
325if xtradb_patch_available; then 297if xtradb_patch_available; then
326 XTRADB_P="percona-xtradb-${XTRADB_VER}" 298 XTRADB_P="percona-xtradb-${XTRADB_VER}"
327 XTRADB_SRC_URI_COMMON="${PERCONA_VER}/source/${XTRADB_P}.tar.gz" 299 XTRADB_SRC_URI_COMMON="${PERCONA_VER}/source/${XTRADB_P}.tar.gz"
372# warn about deprecated features 344# warn about deprecated features
373mysql-v2_pkg_setup() { 345mysql-v2_pkg_setup() {
374 346
375 if has test ${FEATURES} ; then 347 if has test ${FEATURES} ; then
376 if ! use minimal ; then 348 if ! use minimal ; then
377 if [[ $UID -eq 0 ]]; then 349 if ! has userpriv ${FEATURES} ; then
378 eerror "Testing with FEATURES=-userpriv is no longer supported by upstream. Tests MUST be run as non-root." 350 eerror "Testing with FEATURES=-userpriv is no longer supported by upstream. Tests MUST be run as non-root."
379 fi 351 fi
380 fi 352 fi
381 fi 353 fi
382 354
410 382
411 # This should come after all of the die statements 383 # This should come after all of the die statements
412 enewgroup mysql 60 || die "problem adding 'mysql' group" 384 enewgroup mysql 60 || die "problem adding 'mysql' group"
413 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"
414 386
415 if [ "${PN}" != "mysql-cluster" ] && use cluster; then 387 if use cluster; then
416 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"
417 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"
418 ewarn "future, it will be disabled from building." 390 ewarn "future, it will be disabled from building."
419 ewarn ""
420 ewarn "If you need NDB support, you should instead move to the new"
421 ewarn "mysql-cluster package that represents that upstream NDB"
422 ewarn "development."
423 fi 391 fi
424} 392}
425 393
426# @FUNCTION: mysql-v2_src_unpack 394# @FUNCTION: mysql-v2_src_unpack
427# @DESCRIPTION: 395# @DESCRIPTION:
486 454
487 # Make sure the vars are correctly initialized 455 # Make sure the vars are correctly initialized
488 mysql_init_vars 456 mysql_init_vars
489 457
490 # Check FEATURES="collision-protect" before removing this 458 # Check FEATURES="collision-protect" before removing this
491 [[ -d "${ROOT}/var/log/mysql" ]] || install -d -m0750 -o mysql -g mysql "${ROOT}${MY_LOGDIR}" 459 [[ -d "${ROOT}${MY_LOGDIR}" ]] || install -d -m0750 -o mysql -g mysql "${ROOT}${MY_LOGDIR}"
492 460
493 # Secure the logfiles 461 # Secure the logfiles
494 touch "${ROOT}${MY_LOGDIR}"/mysql.{log,err} 462 touch "${ROOT}${MY_LOGDIR}"/mysql.{log,err}
495 chown mysql:mysql "${ROOT}${MY_LOGDIR}"/mysql* 463 chown mysql:mysql "${ROOT}${MY_LOGDIR}"/mysql*
496 chmod 0660 "${ROOT}${MY_LOGDIR}"/mysql* 464 chmod 0660 "${ROOT}${MY_LOGDIR}"/mysql*
588 556
589 local pwd1="a" 557 local pwd1="a"
590 local pwd2="b" 558 local pwd2="b"
591 local maxtry=15 559 local maxtry=15
592 560
593 if [ -z "${MYSQL_ROOT_PASSWORD}" -a -f "${ROOT}/root/.my.cnf" ]; then 561 if [ -z "${MYSQL_ROOT_PASSWORD}" -a -f "${EROOT}/root/.my.cnf" ]; then
594 MYSQL_ROOT_PASSWORD="$(sed -n -e '/^password=/s,^password=,,gp' "${ROOT}/root/.my.cnf")" 562 MYSQL_ROOT_PASSWORD="$(sed -n -e '/^password=/s,^password=,,gp' "${EROOT}/root/.my.cnf")"
595 fi 563 fi
596 564
597 if [[ -d "${ROOT}/${MY_DATADIR}/mysql" ]] ; then 565 if [[ -d "${ROOT}/${MY_DATADIR}/mysql" ]] ; then
598 ewarn "You have already a MySQL database in place." 566 ewarn "You have already a MySQL database in place."
599 ewarn "(${ROOT}/${MY_DATADIR}/*)" 567 ewarn "(${ROOT}/${MY_DATADIR}/*)"
630 && cp "${help_tables}" "${TMPDIR}/fill_help_tables.sql" \ 598 && cp "${help_tables}" "${TMPDIR}/fill_help_tables.sql" \
631 || touch "${TMPDIR}/fill_help_tables.sql" 599 || touch "${TMPDIR}/fill_help_tables.sql"
632 help_tables="${TMPDIR}/fill_help_tables.sql" 600 help_tables="${TMPDIR}/fill_help_tables.sql"
633 601
634 pushd "${TMPDIR}" &>/dev/null 602 pushd "${TMPDIR}" &>/dev/null
635 "${ROOT}/usr/bin/mysql_install_db" >"${TMPDIR}"/mysql_install_db.log 2>&1 603 "${EROOT}/usr/bin/mysql_install_db" "--basedir=${EPREFIX}/usr" >"${TMPDIR}"/mysql_install_db.log 2>&1
636 if [ $? -ne 0 ]; then 604 if [ $? -ne 0 ]; then
637 grep -B5 -A999 -i "ERROR" "${TMPDIR}"/mysql_install_db.log 1>&2 605 grep -B5 -A999 -i "ERROR" "${TMPDIR}"/mysql_install_db.log 1>&2
638 die "Failed to run mysql_install_db. Please review /var/log/mysql/mysqld.err AND ${TMPDIR}/mysql_install_db.log" 606 die "Failed to run mysql_install_db. Please review ${EPREFIX}/var/log/mysql/mysqld.err AND ${TMPDIR}/mysql_install_db.log"
639 fi 607 fi
640 popd &>/dev/null 608 popd &>/dev/null
641 [[ -f "${ROOT}/${MY_DATADIR}/mysql/user.frm" ]] \ 609 [[ -f "${ROOT}/${MY_DATADIR}/mysql/user.frm" ]] \
642 || die "MySQL databases not installed" 610 || die "MySQL databases not installed"
643 chown -R mysql:mysql "${ROOT}/${MY_DATADIR}" 2>/dev/null 611 chown -R mysql:mysql "${ROOT}/${MY_DATADIR}" 2>/dev/null
644 chmod 0750 "${ROOT}/${MY_DATADIR}" 2>/dev/null 612 chmod 0750 "${ROOT}/${MY_DATADIR}" 2>/dev/null
645 613
646 # Figure out which options we need to disable to do the setup 614 # Figure out which options we need to disable to do the setup
647 helpfile="${TMPDIR}/mysqld-help" 615 helpfile="${TMPDIR}/mysqld-help"
648 ${ROOT}/usr/sbin/mysqld --verbose --help >"${helpfile}" 2>/dev/null 616 ${EROOT}/usr/sbin/mysqld --verbose --help >"${helpfile}" 2>/dev/null
649 for opt in grant-tables host-cache name-resolve networking slave-start bdb \ 617 for opt in grant-tables host-cache name-resolve networking slave-start bdb \
650 federated innodb ssl log-bin relay-log slow-query-log external-locking \ 618 federated innodb ssl log-bin relay-log slow-query-log external-locking \
651 ndbcluster \ 619 ndbcluster \
652 ; do 620 ; do
653 optexp="--(skip-)?${opt}" optfull="--skip-${opt}" 621 optexp="--(skip-)?${opt}" optfull="--skip-${opt}"
657 egrep -sq external-locking "${helpfile}" && \ 625 egrep -sq external-locking "${helpfile}" && \
658 options="${options/skip-locking/skip-external-locking}" 626 options="${options/skip-locking/skip-external-locking}"
659 627
660 # Filling timezones, see 628 # Filling timezones, see
661 # http://dev.mysql.com/doc/mysql/en/time-zone-support.html 629 # http://dev.mysql.com/doc/mysql/en/time-zone-support.html
662 "${ROOT}/usr/bin/mysql_tzinfo_to_sql" "${ROOT}/usr/share/zoneinfo" > "${sqltmp}" 2>/dev/null 630 "${EROOT}/usr/bin/mysql_tzinfo_to_sql" "${EROOT}/usr/share/zoneinfo" > "${sqltmp}" 2>/dev/null
663 631
664 if [[ -r "${help_tables}" ]] ; then 632 if [[ -r "${help_tables}" ]] ; then
665 cat "${help_tables}" >> "${sqltmp}" 633 cat "${help_tables}" >> "${sqltmp}"
666 fi 634 fi
667 635
668 einfo "Creating the mysql database and setting proper" 636 einfo "Creating the mysql database and setting proper"
669 einfo "permissions on it ..." 637 einfo "permissions on it ..."
670 638
671 local socket="${ROOT}/var/run/mysqld/mysqld${RANDOM}.sock" 639 local socket="${EROOT}/var/run/mysqld/mysqld${RANDOM}.sock"
672 local pidfile="${ROOT}/var/run/mysqld/mysqld${RANDOM}.pid" 640 local pidfile="${EROOT}/var/run/mysqld/mysqld${RANDOM}.pid"
673 local mysqld="${ROOT}/usr/sbin/mysqld \ 641 local mysqld="${EROOT}/usr/sbin/mysqld \
674 ${options} \ 642 ${options} \
675 --user=mysql \ 643 --user=mysql \
676 --basedir=${ROOT}/usr \ 644 --basedir=${EROOT}/usr \
677 --datadir=${ROOT}/${MY_DATADIR} \ 645 --datadir=${ROOT}/${MY_DATADIR} \
678 --max_allowed_packet=8M \ 646 --max_allowed_packet=8M \
679 --net_buffer_length=16K \ 647 --net_buffer_length=16K \
680 --default-storage-engine=MyISAM \ 648 --default-storage-engine=MyISAM \
681 --socket=${socket} \ 649 --socket=${socket} \
696 fi 664 fi
697 665
698 ebegin "Setting root password" 666 ebegin "Setting root password"
699 # Do this from memory, as we don't want clear text passwords in temp files 667 # Do this from memory, as we don't want clear text passwords in temp files
700 local sql="UPDATE mysql.user SET Password = PASSWORD('${MYSQL_ROOT_PASSWORD}') WHERE USER='root'" 668 local sql="UPDATE mysql.user SET Password = PASSWORD('${MYSQL_ROOT_PASSWORD}') WHERE USER='root'"
701 "${ROOT}/usr/bin/mysql" \ 669 "${EROOT}/usr/bin/mysql" \
702 --socket=${socket} \ 670 --socket=${socket} \
703 -hlocalhost \ 671 -hlocalhost \
704 -e "${sql}" 672 -e "${sql}"
705 eend $? 673 eend $?
706 674
707 ebegin "Loading \"zoneinfo\", this step may require a few seconds ..." 675 ebegin "Loading \"zoneinfo\", this step may require a few seconds ..."
708 "${ROOT}/usr/bin/mysql" \ 676 "${EROOT}/usr/bin/mysql" \
709 --socket=${socket} \ 677 --socket=${socket} \
710 -hlocalhost \ 678 -hlocalhost \
711 -uroot \ 679 -uroot \
712 -p"${MYSQL_ROOT_PASSWORD}" \ 680 -p"${MYSQL_ROOT_PASSWORD}" \
713 mysql < "${sqltmp}" 681 mysql < "${sqltmp}"
726# @FUNCTION: mysql-v2_pkg_postrm 694# @FUNCTION: mysql-v2_pkg_postrm
727# @DESCRIPTION: 695# @DESCRIPTION:
728# Remove mysql symlinks. 696# Remove mysql symlinks.
729mysql-v2_pkg_postrm() { 697mysql-v2_pkg_postrm() {
730 698
731 : # mysql_lib_symlinks "${D}" 699 : # mysql_lib_symlinks "${ED}"
732} 700}

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.16

  ViewVC Help
Powered by ViewVC 1.1.20