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

Diff of /eclass/mysql.eclass

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

Revision 1.147 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.147 2010/08/08 23:31:05 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}"
425 if use debug ; then 453 if use debug ; then
426 myconf="${myconf} --with-debug=full" 454 myconf="${myconf} --with-debug=full"
427 else 455 else
428 myconf="${myconf} --without-debug" 456 myconf="${myconf} --without-debug"
429 mysql_version_is_at_least "4.1.3" \ 457 mysql_version_is_at_least "4.1.3" \
430 && use cluster \ 458 && ( use cluster || [[ "${PN}" == "mysql-cluster" ]] ) \
431 && myconf="${myconf} --without-ndb-debug" 459 && myconf="${myconf} --without-ndb-debug"
432 fi 460 fi
433 461
434 if [ -n "${MYSQL_DEFAULT_CHARSET}" -a -n "${MYSQL_DEFAULT_COLLATION}" ]; then 462 if [ -n "${MYSQL_DEFAULT_CHARSET}" -a -n "${MYSQL_DEFAULT_COLLATION}" ]; then
435 ewarn "You are using a custom charset of ${MYSQL_DEFAULT_CHARSET}" 463 ewarn "You are using a custom charset of ${MYSQL_DEFAULT_CHARSET}"
492 myconf="${myconf} --without-berkeley-db" 520 myconf="${myconf} --without-berkeley-db"
493 fi 521 fi
494 522
495 if mysql_version_is_at_least "4.1.3" ; then 523 if mysql_version_is_at_least "4.1.3" ; then
496 myconf="${myconf} --with-geometry" 524 myconf="${myconf} --with-geometry"
525 if [[ "${PN}" != "mysql-cluster" ]] ; then
497 myconf="${myconf} $(use_with cluster ndbcluster)" 526 myconf="${myconf} $(use_with cluster ndbcluster)"
527 fi
498 fi 528 fi
499 529
500 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
501 # http://dev.mysql.com/doc/mysql/en/archive-storage-engine.html 531 # http://dev.mysql.com/doc/mysql/en/archive-storage-engine.html
502 myconf="${myconf} --with-archive-storage-engine" 532 myconf="${myconf} --with-archive-storage-engine"
541 myconf="${myconf} --with-readline" 571 myconf="${myconf} --with-readline"
542 myconf="${myconf} --with-zlib-dir=/usr/" 572 myconf="${myconf} --with-zlib-dir=/usr/"
543 myconf="${myconf} --without-pstack" 573 myconf="${myconf} --without-pstack"
544 myconf="${myconf} --with-plugindir=/usr/$(get_libdir)/mysql/plugin" 574 myconf="${myconf} --with-plugindir=/usr/$(get_libdir)/mysql/plugin"
545 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"
546 use max-idx-128 && myconf="${myconf} --with-max-indexes=128" 579 #use max-idx-128 && myconf="${myconf} --with-max-indexes=128"
547 if [ "${MYSQL_COMMUNITY_FEATURES}" == "1" ]; then 580 if [ "${MYSQL_COMMUNITY_FEATURES}" == "1" ]; then
548 myconf="${myconf} $(use_enable community community-features)" 581 myconf="${myconf} $(use_enable community community-features)"
549 if use community; then 582 if use community; then
550 myconf="${myconf} $(use_enable profiling)" 583 myconf="${myconf} $(use_enable profiling)"
551 else 584 else
613 for i in innodb_plugin ; do 646 for i in innodb_plugin ; do
614 [ -e "${S}"/storage/${i} ] && plugins_dyn="${plugins_dyn} ${i}" 647 [ -e "${S}"/storage/${i} ] && plugins_dyn="${plugins_dyn} ${i}"
615 done 648 done
616 649
617 # like configuration=max-no-ndb 650 # like configuration=max-no-ndb
618 if use cluster ; then 651 if ( use cluster || [[ "${PN}" == "mysql-cluster" ]] ) ; then
619 plugins_sta="${plugins_sta} ndbcluster partition" 652 plugins_sta="${plugins_sta} ndbcluster partition"
620 plugins_dis="${plugins_dis//partition}" 653 plugins_dis="${plugins_dis//partition}"
621 myconf="${myconf} --with-ndb-binlog" 654 myconf="${myconf} --with-ndb-binlog"
622 else 655 else
623 plugins_dis="${plugins_dis} ndbcluster" 656 plugins_dis="${plugins_dis} ndbcluster"
624 fi 657 fi
625 658
626 if [[ "${PN}" == "mariadb" ]] ; then 659 if [[ "${PN}" == "mariadb" ]] ; then
627 # 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
628 # caught above. 661 # caught above.
629 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
630 myconf="${myconf} $(use_with libevent)" 671 myconf="${myconf} $(use_with libevent)"
631 # This is not optional, without it several upstream testcases fail. 672 # This is not optional, without it several upstream testcases fail.
632 # Also strongly recommended by upstream. 673 # Also strongly recommended by upstream.
633 myconf="${myconf} --with-maria-tmp-tables" 674 myconf="${myconf} --with-maria-tmp-tables"
634 fi 675 fi
635 676
636 if pbxt_available && [[ "${PBXT_NEWSTYLE}" == "1" ]]; then 677 if pbxt_available && [[ "${PBXT_NEWSTYLE}" == "1" ]]; then
637 use pbxt \ 678 use pbxt \
638 && plugins_dyn="${plugins_dyn} pbxt" \ 679 && plugins_dyn="${plugins_dyn} pbxt" \
639 || plugins_dis="${plugins_dis} pbxt" 680 || plugins_dis="${plugins_dis} pbxt"
640 fi 681 fi
641 682
642 use static && \ 683 use static && \
643 plugins_sta="${plugins_sta} ${plugins_dyn}" && \ 684 plugins_sta="${plugins_sta} ${plugins_dyn}" && \
644 plugins_dyn="" 685 plugins_dyn=""
645 686
646 einfo "Available plugins: ${plugins_avail}" 687 einfo "Available plugins: ${plugins_avail}"
647 einfo "Dynamic plugins: ${plugins_dyn}" 688 einfo "Dynamic plugins: ${plugins_dyn}"
648 einfo "Static plugins: ${plugins_sta}" 689 einfo "Static plugins: ${plugins_sta}"
649 einfo "Disabled plugins: ${plugins_dis}" 690 einfo "Disabled plugins: ${plugins_dis}"
650 691
660 mysql_init_vars 701 mysql_init_vars
661 702
662 pushd "${WORKDIR}/pbxt-${PBXT_VERSION}" &>/dev/null 703 pushd "${WORKDIR}/pbxt-${PBXT_VERSION}" &>/dev/null
663 704
664 einfo "Reconfiguring dir '${PWD}'" 705 einfo "Reconfiguring dir '${PWD}'"
665 AT_GNUCONF_UPDATE="yes" eautoreconf 706 eautoreconf
666 707
667 local myconf="" 708 local myconf=""
668 myconf="${myconf} --with-mysql=${S} --libdir=/usr/$(get_libdir)" 709 myconf="${myconf} --with-mysql=${S} --libdir=/usr/$(get_libdir)"
669 use debug && myconf="${myconf} --with-debug=full" 710 use debug && myconf="${myconf} --with-debug=full"
670 econf ${myconf} || die "Problem configuring PBXT storage engine" 711 econf ${myconf} || die "Problem configuring PBXT storage engine"
728 && use minimal ; then 769 && use minimal ; then
729 M="USE flags 'cluster', 'extraengine', 'embedded' conflict with 'minimal' USE flag!" 770 M="USE flags 'cluster', 'extraengine', 'embedded' conflict with 'minimal' USE flag!"
730 eerror "${M}" 771 eerror "${M}"
731 die "${M}" 772 die "${M}"
732 fi 773 fi
733 774
734 if mysql_version_is_at_least "5.1" \ 775 if mysql_version_is_at_least "5.1" \
735 && xtradb_patch_available \ 776 && xtradb_patch_available \
736 && use xtradb \ 777 && use xtradb \
737 && use embedded ; then 778 && use embedded ; then
738 M="USE flags 'xtradb' and 'embedded' conflict and cause build failures" 779 M="USE flags 'xtradb' and 'embedded' conflict and cause build failures"
808 mysql_mv_patches 849 mysql_mv_patches
809 # And apply 850 # And apply
810 epatch 851 epatch
811 852
812 # last -fPIC fixup, per bug #305873 853 # last -fPIC fixup, per bug #305873
813 i="${S}"/storage/innodb_plugin/plug.in 854 i="${S}"/storage/innodb_plugin/plug.in
814 [ -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}"
815 856
816 # 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
817 rm -f "${S}/zlib/"*.[ch] 860 rm -f "${S}/zlib/"*.[ch]
818 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
819 rm -f "scripts/mysqlbug" 863 rm -f "scripts/mysqlbug"
820 864
821 # Make charsets install in the right place 865 # Make charsets install in the right place
822 find . -name 'Makefile.am' \ 866 find . -name 'Makefile.am' \
823 -exec sed --in-place -e 's!$(pkgdatadir)!'${MY_SHAREDSTATEDIR}'!g' {} \; 867 -exec sed --in-place -e 's!$(pkgdatadir)!'${MY_SHAREDSTATEDIR}'!g' {} \;
845 # Or maybe we haven't 889 # Or maybe we haven't
846 [ -d "${i}" -a ! -d "${o}" ] && mv "${i}" "${o}" 890 [ -d "${i}" -a ! -d "${o}" ] && mv "${i}" "${o}"
847 cp -ral "${WORKDIR}/${XTRADB_P}" "${i}" 891 cp -ral "${WORKDIR}/${XTRADB_P}" "${i}"
848 popd >/dev/null 892 popd >/dev/null
849 fi 893 fi
850 894
851 if pbxt_available && [[ "${PBXT_NEWSTYLE}" == "1" ]] && use pbxt ; then 895 if pbxt_available && [[ "${PBXT_NEWSTYLE}" == "1" ]] && use pbxt ; then
852 einfo "Adding storage engine: PBXT" 896 einfo "Adding storage engine: PBXT"
853 pushd "${S}"/storage >/dev/null 897 pushd "${S}"/storage >/dev/null
854 i='pbxt' 898 i='pbxt'
855 [ -d "${i}" ] && rm -rf "${i}" 899 [ -d "${i}" ] && rm -rf "${i}"
871 fi 915 fi
872 916
873 for d in ${rebuilddirlist} ; do 917 for d in ${rebuilddirlist} ; do
874 einfo "Reconfiguring dir '${d}'" 918 einfo "Reconfiguring dir '${d}'"
875 pushd "${d}" &>/dev/null 919 pushd "${d}" &>/dev/null
876 AT_GNUCONF_UPDATE="yes" eautoreconf 920 eautoreconf
877 popd &>/dev/null 921 popd &>/dev/null
878 done 922 done
879 923
880 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" \
881 && use berkdb ; then 925 && use berkdb ; then
936 && CXXFLAGS="${CXXFLAGS} -fno-implicit-templates" 980 && CXXFLAGS="${CXXFLAGS} -fno-implicit-templates"
937 export CXXFLAGS 981 export CXXFLAGS
938 982
939 # 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.
940 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
941 994
942 econf \ 995 econf \
943 --libexecdir="/usr/sbin" \ 996 --libexecdir="/usr/sbin" \
944 --sysconfdir="${MY_SYSCONFDIR}" \ 997 --sysconfdir="${MY_SYSCONFDIR}" \
945 --localstatedir="${MY_LOCALSTATEDIR}" \ 998 --localstatedir="${MY_LOCALSTATEDIR}" \
1027 if use !test ; then 1080 if use !test ; then
1028 rm -rf "${D}"/${MY_SHAREDSTATEDIR}/mysql-test 1081 rm -rf "${D}"/${MY_SHAREDSTATEDIR}/mysql-test
1029 fi 1082 fi
1030 1083
1031 # Configuration stuff 1084 # Configuration stuff
1032 if mysql_version_is_at_least "5.1" ; then 1085 case ${MYSQL_PV_MAJOR} in
1033 mysql_mycnf_version="5.1"
1034 elif mysql_version_is_at_least "4.1" ; then
1035 mysql_mycnf_version="4.1"
1036 else
1037 mysql_mycnf_version="4.0" 1086 3*|4.0) mysql_mycnf_version="4.0" ;;
1038 fi 1087 4.[1-9]|5.0) mysql_mycnf_version="4.1" ;;
1039 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})"
1040 insinto "${MY_SYSCONFDIR}" 1091 insinto "${MY_SYSCONFDIR}"
1041 doins scripts/mysqlaccess.conf 1092 doins scripts/mysqlaccess.conf
1093 mycnf_src="my.cnf-${mysql_mycnf_version}"
1042 sed -e "s!@DATADIR@!${MY_DATADIR}!g" \ 1094 sed -e "s!@DATADIR@!${MY_DATADIR}!g" \
1043 "${FILESDIR}/my.cnf-${mysql_mycnf_version}" \ 1095 "${FILESDIR}/${mycnf_src}" \
1044 > "${TMPDIR}/my.cnf.ok" 1096 > "${TMPDIR}/my.cnf.ok"
1045 if mysql_version_is_at_least "4.1" && use latin1 ; then 1097 if use latin1 ; then
1046 sed -i \ 1098 sed -i \
1047 -e "/character-set/s|utf8|latin1|g" \ 1099 -e "/character-set/s|utf8|latin1|g" \
1048 "${TMPDIR}/my.cnf.ok" 1100 "${TMPDIR}/my.cnf.ok"
1049 fi 1101 fi
1050 newins "${TMPDIR}/my.cnf.ok" my.cnf 1102 newins "${TMPDIR}/my.cnf.ok" my.cnf
1144 1196
1145 einfo 1197 einfo
1146 elog "You might want to run:" 1198 elog "You might want to run:"
1147 elog "\"emerge --config =${CATEGORY}/${PF}\"" 1199 elog "\"emerge --config =${CATEGORY}/${PF}\""
1148 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."
1149 einfo 1206 einfo
1150 fi 1207 fi
1151 1208
1152 if pbxt_available && use pbxt ; then 1209 if pbxt_available && use pbxt ; then
1153 # TODO: explain it better 1210 # TODO: explain it better
1269 # 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
1270 helpfile="${TMPDIR}/mysqld-help" 1327 helpfile="${TMPDIR}/mysqld-help"
1271 ${ROOT}/usr/sbin/mysqld --verbose --help >"${helpfile}" 2>/dev/null 1328 ${ROOT}/usr/sbin/mysqld --verbose --help >"${helpfile}" 2>/dev/null
1272 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 \
1273 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 \
1274 ; do 1332 ; do
1275 optexp="--(skip-)?${opt}" optfull="--skip-${opt}" 1333 optexp="--(skip-)?${opt}" optfull="--skip-${opt}"
1276 egrep -sq -- "${optexp}" "${helpfile}" && options="${options} ${optfull}" 1334 egrep -sq -- "${optexp}" "${helpfile}" && options="${options} ${optfull}"
1277 done 1335 done
1278 # But some options changed names 1336 # But some options changed names
1286 1344
1287 if [[ -r "${help_tables}" ]] ; then 1345 if [[ -r "${help_tables}" ]] ; then
1288 cat "${help_tables}" >> "${sqltmp}" 1346 cat "${help_tables}" >> "${sqltmp}"
1289 fi 1347 fi
1290 fi 1348 fi
1291 1349
1292 einfo "Creating the mysql database and setting proper" 1350 einfo "Creating the mysql database and setting proper"
1293 einfo "permissions on it ..." 1351 einfo "permissions on it ..."
1294 1352
1295 local socket="${ROOT}/var/run/mysqld/mysqld${RANDOM}.sock" 1353 local socket="${ROOT}/var/run/mysqld/mysqld${RANDOM}.sock"
1296 local pidfile="${ROOT}/var/run/mysqld/mysqld${RANDOM}.pid" 1354 local pidfile="${ROOT}/var/run/mysqld/mysqld${RANDOM}.pid"

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

  ViewVC Help
Powered by ViewVC 1.1.20