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

Contents of /eclass/mysql.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.98 - (hide annotations) (download)
Fri Nov 14 01:46:24 2008 UTC (5 years, 7 months ago) by robbat2
Branch: MAIN
Changes since 1.97: +10 -3 lines
Bug #224067 - disable berkdb now for all mysql builds >=5.0.60.

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

  ViewVC Help
Powered by ViewVC 1.1.20