| 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.4 2011/07/21 05:57:22 jmbsvicetto Exp $ |
3 | # $Header: /var/cvsroot/gentoo-x86/eclass/mysql-v2.eclass,v 1.15 2012/04/18 02:08:34 robbat2 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> |
| … | |
… | |
| 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 | # scr_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 pkg_preinst pkg_postinst pkg_config pkg_postrm |
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 | |
| … | |
… | |
| 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 |
| 181 | http://dev.gentoo.org/~jmbsvicetto/distfiles/mysql-extras-${MY_EXTRAS_VER}.tar.bz2" |
149 | http://dev.gentoo.org/~jmbsvicetto/distfiles/mysql-extras-${MY_EXTRAS_VER}.tar.bz2" |
| … | |
… | |
| 183 | DESCRIPTION="A fast, multi-threaded, multi-user SQL database server." |
151 | DESCRIPTION="A fast, multi-threaded, multi-user SQL database server." |
| 184 | HOMEPAGE="http://www.mysql.com/" |
152 | HOMEPAGE="http://www.mysql.com/" |
| 185 | if [[ "${PN}" == "mariadb" ]]; then |
153 | if [[ "${PN}" == "mariadb" ]]; then |
| 186 | HOMEPAGE="http://mariadb.org/" |
154 | HOMEPAGE="http://mariadb.org/" |
| 187 | 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." |
| 188 | fi |
|
|
| 189 | if [[ "${PN}" == "mysql-community" ]]; then |
|
|
| 190 | DESCRIPTION="${DESCRIPTION} (obsolete, move to dev-db/mysql)" |
|
|
| 191 | fi |
156 | fi |
| 192 | LICENSE="GPL-2" |
157 | LICENSE="GPL-2" |
| 193 | SLOT="0" |
158 | SLOT="0" |
| 194 | |
159 | |
| 195 | case "${BUILD}" in |
160 | case "${BUILD}" in |
| … | |
… | |
| 202 | esac |
167 | esac |
| 203 | |
168 | |
| 204 | IUSE="${IUSE} latin1" |
169 | IUSE="${IUSE} latin1" |
| 205 | |
170 | |
| 206 | IUSE="${IUSE} extraengine" |
171 | IUSE="${IUSE} extraengine" |
| 207 | if [[ ${PN} != "mysql-cluster" ]] ; then |
|
|
| 208 | IUSE="${IUSE} cluster" |
172 | IUSE="${IUSE} cluster" |
| 209 | fi |
|
|
| 210 | |
173 | |
| 211 | IUSE="${IUSE} max-idx-128" |
174 | IUSE="${IUSE} max-idx-128" |
| 212 | IUSE="${IUSE} berkdb" |
175 | IUSE="${IUSE} berkdb" |
| 213 | |
|
|
| 214 | [[ ${MYSQL_COMMUNITY_FEATURES} == 1 ]] \ |
|
|
| 215 | && IUSE="${IUSE} +community profiling" |
176 | IUSE="${IUSE} +community profiling" |
| 216 | |
177 | |
| 217 | [[ ${PN} == "mariadb" ]] \ |
178 | [[ ${PN} == "mariadb" ]] \ |
| 218 | && IUSE="${IUSE} libevent" |
179 | && IUSE="${IUSE} libevent" |
| 219 | |
180 | |
| 220 | [[ ${PN} == "mariadb" ]] \ |
181 | [[ ${PN} == "mariadb" ]] \ |
| … | |
… | |
| 223 | |
184 | |
| 224 | [[ ${PN} == "mariadb" ]] \ |
185 | [[ ${PN} == "mariadb" ]] \ |
| 225 | && mysql_version_is_at_least "5.2.5" \ |
186 | && mysql_version_is_at_least "5.2.5" \ |
| 226 | && IUSE="${IUSE} sphinx" |
187 | && IUSE="${IUSE} sphinx" |
| 227 | |
188 | |
|
|
189 | mysql_version_is_at_least "5.5.7" \ |
|
|
190 | && IUSE="${IUSE} systemtap" |
| 228 | |
191 | |
| 229 | # |
192 | # |
| 230 | # DEPENDENCIES: |
193 | # DEPENDENCIES: |
| 231 | # |
194 | # |
| 232 | |
195 | |
| 233 | # Be warned, *DEPEND are version-dependant |
196 | # Be warned, *DEPEND are version-dependant |
| 234 | # These are used for both runtime and compiletime |
197 | # These are used for both runtime and compiletime |
| 235 | DEPEND=" |
198 | DEPEND=" |
| 236 | ssl? ( >=dev-libs/openssl-0.9.6d ) |
199 | ssl? ( >=dev-libs/openssl-0.9.6d ) |
| 237 | userland_GNU? ( sys-process/procps ) |
200 | kernel_linux? ( sys-process/procps ) |
| 238 | >=sys-apps/sed-4 |
201 | >=sys-apps/sed-4 |
| 239 | >=sys-apps/texinfo-4.7-r1 |
202 | >=sys-apps/texinfo-4.7-r1 |
| 240 | >=sys-libs/readline-4.1 |
203 | >=sys-libs/readline-4.1 |
| 241 | >=sys-libs/zlib-1.2.3 |
204 | >=sys-libs/zlib-1.2.3 |
| 242 | " |
205 | " |
| 243 | |
206 | |
| 244 | [[ ${PN} == mariadb ]] \ |
207 | [[ ${PN} == mariadb ]] \ |
| 245 | && DEPEND="${DEPEND} libevent? ( >=dev-libs/libevent-1.4 )" |
208 | && DEPEND="${DEPEND} libevent? ( >=dev-libs/libevent-1.4 )" |
| 246 | |
209 | |
| 247 | # 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 |
| 248 | for i in "mysql" "mysql-community" "mysql-cluster" "mariadb" ; do |
211 | for i in "mysql" "mariadb" ; do |
| 249 | [[ ${i} == ${PN} ]] || |
212 | [[ ${i} == ${PN} ]] || |
| 250 | DEPEND="${DEPEND} !dev-db/${i}" |
213 | DEPEND="${DEPEND} !dev-db/${i}" |
| 251 | done |
214 | done |
| 252 | |
215 | |
|
|
216 | # prefix: first need to implement something for #196294 |
| 253 | RDEPEND="${DEPEND} |
217 | RDEPEND="${DEPEND} |
| 254 | !minimal? ( dev-db/mysql-init-scripts ) |
218 | !minimal? ( !prefix? ( dev-db/mysql-init-scripts ) ) |
| 255 | selinux? ( sec-policy/selinux-mysql ) |
219 | selinux? ( sec-policy/selinux-mysql ) |
|
|
220 | " |
|
|
221 | |
|
|
222 | DEPEND="${DEPEND} |
|
|
223 | virtual/yacc |
| 256 | " |
224 | " |
| 257 | |
225 | |
| 258 | DEPEND="${DEPEND} static? ( || ( sys-libs/ncurses[static-libs] <=sys-libs/ncurses-5.7-r3 ) )" |
226 | DEPEND="${DEPEND} static? ( || ( sys-libs/ncurses[static-libs] <=sys-libs/ncurses-5.7-r3 ) )" |
| 259 | |
227 | |
| 260 | # compile-time-only |
228 | # compile-time-only |
| … | |
… | |
| 270 | |
238 | |
| 271 | [[ "${PN}" == "mariadb" ]] \ |
239 | [[ "${PN}" == "mariadb" ]] \ |
| 272 | && mysql_version_is_at_least "5.2.5" \ |
240 | && mysql_version_is_at_least "5.2.5" \ |
| 273 | && DEPEND="${DEPEND} sphinx? ( app-misc/sphinx )" |
241 | && DEPEND="${DEPEND} sphinx? ( app-misc/sphinx )" |
| 274 | |
242 | |
|
|
243 | mysql_version_is_at_least "5.5.7" \ |
|
|
244 | && DEPEND="${DEPEND} systemtap? ( >=dev-util/systemtap-1.3 )" |
|
|
245 | |
| 275 | # 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 |
| 276 | PDEPEND="perl? ( >=dev-perl/DBD-mysql-2.9004 )" |
247 | PDEPEND="perl? ( >=dev-perl/DBD-mysql-2.9004 )" |
| 277 | |
248 | |
| 278 | # For other stuff to bring us in |
249 | # For other stuff to bring us in |
| 279 | PDEPEND="${PDEPEND} =virtual/mysql-${MYSQL_PV_MAJOR}" |
250 | PDEPEND="${PDEPEND} =virtual/mysql-${MYSQL_PV_MAJOR}" |
| 280 | |
|
|
| 281 | |
251 | |
| 282 | # |
252 | # |
| 283 | # External patches |
253 | # External patches |
| 284 | # |
254 | # |
| 285 | |
255 | |
| … | |
… | |
| 312 | |
282 | |
| 313 | PBXT_P="pbxt-${PBXT_VERSION}" |
283 | PBXT_P="pbxt-${PBXT_VERSION}" |
| 314 | 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" |
| 315 | SRC_URI="${SRC_URI} pbxt? ( ${PBXT_SRC_URI} )" |
285 | SRC_URI="${SRC_URI} pbxt? ( ${PBXT_SRC_URI} )" |
| 316 | |
286 | |
|
|
287 | fi |
|
|
288 | |
| 317 | # 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 |
| 318 | # vs. built outside the dir |
290 | # vs. built outside the dir |
| 319 | if pbxt_available; then |
291 | if pbxt_available; then |
| 320 | |
292 | |
| 321 | IUSE="${IUSE} pbxt" |
293 | IUSE="${IUSE} pbxt" |
| 322 | PBXT_NEWSTYLE=1 |
294 | PBXT_NEWSTYLE=1 |
| 323 | fi |
|
|
| 324 | fi |
295 | fi |
| 325 | |
296 | |
| 326 | if xtradb_patch_available; then |
297 | if xtradb_patch_available; then |
| 327 | XTRADB_P="percona-xtradb-${XTRADB_VER}" |
298 | XTRADB_P="percona-xtradb-${XTRADB_VER}" |
| 328 | XTRADB_SRC_URI_COMMON="${PERCONA_VER}/source/${XTRADB_P}.tar.gz" |
299 | XTRADB_SRC_URI_COMMON="${PERCONA_VER}/source/${XTRADB_P}.tar.gz" |
| … | |
… | |
| 373 | # warn about deprecated features |
344 | # warn about deprecated features |
| 374 | mysql-v2_pkg_setup() { |
345 | mysql-v2_pkg_setup() { |
| 375 | |
346 | |
| 376 | if has test ${FEATURES} ; then |
347 | if has test ${FEATURES} ; then |
| 377 | if ! use minimal ; then |
348 | if ! use minimal ; then |
| 378 | if [[ $UID -eq 0 ]]; then |
349 | if ! has userpriv ${FEATURES} ; then |
| 379 | 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." |
| 380 | fi |
351 | fi |
| 381 | fi |
352 | fi |
| 382 | fi |
353 | fi |
| 383 | |
354 | |
| … | |
… | |
| 411 | |
382 | |
| 412 | # This should come after all of the die statements |
383 | # This should come after all of the die statements |
| 413 | enewgroup mysql 60 || die "problem adding 'mysql' group" |
384 | enewgroup mysql 60 || die "problem adding 'mysql' group" |
| 414 | 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" |
| 415 | |
386 | |
| 416 | if [ "${PN}" != "mysql-cluster" ] && use cluster; then |
387 | if use cluster; then |
| 417 | 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" |
| 418 | 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" |
| 419 | ewarn "future, it will be disabled from building." |
390 | ewarn "future, it will be disabled from building." |
| 420 | ewarn "" |
|
|
| 421 | ewarn "If you need NDB support, you should instead move to the new" |
|
|
| 422 | ewarn "mysql-cluster package that represents that upstream NDB" |
|
|
| 423 | ewarn "development." |
|
|
| 424 | fi |
391 | fi |
| 425 | } |
392 | } |
| 426 | |
393 | |
| 427 | # @FUNCTION: mysql-v2_src_unpack |
394 | # @FUNCTION: mysql-v2_src_unpack |
| 428 | # @DESCRIPTION: |
395 | # @DESCRIPTION: |
| … | |
… | |
| 487 | |
454 | |
| 488 | # Make sure the vars are correctly initialized |
455 | # Make sure the vars are correctly initialized |
| 489 | mysql_init_vars |
456 | mysql_init_vars |
| 490 | |
457 | |
| 491 | # Check FEATURES="collision-protect" before removing this |
458 | # Check FEATURES="collision-protect" before removing this |
| 492 | [[ -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}" |
| 493 | |
460 | |
| 494 | # Secure the logfiles |
461 | # Secure the logfiles |
| 495 | touch "${ROOT}${MY_LOGDIR}"/mysql.{log,err} |
462 | touch "${ROOT}${MY_LOGDIR}"/mysql.{log,err} |
| 496 | chown mysql:mysql "${ROOT}${MY_LOGDIR}"/mysql* |
463 | chown mysql:mysql "${ROOT}${MY_LOGDIR}"/mysql* |
| 497 | chmod 0660 "${ROOT}${MY_LOGDIR}"/mysql* |
464 | chmod 0660 "${ROOT}${MY_LOGDIR}"/mysql* |
| … | |
… | |
| 589 | |
556 | |
| 590 | local pwd1="a" |
557 | local pwd1="a" |
| 591 | local pwd2="b" |
558 | local pwd2="b" |
| 592 | local maxtry=15 |
559 | local maxtry=15 |
| 593 | |
560 | |
| 594 | 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 |
| 595 | 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")" |
| 596 | fi |
563 | fi |
| 597 | |
564 | |
| 598 | if [[ -d "${ROOT}/${MY_DATADIR}/mysql" ]] ; then |
565 | if [[ -d "${ROOT}/${MY_DATADIR}/mysql" ]] ; then |
| 599 | ewarn "You have already a MySQL database in place." |
566 | ewarn "You have already a MySQL database in place." |
| 600 | ewarn "(${ROOT}/${MY_DATADIR}/*)" |
567 | ewarn "(${ROOT}/${MY_DATADIR}/*)" |
| … | |
… | |
| 631 | && cp "${help_tables}" "${TMPDIR}/fill_help_tables.sql" \ |
598 | && cp "${help_tables}" "${TMPDIR}/fill_help_tables.sql" \ |
| 632 | || touch "${TMPDIR}/fill_help_tables.sql" |
599 | || touch "${TMPDIR}/fill_help_tables.sql" |
| 633 | help_tables="${TMPDIR}/fill_help_tables.sql" |
600 | help_tables="${TMPDIR}/fill_help_tables.sql" |
| 634 | |
601 | |
| 635 | pushd "${TMPDIR}" &>/dev/null |
602 | pushd "${TMPDIR}" &>/dev/null |
| 636 | "${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 |
| 637 | if [ $? -ne 0 ]; then |
604 | if [ $? -ne 0 ]; then |
| 638 | 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 |
| 639 | 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" |
| 640 | fi |
607 | fi |
| 641 | popd &>/dev/null |
608 | popd &>/dev/null |
| 642 | [[ -f "${ROOT}/${MY_DATADIR}/mysql/user.frm" ]] \ |
609 | [[ -f "${ROOT}/${MY_DATADIR}/mysql/user.frm" ]] \ |
| 643 | || die "MySQL databases not installed" |
610 | || die "MySQL databases not installed" |
| 644 | chown -R mysql:mysql "${ROOT}/${MY_DATADIR}" 2>/dev/null |
611 | chown -R mysql:mysql "${ROOT}/${MY_DATADIR}" 2>/dev/null |
| 645 | chmod 0750 "${ROOT}/${MY_DATADIR}" 2>/dev/null |
612 | chmod 0750 "${ROOT}/${MY_DATADIR}" 2>/dev/null |
| 646 | |
613 | |
| 647 | # 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 |
| 648 | helpfile="${TMPDIR}/mysqld-help" |
615 | helpfile="${TMPDIR}/mysqld-help" |
| 649 | ${ROOT}/usr/sbin/mysqld --verbose --help >"${helpfile}" 2>/dev/null |
616 | ${EROOT}/usr/sbin/mysqld --verbose --help >"${helpfile}" 2>/dev/null |
| 650 | 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 \ |
| 651 | 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 \ |
| 652 | ndbcluster \ |
619 | ndbcluster \ |
| 653 | ; do |
620 | ; do |
| 654 | optexp="--(skip-)?${opt}" optfull="--skip-${opt}" |
621 | optexp="--(skip-)?${opt}" optfull="--skip-${opt}" |
| … | |
… | |
| 658 | egrep -sq external-locking "${helpfile}" && \ |
625 | egrep -sq external-locking "${helpfile}" && \ |
| 659 | options="${options/skip-locking/skip-external-locking}" |
626 | options="${options/skip-locking/skip-external-locking}" |
| 660 | |
627 | |
| 661 | # Filling timezones, see |
628 | # Filling timezones, see |
| 662 | # http://dev.mysql.com/doc/mysql/en/time-zone-support.html |
629 | # http://dev.mysql.com/doc/mysql/en/time-zone-support.html |
| 663 | "${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 |
| 664 | |
631 | |
| 665 | if [[ -r "${help_tables}" ]] ; then |
632 | if [[ -r "${help_tables}" ]] ; then |
| 666 | cat "${help_tables}" >> "${sqltmp}" |
633 | cat "${help_tables}" >> "${sqltmp}" |
| 667 | fi |
634 | fi |
| 668 | |
635 | |
| 669 | einfo "Creating the mysql database and setting proper" |
636 | einfo "Creating the mysql database and setting proper" |
| 670 | einfo "permissions on it ..." |
637 | einfo "permissions on it ..." |
| 671 | |
638 | |
| 672 | local socket="${ROOT}/var/run/mysqld/mysqld${RANDOM}.sock" |
639 | local socket="${EROOT}/var/run/mysqld/mysqld${RANDOM}.sock" |
| 673 | local pidfile="${ROOT}/var/run/mysqld/mysqld${RANDOM}.pid" |
640 | local pidfile="${EROOT}/var/run/mysqld/mysqld${RANDOM}.pid" |
| 674 | local mysqld="${ROOT}/usr/sbin/mysqld \ |
641 | local mysqld="${EROOT}/usr/sbin/mysqld \ |
| 675 | ${options} \ |
642 | ${options} \ |
| 676 | --user=mysql \ |
643 | --user=mysql \ |
| 677 | --basedir=${ROOT}/usr \ |
644 | --basedir=${EROOT}/usr \ |
| 678 | --datadir=${ROOT}/${MY_DATADIR} \ |
645 | --datadir=${ROOT}/${MY_DATADIR} \ |
| 679 | --max_allowed_packet=8M \ |
646 | --max_allowed_packet=8M \ |
| 680 | --net_buffer_length=16K \ |
647 | --net_buffer_length=16K \ |
| 681 | --default-storage-engine=MyISAM \ |
648 | --default-storage-engine=MyISAM \ |
| 682 | --socket=${socket} \ |
649 | --socket=${socket} \ |
| … | |
… | |
| 697 | fi |
664 | fi |
| 698 | |
665 | |
| 699 | ebegin "Setting root password" |
666 | ebegin "Setting root password" |
| 700 | # 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 |
| 701 | 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'" |
| 702 | "${ROOT}/usr/bin/mysql" \ |
669 | "${EROOT}/usr/bin/mysql" \ |
| 703 | --socket=${socket} \ |
670 | --socket=${socket} \ |
| 704 | -hlocalhost \ |
671 | -hlocalhost \ |
| 705 | -e "${sql}" |
672 | -e "${sql}" |
| 706 | eend $? |
673 | eend $? |
| 707 | |
674 | |
| 708 | ebegin "Loading \"zoneinfo\", this step may require a few seconds ..." |
675 | ebegin "Loading \"zoneinfo\", this step may require a few seconds ..." |
| 709 | "${ROOT}/usr/bin/mysql" \ |
676 | "${EROOT}/usr/bin/mysql" \ |
| 710 | --socket=${socket} \ |
677 | --socket=${socket} \ |
| 711 | -hlocalhost \ |
678 | -hlocalhost \ |
| 712 | -uroot \ |
679 | -uroot \ |
| 713 | -p"${MYSQL_ROOT_PASSWORD}" \ |
680 | -p"${MYSQL_ROOT_PASSWORD}" \ |
| 714 | mysql < "${sqltmp}" |
681 | mysql < "${sqltmp}" |
| … | |
… | |
| 727 | # @FUNCTION: mysql-v2_pkg_postrm |
694 | # @FUNCTION: mysql-v2_pkg_postrm |
| 728 | # @DESCRIPTION: |
695 | # @DESCRIPTION: |
| 729 | # Remove mysql symlinks. |
696 | # Remove mysql symlinks. |
| 730 | mysql-v2_pkg_postrm() { |
697 | mysql-v2_pkg_postrm() { |
| 731 | |
698 | |
| 732 | : # mysql_lib_symlinks "${D}" |
699 | : # mysql_lib_symlinks "${ED}" |
| 733 | } |
700 | } |