| 1 | # Copyright 1999-2007 Gentoo Foundation |
1 | # Copyright 1999-2007 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.78 2007/05/11 08:25:11 robbat2 Exp $ |
3 | # $Header: /var/cvsroot/gentoo-x86/eclass/mysql.eclass,v 1.83 2007/11/08 09:42:55 robbat2 Exp $ |
| 4 | |
4 | |
| 5 | # Author: Francesco Riosa (Retired) <vivo@gentoo.org> |
5 | # Author: Francesco Riosa (Retired) <vivo@gentoo.org> |
| 6 | # Maintainer: Luca Longinotti <chtekk@gentoo.org> |
6 | # Maintainer: Luca Longinotti <chtekk@gentoo.org> |
| 7 | |
7 | |
| 8 | # Both MYSQL_VERSION_ID and MYSQL_PATCHSET_REV must be set in the ebuild too! |
8 | # Both MYSQL_VERSION_ID and MYSQL_PATCHSET_REV must be set in the ebuild too! |
| … | |
… | |
| 67 | PDEPEND="perl? ( >=dev-perl/DBD-mysql-2.9004 )" |
67 | PDEPEND="perl? ( >=dev-perl/DBD-mysql-2.9004 )" |
| 68 | |
68 | |
| 69 | # BitKeeper dependency, compile-time only |
69 | # BitKeeper dependency, compile-time only |
| 70 | [[ ${IS_BITKEEPER} -eq 90 ]] && DEPEND="${DEPEND} dev-util/bk_client" |
70 | [[ ${IS_BITKEEPER} -eq 90 ]] && DEPEND="${DEPEND} dev-util/bk_client" |
| 71 | |
71 | |
|
|
72 | # Work out the default SERVER_URI correctly |
|
|
73 | if [ -z "${SERVER_URI}" ]; then |
|
|
74 | # The community build is on the mirrors |
|
|
75 | if [ "${PN}" == "mysql-community" ]; then |
|
|
76 | SERVER_URI="mirror://mysql/Downloads/MySQL-${PV%.*}/mysql-${PV//_/-}.tar.gz" |
|
|
77 | # The enterprise source is on the primary site only |
|
|
78 | elif [ "${PN}" == "mysql" ]; then |
|
|
79 | SERVER_URI="ftp://ftp.mysql.com/pub/mysql/src/mysql-${PV//_/-}.tar.gz" |
|
|
80 | fi |
|
|
81 | fi |
|
|
82 | |
| 72 | # Define correct SRC_URIs |
83 | # Define correct SRC_URIs |
| 73 | SRC_URI="${SERVER_URI} |
84 | SRC_URI="${SERVER_URI} |
| 74 | mirror://gentoo/mysql-extras-${MY_EXTRAS_VER}.tar.bz2 |
85 | mirror://gentoo/mysql-extras-${MY_EXTRAS_VER}.tar.bz2 |
| 75 | http://g3nt8.org/patches/mysql-extras-${MY_EXTRAS_VER}.tar.bz2" |
86 | http://g3nt8.org/patches/mysql-extras-${MY_EXTRAS_VER}.tar.bz2" |
| 76 | mysql_version_is_at_least "5.1.12" \ |
87 | mysql_version_is_at_least "5.1.12" \ |
| … | |
… | |
| 80 | DESCRIPTION="A fast, multi-threaded, multi-user SQL database server." |
91 | DESCRIPTION="A fast, multi-threaded, multi-user SQL database server." |
| 81 | HOMEPAGE="http://www.mysql.com/" |
92 | HOMEPAGE="http://www.mysql.com/" |
| 82 | LICENSE="GPL-2" |
93 | LICENSE="GPL-2" |
| 83 | SLOT="0" |
94 | SLOT="0" |
| 84 | IUSE="big-tables debug embedded minimal perl selinux ssl static" |
95 | IUSE="big-tables debug embedded minimal perl selinux ssl static" |
| 85 | RESTRICT="confcache" |
|
|
| 86 | |
96 | |
| 87 | mysql_version_is_at_least "4.1" \ |
97 | mysql_version_is_at_least "4.1" \ |
| 88 | && IUSE="${IUSE} latin1" |
98 | && IUSE="${IUSE} latin1" |
| 89 | |
99 | |
| 90 | mysql_version_is_at_least "4.1.3" \ |
100 | mysql_version_is_at_least "4.1.3" \ |
| … | |
… | |
| 249 | myconf="${myconf} --with-extra-charsets=none" |
259 | myconf="${myconf} --with-extra-charsets=none" |
| 250 | myconf="${myconf} --enable-local-infile" |
260 | myconf="${myconf} --enable-local-infile" |
| 251 | |
261 | |
| 252 | if use static ; then |
262 | if use static ; then |
| 253 | myconf="${myconf} --with-client-ldflags=-all-static" |
263 | myconf="${myconf} --with-client-ldflags=-all-static" |
| 254 | myconf="${myconf} --disable-shared" |
264 | myconf="${myconf} --disable-shared --with-pic" |
| 255 | else |
265 | else |
| 256 | myconf="${myconf} --enable-shared --enable-static" |
266 | myconf="${myconf} --enable-shared --enable-static" |
| 257 | fi |
267 | fi |
| 258 | |
268 | |
| 259 | if mysql_version_is_at_least "4.1" && ! use latin1 ; then |
269 | if mysql_version_is_at_least "4.1" && ! use latin1 ; then |
| … | |
… | |
| 275 | myconf="${myconf} --without-libwrap" |
285 | myconf="${myconf} --without-libwrap" |
| 276 | |
286 | |
| 277 | if use static ; then |
287 | if use static ; then |
| 278 | myconf="${myconf} --with-mysqld-ldflags=-all-static" |
288 | myconf="${myconf} --with-mysqld-ldflags=-all-static" |
| 279 | myconf="${myconf} --with-client-ldflags=-all-static" |
289 | myconf="${myconf} --with-client-ldflags=-all-static" |
| 280 | myconf="${myconf} --disable-shared" |
290 | myconf="${myconf} --disable-shared --with-pic" |
| 281 | else |
291 | else |
| 282 | myconf="${myconf} --enable-shared --enable-static" |
292 | myconf="${myconf} --enable-shared --enable-static" |
| 283 | fi |
293 | fi |
| 284 | |
294 | |
| 285 | if use debug ; then |
295 | if use debug ; then |
| … | |
… | |
| 443 | # |
453 | # |
| 444 | # EBUILD FUNCTIONS |
454 | # EBUILD FUNCTIONS |
| 445 | # |
455 | # |
| 446 | |
456 | |
| 447 | mysql_pkg_setup() { |
457 | mysql_pkg_setup() { |
| 448 | enewgroup mysql 60 || die "problem adding 'mysql' group" |
458 | if hasq test ${FEATURES} ; then |
| 449 | enewuser mysql 60 -1 /dev/null mysql || die "problem adding 'mysql' user" |
459 | if ! use minimal ; then |
|
|
460 | if ! hasq userpriv ${FEATURES} ; then |
|
|
461 | die "Testing with FEATURES=-userpriv is no longer supported by upstream" |
|
|
462 | fi |
|
|
463 | fi |
|
|
464 | fi |
| 450 | |
465 | |
| 451 | # Check for USE flag problems in pkg_setup |
466 | # Check for USE flag problems in pkg_setup |
| 452 | if use static && use ssl ; then |
467 | if use static && use ssl ; then |
| 453 | eerror "MySQL does not support being built statically with SSL support enabled!" |
468 | eerror "MySQL does not support being built statically with SSL support enabled!" |
| 454 | die "MySQL does not support being built statically with SSL support enabled!" |
469 | die "MySQL does not support being built statically with SSL support enabled!" |
| … | |
… | |
| 466 | && ( use cluster || use extraengine ) \ |
481 | && ( use cluster || use extraengine ) \ |
| 467 | && use minimal ; then |
482 | && use minimal ; then |
| 468 | eerror "USE flags 'cluster' and 'extraengine' conflict with 'minimal' USE flag!" |
483 | eerror "USE flags 'cluster' and 'extraengine' conflict with 'minimal' USE flag!" |
| 469 | die "USE flags 'cluster' and 'extraengine' conflict with 'minimal' USE flag!" |
484 | die "USE flags 'cluster' and 'extraengine' conflict with 'minimal' USE flag!" |
| 470 | fi |
485 | fi |
|
|
486 | |
|
|
487 | # This should come after all of the die statements |
|
|
488 | enewgroup mysql 60 || die "problem adding 'mysql' group" |
|
|
489 | enewuser mysql 60 -1 /dev/null mysql || die "problem adding 'mysql' user" |
| 471 | |
490 | |
| 472 | mysql_check_version_range "4.0 to 5.0.99.99" \ |
491 | mysql_check_version_range "4.0 to 5.0.99.99" \ |
| 473 | && use berkdb \ |
492 | && use berkdb \ |
| 474 | && elog "Berkeley DB support is deprecated and will be removed in future versions!" |
493 | && elog "Berkeley DB support is deprecated and will be removed in future versions!" |
| 475 | } |
494 | } |
| … | |
… | |
| 526 | rebuilddirlist="." |
545 | rebuilddirlist="." |
| 527 | # TODO: check this with a cmake expert |
546 | # TODO: check this with a cmake expert |
| 528 | use innodb \ |
547 | use innodb \ |
| 529 | && cmake \ |
548 | && cmake \ |
| 530 | -DCMAKE_C_COMPILER=$(type -P $(tc-getCC)) \ |
549 | -DCMAKE_C_COMPILER=$(type -P $(tc-getCC)) \ |
| 531 | -DCMAKE_CXX_COMPILER=$(type -P $(tc-getCC)) \ |
550 | -DCMAKE_CXX_COMPILER=$(type -P $(tc-getCXX)) \ |
| 532 | "storage/innobase" |
551 | "storage/innobase" |
| 533 | else |
552 | else |
| 534 | rebuilddirlist=". innobase" |
553 | rebuilddirlist=". innobase" |
| 535 | fi |
554 | fi |
| 536 | |
555 | |