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

Contents of /eclass/mysql.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.111 - (hide annotations) (download)
Mon Jul 6 18:21:18 2009 UTC (5 years, 5 months ago) by robbat2
Branch: MAIN
Changes since 1.110: +41 -1 lines
Bug #212407: Allow for datadir that is changed by user to work better during pkg_config.

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

  ViewVC Help
Powered by ViewVC 1.1.20