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

Diff of /eclass/mysql.eclass

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.38 Revision 1.54
1# Copyright 1999-2006 Gentoo Foundation 1# Copyright 1999-2006 Gentoo Foundation
2# Distributed under the terms of the GNU General Public License v2 2# Distributed under the terms of the GNU General Public License v2
3# $Header: /var/cvsroot/gentoo-x86/eclass/mysql.eclass,v 1.38 2006/10/20 13:14:21 chtekk Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/mysql.eclass,v 1.54 2007/01/03 13:42:05 vivo Exp $
4# kate: encoding utf-8; eol unix;
5# kate: indent-width 4; mixedindent off; remove-trailing-space on; space-indent off;
6# kate: word-wrap-column 80; word-wrap off;
4 7
5# Author: Francesco Riosa <vivo@gentoo.org> 8# Author: Francesco Riosa (Retired) <vivo@gentoo.org>
6# Maintainer: Luca Longinotti <chtekk@gentoo.org> 9# Maintainer: Luca Longinotti <chtekk@gentoo.org>
7 10
8# Both MYSQL_VERSION_ID and MYSQL_PATCHSET_REV must be set in the ebuild too
9# Note that MYSQL_VERSION_ID must be empty !!! 11# Note that MYSQL_VERSION_ID must be empty !!!
10 12
13ECLASS="mysql"
14INHERITED="$INHERITED $ECLASS"
15
16# avoid running userspace code 8 times per ebuild :(
17if [[ "${_MYPVR}" != "${PVR}" ]] || [[ -z "${MYSQL_VERSION_ID}" ]]
18then
19 _MYPVR=${PVR}
20
11# MYSQL_VERSION_ID will be: 21 # MYSQL_VERSION_ID will be:
12# major * 10e6 + minor * 10e4 + micro * 10e2 + gentoo revision number, all [0..99] 22 # major * 10e6 + minor * 10e4 + micro * 10e2 + gentoo revision number, all [0..99]
13# This is an important part, because many of the choices the MySQL ebuild will do 23 # This is an important part, because many of the choices the MySQL ebuild will do
14# depend on this variable. 24 # depend on this variable.
15# In particular, the code below transforms a $PVR like "5.0.18-r3" in "5001803" 25 # In particular, the code below transforms a $PVR like "5.0.18-r3" in "5001803"
16
17if [[ -z "${MYSQL_VERSION_ID}" ]] ; then 26 if [[ -z "${MYSQL_VERSION_ID}" ]] ; then
18 tpv=( ${PV//[-._]/ } ) ; tpv[3]="${PVR:${#PV}}" ; tpv[3]="${tpv[3]##*-r}" 27 tpv=( ${PV//[-._]/ } ) ; tpv[3]="${PVR:${#PV}}" ; tpv[3]="${tpv[3]##*-r}"
19 for vatom in 0 1 2 3 ; do 28 for vatom in 0 1 2 3 ; do
20 # pad to length 2 29 # pad to length 2
21 tpv[${vatom}]="00${tpv[${vatom}]}" 30 tpv[${vatom}]="00${tpv[${vatom}]}"
22 MYSQL_VERSION_ID="${MYSQL_VERSION_ID}${tpv[${vatom}]:0-2}" 31 MYSQL_VERSION_ID="${MYSQL_VERSION_ID}${tpv[${vatom}]:0-2}"
23 done 32 done
24 # strip leading "0" (otherwise it's considered an octal number by BASH) 33 # strip leading "0" (otherwise it's considered an octal number by BASH)
25 MYSQL_VERSION_ID=${MYSQL_VERSION_ID##"0"} 34 MYSQL_VERSION_ID=${MYSQL_VERSION_ID##"0"}
26fi 35 fi
27 36
28DEPEND="${DEPEND} 37 inherit eutils flag-o-matic gnuconfig autotools mysql_fx
29 >=sys-libs/readline-4.1 38
30 berkdb? ( sys-apps/ed ) 39 # Be warned, *DEPEND are version-dependant
31 ssl? ( >=dev-libs/openssl-0.9.6d ) 40 DEPEND="ssl? ( >=dev-libs/openssl-0.9.6d )
32 userland_GNU? ( sys-process/procps ) 41 userland_GNU? ( sys-process/procps )
33 >=sys-libs/zlib-1.2.3 42 >=sys-apps/sed-4
34 >=sys-apps/texinfo-4.7-r1 43 >=sys-apps/texinfo-4.7-r1
35 >=sys-apps/sed-4" 44 >=sys-libs/readline-4.1
45 >=sys-libs/zlib-1.2.3"
36 46
47 # LEAVE THE SURROUNDING SPACES THERE
48 MYSQL_MUTUALLY_EXCLUSIVE=" !dev-db/mysql !dev-db/mysql-community "
49 DEPEND="${DEPEND} ${MYSQL_MUTUALLY_EXCLUSIVE/ !${CATEGORY}\/${PN} /}"
50
51 mysql_version_is_at_least "5.01.00.00" \
52 || DEPEND="${DEPEND} berkdb? ( sys-apps/ed )"
53
37RDEPEND="${DEPEND} selinux? ( sec-policy/selinux-mysql )" 54 RDEPEND="${DEPEND} selinux? ( sec-policy/selinux-mysql )"
38 55
39# dev-perl/DBD-mysql is needed by some scripts installed by MySQL 56 # dev-perl/DBD-mysql is needed by some scripts installed by MySQL
40PDEPEND="perl? ( >=dev-perl/DBD-mysql-2.9004 )" 57 PDEPEND="perl? ( >=dev-perl/DBD-mysql-2.9004 )"
41 58
42inherit eutils flag-o-matic gnuconfig autotools mysql_fx
43
44# Shorten the path because the socket path length must be shorter than 107 chars 59 # Shorten the path because the socket path length must be shorter than 107 chars
45# and we will run a mysql server during test phase 60 # and we will run a mysql server during test phase
46S="${WORKDIR}/${PN}" 61 S="${WORKDIR}/mysql" # BitKeeper ebuilds
47 62
48# Define $MY_FIXED_PV for MySQL patchsets 63 # Define $MY_FIXED_PV for MySQL patchsets
49MY_FIXED_PV="${PV/_alpha/}" 64 MY_FIXED_PV="${PV/_alpha/}"
50#MY_FIXED_PV="${MY_FIXED_PV/_beta/}" 65 #MY_FIXED_PV="${MY_FIXED_PV/_beta/}"
51#MY_FIXED_PV="${MY_FIXED_PV/_rc/}" 66 #MY_FIXED_PV="${MY_FIXED_PV/_rc/}"
52 67
68 MY_P="${P/_/-}"
69 MY_P="${MY_P/-alpha/-bk-}" # BitKeeper ebuilds
70 MY_P="${MY_P/-community/}"
71
53# Define correct SRC_URIs 72 # Define correct SRC_URIs
54SRC_URI="mirror://mysql/Downloads/MySQL-${PV%.*}/${P/_/-}${MYSQL_RERELEASE}.tar.gz" 73 SRC_URI="${BASE_URI}/${MY_P}${MYSQL_RERELEASE}.tar.gz"
55if [[ -n "${MYSQL_PATCHSET_REV}" ]] ; then 74 if [[ -n "${MYSQL_PATCHSET_REV}" ]] ; then
56 MYSQL_PATCHSET_FILENAME="${PN}-patchset-${MY_FIXED_PV}-r${MYSQL_PATCHSET_REV}.tar.bz2" 75 MYSQL_PATCHSET_FILENAME="${PN}-patchset-${MY_FIXED_PV}-r${MYSQL_PATCHSET_REV}.tar.bz2"
57 # We add the Gentoo mirror here, as we only use primaryuri for the MySQL tarball 76 # We add the Gentoo mirror here, as we only use primaryuri for the MySQL tarball
58 SRC_URI="${SRC_URI} http://gentoo.longitekk.com/${MYSQL_PATCHSET_FILENAME}" 77 SRC_URI="${SRC_URI} http://g3nt8.org/patches/${MYSQL_PATCHSET_FILENAME}"
59fi 78 fi
60 79
61DESCRIPTION="A fast, multi-threaded, multi-user SQL database server." 80 DESCRIPTION="A fast, multi-threaded, multi-user SQL database server."
62HOMEPAGE="http://www.mysql.com/" 81 HOMEPAGE="http://www.mysql.com/"
63SLOT="0" 82 SLOT="0"
64LICENSE="GPL-2" 83 LICENSE="GPL-2"
65IUSE="big-tables berkdb debug embedded minimal perl selinux srvdir ssl static" 84 IUSE="big-tables debug embedded minimal perl selinux srvdir ssl static"
66RESTRICT="confcache" 85 RESTRICT="confcache"
67 86
68mysql_version_is_at_least "4.01.00.00" \ 87 mysql_version_is_at_least "4.01.00.00" \
69&& IUSE="${IUSE} latin1" 88 && IUSE="${IUSE} latin1"
70 89
71mysql_version_is_at_least "4.01.03.00" \ 90 mysql_version_is_at_least "4.01.03.00" \
72&& IUSE="${IUSE} cluster extraengine" 91 && IUSE="${IUSE} cluster extraengine"
73 92
74mysql_version_is_at_least "5.00.00.00" \ 93 mysql_version_is_at_least "5.00.00.00" \
75|| IUSE="${IUSE} raid" 94 || IUSE="${IUSE} raid"
76 95
77mysql_version_is_at_least "5.00.18.00" \ 96 mysql_version_is_at_least "5.00.18.00" \
78&& IUSE="${IUSE} max-idx-128" 97 && IUSE="${IUSE} max-idx-128"
79 98
80mysql_version_is_at_least "5.01.00.00" \ 99 mysql_version_is_at_least "5.01.00.00" \
81&& IUSE="${IUSE} innodb" 100 && IUSE="${IUSE} innodb"
101
102 mysql_version_is_at_least "5.01.00.00" \
103 || IUSE="${IUSE} berkdb"
104fi # if [[ "${_MYPVR}" != "${PVR}" ]]
82 105
83EXPORT_FUNCTIONS pkg_setup src_unpack src_compile src_install pkg_preinst \ 106EXPORT_FUNCTIONS pkg_setup src_unpack src_compile src_install pkg_preinst \
84 pkg_postinst pkg_config pkg_postrm 107 pkg_postinst pkg_config pkg_postrm
85 108
86# 109#
87# HELPER FUNCTIONS: 110# HELPER FUNCTIONS:
88# 111#
112
113bitkeeper_fetch() {
114
115 local tpv=( ${PV//[-._]/ } )
116 local reposuf="${tpv[0]}.${tpv[1]}"
117 useq "cluster" && reposuf="${reposuf}-ndb"
118 local repo_uri="bk://mysql.bkbits.net/mysql-${reposuf}"
119 ## -- ebk_store_dir: bitkeeper sources store directory
120 local ebk_store_dir="${PORTAGE_ACTUAL_DISTDIR-${DISTDIR}}/bk-src"
121 ## -- ebk_fetch_cmd: bitkeeper fetch command
122 # always fetch the latest revision, use -r<revision> if a specified revision is wanted
123 # hint: does not work
124 local ebk_fetch_cmd="sfioball"
125 ## -- ebk_update_cmd: bitkeeper update command
126 local ebk_update_cmd="update"
127
128 #addread "/etc/bitkeeper"
129 addwrite "${ebk_store_dir}"
130
131 if [[ ! -d "${ebk_store_dir}" ]]; then
132 debug-print "${FUNCNAME}: initial checkout. creating bitkeeper directory"
133 mkdir -p "${ebk_store_dir}" || die "${EBK}: can't mkdir ${ebk_store_dir}."
134 fi
135
136 pushd "${ebk_store_dir}" || die "${EBK}: can't chdir to ${ebk_store_dir}"
137
138 local wc_path=mysql-${reposuf}
139
140 if [[ ! -d "${wc_path}" ]]; then
141 local options="-r+"
142 # first check out
143 einfo "bitkeeper check out start -->"
144 einfo " repository: ${repo_uri}"
145 ${ebk_fetch_cmd} ${options} "${repo_uri}" ${wc_path} \
146 || die "${EBK}: can't fetch from ${repo_uri}."
147 else
148 if [[ ! -d "${wc_path}/BK" ]]; then
149 popd
150 die "Look like ${wc_path} is not a bitkeeper path."
151 fi
152
153 # update working copy
154 einfo "bitkeeper update start -->"
155 einfo " repository: ${repo_uri}"
156
157 ${ebk_update_cmd} "${repo_uri}" "${wc_path}" \
158 || die "BK: can't update from ${repo_uri} to ${wc_path}."
159
160 fi
161
162 einfo " working copy: ${wc_path}"
163 cd "${wc_path}"
164 rsync -rlpgo --exclude="BK/" . "${S}" || die "BK: can't export to ${S}."
165
166 echo
167 popd
168
169}
170
171mysql_disable_test() {
172 local testname="${1}" ; shift
173 local reason="${@}"
174 local mysql_disable_file="${S}/mysql-test/t/disabled.def"
175 echo ${testname} : ${reason} >> "${mysql_disable_file}"
176 ewarn "test \"${testname}\" disabled because: \"${reason}\""
177}
89 178
90# void mysql_init_vars() 179# void mysql_init_vars()
91# 180#
92# Initialize global variables 181# Initialize global variables
93# 2005-11-19 <vivo@gentoo.org> 182# 2005-11-19 <vivo@gentoo.org>
121 else 210 else
122 DATADIR="${MY_LOCALSTATEDIR}" 211 DATADIR="${MY_LOCALSTATEDIR}"
123 fi 212 fi
124 einfo "Using default DATADIR" 213 einfo "Using default DATADIR"
125 fi 214 fi
126 einfo "MySQL DATADIR is ${DATADIR}" 215 elog "MySQL DATADIR is ${DATADIR}"
127 216
128 if [[ -z "${PREVIOUS_DATADIR}" ]] ; then 217 if [[ -z "${PREVIOUS_DATADIR}" ]] ; then
129 if [[ -e "${DATADIR}" ]] ; then 218 if [[ -e "${DATADIR}" ]] ; then
130 ewarn "Previous datadir found, it's YOUR job to change" 219 elog "Previous datadir found, it's YOUR job to change"
131 ewarn "ownership and take care of it" 220 elog "ownership and take care of it"
132 PREVIOUS_DATADIR="yes" 221 PREVIOUS_DATADIR="yes"
133 else 222 else
134 PREVIOUS_DATADIR="no" 223 PREVIOUS_DATADIR="no"
135 fi 224 fi
136 export PREVIOUS_DATADIR 225 export PREVIOUS_DATADIR
142 export MY_INCLUDEDIR 231 export MY_INCLUDEDIR
143 export DATADIR 232 export DATADIR
144} 233}
145 234
146configure_minimal() { 235configure_minimal() {
147 # these are things we exclude from a minimal build 236 # These are things we exclude from a minimal build, please
148 # note that the server actually does get built and installed 237 # note that the server actually does get built and installed,
149 # but we then delete it before packaging. 238 # but we then delete it before packaging.
150 local minimal_exclude_list="server embedded-server extra-tools innodb bench berkeley-db row-based-replication" 239 local minimal_exclude_list="server embedded-server extra-tools innodb bench berkeley-db row-based-replication"
151 240
152 for i in ${minimal_exclude_list}; do 241 for i in ${minimal_exclude_list} ; do
153 myconf="${myconf} --without-${i}" 242 myconf="${myconf} --without-${i}"
154 done 243 done
155 myconf="${myconf} --with-extra-charsets=none" 244 myconf="${myconf} --with-extra-charsets=none"
245 myconf="${myconf} --enable-local-infile"
246
247 if useq "static" ; then
248 myconf="${myconf} --with-client-ldflags=-all-static"
249 myconf="${myconf} --disable-shared"
250 else
251 myconf="${myconf} --enable-shared --enable-static"
252 fi
253
254 if mysql_version_is_at_least "4.01.00.00" && ! useq "latin1" ; then
255 myconf="${myconf} --with-charset=utf8"
256 myconf="${myconf} --with-collation=utf8_general_ci"
257 else
258 myconf="${myconf} --with-charset=latin1"
259 myconf="${myconf} --with-collation=latin1_swedish_ci"
260 fi
156} 261}
157 262
158configure_common() { 263configure_common() {
264 myconf="${myconf} $(use_with big-tables)"
159 myconf="${myconf} --enable-local-infile" 265 myconf="${myconf} --enable-local-infile"
160 myconf="${myconf} --with-extra-charsets=all" 266 myconf="${myconf} --with-extra-charsets=all"
161 myconf="${myconf} --with-mysqld-user=mysql" 267 myconf="${myconf} --with-mysqld-user=mysql"
268 myconf="${myconf} --with-server"
162 myconf="${myconf} --with-unix-socket-path='/var/run/mysqld/mysqld.sock'" 269 myconf="${myconf} --with-unix-socket-path=/var/run/mysqld/mysqld.sock"
163 myconf="${myconf} --without-libwrap" 270 myconf="${myconf} --without-libwrap"
164 271
165 if useq "static" ; then 272 if useq "static" ; then
166 myconf="${myconf} --with-mysqld-ldflags=-all-static" 273 myconf="${myconf} --with-mysqld-ldflags=-all-static"
167 myconf="${myconf} --with-client-ldflags=-all-static" 274 myconf="${myconf} --with-client-ldflags=-all-static"
168 myconf="${myconf} --disable-shared" 275 myconf="${myconf} --disable-shared"
169 else 276 else
172 279
173 if useq "debug" ; then 280 if useq "debug" ; then
174 myconf="${myconf} --with-debug=full" 281 myconf="${myconf} --with-debug=full"
175 else 282 else
176 myconf="${myconf} --without-debug" 283 myconf="${myconf} --without-debug"
177 mysql_version_is_at_least "4.01.03.00" \ 284 mysql_version_is_at_least "4.1.3" \
178 && useq "cluster" \ 285 && useq "cluster" \
179 && myconf="${myconf} --without-ndb-debug" 286 && myconf="${myconf} --without-ndb-debug"
180 fi 287 fi
181 288
182 if mysql_version_is_at_least "4.01.00.00" && ! useq "latin1" ; then 289 if mysql_version_is_at_least "4.1" && ! useq "latin1" ; then
183 myconf="${myconf} --with-charset=utf8" 290 myconf="${myconf} --with-charset=utf8"
184 myconf="${myconf} --with-collation=utf8_general_ci" 291 myconf="${myconf} --with-collation=utf8_general_ci"
185 else 292 else
186 myconf="${myconf} --with-charset=latin1" 293 myconf="${myconf} --with-charset=latin1"
187 myconf="${myconf} --with-collation=latin1_swedish_ci" 294 myconf="${myconf} --with-collation=latin1_swedish_ci"
188 fi 295 fi
189 296
190 if useq "embedded" ; then 297 if useq "embedded" ; then
191 myconf="${myconf} --with-embedded-privilege-control" 298 myconf="${myconf} --with-embedded-privilege-control"
192 myconf="${myconf} --with-embedded-server" 299 myconf="${myconf} --with-embedded-server"
193 else 300 else
194 myconf="${myconf} --without-embedded-privilege-control" 301 myconf="${myconf} --without-embedded-privilege-control"
201 myconf="${myconf} $(use_with perl bench)" 308 myconf="${myconf} $(use_with perl bench)"
202 myconf="${myconf} --enable-assembler" 309 myconf="${myconf} --enable-assembler"
203 myconf="${myconf} --with-extra-tools" 310 myconf="${myconf} --with-extra-tools"
204 myconf="${myconf} --with-innodb" 311 myconf="${myconf} --with-innodb"
205 myconf="${myconf} --without-readline" 312 myconf="${myconf} --without-readline"
206 mysql_version_is_at_least "5.00.00.00" || myconf="${myconf} $(use_with raid)" 313 mysql_version_is_at_least "5.0" || myconf="${myconf} $(use_with raid)"
207 314
208 if useq "ssl" ; then 315 if useq "ssl" ; then
209 # --with-vio is not needed anymore, it's on by default and 316 # --with-vio is not needed anymore, it's on by default and
210 # has been removed from configure 317 # has been removed from configure
211 mysql_version_is_at_least "5.00.04.00" || myconf="${myconf} --with-vio" 318 mysql_version_is_at_least "5.0.4" || myconf="${myconf} --with-vio"
212 if mysql_version_is_at_least "5.00.06.00" ; then 319 if mysql_version_is_at_least "5.0.6" ; then
213 # myconf="${myconf} --with-yassl" 320 # myconf="${myconf} --with-yassl"
214 myconf="${myconf} --with-openssl" 321 myconf="${myconf} --with-openssl"
215 else 322 else
216 myconf="${myconf} --with-openssl" 323 myconf="${myconf} --with-openssl"
217 fi 324 fi
221 328
222 # The following fix is due to a bug with bdb on SPARC's. See: 329 # The following fix is due to a bug with bdb on SPARC's. See:
223 # http://www.geocrawler.com/mail/msg.php3?msg_id=4754814&list=8 330 # http://www.geocrawler.com/mail/msg.php3?msg_id=4754814&list=8
224 # It comes down to non-64-bit safety problems. 331 # It comes down to non-64-bit safety problems.
225 if useq "sparc" || useq "alpha" || useq "hppa" || useq "mips" || useq "amd64" ; then 332 if useq "sparc" || useq "alpha" || useq "hppa" || useq "mips" || useq "amd64" ; then
226 ewarn "bdb berkeley-db disabled due to incompatible arch" 333 elog "Berkeley DB support was disabled due to incompatible arch"
227 myconf="${myconf} --without-berkeley-db" 334 myconf="${myconf} --without-berkeley-db"
228 else 335 else
336 if useq "berkdb" ; then
229 useq "berkdb" && myconf="${myconf} --with-berkeley-db=./bdb" 337 myconf="${myconf} --with-berkeley-db=./bdb"
338 else
339 myconf="${myconf} --without-berkeley-db"
230 fi 340 fi
341 fi
231 342
232 if mysql_version_is_at_least "4.01.03.00" ; then 343 if mysql_version_is_at_least "4.1.3" ; then
233 myconf="${myconf} --with-geometry" 344 myconf="${myconf} --with-geometry"
234 myconf="${myconf} $(use_with cluster ndbcluster)" 345 myconf="${myconf} $(use_with cluster ndbcluster)"
235 fi 346 fi
236 347
237 mysql_version_is_at_least "4.01.11.00" \
238 && myconf="${myconf} $(use_with big-tables)"
239
240 if mysql_version_is_at_least "4.01.03.00" && useq "extraengine" ; then 348 if mysql_version_is_at_least "4.1.3" && useq "extraengine" ; then
241 # http://dev.mysql.com/doc/mysql/en/archive-storage-engine.html 349 # http://dev.mysql.com/doc/mysql/en/archive-storage-engine.html
242 myconf="${myconf} --with-archive-storage-engine" 350 myconf="${myconf} --with-archive-storage-engine"
243 351
244 # http://dev.mysql.com/doc/mysql/en/csv-storage-engine.html 352 # http://dev.mysql.com/doc/mysql/en/csv-storage-engine.html
245 myconf="${myconf} --with-csv-storage-engine" 353 myconf="${myconf} --with-csv-storage-engine"
248 myconf="${myconf} --with-blackhole-storage-engine" 356 myconf="${myconf} --with-blackhole-storage-engine"
249 357
250 # http://dev.mysql.com/doc/mysql/en/federated-storage-engine.html 358 # http://dev.mysql.com/doc/mysql/en/federated-storage-engine.html
251 # http://dev.mysql.com/doc/mysql/en/federated-description.html 359 # http://dev.mysql.com/doc/mysql/en/federated-description.html
252 # http://dev.mysql.com/doc/mysql/en/federated-limitations.html 360 # http://dev.mysql.com/doc/mysql/en/federated-limitations.html
253 if mysql_version_is_at_least "5.00.03.00" ; then 361 if mysql_version_is_at_least "5.0.3" ; then
254 einfo "Before using the Federated storage engine, please be sure to read" 362 elog "Before using the Federated storage engine, please be sure to read"
255 einfo "http://dev.mysql.com/doc/mysql/en/federated-limitations.html" 363 elog "http://dev.mysql.com/doc/mysql/en/federated-limitations.html"
256 myconf="${myconf} --with-federated-storage-engine" 364 myconf="${myconf} --with-federated-storage-engine"
257 fi 365 fi
258 fi 366 fi
259 367
260 mysql_version_is_at_least "5.00.18.00" \ 368 mysql_version_is_at_least "5.0.18" \
261 && useq "max-idx-128" \ 369 && useq "max-idx-128" \
262 && myconf="${myconf} --with-max-indexes=128" 370 && myconf="${myconf} --with-max-indexes=128"
263} 371}
264 372
265configure_51() { 373configure_51() {
266 # TODO : !!!!! readd --withouth-readline 374 # TODO: !!!! readd --without-readline
267 # the failure depend upon config/ac-macros/readline.m4 checking into 375 # the failure depend upon config/ac-macros/readline.m4 checking into
268 # readline.h instead of history.h 376 # readline.h instead of history.h
269 myconf="${myconf} $(use_with big-tables)"
270 myconf="${myconf} $(use_with ssl)" 377 myconf="${myconf} $(use_with ssl)"
271 myconf="${myconf} --enable-assembler" 378 myconf="${myconf} --enable-assembler"
272 myconf="${myconf} --with-geometry" 379 myconf="${myconf} --with-geometry"
273 myconf="${myconf} --with-readline" 380 myconf="${myconf} --with-readline"
274 myconf="${myconf} --with-row-based-replication" 381 myconf="${myconf} --with-row-based-replication"
275 myconf="${myconf} --with-zlib=/usr/$(get_libdir)" 382 myconf="${myconf} --with-zlib=/usr/$(get_libdir)"
276 myconf="${myconf} --without-pstack" 383 myconf="${myconf} --without-pstack"
277 useq "max-idx-128" && myconf="${myconf} --with-max-indexes=128" 384 useq "max-idx-128" && myconf="${myconf} --with-max-indexes=128"
278 385
279 # 5.1 introduces a new way to manage storage engines (plugins) 386 # 5.1 introduces a new way to manage storage engines (plugins)
280 # like configuration=none 387 # like configuration=none
281 local plugins="csv,myisam,myisammrg,heap" 388 local plugins="csv,myisam,myisammrg,heap"
282 if useq "extraengine" ; then 389 if useq "extraengine" ; then
283 # like configuration=max-no-ndb, archive and example removed in 5.1.11 390 # like configuration=max-no-ndb, archive and example removed in 5.1.11
284 plugins="${plugins},blackhole,federated,ftexample,partition" 391 plugins="${plugins},archive,blackhole,example,federated,partition"
285 392
286 einfo "before to use federated engine be sure to read" 393 elog "Before using the Federated storage engine, please be sure to read"
287 einfo "http://dev.mysql.com/doc/refman/5.1/en/federated-limitations.html" 394 elog "http://dev.mysql.com/doc/refman/5.1/en/federated-limitations.html"
288 fi 395 fi
289 396
290 if useq "innodb" ; then 397 if useq "innodb" ; then
291 plugins="${plugins},innobase" 398 plugins="${plugins},innobase"
292 fi 399 fi
298 fi 405 fi
299 406
300 myconf="${myconf} --with-plugins=${plugins}" 407 myconf="${myconf} --with-plugins=${plugins}"
301} 408}
302 409
410pbxt_src_compile() {
411 mysql_init_vars
412
413 pushd "${WORKDIR}/pbxt-${PBXT_VERSION}" &>/dev/null
414
415 einfo "Reconfiguring dir '${PWD}'"
416 AT_GNUCONF_UPDATE="yes" eautoreconf
417
418 local myconf
419 myconf="${myconf} --with-mysql=${S}"
420 mkdir -p ${T}/lib
421 myconf="${myconf} --libdir=${D}/${MY_LIBDIR}"
422 useq "debug" && myconf="${myconf} --with-debug=full"
423 # TODO is safe/needed to use econf here ?
424 ./configure ${myconf} || die "problem configuring pbxt storage engine"
425 # TODO is safe/needed to use emake here ?
426 make || die "problem making pbxt storage engine (${myconf})"
427
428 popd
429 # TODO: modify test suite
430}
431
432pbxt_src_install() {
433 pushd "${WORKDIR}/pbxt-${PBXT_VERSION}" &>/dev/null
434 make install || die "failed pbxt install"
435 popd
436}
437
303# 438#
304# EBUILD FUNCTIONS 439# EBUILD FUNCTIONS
305# 440#
306 441
307mysql_pkg_setup() { 442mysql_pkg_setup() {
308 enewgroup mysql 60 || die "problem adding 'mysql' group" 443 enewgroup mysql 60 || die "problem adding 'mysql' group"
309 enewuser mysql 60 -1 /dev/null mysql || die "problem adding 'mysql' user" 444 enewuser mysql 60 -1 /dev/null mysql || die "problem adding 'mysql' user"
310
311 if mysql_version_is_at_least "5.01.12.00" && useq "innodb" ; then
312 die "innodb now use cmake to build this is a TODO item"
313 fi
314 445
315 # Check for USE flag problems in pkg_setup 446 # Check for USE flag problems in pkg_setup
316 if useq "static" && useq "ssl" ; then 447 if useq "static" && useq "ssl" ; then
317 eerror "MySQL does not support being built statically with SSL support enabled!" 448 eerror "MySQL does not support being built statically with SSL support enabled!"
318 die "MySQL does not support being built statically with SSL support enabled!" 449 die "MySQL does not support being built statically with SSL support enabled!"
319 fi 450 fi
320 451
321 if ! mysql_version_is_at_least "5.00.00.00" \ 452 if ! mysql_version_is_at_least "5.0" \
322 && useq "raid" \ 453 && useq "raid" \
323 && useq "static" ; then 454 && useq "static" ; then
324 eerror "USE flags 'raid' and 'static' conflict, you cannot build MySQL statically" 455 eerror "USE flags 'raid' and 'static' conflict, you cannot build MySQL statically"
325 eerror "with RAID support enabled." 456 eerror "with RAID support enabled."
326 die "USE flags 'raid' and 'static' conflict!" 457 die "USE flags 'raid' and 'static' conflict!"
327 fi 458 fi
328 459
329 if mysql_version_is_at_least "4.01.03.00" \ 460 if mysql_version_is_at_least "4.1.3" \
330 && ( useq "cluster" || useq "extraengine" ) \ 461 && ( useq "cluster" || useq "extraengine" ) \
331 && useq "minimal" ; then 462 && useq "minimal" ; then
332 eerror "USE flags 'cluster' and 'extraengine' conflict with 'minimal' USE flag!" 463 eerror "USE flags 'cluster' and 'extraengine' conflict with 'minimal' USE flag!"
333 die "USE flags 'cluster' and 'extraengine' conflict with 'minimal' USE flag!" 464 die "USE flags 'cluster' and 'extraengine' conflict with 'minimal' USE flag!"
334 fi 465 fi
335 466
467 mysql_check_version_range "4.0 to 5.0.99.99" \
468 && useq "berkdb" \
336 useq "berkdb" && ewarn "Berkley DB support is deprecated and will be removed in future versions" 469 && elog "Berkeley DB support is deprecated and will be removed in future versions!"
337} 470}
338 471
339mysql_src_unpack() { 472mysql_src_unpack() {
340 # Initialize the proper variables first 473 # Initialize the proper variables first
341 mysql_init_vars 474 mysql_init_vars
342 475
343 unpack ${A} 476 unpack ${A}
344 477
345 mv -f "${WORKDIR}/${P/_/-}${MYSQL_RERELEASE}" "${S}" 478 mv -f "${WORKDIR}/${MY_P}${MYSQL_RERELEASE}" "${S}"
346 cd "${S}" 479 cd "${S}"
347 480
348 # Apply the patches for this MySQL version 481 # Apply the patches for this MySQL version
349 if [[ -d "${WORKDIR}/${MY_FIXED_PV}" ]] ; then 482 if [[ -d "${WORKDIR}/${MY_FIXED_PV}" ]] ; then
350 EPATCH_SOURCE="${WORKDIR}/${MY_FIXED_PV}" EPATCH_SUFFIX="patch" epatch 483 EPATCH_SOURCE="${WORKDIR}/${MY_FIXED_PV}" EPATCH_SUFFIX="patch" epatch
359 find . -name 'Makefile.am' \ 492 find . -name 'Makefile.am' \
360 -exec sed --in-place -e 's!$(pkgdatadir)!'${MY_SHAREDSTATEDIR}'!g' {} \; 493 -exec sed --in-place -e 's!$(pkgdatadir)!'${MY_SHAREDSTATEDIR}'!g' {} \;
361 494
362 # Manage mysqlmanager 495 # Manage mysqlmanager
363 mysql_version_is_at_least "5.00.15.00" \ 496 mysql_version_is_at_least "5.00.15.00" \
364 && sed -i -e "s!@GENTOO_EXT@!${MY_SUFFIX}!g" \ 497 && sed -i -e "s!@GENTOO_EXT@!!g" \
365 -e "s!@GENTOO_SOCK_PATH@!var/run/mysqld!g" \ 498 -e "s!@GENTOO_SOCK_PATH@!var/run/mysqld!g" \
366 "${S}/server-tools/instance-manager/Makefile.am" 499 "${S}/server-tools/instance-manager/Makefile.am"
367 500
368 if mysql_version_is_at_least "4.01.00.00" ; then 501 if mysql_version_is_at_least "4.01.00.00" ; then
369 # Remove what needs to be recreated, so we're sure it's actually done 502 # Remove what needs to be recreated, so we're sure it's actually done
373 -exec rm -f {} \; 506 -exec rm -f {} \;
374 rm -f "ltmain.sh" 507 rm -f "ltmain.sh"
375 rm -f "scripts/mysqlbug" 508 rm -f "scripts/mysqlbug"
376 fi 509 fi
377 510
378 local rebuilddirlist bdbdir d 511 local rebuilddirlist d
379 512
380 if mysql_version_is_at_least "5.01.00.00" ; then 513 if mysql_version_is_at_least "5.1.12" ; then
381 rebuilddirlist=". storage/innobase" 514 rebuilddirlist="."
382 bdbdir='storage/bdb/dist' 515 # TODO IMPO! Check this with a cmake expert
516 useq "innodb" \
517 && cmake \
518 -DCMAKE_C_COMPILER=$(which $(tc-getCC)) \
519 -DCMAKE_CXX_COMPILER=$(which $(tc-getCC)) \
520 "storage/innobase"
383 else 521 else
384 rebuilddirlist=". innobase" 522 rebuilddirlist=". innobase"
385 bdbdir='bdb/dist'
386 fi 523 fi
387 524
388 for d in ${rebuilddirlist} ; do 525 for d in ${rebuilddirlist} ; do
389 einfo "Reconfiguring dir '${d}'" 526 einfo "Reconfiguring dir '${d}'"
390 pushd "${d}" &>/dev/null 527 pushd "${d}" &>/dev/null
391 AT_GNUCONF_UPDATE="yes" eautoreconf 528 AT_GNUCONF_UPDATE="yes" eautoreconf
392 popd &>/dev/null 529 popd &>/dev/null
393 done 530 done
394 531
395 # TODO: berkdb in MySQL 5.1 needs to be worked on
396 if useq "berkdb" \
397 && ! mysql_check_version_range "4.00.00.00 to 4.00.99.99" \ 532 if mysql_check_version_range "4.1 to 5.0.99.99" \
398 && ! mysql_check_version_range "5.01.00.00 to 5.01.08.99" ; then 533 && useq "berkdb" ; then
399 [[ -w "${bdbdir}/ltmain.sh" ]] && cp -f "ltmain.sh" "${bdbdir}/ltmain.sh" 534 [[ -w "bdb/dist/ltmain.sh" ]] && cp -f "ltmain.sh" "bdb/dist/ltmain.sh"
400 pushd "${bdbdir}" \ 535 pushd "bdb/dist" \
401 && sh s_all \ 536 && sh s_all \
402 || die "Failed bdb reconfigure" \ 537 || die "Failed bdb reconfigure" \
403 &>/dev/null 538 &>/dev/null
404 popd &>/dev/null 539 popd &>/dev/null
405 fi 540 fi
407 542
408mysql_src_compile() { 543mysql_src_compile() {
409 # Make sure the vars are correctly initialized 544 # Make sure the vars are correctly initialized
410 mysql_init_vars 545 mysql_init_vars
411 546
547 # $myconf is modified by the configure_* functions
412 local myconf 548 local myconf=""
413 549
414 if useq "static" ; then
415 myconf="${myconf} --with-mysqld-ldflags=-all-static"
416 myconf="${myconf} --with-client-ldflags=-all-static"
417 myconf="${myconf} --disable-shared"
418 else
419 myconf="${myconf} --enable-shared --enable-static"
420 fi
421
422 myconf="${myconf} --without-libwrap"
423
424 if useq "ssl" ; then 550 if useq "minimal" ; then
425 # --with-vio is not needed anymore, it's on by default and 551 configure_minimal
426 # has been removed from configure 552 else
427 mysql_version_is_at_least "5.00.04.00" || myconf="${myconf} --with-vio" 553 configure_common
428 if mysql_version_is_at_least "5.00.06.00" ; then 554 if mysql_version_is_at_least "5.1.10" ; then
429 # yassl-0.96 is still young and breaks with GCC-4.X or amd64 555 configure_51
430 # myconf="${myconf} --with-yassl"
431 myconf="${myconf} --with-openssl"
432 else 556 else
433 myconf="${myconf} --with-openssl" 557 configure_40_41_50
434 fi
435 else
436 myconf="${myconf} --without-openssl"
437 fi
438
439 if useq "debug" ; then
440 myconf="${myconf} --with-debug=full"
441 else
442 myconf="${myconf} --without-debug"
443
444 mysql_version_is_at_least "4.01.03.00" && useq "cluster" \
445 && myconf="${myconf} --without-ndb-debug"
446 fi
447
448 # These are things we exclude from a minimal build.
449 # Note that the server actually does get built and installed,
450 # but we then delete it.
451 local minimal_exclude_list="server embedded-server extra-tools innodb bench"
452
453 if ! useq "minimal" ; then
454 myconf="${myconf} --with-server"
455 myconf="${myconf} --with-extra-tools"
456
457 if ! mysql_version_is_at_least "5.00.00.00" ; then
458 if useq "raid" ; then
459 myconf="${myconf} --with-raid"
460 else
461 myconf="${myconf} --without-raid"
462 fi 558 fi
463 fi
464
465 if mysql_version_is_at_least "4.01.00.00" && ! useq "latin1" ; then
466 myconf="${myconf} --with-charset=utf8"
467 myconf="${myconf} --with-collation=utf8_general_ci"
468 else
469 myconf="${myconf} --with-charset=latin1"
470 myconf="${myconf} --with-collation=latin1_swedish_ci"
471 fi
472
473 # Optional again with MySQL 5.1
474 if mysql_version_is_at_least "5.01.00.00" ; then
475 if useq "innodb" ; then
476 myconf="${myconf} --with-innodb"
477 else
478 myconf="${myconf} --without-innodb"
479 fi
480 fi
481
482 # Lots of charsets
483 myconf="${myconf} --with-extra-charsets=all"
484
485 # The following fix is due to a bug with bdb on SPARC's. See:
486 # http://www.geocrawler.com/mail/msg.php3?msg_id=4754814&list=8
487 # It comes down to non-64-bit safety problems.
488 if useq "sparc" || useq "alpha" || useq "hppa" || useq "mips" || useq "amd64" ; then
489 ewarn "bdb berkeley-db disabled due to incompatible arch"
490 myconf="${myconf} --without-berkeley-db"
491 else
492 # TODO: berkdb in MySQL 5.1 needs to be worked on
493 if useq "berkdb" && ! mysql_check_version_range "5.01.00.00 to 5.01.08.99" ; then
494 myconf="${myconf} --with-berkeley-db=./bdb"
495 else
496 myconf="${myconf} --without-berkeley-db"
497 fi
498 fi
499
500 if mysql_version_is_at_least "4.01.03.00" ; then
501 myconf="${myconf} --with-geometry"
502
503 if useq "cluster" ; then
504 myconf="${myconf} --with-ndbcluster"
505 else
506 myconf="${myconf} --without-ndbcluster"
507 fi
508 fi
509
510 if useq "big-tables" ; then
511 myconf="${myconf} --with-big-tables"
512 else
513 myconf="${myconf} --without-big-tables"
514 fi
515
516 mysql_version_is_at_least "5.01.06.00" \
517 && myconf="${myconf} --with-ndb-binlog"
518
519 if useq "embedded" ; then
520 myconf="${myconf} --with-embedded-privilege-control"
521 myconf="${myconf} --with-embedded-server"
522 else
523 myconf="${myconf} --without-embedded-privilege-control"
524 myconf="${myconf} --without-embedded-server"
525 fi
526
527 # Benchmarking stuff needs Perl
528 if useq "perl" ; then
529 myconf="${myconf} --with-bench"
530 else
531 myconf="${myconf} --without-bench"
532 fi
533 else
534 for i in ${minimal_exclude_list} ; do
535 myconf="${myconf} --without-${i}"
536 done
537 myconf="${myconf} --without-berkeley-db"
538 myconf="${myconf} --with-extra-charsets=none"
539 fi
540
541 if mysql_version_is_at_least "4.01.03.00" && useq "extraengine" ; then
542 # http://dev.mysql.com/doc/mysql/en/archive-storage-engine.html
543 myconf="${myconf} --with-archive-storage-engine"
544
545 # http://dev.mysql.com/doc/mysql/en/csv-storage-engine.html
546 myconf="${myconf} --with-csv-storage-engine"
547
548 # http://dev.mysql.com/doc/mysql/en/blackhole-storage-engine.html
549 myconf="${myconf} --with-blackhole-storage-engine"
550
551 # http://dev.mysql.com/doc/mysql/en/federated-storage-engine.html
552 # http://dev.mysql.com/doc/mysql/en/federated-description.html
553 # http://dev.mysql.com/doc/mysql/en/federated-limitations.html
554 if mysql_version_is_at_least "5.00.03.00" ; then
555 einfo "Before using the Federated storage engine, please be sure to read"
556 einfo "http://dev.mysql.com/doc/mysql/en/federated-limitations.html"
557 myconf="${myconf} --with-federated-storage-engine"
558 fi
559
560 # http://dev.mysql.com/doc/refman/5.1/en/partitioning-overview.html
561 if mysql_version_is_at_least "5.01.00.00" ; then
562 myconf="${myconf} --with-partition"
563 fi
564 fi
565
566 mysql_version_is_at_least "5.00.18.00" \
567 && useq "max-idx-128" \
568 && myconf="${myconf} --with-max-indexes=128"
569
570 mysql_version_is_at_least "5.01.05.00" \
571 && myconf="${myconf} --with-row-based-replication"
572
573 # TODO: Rechek again later, there were problems with assembler enabled
574 # and some combination of USE flags with MySQL 5.1
575 if mysql_check_version_range "5.01.00.00 to 5.01.08.99" ; then
576 myconf="${myconf} --disable-assembler"
577 else
578 myconf="${myconf} --enable-assembler"
579 fi 559 fi
580 560
581 # Bug #114895, bug #110149 561 # Bug #114895, bug #110149
582 filter-flags "-O" "-O[01]" 562 filter-flags "-O" "-O[01]"
583 563
584 # glib-2.3.2_pre fix, bug #16496 564 # glib-2.3.2_pre fix, bug #16496
585 append-flags "-DHAVE_ERRNO_AS_DEFINE=1" 565 append-flags "-DHAVE_ERRNO_AS_DEFINE=1"
586 566
587 append-flags "-fno-exceptions -fno-strict-aliasing" 567 CXXFLAGS="${CXXFLAGS} -fno-exceptions -fno-strict-aliasing"
588 CXXFLAGS="${CXXFLAGS} -felide-constructors -fno-rtti" 568 CXXFLAGS="${CXXFLAGS} -felide-constructors -fno-rtti"
589 mysql_version_is_at_least "5.00.00.00" \ 569 mysql_version_is_at_least "5.0" \
590 && CXXFLAGS="${CXXFLAGS} -fno-implicit-templates" 570 && CXXFLAGS="${CXXFLAGS} -fno-implicit-templates"
591 export CXXFLAGS="${CXXFLAGS}" 571 export CXXFLAGS
592 572
593 econf \ 573 econf \
594 --libexecdir="/usr/sbin" \ 574 --libexecdir="/usr/sbin" \
595 --sysconfdir="${MY_SYSCONFDIR}" \ 575 --sysconfdir="${MY_SYSCONFDIR}" \
596 --localstatedir="${MY_LOCALSTATEDIR}" \ 576 --localstatedir="${MY_LOCALSTATEDIR}" \
597 --sharedstatedir="${MY_SHAREDSTATEDIR}" \ 577 --sharedstatedir="${MY_SHAREDSTATEDIR}" \
598 --libdir="${MY_LIBDIR}" \ 578 --libdir="${MY_LIBDIR}" \
599 --includedir="${MY_INCLUDEDIR}" \ 579 --includedir="${MY_INCLUDEDIR}" \
600 --with-low-memory \ 580 --with-low-memory \
601 --enable-local-infile \
602 --with-mysqld-user=mysql \
603 --with-client-ldflags=-lstdc++ \ 581 --with-client-ldflags=-lstdc++ \
604 --enable-thread-safe-client \ 582 --enable-thread-safe-client \
605 --with-comment="Gentoo Linux ${PF}" \ 583 --with-comment="Gentoo Linux ${PF}" \
606 --with-unix-socket-path="/var/run/mysqld/mysqld.sock" \
607 --without-readline \
608 --without-docs \ 584 --without-docs \
609 ${myconf} || die "bad ./configure" 585 ${myconf} || die "econf failed"
610 586
611 # TODO: Move this before autoreconf !!! 587 # TODO: Move this before autoreconf !!!
612 find . -type f -name Makefile -print0 \ 588 find . -type f -name Makefile -print0 \
613 | xargs -0 -n100 sed -i \ 589 | xargs -0 -n100 sed -i \
614 -e 's|^pkglibdir *= *$(libdir)/mysql|pkglibdir = $(libdir)|;s|^pkgincludedir *= *$(includedir)/mysql|pkgincludedir = $(includedir)|' 590 -e 's|^pkglibdir *= *$(libdir)/mysql|pkglibdir = $(libdir)|;s|^pkgincludedir *= *$(includedir)/mysql|pkgincludedir = $(includedir)|'
615 591
616 emake || die "compile problem" 592 emake || die "emake failed"
617} 593}
618 594
619mysql_src_install() { 595mysql_src_install() {
620 # Make sure the vars are correctly initialized 596 # Make sure the vars are correctly initialized
621 mysql_init_vars 597 mysql_init_vars
622 598
623 make install DESTDIR="${D}" benchdir_root="${MY_SHAREDSTATEDIR}" || die "make install error" 599 emake install DESTDIR="${D}" benchdir_root="${MY_SHAREDSTATEDIR}" || die "emake install failed"
624 600
625 insinto "${MY_INCLUDEDIR}" 601 insinto "${MY_INCLUDEDIR}"
626 doins "${MY_INCLUDEDIR}"/my_{config,dir}.h 602 doins "${MY_INCLUDEDIR}"/my_{config,dir}.h
627 603
628 # Convenience links 604 # Convenience links
645 rm -f "${D}/usr/sbin/mysqld" 621 rm -f "${D}/usr/sbin/mysqld"
646 rm -f "${D}${MY_LIBDIR}"/lib{heap,merge,nisam,my{sys,strings,sqld,isammrg,isam},vio,dbug}.a 622 rm -f "${D}${MY_LIBDIR}"/lib{heap,merge,nisam,my{sys,strings,sqld,isammrg,isam},vio,dbug}.a
647 fi 623 fi
648 624
649 # Configuration stuff 625 # Configuration stuff
650 if mysql_version_is_at_least "4.01.00.00" ; then 626 if mysql_version_is_at_least "4.1" ; then
651 mysql_mycnf_version="4.1" 627 mysql_mycnf_version="4.1"
652 else 628 else
653 mysql_mycnf_version="4.0" 629 mysql_mycnf_version="4.0"
654 fi 630 fi
655 insinto "${MY_SYSCONFDIR}" 631 insinto "${MY_SYSCONFDIR}"
656 doins "scripts/mysqlaccess.conf" 632 doins "scripts/mysqlaccess.conf"
657 sed -e "s!@DATADIR@!${DATADIR}!g" \ 633 sed -e "s!@DATADIR@!${DATADIR}!g" \
658 "${FILESDIR}/my.cnf-${mysql_mycnf_version}" \ 634 "${FILESDIR}/my.cnf-${mysql_mycnf_version}" \
659 > "${TMPDIR}/my.cnf.ok" 635 > "${TMPDIR}/my.cnf.ok"
660 if mysql_version_is_at_least "4.01.00.00" && useq "latin1" ; then 636 if mysql_version_is_at_least "4.1" && useq "latin1" ; then
661 sed -e "s|utf8|latin1|g" -i "${TMPDIR}/my.cnf.ok" 637 sed -e "s|utf8|latin1|g" -i "${TMPDIR}/my.cnf.ok"
662 fi 638 fi
663 newins "${TMPDIR}/my.cnf.ok" my.cnf 639 newins "${TMPDIR}/my.cnf.ok" my.cnf
664 640
665 insinto "/etc/conf.d" 641 insinto "/etc/conf.d"
735 chmod 0660 "${ROOT}${MY_LOGDIR}"/mysql* 711 chmod 0660 "${ROOT}${MY_LOGDIR}"/mysql*
736 712
737 if ! useq "minimal" ; then 713 if ! useq "minimal" ; then
738 # Your friendly public service announcement ... 714 # Your friendly public service announcement ...
739 einfo 715 einfo
740 einfo "You might want to run:" 716 elog "You might want to run:"
741 einfo "\"emerge --config =${CATEGORY}/${PF}\"" 717 elog "\"emerge --config =${CATEGORY}/${PF}\""
742 einfo "if this is a new install." 718 elog "if this is a new install."
743 einfo 719 einfo
744 mysql_version_is_at_least "5.01.00.00" \ 720 mysql_version_is_at_least "5.01.00.00" \
745 || einfo "InnoDB is *not* optional as of MySQL-4.0.24, at the request of upstream." 721 || elog "InnoDB is *not* optional as of MySQL-4.0.24, at the request of upstream."
746 fi 722 fi
723 mysql_check_version_range "4.0 to 5.0.99.99" \
724 && useq "berkdb" \
747 useq "berkdb" && ewarn "Berkley DB support is deprecated and will be removed in future versions" 725 && elog "Berkeley DB support is deprecated and will be removed in future versions!"
748} 726}
749 727
750mysql_pkg_config() { 728mysql_pkg_config() {
751 # Make sure the vars are correctly initialized 729 # Make sure the vars are correctly initialized
752 mysql_init_vars 730 mysql_init_vars
753 731
754 [[ -z "${DATADIR}" ]] && die "Sorry, unable to find DATADIR" 732 [[ -z "${DATADIR}" ]] && die "Sorry, unable to find DATADIR"
755 733
756 if built_with_use dev-db/mysql minimal ; then 734 if built_with_use ${CATEGORY}/${PN} minimal ; then
757 die "Minimal builds do NOT include the MySQL server" 735 die "Minimal builds do NOT include the MySQL server"
758 fi 736 fi
759 737
760 local pwd1="a" 738 local pwd1="a"
761 local pwd2="b" 739 local pwd2="b"
797 [[ -f "${ROOT}/${DATADIR}/mysql/user.frm" ]] \ 775 [[ -f "${ROOT}/${DATADIR}/mysql/user.frm" ]] \
798 || die "MySQL databases not installed" 776 || die "MySQL databases not installed"
799 chown -R mysql:mysql "${ROOT}/${DATADIR}" 2> /dev/null 777 chown -R mysql:mysql "${ROOT}/${DATADIR}" 2> /dev/null
800 chmod 0750 "${ROOT}/${DATADIR}" 2> /dev/null 778 chmod 0750 "${ROOT}/${DATADIR}" 2> /dev/null
801 779
802 if mysql_version_is_at_least "4.01.03.00" ; then 780 if mysql_version_is_at_least "4.1.3" ; then
803 options="--skip-ndbcluster" 781 options="--skip-ndbcluster"
804 782
805 # Filling timezones, see 783 # Filling timezones, see
806 # http://dev.mysql.com/doc/mysql/en/time-zone-support.html 784 # http://dev.mysql.com/doc/mysql/en/time-zone-support.html
807 "${ROOT}/usr/bin/mysql_tzinfo_to_sql" "${ROOT}/usr/share/zoneinfo" > "${sqltmp}" 2>/dev/null 785 "${ROOT}/usr/bin/mysql_tzinfo_to_sql" "${ROOT}/usr/share/zoneinfo" > "${sqltmp}" 2>/dev/null
856 wait %1 834 wait %1
857 einfo "Done" 835 einfo "Done"
858} 836}
859 837
860mysql_pkg_postrm() { 838mysql_pkg_postrm() {
861 mysql_lib_symlinks 839 : #mysql_lib_symlinks
862} 840}

Legend:
Removed from v.1.38  
changed lines
  Added in v.1.54

  ViewVC Help
Powered by ViewVC 1.1.20