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

Contents of /eclass/mysql.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.102 - (hide annotations) (download)
Sat Nov 29 02:30:43 2008 UTC (5 years, 9 months ago) by robbat2
Branch: MAIN
Changes since 1.101: +5 -5 lines
Move the hostname==localhost check from pkg_setup to pkg_config and src_test instead, to enable building in binpkg hosts more easily.

1 chtekk 1.69 # Copyright 1999-2007 Gentoo Foundation
2 vivo 1.1 # Distributed under the terms of the GNU General Public License v2
3 robbat2 1.102 # $Header: /var/cvsroot/gentoo-x86/eclass/mysql.eclass,v 1.101 2008/11/20 20:44:33 robbat2 Exp $
4 vivo 1.1
5 vivo 1.54 # Author: Francesco Riosa (Retired) <vivo@gentoo.org>
6 robbat2 1.86 # Maintainer: MySQL Team <mysql-bugs@gentoo.org>
7     # - Luca Longinotti <chtekk@gentoo.org>
8     # - Robin H. Johnson <robbat2@gentoo.org>
9 chtekk 1.30
10 vivo 1.59 WANT_AUTOCONF="latest"
11     WANT_AUTOMAKE="latest"
12 chtekk 1.69
13 vivo 1.55 inherit eutils flag-o-matic gnuconfig autotools mysql_fx
14 vivo 1.54
15 vivo 1.59 # Shorten the path because the socket path length must be shorter than 107 chars
16     # and we will run a mysql server during test phase
17     S="${WORKDIR}/mysql"
18    
19 vivo 1.65 [[ "${MY_EXTRAS_VER}" == "latest" ]] && MY_EXTRAS_VER="20070108"
20 robbat2 1.86 if [[ "${MY_EXTRAS_VER}" == "live" ]]; then
21 robbat2 1.87 EGIT_PROJECT=mysql-extras
22 robbat2 1.86 EGIT_REPO_URI="git://git.overlays.gentoo.org/proj/mysql-extras.git"
23     inherit git
24     fi
25 vivo 1.54
26 vivo 1.60 if [[ ${PR#r} -lt 60 ]] ; then
27     IS_BITKEEPER=0
28     elif [[ ${PR#r} -lt 90 ]] ; then
29     IS_BITKEEPER=60
30     else
31     IS_BITKEEPER=90
32     fi
33    
34     # MYSQL_VERSION_ID will be:
35     # major * 10e6 + minor * 10e4 + micro * 10e2 + gentoo revision number, all [0..99]
36     # This is an important part, because many of the choices the MySQL ebuild will do
37     # depend on this variable.
38     # In particular, the code below transforms a $PVR like "5.0.18-r3" in "5001803"
39 robbat2 1.88 # We also strip off upstream's trailing letter that they use to respin tarballs
40 chtekk 1.69
41 vivo 1.60 MYSQL_VERSION_ID=""
42 robbat2 1.88 tpv="${PV%[a-z]}"
43     tpv=( ${tpv//[-._]/ } ) ; tpv[3]="${PVR:${#PV}}" ; tpv[3]="${tpv[3]##*-r}"
44 vivo 1.60 for vatom in 0 1 2 3 ; do
45     # pad to length 2
46     tpv[${vatom}]="00${tpv[${vatom}]}"
47     MYSQL_VERSION_ID="${MYSQL_VERSION_ID}${tpv[${vatom}]:0-2}"
48     done
49     # strip leading "0" (otherwise it's considered an octal number by BASH)
50     MYSQL_VERSION_ID=${MYSQL_VERSION_ID##"0"}
51    
52     # Be warned, *DEPEND are version-dependant
53 robbat2 1.90 # These are used for both runtime and compiletime
54 vivo 1.60 DEPEND="ssl? ( >=dev-libs/openssl-0.9.6d )
55     userland_GNU? ( sys-process/procps )
56     >=sys-apps/sed-4
57     >=sys-apps/texinfo-4.7-r1
58     >=sys-libs/readline-4.1
59 chtekk 1.69 >=sys-libs/zlib-1.2.3"
60 vivo 1.60
61 chtekk 1.69 # Having different flavours at the same time is not a good idea
62     for i in "" "-community" ; do
63 vivo 1.60 [[ "${i}" == ${PN#mysql} ]] ||
64     DEPEND="${DEPEND} !dev-db/mysql${i}"
65     done
66    
67 robbat2 1.90 RDEPEND="${DEPEND}
68     !minimal? ( dev-db/mysql-init-scripts )
69     selinux? ( sec-policy/selinux-mysql )"
70    
71     # compile-time-only
72 vivo 1.60 mysql_version_is_at_least "5.1" \
73     || DEPEND="${DEPEND} berkdb? ( sys-apps/ed )"
74    
75 robbat2 1.90 # compile-time-only
76 chtekk 1.69 mysql_version_is_at_least "5.1.12" \
77     && DEPEND="${DEPEND} innodb? ( >=dev-util/cmake-2.4.3 )"
78    
79 robbat2 1.90 # BitKeeper dependency, compile-time only
80     [[ ${IS_BITKEEPER} -eq 90 ]] && DEPEND="${DEPEND} dev-util/bk_client"
81    
82    
83 vivo 1.60 # dev-perl/DBD-mysql is needed by some scripts installed by MySQL
84     PDEPEND="perl? ( >=dev-perl/DBD-mysql-2.9004 )"
85    
86 robbat2 1.81 # Work out the default SERVER_URI correctly
87     if [ -z "${SERVER_URI}" ]; then
88     # The community build is on the mirrors
89     if [ "${PN}" == "mysql-community" ]; then
90     SERVER_URI="mirror://mysql/Downloads/MySQL-${PV%.*}/mysql-${PV//_/-}.tar.gz"
91     # The enterprise source is on the primary site only
92     elif [ "${PN}" == "mysql" ]; then
93     SERVER_URI="ftp://ftp.mysql.com/pub/mysql/src/mysql-${PV//_/-}.tar.gz"
94     fi
95     fi
96    
97 vivo 1.60 # Define correct SRC_URIs
98 robbat2 1.86 SRC_URI="${SERVER_URI}"
99    
100     [[ ${MY_EXTRAS_VER} != live ]] && SRC_URI="${SRC_URI}
101 robbat2 1.73 mirror://gentoo/mysql-extras-${MY_EXTRAS_VER}.tar.bz2
102 chtekk 1.69 http://g3nt8.org/patches/mysql-extras-${MY_EXTRAS_VER}.tar.bz2"
103 vivo 1.60 mysql_version_is_at_least "5.1.12" \
104     && [[ -n "${PBXT_VERSION}" ]] \
105     && SRC_URI="${SRC_URI} pbxt? ( mirror://sourceforge/pbxt/pbxt-${PBXT_VERSION}.tar.gz )"
106    
107     DESCRIPTION="A fast, multi-threaded, multi-user SQL database server."
108     HOMEPAGE="http://www.mysql.com/"
109     LICENSE="GPL-2"
110 chtekk 1.69 SLOT="0"
111 vivo 1.60 IUSE="big-tables debug embedded minimal perl selinux ssl static"
112    
113     mysql_version_is_at_least "4.1" \
114     && IUSE="${IUSE} latin1"
115    
116     mysql_version_is_at_least "4.1.3" \
117     && IUSE="${IUSE} cluster extraengine"
118    
119     mysql_version_is_at_least "5.0" \
120     || IUSE="${IUSE} raid"
121    
122     mysql_version_is_at_least "5.0.18" \
123     && IUSE="${IUSE} max-idx-128"
124    
125     mysql_version_is_at_least "5.1" \
126     && IUSE="${IUSE} innodb"
127    
128     mysql_version_is_at_least "5.1" \
129     || IUSE="${IUSE} berkdb"
130    
131     mysql_version_is_at_least "5.1.12" \
132     && IUSE="${IUSE} pbxt"
133    
134 vivo 1.26 EXPORT_FUNCTIONS pkg_setup src_unpack src_compile src_install pkg_preinst \
135 swegener 1.36 pkg_postinst pkg_config pkg_postrm
136 vivo 1.1
137 vivo 1.37 #
138     # HELPER FUNCTIONS:
139     #
140    
141 vivo 1.51 bitkeeper_fetch() {
142 vivo 1.56 local reposuf
143     if [[ -z "${1}" ]] ; then
144     local tpv
145     tpv=( ${PV//[-._]/ } )
146     reposuf="mysql-${tpv[0]}.${tpv[1]}"
147     else
148     reposuf="${1}"
149     fi
150 chtekk 1.69 einfo "Using '${reposuf}' repository."
151 vivo 1.56 local repo_uri="bk://mysql.bkbits.net/${reposuf}"
152 chtekk 1.69 ## -- ebk_store_dir: bitkeeper sources store directory
153 vivo 1.51 local ebk_store_dir="${PORTAGE_ACTUAL_DISTDIR-${DISTDIR}}/bk-src"
154 chtekk 1.69 ## -- ebk_fetch_cmd: bitkeeper fetch command
155 vivo 1.51 # always fetch the latest revision, use -r<revision> if a specified revision is wanted
156     # hint: does not work
157     local ebk_fetch_cmd="sfioball"
158 chtekk 1.69 ## -- ebk_update_cmd: bitkeeper update command
159 vivo 1.51 local ebk_update_cmd="update"
160    
161 chtekk 1.69 # addread "/etc/bitkeeper"
162 vivo 1.51 addwrite "${ebk_store_dir}"
163    
164 chtekk 1.69 if [[ ! -d "${ebk_store_dir}" ]] ; then
165     debug-print "${FUNCNAME}: initial checkout, creating bitkeeper directory ..."
166     mkdir -p "${ebk_store_dir}" || die "BK: couldn't mkdir ${ebk_store_dir}"
167 vivo 1.51 fi
168    
169 chtekk 1.69 pushd "${ebk_store_dir}" || die "BK: couldn't chdir to ${ebk_store_dir}"
170 vivo 1.51
171 vivo 1.56 local wc_path=${reposuf}
172 vivo 1.51
173 chtekk 1.69 if [[ ! -d "${wc_path}" ]] ; then
174 vivo 1.51 local options="-r+"
175 chtekk 1.69
176     # first checkout
177     einfo "bitkeeper checkout start -->"
178     einfo " repository: ${repo_uri}"
179    
180     ${ebk_fetch_cmd} ${options} "${repo_uri}" "${wc_path}" \
181     || die "BK: couldn't fetch from ${repo_uri}"
182 vivo 1.51 else
183 chtekk 1.69 if [[ ! -d "${wc_path}/BK" ]] ; then
184 vivo 1.51 popd
185 chtekk 1.69 die "Looks like ${wc_path} is not a bitkeeper path"
186 vivo 1.51 fi
187    
188     # update working copy
189     einfo "bitkeeper update start -->"
190 chtekk 1.69 einfo " repository: ${repo_uri}"
191 vivo 1.51
192     ${ebk_update_cmd} "${repo_uri}" "${wc_path}" \
193 chtekk 1.69 || die "BK: couldn't update from ${repo_uri} to ${wc_path}"
194 vivo 1.51 fi
195    
196 chtekk 1.69 einfo " working copy: ${wc_path}"
197 vivo 1.51 cd "${wc_path}"
198 chtekk 1.69 rsync -rlpgo --exclude="BK/" . "${S}" || die "BK: couldn't export to ${S}"
199 swegener 1.53
200 vivo 1.51 echo
201     popd
202     }
203    
204     mysql_disable_test() {
205     local testname="${1}" ; shift
206     local reason="${@}"
207     local mysql_disable_file="${S}/mysql-test/t/disabled.def"
208     echo ${testname} : ${reason} >> "${mysql_disable_file}"
209 chtekk 1.69 ewarn "test '${testname}' disabled: '${reason}'"
210 vivo 1.51 }
211    
212 vivo 1.8 # void mysql_init_vars()
213     #
214 chtekk 1.30 # Initialize global variables
215     # 2005-11-19 <vivo@gentoo.org>
216    
217 vivo 1.8 mysql_init_vars() {
218 chtekk 1.69 MY_SHAREDSTATEDIR=${MY_SHAREDSTATEDIR="/usr/share/mysql"}
219     MY_SYSCONFDIR=${MY_SYSCONFDIR="/etc/mysql"}
220     MY_LIBDIR=${MY_LIBDIR="/usr/$(get_libdir)/mysql"}
221     MY_LOCALSTATEDIR=${MY_LOCALSTATEDIR="/var/lib/mysql"}
222     MY_LOGDIR=${MY_LOGDIR="/var/log/mysql"}
223     MY_INCLUDEDIR=${MY_INCLUDEDIR="/usr/include/mysql"}
224 vivo 1.8
225 robbat2 1.75 if [[ -z "${MY_DATADIR}" ]] ; then
226     MY_DATADIR=""
227 chtekk 1.30 if [[ -f "${MY_SYSCONFDIR}/my.cnf" ]] ; then
228 robbat2 1.75 MY_DATADIR=`"my_print_defaults" mysqld 2>/dev/null \
229 vivo 1.26 | sed -ne '/datadir/s|^--datadir=||p' \
230     | tail -n1`
231 robbat2 1.75 if [[ -z "${MY_DATADIR}" ]] ; then
232     MY_DATADIR=`grep ^datadir "${MY_SYSCONFDIR}/my.cnf" \
233 robbat2 1.89 | sed -e 's/.*=\s*//' \
234     | tail -n1`
235 vivo 1.8 fi
236     fi
237 robbat2 1.75 if [[ -z "${MY_DATADIR}" ]] ; then
238     MY_DATADIR="${MY_LOCALSTATEDIR}"
239     einfo "Using default MY_DATADIR"
240 vivo 1.8 fi
241 robbat2 1.75 elog "MySQL MY_DATADIR is ${MY_DATADIR}"
242 vivo 1.8
243 chtekk 1.30 if [[ -z "${PREVIOUS_DATADIR}" ]] ; then
244 robbat2 1.75 if [[ -e "${MY_DATADIR}" ]] ; then
245 robbat2 1.95 # If you get this and you're wondering about it, see bug #207636
246     elog "MySQL datadir found in ${MY_DATADIR}"
247     elog "A new one will not be created."
248 vivo 1.8 PREVIOUS_DATADIR="yes"
249     else
250     PREVIOUS_DATADIR="no"
251     fi
252 chtekk 1.30 export PREVIOUS_DATADIR
253 vivo 1.8 fi
254     fi
255    
256 vivo 1.55 MY_SOURCEDIR=${SERVER_URI##*/}
257     MY_SOURCEDIR=${MY_SOURCEDIR%.tar*}
258    
259 chtekk 1.69 export MY_SHAREDSTATEDIR MY_SYSCONFDIR
260 vivo 1.8 export MY_LIBDIR MY_LOCALSTATEDIR MY_LOGDIR
261 robbat2 1.75 export MY_INCLUDEDIR MY_DATADIR MY_SOURCEDIR
262 vivo 1.8 }
263    
264 vivo 1.37 configure_minimal() {
265 vivo 1.46 # These are things we exclude from a minimal build, please
266     # note that the server actually does get built and installed,
267     # but we then delete it before packaging.
268 robbat2 1.84 local minimal_exclude_list="server embedded-server extra-tools innodb bench berkeley-db row-based-replication readline"
269 vivo 1.37
270 vivo 1.46 for i in ${minimal_exclude_list} ; do
271     myconf="${myconf} --without-${i}"
272     done
273     myconf="${myconf} --with-extra-charsets=none"
274     myconf="${myconf} --enable-local-infile"
275 vivo 1.47
276 cardoe 1.67 if use static ; then
277 vivo 1.47 myconf="${myconf} --with-client-ldflags=-all-static"
278 robbat2 1.80 myconf="${myconf} --disable-shared --with-pic"
279 vivo 1.47 else
280     myconf="${myconf} --enable-shared --enable-static"
281     fi
282 chtekk 1.50
283 chtekk 1.69 if mysql_version_is_at_least "4.1" && ! use latin1 ; then
284 chtekk 1.50 myconf="${myconf} --with-charset=utf8"
285     myconf="${myconf} --with-collation=utf8_general_ci"
286     else
287     myconf="${myconf} --with-charset=latin1"
288     myconf="${myconf} --with-collation=latin1_swedish_ci"
289     fi
290 vivo 1.37 }
291    
292     configure_common() {
293 chtekk 1.39 myconf="${myconf} $(use_with big-tables)"
294 vivo 1.37 myconf="${myconf} --enable-local-infile"
295     myconf="${myconf} --with-extra-charsets=all"
296     myconf="${myconf} --with-mysqld-user=mysql"
297 chtekk 1.39 myconf="${myconf} --with-server"
298 vivo 1.43 myconf="${myconf} --with-unix-socket-path=/var/run/mysqld/mysqld.sock"
299 vivo 1.37 myconf="${myconf} --without-libwrap"
300 chtekk 1.39
301 cardoe 1.67 if use static ; then
302 vivo 1.37 myconf="${myconf} --with-mysqld-ldflags=-all-static"
303     myconf="${myconf} --with-client-ldflags=-all-static"
304 robbat2 1.80 myconf="${myconf} --disable-shared --with-pic"
305 vivo 1.37 else
306     myconf="${myconf} --enable-shared --enable-static"
307     fi
308    
309 cardoe 1.67 if use debug ; then
310 vivo 1.37 myconf="${myconf} --with-debug=full"
311     else
312     myconf="${myconf} --without-debug"
313 vivo 1.51 mysql_version_is_at_least "4.1.3" \
314 cardoe 1.67 && use cluster \
315 vivo 1.37 && myconf="${myconf} --without-ndb-debug"
316     fi
317 chtekk 1.39
318 robbat2 1.100 if [ -n "${MYSQL_DEFAULT_CHARSET}" -a -n "${MYSQL_DEFAULT_COLLATION}" ]; then
319     ewarn "You are using a custom charset of ${MYSQL_DEFAULT_CHARSET}"
320     ewarn "and a collation of ${MYSQL_DEFAULT_COLLATION}."
321     ewarn "You MUST file bugs without these variables set."
322     myconf="${myconf} --with-charset=${MYSQL_DEFAULT_CHARSET}"
323     myconf="${myconf} --with-collation=${MYSQL_DEFAULT_COLLATION}"
324     elif mysql_version_is_at_least "4.1" && ! use latin1 ; then
325     myconf="${myconf} --with-charset=utf8"
326     myconf="${myconf} --with-collation=utf8_general_ci"
327     else
328     myconf="${myconf} --with-charset=latin1"
329     myconf="${myconf} --with-collation=latin1_swedish_ci"
330 vivo 1.37 fi
331 chtekk 1.39
332 cardoe 1.67 if use embedded ; then
333 vivo 1.37 myconf="${myconf} --with-embedded-privilege-control"
334     myconf="${myconf} --with-embedded-server"
335     else
336     myconf="${myconf} --without-embedded-privilege-control"
337     myconf="${myconf} --without-embedded-server"
338     fi
339    
340     }
341    
342     configure_40_41_50() {
343     myconf="${myconf} $(use_with perl bench)"
344     myconf="${myconf} --enable-assembler"
345     myconf="${myconf} --with-extra-tools"
346     myconf="${myconf} --with-innodb"
347     myconf="${myconf} --without-readline"
348 vivo 1.51 mysql_version_is_at_least "5.0" || myconf="${myconf} $(use_with raid)"
349 vivo 1.37
350 chtekk 1.69 # --with-vio is not needed anymore, it's on by default and
351     # has been removed from configure
352 cardoe 1.67 if use ssl ; then
353 chtekk 1.69 mysql_version_is_at_least "5.0.4" || myconf="${myconf} --with-vio"
354 vivo 1.62 fi
355    
356     if mysql_version_is_at_least "5.1.11" ; then
357     myconf="${myconf} $(use_with ssl)"
358 vivo 1.37 else
359 vivo 1.62 myconf="${myconf} $(use_with ssl openssl)"
360 vivo 1.37 fi
361 robbat2 1.98
362     if mysql_version_is_at_least "5.0.60" ; then
363     if use berkdb ; then
364     elog "Berkeley DB support was disabled due to build failures"
365     elog "on multiple arches, go to a version earlier than 5.0.60"
366     elog "if you want it again. Gentoo bug #224067."
367     fi
368     myconf="${myconf} --without-berkeley-db"
369     elif use berkdb ; then
370 chtekk 1.77 # The following fix is due to a bug with bdb on SPARC's. See:
371     # http://www.geocrawler.com/mail/msg.php3?msg_id=4754814&list=8
372     # It comes down to non-64-bit safety problems.
373 cardoe 1.76 if use alpha || use amd64 || use hppa || use mips || use sparc ; then
374 chtekk 1.77 elog "Berkeley DB support was disabled due to compatibility issues on this arch"
375 cardoe 1.76 myconf="${myconf} --without-berkeley-db"
376     else
377 chtekk 1.39 myconf="${myconf} --with-berkeley-db=./bdb"
378     fi
379 cardoe 1.76 else
380     myconf="${myconf} --without-berkeley-db"
381 vivo 1.37 fi
382    
383 vivo 1.51 if mysql_version_is_at_least "4.1.3" ; then
384 vivo 1.37 myconf="${myconf} --with-geometry"
385     myconf="${myconf} $(use_with cluster ndbcluster)"
386     fi
387    
388 cardoe 1.67 if mysql_version_is_at_least "4.1.3" && use extraengine ; then
389 vivo 1.37 # http://dev.mysql.com/doc/mysql/en/archive-storage-engine.html
390     myconf="${myconf} --with-archive-storage-engine"
391    
392     # http://dev.mysql.com/doc/mysql/en/csv-storage-engine.html
393     myconf="${myconf} --with-csv-storage-engine"
394    
395     # http://dev.mysql.com/doc/mysql/en/blackhole-storage-engine.html
396     myconf="${myconf} --with-blackhole-storage-engine"
397    
398     # http://dev.mysql.com/doc/mysql/en/federated-storage-engine.html
399     # http://dev.mysql.com/doc/mysql/en/federated-description.html
400     # http://dev.mysql.com/doc/mysql/en/federated-limitations.html
401 vivo 1.51 if mysql_version_is_at_least "5.0.3" ; then
402 chtekk 1.39 elog "Before using the Federated storage engine, please be sure to read"
403     elog "http://dev.mysql.com/doc/mysql/en/federated-limitations.html"
404 vivo 1.37 myconf="${myconf} --with-federated-storage-engine"
405     fi
406     fi
407    
408 robbat2 1.99 if [ "${PN}" == "mysql-community" ]; then
409     myconf="${myconf} --enable-community-features"
410     fi
411    
412 vivo 1.51 mysql_version_is_at_least "5.0.18" \
413 cardoe 1.67 && use max-idx-128 \
414 vivo 1.37 && myconf="${myconf} --with-max-indexes=128"
415     }
416    
417 chtekk 1.39 configure_51() {
418 chtekk 1.40 # TODO: !!!! readd --without-readline
419 chtekk 1.39 # the failure depend upon config/ac-macros/readline.m4 checking into
420 vivo 1.37 # readline.h instead of history.h
421     myconf="${myconf} $(use_with ssl)"
422     myconf="${myconf} --enable-assembler"
423     myconf="${myconf} --with-geometry"
424     myconf="${myconf} --with-readline"
425     myconf="${myconf} --with-row-based-replication"
426     myconf="${myconf} --with-zlib=/usr/$(get_libdir)"
427     myconf="${myconf} --without-pstack"
428 cardoe 1.67 use max-idx-128 && myconf="${myconf} --with-max-indexes=128"
429 chtekk 1.39
430 vivo 1.37 # 5.1 introduces a new way to manage storage engines (plugins)
431     # like configuration=none
432     local plugins="csv,myisam,myisammrg,heap"
433 cardoe 1.67 if use extraengine ; then
434 vivo 1.37 # like configuration=max-no-ndb, archive and example removed in 5.1.11
435 vivo 1.52 plugins="${plugins},archive,blackhole,example,federated,partition"
436 vivo 1.37
437 chtekk 1.39 elog "Before using the Federated storage engine, please be sure to read"
438     elog "http://dev.mysql.com/doc/refman/5.1/en/federated-limitations.html"
439 vivo 1.37 fi
440    
441 cardoe 1.67 if use innodb ; then
442 vivo 1.37 plugins="${plugins},innobase"
443     fi
444    
445     # like configuration=max-no-ndb
446 cardoe 1.67 if use cluster ; then
447 vivo 1.37 plugins="${plugins},ndbcluster"
448     myconf="${myconf} --with-ndb-binlog"
449     fi
450    
451 vivo 1.58 if mysql_version_is_at_least "5.2" ; then
452     plugins="${plugins},falcon"
453     fi
454    
455 vivo 1.37 myconf="${myconf} --with-plugins=${plugins}"
456     }
457    
458 vivo 1.51 pbxt_src_compile() {
459     mysql_init_vars
460    
461     pushd "${WORKDIR}/pbxt-${PBXT_VERSION}" &>/dev/null
462    
463     einfo "Reconfiguring dir '${PWD}'"
464     AT_GNUCONF_UPDATE="yes" eautoreconf
465    
466 chtekk 1.69 local myconf=""
467     myconf="${myconf} --with-mysql=${S} --libdir=${D}/${MY_LIBDIR}"
468 cardoe 1.67 use debug && myconf="${myconf} --with-debug=full"
469 chtekk 1.69 # TODO: is it safe/needed to use econf here ?
470     ./configure ${myconf} || die "Problem configuring PBXT storage engine"
471     # TODO: is it safe/needed to use emake here ?
472     make || die "Problem making PBXT storage engine (${myconf})"
473 vivo 1.51
474     popd
475 chtekk 1.69 # TODO: modify test suite for PBXT
476 vivo 1.51 }
477    
478     pbxt_src_install() {
479     pushd "${WORKDIR}/pbxt-${PBXT_VERSION}" &>/dev/null
480 chtekk 1.69 make install || die "Failed to install PBXT"
481 vivo 1.51 popd
482     }
483    
484 vivo 1.37 #
485     # EBUILD FUNCTIONS
486     #
487 vivo 1.1 mysql_pkg_setup() {
488 robbat2 1.83 if hasq test ${FEATURES} ; then
489     if ! use minimal ; then
490 robbat2 1.91 if [[ $UID -eq 0 ]]; then
491 robbat2 1.96 eerror "Testing with FEATURES=-userpriv is no longer supported by upstream. Tests MUST be run as non-root."
492 robbat2 1.83 fi
493     fi
494     fi
495 swegener 1.53
496 chtekk 1.30 # Check for USE flag problems in pkg_setup
497 cardoe 1.67 if use static && use ssl ; then
498 chtekk 1.30 eerror "MySQL does not support being built statically with SSL support enabled!"
499     die "MySQL does not support being built statically with SSL support enabled!"
500     fi
501 vivo 1.1
502 vivo 1.51 if ! mysql_version_is_at_least "5.0" \
503 cardoe 1.67 && use raid \
504     && use static ; then
505 chtekk 1.30 eerror "USE flags 'raid' and 'static' conflict, you cannot build MySQL statically"
506     eerror "with RAID support enabled."
507     die "USE flags 'raid' and 'static' conflict!"
508 vivo 1.1 fi
509    
510 vivo 1.51 if mysql_version_is_at_least "4.1.3" \
511 cardoe 1.67 && ( use cluster || use extraengine ) \
512     && use minimal ; then
513 chtekk 1.30 eerror "USE flags 'cluster' and 'extraengine' conflict with 'minimal' USE flag!"
514     die "USE flags 'cluster' and 'extraengine' conflict with 'minimal' USE flag!"
515 vivo 1.1 fi
516 robbat2 1.83
517     # This should come after all of the die statements
518     enewgroup mysql 60 || die "problem adding 'mysql' group"
519     enewuser mysql 60 -1 /dev/null mysql || die "problem adding 'mysql' user"
520 chtekk 1.39
521 vivo 1.51 mysql_check_version_range "4.0 to 5.0.99.99" \
522 cardoe 1.67 && use berkdb \
523 chtekk 1.41 && elog "Berkeley DB support is deprecated and will be removed in future versions!"
524 chtekk 1.30 }
525    
526     mysql_src_unpack() {
527     # Initialize the proper variables first
528     mysql_init_vars
529 vivo 1.1
530 chtekk 1.30 unpack ${A}
531 robbat2 1.86 # Grab the patches
532     [[ "${MY_EXTRAS_VER}" == "live" ]] && S="${WORKDIR}/mysql-extras" git_src_unpack
533     # Bitkeeper checkout support
534 vivo 1.55 if [[ ${IS_BITKEEPER} -eq 90 ]] ; then
535 vivo 1.56 if mysql_check_version_range "5.1 to 5.1.99" ; then
536     bitkeeper_fetch "mysql-5.1-ndb"
537 chtekk 1.69 elif mysql_check_version_range "5.2 to 5.2.99" ; then
538 vivo 1.56 bitkeeper_fetch "mysql-5.2-falcon"
539     else
540     bitkeeper_fetch
541     fi
542 vivo 1.55 cd "${S}"
543 chtekk 1.69 einfo "Running upstream autorun over BK sources ..."
544 vivo 1.55 BUILD/autorun.sh
545     else
546     mv -f "${WORKDIR}/${MY_SOURCEDIR}" "${S}"
547     cd "${S}"
548     fi
549 vivo 1.1
550 chtekk 1.30 # Apply the patches for this MySQL version
551 vivo 1.55 EPATCH_SUFFIX="patch"
552 chtekk 1.69 mkdir -p "${EPATCH_SOURCE}" || die "Unable to create epatch directory"
553 robbat2 1.86 # Clean out old items
554     rm -f "${EPATCH_SOURCE}"/*
555     # Now link in right patches
556 vivo 1.55 mysql_mv_patches
557 robbat2 1.86 # And apply
558 chtekk 1.69 epatch
559 vivo 1.1
560 chtekk 1.30 # Additional checks, remove bundled zlib
561 vivo 1.1 rm -f "${S}/zlib/"*.[ch]
562     sed -i -e "s/zlib\/Makefile dnl/dnl zlib\/Makefile/" "${S}/configure.in"
563 chtekk 1.30 rm -f "scripts/mysqlbug"
564 vivo 1.1
565     # Make charsets install in the right place
566 vivo 1.37 find . -name 'Makefile.am' \
567     -exec sed --in-place -e 's!$(pkgdatadir)!'${MY_SHAREDSTATEDIR}'!g' {} \;
568 vivo 1.1
569 vivo 1.55 if mysql_version_is_at_least "4.1" ; then
570 chtekk 1.30 # Remove what needs to be recreated, so we're sure it's actually done
571     find . -name Makefile \
572     -o -name Makefile.in \
573     -o -name configure \
574     -exec rm -f {} \;
575     rm -f "ltmain.sh"
576 vivo 1.37 rm -f "scripts/mysqlbug"
577 chtekk 1.30 fi
578 vivo 1.1
579 vivo 1.51 local rebuilddirlist d
580 vivo 1.1
581 vivo 1.51 if mysql_version_is_at_least "5.1.12" ; then
582 chtekk 1.42 rebuilddirlist="."
583 swegener 1.74 # TODO: check this with a cmake expert
584 cardoe 1.67 use innodb \
585 vivo 1.51 && cmake \
586 chtekk 1.72 -DCMAKE_C_COMPILER=$(type -P $(tc-getCC)) \
587 robbat2 1.82 -DCMAKE_CXX_COMPILER=$(type -P $(tc-getCXX)) \
588 vivo 1.51 "storage/innobase"
589 vivo 1.1 else
590     rebuilddirlist=". innobase"
591     fi
592    
593 chtekk 1.30 for d in ${rebuilddirlist} ; do
594     einfo "Reconfiguring dir '${d}'"
595 vivo 1.4 pushd "${d}" &>/dev/null
596 vivo 1.21 AT_GNUCONF_UPDATE="yes" eautoreconf
597 vivo 1.4 popd &>/dev/null
598 vivo 1.1 done
599    
600 vivo 1.51 if mysql_check_version_range "4.1 to 5.0.99.99" \
601 cardoe 1.67 && use berkdb ; then
602 vivo 1.51 [[ -w "bdb/dist/ltmain.sh" ]] && cp -f "ltmain.sh" "bdb/dist/ltmain.sh"
603 chtekk 1.71 cp -f "/usr/share/aclocal/libtool.m4" "bdb/dist/aclocal/libtool.ac" \
604     || die "Could not copy libtool.m4 to bdb/dist/"
605 betelgeuse 1.97 #These files exist only with libtool-2*, and need to be included.
606     if [ -f '/usr/share/aclocal/ltsugar.m4' ]; then
607     cat "/usr/share/aclocal/ltsugar.m4" >> "bdb/dist/aclocal/libtool.ac"
608     cat "/usr/share/aclocal/ltversion.m4" >> "bdb/dist/aclocal/libtool.ac"
609     cat "/usr/share/aclocal/lt~obsolete.m4" >> "bdb/dist/aclocal/libtool.ac"
610     cat "/usr/share/aclocal/ltoptions.m4" >> "bdb/dist/aclocal/libtool.ac"
611     fi
612 chtekk 1.71 pushd "bdb/dist" &>/dev/null
613     sh s_all \
614     || die "Failed bdb reconfigure"
615 vivo 1.4 popd &>/dev/null
616 vivo 1.1 fi
617     }
618    
619 vivo 1.6 mysql_src_compile() {
620 chtekk 1.30 # Make sure the vars are correctly initialized
621     mysql_init_vars
622 vivo 1.1
623 chtekk 1.42 # $myconf is modified by the configure_* functions
624     local myconf=""
625 vivo 1.1
626 cardoe 1.67 if use minimal ; then
627 chtekk 1.42 configure_minimal
628 vivo 1.1 else
629 chtekk 1.42 configure_common
630 vivo 1.51 if mysql_version_is_at_least "5.1.10" ; then
631 chtekk 1.42 configure_51
632 vivo 1.1 else
633 chtekk 1.42 configure_40_41_50
634 vivo 1.1 fi
635 vivo 1.23 fi
636    
637 chtekk 1.30 # Bug #114895, bug #110149
638 vivo 1.1 filter-flags "-O" "-O[01]"
639 chtekk 1.30
640     # glib-2.3.2_pre fix, bug #16496
641 vivo 1.1 append-flags "-DHAVE_ERRNO_AS_DEFINE=1"
642    
643 robbat2 1.101 # As discovered by bug #246652, doing a double-level of SSP causes NDB to
644     # fail badly during cluster startup.
645     if [[ $(gcc-major-version) -lt 4 ]]; then
646     filter-flags "-fstack-protector-all"
647     fi
648    
649 vivo 1.48 CXXFLAGS="${CXXFLAGS} -fno-exceptions -fno-strict-aliasing"
650 chtekk 1.34 CXXFLAGS="${CXXFLAGS} -felide-constructors -fno-rtti"
651 vivo 1.51 mysql_version_is_at_least "5.0" \
652 chtekk 1.34 && CXXFLAGS="${CXXFLAGS} -fno-implicit-templates"
653 chtekk 1.39 export CXXFLAGS
654 vivo 1.1
655     econf \
656     --libexecdir="/usr/sbin" \
657     --sysconfdir="${MY_SYSCONFDIR}" \
658     --localstatedir="${MY_LOCALSTATEDIR}" \
659     --sharedstatedir="${MY_SHAREDSTATEDIR}" \
660     --libdir="${MY_LIBDIR}" \
661     --includedir="${MY_INCLUDEDIR}" \
662     --with-low-memory \
663     --with-client-ldflags=-lstdc++ \
664     --enable-thread-safe-client \
665     --with-comment="Gentoo Linux ${PF}" \
666     --without-docs \
667 chtekk 1.39 ${myconf} || die "econf failed"
668 vivo 1.1
669 chtekk 1.30 # TODO: Move this before autoreconf !!!
670 vivo 1.21 find . -type f -name Makefile -print0 \
671     | xargs -0 -n100 sed -i \
672     -e 's|^pkglibdir *= *$(libdir)/mysql|pkglibdir = $(libdir)|;s|^pkgincludedir *= *$(includedir)/mysql|pkgincludedir = $(includedir)|'
673 vivo 1.1
674 chtekk 1.39 emake || die "emake failed"
675 vivo 1.55
676 cardoe 1.67 mysql_version_is_at_least "5.1.12" && use pbxt && pbxt_src_compile
677 vivo 1.1 }
678    
679     mysql_src_install() {
680 chtekk 1.30 # Make sure the vars are correctly initialized
681     mysql_init_vars
682 vivo 1.1
683 chtekk 1.69 emake install DESTDIR="${D}" benchdir_root="${MY_SHAREDSTATEDIR}" || die "emake install failed"
684 vivo 1.55
685 cardoe 1.67 mysql_version_is_at_least "5.1.12" && use pbxt && pbxt_src_install
686 vivo 1.1
687     insinto "${MY_INCLUDEDIR}"
688     doins "${MY_INCLUDEDIR}"/my_{config,dir}.h
689    
690 chtekk 1.30 # Convenience links
691 chtekk 1.69 dosym "/usr/bin/mysqlcheck" "/usr/bin/mysqlanalyze"
692     dosym "/usr/bin/mysqlcheck" "/usr/bin/mysqlrepair"
693     dosym "/usr/bin/mysqlcheck" "/usr/bin/mysqloptimize"
694 vivo 1.1
695 chtekk 1.30 # Various junk (my-*.cnf moved elsewhere)
696     rm -Rf "${D}/usr/share/info"
697 vivo 1.37 for removeme in "mysql-log-rotate" mysql.server* \
698     binary-configure* my-*.cnf mi_test_all*
699     do
700 chtekk 1.30 rm -f "${D}"/usr/share/mysql/${removeme}
701 vivo 1.1 done
702    
703 chtekk 1.69 # Clean up stuff for a minimal build
704 cardoe 1.67 if use minimal ; then
705 chtekk 1.30 rm -Rf "${D}${MY_SHAREDSTATEDIR}"/{mysql-test,sql-bench}
706     rm -f "${D}"/usr/bin/{mysql{_install_db,manager*,_secure_installation,_fix_privilege_tables,hotcopy,_convert_table_format,d_multi,_fix_extensions,_zap,_explain_log,_tableinfo,d_safe,_install,_waitpid,binlog,test},myisam*,isam*,pack_isam}
707 vivo 1.26 rm -f "${D}/usr/sbin/mysqld"
708 chtekk 1.30 rm -f "${D}${MY_LIBDIR}"/lib{heap,merge,nisam,my{sys,strings,sqld,isammrg,isam},vio,dbug}.a
709 vivo 1.1 fi
710    
711 chtekk 1.30 # Configuration stuff
712 vivo 1.51 if mysql_version_is_at_least "4.1" ; then
713 chtekk 1.30 mysql_mycnf_version="4.1"
714     else
715     mysql_mycnf_version="4.0"
716     fi
717 vivo 1.1 insinto "${MY_SYSCONFDIR}"
718 vivo 1.55 doins scripts/mysqlaccess.conf
719 robbat2 1.75 sed -e "s!@DATADIR@!${MY_DATADIR}!g" \
720 chtekk 1.30 "${FILESDIR}/my.cnf-${mysql_mycnf_version}" \
721 vivo 1.9 > "${TMPDIR}/my.cnf.ok"
722 cardoe 1.67 if mysql_version_is_at_least "4.1" && use latin1 ; then
723 chtekk 1.30 sed -e "s|utf8|latin1|g" -i "${TMPDIR}/my.cnf.ok"
724     fi
725 vivo 1.9 newins "${TMPDIR}/my.cnf.ok" my.cnf
726    
727 chtekk 1.30 # Minimal builds don't have the MySQL server
728 cardoe 1.67 if ! use minimal ; then
729 chtekk 1.30 # Empty directories ...
730 vivo 1.1 diropts "-m0750"
731     if [[ "${PREVIOUS_DATADIR}" != "yes" ]] ; then
732 robbat2 1.75 dodir "${MY_DATADIR}"
733     keepdir "${MY_DATADIR}"
734     chown -R mysql:mysql "${D}/${MY_DATADIR}"
735 vivo 1.1 fi
736    
737     diropts "-m0755"
738     for folder in "${MY_LOGDIR}" "/var/run/mysqld" ; do
739     dodir "${folder}"
740     keepdir "${folder}"
741     chown -R mysql:mysql "${D}/${folder}"
742     done
743     fi
744    
745 chtekk 1.30 # Docs
746 vivo 1.1 dodoc README COPYING ChangeLog EXCEPTIONS-CLIENT INSTALL-SOURCE
747 robbat2 1.92 doinfo "${S}"/Docs/mysql.info
748 chtekk 1.30
749     # Minimal builds don't have the MySQL server
750 cardoe 1.67 if ! use minimal ; then
751 vivo 1.1 docinto "support-files"
752     for script in \
753 robbat2 1.92 "${S}"/support-files/my-*.cnf \
754     "${S}"/support-files/magic \
755     "${S}"/support-files/ndb-config-2-node.ini
756 vivo 1.1 do
757     dodoc "${script}"
758     done
759    
760     docinto "scripts"
761 robbat2 1.92 for script in "${S}"/scripts/mysql* ; do
762 vivo 1.4 [[ "${script%.sh}" == "${script}" ]] && dodoc "${script}"
763 vivo 1.1 done
764 robbat2 1.78
765 vivo 1.1 fi
766 vivo 1.4
767 vivo 1.58 mysql_lib_symlinks "${D}"
768 vivo 1.15 }
769    
770     mysql_pkg_preinst() {
771 chtekk 1.30 enewgroup mysql 60 || die "problem adding 'mysql' group"
772     enewuser mysql 60 -1 /dev/null mysql || die "problem adding 'mysql' user"
773 vivo 1.1 }
774    
775     mysql_pkg_postinst() {
776 chtekk 1.30 # Make sure the vars are correctly initialized
777 vivo 1.1 mysql_init_vars
778    
779 chtekk 1.30 # Check FEATURES="collision-protect" before removing this
780 chtekk 1.69 [[ -d "${ROOT}/var/log/mysql" ]] || install -d -m0750 -o mysql -g mysql "${ROOT}${MY_LOGDIR}"
781 vivo 1.1
782 chtekk 1.30 # Secure the logfiles
783 vivo 1.1 touch "${ROOT}${MY_LOGDIR}"/mysql.{log,err}
784     chown mysql:mysql "${ROOT}${MY_LOGDIR}"/mysql*
785     chmod 0660 "${ROOT}${MY_LOGDIR}"/mysql*
786    
787 vivo 1.55 # Minimal builds don't have the MySQL server
788 cardoe 1.67 if ! use minimal ; then
789 vivo 1.55 docinto "support-files"
790     for script in \
791     support-files/my-*.cnf \
792     support-files/magic \
793     support-files/ndb-config-2-node.ini
794     do
795     dodoc "${script}"
796     done
797    
798     docinto "scripts"
799     for script in scripts/mysql* ; do
800     [[ "${script%.sh}" == "${script}" ]] && dodoc "${script}"
801     done
802 chtekk 1.69
803     einfo
804     elog "You might want to run:"
805     elog "\"emerge --config =${CATEGORY}/${PF}\""
806     elog "if this is a new install."
807     einfo
808 vivo 1.55 fi
809    
810 cardoe 1.67 if mysql_version_is_at_least "5.1.12" && use pbxt ; then
811 chtekk 1.69 # TODO: explain it better
812     elog " mysql> INSTALL PLUGIN pbxt SONAME 'libpbxt.so';"
813     elog " mysql> CREATE TABLE t1 (c1 int, c2 text) ENGINE=pbxt;"
814     elog "if, after that, you cannot start the MySQL server,"
815 vivo 1.63 elog "remove the ${MY_DATADIR}/mysql/plugin.* files, then"
816 chtekk 1.69 elog "use the MySQL upgrade script to restore the table"
817     elog "or execute the following SQL command:"
818     elog " CREATE TABLE IF NOT EXISTS plugin ("
819     elog " name char(64) binary DEFAULT '' NOT NULL,"
820     elog " dl char(128) DEFAULT '' NOT NULL,"
821     elog " PRIMARY KEY (name)"
822     elog " ) CHARACTER SET utf8 COLLATE utf8_bin;"
823 vivo 1.4 fi
824 chtekk 1.69
825 vivo 1.51 mysql_check_version_range "4.0 to 5.0.99.99" \
826 cardoe 1.67 && use berkdb \
827 chtekk 1.41 && elog "Berkeley DB support is deprecated and will be removed in future versions!"
828 vivo 1.1 }
829    
830     mysql_pkg_config() {
831 chtekk 1.30 # Make sure the vars are correctly initialized
832 vivo 1.1 mysql_init_vars
833    
834 robbat2 1.75 [[ -z "${MY_DATADIR}" ]] && die "Sorry, unable to find MY_DATADIR"
835 chtekk 1.30
836 vivo 1.49 if built_with_use ${CATEGORY}/${PN} minimal ; then
837 vivo 1.1 die "Minimal builds do NOT include the MySQL server"
838     fi
839    
840     local pwd1="a"
841     local pwd2="b"
842     local maxtry=5
843    
844 robbat2 1.75 if [[ -d "${ROOT}/${MY_DATADIR}/mysql" ]] ; then
845 vivo 1.1 ewarn "You have already a MySQL database in place."
846 robbat2 1.75 ewarn "(${ROOT}/${MY_DATADIR}/*)"
847 vivo 1.1 ewarn "Please rename or delete it if you wish to replace it."
848     die "MySQL database already exists!"
849     fi
850    
851 robbat2 1.102 # Bug #213475 - MySQL _will_ object strenously if your machine is named
852     # localhost. Also causes weird failures.
853     [[ "${HOSTNAME}" == "localhost" ]] && die "Your machine must NOT be named localhost"
854    
855 vivo 1.1 einfo "Creating the mysql database and setting proper"
856 chtekk 1.30 einfo "permissions on it ..."
857 vivo 1.1
858     einfo "Insert a password for the mysql 'root' user"
859     ewarn "Avoid [\"'\\_%] characters in the password"
860 chtekk 1.30 read -rsp " >" pwd1 ; echo
861 vivo 1.1
862 chtekk 1.30 einfo "Retype the password"
863 vivo 1.1 read -rsp " >" pwd2 ; echo
864    
865     if [[ "x$pwd1" != "x$pwd2" ]] ; then
866     die "Passwords are not the same"
867     fi
868    
869     local options=""
870     local sqltmp="$(emktemp)"
871    
872 chtekk 1.30 local help_tables="${ROOT}${MY_SHAREDSTATEDIR}/fill_help_tables.sql"
873 vivo 1.1 [[ -r "${help_tables}" ]] \
874 vivo 1.8 && cp "${help_tables}" "${TMPDIR}/fill_help_tables.sql" \
875 vivo 1.1 || touch "${TMPDIR}/fill_help_tables.sql"
876     help_tables="${TMPDIR}/fill_help_tables.sql"
877    
878 vivo 1.4 pushd "${TMPDIR}" &>/dev/null
879 robbat2 1.85 "${ROOT}/usr/bin/mysql_install_db" >"${TMPDIR}"/mysql_install_db.log 2>&1
880     if [ $? -ne 0 ]; then
881     grep -B5 -A999 -i "ERROR" "${TMPDIR}"/mysql_install_db.log 1>&2
882     die "Failed to run mysql_install_db. Please review /var/log/mysql/mysqld.err AND ${TMPDIR}/mysql_install_db.log"
883     fi
884 vivo 1.4 popd &>/dev/null
885 robbat2 1.75 [[ -f "${ROOT}/${MY_DATADIR}/mysql/user.frm" ]] \
886 vivo 1.26 || die "MySQL databases not installed"
887 robbat2 1.94 chown -R mysql:mysql "${ROOT}/${MY_DATADIR}" 2>/dev/null
888     chmod 0750 "${ROOT}/${MY_DATADIR}" 2>/dev/null
889 vivo 1.1
890 vivo 1.51 if mysql_version_is_at_least "4.1.3" ; then
891 vivo 1.1 options="--skip-ndbcluster"
892    
893     # Filling timezones, see
894     # http://dev.mysql.com/doc/mysql/en/time-zone-support.html
895 chtekk 1.30 "${ROOT}/usr/bin/mysql_tzinfo_to_sql" "${ROOT}/usr/share/zoneinfo" > "${sqltmp}" 2>/dev/null
896 vivo 1.1
897     if [[ -r "${help_tables}" ]] ; then
898     cat "${help_tables}" >> "${sqltmp}"
899     fi
900     fi
901    
902 chtekk 1.30 local socket="${ROOT}/var/run/mysqld/mysqld${RANDOM}.sock"
903     local pidfile="${ROOT}/var/run/mysqld/mysqld${RANDOM}.pid"
904 vivo 1.26 local mysqld="${ROOT}/usr/sbin/mysqld \
905 vivo 1.1 ${options} \
906     --user=mysql \
907     --skip-grant-tables \
908     --basedir=${ROOT}/usr \
909 robbat2 1.75 --datadir=${ROOT}/${MY_DATADIR} \
910 vivo 1.1 --skip-innodb \
911     --skip-bdb \
912     --skip-networking \
913     --max_allowed_packet=8M \
914     --net_buffer_length=16K \
915     --socket=${socket} \
916     --pid-file=${pidfile}"
917 chtekk 1.30 ${mysqld} &
918 vivo 1.1 while ! [[ -S "${socket}" || "${maxtry}" -lt 1 ]] ; do
919 chtekk 1.30 maxtry=$((${maxtry}-1))
920 vivo 1.1 echo -n "."
921     sleep 1
922     done
923    
924 chtekk 1.30 # Do this from memory, as we don't want clear text passwords in temp files
925 vivo 1.1 local sql="UPDATE mysql.user SET Password = PASSWORD('${pwd1}') WHERE USER='root'"
926 chtekk 1.30 "${ROOT}/usr/bin/mysql" \
927 vivo 1.1 --socket=${socket} \
928     -hlocalhost \
929     -e "${sql}"
930    
931 chtekk 1.30 einfo "Loading \"zoneinfo\", this step may require a few seconds ..."
932 vivo 1.1
933 chtekk 1.30 "${ROOT}/usr/bin/mysql" \
934 vivo 1.1 --socket=${socket} \
935     -hlocalhost \
936     -uroot \
937     -p"${pwd1}" \
938     mysql < "${sqltmp}"
939    
940 chtekk 1.30 # Stop the server and cleanup
941 vivo 1.1 kill $(< "${pidfile}" )
942 chtekk 1.30 rm -f "${sqltmp}"
943     einfo "Stopping the server ..."
944 vivo 1.1 wait %1
945 chtekk 1.30 einfo "Done"
946 vivo 1.1 }
947    
948     mysql_pkg_postrm() {
949 chtekk 1.70 : # mysql_lib_symlinks "${D}"
950 vivo 1.25 }

  ViewVC Help
Powered by ViewVC 1.1.20