| 1 | # Copyright 1999-2009 Gentoo Foundation |
1 | # Copyright 1999-2009 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.135 2010/03/03 23:57:13 robbat2 Exp $ |
3 | # $Header: /var/cvsroot/gentoo-x86/eclass/mysql.eclass,v 1.139 2010/03/15 19:27:04 robbat2 Exp $ |
| 4 | |
4 | |
| 5 | # @ECLASS: mysql.eclass |
5 | # @ECLASS: mysql.eclass |
| 6 | # @MAINTAINER: |
6 | # @MAINTAINER: |
| 7 | # Author: Francesco Riosa (Retired) <vivo@gentoo.org> |
7 | # Author: Francesco Riosa (Retired) <vivo@gentoo.org> |
| 8 | # Maintainers: MySQL Team <mysql-bugs@gentoo.org> |
8 | # Maintainers: MySQL Team <mysql-bugs@gentoo.org> |
| … | |
… | |
| 51 | ;; |
51 | ;; |
| 52 | *) |
52 | *) |
| 53 | die "Unsupported EAPI: ${EAPI}" ;; |
53 | die "Unsupported EAPI: ${EAPI}" ;; |
| 54 | esac |
54 | esac |
| 55 | |
55 | |
|
|
56 | |
|
|
57 | # @ECLASS-VARIABLE: MYSQL_PV_MAJOR |
|
|
58 | # @DESCRIPTION: |
|
|
59 | # Upstream MySQL considers the first two parts of the version number to be the |
|
|
60 | # major version. Upgrades that change major version should always run |
|
|
61 | # mysql_upgrade. |
|
|
62 | MYSQL_PV_MAJOR="$(get_version_component_range 1-2 ${PV})" |
|
|
63 | |
| 56 | # @ECLASS-VARIABLE: MYSQL_VERSION_ID |
64 | # @ECLASS-VARIABLE: MYSQL_VERSION_ID |
| 57 | # @DESCRIPTION: |
65 | # @DESCRIPTION: |
| 58 | # MYSQL_VERSION_ID will be: |
66 | # MYSQL_VERSION_ID will be: |
| 59 | # major * 10e6 + minor * 10e4 + micro * 10e2 + gentoo revision number, all [0..99] |
67 | # major * 10e6 + minor * 10e4 + micro * 10e2 + gentoo revision number, all [0..99] |
| 60 | # This is an important part, because many of the choices the MySQL ebuild will do |
68 | # This is an important part, because many of the choices the MySQL ebuild will do |
| … | |
… | |
| 77 | # @DESCRIPTION: |
85 | # @DESCRIPTION: |
| 78 | # Specifiy if community features are available. Possible values are 1 (yes) |
86 | # Specifiy if community features are available. Possible values are 1 (yes) |
| 79 | # and 0 (no). |
87 | # and 0 (no). |
| 80 | # Community features are available in mysql-community |
88 | # Community features are available in mysql-community |
| 81 | # AND in the re-merged mysql-5.0.82 and newer |
89 | # AND in the re-merged mysql-5.0.82 and newer |
| 82 | if [ "${PN}" == "mysql-community" ]; then |
90 | if [ "${PN}" == "mysql-community" -o "${PN}" == "mariadb" ]; then |
| 83 | MYSQL_COMMUNITY_FEATURES=1 |
91 | MYSQL_COMMUNITY_FEATURES=1 |
| 84 | elif [ "${PV#5.0}" != "${PV}" ] && mysql_version_is_at_least "5.0.82"; then |
92 | elif [ "${PV#5.0}" != "${PV}" ] && mysql_version_is_at_least "5.0.82"; then |
| 85 | MYSQL_COMMUNITY_FEATURES=1 |
93 | MYSQL_COMMUNITY_FEATURES=1 |
| 86 | elif [ "${PV#5.1}" != "${PV}" ] && mysql_version_is_at_least "5.1.28"; then |
94 | elif [ "${PV#5.1}" != "${PV}" ] && mysql_version_is_at_least "5.1.28"; then |
| 87 | MYSQL_COMMUNITY_FEATURES=1 |
95 | MYSQL_COMMUNITY_FEATURES=1 |
| … | |
… | |
| 112 | >=sys-apps/sed-4 |
120 | >=sys-apps/sed-4 |
| 113 | >=sys-apps/texinfo-4.7-r1 |
121 | >=sys-apps/texinfo-4.7-r1 |
| 114 | >=sys-libs/readline-4.1 |
122 | >=sys-libs/readline-4.1 |
| 115 | >=sys-libs/zlib-1.2.3" |
123 | >=sys-libs/zlib-1.2.3" |
| 116 | |
124 | |
|
|
125 | [[ "${PN}" == "mariadb" ]] \ |
|
|
126 | && DEPEND="${DEPEND} libevent? ( >=dev-libs/libevent-1.4 )" |
|
|
127 | |
| 117 | # Having different flavours at the same time is not a good idea |
128 | # Having different flavours at the same time is not a good idea |
| 118 | for i in "" "-community" ; do |
129 | for i in "mysql" "mysql-community" "mariadb" ; do |
| 119 | [[ "${i}" == ${PN#mysql} ]] || |
130 | [[ "${i}" == ${PN} ]] || |
| 120 | DEPEND="${DEPEND} !dev-db/mysql${i}" |
131 | DEPEND="${DEPEND} !dev-db/${i}" |
| 121 | done |
132 | done |
| 122 | |
133 | |
| 123 | RDEPEND="${DEPEND} |
134 | RDEPEND="${DEPEND} |
| 124 | !minimal? ( dev-db/mysql-init-scripts ) |
135 | !minimal? ( dev-db/mysql-init-scripts ) |
| 125 | selinux? ( sec-policy/selinux-mysql )" |
136 | selinux? ( sec-policy/selinux-mysql )" |
| … | |
… | |
| 134 | |
145 | |
| 135 | # dev-perl/DBD-mysql is needed by some scripts installed by MySQL |
146 | # dev-perl/DBD-mysql is needed by some scripts installed by MySQL |
| 136 | PDEPEND="perl? ( >=dev-perl/DBD-mysql-2.9004 )" |
147 | PDEPEND="perl? ( >=dev-perl/DBD-mysql-2.9004 )" |
| 137 | |
148 | |
| 138 | # For other stuff to bring us in |
149 | # For other stuff to bring us in |
| 139 | PDEPEND="${PDEPEND} =virtual/mysql-$(get_version_component_range 1-2 ${PV})" |
150 | PDEPEND="${PDEPEND} =virtual/mysql-${MYSQL_PV_MAJOR}" |
| 140 | |
151 | |
| 141 | # Work out the default SERVER_URI correctly |
152 | # Work out the default SERVER_URI correctly |
| 142 | if [ -z "${SERVER_URI}" ]; then |
153 | if [ -z "${SERVER_URI}" ]; then |
| 143 | [ -z "${MY_PV}" ] && MY_PV="${PV//_/-}" |
154 | [ -z "${MY_PV}" ] && MY_PV="${PV//_/-}" |
|
|
155 | if [ "${PN}" == "mariadb" ]; then |
|
|
156 | MARIA_FULL_PV="$(replace_version_separator 3 '-' ${PV})" |
|
|
157 | SERVER_URI="http://launchpad.net/maria/${MYSQL_PV_MAJOR}/ongoing/+download/mariadb-${MARIA_FULL_PV}.tar.gz" |
| 144 | # The community build is on the mirrors |
158 | # The community build is on the mirrors |
| 145 | if [ "${MYSQL_COMMUNITY_FEATURES}" == "1" ]; then |
159 | elif [ "${MYSQL_COMMUNITY_FEATURES}" == "1" ]; then |
| 146 | SERVER_URI="mirror://mysql/Downloads/MySQL-${PV%.*}/mysql-${MY_PV}.tar.gz" |
160 | SERVER_URI="mirror://mysql/Downloads/MySQL-${PV%.*}/mysql-${MY_PV}.tar.gz" |
| 147 | # The (old) enterprise source is on the primary site only |
161 | # The (old) enterprise source is on the primary site only |
| 148 | elif [ "${PN}" == "mysql" ]; then |
162 | elif [ "${PN}" == "mysql" ]; then |
| 149 | SERVER_URI="ftp://ftp.mysql.com/pub/mysql/src/mysql-${MY_PV}.tar.gz" |
163 | SERVER_URI="ftp://ftp.mysql.com/pub/mysql/src/mysql-${MY_PV}.tar.gz" |
| 150 | fi |
164 | fi |
| … | |
… | |
| 160 | http://g3nt8.org/patches/mysql-extras-${MY_EXTRAS_VER}.tar.bz2 |
174 | http://g3nt8.org/patches/mysql-extras-${MY_EXTRAS_VER}.tar.bz2 |
| 161 | http://dev.gentoo.org/~robbat2/distfiles/mysql-extras-${MY_EXTRAS_VER}.tar.bz2" |
175 | http://dev.gentoo.org/~robbat2/distfiles/mysql-extras-${MY_EXTRAS_VER}.tar.bz2" |
| 162 | |
176 | |
| 163 | DESCRIPTION="A fast, multi-threaded, multi-user SQL database server." |
177 | DESCRIPTION="A fast, multi-threaded, multi-user SQL database server." |
| 164 | HOMEPAGE="http://www.mysql.com/" |
178 | HOMEPAGE="http://www.mysql.com/" |
|
|
179 | if [[ "${PN}" == "mariadb" ]]; then |
|
|
180 | HOMEPAGE="http://askmonty.org/" |
|
|
181 | DESCRIPTION="MariaDB is a MySQL fork with 3rd-party patches and additional storage engines merged." |
|
|
182 | fi |
| 165 | LICENSE="GPL-2" |
183 | LICENSE="GPL-2" |
| 166 | SLOT="0" |
184 | SLOT="0" |
| 167 | IUSE="big-tables debug embedded minimal ${IUSE_DEFAULT_ON}perl selinux ssl static test" |
185 | IUSE="big-tables debug embedded minimal ${IUSE_DEFAULT_ON}perl selinux ssl static test" |
| 168 | |
186 | |
| 169 | mysql_version_is_at_least "4.1" \ |
187 | mysql_version_is_at_least "4.1" \ |
| … | |
… | |
| 182 | || IUSE="${IUSE} berkdb" |
200 | || IUSE="${IUSE} berkdb" |
| 183 | |
201 | |
| 184 | [ "${MYSQL_COMMUNITY_FEATURES}" == "1" ] \ |
202 | [ "${MYSQL_COMMUNITY_FEATURES}" == "1" ] \ |
| 185 | && IUSE="${IUSE} ${IUSE_DEFAULT_ON}community profiling" |
203 | && IUSE="${IUSE} ${IUSE_DEFAULT_ON}community profiling" |
| 186 | |
204 | |
| 187 | # PBXT engine |
205 | [[ "${PN}" == "mariadb" ]] \ |
|
|
206 | && IUSE="${IUSE} libevent" |
|
|
207 | |
|
|
208 | # MariaDB has integrated PBXT |
|
|
209 | # PBXT_VERSION means that we have a PBXT patch for this PV |
|
|
210 | # PBXT was only introduced after 5.1.12 |
|
|
211 | pbxt_patch_available() { |
|
|
212 | [[ "${PN}" != "mariadb" ]] \ |
| 188 | mysql_version_is_at_least "5.1.12" \ |
213 | && mysql_version_is_at_least "5.1.12" \ |
| 189 | && [[ -n "${PBXT_VERSION}" ]] \ |
214 | && [[ -n "${PBXT_VERSION}" ]] |
|
|
215 | return $? |
|
|
216 | } |
|
|
217 | |
|
|
218 | pbxt_available() { |
|
|
219 | pbxt_patch_available || [[ "${PN}" == "mariadb" ]] |
|
|
220 | return $? |
|
|
221 | } |
|
|
222 | |
|
|
223 | # Get the percona tarball if XTRADB_VER and PERCONA_VER are both set |
|
|
224 | # MariaDB has integrated XtraDB |
|
|
225 | # XTRADB_VERS means that we have a XTRADB patch for this PV |
|
|
226 | # XTRADB was only introduced after 5.1.26 |
|
|
227 | xtradb_patch_available() { |
|
|
228 | [[ "${PN}" != "mariadb" ]] \ |
|
|
229 | && mysql_version_is_at_least "5.1.26" \ |
|
|
230 | && [[ -n "${XTRADB_VER}" && -n "${PERCONA_VER}" ]] |
|
|
231 | return $? |
|
|
232 | } |
|
|
233 | |
|
|
234 | pbxt_patch_available \ |
| 190 | && PBXT_P="pbxt-${PBXT_VERSION}" \ |
235 | && PBXT_P="pbxt-${PBXT_VERSION}" \ |
| 191 | && PBXT_SRC_URI="http://www.primebase.org/download/${PBXT_P}.tar.gz mirror://sourceforge/pbxt/${PBXT_P}.tar.gz" \ |
236 | && PBXT_SRC_URI="http://www.primebase.org/download/${PBXT_P}.tar.gz mirror://sourceforge/pbxt/${PBXT_P}.tar.gz" \ |
| 192 | && SRC_URI="${SRC_URI} pbxt? ( ${PBXT_SRC_URI} )" \ |
237 | && SRC_URI="${SRC_URI} pbxt? ( ${PBXT_SRC_URI} )" \ |
|
|
238 | |
|
|
239 | pbxt_available \ |
| 193 | && IUSE="${IUSE} pbxt" |
240 | && IUSE="${IUSE} pbxt" |
| 194 | |
241 | |
| 195 | # Get the percona tarball if XTRADB_VER and PERCONA_VER are both set |
242 | xtradb_patch_available \ |
| 196 | mysql_version_is_at_least "5.1.26" \ |
|
|
| 197 | && [[ -n "${XTRADB_VER}" && -n "${PERCONA_VER}" ]] \ |
|
|
| 198 | && XTRADB_P="percona-xtradb-${XTRADB_VER}" \ |
243 | && XTRADB_P="percona-xtradb-${XTRADB_VER}" \ |
| 199 | && XTRADB_SRC_URI_COMMON="${PERCONA_VER}/source/${XTRADB_P}.tar.gz" \ |
244 | && XTRADB_SRC_URI_COMMON="${PERCONA_VER}/source/${XTRADB_P}.tar.gz" \ |
| 200 | && XTRADB_SRC_URI1="http://www.percona.com/percona-builds/xtradb/${XTRADB_SRC_URI_COMMON}" \ |
245 | && XTRADB_SRC_URI1="http://www.percona.com/percona-builds/xtradb/${XTRADB_SRC_URI_COMMON}" \ |
| 201 | && XTRADB_SRC_URI2="http://www.percona.com/${PN}/xtradb/${XTRADB_SRC_URI_COMMON}" \ |
246 | && XTRADB_SRC_URI2="http://www.percona.com/${PN}/xtradb/${XTRADB_SRC_URI_COMMON}" \ |
| 202 | && SRC_URI="${SRC_URI} xtradb? ( ${XTRADB_SRC_URI1} ${XTRADB_SRC_URI2} )" \ |
247 | && SRC_URI="${SRC_URI} xtradb? ( ${XTRADB_SRC_URI1} ${XTRADB_SRC_URI2} )" \ |
| … | |
… | |
| 396 | myconf="${myconf} $(use_with perl bench)" |
441 | myconf="${myconf} $(use_with perl bench)" |
| 397 | myconf="${myconf} --enable-assembler" |
442 | myconf="${myconf} --enable-assembler" |
| 398 | myconf="${myconf} --with-extra-tools" |
443 | myconf="${myconf} --with-extra-tools" |
| 399 | myconf="${myconf} --with-innodb" |
444 | myconf="${myconf} --with-innodb" |
| 400 | myconf="${myconf} --without-readline" |
445 | myconf="${myconf} --without-readline" |
|
|
446 | myconf="${myconf} $(use_with ssl openssl)" |
| 401 | mysql_version_is_at_least "5.0" || myconf="${myconf} $(use_with raid)" |
447 | mysql_version_is_at_least "5.0" || myconf="${myconf} $(use_with raid)" |
| 402 | |
448 | |
| 403 | # --with-vio is not needed anymore, it's on by default and |
449 | # --with-vio is not needed anymore, it's on by default and |
| 404 | # has been removed from configure |
450 | # has been removed from configure |
|
|
451 | # Apply to 4.x and 5.0.[0-3] |
| 405 | if use ssl ; then |
452 | if use ssl ; then |
| 406 | mysql_version_is_at_least "5.0.4" || myconf="${myconf} --with-vio" |
453 | mysql_version_is_at_least "5.0.4" || myconf="${myconf} --with-vio" |
| 407 | fi |
|
|
| 408 | |
|
|
| 409 | if mysql_version_is_at_least "5.1.11" ; then |
|
|
| 410 | myconf="${myconf} $(use_with ssl /usr)" |
|
|
| 411 | else |
|
|
| 412 | myconf="${myconf} $(use_with ssl openssl)" |
|
|
| 413 | fi |
454 | fi |
| 414 | |
455 | |
| 415 | if mysql_version_is_at_least "5.0.60" ; then |
456 | if mysql_version_is_at_least "5.0.60" ; then |
| 416 | if use berkdb ; then |
457 | if use berkdb ; then |
| 417 | elog "Berkeley DB support was disabled due to build failures" |
458 | elog "Berkeley DB support was disabled due to build failures" |
| … | |
… | |
| 474 | |
515 | |
| 475 | configure_51() { |
516 | configure_51() { |
| 476 | # TODO: !!!! readd --without-readline |
517 | # TODO: !!!! readd --without-readline |
| 477 | # the failure depend upon config/ac-macros/readline.m4 checking into |
518 | # the failure depend upon config/ac-macros/readline.m4 checking into |
| 478 | # readline.h instead of history.h |
519 | # readline.h instead of history.h |
| 479 | myconf="${myconf} $(use_with ssl)" |
520 | myconf="${myconf} $(use_with ssl ssl /usr)" |
| 480 | myconf="${myconf} --enable-assembler" |
521 | myconf="${myconf} --enable-assembler" |
| 481 | myconf="${myconf} --with-geometry" |
522 | myconf="${myconf} --with-geometry" |
| 482 | myconf="${myconf} --with-readline" |
523 | myconf="${myconf} --with-readline" |
| 483 | myconf="${myconf} --with-zlib-dir=/usr/" |
524 | myconf="${myconf} --with-zlib-dir=/usr/" |
| 484 | myconf="${myconf} --without-pstack" |
525 | myconf="${myconf} --without-pstack" |
| 485 | use max-idx-128 && myconf="${myconf} --with-max-indexes=128" |
526 | use max-idx-128 && myconf="${myconf} --with-max-indexes=128" |
|
|
527 | if [ "${MYSQL_COMMUNITY_FEATURES}" == "1" ]; then |
|
|
528 | myconf="${myconf} $(use_enable community community-features)" |
|
|
529 | if use community; then |
|
|
530 | myconf="${myconf} $(use_enable profiling)" |
|
|
531 | else |
|
|
532 | myconf="${myconf} --disable-profiling" |
|
|
533 | fi |
|
|
534 | fi |
| 486 | |
535 | |
| 487 | # 5.1 introduces a new way to manage storage engines (plugins) |
536 | # 5.1 introduces a new way to manage storage engines (plugins) |
| 488 | # like configuration=none |
537 | # like configuration=none |
|
|
538 | # This base set are required, and will always be statically built. |
| 489 | local plugins="csv,myisam,myisammrg,heap" |
539 | local plugins="csv,myisam,myisammrg,heap" |
| 490 | if use extraengine ; then |
540 | if use extraengine ; then |
| 491 | # like configuration=max-no-ndb, archive and example removed in 5.1.11 |
541 | # like configuration=max-no-ndb, archive and example removed in 5.1.11 |
| 492 | # not added yet: ibmdb2i |
542 | # not added yet: ibmdb2i |
| 493 | # Not supporting as examples: example,daemon_example,ftexample |
543 | # Not supporting as examples: example,daemon_example,ftexample |
| 494 | plugins="${plugins},archive,blackhole,federated,partition" |
544 | plugins="${plugins},archive,blackhole,federated,partition" |
| 495 | |
545 | |
|
|
546 | if [[ "${PN}" != "mariadb" ]] ; then |
| 496 | elog "Before using the Federated storage engine, please be sure to read" |
547 | elog "Before using the Federated storage engine, please be sure to read" |
| 497 | elog "http://dev.mysql.com/doc/refman/5.1/en/federated-limitations.html" |
548 | elog "http://dev.mysql.com/doc/refman/5.1/en/federated-limitations.html" |
|
|
549 | else |
|
|
550 | elog "MariaDB includes the FederatedX engine. Be sure to read" |
|
|
551 | elog "http://askmonty.org/wiki/index.php/Manual:FederatedX_storage_engine" |
|
|
552 | fi |
| 498 | fi |
553 | fi |
| 499 | |
554 | |
| 500 | # Upstream specifically requests that InnoDB always be built: |
555 | # Upstream specifically requests that InnoDB always be built: |
| 501 | # - innobase, innodb_plugin |
556 | # - innobase, innodb_plugin |
| 502 | # Build falcon if available for 6.x series. |
557 | # Build falcon if available for 6.x series. |
| … | |
… | |
| 508 | if use cluster ; then |
563 | if use cluster ; then |
| 509 | plugins="${plugins},ndbcluster" |
564 | plugins="${plugins},ndbcluster" |
| 510 | myconf="${myconf} --with-ndb-binlog" |
565 | myconf="${myconf} --with-ndb-binlog" |
| 511 | fi |
566 | fi |
| 512 | |
567 | |
|
|
568 | if [[ "${PN}" == "mariadb" ]] ; then |
|
|
569 | # In MariaDB, InnoDB is packaged in the xtradb directory, so it's not |
|
|
570 | # caught above. |
|
|
571 | plugins="${plugins},maria,innobase" |
|
|
572 | if use pbxt ; then |
|
|
573 | plugins="${plugins},pbxt" |
|
|
574 | else |
|
|
575 | myconf="${myconf} --without-plugin-pbxt" |
|
|
576 | fi |
|
|
577 | myconf="${myconf} $(use_with libevent)" |
|
|
578 | # This is not optional, without it several upstream testcases fail. |
|
|
579 | # Also strongly recommended by upstream. |
|
|
580 | myconf="${myconf} --with-maria-tmp-tables" |
|
|
581 | fi |
|
|
582 | |
| 513 | myconf="${myconf} --with-plugins=${plugins}" |
583 | myconf="${myconf} --with-plugins=${plugins}" |
| 514 | } |
|
|
| 515 | |
|
|
| 516 | xtradb_applicable() { |
|
|
| 517 | mysql_version_is_at_least "5.1.26" \ |
|
|
| 518 | && [[ -n "${XTRADB_VER}" && -n "${PERCONA_VER}" ]] \ |
|
|
| 519 | && use xtradb |
|
|
| 520 | return $? |
|
|
| 521 | } |
|
|
| 522 | |
|
|
| 523 | pbxt_applicable() { |
|
|
| 524 | mysql_version_is_at_least "5.1.12" \ |
|
|
| 525 | && [[ -n "${PBXT_VERSION}" ]] \ |
|
|
| 526 | && use pbxt |
|
|
| 527 | return $? |
|
|
| 528 | } |
584 | } |
| 529 | |
585 | |
| 530 | pbxt_src_configure() { |
586 | pbxt_src_configure() { |
| 531 | mysql_init_vars |
587 | mysql_init_vars |
| 532 | |
588 | |
| … | |
… | |
| 534 | |
590 | |
| 535 | einfo "Reconfiguring dir '${PWD}'" |
591 | einfo "Reconfiguring dir '${PWD}'" |
| 536 | AT_GNUCONF_UPDATE="yes" eautoreconf |
592 | AT_GNUCONF_UPDATE="yes" eautoreconf |
| 537 | |
593 | |
| 538 | local myconf="" |
594 | local myconf="" |
| 539 | myconf="${myconf} --with-mysql=${S} --libdir=${MY_LIBDIR}" |
595 | myconf="${myconf} --with-mysql=${S} --libdir=/usr/$(get_libdir)" |
| 540 | use debug && myconf="${myconf} --with-debug=full" |
596 | use debug && myconf="${myconf} --with-debug=full" |
| 541 | # TODO: is it safe/needed to use econf here ? |
|
|
| 542 | ./configure ${myconf} || die "Problem configuring PBXT storage engine" |
597 | econf ${myconf} || die "Problem configuring PBXT storage engine" |
| 543 | } |
598 | } |
| 544 | |
599 | |
| 545 | pbxt_src_compile() { |
600 | pbxt_src_compile() { |
| 546 | # Be backwards compatible for now |
601 | # Be backwards compatible for now |
| 547 | if [[ $EAPI != 2 ]]; then |
602 | if [[ $EAPI != 2 ]]; then |
| … | |
… | |
| 687 | rm -f "scripts/mysqlbug" |
742 | rm -f "scripts/mysqlbug" |
| 688 | fi |
743 | fi |
| 689 | |
744 | |
| 690 | local rebuilddirlist d |
745 | local rebuilddirlist d |
| 691 | |
746 | |
| 692 | if xtradb_applicable ; then |
747 | if xtradb_patch_available && use xtradb ; then |
| 693 | einfo "Replacing InnoDB with Percona XtraDB" |
748 | einfo "Replacing InnoDB with Percona XtraDB" |
| 694 | pushd "${S}"/storage |
749 | pushd "${S}"/storage |
| 695 | i="innobase" |
750 | i="innobase" |
| 696 | o="${WORKDIR}/storage-${i}.mysql-upstream" |
751 | o="${WORKDIR}/storage-${i}.mysql-upstream" |
| 697 | # Have we been here already? |
752 | # Have we been here already? |
| … | |
… | |
| 802 | find . -type f -name Makefile -print0 \ |
857 | find . -type f -name Makefile -print0 \ |
| 803 | | xargs -0 -n100 sed -i \ |
858 | | xargs -0 -n100 sed -i \ |
| 804 | -e 's|^pkglibdir *= *$(libdir)/mysql|pkglibdir = $(libdir)|;s|^pkgincludedir *= *$(includedir)/mysql|pkgincludedir = $(includedir)|' |
859 | -e 's|^pkglibdir *= *$(libdir)/mysql|pkglibdir = $(libdir)|;s|^pkgincludedir *= *$(includedir)/mysql|pkgincludedir = $(includedir)|' |
| 805 | |
860 | |
| 806 | if [[ $EAPI == 2 ]]; then |
861 | if [[ $EAPI == 2 ]]; then |
| 807 | pbxt_applicable && pbxt_src_configure |
862 | pbxt_patch_available && use pbxt && pbxt_src_configure |
| 808 | fi |
863 | fi |
| 809 | } |
864 | } |
| 810 | |
865 | |
| 811 | # @FUNCTION: mysql_src_compile |
866 | # @FUNCTION: mysql_src_compile |
| 812 | # @DESCRIPTION: |
867 | # @DESCRIPTION: |
| 813 | # Compile the mysql code. |
868 | # Compile the mysql code. |
| 814 | mysql_src_compile() { |
869 | mysql_src_compile() { |
| 815 | # Be backwards compatible for now |
870 | # Be backwards compatible for now |
| 816 | case ${EAPI:-0} in |
871 | case ${EAPI:-0} in |
| 817 | 2) : ;; |
872 | 2) : ;; |
| 818 | 0 | 1) mysql_src_configure ;; |
873 | 0 | 1) mysql_src_configure ;; |
| 819 | esac |
874 | esac |
| 820 | |
875 | |
| 821 | emake || die "emake failed" |
876 | emake || die "emake failed" |
| 822 | |
877 | |
| 823 | pbxt_applicable && pbxt_src_compile |
878 | pbxt_patch_available && use pbxt && pbxt_src_compile |
| 824 | } |
879 | } |
| 825 | |
880 | |
| 826 | # @FUNCTION: mysql_src_install |
881 | # @FUNCTION: mysql_src_install |
| 827 | # @DESCRIPTION: |
882 | # @DESCRIPTION: |
| 828 | # Install mysql. |
883 | # Install mysql. |
| … | |
… | |
| 834 | DESTDIR="${D}" \ |
889 | DESTDIR="${D}" \ |
| 835 | benchdir_root="${MY_SHAREDSTATEDIR}" \ |
890 | benchdir_root="${MY_SHAREDSTATEDIR}" \ |
| 836 | testroot="${MY_SHAREDSTATEDIR}" \ |
891 | testroot="${MY_SHAREDSTATEDIR}" \ |
| 837 | || die "emake install failed" |
892 | || die "emake install failed" |
| 838 | |
893 | |
| 839 | pbxt_applicable && pbxt_src_install |
894 | pbxt_patch_available && use pbxt && pbxt_src_install |
| 840 | |
895 | |
| 841 | # Convenience links |
896 | # Convenience links |
| 842 | einfo "Making Convenience links for mysqlcheck multi-call binary" |
897 | einfo "Making Convenience links for mysqlcheck multi-call binary" |
| 843 | dosym "/usr/bin/mysqlcheck" "/usr/bin/mysqlanalyze" |
898 | dosym "/usr/bin/mysqlcheck" "/usr/bin/mysqlanalyze" |
| 844 | dosym "/usr/bin/mysqlcheck" "/usr/bin/mysqlrepair" |
899 | dosym "/usr/bin/mysqlcheck" "/usr/bin/mysqlrepair" |
| … | |
… | |
| 966 | for script in \ |
1021 | for script in \ |
| 967 | support-files/my-*.cnf \ |
1022 | support-files/my-*.cnf \ |
| 968 | support-files/magic \ |
1023 | support-files/magic \ |
| 969 | support-files/ndb-config-2-node.ini |
1024 | support-files/ndb-config-2-node.ini |
| 970 | do |
1025 | do |
|
|
1026 | [[ -f "${script}" ]] \ |
| 971 | dodoc "${script}" |
1027 | && dodoc "${script}" |
| 972 | done |
1028 | done |
| 973 | |
1029 | |
| 974 | docinto "scripts" |
1030 | docinto "scripts" |
| 975 | for script in scripts/mysql* ; do |
1031 | for script in scripts/mysql* ; do |
|
|
1032 | [[ -f "${script}" ]] \ |
| 976 | [[ "${script%.sh}" == "${script}" ]] && dodoc "${script}" |
1033 | && [[ "${script%.sh}" == "${script}" ]] \ |
|
|
1034 | && dodoc "${script}" |
| 977 | done |
1035 | done |
| 978 | |
1036 | |
| 979 | einfo |
1037 | einfo |
| 980 | elog "You might want to run:" |
1038 | elog "You might want to run:" |
| 981 | elog "\"emerge --config =${CATEGORY}/${PF}\"" |
1039 | elog "\"emerge --config =${CATEGORY}/${PF}\"" |
| 982 | elog "if this is a new install." |
1040 | elog "if this is a new install." |
| 983 | einfo |
1041 | einfo |
| 984 | fi |
1042 | fi |
| 985 | |
1043 | |
| 986 | if pbxt_applicable ; then |
1044 | if pbxt_available && use pbxt ; then |
| 987 | # TODO: explain it better |
1045 | # TODO: explain it better |
| 988 | elog " mysql> INSTALL PLUGIN pbxt SONAME 'libpbxt.so';" |
1046 | elog " mysql> INSTALL PLUGIN pbxt SONAME 'libpbxt.so';" |
| 989 | elog " mysql> CREATE TABLE t1 (c1 int, c2 text) ENGINE=pbxt;" |
1047 | elog " mysql> CREATE TABLE t1 (c1 int, c2 text) ENGINE=pbxt;" |
| 990 | elog "if, after that, you cannot start the MySQL server," |
1048 | elog "if, after that, you cannot start the MySQL server," |
| 991 | elog "remove the ${MY_DATADIR}/mysql/plugin.* files, then" |
1049 | elog "remove the ${MY_DATADIR}/mysql/plugin.* files, then" |