1 | # Copyright 1999-2011 Gentoo Foundation |
1 | # Copyright 1999-2012 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-v2.eclass,v 1.2 2011/07/20 14:23:11 jmbsvicetto Exp $ |
3 | # $Header: /var/cvsroot/gentoo-x86/eclass/mysql-v2.eclass,v 1.17 2012/07/23 10:57:15 jmbsvicetto Exp $ |
4 | |
4 | |
5 | # @ECLASS: mysql-v2.eclass |
5 | # @ECLASS: mysql-v2.eclass |
6 | # @MAINTAINER: |
6 | # @MAINTAINER: |
7 | # Maintainers: |
7 | # Maintainers: |
8 | # - MySQL Team <mysql-bugs@gentoo.org> |
8 | # - MySQL Team <mysql-bugs@gentoo.org> |
… | |
… | |
13 | # The mysql-v2.eclass is the base eclass to build the mysql and |
13 | # The mysql-v2.eclass is the base eclass to build the mysql and |
14 | # alternative projects (mariadb) ebuilds. |
14 | # alternative projects (mariadb) ebuilds. |
15 | # This eclass uses the mysql-autotools and mysql-cmake eclasses for the |
15 | # This eclass uses the mysql-autotools and mysql-cmake eclasses for the |
16 | # specific bits related to the build system. |
16 | # specific bits related to the build system. |
17 | # It provides the src_unpack, src_prepare, src_configure, src_compile, |
17 | # It provides the src_unpack, src_prepare, src_configure, src_compile, |
18 | # scr_install, pkg_preinst, pkg_postinst, pkg_config and pkg_postrm |
18 | # src_install, pkg_preinst, pkg_postinst, pkg_config and pkg_postrm |
19 | # phase hooks. |
19 | # phase hooks. |
20 | |
20 | |
21 | # @ECLASS-VARIABLE: BUILD |
21 | # @ECLASS-VARIABLE: BUILD |
|
|
22 | # @DESCRIPTION: |
22 | # @DESCRIPTION: Build type of the mysql version |
23 | # Build type of the mysql version |
23 | # The default value is autotools |
|
|
24 | : ${BUILD:=autotools} |
24 | : ${BUILD:=autotools} |
25 | |
25 | |
26 | case ${BUILD} in |
26 | case ${BUILD} in |
27 | "cmake") |
27 | "cmake") |
28 | BUILD_INHERIT="mysql-cmake" |
28 | BUILD_INHERIT="mysql-cmake" |
… | |
… | |
39 | esac |
39 | esac |
40 | |
40 | |
41 | MYSQL_EXTRAS="" |
41 | MYSQL_EXTRAS="" |
42 | |
42 | |
43 | # @ECLASS-VARIABLE: MYSQL_EXTRAS_VER |
43 | # @ECLASS-VARIABLE: MYSQL_EXTRAS_VER |
|
|
44 | # @DESCRIPTION: |
44 | # @DESCRIPTION: The version of the MYSQL_EXTRAS repo to use to build mysql |
45 | # The version of the MYSQL_EXTRAS repo to use to build mysql |
|
|
46 | # Use "none" to disable it's use |
45 | [[ "${MY_EXTRAS_VER}" == "live" ]] && MYSQL_EXTRAS="git-2" |
47 | [[ "${MY_EXTRAS_VER}" == "live" ]] && MYSQL_EXTRAS="git-2" |
46 | |
48 | |
47 | inherit eutils flag-o-matic gnuconfig ${MYSQL_EXTRAS} ${BUILD_INHERIT} mysql_fx versionator toolchain-funcs |
49 | inherit eutils flag-o-matic gnuconfig ${MYSQL_EXTRAS} ${BUILD_INHERIT} mysql_fx versionator toolchain-funcs |
48 | |
50 | |
49 | # |
51 | # |
50 | # Supported EAPI versions and export functions |
52 | # Supported EAPI versions and export functions |
51 | # |
53 | # |
52 | |
54 | |
53 | case "${EAPI:-0}" in |
55 | case "${EAPI:-0}" in |
54 | 2|3|4) ;; |
56 | 3|4) ;; |
55 | *) die "Unsupported EAPI: ${EAPI}" ;; |
57 | *) die "Unsupported EAPI: ${EAPI}" ;; |
56 | esac |
58 | esac |
57 | |
59 | |
58 | EXPORT_FUNCTIONS pkg_setup src_unpack src_prepare src_configure src_compile src_install |
60 | EXPORT_FUNCTIONS pkg_setup src_unpack src_prepare src_configure src_compile src_install pkg_preinst pkg_postinst pkg_config pkg_postrm |
59 | |
61 | |
60 | # |
62 | # |
61 | # VARIABLES: |
63 | # VARIABLES: |
62 | # |
64 | # |
63 | |
65 | |
… | |
… | |
75 | # @DESCRIPTION: |
77 | # @DESCRIPTION: |
76 | # Upstream MySQL considers the first two parts of the version number to be the |
78 | # Upstream MySQL considers the first two parts of the version number to be the |
77 | # major version. Upgrades that change major version should always run |
79 | # major version. Upgrades that change major version should always run |
78 | # mysql_upgrade. |
80 | # mysql_upgrade. |
79 | MYSQL_PV_MAJOR="$(get_version_component_range 1-2 ${PV})" |
81 | MYSQL_PV_MAJOR="$(get_version_component_range 1-2 ${PV})" |
80 | |
|
|
81 | # Cluster is a special case... |
|
|
82 | if [[ "${PN}" == "mysql-cluster" ]]; then |
|
|
83 | case $PV in |
|
|
84 | 6.1*|7.0*|7.1*) MYSQL_PV_MAJOR=5.1 ;; |
|
|
85 | esac |
|
|
86 | fi |
|
|
87 | |
|
|
88 | |
82 | |
89 | # @ECLASS-VARIABLE: MYSQL_VERSION_ID |
83 | # @ECLASS-VARIABLE: MYSQL_VERSION_ID |
90 | # @DESCRIPTION: |
84 | # @DESCRIPTION: |
91 | # MYSQL_VERSION_ID will be: |
85 | # MYSQL_VERSION_ID will be: |
92 | # major * 10e6 + minor * 10e4 + micro * 10e2 + gentoo revision number, all [0..99] |
86 | # major * 10e6 + minor * 10e4 + micro * 10e2 + gentoo revision number, all [0..99] |
… | |
… | |
106 | MYSQL_VERSION_ID=${MYSQL_VERSION_ID##"0"} |
100 | MYSQL_VERSION_ID=${MYSQL_VERSION_ID##"0"} |
107 | |
101 | |
108 | # This eclass should only be used with at least mysql-5.1.50 |
102 | # This eclass should only be used with at least mysql-5.1.50 |
109 | mysql_version_is_at_least "5.1.50" || die "This eclass should only be used with >=mysql-5.1.50" |
103 | mysql_version_is_at_least "5.1.50" || die "This eclass should only be used with >=mysql-5.1.50" |
110 | |
104 | |
111 | # @ECLASS-VARIABLE: MYSQL_COMMUNITY_FEATURES |
|
|
112 | # @DESCRIPTION: |
|
|
113 | # Specifiy if community features are available. Possible values are 1 (yes) |
|
|
114 | # and 0 (no). |
|
|
115 | # Community features are available in mysql-community |
|
|
116 | # AND in the re-merged mysql-5.0.82 and newer |
|
|
117 | if [ "${PN}" == "mysql-community" -o "${PN}" == "mariadb" ]; then |
|
|
118 | MYSQL_COMMUNITY_FEATURES=1 |
|
|
119 | elif [ "${MYSQL_PV_MAJOR}" == "5.1" ]; then |
|
|
120 | MYSQL_COMMUNITY_FEATURES=1 |
|
|
121 | elif mysql_version_is_at_least "5.4.0"; then |
|
|
122 | MYSQL_COMMUNITY_FEATURES=1 |
|
|
123 | else |
|
|
124 | MYSQL_COMMUNITY_FEATURES=0 |
|
|
125 | fi |
|
|
126 | |
|
|
127 | |
|
|
128 | # @ECLASS-VARIABLE: XTRADB_VER |
105 | # @ECLASS-VARIABLE: XTRADB_VER |
129 | # @DEFAULT_UNSET |
106 | # @DEFAULT_UNSET |
130 | # @DESCRIPTION: |
107 | # @DESCRIPTION: |
131 | # Version of the XTRADB storage engine |
108 | # Version of the XTRADB storage engine |
132 | |
109 | |
… | |
… | |
137 | |
114 | |
138 | # Work out the default SERVER_URI correctly |
115 | # Work out the default SERVER_URI correctly |
139 | if [ -z "${SERVER_URI}" ]; then |
116 | if [ -z "${SERVER_URI}" ]; then |
140 | [ -z "${MY_PV}" ] && MY_PV="${PV//_/-}" |
117 | [ -z "${MY_PV}" ] && MY_PV="${PV//_/-}" |
141 | if [ "${PN}" == "mariadb" ]; then |
118 | if [ "${PN}" == "mariadb" ]; then |
142 | MARIA_FULL_PV="$(replace_version_separator 3 '-' ${PV})" |
119 | MARIA_FULL_PV="$(replace_version_separator 3 '-' ${MY_PV})" |
143 | MARIA_FULL_P="${PN}-${MARIA_FULL_PV}" |
120 | MARIA_FULL_P="${PN}-${MARIA_FULL_PV}" |
144 | SERVER_URI=" |
121 | SERVER_URI=" |
145 | http://ftp.osuosl.org/pub/mariadb/${MARIA_FULL_P}/kvm-tarbake-jaunty-x86/${MARIA_FULL_P}.tar.gz |
122 | http://ftp.osuosl.org/pub/mariadb/${MARIA_FULL_P}/kvm-tarbake-jaunty-x86/${MARIA_FULL_P}.tar.gz |
146 | http://ftp.rediris.es/mirror/MariaDB/${MARIA_FULL_P}/kvm-tarbake-jaunty-x86/${MARIA_FULL_P}.tar.gz |
123 | http://ftp.rediris.es/mirror/MariaDB/${MARIA_FULL_P}/kvm-tarbake-jaunty-x86/${MARIA_FULL_P}.tar.gz |
147 | http://maria.llarian.net/download/${MARIA_FULL_P}/kvm-tarbake-jaunty-x86/${MARIA_FULL_P}.tar.gz |
124 | http://maria.llarian.net/download/${MARIA_FULL_P}/kvm-tarbake-jaunty-x86/${MARIA_FULL_P}.tar.gz |
148 | http://launchpad.net/maria/${MYSQL_PV_MAJOR}/ongoing/+download/${MARIA_FULL_P}.tar.gz |
125 | http://launchpad.net/maria/${MYSQL_PV_MAJOR}/ongoing/+download/${MARIA_FULL_P}.tar.gz |
149 | http://mirrors.fe.up.pt/pub/${PN}/${MARIA_FULL_P}/kvm-tarbake-jaunty-x86/${MARIA_FULL_P}.tar.gz |
126 | http://mirrors.fe.up.pt/pub/${PN}/${MARIA_FULL_P}/kvm-tarbake-jaunty-x86/${MARIA_FULL_P}.tar.gz |
150 | http://ftp-stud.hs-esslingen.de/pub/Mirrors/${PN}/${MARIA_FULL_P}/kvm-tarbake-jaunty-x86/${MARIA_FULL_P}.tar.gz |
127 | http://ftp-stud.hs-esslingen.de/pub/Mirrors/${PN}/${MARIA_FULL_P}/kvm-tarbake-jaunty-x86/${MARIA_FULL_P}.tar.gz |
151 | " |
128 | " |
152 | # The community and cluster builds are on the mirrors |
|
|
153 | elif [[ "${MYSQL_COMMUNITY_FEATURES}" == "1" || ${PN} == "mysql-cluster" ]] ; then |
|
|
154 | if [[ "${PN}" == "mysql-cluster" ]] ; then |
|
|
155 | URI_DIR="MySQL-Cluster" |
|
|
156 | URI_FILE="mysql-cluster-gpl" |
|
|
157 | else |
129 | else |
158 | URI_DIR="MySQL" |
130 | URI_DIR="MySQL" |
159 | URI_FILE="mysql" |
131 | URI_FILE="mysql" |
160 | fi |
|
|
161 | URI_A="${URI_FILE}-${MY_PV}.tar.gz" |
132 | URI_A="${URI_FILE}-${MY_PV}.tar.gz" |
162 | MIRROR_PV=$(get_version_component_range 1-2 ${PV}) |
133 | MIRROR_PV=$(get_version_component_range 1-2 ${PV}) |
163 | # Recently upstream switched to an archive site, and not on mirrors |
134 | # Recently upstream switched to an archive site, and not on mirrors |
164 | SERVER_URI="http://downloads.mysql.com/archives/${URI_FILE}-${MIRROR_PV}/${URI_A} |
135 | SERVER_URI="http://downloads.mysql.com/archives/${URI_FILE}-${MIRROR_PV}/${URI_A} |
165 | mirror://mysql/Downloads/${URI_DIR}-${PV%.*}/${URI_A}" |
136 | mirror://mysql/Downloads/${URI_DIR}-${PV%.*}/${URI_A}" |
166 | # The (old) enterprise source is on the primary site only |
|
|
167 | elif [ "${PN}" == "mysql" ]; then |
|
|
168 | SERVER_URI="ftp://ftp.mysql.com/pub/mysql/src/mysql-${MY_PV}.tar.gz" |
|
|
169 | fi |
137 | fi |
170 | fi |
138 | fi |
171 | |
139 | |
172 | # Define correct SRC_URIs |
140 | # Define correct SRC_URIs |
173 | SRC_URI="${SERVER_URI}" |
141 | SRC_URI="${SERVER_URI}" |
174 | |
142 | |
175 | # Gentoo patches to MySQL |
143 | # Gentoo patches to MySQL |
176 | [[ ${MY_EXTRAS_VER} != live ]] \ |
144 | [[ ${MY_EXTRAS_VER} != live ]] && [[ ${MY_EXTRAS_VER} != none ]] \ |
177 | && SRC_URI="${SRC_URI} |
145 | && SRC_URI="${SRC_URI} |
178 | mirror://gentoo/mysql-extras-${MY_EXTRAS_VER}.tar.bz2 |
146 | mirror://gentoo/mysql-extras-${MY_EXTRAS_VER}.tar.bz2 |
179 | http://g3nt8.org/patches/mysql-extras-${MY_EXTRAS_VER}.tar.bz2 |
147 | http://g3nt8.org/patches/mysql-extras-${MY_EXTRAS_VER}.tar.bz2 |
180 | http://dev.gentoo.org/~robbat2/distfiles/mysql-extras-${MY_EXTRAS_VER}.tar.bz2" |
148 | http://dev.gentoo.org/~robbat2/distfiles/mysql-extras-${MY_EXTRAS_VER}.tar.bz2 |
|
|
149 | http://dev.gentoo.org/~jmbsvicetto/distfiles/mysql-extras-${MY_EXTRAS_VER}.tar.bz2" |
181 | |
150 | |
182 | DESCRIPTION="A fast, multi-threaded, multi-user SQL database server." |
151 | DESCRIPTION="A fast, multi-threaded, multi-user SQL database server." |
183 | HOMEPAGE="http://www.mysql.com/" |
152 | HOMEPAGE="http://www.mysql.com/" |
184 | if [[ "${PN}" == "mariadb" ]]; then |
153 | if [[ "${PN}" == "mariadb" ]]; then |
185 | HOMEPAGE="http://mariadb.org/" |
154 | HOMEPAGE="http://mariadb.org/" |
186 | DESCRIPTION="MariaDB is a MySQL fork with 3rd-party patches and additional storage engines merged." |
155 | DESCRIPTION="MariaDB is a MySQL fork with 3rd-party patches and additional storage engines merged." |
187 | fi |
|
|
188 | if [[ "${PN}" == "mysql-community" ]]; then |
|
|
189 | DESCRIPTION="${DESCRIPTION} (obsolete, move to dev-db/mysql)" |
|
|
190 | fi |
156 | fi |
191 | LICENSE="GPL-2" |
157 | LICENSE="GPL-2" |
192 | SLOT="0" |
158 | SLOT="0" |
193 | |
159 | |
194 | case "${BUILD}" in |
160 | case "${BUILD}" in |
… | |
… | |
201 | esac |
167 | esac |
202 | |
168 | |
203 | IUSE="${IUSE} latin1" |
169 | IUSE="${IUSE} latin1" |
204 | |
170 | |
205 | IUSE="${IUSE} extraengine" |
171 | IUSE="${IUSE} extraengine" |
206 | if [[ ${PN} != "mysql-cluster" ]] ; then |
|
|
207 | IUSE="${IUSE} cluster" |
172 | IUSE="${IUSE} cluster" |
208 | fi |
|
|
209 | |
173 | |
210 | IUSE="${IUSE} max-idx-128" |
174 | IUSE="${IUSE} max-idx-128" |
211 | IUSE="${IUSE} berkdb" |
175 | IUSE="${IUSE} berkdb" |
212 | |
|
|
213 | [[ ${MYSQL_COMMUNITY_FEATURES} == 1 ]] \ |
|
|
214 | && IUSE="${IUSE} +community profiling" |
176 | IUSE="${IUSE} +community profiling" |
215 | |
177 | |
216 | [[ ${PN} == "mariadb" ]] \ |
178 | [[ ${PN} == "mariadb" ]] \ |
217 | && IUSE="${IUSE} libevent" |
179 | && IUSE="${IUSE} libevent" |
218 | |
180 | |
219 | [[ ${PN} == "mariadb" ]] \ |
181 | [[ ${PN} == "mariadb" ]] \ |
… | |
… | |
222 | |
184 | |
223 | [[ ${PN} == "mariadb" ]] \ |
185 | [[ ${PN} == "mariadb" ]] \ |
224 | && mysql_version_is_at_least "5.2.5" \ |
186 | && mysql_version_is_at_least "5.2.5" \ |
225 | && IUSE="${IUSE} sphinx" |
187 | && IUSE="${IUSE} sphinx" |
226 | |
188 | |
|
|
189 | mysql_version_is_at_least "5.5.7" \ |
|
|
190 | && IUSE="${IUSE} systemtap" |
227 | |
191 | |
228 | # |
192 | # |
229 | # DEPENDENCIES: |
193 | # DEPENDENCIES: |
230 | # |
194 | # |
231 | |
195 | |
232 | # Be warned, *DEPEND are version-dependant |
196 | # Be warned, *DEPEND are version-dependant |
233 | # These are used for both runtime and compiletime |
197 | # These are used for both runtime and compiletime |
234 | DEPEND=" |
198 | DEPEND=" |
235 | ssl? ( >=dev-libs/openssl-0.9.6d ) |
199 | ssl? ( >=dev-libs/openssl-0.9.6d ) |
236 | userland_GNU? ( sys-process/procps ) |
200 | kernel_linux? ( sys-process/procps ) |
237 | >=sys-apps/sed-4 |
201 | >=sys-apps/sed-4 |
238 | >=sys-apps/texinfo-4.7-r1 |
202 | >=sys-apps/texinfo-4.7-r1 |
239 | >=sys-libs/readline-4.1 |
203 | >=sys-libs/readline-4.1 |
240 | >=sys-libs/zlib-1.2.3 |
204 | >=sys-libs/zlib-1.2.3 |
241 | " |
205 | " |
242 | |
206 | |
243 | [[ ${PN} == mariadb ]] \ |
207 | [[ ${PN} == mariadb ]] \ |
244 | && DEPEND="${DEPEND} libevent? ( >=dev-libs/libevent-1.4 )" |
208 | && DEPEND="${DEPEND} libevent? ( >=dev-libs/libevent-1.4 )" |
245 | |
209 | |
246 | # Having different flavours at the same time is not a good idea |
210 | # Having different flavours at the same time is not a good idea |
247 | for i in "mysql" "mysql-community" "mysql-cluster" "mariadb" ; do |
211 | for i in "mysql" "mariadb" ; do |
248 | [[ ${i} == ${PN} ]] || |
212 | [[ ${i} == ${PN} ]] || |
249 | DEPEND="${DEPEND} !dev-db/${i}" |
213 | DEPEND="${DEPEND} !dev-db/${i}" |
250 | done |
214 | done |
251 | |
215 | |
|
|
216 | # prefix: first need to implement something for #196294 |
252 | RDEPEND="${DEPEND} |
217 | RDEPEND="${DEPEND} |
253 | !minimal? ( dev-db/mysql-init-scripts ) |
218 | !minimal? ( !prefix? ( dev-db/mysql-init-scripts ) ) |
254 | selinux? ( sec-policy/selinux-mysql ) |
219 | selinux? ( sec-policy/selinux-mysql ) |
255 | " |
220 | " |
256 | |
221 | |
|
|
222 | DEPEND="${DEPEND} |
|
|
223 | virtual/yacc |
|
|
224 | " |
|
|
225 | |
257 | DEPEND="${DEPEND} static? ( || ( sys-libs/ncurses[static-libs] <=sys-libs/ncurses-5.7-r3 ) )" |
226 | DEPEND="${DEPEND} static? ( sys-libs/ncurses[static-libs] )" |
258 | |
227 | |
259 | # compile-time-only |
228 | # compile-time-only |
260 | DEPEND="${DEPEND} >=dev-util/cmake-2.4.3" |
229 | DEPEND="${DEPEND} >=dev-util/cmake-2.4.3" |
261 | |
230 | |
262 | # compile-time-only |
231 | # compile-time-only |
… | |
… | |
269 | |
238 | |
270 | [[ "${PN}" == "mariadb" ]] \ |
239 | [[ "${PN}" == "mariadb" ]] \ |
271 | && mysql_version_is_at_least "5.2.5" \ |
240 | && mysql_version_is_at_least "5.2.5" \ |
272 | && DEPEND="${DEPEND} sphinx? ( app-misc/sphinx )" |
241 | && DEPEND="${DEPEND} sphinx? ( app-misc/sphinx )" |
273 | |
242 | |
|
|
243 | mysql_version_is_at_least "5.5.7" \ |
|
|
244 | && DEPEND="${DEPEND} systemtap? ( >=dev-util/systemtap-1.3 )" |
|
|
245 | |
274 | # dev-perl/DBD-mysql is needed by some scripts installed by MySQL |
246 | # dev-perl/DBD-mysql is needed by some scripts installed by MySQL |
275 | PDEPEND="perl? ( >=dev-perl/DBD-mysql-2.9004 )" |
247 | PDEPEND="perl? ( >=dev-perl/DBD-mysql-2.9004 )" |
276 | |
248 | |
277 | # For other stuff to bring us in |
249 | # For other stuff to bring us in |
278 | PDEPEND="${PDEPEND} =virtual/mysql-${MYSQL_PV_MAJOR}" |
250 | PDEPEND="${PDEPEND} =virtual/mysql-${MYSQL_PV_MAJOR}" |
279 | |
|
|
280 | |
251 | |
281 | # |
252 | # |
282 | # External patches |
253 | # External patches |
283 | # |
254 | # |
284 | |
255 | |
… | |
… | |
311 | |
282 | |
312 | PBXT_P="pbxt-${PBXT_VERSION}" |
283 | PBXT_P="pbxt-${PBXT_VERSION}" |
313 | PBXT_SRC_URI="http://www.primebase.org/download/${PBXT_P}.tar.gz mirror://sourceforge/pbxt/${PBXT_P}.tar.gz" |
284 | PBXT_SRC_URI="http://www.primebase.org/download/${PBXT_P}.tar.gz mirror://sourceforge/pbxt/${PBXT_P}.tar.gz" |
314 | SRC_URI="${SRC_URI} pbxt? ( ${PBXT_SRC_URI} )" |
285 | SRC_URI="${SRC_URI} pbxt? ( ${PBXT_SRC_URI} )" |
315 | |
286 | |
|
|
287 | fi |
|
|
288 | |
316 | # PBXT_NEWSTYLE means pbxt is in storage/ and gets enabled as other plugins |
289 | # PBXT_NEWSTYLE means pbxt is in storage/ and gets enabled as other plugins |
317 | # vs. built outside the dir |
290 | # vs. built outside the dir |
318 | if pbxt_available; then |
291 | if pbxt_available; then |
319 | |
292 | |
320 | IUSE="${IUSE} pbxt" |
293 | IUSE="${IUSE} pbxt" |
321 | PBXT_NEWSTYLE=1 |
294 | PBXT_NEWSTYLE=1 |
322 | fi |
|
|
323 | fi |
295 | fi |
324 | |
296 | |
325 | if xtradb_patch_available; then |
297 | if xtradb_patch_available; then |
326 | XTRADB_P="percona-xtradb-${XTRADB_VER}" |
298 | XTRADB_P="percona-xtradb-${XTRADB_VER}" |
327 | XTRADB_SRC_URI_COMMON="${PERCONA_VER}/source/${XTRADB_P}.tar.gz" |
299 | XTRADB_SRC_URI_COMMON="${PERCONA_VER}/source/${XTRADB_P}.tar.gz" |
… | |
… | |
372 | # warn about deprecated features |
344 | # warn about deprecated features |
373 | mysql-v2_pkg_setup() { |
345 | mysql-v2_pkg_setup() { |
374 | |
346 | |
375 | if has test ${FEATURES} ; then |
347 | if has test ${FEATURES} ; then |
376 | if ! use minimal ; then |
348 | if ! use minimal ; then |
377 | if [[ $UID -eq 0 ]]; then |
349 | if ! has userpriv ${FEATURES} ; then |
378 | eerror "Testing with FEATURES=-userpriv is no longer supported by upstream. Tests MUST be run as non-root." |
350 | eerror "Testing with FEATURES=-userpriv is no longer supported by upstream. Tests MUST be run as non-root." |
379 | fi |
351 | fi |
380 | fi |
352 | fi |
381 | fi |
353 | fi |
382 | |
354 | |
… | |
… | |
410 | |
382 | |
411 | # This should come after all of the die statements |
383 | # This should come after all of the die statements |
412 | enewgroup mysql 60 || die "problem adding 'mysql' group" |
384 | enewgroup mysql 60 || die "problem adding 'mysql' group" |
413 | enewuser mysql 60 -1 /dev/null mysql || die "problem adding 'mysql' user" |
385 | enewuser mysql 60 -1 /dev/null mysql || die "problem adding 'mysql' user" |
414 | |
386 | |
415 | if [ "${PN}" != "mysql-cluster" ] && use cluster; then |
387 | if use cluster; then |
416 | ewarn "Upstream has noted that the NDB cluster support in the 5.0 and" |
388 | ewarn "Upstream has noted that the NDB cluster support in the 5.0 and" |
417 | ewarn "5.1 series should NOT be put into production. In the near" |
389 | ewarn "5.1 series should NOT be put into production. In the near" |
418 | ewarn "future, it will be disabled from building." |
390 | ewarn "future, it will be disabled from building." |
419 | ewarn "" |
|
|
420 | ewarn "If you need NDB support, you should instead move to the new" |
|
|
421 | ewarn "mysql-cluster package that represents that upstream NDB" |
|
|
422 | ewarn "development." |
|
|
423 | fi |
391 | fi |
424 | } |
392 | } |
425 | |
393 | |
426 | # @FUNCTION: mysql-v2_src_unpack |
394 | # @FUNCTION: mysql-v2_src_unpack |
427 | # @DESCRIPTION: |
395 | # @DESCRIPTION: |
… | |
… | |
486 | |
454 | |
487 | # Make sure the vars are correctly initialized |
455 | # Make sure the vars are correctly initialized |
488 | mysql_init_vars |
456 | mysql_init_vars |
489 | |
457 | |
490 | # Check FEATURES="collision-protect" before removing this |
458 | # Check FEATURES="collision-protect" before removing this |
491 | [[ -d "${ROOT}/var/log/mysql" ]] || install -d -m0750 -o mysql -g mysql "${ROOT}${MY_LOGDIR}" |
459 | [[ -d "${ROOT}${MY_LOGDIR}" ]] || install -d -m0750 -o mysql -g mysql "${ROOT}${MY_LOGDIR}" |
492 | |
460 | |
493 | # Secure the logfiles |
461 | # Secure the logfiles |
494 | touch "${ROOT}${MY_LOGDIR}"/mysql.{log,err} |
462 | touch "${ROOT}${MY_LOGDIR}"/mysql.{log,err} |
495 | chown mysql:mysql "${ROOT}${MY_LOGDIR}"/mysql* |
463 | chown mysql:mysql "${ROOT}${MY_LOGDIR}"/mysql* |
496 | chmod 0660 "${ROOT}${MY_LOGDIR}"/mysql* |
464 | chmod 0660 "${ROOT}${MY_LOGDIR}"/mysql* |
… | |
… | |
588 | |
556 | |
589 | local pwd1="a" |
557 | local pwd1="a" |
590 | local pwd2="b" |
558 | local pwd2="b" |
591 | local maxtry=15 |
559 | local maxtry=15 |
592 | |
560 | |
593 | if [ -z "${MYSQL_ROOT_PASSWORD}" -a -f "${ROOT}/root/.my.cnf" ]; then |
561 | if [ -z "${MYSQL_ROOT_PASSWORD}" -a -f "${EROOT}/root/.my.cnf" ]; then |
594 | MYSQL_ROOT_PASSWORD="$(sed -n -e '/^password=/s,^password=,,gp' "${ROOT}/root/.my.cnf")" |
562 | MYSQL_ROOT_PASSWORD="$(sed -n -e '/^password=/s,^password=,,gp' "${EROOT}/root/.my.cnf")" |
595 | fi |
563 | fi |
596 | |
564 | |
597 | if [[ -d "${ROOT}/${MY_DATADIR}/mysql" ]] ; then |
565 | if [[ -d "${ROOT}/${MY_DATADIR}/mysql" ]] ; then |
598 | ewarn "You have already a MySQL database in place." |
566 | ewarn "You have already a MySQL database in place." |
599 | ewarn "(${ROOT}/${MY_DATADIR}/*)" |
567 | ewarn "(${ROOT}/${MY_DATADIR}/*)" |
… | |
… | |
630 | && cp "${help_tables}" "${TMPDIR}/fill_help_tables.sql" \ |
598 | && cp "${help_tables}" "${TMPDIR}/fill_help_tables.sql" \ |
631 | || touch "${TMPDIR}/fill_help_tables.sql" |
599 | || touch "${TMPDIR}/fill_help_tables.sql" |
632 | help_tables="${TMPDIR}/fill_help_tables.sql" |
600 | help_tables="${TMPDIR}/fill_help_tables.sql" |
633 | |
601 | |
634 | pushd "${TMPDIR}" &>/dev/null |
602 | pushd "${TMPDIR}" &>/dev/null |
635 | "${ROOT}/usr/bin/mysql_install_db" >"${TMPDIR}"/mysql_install_db.log 2>&1 |
603 | "${EROOT}/usr/bin/mysql_install_db" "--basedir=${EPREFIX}/usr" >"${TMPDIR}"/mysql_install_db.log 2>&1 |
636 | if [ $? -ne 0 ]; then |
604 | if [ $? -ne 0 ]; then |
637 | grep -B5 -A999 -i "ERROR" "${TMPDIR}"/mysql_install_db.log 1>&2 |
605 | grep -B5 -A999 -i "ERROR" "${TMPDIR}"/mysql_install_db.log 1>&2 |
638 | die "Failed to run mysql_install_db. Please review /var/log/mysql/mysqld.err AND ${TMPDIR}/mysql_install_db.log" |
606 | die "Failed to run mysql_install_db. Please review ${EPREFIX}/var/log/mysql/mysqld.err AND ${TMPDIR}/mysql_install_db.log" |
639 | fi |
607 | fi |
640 | popd &>/dev/null |
608 | popd &>/dev/null |
641 | [[ -f "${ROOT}/${MY_DATADIR}/mysql/user.frm" ]] \ |
609 | [[ -f "${ROOT}/${MY_DATADIR}/mysql/user.frm" ]] \ |
642 | || die "MySQL databases not installed" |
610 | || die "MySQL databases not installed" |
643 | chown -R mysql:mysql "${ROOT}/${MY_DATADIR}" 2>/dev/null |
611 | chown -R mysql:mysql "${ROOT}/${MY_DATADIR}" 2>/dev/null |
644 | chmod 0750 "${ROOT}/${MY_DATADIR}" 2>/dev/null |
612 | chmod 0750 "${ROOT}/${MY_DATADIR}" 2>/dev/null |
645 | |
613 | |
646 | # Figure out which options we need to disable to do the setup |
614 | # Figure out which options we need to disable to do the setup |
647 | helpfile="${TMPDIR}/mysqld-help" |
615 | helpfile="${TMPDIR}/mysqld-help" |
648 | ${ROOT}/usr/sbin/mysqld --verbose --help >"${helpfile}" 2>/dev/null |
616 | ${EROOT}/usr/sbin/mysqld --verbose --help >"${helpfile}" 2>/dev/null |
649 | for opt in grant-tables host-cache name-resolve networking slave-start bdb \ |
617 | for opt in grant-tables host-cache name-resolve networking slave-start bdb \ |
650 | federated innodb ssl log-bin relay-log slow-query-log external-locking \ |
618 | federated innodb ssl log-bin relay-log slow-query-log external-locking \ |
651 | ndbcluster \ |
619 | ndbcluster \ |
652 | ; do |
620 | ; do |
653 | optexp="--(skip-)?${opt}" optfull="--skip-${opt}" |
621 | optexp="--(skip-)?${opt}" optfull="--skip-${opt}" |
… | |
… | |
657 | egrep -sq external-locking "${helpfile}" && \ |
625 | egrep -sq external-locking "${helpfile}" && \ |
658 | options="${options/skip-locking/skip-external-locking}" |
626 | options="${options/skip-locking/skip-external-locking}" |
659 | |
627 | |
660 | # Filling timezones, see |
628 | # Filling timezones, see |
661 | # http://dev.mysql.com/doc/mysql/en/time-zone-support.html |
629 | # http://dev.mysql.com/doc/mysql/en/time-zone-support.html |
662 | "${ROOT}/usr/bin/mysql_tzinfo_to_sql" "${ROOT}/usr/share/zoneinfo" > "${sqltmp}" 2>/dev/null |
630 | "${EROOT}/usr/bin/mysql_tzinfo_to_sql" "${EROOT}/usr/share/zoneinfo" > "${sqltmp}" 2>/dev/null |
663 | |
631 | |
664 | if [[ -r "${help_tables}" ]] ; then |
632 | if [[ -r "${help_tables}" ]] ; then |
665 | cat "${help_tables}" >> "${sqltmp}" |
633 | cat "${help_tables}" >> "${sqltmp}" |
666 | fi |
634 | fi |
667 | |
635 | |
668 | einfo "Creating the mysql database and setting proper" |
636 | einfo "Creating the mysql database and setting proper" |
669 | einfo "permissions on it ..." |
637 | einfo "permissions on it ..." |
670 | |
638 | |
671 | local socket="${ROOT}/var/run/mysqld/mysqld${RANDOM}.sock" |
639 | local socket="${EROOT}/var/run/mysqld/mysqld${RANDOM}.sock" |
672 | local pidfile="${ROOT}/var/run/mysqld/mysqld${RANDOM}.pid" |
640 | local pidfile="${EROOT}/var/run/mysqld/mysqld${RANDOM}.pid" |
673 | local mysqld="${ROOT}/usr/sbin/mysqld \ |
641 | local mysqld="${EROOT}/usr/sbin/mysqld \ |
674 | ${options} \ |
642 | ${options} \ |
675 | --user=mysql \ |
643 | --user=mysql \ |
676 | --basedir=${ROOT}/usr \ |
644 | --basedir=${EROOT}/usr \ |
677 | --datadir=${ROOT}/${MY_DATADIR} \ |
645 | --datadir=${ROOT}/${MY_DATADIR} \ |
678 | --max_allowed_packet=8M \ |
646 | --max_allowed_packet=8M \ |
679 | --net_buffer_length=16K \ |
647 | --net_buffer_length=16K \ |
680 | --default-storage-engine=MyISAM \ |
648 | --default-storage-engine=MyISAM \ |
681 | --socket=${socket} \ |
649 | --socket=${socket} \ |
… | |
… | |
696 | fi |
664 | fi |
697 | |
665 | |
698 | ebegin "Setting root password" |
666 | ebegin "Setting root password" |
699 | # Do this from memory, as we don't want clear text passwords in temp files |
667 | # Do this from memory, as we don't want clear text passwords in temp files |
700 | local sql="UPDATE mysql.user SET Password = PASSWORD('${MYSQL_ROOT_PASSWORD}') WHERE USER='root'" |
668 | local sql="UPDATE mysql.user SET Password = PASSWORD('${MYSQL_ROOT_PASSWORD}') WHERE USER='root'" |
701 | "${ROOT}/usr/bin/mysql" \ |
669 | "${EROOT}/usr/bin/mysql" \ |
702 | --socket=${socket} \ |
670 | --socket=${socket} \ |
703 | -hlocalhost \ |
671 | -hlocalhost \ |
704 | -e "${sql}" |
672 | -e "${sql}" |
705 | eend $? |
673 | eend $? |
706 | |
674 | |
707 | ebegin "Loading \"zoneinfo\", this step may require a few seconds ..." |
675 | ebegin "Loading \"zoneinfo\", this step may require a few seconds ..." |
708 | "${ROOT}/usr/bin/mysql" \ |
676 | "${EROOT}/usr/bin/mysql" \ |
709 | --socket=${socket} \ |
677 | --socket=${socket} \ |
710 | -hlocalhost \ |
678 | -hlocalhost \ |
711 | -uroot \ |
679 | -uroot \ |
712 | -p"${MYSQL_ROOT_PASSWORD}" \ |
680 | -p"${MYSQL_ROOT_PASSWORD}" \ |
713 | mysql < "${sqltmp}" |
681 | mysql < "${sqltmp}" |
… | |
… | |
726 | # @FUNCTION: mysql-v2_pkg_postrm |
694 | # @FUNCTION: mysql-v2_pkg_postrm |
727 | # @DESCRIPTION: |
695 | # @DESCRIPTION: |
728 | # Remove mysql symlinks. |
696 | # Remove mysql symlinks. |
729 | mysql-v2_pkg_postrm() { |
697 | mysql-v2_pkg_postrm() { |
730 | |
698 | |
731 | : # mysql_lib_symlinks "${D}" |
699 | : # mysql_lib_symlinks "${ED}" |
732 | } |
700 | } |