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

Contents of /eclass/mysql.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.148 - (hide annotations) (download)
Mon Aug 9 19:29:49 2010 UTC (4 years, 1 month ago) by robbat2
Branch: MAIN
Changes since 1.147: +13 -2 lines
Upstream changed mirror layout, and moved files to an archive site that is not mirrored.

1 robbat2 1.119 # Copyright 1999-2009 Gentoo Foundation
2 vivo 1.1 # Distributed under the terms of the GNU General Public License v2
3 robbat2 1.148 # $Header: /var/cvsroot/gentoo-x86/eclass/mysql.eclass,v 1.147 2010/08/08 23:31:05 robbat2 Exp $
4 vivo 1.1
5 robbat2 1.119 # @ECLASS: mysql.eclass
6     # @MAINTAINER:
7 vivo 1.54 # Author: Francesco Riosa (Retired) <vivo@gentoo.org>
8 robbat2 1.119 # Maintainers: MySQL Team <mysql-bugs@gentoo.org>
9 robbat2 1.86 # - Luca Longinotti <chtekk@gentoo.org>
10     # - Robin H. Johnson <robbat2@gentoo.org>
11 robbat2 1.119 # @BLURB: This eclass provides most of the functions for mysql ebuilds
12     # @DESCRIPTION:
13     # The mysql.eclass provides almost all the code to build the mysql ebuilds
14     # including the src_unpack, src_prepare, src_configure, src_compile,
15     # scr_install, pkg_preinst, pkg_postinst, pkg_config and pkg_postrm
16     # phase hooks.
17 chtekk 1.30
18 vivo 1.59 WANT_AUTOCONF="latest"
19     WANT_AUTOMAKE="latest"
20 chtekk 1.69
21 robbat2 1.127 inherit eutils flag-o-matic gnuconfig autotools mysql_fx versionator toolchain-funcs
22 robbat2 1.114
23 robbat2 1.126 # Shorten the path because the socket path length must be shorter than 107 chars
24     # and we will run a mysql server during test phase
25     S="${WORKDIR}/mysql"
26    
27     [[ "${MY_EXTRAS_VER}" == "latest" ]] && MY_EXTRAS_VER="20090228-0714Z"
28     if [[ "${MY_EXTRAS_VER}" == "live" ]]; then
29     EGIT_PROJECT=mysql-extras
30     EGIT_REPO_URI="git://git.overlays.gentoo.org/proj/mysql-extras.git"
31     inherit git
32     fi
33    
34 robbat2 1.113 case "${EAPI:-0}" in
35     2)
36     EXPORT_FUNCTIONS pkg_setup \
37     src_unpack src_prepare \
38     src_configure src_compile \
39     src_install \
40     pkg_preinst pkg_postinst \
41     pkg_config pkg_postrm
42     IUSE_DEFAULT_ON='+'
43     ;;
44 robbat2 1.119 0 | 1)
45 robbat2 1.113 EXPORT_FUNCTIONS pkg_setup \
46     src_unpack \
47     src_compile \
48     src_install \
49     pkg_preinst pkg_postinst \
50     pkg_config pkg_postrm
51     ;;
52 robbat2 1.119 *)
53     die "Unsupported EAPI: ${EAPI}" ;;
54 robbat2 1.113 esac
55    
56 robbat2 1.137
57     # @ECLASS-VARIABLE: MYSQL_PV_MAJOR
58     # @DESCRIPTION:
59     # Upstream MySQL considers the first two parts of the version number to be the
60     # major version. Upgrades that change major version should always run
61     # mysql_upgrade.
62     MYSQL_PV_MAJOR="$(get_version_component_range 1-2 ${PV})"
63    
64 robbat2 1.119 # @ECLASS-VARIABLE: MYSQL_VERSION_ID
65     # @DESCRIPTION:
66 vivo 1.60 # MYSQL_VERSION_ID will be:
67     # major * 10e6 + minor * 10e4 + micro * 10e2 + gentoo revision number, all [0..99]
68     # This is an important part, because many of the choices the MySQL ebuild will do
69     # depend on this variable.
70     # In particular, the code below transforms a $PVR like "5.0.18-r3" in "5001803"
71 robbat2 1.88 # We also strip off upstream's trailing letter that they use to respin tarballs
72 chtekk 1.69
73 vivo 1.60 MYSQL_VERSION_ID=""
74 robbat2 1.88 tpv="${PV%[a-z]}"
75     tpv=( ${tpv//[-._]/ } ) ; tpv[3]="${PVR:${#PV}}" ; tpv[3]="${tpv[3]##*-r}"
76 vivo 1.60 for vatom in 0 1 2 3 ; do
77     # pad to length 2
78     tpv[${vatom}]="00${tpv[${vatom}]}"
79     MYSQL_VERSION_ID="${MYSQL_VERSION_ID}${tpv[${vatom}]:0-2}"
80     done
81     # strip leading "0" (otherwise it's considered an octal number by BASH)
82     MYSQL_VERSION_ID=${MYSQL_VERSION_ID##"0"}
83    
84 robbat2 1.119 # @ECLASS-VARIABLE: MYSQL_COMMUNITY_FEATURES
85     # @DESCRIPTION:
86     # Specifiy if community features are available. Possible values are 1 (yes)
87     # and 0 (no).
88 robbat2 1.110 # Community features are available in mysql-community
89     # AND in the re-merged mysql-5.0.82 and newer
90 robbat2 1.137 if [ "${PN}" == "mysql-community" -o "${PN}" == "mariadb" ]; then
91 robbat2 1.110 MYSQL_COMMUNITY_FEATURES=1
92     elif [ "${PV#5.0}" != "${PV}" ] && mysql_version_is_at_least "5.0.82"; then
93     MYSQL_COMMUNITY_FEATURES=1
94 robbat2 1.117 elif [ "${PV#5.1}" != "${PV}" ] && mysql_version_is_at_least "5.1.28"; then
95     MYSQL_COMMUNITY_FEATURES=1
96 robbat2 1.132 elif [ "${PV#5.4}" != "${PV}" ] ; then
97     MYSQL_COMMUNITY_FEATURES=1
98     elif [ "${PV#5.5}" != "${PV}" ] ; then
99     MYSQL_COMMUNITY_FEATURES=1
100     elif [ "${PV#6.0}" != "${PV}" ] ; then
101 hanno 1.118 MYSQL_COMMUNITY_FEATURES=1
102 robbat2 1.110 else
103     MYSQL_COMMUNITY_FEATURES=0
104     fi
105    
106 robbat2 1.120 # @ECLASS-VARIABLE: XTRADB_VER
107     # @DESCRIPTION:
108     # Version of the XTRADB storage engine
109     XTRADB_VER="${XTRADB_VER}"
110    
111     # @ECLASS-VARIABLE: PERCONA_VER
112     # @DESCRIPTION:
113     # Designation by PERCONA for a MySQL version to apply an XTRADB release
114     PERCONA_VER="${PERCONA_VER}"
115    
116 vivo 1.60 # Be warned, *DEPEND are version-dependant
117 robbat2 1.90 # These are used for both runtime and compiletime
118 vivo 1.60 DEPEND="ssl? ( >=dev-libs/openssl-0.9.6d )
119     userland_GNU? ( sys-process/procps )
120     >=sys-apps/sed-4
121     >=sys-apps/texinfo-4.7-r1
122     >=sys-libs/readline-4.1
123 chtekk 1.69 >=sys-libs/zlib-1.2.3"
124 vivo 1.60
125 robbat2 1.137 [[ "${PN}" == "mariadb" ]] \
126     && DEPEND="${DEPEND} libevent? ( >=dev-libs/libevent-1.4 )"
127    
128 chtekk 1.69 # Having different flavours at the same time is not a good idea
129 robbat2 1.137 for i in "mysql" "mysql-community" "mariadb" ; do
130     [[ "${i}" == ${PN} ]] ||
131     DEPEND="${DEPEND} !dev-db/${i}"
132 vivo 1.60 done
133    
134 robbat2 1.90 RDEPEND="${DEPEND}
135     !minimal? ( dev-db/mysql-init-scripts )
136     selinux? ( sec-policy/selinux-mysql )"
137    
138     # compile-time-only
139 vivo 1.60 mysql_version_is_at_least "5.1" \
140     || DEPEND="${DEPEND} berkdb? ( sys-apps/ed )"
141    
142 robbat2 1.90 # compile-time-only
143 chtekk 1.69 mysql_version_is_at_least "5.1.12" \
144 robbat2 1.107 && DEPEND="${DEPEND} >=dev-util/cmake-2.4.3"
145 chtekk 1.69
146 vivo 1.60 # dev-perl/DBD-mysql is needed by some scripts installed by MySQL
147     PDEPEND="perl? ( >=dev-perl/DBD-mysql-2.9004 )"
148    
149 robbat2 1.104 # For other stuff to bring us in
150 robbat2 1.137 PDEPEND="${PDEPEND} =virtual/mysql-${MYSQL_PV_MAJOR}"
151 robbat2 1.104
152 robbat2 1.81 # Work out the default SERVER_URI correctly
153     if [ -z "${SERVER_URI}" ]; then
154 robbat2 1.132 [ -z "${MY_PV}" ] && MY_PV="${PV//_/-}"
155 robbat2 1.137 if [ "${PN}" == "mariadb" ]; then
156     MARIA_FULL_PV="$(replace_version_separator 3 '-' ${PV})"
157 robbat2 1.145 MARIA_FULL_P="${PN}-${MARIA_FULL_PV}"
158     SERVER_URI="
159     http://ftp.rediris.es/mirror/MariaDB/${MARIA_FULL_P}/kvm-tarbake-jaunty-x86/${MARIA_FULL_P}.tar.gz
160     http://maria.llarian.net/download/${MARIA_FULL_P}/kvm-tarbake-jaunty-x86/${MARIA_FULL_P}.tar.gz
161     http://launchpad.net/maria/${MYSQL_PV_MAJOR}/ongoing/+download/${MARIA_FULL_P}.tar.gz
162     "
163 robbat2 1.81 # The community build is on the mirrors
164 robbat2 1.137 elif [ "${MYSQL_COMMUNITY_FEATURES}" == "1" ]; then
165 robbat2 1.148 if [[ "${PN}" == "mysql-cluster" ]] ; then
166     URI_DIR="MySQL-Cluster"
167     URI_FILE="mysql-cluster-gpl"
168     else
169     URI_DIR="MySQL"
170     URI_FILE="mysql"
171     fi
172     URI_A="${URI_FILE}-${MY_PV}.tar.gz"
173     MIRROR_PV=$(get_version_component_range 1-2 ${PV})
174     # Recently upstream switched to an archive site, and not on mirrors
175     SERVER_URI="http://downloads.mysql.com/archives/${URI_FILE}-${MIRROR_PV}/${URI_A}
176     mirror://mysql/Downloads/${URI_DIR}-${PV%.*}/${URI_A}"
177 robbat2 1.110 # The (old) enterprise source is on the primary site only
178 robbat2 1.81 elif [ "${PN}" == "mysql" ]; then
179 robbat2 1.132 SERVER_URI="ftp://ftp.mysql.com/pub/mysql/src/mysql-${MY_PV}.tar.gz"
180 robbat2 1.81 fi
181     fi
182    
183 vivo 1.60 # Define correct SRC_URIs
184 robbat2 1.86 SRC_URI="${SERVER_URI}"
185    
186 robbat2 1.122 # Gentoo patches to MySQL
187     [[ ${MY_EXTRAS_VER} != live ]] \
188     && SRC_URI="${SRC_URI}
189 robbat2 1.73 mirror://gentoo/mysql-extras-${MY_EXTRAS_VER}.tar.bz2
190 robbat2 1.124 http://g3nt8.org/patches/mysql-extras-${MY_EXTRAS_VER}.tar.bz2
191     http://dev.gentoo.org/~robbat2/distfiles/mysql-extras-${MY_EXTRAS_VER}.tar.bz2"
192 robbat2 1.122
193 vivo 1.60 DESCRIPTION="A fast, multi-threaded, multi-user SQL database server."
194     HOMEPAGE="http://www.mysql.com/"
195 robbat2 1.137 if [[ "${PN}" == "mariadb" ]]; then
196     HOMEPAGE="http://askmonty.org/"
197     DESCRIPTION="MariaDB is a MySQL fork with 3rd-party patches and additional storage engines merged."
198     fi
199 robbat2 1.142 if [[ "${PN}" == "mysql-community" ]]; then
200     DESCRIPTION="${DESCRIPTION} (obsolete, move to dev-db/mysql)"
201     fi
202 vivo 1.60 LICENSE="GPL-2"
203 chtekk 1.69 SLOT="0"
204 robbat2 1.133 IUSE="big-tables debug embedded minimal ${IUSE_DEFAULT_ON}perl selinux ssl static test"
205 vivo 1.60
206     mysql_version_is_at_least "4.1" \
207     && IUSE="${IUSE} latin1"
208    
209     mysql_version_is_at_least "4.1.3" \
210     && IUSE="${IUSE} cluster extraengine"
211    
212     mysql_version_is_at_least "5.0" \
213     || IUSE="${IUSE} raid"
214    
215     mysql_version_is_at_least "5.0.18" \
216     && IUSE="${IUSE} max-idx-128"
217    
218     mysql_version_is_at_least "5.1" \
219     || IUSE="${IUSE} berkdb"
220    
221 robbat2 1.133 [ "${MYSQL_COMMUNITY_FEATURES}" == "1" ] \
222     && IUSE="${IUSE} ${IUSE_DEFAULT_ON}community profiling"
223    
224 robbat2 1.137 [[ "${PN}" == "mariadb" ]] \
225     && IUSE="${IUSE} libevent"
226    
227     # MariaDB has integrated PBXT
228     # PBXT_VERSION means that we have a PBXT patch for this PV
229     # PBXT was only introduced after 5.1.12
230     pbxt_patch_available() {
231     [[ "${PN}" != "mariadb" ]] \
232     && mysql_version_is_at_least "5.1.12" \
233     && [[ -n "${PBXT_VERSION}" ]]
234     return $?
235     }
236    
237     pbxt_available() {
238     pbxt_patch_available || [[ "${PN}" == "mariadb" ]]
239     return $?
240     }
241    
242     # Get the percona tarball if XTRADB_VER and PERCONA_VER are both set
243     # MariaDB has integrated XtraDB
244     # XTRADB_VERS means that we have a XTRADB patch for this PV
245     # XTRADB was only introduced after 5.1.26
246     xtradb_patch_available() {
247     [[ "${PN}" != "mariadb" ]] \
248     && mysql_version_is_at_least "5.1.26" \
249     && [[ -n "${XTRADB_VER}" && -n "${PERCONA_VER}" ]]
250     return $?
251     }
252    
253 robbat2 1.145
254 robbat2 1.137 pbxt_patch_available \
255 robbat2 1.133 && PBXT_P="pbxt-${PBXT_VERSION}" \
256 robbat2 1.134 && PBXT_SRC_URI="http://www.primebase.org/download/${PBXT_P}.tar.gz mirror://sourceforge/pbxt/${PBXT_P}.tar.gz" \
257 robbat2 1.133 && SRC_URI="${SRC_URI} pbxt? ( ${PBXT_SRC_URI} )" \
258 robbat2 1.137
259 robbat2 1.145 # PBXT_NEWSTYLE means pbxt is in storage/ and gets enabled as other plugins
260     # vs. built outside the dir
261 robbat2 1.137 pbxt_available \
262 robbat2 1.145 && IUSE="${IUSE} pbxt" \
263     && mysql_version_is_at_least "5.1.40" \
264     && PBXT_NEWSTYLE=1
265 vivo 1.60
266 robbat2 1.137 xtradb_patch_available \
267 robbat2 1.133 && XTRADB_P="percona-xtradb-${XTRADB_VER}" \
268 robbat2 1.134 && XTRADB_SRC_URI_COMMON="${PERCONA_VER}/source/${XTRADB_P}.tar.gz" \
269 robbat2 1.145 && XTRADB_SRC_B1="http://www.percona.com/" \
270     && XTRADB_SRC_B2="${XTRADB_SRC_B1}/percona-builds/" \
271     && XTRADB_SRC_URI1="${XTRADB_SRC_B2}/Percona-Server/Percona-Server-${XTRADB_SRC_URI_COMMON}" \
272     && XTRADB_SRC_URI2="${XTRADB_SRC_B2}/xtradb/${XTRADB_SRC_URI_COMMON}" \
273     && XTRADB_SRC_URI3="${XTRADB_SRC_B1}/${PN}/xtradb/${XTRADB_SRC_URI_COMMON}" \
274     && SRC_URI="${SRC_URI} xtradb? ( ${XTRADB_SRC_URI1} ${XTRADB_SRC_URI2} ${XTRADB_SRC_URI3} )" \
275 robbat2 1.120 && IUSE="${IUSE} xtradb"
276    
277 vivo 1.37 #
278     # HELPER FUNCTIONS:
279     #
280    
281 robbat2 1.119 # @FUNCTION: mysql_disable_test
282     # @DESCRIPTION:
283     # Helper function to disable specific tests.
284 vivo 1.51 mysql_disable_test() {
285 robbat2 1.127 local rawtestname testname testsuite reason mysql_disable_file
286     rawtestname="${1}" ; shift
287     reason="${@}"
288     ewarn "test '${rawtestname}' disabled: '${reason}'"
289    
290     testsuite="${rawtestname/.*}"
291     testname="${rawtestname/*.}"
292     mysql_disable_file="${S}/mysql-test/t/disabled.def"
293 robbat2 1.131 #einfo "rawtestname=${rawtestname} testname=${testname} testsuite=${testsuite}"
294 vivo 1.51 echo ${testname} : ${reason} >> "${mysql_disable_file}"
295 robbat2 1.127
296     # ${S}/mysql-tests/t/disabled.def
297     #
298     # ${S}/mysql-tests/suite/federated/disabled.def
299     #
300     # ${S}/mysql-tests/suite/jp/t/disabled.def
301     # ${S}/mysql-tests/suite/ndb/t/disabled.def
302     # ${S}/mysql-tests/suite/rpl/t/disabled.def
303     # ${S}/mysql-tests/suite/parts/t/disabled.def
304     # ${S}/mysql-tests/suite/rpl_ndb/t/disabled.def
305     # ${S}/mysql-tests/suite/ndb_team/t/disabled.def
306     # ${S}/mysql-tests/suite/binlog/t/disabled.def
307     # ${S}/mysql-tests/suite/innodb/t/disabled.def
308     if [ -n "${testsuite}" ]; then
309     for mysql_disable_file in \
310     ${S}/mysql-test/suite/${testsuite}/disabled.def \
311     ${S}/mysql-test/suite/${testsuite}/t/disabled.def \
312     FAILED ; do
313     [ -f "${mysql_disable_file}" ] && break
314     done
315     if [ "${mysql_disabled_file}" != "FAILED" ]; then
316     echo "${testname} : ${reason}" >> "${mysql_disable_file}"
317     else
318     ewarn "Could not find testsuite disabled.def location for ${rawtestname}"
319     fi
320     fi
321 vivo 1.51 }
322    
323 robbat2 1.119 # @FUNCTION: mysql_init_vars
324     # @DESCRIPTION:
325 vivo 1.8 # void mysql_init_vars()
326 chtekk 1.30 # Initialize global variables
327     # 2005-11-19 <vivo@gentoo.org>
328 vivo 1.8 mysql_init_vars() {
329 chtekk 1.69 MY_SHAREDSTATEDIR=${MY_SHAREDSTATEDIR="/usr/share/mysql"}
330     MY_SYSCONFDIR=${MY_SYSCONFDIR="/etc/mysql"}
331     MY_LIBDIR=${MY_LIBDIR="/usr/$(get_libdir)/mysql"}
332     MY_LOCALSTATEDIR=${MY_LOCALSTATEDIR="/var/lib/mysql"}
333     MY_LOGDIR=${MY_LOGDIR="/var/log/mysql"}
334     MY_INCLUDEDIR=${MY_INCLUDEDIR="/usr/include/mysql"}
335 vivo 1.8
336 robbat2 1.75 if [[ -z "${MY_DATADIR}" ]] ; then
337     MY_DATADIR=""
338 chtekk 1.30 if [[ -f "${MY_SYSCONFDIR}/my.cnf" ]] ; then
339 robbat2 1.75 MY_DATADIR=`"my_print_defaults" mysqld 2>/dev/null \
340 vivo 1.26 | sed -ne '/datadir/s|^--datadir=||p' \
341     | tail -n1`
342 robbat2 1.75 if [[ -z "${MY_DATADIR}" ]] ; then
343     MY_DATADIR=`grep ^datadir "${MY_SYSCONFDIR}/my.cnf" \
344 robbat2 1.89 | sed -e 's/.*=\s*//' \
345     | tail -n1`
346 vivo 1.8 fi
347     fi
348 robbat2 1.75 if [[ -z "${MY_DATADIR}" ]] ; then
349     MY_DATADIR="${MY_LOCALSTATEDIR}"
350     einfo "Using default MY_DATADIR"
351 vivo 1.8 fi
352 robbat2 1.75 elog "MySQL MY_DATADIR is ${MY_DATADIR}"
353 vivo 1.8
354 chtekk 1.30 if [[ -z "${PREVIOUS_DATADIR}" ]] ; then
355 robbat2 1.75 if [[ -e "${MY_DATADIR}" ]] ; then
356 robbat2 1.95 # If you get this and you're wondering about it, see bug #207636
357     elog "MySQL datadir found in ${MY_DATADIR}"
358     elog "A new one will not be created."
359 vivo 1.8 PREVIOUS_DATADIR="yes"
360     else
361     PREVIOUS_DATADIR="no"
362     fi
363 chtekk 1.30 export PREVIOUS_DATADIR
364 vivo 1.8 fi
365 robbat2 1.111 else
366     if [[ ${EBUILD_PHASE} == "config" ]]; then
367     local new_MY_DATADIR
368     new_MY_DATADIR=`"my_print_defaults" mysqld 2>/dev/null \
369     | sed -ne '/datadir/s|^--datadir=||p' \
370     | tail -n1`
371    
372     if [[ ( -n "${new_MY_DATADIR}" ) && ( "${new_MY_DATADIR}" != "${MY_DATADIR}" ) ]]; then
373     ewarn "MySQL MY_DATADIR has changed"
374     ewarn "from ${MY_DATADIR}"
375     ewarn "to ${new_MY_DATADIR}"
376     MY_DATADIR="${new_MY_DATADIR}"
377     fi
378     fi
379 vivo 1.8 fi
380    
381 robbat2 1.147 if [ "${MY_SOURCEDIR:-unset}" == "unset" ]; then
382     MY_SOURCEDIR=${SERVER_URI##*/}
383     MY_SOURCEDIR=${MY_SOURCEDIR%.tar*}
384     fi
385 vivo 1.55
386 chtekk 1.69 export MY_SHAREDSTATEDIR MY_SYSCONFDIR
387 vivo 1.8 export MY_LIBDIR MY_LOCALSTATEDIR MY_LOGDIR
388 robbat2 1.75 export MY_INCLUDEDIR MY_DATADIR MY_SOURCEDIR
389 vivo 1.8 }
390    
391 vivo 1.37 configure_minimal() {
392 vivo 1.46 # These are things we exclude from a minimal build, please
393     # note that the server actually does get built and installed,
394     # but we then delete it before packaging.
395 robbat2 1.84 local minimal_exclude_list="server embedded-server extra-tools innodb bench berkeley-db row-based-replication readline"
396 vivo 1.37
397 vivo 1.46 for i in ${minimal_exclude_list} ; do
398     myconf="${myconf} --without-${i}"
399     done
400     myconf="${myconf} --with-extra-charsets=none"
401     myconf="${myconf} --enable-local-infile"
402 vivo 1.47
403 cardoe 1.67 if use static ; then
404 vivo 1.47 myconf="${myconf} --with-client-ldflags=-all-static"
405 robbat2 1.80 myconf="${myconf} --disable-shared --with-pic"
406 vivo 1.47 else
407     myconf="${myconf} --enable-shared --enable-static"
408     fi
409 chtekk 1.50
410 chtekk 1.69 if mysql_version_is_at_least "4.1" && ! use latin1 ; then
411 chtekk 1.50 myconf="${myconf} --with-charset=utf8"
412     myconf="${myconf} --with-collation=utf8_general_ci"
413     else
414     myconf="${myconf} --with-charset=latin1"
415     myconf="${myconf} --with-collation=latin1_swedish_ci"
416     fi
417 vivo 1.37 }
418    
419     configure_common() {
420 chtekk 1.39 myconf="${myconf} $(use_with big-tables)"
421 vivo 1.37 myconf="${myconf} --enable-local-infile"
422     myconf="${myconf} --with-extra-charsets=all"
423     myconf="${myconf} --with-mysqld-user=mysql"
424 chtekk 1.39 myconf="${myconf} --with-server"
425 vivo 1.43 myconf="${myconf} --with-unix-socket-path=/var/run/mysqld/mysqld.sock"
426 vivo 1.37 myconf="${myconf} --without-libwrap"
427 chtekk 1.39
428 cardoe 1.67 if use static ; then
429 vivo 1.37 myconf="${myconf} --with-mysqld-ldflags=-all-static"
430     myconf="${myconf} --with-client-ldflags=-all-static"
431 robbat2 1.80 myconf="${myconf} --disable-shared --with-pic"
432 vivo 1.37 else
433     myconf="${myconf} --enable-shared --enable-static"
434     fi
435    
436 cardoe 1.67 if use debug ; then
437 vivo 1.37 myconf="${myconf} --with-debug=full"
438     else
439     myconf="${myconf} --without-debug"
440 vivo 1.51 mysql_version_is_at_least "4.1.3" \
441 cardoe 1.67 && use cluster \
442 vivo 1.37 && myconf="${myconf} --without-ndb-debug"
443     fi
444 chtekk 1.39
445 robbat2 1.100 if [ -n "${MYSQL_DEFAULT_CHARSET}" -a -n "${MYSQL_DEFAULT_COLLATION}" ]; then
446     ewarn "You are using a custom charset of ${MYSQL_DEFAULT_CHARSET}"
447     ewarn "and a collation of ${MYSQL_DEFAULT_COLLATION}."
448     ewarn "You MUST file bugs without these variables set."
449     myconf="${myconf} --with-charset=${MYSQL_DEFAULT_CHARSET}"
450     myconf="${myconf} --with-collation=${MYSQL_DEFAULT_COLLATION}"
451     elif mysql_version_is_at_least "4.1" && ! use latin1 ; then
452     myconf="${myconf} --with-charset=utf8"
453     myconf="${myconf} --with-collation=utf8_general_ci"
454     else
455     myconf="${myconf} --with-charset=latin1"
456     myconf="${myconf} --with-collation=latin1_swedish_ci"
457 vivo 1.37 fi
458 chtekk 1.39
459 cardoe 1.67 if use embedded ; then
460 vivo 1.37 myconf="${myconf} --with-embedded-privilege-control"
461     myconf="${myconf} --with-embedded-server"
462     else
463     myconf="${myconf} --without-embedded-privilege-control"
464     myconf="${myconf} --without-embedded-server"
465     fi
466    
467     }
468    
469     configure_40_41_50() {
470     myconf="${myconf} $(use_with perl bench)"
471     myconf="${myconf} --enable-assembler"
472     myconf="${myconf} --with-extra-tools"
473     myconf="${myconf} --with-innodb"
474     myconf="${myconf} --without-readline"
475 robbat2 1.136 myconf="${myconf} $(use_with ssl openssl)"
476 vivo 1.51 mysql_version_is_at_least "5.0" || myconf="${myconf} $(use_with raid)"
477 vivo 1.37
478 chtekk 1.69 # --with-vio is not needed anymore, it's on by default and
479     # has been removed from configure
480 robbat2 1.136 # Apply to 4.x and 5.0.[0-3]
481 cardoe 1.67 if use ssl ; then
482 chtekk 1.69 mysql_version_is_at_least "5.0.4" || myconf="${myconf} --with-vio"
483 vivo 1.62 fi
484    
485 robbat2 1.98 if mysql_version_is_at_least "5.0.60" ; then
486     if use berkdb ; then
487     elog "Berkeley DB support was disabled due to build failures"
488     elog "on multiple arches, go to a version earlier than 5.0.60"
489     elog "if you want it again. Gentoo bug #224067."
490     fi
491     myconf="${myconf} --without-berkeley-db"
492     elif use berkdb ; then
493 chtekk 1.77 # The following fix is due to a bug with bdb on SPARC's. See:
494     # http://www.geocrawler.com/mail/msg.php3?msg_id=4754814&list=8
495     # It comes down to non-64-bit safety problems.
496 cardoe 1.76 if use alpha || use amd64 || use hppa || use mips || use sparc ; then
497 chtekk 1.77 elog "Berkeley DB support was disabled due to compatibility issues on this arch"
498 cardoe 1.76 myconf="${myconf} --without-berkeley-db"
499     else
500 chtekk 1.39 myconf="${myconf} --with-berkeley-db=./bdb"
501     fi
502 cardoe 1.76 else
503     myconf="${myconf} --without-berkeley-db"
504 vivo 1.37 fi
505    
506 vivo 1.51 if mysql_version_is_at_least "4.1.3" ; then
507 vivo 1.37 myconf="${myconf} --with-geometry"
508     myconf="${myconf} $(use_with cluster ndbcluster)"
509     fi
510    
511 cardoe 1.67 if mysql_version_is_at_least "4.1.3" && use extraengine ; then
512 vivo 1.37 # http://dev.mysql.com/doc/mysql/en/archive-storage-engine.html
513     myconf="${myconf} --with-archive-storage-engine"
514    
515     # http://dev.mysql.com/doc/mysql/en/csv-storage-engine.html
516     myconf="${myconf} --with-csv-storage-engine"
517    
518     # http://dev.mysql.com/doc/mysql/en/blackhole-storage-engine.html
519     myconf="${myconf} --with-blackhole-storage-engine"
520    
521     # http://dev.mysql.com/doc/mysql/en/federated-storage-engine.html
522     # http://dev.mysql.com/doc/mysql/en/federated-description.html
523     # http://dev.mysql.com/doc/mysql/en/federated-limitations.html
524 vivo 1.51 if mysql_version_is_at_least "5.0.3" ; then
525 chtekk 1.39 elog "Before using the Federated storage engine, please be sure to read"
526     elog "http://dev.mysql.com/doc/mysql/en/federated-limitations.html"
527 vivo 1.37 myconf="${myconf} --with-federated-storage-engine"
528     fi
529     fi
530    
531 robbat2 1.110 if [ "${MYSQL_COMMUNITY_FEATURES}" == "1" ]; then
532     myconf="${myconf} `use_enable community community-features`"
533     if use community; then
534     myconf="${myconf} `use_enable profiling`"
535     else
536     myconf="${myconf} --disable-profiling"
537     fi
538 robbat2 1.99 fi
539    
540 vivo 1.51 mysql_version_is_at_least "5.0.18" \
541 cardoe 1.67 && use max-idx-128 \
542 vivo 1.37 && myconf="${myconf} --with-max-indexes=128"
543     }
544    
545 chtekk 1.39 configure_51() {
546 chtekk 1.40 # TODO: !!!! readd --without-readline
547 chtekk 1.39 # the failure depend upon config/ac-macros/readline.m4 checking into
548 vivo 1.37 # readline.h instead of history.h
549 robbat2 1.136 myconf="${myconf} $(use_with ssl ssl /usr)"
550 vivo 1.37 myconf="${myconf} --enable-assembler"
551     myconf="${myconf} --with-geometry"
552     myconf="${myconf} --with-readline"
553 robbat2 1.133 myconf="${myconf} --with-zlib-dir=/usr/"
554 vivo 1.37 myconf="${myconf} --without-pstack"
555 robbat2 1.145 myconf="${myconf} --with-plugindir=/usr/$(get_libdir)/mysql/plugin"
556    
557 cardoe 1.67 use max-idx-128 && myconf="${myconf} --with-max-indexes=128"
558 robbat2 1.136 if [ "${MYSQL_COMMUNITY_FEATURES}" == "1" ]; then
559     myconf="${myconf} $(use_enable community community-features)"
560     if use community; then
561     myconf="${myconf} $(use_enable profiling)"
562     else
563     myconf="${myconf} --disable-profiling"
564     fi
565     fi
566 chtekk 1.39
567 robbat2 1.145 # Scan for all available plugins
568     local plugins_avail="$(
569     LANG=C \
570     find "${S}" \
571     \( \
572     -name 'plug.in' \
573     -o -iname 'configure.in' \
574     -o -iname 'configure.ac' \
575     \) \
576     -print0 \
577     | xargs -0 sed -r -n \
578     -e '/^MYSQL_STORAGE_ENGINE/{
579     s~MYSQL_STORAGE_ENGINE\([[:space:]]*\[?([-_a-z0-9]+)\]?.*,~\1 ~g ;
580     s~^([^ ]+).*~\1~gp;
581     }' \
582     | tr -s '\n' ' '
583     )"
584    
585 vivo 1.37 # 5.1 introduces a new way to manage storage engines (plugins)
586     # like configuration=none
587 robbat2 1.139 # This base set are required, and will always be statically built.
588 robbat2 1.145 local plugins_sta="csv myisam myisammrg heap"
589     local plugins_dyn=""
590     local plugins_dis="example ibmdb2i"
591    
592     # These aren't actually required by the base set, but are really useful:
593     plugins_sta="${plugins_sta} archive blackhole"
594    
595     # default in 5.5.4
596     if mysql_version_is_at_least "5.5.4" ; then
597     plugins_sta="${plugins_sta} partition"
598     fi
599     # Now the extras
600 cardoe 1.67 if use extraengine ; then
601 vivo 1.37 # like configuration=max-no-ndb, archive and example removed in 5.1.11
602 robbat2 1.129 # not added yet: ibmdb2i
603     # Not supporting as examples: example,daemon_example,ftexample
604 robbat2 1.145 plugins_sta="${plugins_sta} partition"
605     plugins_dyn="${plugins_sta} federated"
606 vivo 1.37
607 robbat2 1.137 if [[ "${PN}" != "mariadb" ]] ; then
608     elog "Before using the Federated storage engine, please be sure to read"
609     elog "http://dev.mysql.com/doc/refman/5.1/en/federated-limitations.html"
610     else
611     elog "MariaDB includes the FederatedX engine. Be sure to read"
612     elog "http://askmonty.org/wiki/index.php/Manual:FederatedX_storage_engine"
613     fi
614 robbat2 1.145 else
615     plugins_dis="${plugins_dis} partition federated"
616 vivo 1.37 fi
617    
618 robbat2 1.130 # Upstream specifically requests that InnoDB always be built:
619     # - innobase, innodb_plugin
620     # Build falcon if available for 6.x series.
621 robbat2 1.145 for i in innobase falcon ; do
622     [ -e "${S}"/storage/${i} ] && plugins_sta="${plugins_sta} ${i}"
623     done
624     for i in innodb_plugin ; do
625     [ -e "${S}"/storage/${i} ] && plugins_dyn="${plugins_dyn} ${i}"
626 robbat2 1.130 done
627 vivo 1.37
628     # like configuration=max-no-ndb
629 cardoe 1.67 if use cluster ; then
630 robbat2 1.146 plugins_sta="${plugins_sta} ndbcluster partition"
631     plugins_dis="${plugins_dis//partition}"
632 vivo 1.37 myconf="${myconf} --with-ndb-binlog"
633 robbat2 1.145 else
634     plugins_dis="${plugins_dis} ndbcluster"
635 vivo 1.37 fi
636    
637 robbat2 1.137 if [[ "${PN}" == "mariadb" ]] ; then
638     # In MariaDB, InnoDB is packaged in the xtradb directory, so it's not
639     # caught above.
640 robbat2 1.146 plugins_sta="${plugins_sta} maria innobase"
641 robbat2 1.137 myconf="${myconf} $(use_with libevent)"
642     # This is not optional, without it several upstream testcases fail.
643     # Also strongly recommended by upstream.
644     myconf="${myconf} --with-maria-tmp-tables"
645     fi
646 robbat2 1.145
647     if pbxt_available && [[ "${PBXT_NEWSTYLE}" == "1" ]]; then
648     use pbxt \
649     && plugins_dyn="${plugins_dyn} pbxt" \
650     || plugins_dis="${plugins_dis} pbxt"
651     fi
652 robbat2 1.137
653 robbat2 1.145 use static && \
654     plugins_sta="${plugins_sta} ${plugins_dyn}" && \
655     plugins_dyn=""
656    
657     einfo "Available plugins: ${plugins_avail}"
658     einfo "Dynamic plugins: ${plugins_dyn}"
659     einfo "Static plugins: ${plugins_sta}"
660     einfo "Disabled plugins: ${plugins_dis}"
661    
662     # These are the static plugins
663     myconf="${myconf} --with-plugins=${plugins_sta// /,}"
664     # And the disabled ones
665     for i in ${plugins_dis} ; do
666     myconf="${myconf} --without-plugin-${i}"
667     done
668 vivo 1.37 }
669    
670 robbat2 1.112 pbxt_src_configure() {
671 vivo 1.51 mysql_init_vars
672    
673     pushd "${WORKDIR}/pbxt-${PBXT_VERSION}" &>/dev/null
674    
675     einfo "Reconfiguring dir '${PWD}'"
676     AT_GNUCONF_UPDATE="yes" eautoreconf
677    
678 chtekk 1.69 local myconf=""
679 robbat2 1.138 myconf="${myconf} --with-mysql=${S} --libdir=/usr/$(get_libdir)"
680 cardoe 1.67 use debug && myconf="${myconf} --with-debug=full"
681 robbat2 1.138 econf ${myconf} || die "Problem configuring PBXT storage engine"
682 robbat2 1.112 }
683    
684     pbxt_src_compile() {
685 robbat2 1.145
686 robbat2 1.112 # Be backwards compatible for now
687     if [[ $EAPI != 2 ]]; then
688     pbxt_src_configure
689     fi
690 chtekk 1.69 # TODO: is it safe/needed to use emake here ?
691     make || die "Problem making PBXT storage engine (${myconf})"
692 vivo 1.51
693     popd
694 chtekk 1.69 # TODO: modify test suite for PBXT
695 vivo 1.51 }
696    
697     pbxt_src_install() {
698     pushd "${WORKDIR}/pbxt-${PBXT_VERSION}" &>/dev/null
699 robbat2 1.134 emake install DESTDIR="${D}" || die "Failed to install PBXT"
700 vivo 1.51 popd
701     }
702    
703 vivo 1.37 #
704     # EBUILD FUNCTIONS
705     #
706 robbat2 1.119 # @FUNCTION: mysql_pkg_setup
707     # @DESCRIPTION:
708     # Perform some basic tests and tasks during pkg_setup phase:
709     # die if FEATURES="test", USE="-minimal" and not using FEATURES="userpriv"
710     # check for conflicting use flags
711     # create new user and group for mysql
712     # warn about deprecated features
713 vivo 1.1 mysql_pkg_setup() {
714 robbat2 1.83 if hasq test ${FEATURES} ; then
715     if ! use minimal ; then
716 robbat2 1.91 if [[ $UID -eq 0 ]]; then
717 robbat2 1.96 eerror "Testing with FEATURES=-userpriv is no longer supported by upstream. Tests MUST be run as non-root."
718 robbat2 1.83 fi
719     fi
720     fi
721 swegener 1.53
722 chtekk 1.30 # Check for USE flag problems in pkg_setup
723 cardoe 1.67 if use static && use ssl ; then
724 robbat2 1.145 M="MySQL does not support being built statically with SSL support enabled!"
725     eerror "${M}"
726     die "${M}"
727 chtekk 1.30 fi
728 vivo 1.1
729 vivo 1.51 if ! mysql_version_is_at_least "5.0" \
730 cardoe 1.67 && use raid \
731     && use static ; then
732 chtekk 1.30 eerror "USE flags 'raid' and 'static' conflict, you cannot build MySQL statically"
733     eerror "with RAID support enabled."
734     die "USE flags 'raid' and 'static' conflict!"
735 vivo 1.1 fi
736    
737 vivo 1.51 if mysql_version_is_at_least "4.1.3" \
738 robbat2 1.145 && ( use cluster || use extraengine || use embedded ) \
739 cardoe 1.67 && use minimal ; then
740 robbat2 1.145 M="USE flags 'cluster', 'extraengine', 'embedded' conflict with 'minimal' USE flag!"
741     eerror "${M}"
742     die "${M}"
743     fi
744    
745     if mysql_version_is_at_least "5.1" \
746     && xtradb_patch_available \
747     && use xtradb \
748     && use embedded ; then
749     M="USE flags 'xtradb' and 'embedded' conflict and cause build failures"
750     eerror "${M}"
751     die "${M}"
752 vivo 1.1 fi
753 maekke 1.103
754 robbat2 1.144 # Bug #290570, 284946, 307251
755     # Upstream changes made us need a fairly new GCC4.
756     # But only for 5.0.8[3-6]!
757     if mysql_version_is_at_least "5.0.83" && ! mysql_version_is_at_least 5.0.87 ; then
758 robbat2 1.127 GCC_VER=$(gcc-version)
759 robbat2 1.125 case ${GCC_VER} in
760 robbat2 1.144 2*|3*|4.0|4.1|4.2)
761     eerror "Some releases of MySQL required a very new GCC, and then"
762     eerror "later release relaxed that requirement again. Either pick a"
763     eerror "MySQL >=5.0.87, or use a newer GCC."
764     die "Active GCC too old!" ;;
765 robbat2 1.125 esac
766     fi
767    
768 robbat2 1.83 # This should come after all of the die statements
769     enewgroup mysql 60 || die "problem adding 'mysql' group"
770     enewuser mysql 60 -1 /dev/null mysql || die "problem adding 'mysql' user"
771 chtekk 1.39
772 vivo 1.51 mysql_check_version_range "4.0 to 5.0.99.99" \
773 cardoe 1.67 && use berkdb \
774 chtekk 1.41 && elog "Berkeley DB support is deprecated and will be removed in future versions!"
775 robbat2 1.133
776     if [ "${PN}" != "mysql-cluster" ] && use cluster; then
777     ewarn "Upstream has noted that the NDB cluster support in the 5.0 and"
778     ewarn "5.1 series should NOT be put into production. In the near"
779     ewarn "future, it will be disabled from building."
780     ewarn ""
781     ewarn "If you need NDB support, you should instead move to the new"
782     ewarn "mysql-cluster package that represents that upstream NDB"
783     ewarn "development."
784     fi
785 chtekk 1.30 }
786    
787 robbat2 1.119 # @FUNCTION: mysql_src_unpack
788     # @DESCRIPTION:
789     # Unpack the source code and call mysql_src_prepare for EAPI < 2.
790 chtekk 1.30 mysql_src_unpack() {
791     # Initialize the proper variables first
792     mysql_init_vars
793 vivo 1.1
794 chtekk 1.30 unpack ${A}
795 robbat2 1.86 # Grab the patches
796     [[ "${MY_EXTRAS_VER}" == "live" ]] && S="${WORKDIR}/mysql-extras" git_src_unpack
797 maekke 1.116
798 robbat2 1.109 mv -f "${WORKDIR}/${MY_SOURCEDIR}" "${S}"
799 robbat2 1.112
800     # Be backwards compatible for now
801 robbat2 1.119 case ${EAPI:-0} in
802     2) : ;;
803     0 | 1) mysql_src_prepare ;;
804     esac
805 robbat2 1.112 }
806    
807 robbat2 1.119 # @FUNCTION: mysql_src_prepare
808     # @DESCRIPTION:
809     # Apply patches to the source code and remove unneeded bundled libs.
810 robbat2 1.112 mysql_src_prepare() {
811 robbat2 1.109 cd "${S}"
812 vivo 1.1
813 chtekk 1.30 # Apply the patches for this MySQL version
814 vivo 1.55 EPATCH_SUFFIX="patch"
815 chtekk 1.69 mkdir -p "${EPATCH_SOURCE}" || die "Unable to create epatch directory"
816 robbat2 1.86 # Clean out old items
817     rm -f "${EPATCH_SOURCE}"/*
818     # Now link in right patches
819 vivo 1.55 mysql_mv_patches
820 robbat2 1.86 # And apply
821 chtekk 1.69 epatch
822 vivo 1.1
823 robbat2 1.133 # last -fPIC fixup, per bug #305873
824     i="${S}"/storage/innodb_plugin/plug.in
825     [ -f "${i}" ] && sed -i -e '/CFLAGS/s,-prefer-non-pic,,g' "${i}"
826    
827 chtekk 1.30 # Additional checks, remove bundled zlib
828 vivo 1.1 rm -f "${S}/zlib/"*.[ch]
829     sed -i -e "s/zlib\/Makefile dnl/dnl zlib\/Makefile/" "${S}/configure.in"
830 chtekk 1.30 rm -f "scripts/mysqlbug"
831 vivo 1.1
832     # Make charsets install in the right place
833 vivo 1.37 find . -name 'Makefile.am' \
834     -exec sed --in-place -e 's!$(pkgdatadir)!'${MY_SHAREDSTATEDIR}'!g' {} \;
835 vivo 1.1
836 vivo 1.55 if mysql_version_is_at_least "4.1" ; then
837 chtekk 1.30 # Remove what needs to be recreated, so we're sure it's actually done
838 robbat2 1.122 einfo "Cleaning up old buildscript files"
839 chtekk 1.30 find . -name Makefile \
840     -o -name Makefile.in \
841     -o -name configure \
842     -exec rm -f {} \;
843     rm -f "ltmain.sh"
844 vivo 1.37 rm -f "scripts/mysqlbug"
845 chtekk 1.30 fi
846 vivo 1.1
847 vivo 1.51 local rebuilddirlist d
848 vivo 1.1
849 robbat2 1.137 if xtradb_patch_available && use xtradb ; then
850 robbat2 1.145 einfo "Adding storage engine: Percona XtraDB (replacing InnoDB)"
851     pushd "${S}"/storage >/dev/null
852 robbat2 1.122 i="innobase"
853     o="${WORKDIR}/storage-${i}.mysql-upstream"
854     # Have we been here already?
855 robbat2 1.134 [ -d "${o}" ] && rm -f "${i}"
856 robbat2 1.122 # Or maybe we haven't
857     [ -d "${i}" -a ! -d "${o}" ] && mv "${i}" "${o}"
858 robbat2 1.145 cp -ral "${WORKDIR}/${XTRADB_P}" "${i}"
859     popd >/dev/null
860     fi
861    
862     if pbxt_available && [[ "${PBXT_NEWSTYLE}" == "1" ]] && use pbxt ; then
863     einfo "Adding storage engine: PBXT"
864     pushd "${S}"/storage >/dev/null
865     i='pbxt'
866     [ -d "${i}" ] && rm -rf "${i}"
867     cp -ral "${WORKDIR}/${PBXT_P}" "${i}"
868     popd >/dev/null
869 robbat2 1.122 fi
870    
871 vivo 1.51 if mysql_version_is_at_least "5.1.12" ; then
872 chtekk 1.42 rebuilddirlist="."
873 robbat2 1.134 # This does not seem to be needed presently. robbat2 2010/02/23
874     #einfo "Updating innobase cmake"
875     ## TODO: check this with a cmake expert
876     #cmake \
877     # -DCMAKE_C_COMPILER=$(type -P $(tc-getCC)) \
878     # -DCMAKE_CXX_COMPILER=$(type -P $(tc-getCXX)) \
879     # "storage/innobase"
880 vivo 1.1 else
881     rebuilddirlist=". innobase"
882     fi
883    
884 chtekk 1.30 for d in ${rebuilddirlist} ; do
885     einfo "Reconfiguring dir '${d}'"
886 vivo 1.4 pushd "${d}" &>/dev/null
887 vivo 1.21 AT_GNUCONF_UPDATE="yes" eautoreconf
888 vivo 1.4 popd &>/dev/null
889 vivo 1.1 done
890    
891 vivo 1.51 if mysql_check_version_range "4.1 to 5.0.99.99" \
892 cardoe 1.67 && use berkdb ; then
893 robbat2 1.122 einfo "Fixing up berkdb buildsystem"
894 vivo 1.51 [[ -w "bdb/dist/ltmain.sh" ]] && cp -f "ltmain.sh" "bdb/dist/ltmain.sh"
895 chtekk 1.71 cp -f "/usr/share/aclocal/libtool.m4" "bdb/dist/aclocal/libtool.ac" \
896     || die "Could not copy libtool.m4 to bdb/dist/"
897 betelgeuse 1.97 #These files exist only with libtool-2*, and need to be included.
898     if [ -f '/usr/share/aclocal/ltsugar.m4' ]; then
899     cat "/usr/share/aclocal/ltsugar.m4" >> "bdb/dist/aclocal/libtool.ac"
900     cat "/usr/share/aclocal/ltversion.m4" >> "bdb/dist/aclocal/libtool.ac"
901     cat "/usr/share/aclocal/lt~obsolete.m4" >> "bdb/dist/aclocal/libtool.ac"
902     cat "/usr/share/aclocal/ltoptions.m4" >> "bdb/dist/aclocal/libtool.ac"
903     fi
904 chtekk 1.71 pushd "bdb/dist" &>/dev/null
905     sh s_all \
906     || die "Failed bdb reconfigure"
907 vivo 1.4 popd &>/dev/null
908 vivo 1.1 fi
909     }
910    
911 robbat2 1.119 # @FUNCTION: mysql_src_configure
912     # @DESCRIPTION:
913     # Configure mysql to build the code for Gentoo respecting the use flags.
914 robbat2 1.112 mysql_src_configure() {
915 chtekk 1.30 # Make sure the vars are correctly initialized
916     mysql_init_vars
917 vivo 1.1
918 chtekk 1.42 # $myconf is modified by the configure_* functions
919     local myconf=""
920 vivo 1.1
921 cardoe 1.67 if use minimal ; then
922 chtekk 1.42 configure_minimal
923 vivo 1.1 else
924 chtekk 1.42 configure_common
925 vivo 1.51 if mysql_version_is_at_least "5.1.10" ; then
926 chtekk 1.42 configure_51
927 vivo 1.1 else
928 chtekk 1.42 configure_40_41_50
929 vivo 1.1 fi
930 vivo 1.23 fi
931    
932 chtekk 1.30 # Bug #114895, bug #110149
933 vivo 1.1 filter-flags "-O" "-O[01]"
934 chtekk 1.30
935     # glib-2.3.2_pre fix, bug #16496
936 vivo 1.1 append-flags "-DHAVE_ERRNO_AS_DEFINE=1"
937    
938 robbat2 1.101 # As discovered by bug #246652, doing a double-level of SSP causes NDB to
939     # fail badly during cluster startup.
940     if [[ $(gcc-major-version) -lt 4 ]]; then
941     filter-flags "-fstack-protector-all"
942     fi
943    
944 vivo 1.48 CXXFLAGS="${CXXFLAGS} -fno-exceptions -fno-strict-aliasing"
945 chtekk 1.34 CXXFLAGS="${CXXFLAGS} -felide-constructors -fno-rtti"
946 vivo 1.51 mysql_version_is_at_least "5.0" \
947 chtekk 1.34 && CXXFLAGS="${CXXFLAGS} -fno-implicit-templates"
948 chtekk 1.39 export CXXFLAGS
949 vivo 1.1
950 robbat2 1.115 # bug #283926, with GCC4.4, this is required to get correct behavior.
951     append-flags -fno-strict-aliasing
952    
953 vivo 1.1 econf \
954     --libexecdir="/usr/sbin" \
955     --sysconfdir="${MY_SYSCONFDIR}" \
956     --localstatedir="${MY_LOCALSTATEDIR}" \
957     --sharedstatedir="${MY_SHAREDSTATEDIR}" \
958     --libdir="${MY_LIBDIR}" \
959     --includedir="${MY_INCLUDEDIR}" \
960     --with-low-memory \
961     --with-client-ldflags=-lstdc++ \
962     --enable-thread-safe-client \
963     --with-comment="Gentoo Linux ${PF}" \
964     --without-docs \
965 chtekk 1.39 ${myconf} || die "econf failed"
966 vivo 1.1
967 chtekk 1.30 # TODO: Move this before autoreconf !!!
968 vivo 1.21 find . -type f -name Makefile -print0 \
969     | xargs -0 -n100 sed -i \
970     -e 's|^pkglibdir *= *$(libdir)/mysql|pkglibdir = $(libdir)|;s|^pkgincludedir *= *$(includedir)/mysql|pkgincludedir = $(includedir)|'
971 vivo 1.1
972 robbat2 1.145 if [[ $EAPI == 2 ]] && [[ "${PBXT_NEWSTYLE}" != "1" ]]; then
973 robbat2 1.137 pbxt_patch_available && use pbxt && pbxt_src_configure
974 robbat2 1.112 fi
975     }
976    
977 robbat2 1.119 # @FUNCTION: mysql_src_compile
978     # @DESCRIPTION:
979     # Compile the mysql code.
980 robbat2 1.112 mysql_src_compile() {
981     # Be backwards compatible for now
982 robbat2 1.137 case ${EAPI:-0} in
983     2) : ;;
984     0 | 1) mysql_src_configure ;;
985     esac
986 robbat2 1.112
987 chtekk 1.39 emake || die "emake failed"
988 vivo 1.55
989 robbat2 1.145 if [[ "${PBXT_NEWSTYLE}" != "1" ]]; then
990     pbxt_patch_available && use pbxt && pbxt_src_compile
991     fi
992 vivo 1.1 }
993    
994 robbat2 1.119 # @FUNCTION: mysql_src_install
995     # @DESCRIPTION:
996     # Install mysql.
997 vivo 1.1 mysql_src_install() {
998 chtekk 1.30 # Make sure the vars are correctly initialized
999     mysql_init_vars
1000 vivo 1.1
1001 robbat2 1.133 emake install \
1002     DESTDIR="${D}" \
1003     benchdir_root="${MY_SHAREDSTATEDIR}" \
1004     testroot="${MY_SHAREDSTATEDIR}" \
1005     || die "emake install failed"
1006 vivo 1.55
1007 robbat2 1.145 if [[ "${PBXT_NEWSTYLE}" != "1" ]]; then
1008     pbxt_patch_available && use pbxt && pbxt_src_install
1009     fi
1010 vivo 1.1
1011 chtekk 1.30 # Convenience links
1012 robbat2 1.105 einfo "Making Convenience links for mysqlcheck multi-call binary"
1013 chtekk 1.69 dosym "/usr/bin/mysqlcheck" "/usr/bin/mysqlanalyze"
1014     dosym "/usr/bin/mysqlcheck" "/usr/bin/mysqlrepair"
1015     dosym "/usr/bin/mysqlcheck" "/usr/bin/mysqloptimize"
1016 vivo 1.1
1017 chtekk 1.30 # Various junk (my-*.cnf moved elsewhere)
1018 robbat2 1.105 einfo "Removing duplicate /usr/share/mysql files"
1019 chtekk 1.30 rm -Rf "${D}/usr/share/info"
1020 vivo 1.37 for removeme in "mysql-log-rotate" mysql.server* \
1021     binary-configure* my-*.cnf mi_test_all*
1022     do
1023 robbat2 1.133 rm -f "${D}"/${MY_SHAREDSTATEDIR}/${removeme}
1024 vivo 1.1 done
1025    
1026 chtekk 1.69 # Clean up stuff for a minimal build
1027 cardoe 1.67 if use minimal ; then
1028 robbat2 1.105 einfo "Remove all extra content for minimal build"
1029 chtekk 1.30 rm -Rf "${D}${MY_SHAREDSTATEDIR}"/{mysql-test,sql-bench}
1030     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}
1031 vivo 1.26 rm -f "${D}/usr/sbin/mysqld"
1032 chtekk 1.30 rm -f "${D}${MY_LIBDIR}"/lib{heap,merge,nisam,my{sys,strings,sqld,isammrg,isam},vio,dbug}.a
1033 vivo 1.1 fi
1034    
1035 robbat2 1.133 # Unless they explicitly specific USE=test, then do not install the
1036     # testsuite. It DOES have a use to be installed, esp. when you want to do a
1037     # validation of your database configuration after tuning it.
1038     if use !test ; then
1039     rm -rf "${D}"/${MY_SHAREDSTATEDIR}/mysql-test
1040     fi
1041    
1042 chtekk 1.30 # Configuration stuff
1043 robbat2 1.140 if mysql_version_is_at_least "5.1" ; then
1044     mysql_mycnf_version="5.1"
1045     elif mysql_version_is_at_least "4.1" ; then
1046 chtekk 1.30 mysql_mycnf_version="4.1"
1047     else
1048     mysql_mycnf_version="4.0"
1049     fi
1050 robbat2 1.105 einfo "Building default my.cnf"
1051 vivo 1.1 insinto "${MY_SYSCONFDIR}"
1052 vivo 1.55 doins scripts/mysqlaccess.conf
1053 robbat2 1.75 sed -e "s!@DATADIR@!${MY_DATADIR}!g" \
1054 chtekk 1.30 "${FILESDIR}/my.cnf-${mysql_mycnf_version}" \
1055 vivo 1.9 > "${TMPDIR}/my.cnf.ok"
1056 cardoe 1.67 if mysql_version_is_at_least "4.1" && use latin1 ; then
1057 robbat2 1.140 sed -i \
1058     -e "/character-set/s|utf8|latin1|g" \
1059     "${TMPDIR}/my.cnf.ok"
1060 chtekk 1.30 fi
1061 vivo 1.9 newins "${TMPDIR}/my.cnf.ok" my.cnf
1062    
1063 chtekk 1.30 # Minimal builds don't have the MySQL server
1064 cardoe 1.67 if ! use minimal ; then
1065 robbat2 1.105 einfo "Creating initial directories"
1066 chtekk 1.30 # Empty directories ...
1067 vivo 1.1 diropts "-m0750"
1068     if [[ "${PREVIOUS_DATADIR}" != "yes" ]] ; then
1069 robbat2 1.75 dodir "${MY_DATADIR}"
1070     keepdir "${MY_DATADIR}"
1071     chown -R mysql:mysql "${D}/${MY_DATADIR}"
1072 vivo 1.1 fi
1073    
1074     diropts "-m0755"
1075     for folder in "${MY_LOGDIR}" "/var/run/mysqld" ; do
1076     dodir "${folder}"
1077     keepdir "${folder}"
1078     chown -R mysql:mysql "${D}/${folder}"
1079     done
1080     fi
1081    
1082 chtekk 1.30 # Docs
1083 robbat2 1.105 einfo "Installing docs"
1084 robbat2 1.133 dodoc README ChangeLog EXCEPTIONS-CLIENT INSTALL-SOURCE
1085 robbat2 1.92 doinfo "${S}"/Docs/mysql.info
1086 chtekk 1.30
1087     # Minimal builds don't have the MySQL server
1088 cardoe 1.67 if ! use minimal ; then
1089 robbat2 1.105 einfo "Including support files and sample configurations"
1090 vivo 1.1 docinto "support-files"
1091     for script in \
1092 robbat2 1.92 "${S}"/support-files/my-*.cnf \
1093     "${S}"/support-files/magic \
1094     "${S}"/support-files/ndb-config-2-node.ini
1095 vivo 1.1 do
1096 robbat2 1.134 [[ -f "$script" ]] && dodoc "${script}"
1097 vivo 1.1 done
1098    
1099     docinto "scripts"
1100 robbat2 1.92 for script in "${S}"/scripts/mysql* ; do
1101 robbat2 1.134 [[ -f "$script" ]] && [[ "${script%.sh}" == "${script}" ]] && dodoc "${script}"
1102 vivo 1.1 done
1103 robbat2 1.78
1104 vivo 1.1 fi
1105 vivo 1.4
1106 vivo 1.58 mysql_lib_symlinks "${D}"
1107 vivo 1.15 }
1108    
1109 robbat2 1.119 # @FUNCTION: mysql_pkg_preinst
1110     # @DESCRIPTION:
1111     # Create the user and groups for mysql - die if that fails.
1112 vivo 1.15 mysql_pkg_preinst() {
1113 chtekk 1.30 enewgroup mysql 60 || die "problem adding 'mysql' group"
1114     enewuser mysql 60 -1 /dev/null mysql || die "problem adding 'mysql' user"
1115 vivo 1.1 }
1116    
1117 robbat2 1.119 # @FUNCTION: mysql_pkg_postinst
1118     # @DESCRIPTION:
1119     # Run post-installation tasks:
1120     # create the dir for logfiles if non-existant
1121     # touch the logfiles and secure them
1122     # install scripts
1123     # issue required steps for optional features
1124     # issue deprecation warnings
1125 vivo 1.1 mysql_pkg_postinst() {
1126 chtekk 1.30 # Make sure the vars are correctly initialized
1127 vivo 1.1 mysql_init_vars
1128    
1129 chtekk 1.30 # Check FEATURES="collision-protect" before removing this
1130 chtekk 1.69 [[ -d "${ROOT}/var/log/mysql" ]] || install -d -m0750 -o mysql -g mysql "${ROOT}${MY_LOGDIR}"
1131 vivo 1.1
1132 chtekk 1.30 # Secure the logfiles
1133 vivo 1.1 touch "${ROOT}${MY_LOGDIR}"/mysql.{log,err}
1134     chown mysql:mysql "${ROOT}${MY_LOGDIR}"/mysql*
1135     chmod 0660 "${ROOT}${MY_LOGDIR}"/mysql*
1136    
1137 vivo 1.55 # Minimal builds don't have the MySQL server
1138 cardoe 1.67 if ! use minimal ; then
1139 vivo 1.55 docinto "support-files"
1140     for script in \
1141     support-files/my-*.cnf \
1142     support-files/magic \
1143     support-files/ndb-config-2-node.ini
1144     do
1145 robbat2 1.137 [[ -f "${script}" ]] \
1146     && dodoc "${script}"
1147 vivo 1.55 done
1148    
1149     docinto "scripts"
1150     for script in scripts/mysql* ; do
1151 robbat2 1.137 [[ -f "${script}" ]] \
1152     && [[ "${script%.sh}" == "${script}" ]] \
1153     && dodoc "${script}"
1154 vivo 1.55 done
1155 chtekk 1.69
1156     einfo
1157     elog "You might want to run:"
1158     elog "\"emerge --config =${CATEGORY}/${PF}\""
1159     elog "if this is a new install."
1160     einfo
1161 vivo 1.55 fi
1162    
1163 robbat2 1.137 if pbxt_available && use pbxt ; then
1164 chtekk 1.69 # TODO: explain it better
1165     elog " mysql> INSTALL PLUGIN pbxt SONAME 'libpbxt.so';"
1166     elog " mysql> CREATE TABLE t1 (c1 int, c2 text) ENGINE=pbxt;"
1167     elog "if, after that, you cannot start the MySQL server,"
1168 vivo 1.63 elog "remove the ${MY_DATADIR}/mysql/plugin.* files, then"
1169 chtekk 1.69 elog "use the MySQL upgrade script to restore the table"
1170     elog "or execute the following SQL command:"
1171     elog " CREATE TABLE IF NOT EXISTS plugin ("
1172     elog " name char(64) binary DEFAULT '' NOT NULL,"
1173     elog " dl char(128) DEFAULT '' NOT NULL,"
1174     elog " PRIMARY KEY (name)"
1175     elog " ) CHARACTER SET utf8 COLLATE utf8_bin;"
1176 vivo 1.4 fi
1177 chtekk 1.69
1178 vivo 1.51 mysql_check_version_range "4.0 to 5.0.99.99" \
1179 cardoe 1.67 && use berkdb \
1180 chtekk 1.41 && elog "Berkeley DB support is deprecated and will be removed in future versions!"
1181 vivo 1.1 }
1182    
1183 robbat2 1.119 # @FUNCTION: mysql_pkg_config
1184     # @DESCRIPTION:
1185     # Configure mysql environment.
1186 vivo 1.1 mysql_pkg_config() {
1187 robbat2 1.111 local old_MY_DATADIR="${MY_DATADIR}"
1188    
1189 chtekk 1.30 # Make sure the vars are correctly initialized
1190 vivo 1.1 mysql_init_vars
1191    
1192 robbat2 1.75 [[ -z "${MY_DATADIR}" ]] && die "Sorry, unable to find MY_DATADIR"
1193 chtekk 1.30
1194 vivo 1.49 if built_with_use ${CATEGORY}/${PN} minimal ; then
1195 vivo 1.1 die "Minimal builds do NOT include the MySQL server"
1196     fi
1197    
1198 robbat2 1.111 if [[ ( -n "${MY_DATADIR}" ) && ( "${MY_DATADIR}" != "${old_MY_DATADIR}" ) ]]; then
1199     local MY_DATADIR_s="$(strip_duplicate_slashes ${ROOT}/${MY_DATADIR})"
1200     local old_MY_DATADIR_s="$(strip_duplicate_slashes ${ROOT}/${old_MY_DATADIR})"
1201    
1202     if [[ -d "${old_MY_DATADIR_s}" ]]; then
1203     if [[ -d "${MY_DATADIR_s}" ]]; then
1204     ewarn "Both ${old_MY_DATADIR_s} and ${MY_DATADIR_s} exist"
1205     ewarn "Attempting to use ${MY_DATADIR_s} and preserving ${old_MY_DATADIR_s}"
1206     else
1207     elog "Moving MY_DATADIR from ${old_MY_DATADIR_s} to ${MY_DATADIR_s}"
1208     mv --strip-trailing-slashes -T "${old_MY_DATADIR_s}" "${MY_DATADIR_s}" \
1209     || die "Moving MY_DATADIR failed"
1210     fi
1211     else
1212     ewarn "Previous MY_DATADIR (${old_MY_DATADIR_s}) does not exist"
1213     if [[ -d "${MY_DATADIR_s}" ]]; then
1214     ewarn "Attempting to use ${MY_DATADIR_s}"
1215     else
1216     eerror "New MY_DATADIR (${MY_DATADIR_s}) does not exist"
1217     die "Configuration Failed! Please reinstall ${CATEGORY}/${PN}"
1218 maekke 1.116 fi
1219 robbat2 1.111 fi
1220     fi
1221    
1222 vivo 1.1 local pwd1="a"
1223     local pwd2="b"
1224 robbat2 1.140 local MYSQL_ROOT_PASSWORD=''
1225     local maxtry=15
1226 vivo 1.1
1227 robbat2 1.141 if [ -z "${MYSQL_ROOT_PASSWORD}" -a -f "${ROOT}/root/.my.cnf" ]; then
1228     MYSQL_ROOT_PASSWORD="$(sed -n -e '/^password=/s,^password=,,gp' "${ROOT}/root/.my.cnf")"
1229     fi
1230    
1231 robbat2 1.75 if [[ -d "${ROOT}/${MY_DATADIR}/mysql" ]] ; then
1232 vivo 1.1 ewarn "You have already a MySQL database in place."
1233 robbat2 1.75 ewarn "(${ROOT}/${MY_DATADIR}/*)"
1234 vivo 1.1 ewarn "Please rename or delete it if you wish to replace it."
1235     die "MySQL database already exists!"
1236     fi
1237    
1238 robbat2 1.102 # Bug #213475 - MySQL _will_ object strenously if your machine is named
1239     # localhost. Also causes weird failures.
1240     [[ "${HOSTNAME}" == "localhost" ]] && die "Your machine must NOT be named localhost"
1241    
1242 robbat2 1.140 if [ -z "${MYSQL_ROOT_PASSWORD}" ]; then
1243 vivo 1.1
1244 robbat2 1.140 einfo "Please provide a password for the mysql 'root' user now,"
1245     einfo "or in the MYSQL_ROOT_PASSWORD env var."
1246     ewarn "Avoid [\"'\\_%] characters in the password"
1247     read -rsp " >" pwd1 ; echo
1248 vivo 1.1
1249 robbat2 1.140 einfo "Retype the password"
1250     read -rsp " >" pwd2 ; echo
1251 vivo 1.1
1252 robbat2 1.140 if [[ "x$pwd1" != "x$pwd2" ]] ; then
1253     die "Passwords are not the same"
1254     fi
1255     MYSQL_ROOT_PASSWORD="${pwd1}"
1256     unset pwd1 pwd2
1257 vivo 1.1 fi
1258    
1259     local options=""
1260     local sqltmp="$(emktemp)"
1261    
1262 chtekk 1.30 local help_tables="${ROOT}${MY_SHAREDSTATEDIR}/fill_help_tables.sql"
1263 vivo 1.1 [[ -r "${help_tables}" ]] \
1264 vivo 1.8 && cp "${help_tables}" "${TMPDIR}/fill_help_tables.sql" \
1265 vivo 1.1 || touch "${TMPDIR}/fill_help_tables.sql"
1266     help_tables="${TMPDIR}/fill_help_tables.sql"
1267    
1268 vivo 1.4 pushd "${TMPDIR}" &>/dev/null
1269 robbat2 1.85 "${ROOT}/usr/bin/mysql_install_db" >"${TMPDIR}"/mysql_install_db.log 2>&1
1270     if [ $? -ne 0 ]; then
1271     grep -B5 -A999 -i "ERROR" "${TMPDIR}"/mysql_install_db.log 1>&2
1272     die "Failed to run mysql_install_db. Please review /var/log/mysql/mysqld.err AND ${TMPDIR}/mysql_install_db.log"
1273     fi
1274 vivo 1.4 popd &>/dev/null
1275 robbat2 1.75 [[ -f "${ROOT}/${MY_DATADIR}/mysql/user.frm" ]] \
1276 vivo 1.26 || die "MySQL databases not installed"
1277 robbat2 1.94 chown -R mysql:mysql "${ROOT}/${MY_DATADIR}" 2>/dev/null
1278     chmod 0750 "${ROOT}/${MY_DATADIR}" 2>/dev/null
1279 vivo 1.1
1280 robbat2 1.140 # Figure out which options we need to disable to do the setup
1281     helpfile="${TMPDIR}/mysqld-help"
1282     ${ROOT}/usr/sbin/mysqld --verbose --help >"${helpfile}" 2>/dev/null
1283     for opt in grant-tables host-cache name-resolve networking slave-start bdb \
1284     federated innodb ssl log-bin relay-log slow-query-log external-locking \
1285     ; do
1286     optexp="--(skip-)?${opt}" optfull="--skip-${opt}"
1287     egrep -sq -- "${optexp}" "${helpfile}" && options="${options} ${optfull}"
1288     done
1289     # But some options changed names
1290     egrep -sq external-locking "${helpfile}" && \
1291     options="${options/skip-locking/skip-external-locking}"
1292    
1293 vivo 1.51 if mysql_version_is_at_least "4.1.3" ; then
1294 vivo 1.1 # Filling timezones, see
1295     # http://dev.mysql.com/doc/mysql/en/time-zone-support.html
1296 chtekk 1.30 "${ROOT}/usr/bin/mysql_tzinfo_to_sql" "${ROOT}/usr/share/zoneinfo" > "${sqltmp}" 2>/dev/null
1297 vivo 1.1
1298     if [[ -r "${help_tables}" ]] ; then
1299     cat "${help_tables}" >> "${sqltmp}"
1300     fi
1301     fi
1302 robbat2 1.140
1303     einfo "Creating the mysql database and setting proper"
1304     einfo "permissions on it ..."
1305 vivo 1.1
1306 chtekk 1.30 local socket="${ROOT}/var/run/mysqld/mysqld${RANDOM}.sock"
1307     local pidfile="${ROOT}/var/run/mysqld/mysqld${RANDOM}.pid"
1308 vivo 1.26 local mysqld="${ROOT}/usr/sbin/mysqld \
1309 vivo 1.1 ${options} \
1310     --user=mysql \
1311     --basedir=${ROOT}/usr \
1312 robbat2 1.75 --datadir=${ROOT}/${MY_DATADIR} \
1313 vivo 1.1 --max_allowed_packet=8M \
1314     --net_buffer_length=16K \
1315 robbat2 1.143 --default-storage-engine=MyISAM \
1316 vivo 1.1 --socket=${socket} \
1317     --pid-file=${pidfile}"
1318 robbat2 1.140 #einfo "About to start mysqld: ${mysqld}"
1319     ebegin "Starting mysqld"
1320 chtekk 1.30 ${mysqld} &
1321 robbat2 1.140 rc=$?
1322 vivo 1.1 while ! [[ -S "${socket}" || "${maxtry}" -lt 1 ]] ; do
1323 chtekk 1.30 maxtry=$((${maxtry}-1))
1324 vivo 1.1 echo -n "."
1325     sleep 1
1326     done
1327 robbat2 1.140 eend $rc
1328    
1329     if ! [[ -S "${socket}" ]]; then
1330     die "Completely failed to start up mysqld with: ${mysqld}"
1331     fi
1332 vivo 1.1
1333 robbat2 1.140 ebegin "Setting root password"
1334 chtekk 1.30 # Do this from memory, as we don't want clear text passwords in temp files
1335 robbat2 1.140 local sql="UPDATE mysql.user SET Password = PASSWORD('${MYSQL_ROOT_PASSWORD}') WHERE USER='root'"
1336 chtekk 1.30 "${ROOT}/usr/bin/mysql" \
1337 vivo 1.1 --socket=${socket} \
1338     -hlocalhost \
1339     -e "${sql}"
1340 robbat2 1.140 eend $?
1341 vivo 1.1
1342 robbat2 1.140 ebegin "Loading \"zoneinfo\", this step may require a few seconds ..."
1343 chtekk 1.30 "${ROOT}/usr/bin/mysql" \
1344 vivo 1.1 --socket=${socket} \
1345     -hlocalhost \
1346     -uroot \
1347 robbat2 1.140 -p"${MYSQL_ROOT_PASSWORD}" \
1348 vivo 1.1 mysql < "${sqltmp}"
1349 robbat2 1.140 rc=$?
1350     eend $?
1351     [ $rc -ne 0 ] && ewarn "Failed to load zoneinfo!"
1352 vivo 1.1
1353 chtekk 1.30 # Stop the server and cleanup
1354 robbat2 1.140 einfo "Stopping the server ..."
1355 vivo 1.1 kill $(< "${pidfile}" )
1356 chtekk 1.30 rm -f "${sqltmp}"
1357 vivo 1.1 wait %1
1358 chtekk 1.30 einfo "Done"
1359 vivo 1.1 }
1360    
1361 robbat2 1.119 # @FUNCTION: mysql_pkg_postrm
1362     # @DESCRIPTION:
1363     # Remove mysql symlinks.
1364 vivo 1.1 mysql_pkg_postrm() {
1365 chtekk 1.70 : # mysql_lib_symlinks "${D}"
1366 vivo 1.25 }

  ViewVC Help
Powered by ViewVC 1.1.20