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

Diff of /eclass/mysql.eclass

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

Revision 1.145 Revision 1.155
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/Attic/mysql.eclass,v 1.145 2010/04/27 05:45:55 robbat2 Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/Attic/mysql.eclass,v 1.155 2010/11/02 20:27:41 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>
59# Upstream MySQL considers the first two parts of the version number to be the 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 60# major version. Upgrades that change major version should always run
61# mysql_upgrade. 61# mysql_upgrade.
62MYSQL_PV_MAJOR="$(get_version_component_range 1-2 ${PV})" 62MYSQL_PV_MAJOR="$(get_version_component_range 1-2 ${PV})"
63 63
64# Cluster is a special case...
65if [[ "${PN}" == "mysql-cluster" ]]; then
66 case $PV in
67 6.1*|7.0*|7.1*) MYSQL_PV_MAJOR=5.1 ;;
68 esac
69fi
70
71
64# @ECLASS-VARIABLE: MYSQL_VERSION_ID 72# @ECLASS-VARIABLE: MYSQL_VERSION_ID
65# @DESCRIPTION: 73# @DESCRIPTION:
66# MYSQL_VERSION_ID will be: 74# MYSQL_VERSION_ID will be:
67# major * 10e6 + minor * 10e4 + micro * 10e2 + gentoo revision number, all [0..99] 75# major * 10e6 + minor * 10e4 + micro * 10e2 + gentoo revision number, all [0..99]
68# This is an important part, because many of the choices the MySQL ebuild will do 76# This is an important part, because many of the choices the MySQL ebuild will do
95 MYSQL_COMMUNITY_FEATURES=1 103 MYSQL_COMMUNITY_FEATURES=1
96elif [ "${PV#5.4}" != "${PV}" ] ; then 104elif [ "${PV#5.4}" != "${PV}" ] ; then
97 MYSQL_COMMUNITY_FEATURES=1 105 MYSQL_COMMUNITY_FEATURES=1
98elif [ "${PV#5.5}" != "${PV}" ] ; then 106elif [ "${PV#5.5}" != "${PV}" ] ; then
99 MYSQL_COMMUNITY_FEATURES=1 107 MYSQL_COMMUNITY_FEATURES=1
100elif [ "${PV#6.0}" != "${PV}" ] ; then 108elif [ "${PV#6}" != "${PV}" ] ; then
109 MYSQL_COMMUNITY_FEATURES=1
110elif [ "${PV#7}" != "${PV}" ] ; then
101 MYSQL_COMMUNITY_FEATURES=1 111 MYSQL_COMMUNITY_FEATURES=1
102else 112else
103 MYSQL_COMMUNITY_FEATURES=0 113 MYSQL_COMMUNITY_FEATURES=0
104fi 114fi
105 115
124 134
125[[ "${PN}" == "mariadb" ]] \ 135[[ "${PN}" == "mariadb" ]] \
126&& DEPEND="${DEPEND} libevent? ( >=dev-libs/libevent-1.4 )" 136&& DEPEND="${DEPEND} libevent? ( >=dev-libs/libevent-1.4 )"
127 137
128# Having different flavours at the same time is not a good idea 138# Having different flavours at the same time is not a good idea
129for i in "mysql" "mysql-community" "mariadb" ; do 139for i in "mysql" "mysql-community" "mysql-cluster" "mariadb" ; do
130 [[ "${i}" == ${PN} ]] || 140 [[ "${i}" == ${PN} ]] ||
131 DEPEND="${DEPEND} !dev-db/${i}" 141 DEPEND="${DEPEND} !dev-db/${i}"
132done 142done
133 143
134RDEPEND="${DEPEND} 144RDEPEND="${DEPEND}
154 [ -z "${MY_PV}" ] && MY_PV="${PV//_/-}" 164 [ -z "${MY_PV}" ] && MY_PV="${PV//_/-}"
155 if [ "${PN}" == "mariadb" ]; then 165 if [ "${PN}" == "mariadb" ]; then
156 MARIA_FULL_PV="$(replace_version_separator 3 '-' ${PV})" 166 MARIA_FULL_PV="$(replace_version_separator 3 '-' ${PV})"
157 MARIA_FULL_P="${PN}-${MARIA_FULL_PV}" 167 MARIA_FULL_P="${PN}-${MARIA_FULL_PV}"
158 SERVER_URI=" 168 SERVER_URI="
169 http://ftp.osuosl.org/pub/mariadb/${MARIA_FULL_P}/kvm-tarbake-jaunty-x86/${MARIA_FULL_P}.tar.gz
159 http://ftp.rediris.es/mirror/MariaDB/${MARIA_FULL_P}/kvm-tarbake-jaunty-x86/${MARIA_FULL_P}.tar.gz 170 http://ftp.rediris.es/mirror/MariaDB/${MARIA_FULL_P}/kvm-tarbake-jaunty-x86/${MARIA_FULL_P}.tar.gz
160 http://maria.llarian.net/download/${MARIA_FULL_P}/kvm-tarbake-jaunty-x86/${MARIA_FULL_P}.tar.gz 171 http://maria.llarian.net/download/${MARIA_FULL_P}/kvm-tarbake-jaunty-x86/${MARIA_FULL_P}.tar.gz
161 http://launchpad.net/maria/${MYSQL_PV_MAJOR}/ongoing/+download/${MARIA_FULL_P}.tar.gz 172 http://launchpad.net/maria/${MYSQL_PV_MAJOR}/ongoing/+download/${MARIA_FULL_P}.tar.gz
173 http://mirrors.fe.up.pt/pub/${PN}/${MARIA_FULL_P}/kvm-tarbake-jaunty-x86/${MARIA_FULL_P}.tar.gz
174 http://ftp-stud.hs-esslingen.de/pub/Mirrors/${PN}/${MARIA_FULL_P}/kvm-tarbake-jaunty-x86/${MARIA_FULL_P}.tar.gz
162 " 175 "
163 # The community build is on the mirrors 176 # The community and cluster builds are on the mirrors
164 elif [ "${MYSQL_COMMUNITY_FEATURES}" == "1" ]; then 177 elif [[ "${MYSQL_COMMUNITY_FEATURES}" == "1" || ${PN} == "mysql-cluster" ]] ; then
165 SERVER_URI="mirror://mysql/Downloads/MySQL-${PV%.*}/mysql-${MY_PV}.tar.gz" 178 if [[ "${PN}" == "mysql-cluster" ]] ; then
179 URI_DIR="MySQL-Cluster"
180 URI_FILE="mysql-cluster-gpl"
181 else
182 URI_DIR="MySQL"
183 URI_FILE="mysql"
184 fi
185 URI_A="${URI_FILE}-${MY_PV}.tar.gz"
186 MIRROR_PV=$(get_version_component_range 1-2 ${PV})
187 # Recently upstream switched to an archive site, and not on mirrors
188 SERVER_URI="http://downloads.mysql.com/archives/${URI_FILE}-${MIRROR_PV}/${URI_A}
189 mirror://mysql/Downloads/${URI_DIR}-${PV%.*}/${URI_A}"
166 # The (old) enterprise source is on the primary site only 190 # The (old) enterprise source is on the primary site only
167 elif [ "${PN}" == "mysql" ]; then 191 elif [ "${PN}" == "mysql" ]; then
168 SERVER_URI="ftp://ftp.mysql.com/pub/mysql/src/mysql-${MY_PV}.tar.gz" 192 SERVER_URI="ftp://ftp.mysql.com/pub/mysql/src/mysql-${MY_PV}.tar.gz"
169 fi 193 fi
170fi 194fi
193IUSE="big-tables debug embedded minimal ${IUSE_DEFAULT_ON}perl selinux ssl static test" 217IUSE="big-tables debug embedded minimal ${IUSE_DEFAULT_ON}perl selinux ssl static test"
194 218
195mysql_version_is_at_least "4.1" \ 219mysql_version_is_at_least "4.1" \
196&& IUSE="${IUSE} latin1" 220&& IUSE="${IUSE} latin1"
197 221
198mysql_version_is_at_least "4.1.3" \ 222if mysql_version_is_at_least "4.1.3" ; then
199&& IUSE="${IUSE} cluster extraengine" 223 IUSE="${IUSE} extraengine"
224 if [[ "${PN}" != "mysql-cluster" ]] ; then
225 IUSE="${IUSE} cluster"
226 fi
227fi
200 228
201mysql_version_is_at_least "5.0" \ 229mysql_version_is_at_least "5.0" \
202|| IUSE="${IUSE} raid" 230|| IUSE="${IUSE} raid"
203 231
204mysql_version_is_at_least "5.0.18" \ 232mysql_version_is_at_least "5.0.18" \
273mysql_disable_test() { 301mysql_disable_test() {
274 local rawtestname testname testsuite reason mysql_disable_file 302 local rawtestname testname testsuite reason mysql_disable_file
275 rawtestname="${1}" ; shift 303 rawtestname="${1}" ; shift
276 reason="${@}" 304 reason="${@}"
277 ewarn "test '${rawtestname}' disabled: '${reason}'" 305 ewarn "test '${rawtestname}' disabled: '${reason}'"
278 306
279 testsuite="${rawtestname/.*}" 307 testsuite="${rawtestname/.*}"
280 testname="${rawtestname/*.}" 308 testname="${rawtestname/*.}"
281 mysql_disable_file="${S}/mysql-test/t/disabled.def" 309 mysql_disable_file="${S}/mysql-test/t/disabled.def"
282 #einfo "rawtestname=${rawtestname} testname=${testname} testsuite=${testsuite}" 310 #einfo "rawtestname=${rawtestname} testname=${testname} testsuite=${testsuite}"
283 echo ${testname} : ${reason} >> "${mysql_disable_file}" 311 echo ${testname} : ${reason} >> "${mysql_disable_file}"
365 MY_DATADIR="${new_MY_DATADIR}" 393 MY_DATADIR="${new_MY_DATADIR}"
366 fi 394 fi
367 fi 395 fi
368 fi 396 fi
369 397
398 if [ "${MY_SOURCEDIR:-unset}" == "unset" ]; then
370 MY_SOURCEDIR=${SERVER_URI##*/} 399 MY_SOURCEDIR=${SERVER_URI##*/}
371 MY_SOURCEDIR=${MY_SOURCEDIR%.tar*} 400 MY_SOURCEDIR=${MY_SOURCEDIR%.tar*}
401 fi
372 402
373 export MY_SHAREDSTATEDIR MY_SYSCONFDIR 403 export MY_SHAREDSTATEDIR MY_SYSCONFDIR
374 export MY_LIBDIR MY_LOCALSTATEDIR MY_LOGDIR 404 export MY_LIBDIR MY_LOCALSTATEDIR MY_LOGDIR
375 export MY_INCLUDEDIR MY_DATADIR MY_SOURCEDIR 405 export MY_INCLUDEDIR MY_DATADIR MY_SOURCEDIR
376} 406}
423 if use debug ; then 453 if use debug ; then
424 myconf="${myconf} --with-debug=full" 454 myconf="${myconf} --with-debug=full"
425 else 455 else
426 myconf="${myconf} --without-debug" 456 myconf="${myconf} --without-debug"
427 mysql_version_is_at_least "4.1.3" \ 457 mysql_version_is_at_least "4.1.3" \
428 && use cluster \ 458 && ( use cluster || [[ "${PN}" == "mysql-cluster" ]] ) \
429 && myconf="${myconf} --without-ndb-debug" 459 && myconf="${myconf} --without-ndb-debug"
430 fi 460 fi
431 461
432 if [ -n "${MYSQL_DEFAULT_CHARSET}" -a -n "${MYSQL_DEFAULT_COLLATION}" ]; then 462 if [ -n "${MYSQL_DEFAULT_CHARSET}" -a -n "${MYSQL_DEFAULT_COLLATION}" ]; then
433 ewarn "You are using a custom charset of ${MYSQL_DEFAULT_CHARSET}" 463 ewarn "You are using a custom charset of ${MYSQL_DEFAULT_CHARSET}"
490 myconf="${myconf} --without-berkeley-db" 520 myconf="${myconf} --without-berkeley-db"
491 fi 521 fi
492 522
493 if mysql_version_is_at_least "4.1.3" ; then 523 if mysql_version_is_at_least "4.1.3" ; then
494 myconf="${myconf} --with-geometry" 524 myconf="${myconf} --with-geometry"
525 if [[ "${PN}" != "mysql-cluster" ]] ; then
495 myconf="${myconf} $(use_with cluster ndbcluster)" 526 myconf="${myconf} $(use_with cluster ndbcluster)"
527 fi
496 fi 528 fi
497 529
498 if mysql_version_is_at_least "4.1.3" && use extraengine ; then 530 if mysql_version_is_at_least "4.1.3" && use extraengine ; then
499 # http://dev.mysql.com/doc/mysql/en/archive-storage-engine.html 531 # http://dev.mysql.com/doc/mysql/en/archive-storage-engine.html
500 myconf="${myconf} --with-archive-storage-engine" 532 myconf="${myconf} --with-archive-storage-engine"
539 myconf="${myconf} --with-readline" 571 myconf="${myconf} --with-readline"
540 myconf="${myconf} --with-zlib-dir=/usr/" 572 myconf="${myconf} --with-zlib-dir=/usr/"
541 myconf="${myconf} --without-pstack" 573 myconf="${myconf} --without-pstack"
542 myconf="${myconf} --with-plugindir=/usr/$(get_libdir)/mysql/plugin" 574 myconf="${myconf} --with-plugindir=/usr/$(get_libdir)/mysql/plugin"
543 575
576 # This is an explict die here, because if we just forcibly disable it, then the
577 # user's data is not accessible.
578 use max-idx-128 && die "Bug #336027: upstream has a corruption issue with max-idx-128 presently"
544 use max-idx-128 && myconf="${myconf} --with-max-indexes=128" 579 #use max-idx-128 && myconf="${myconf} --with-max-indexes=128"
545 if [ "${MYSQL_COMMUNITY_FEATURES}" == "1" ]; then 580 if [ "${MYSQL_COMMUNITY_FEATURES}" == "1" ]; then
546 myconf="${myconf} $(use_enable community community-features)" 581 myconf="${myconf} $(use_enable community community-features)"
547 if use community; then 582 if use community; then
548 myconf="${myconf} $(use_enable profiling)" 583 myconf="${myconf} $(use_enable profiling)"
549 else 584 else
611 for i in innodb_plugin ; do 646 for i in innodb_plugin ; do
612 [ -e "${S}"/storage/${i} ] && plugins_dyn="${plugins_dyn} ${i}" 647 [ -e "${S}"/storage/${i} ] && plugins_dyn="${plugins_dyn} ${i}"
613 done 648 done
614 649
615 # like configuration=max-no-ndb 650 # like configuration=max-no-ndb
616 if use cluster ; then 651 if ( use cluster || [[ "${PN}" == "mysql-cluster" ]] ) ; then
617 plugins_sta="${plugins_sta} ndbcluster" 652 plugins_sta="${plugins_sta} ndbcluster partition"
653 plugins_dis="${plugins_dis//partition}"
618 myconf="${myconf} --with-ndb-binlog" 654 myconf="${myconf} --with-ndb-binlog"
619 else 655 else
620 plugins_dis="${plugins_dis} ndbcluster" 656 plugins_dis="${plugins_dis} ndbcluster"
621 fi 657 fi
622 658
623 if [[ "${PN}" == "mariadb" ]] ; then 659 if [[ "${PN}" == "mariadb" ]] ; then
624 # In MariaDB, InnoDB is packaged in the xtradb directory, so it's not 660 # In MariaDB, InnoDB is packaged in the xtradb directory, so it's not
625 # caught above. 661 # caught above.
626 plugins_sta="${plugins_sta},maria,innobase" 662 plugins_sta="${plugins_sta} maria"
663
664 [ -e "${S}"/storage/innobase ] || [ -e "${S}"/storage/xtradb ] ||
665 die "The ${P} package doesn't provide innobase nor xtradb"
666
667 for i in innobase xtradb ; do
668 [ -e "${S}"/storage/${i} ] && plugins_sta="${plugins_sta} ${i}"
669 done
670
627 myconf="${myconf} $(use_with libevent)" 671 myconf="${myconf} $(use_with libevent)"
628 # This is not optional, without it several upstream testcases fail. 672 # This is not optional, without it several upstream testcases fail.
629 # Also strongly recommended by upstream. 673 # Also strongly recommended by upstream.
630 myconf="${myconf} --with-maria-tmp-tables" 674 myconf="${myconf} --with-maria-tmp-tables"
631 fi 675 fi
632 676
633 if pbxt_available && [[ "${PBXT_NEWSTYLE}" == "1" ]]; then 677 if pbxt_available && [[ "${PBXT_NEWSTYLE}" == "1" ]]; then
634 use pbxt \ 678 use pbxt \
635 && plugins_dyn="${plugins_dyn} pbxt" \ 679 && plugins_dyn="${plugins_dyn} pbxt" \
636 || plugins_dis="${plugins_dis} pbxt" 680 || plugins_dis="${plugins_dis} pbxt"
637 fi 681 fi
638 682
639 use static && \ 683 use static && \
640 plugins_sta="${plugins_sta} ${plugins_dyn}" && \ 684 plugins_sta="${plugins_sta} ${plugins_dyn}" && \
641 plugins_dyn="" 685 plugins_dyn=""
642 686
643 einfo "Available plugins: ${plugins_avail}" 687 einfo "Available plugins: ${plugins_avail}"
644 einfo "Dynamic plugins: ${plugins_dyn}" 688 einfo "Dynamic plugins: ${plugins_dyn}"
645 einfo "Static plugins: ${plugins_sta}" 689 einfo "Static plugins: ${plugins_sta}"
646 einfo "Disabled plugins: ${plugins_dis}" 690 einfo "Disabled plugins: ${plugins_dis}"
647 691
657 mysql_init_vars 701 mysql_init_vars
658 702
659 pushd "${WORKDIR}/pbxt-${PBXT_VERSION}" &>/dev/null 703 pushd "${WORKDIR}/pbxt-${PBXT_VERSION}" &>/dev/null
660 704
661 einfo "Reconfiguring dir '${PWD}'" 705 einfo "Reconfiguring dir '${PWD}'"
662 AT_GNUCONF_UPDATE="yes" eautoreconf 706 eautoreconf
663 707
664 local myconf="" 708 local myconf=""
665 myconf="${myconf} --with-mysql=${S} --libdir=/usr/$(get_libdir)" 709 myconf="${myconf} --with-mysql=${S} --libdir=/usr/$(get_libdir)"
666 use debug && myconf="${myconf} --with-debug=full" 710 use debug && myconf="${myconf} --with-debug=full"
667 econf ${myconf} || die "Problem configuring PBXT storage engine" 711 econf ${myconf} || die "Problem configuring PBXT storage engine"
725 && use minimal ; then 769 && use minimal ; then
726 M="USE flags 'cluster', 'extraengine', 'embedded' conflict with 'minimal' USE flag!" 770 M="USE flags 'cluster', 'extraengine', 'embedded' conflict with 'minimal' USE flag!"
727 eerror "${M}" 771 eerror "${M}"
728 die "${M}" 772 die "${M}"
729 fi 773 fi
730 774
731 if mysql_version_is_at_least "5.1" \ 775 if mysql_version_is_at_least "5.1" \
732 && xtradb_patch_available \ 776 && xtradb_patch_available \
733 && use xtradb \ 777 && use xtradb \
734 && use embedded ; then 778 && use embedded ; then
735 M="USE flags 'xtradb' and 'embedded' conflict and cause build failures" 779 M="USE flags 'xtradb' and 'embedded' conflict and cause build failures"
805 mysql_mv_patches 849 mysql_mv_patches
806 # And apply 850 # And apply
807 epatch 851 epatch
808 852
809 # last -fPIC fixup, per bug #305873 853 # last -fPIC fixup, per bug #305873
810 i="${S}"/storage/innodb_plugin/plug.in 854 i="${S}"/storage/innodb_plugin/plug.in
811 [ -f "${i}" ] && sed -i -e '/CFLAGS/s,-prefer-non-pic,,g' "${i}" 855 [ -f "${i}" ] && sed -i -e '/CFLAGS/s,-prefer-non-pic,,g' "${i}"
812 856
813 # Additional checks, remove bundled zlib 857 # Additional checks, remove bundled zlib (Cluster needs this, for static
858 # memory management in zlib, leave available for Cluster)
859 if [[ "${PN}" != "mysql-cluster" ]] ; then
814 rm -f "${S}/zlib/"*.[ch] 860 rm -f "${S}/zlib/"*.[ch]
815 sed -i -e "s/zlib\/Makefile dnl/dnl zlib\/Makefile/" "${S}/configure.in" 861 sed -i -e "s/zlib\/Makefile dnl/dnl zlib\/Makefile/" "${S}/configure.in"
862 fi
816 rm -f "scripts/mysqlbug" 863 rm -f "scripts/mysqlbug"
817 864
818 # Make charsets install in the right place 865 # Make charsets install in the right place
819 find . -name 'Makefile.am' \ 866 find . -name 'Makefile.am' \
820 -exec sed --in-place -e 's!$(pkgdatadir)!'${MY_SHAREDSTATEDIR}'!g' {} \; 867 -exec sed --in-place -e 's!$(pkgdatadir)!'${MY_SHAREDSTATEDIR}'!g' {} \;
842 # Or maybe we haven't 889 # Or maybe we haven't
843 [ -d "${i}" -a ! -d "${o}" ] && mv "${i}" "${o}" 890 [ -d "${i}" -a ! -d "${o}" ] && mv "${i}" "${o}"
844 cp -ral "${WORKDIR}/${XTRADB_P}" "${i}" 891 cp -ral "${WORKDIR}/${XTRADB_P}" "${i}"
845 popd >/dev/null 892 popd >/dev/null
846 fi 893 fi
847 894
848 if pbxt_available && [[ "${PBXT_NEWSTYLE}" == "1" ]] && use pbxt ; then 895 if pbxt_available && [[ "${PBXT_NEWSTYLE}" == "1" ]] && use pbxt ; then
849 einfo "Adding storage engine: PBXT" 896 einfo "Adding storage engine: PBXT"
850 pushd "${S}"/storage >/dev/null 897 pushd "${S}"/storage >/dev/null
851 i='pbxt' 898 i='pbxt'
852 [ -d "${i}" ] && rm -rf "${i}" 899 [ -d "${i}" ] && rm -rf "${i}"
868 fi 915 fi
869 916
870 for d in ${rebuilddirlist} ; do 917 for d in ${rebuilddirlist} ; do
871 einfo "Reconfiguring dir '${d}'" 918 einfo "Reconfiguring dir '${d}'"
872 pushd "${d}" &>/dev/null 919 pushd "${d}" &>/dev/null
873 AT_GNUCONF_UPDATE="yes" eautoreconf 920 eautoreconf
874 popd &>/dev/null 921 popd &>/dev/null
875 done 922 done
876 923
877 if mysql_check_version_range "4.1 to 5.0.99.99" \ 924 if mysql_check_version_range "4.1 to 5.0.99.99" \
878 && use berkdb ; then 925 && use berkdb ; then
933 && CXXFLAGS="${CXXFLAGS} -fno-implicit-templates" 980 && CXXFLAGS="${CXXFLAGS} -fno-implicit-templates"
934 export CXXFLAGS 981 export CXXFLAGS
935 982
936 # bug #283926, with GCC4.4, this is required to get correct behavior. 983 # bug #283926, with GCC4.4, this is required to get correct behavior.
937 append-flags -fno-strict-aliasing 984 append-flags -fno-strict-aliasing
985
986 # bug #335185, #335995, with >= GCC4.3.3 on x86 only, omit-frame-pointer
987 # causes a mis-compile.
988 # Upstream bugs:
989 # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38562
990 # http://bugs.mysql.com/bug.php?id=45205
991 use x86 && version_is_at_least "4.3.3" "$(gcc-fullversion)" && \
992 append-flags -fno-omit-frame-pointer && \
993 filter-flags -fomit-frame-pointer
938 994
939 econf \ 995 econf \
940 --libexecdir="/usr/sbin" \ 996 --libexecdir="/usr/sbin" \
941 --sysconfdir="${MY_SYSCONFDIR}" \ 997 --sysconfdir="${MY_SYSCONFDIR}" \
942 --localstatedir="${MY_LOCALSTATEDIR}" \ 998 --localstatedir="${MY_LOCALSTATEDIR}" \
1024 if use !test ; then 1080 if use !test ; then
1025 rm -rf "${D}"/${MY_SHAREDSTATEDIR}/mysql-test 1081 rm -rf "${D}"/${MY_SHAREDSTATEDIR}/mysql-test
1026 fi 1082 fi
1027 1083
1028 # Configuration stuff 1084 # Configuration stuff
1029 if mysql_version_is_at_least "5.1" ; then 1085 case ${MYSQL_PV_MAJOR} in
1030 mysql_mycnf_version="5.1"
1031 elif mysql_version_is_at_least "4.1" ; then
1032 mysql_mycnf_version="4.1"
1033 else
1034 mysql_mycnf_version="4.0" 1086 3*|4.0) mysql_mycnf_version="4.0" ;;
1035 fi 1087 4.[1-9]|5.0) mysql_mycnf_version="4.1" ;;
1036 einfo "Building default my.cnf" 1088 5.[1-9]|6*|7*) mysql_mycnf_version="5.1" ;;
1089 esac
1090 einfo "Building default my.cnf (${mysql_mycnf_version})"
1037 insinto "${MY_SYSCONFDIR}" 1091 insinto "${MY_SYSCONFDIR}"
1038 doins scripts/mysqlaccess.conf 1092 doins scripts/mysqlaccess.conf
1093 mycnf_src="my.cnf-${mysql_mycnf_version}"
1039 sed -e "s!@DATADIR@!${MY_DATADIR}!g" \ 1094 sed -e "s!@DATADIR@!${MY_DATADIR}!g" \
1040 "${FILESDIR}/my.cnf-${mysql_mycnf_version}" \ 1095 "${FILESDIR}/${mycnf_src}" \
1041 > "${TMPDIR}/my.cnf.ok" 1096 > "${TMPDIR}/my.cnf.ok"
1042 if mysql_version_is_at_least "4.1" && use latin1 ; then 1097 if use latin1 ; then
1043 sed -i \ 1098 sed -i \
1044 -e "/character-set/s|utf8|latin1|g" \ 1099 -e "/character-set/s|utf8|latin1|g" \
1045 "${TMPDIR}/my.cnf.ok" 1100 "${TMPDIR}/my.cnf.ok"
1046 fi 1101 fi
1047 newins "${TMPDIR}/my.cnf.ok" my.cnf 1102 newins "${TMPDIR}/my.cnf.ok" my.cnf
1141 1196
1142 einfo 1197 einfo
1143 elog "You might want to run:" 1198 elog "You might want to run:"
1144 elog "\"emerge --config =${CATEGORY}/${PF}\"" 1199 elog "\"emerge --config =${CATEGORY}/${PF}\""
1145 elog "if this is a new install." 1200 elog "if this is a new install."
1201 einfo
1202
1203 einfo
1204 elog "If you are upgrading major versions, you should run the"
1205 elog "mysql_upgrade tool."
1146 einfo 1206 einfo
1147 fi 1207 fi
1148 1208
1149 if pbxt_available && use pbxt ; then 1209 if pbxt_available && use pbxt ; then
1150 # TODO: explain it better 1210 # TODO: explain it better
1266 # Figure out which options we need to disable to do the setup 1326 # Figure out which options we need to disable to do the setup
1267 helpfile="${TMPDIR}/mysqld-help" 1327 helpfile="${TMPDIR}/mysqld-help"
1268 ${ROOT}/usr/sbin/mysqld --verbose --help >"${helpfile}" 2>/dev/null 1328 ${ROOT}/usr/sbin/mysqld --verbose --help >"${helpfile}" 2>/dev/null
1269 for opt in grant-tables host-cache name-resolve networking slave-start bdb \ 1329 for opt in grant-tables host-cache name-resolve networking slave-start bdb \
1270 federated innodb ssl log-bin relay-log slow-query-log external-locking \ 1330 federated innodb ssl log-bin relay-log slow-query-log external-locking \
1331 ndbcluster \
1271 ; do 1332 ; do
1272 optexp="--(skip-)?${opt}" optfull="--skip-${opt}" 1333 optexp="--(skip-)?${opt}" optfull="--skip-${opt}"
1273 egrep -sq -- "${optexp}" "${helpfile}" && options="${options} ${optfull}" 1334 egrep -sq -- "${optexp}" "${helpfile}" && options="${options} ${optfull}"
1274 done 1335 done
1275 # But some options changed names 1336 # But some options changed names
1283 1344
1284 if [[ -r "${help_tables}" ]] ; then 1345 if [[ -r "${help_tables}" ]] ; then
1285 cat "${help_tables}" >> "${sqltmp}" 1346 cat "${help_tables}" >> "${sqltmp}"
1286 fi 1347 fi
1287 fi 1348 fi
1288 1349
1289 einfo "Creating the mysql database and setting proper" 1350 einfo "Creating the mysql database and setting proper"
1290 einfo "permissions on it ..." 1351 einfo "permissions on it ..."
1291 1352
1292 local socket="${ROOT}/var/run/mysqld/mysqld${RANDOM}.sock" 1353 local socket="${ROOT}/var/run/mysqld/mysqld${RANDOM}.sock"
1293 local pidfile="${ROOT}/var/run/mysqld/mysqld${RANDOM}.pid" 1354 local pidfile="${ROOT}/var/run/mysqld/mysqld${RANDOM}.pid"

Legend:
Removed from v.1.145  
changed lines
  Added in v.1.155

  ViewVC Help
Powered by ViewVC 1.1.20