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

Contents of /eclass/mysql.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.104 - (hide annotations) (download)
Wed Feb 11 11:27:13 2009 UTC (5 years, 7 months ago) by robbat2
Branch: MAIN
Changes since 1.103: +5 -2 lines
Fix PDEPEND for build order.

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

  ViewVC Help
Powered by ViewVC 1.1.20