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

Diff of /eclass/mysql.eclass

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

Revision 1.103 Revision 1.108
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/Attic/mysql.eclass,v 1.103 2009/01/12 23:08:17 maekke Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/Attic/mysql.eclass,v 1.108 2009/02/28 10:50:24 robbat2 Exp $
4 4
5# Author: Francesco Riosa (Retired) <vivo@gentoo.org> 5# Author: Francesco Riosa (Retired) <vivo@gentoo.org>
6# Maintainer: MySQL Team <mysql-bugs@gentoo.org> 6# Maintainer: MySQL Team <mysql-bugs@gentoo.org>
7# - Luca Longinotti <chtekk@gentoo.org> 7# - Luca Longinotti <chtekk@gentoo.org>
8# - Robin H. Johnson <robbat2@gentoo.org> 8# - Robin H. Johnson <robbat2@gentoo.org>
9 9
10WANT_AUTOCONF="latest" 10WANT_AUTOCONF="latest"
11WANT_AUTOMAKE="latest" 11WANT_AUTOMAKE="latest"
12 12
13inherit eutils flag-o-matic gnuconfig autotools mysql_fx 13inherit eutils flag-o-matic gnuconfig autotools mysql_fx versionator
14 14
15# Shorten the path because the socket path length must be shorter than 107 chars 15# Shorten the path because the socket path length must be shorter than 107 chars
16# and we will run a mysql server during test phase 16# and we will run a mysql server during test phase
17S="${WORKDIR}/mysql" 17S="${WORKDIR}/mysql"
18 18
19[[ "${MY_EXTRAS_VER}" == "latest" ]] && MY_EXTRAS_VER="20070108" 19[[ "${MY_EXTRAS_VER}" == "latest" ]] && MY_EXTRAS_VER="20090228-0714Z"
20if [[ "${MY_EXTRAS_VER}" == "live" ]]; then 20if [[ "${MY_EXTRAS_VER}" == "live" ]]; then
21 EGIT_PROJECT=mysql-extras 21 EGIT_PROJECT=mysql-extras
22 EGIT_REPO_URI="git://git.overlays.gentoo.org/proj/mysql-extras.git" 22 EGIT_REPO_URI="git://git.overlays.gentoo.org/proj/mysql-extras.git"
23 inherit git 23 inherit git
24fi 24fi
72mysql_version_is_at_least "5.1" \ 72mysql_version_is_at_least "5.1" \
73|| DEPEND="${DEPEND} berkdb? ( sys-apps/ed )" 73|| DEPEND="${DEPEND} berkdb? ( sys-apps/ed )"
74 74
75# compile-time-only 75# compile-time-only
76mysql_version_is_at_least "5.1.12" \ 76mysql_version_is_at_least "5.1.12" \
77&& DEPEND="${DEPEND} innodb? ( >=dev-util/cmake-2.4.3 )" 77&& DEPEND="${DEPEND} >=dev-util/cmake-2.4.3"
78 78
79# BitKeeper dependency, compile-time only 79# BitKeeper dependency, compile-time only
80[[ ${IS_BITKEEPER} -eq 90 ]] && DEPEND="${DEPEND} dev-util/bk_client" 80[[ ${IS_BITKEEPER} -eq 90 ]] && DEPEND="${DEPEND} dev-util/bk_client"
81 81
82 82
83# dev-perl/DBD-mysql is needed by some scripts installed by MySQL 83# dev-perl/DBD-mysql is needed by some scripts installed by MySQL
84PDEPEND="perl? ( >=dev-perl/DBD-mysql-2.9004 )" 84PDEPEND="perl? ( >=dev-perl/DBD-mysql-2.9004 )"
85
86# For other stuff to bring us in
87PDEPEND="${PDEPEND} =virtual/mysql-$(get_version_component_range 1-2 ${PV})"
85 88
86# Work out the default SERVER_URI correctly 89# Work out the default SERVER_URI correctly
87if [ -z "${SERVER_URI}" ]; then 90if [ -z "${SERVER_URI}" ]; then
88 # The community build is on the mirrors 91 # The community build is on the mirrors
89 if [ "${PN}" == "mysql-community" ]; then 92 if [ "${PN}" == "mysql-community" ]; then
119mysql_version_is_at_least "5.0" \ 122mysql_version_is_at_least "5.0" \
120|| IUSE="${IUSE} raid" 123|| IUSE="${IUSE} raid"
121 124
122mysql_version_is_at_least "5.0.18" \ 125mysql_version_is_at_least "5.0.18" \
123&& IUSE="${IUSE} max-idx-128" 126&& IUSE="${IUSE} max-idx-128"
124
125mysql_version_is_at_least "5.1" \
126&& IUSE="${IUSE} innodb"
127 127
128mysql_version_is_at_least "5.1" \ 128mysql_version_is_at_least "5.1" \
129|| IUSE="${IUSE} berkdb" 129|| IUSE="${IUSE} berkdb"
130 130
131mysql_version_is_at_least "5.1.12" \ 131mysql_version_is_at_least "5.1.12" \
436 436
437 elog "Before using the Federated storage engine, please be sure to read" 437 elog "Before using the Federated storage engine, please be sure to read"
438 elog "http://dev.mysql.com/doc/refman/5.1/en/federated-limitations.html" 438 elog "http://dev.mysql.com/doc/refman/5.1/en/federated-limitations.html"
439 fi 439 fi
440 440
441 if use innodb ; then 441 # Upstream specifically requests that InnoDB always be built.
442 plugins="${plugins},innobase" 442 plugins="${plugins},innobase"
443 fi
444 443
445 # like configuration=max-no-ndb 444 # like configuration=max-no-ndb
446 if use cluster ; then 445 if use cluster ; then
447 plugins="${plugins},ndbcluster" 446 plugins="${plugins},ndbcluster"
448 myconf="${myconf} --with-ndb-binlog" 447 myconf="${myconf} --with-ndb-binlog"
579 local rebuilddirlist d 578 local rebuilddirlist d
580 579
581 if mysql_version_is_at_least "5.1.12" ; then 580 if mysql_version_is_at_least "5.1.12" ; then
582 rebuilddirlist="." 581 rebuilddirlist="."
583 # TODO: check this with a cmake expert 582 # TODO: check this with a cmake expert
584 use innodb \
585 && cmake \ 583 cmake \
586 -DCMAKE_C_COMPILER=$(type -P $(tc-getCC)) \ 584 -DCMAKE_C_COMPILER=$(type -P $(tc-getCC)) \
587 -DCMAKE_CXX_COMPILER=$(type -P $(tc-getCXX)) \ 585 -DCMAKE_CXX_COMPILER=$(type -P $(tc-getCXX)) \
588 "storage/innobase" 586 "storage/innobase"
589 else 587 else
590 rebuilddirlist=". innobase" 588 rebuilddirlist=". innobase"
682 680
683 emake install DESTDIR="${D}" benchdir_root="${MY_SHAREDSTATEDIR}" || die "emake install failed" 681 emake install DESTDIR="${D}" benchdir_root="${MY_SHAREDSTATEDIR}" || die "emake install failed"
684 682
685 mysql_version_is_at_least "5.1.12" && use pbxt && pbxt_src_install 683 mysql_version_is_at_least "5.1.12" && use pbxt && pbxt_src_install
686 684
687 insinto "${MY_INCLUDEDIR}"
688 doins "${MY_INCLUDEDIR}"/my_{config,dir}.h
689
690 # Convenience links 685 # Convenience links
686 einfo "Making Convenience links for mysqlcheck multi-call binary"
691 dosym "/usr/bin/mysqlcheck" "/usr/bin/mysqlanalyze" 687 dosym "/usr/bin/mysqlcheck" "/usr/bin/mysqlanalyze"
692 dosym "/usr/bin/mysqlcheck" "/usr/bin/mysqlrepair" 688 dosym "/usr/bin/mysqlcheck" "/usr/bin/mysqlrepair"
693 dosym "/usr/bin/mysqlcheck" "/usr/bin/mysqloptimize" 689 dosym "/usr/bin/mysqlcheck" "/usr/bin/mysqloptimize"
694 690
695 # Various junk (my-*.cnf moved elsewhere) 691 # Various junk (my-*.cnf moved elsewhere)
692 einfo "Removing duplicate /usr/share/mysql files"
696 rm -Rf "${D}/usr/share/info" 693 rm -Rf "${D}/usr/share/info"
697 for removeme in "mysql-log-rotate" mysql.server* \ 694 for removeme in "mysql-log-rotate" mysql.server* \
698 binary-configure* my-*.cnf mi_test_all* 695 binary-configure* my-*.cnf mi_test_all*
699 do 696 do
700 rm -f "${D}"/usr/share/mysql/${removeme} 697 rm -f "${D}"/usr/share/mysql/${removeme}
701 done 698 done
702 699
703 # Clean up stuff for a minimal build 700 # Clean up stuff for a minimal build
704 if use minimal ; then 701 if use minimal ; then
702 einfo "Remove all extra content for minimal build"
705 rm -Rf "${D}${MY_SHAREDSTATEDIR}"/{mysql-test,sql-bench} 703 rm -Rf "${D}${MY_SHAREDSTATEDIR}"/{mysql-test,sql-bench}
706 rm -f "${D}"/usr/bin/{mysql{_install_db,manager*,_secure_installation,_fix_privilege_tables,hotcopy,_convert_table_format,d_multi,_fix_extensions,_zap,_explain_log,_tableinfo,d_safe,_install,_waitpid,binlog,test},myisam*,isam*,pack_isam} 704 rm -f "${D}"/usr/bin/{mysql{_install_db,manager*,_secure_installation,_fix_privilege_tables,hotcopy,_convert_table_format,d_multi,_fix_extensions,_zap,_explain_log,_tableinfo,d_safe,_install,_waitpid,binlog,test},myisam*,isam*,pack_isam}
707 rm -f "${D}/usr/sbin/mysqld" 705 rm -f "${D}/usr/sbin/mysqld"
708 rm -f "${D}${MY_LIBDIR}"/lib{heap,merge,nisam,my{sys,strings,sqld,isammrg,isam},vio,dbug}.a 706 rm -f "${D}${MY_LIBDIR}"/lib{heap,merge,nisam,my{sys,strings,sqld,isammrg,isam},vio,dbug}.a
709 fi 707 fi
712 if mysql_version_is_at_least "4.1" ; then 710 if mysql_version_is_at_least "4.1" ; then
713 mysql_mycnf_version="4.1" 711 mysql_mycnf_version="4.1"
714 else 712 else
715 mysql_mycnf_version="4.0" 713 mysql_mycnf_version="4.0"
716 fi 714 fi
715 einfo "Building default my.cnf"
717 insinto "${MY_SYSCONFDIR}" 716 insinto "${MY_SYSCONFDIR}"
718 doins scripts/mysqlaccess.conf 717 doins scripts/mysqlaccess.conf
719 sed -e "s!@DATADIR@!${MY_DATADIR}!g" \ 718 sed -e "s!@DATADIR@!${MY_DATADIR}!g" \
720 "${FILESDIR}/my.cnf-${mysql_mycnf_version}" \ 719 "${FILESDIR}/my.cnf-${mysql_mycnf_version}" \
721 > "${TMPDIR}/my.cnf.ok" 720 > "${TMPDIR}/my.cnf.ok"
724 fi 723 fi
725 newins "${TMPDIR}/my.cnf.ok" my.cnf 724 newins "${TMPDIR}/my.cnf.ok" my.cnf
726 725
727 # Minimal builds don't have the MySQL server 726 # Minimal builds don't have the MySQL server
728 if ! use minimal ; then 727 if ! use minimal ; then
728 einfo "Creating initial directories"
729 # Empty directories ... 729 # Empty directories ...
730 diropts "-m0750" 730 diropts "-m0750"
731 if [[ "${PREVIOUS_DATADIR}" != "yes" ]] ; then 731 if [[ "${PREVIOUS_DATADIR}" != "yes" ]] ; then
732 dodir "${MY_DATADIR}" 732 dodir "${MY_DATADIR}"
733 keepdir "${MY_DATADIR}" 733 keepdir "${MY_DATADIR}"
741 chown -R mysql:mysql "${D}/${folder}" 741 chown -R mysql:mysql "${D}/${folder}"
742 done 742 done
743 fi 743 fi
744 744
745 # Docs 745 # Docs
746 einfo "Installing docs"
746 dodoc README COPYING ChangeLog EXCEPTIONS-CLIENT INSTALL-SOURCE 747 dodoc README COPYING ChangeLog EXCEPTIONS-CLIENT INSTALL-SOURCE
747 doinfo "${S}"/Docs/mysql.info 748 doinfo "${S}"/Docs/mysql.info
748 749
749 # Minimal builds don't have the MySQL server 750 # Minimal builds don't have the MySQL server
750 if ! use minimal ; then 751 if ! use minimal ; then
752 einfo "Including support files and sample configurations"
751 docinto "support-files" 753 docinto "support-files"
752 for script in \ 754 for script in \
753 "${S}"/support-files/my-*.cnf \ 755 "${S}"/support-files/my-*.cnf \
754 "${S}"/support-files/magic \ 756 "${S}"/support-files/magic \
755 "${S}"/support-files/ndb-config-2-node.ini 757 "${S}"/support-files/ndb-config-2-node.ini

Legend:
Removed from v.1.103  
changed lines
  Added in v.1.108

  ViewVC Help
Powered by ViewVC 1.1.20