diff options
author | Luca Longinotti <chtekk@gentoo.org> | 2007-03-06 16:24:50 +0000 |
---|---|---|
committer | Luca Longinotti <chtekk@gentoo.org> | 2007-03-06 16:24:50 +0000 |
commit | 1be89e8e4e6095dd57394d62cd46eef8b00cf0e0 (patch) | |
tree | f6b3a55e293564daef373dfa8e3a7f2ef0cd59dc /dev-db | |
parent | Version bump and HOMEPAGE+SRC_URI update. Closes bug #169606, by Priit Laes <... (diff) | |
download | gentoo-2-1be89e8e4e6095dd57394d62cd46eef8b00cf0e0.tar.gz gentoo-2-1be89e8e4e6095dd57394d62cd46eef8b00cf0e0.tar.bz2 gentoo-2-1be89e8e4e6095dd57394d62cd46eef8b00cf0e0.zip |
Revert mysql madness, cleanup alpha ebuilds.
(Portage version: 2.1.2.1)
Diffstat (limited to 'dev-db')
6 files changed, 10 insertions, 865 deletions
diff --git a/dev-db/mysql-community/ChangeLog b/dev-db/mysql-community/ChangeLog index b82163d307eb..f465d909e726 100644 --- a/dev-db/mysql-community/ChangeLog +++ b/dev-db/mysql-community/ChangeLog @@ -1,6 +1,12 @@ # ChangeLog for dev-db/mysql-community # Copyright 2002-2007 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/dev-db/mysql-community/ChangeLog,v 1.12 2007/03/04 12:35:58 vivo Exp $ +# $Header: /var/cvsroot/gentoo-x86/dev-db/mysql-community/ChangeLog,v 1.13 2007/03/06 16:24:50 chtekk Exp $ + + 06 Mar 2007; Luca Longinotti <chtekk@gentoo.org> + -mysql-community-5.1.15_alpha-r90.ebuild, + -mysql-community-5.1.15_alpha20061231-r61.ebuild, + mysql-community-5.1.15_beta.ebuild: + Cleanup old alpha versions. Fix bug #169618. *mysql-community-5.1.15_beta (04 Mar 2007) diff --git a/dev-db/mysql-community/files/digest-mysql-community-5.1.15_alpha-r90 b/dev-db/mysql-community/files/digest-mysql-community-5.1.15_alpha-r90 deleted file mode 100644 index 40ed3257a902..000000000000 --- a/dev-db/mysql-community/files/digest-mysql-community-5.1.15_alpha-r90 +++ /dev/null @@ -1,6 +0,0 @@ -MD5 e1e6e89f424529605fb7529f0b9a4b07 mysql-extras-20070108.tar.bz2 49996 -RMD160 eb7459e2390c4d877f4c4d5cf9bb3d14c39c4212 mysql-extras-20070108.tar.bz2 49996 -SHA256 55d46ac681036cda8f95d5f169d494cd3c6a25fbc7ec327a949518adf64a8ba8 mysql-extras-20070108.tar.bz2 49996 -MD5 1dde707c3f86ecbb4567b8d5de603dc3 pbxt-0.9.73-beta.tar.gz 2706652 -RMD160 a4d974a8519b62868e948966910a84dbded05abe pbxt-0.9.73-beta.tar.gz 2706652 -SHA256 a2176d137138d33028c57499b74a79c5f12dcd958c3e7f1aad67bb4b7b24674d pbxt-0.9.73-beta.tar.gz 2706652 diff --git a/dev-db/mysql-community/files/digest-mysql-community-5.1.15_alpha20061231-r61 b/dev-db/mysql-community/files/digest-mysql-community-5.1.15_alpha20061231-r61 deleted file mode 100644 index 62a3b69e6fde..000000000000 --- a/dev-db/mysql-community/files/digest-mysql-community-5.1.15_alpha20061231-r61 +++ /dev/null @@ -1,9 +0,0 @@ -MD5 b231ba7f535806f1cb8d792e4091f1b9 mysql-5.1.15-bk-20061231.tar.bz2 11999404 -RMD160 9a9929d6c2df4e128b3b5259b21fec5e04fe3181 mysql-5.1.15-bk-20061231.tar.bz2 11999404 -SHA256 1e4acc53175af275b48dbab33320d4841c9502c74f283e4f62215f5c2e602f15 mysql-5.1.15-bk-20061231.tar.bz2 11999404 -MD5 e1e6e89f424529605fb7529f0b9a4b07 mysql-extras-20070108.tar.bz2 49996 -RMD160 eb7459e2390c4d877f4c4d5cf9bb3d14c39c4212 mysql-extras-20070108.tar.bz2 49996 -SHA256 55d46ac681036cda8f95d5f169d494cd3c6a25fbc7ec327a949518adf64a8ba8 mysql-extras-20070108.tar.bz2 49996 -MD5 1dde707c3f86ecbb4567b8d5de603dc3 pbxt-0.9.73-beta.tar.gz 2706652 -RMD160 a4d974a8519b62868e948966910a84dbded05abe pbxt-0.9.73-beta.tar.gz 2706652 -SHA256 a2176d137138d33028c57499b74a79c5f12dcd958c3e7f1aad67bb4b7b24674d pbxt-0.9.73-beta.tar.gz 2706652 diff --git a/dev-db/mysql-community/mysql-community-5.1.15_alpha-r90.ebuild b/dev-db/mysql-community/mysql-community-5.1.15_alpha-r90.ebuild deleted file mode 100644 index 00b39c72852e..000000000000 --- a/dev-db/mysql-community/mysql-community-5.1.15_alpha-r90.ebuild +++ /dev/null @@ -1,60 +0,0 @@ -# Copyright 1999-2007 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/dev-db/mysql-community/mysql-community-5.1.15_alpha-r90.ebuild,v 1.3 2007/01/12 18:10:16 chtekk Exp $ - -MY_EXTRAS_VER="latest" -SERVER_URI="" -PBXT_VERSION="0.9.73-beta" - -inherit mysql - -# REMEMBER: also update eclass/mysql*.eclass before committing! -KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~s390 ~sh ~sparc ~sparc-fbsd ~x86 ~x86-fbsd" - -src_test() { - make check || die "make check failed" - if ! use "minimal" ; then - cd "${S}/mysql-test" - einfo ">>> Test phase [test]: ${CATEGORY}/${PF}" - local retstatus - local t - local testopts="--force" - - # sandbox make ndbd zombie - hasq "sandbox" ${FEATURES} && testopts="${testopts} --skip-ndb" - - addpredict /this-dir-does-not-exist/t9.MYI - - # mysqladmin start before dir creation - mkdir ${S}/mysql-test/var{,/log} - - if [[ ${UID} -eq 0 ]] ; then - mysql_disable_test "im_cmd_line" "fail as root" - mysql_disable_test "im_daemon_life_cycle" "fail as root" - mysql_disable_test "im_instance_conf" "fail as root" - mysql_disable_test "im_life_cycle" "fail as root" - mysql_disable_test "im_options" "fail as root" - mysql_disable_test "im_utils" "fail as root" - mysql_disable_test "trigger" "fail as root" - fi - - use "extraengine" && mysql_disable_test "federated" "fail with extraengine" - - mysql_disable_test "view" "FIXME: fail because now we are in year 2007" - - # from Makefile.am: - retstatus=1 - ./mysql-test-run.pl ${testopts} --mysqld=--binlog-format=mixed \ - && ./mysql-test-run.pl ${testopts} --ps-protocol --mysqld=--binlog-format=row \ - && ./mysql-test-run.pl ${testopts} --ps-protocol --mysqld=--binlog-format=mixed \ - && ./mysql-test-run.pl ${testopts} --mysqld=--binlog-format=row \ - && retstatus=0 - - # Just to be sure ;) - pkill -9 -f "${S}/ndb" 2>/dev/null - pkill -9 -f "${S}/sql" 2>/dev/null - [[ $retstatus -eq 0 ]] || die "make test failed" - else - einfo "Skipping server tests due to minimal build." - fi -} diff --git a/dev-db/mysql-community/mysql-community-5.1.15_alpha20061231-r61.ebuild b/dev-db/mysql-community/mysql-community-5.1.15_alpha20061231-r61.ebuild deleted file mode 100644 index 2d0ea465eabf..000000000000 --- a/dev-db/mysql-community/mysql-community-5.1.15_alpha20061231-r61.ebuild +++ /dev/null @@ -1,60 +0,0 @@ -# Copyright 1999-2007 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/dev-db/mysql-community/mysql-community-5.1.15_alpha20061231-r61.ebuild,v 1.2 2007/01/12 18:10:16 chtekk Exp $ - -MY_EXTRAS_VER="latest" -SERVER_URI="mirror://gentoo/MySQL-${PV%.*}/mysql-${PV//_alpha/-bk-}.tar.bz2" -PBXT_VERSION="0.9.73-beta" - -inherit mysql - -# REMEMBER: also update eclass/mysql*.eclass before committing! -KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~s390 ~sh ~sparc ~sparc-fbsd ~x86 ~x86-fbsd" - -src_test() { - make check || die "make check failed" - if ! use "minimal" ; then - cd "${S}/mysql-test" - einfo ">>> Test phase [test]: ${CATEGORY}/${PF}" - local retstatus - local t - local testopts="--force" - - # sandbox make ndbd zombie - hasq "sandbox" ${FEATURES} && testopts="${testopts} --skip-ndb" - - addpredict /this-dir-does-not-exist/t9.MYI - - # mysqladmin start before dir creation - mkdir ${S}/mysql-test/var{,/log} - - if [[ ${UID} -eq 0 ]] ; then - mysql_disable_test "im_cmd_line" "fail as root" - mysql_disable_test "im_daemon_life_cycle" "fail as root" - mysql_disable_test "im_instance_conf" "fail as root" - mysql_disable_test "im_life_cycle" "fail as root" - mysql_disable_test "im_options" "fail as root" - mysql_disable_test "im_utils" "fail as root" - mysql_disable_test "trigger" "fail as root" - fi - - use "extraengine" && mysql_disable_test "federated" "fail with extraengine" - - mysql_disable_test "view" "Already fixed: fail because now we are in year 2007" - - # from Makefile.am: - retstatus=1 - ./mysql-test-run.pl ${testopts} --mysqld=--binlog-format=mixed \ - && ./mysql-test-run.pl ${testopts} --ps-protocol --mysqld=--binlog-format=row \ - && ./mysql-test-run.pl ${testopts} --ps-protocol --mysqld=--binlog-format=mixed \ - && ./mysql-test-run.pl ${testopts} --mysqld=--binlog-format=row \ - && retstatus=0 - - # Just to be sure ;) - pkill -9 -f "${S}/ndb" 2>/dev/null - pkill -9 -f "${S}/sql" 2>/dev/null - [[ $retstatus -eq 0 ]] || die "make test failed" - else - einfo "Skipping server tests due to minimal build." - fi -} diff --git a/dev-db/mysql-community/mysql-community-5.1.15_beta.ebuild b/dev-db/mysql-community/mysql-community-5.1.15_beta.ebuild index d1dcabb0101a..d3f3745a50c5 100644 --- a/dev-db/mysql-community/mysql-community-5.1.15_beta.ebuild +++ b/dev-db/mysql-community/mysql-community-5.1.15_beta.ebuild @@ -1,742 +1,16 @@ # Copyright 1999-2007 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/dev-db/mysql-community/mysql-community-5.1.15_beta.ebuild,v 1.2 2007/03/04 12:38:38 vivo Exp $ +# $Header: /var/cvsroot/gentoo-x86/dev-db/mysql-community/mysql-community-5.1.15_beta.ebuild,v 1.3 2007/03/06 16:24:50 chtekk Exp $ MY_EXTRAS_VER="20070217" SERVER_URI="mirror://gentoo/MySQL-${PV%.*}/mysql-${PV//_/-}.tar.gz" PBXT_VERSION="0.9.8-beta" -#SPHINX_VERSION="0.9.7-rc2" + +inherit mysql # REMEMBER: also update eclass/mysql*.eclass before committing! KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~s390 ~sh ~sparc ~sparc-fbsd ~x86 ~x86-fbsd" -WANT_AUTOCONF="latest" -WANT_AUTOMAKE="latest" - -inherit eutils flag-o-matic gnuconfig autotools mysql_fx - -# Shorten the path because the socket path length must be shorter than 107 chars -# and we will run a mysql server during test phase -S="${WORKDIR}/mysql" - -# MYSQL_VERSION_ID will be: -# major * 10e6 + minor * 10e4 + micro * 10e2 + gentoo revision number, all [0..99] -# This is an important part, because many of the choices the MySQL ebuild will do -# depend on this variable. -# In particular, the code below transforms a $PVR like "5.0.18-r3" in "5001803" - -MYSQL_VERSION_ID="" -tpv=( ${PV//[-._]/ } ) ; tpv[3]="${PVR:${#PV}}" ; tpv[3]="${tpv[3]##*-r}" -for vatom in 0 1 2 3 ; do - # pad to length 2 - tpv[${vatom}]="00${tpv[${vatom}]}" - MYSQL_VERSION_ID="${MYSQL_VERSION_ID}${tpv[${vatom}]:0-2}" -done -# strip leading "0" (otherwise it's considered an octal number by BASH) -MYSQL_VERSION_ID=${MYSQL_VERSION_ID##"0"} - -# Be warned, *DEPEND are version-dependant -DEPEND="ssl? ( >=dev-libs/openssl-0.9.6d ) - userland_GNU? ( sys-process/procps ) - >=sys-apps/sed-4 - >=sys-apps/texinfo-4.7-r1 - >=sys-libs/readline-4.1 - >=sys-libs/zlib-1.2.3" - -# Having different flavours at the same time is not a good idea -for i in "" "-community" ; do - [[ "${i}" == ${PN#mysql} ]] || - DEPEND="${DEPEND} !dev-db/mysql${i}" -done - -mysql_version_is_at_least "5.1" \ -|| DEPEND="${DEPEND} berkdb? ( sys-apps/ed )" - -mysql_version_is_at_least "5.1.12" \ -&& DEPEND="${DEPEND} innodb? ( >=dev-util/cmake-2.4.3 )" - -# dev-perl/DBD-mysql is needed by some scripts installed by MySQL -PDEPEND="perl? ( >=dev-perl/DBD-mysql-2.9004 )" - -# Define correct SRC_URIs -SRC_URI="${SERVER_URI} - http://g3nt8.org/patches/mysql-extras-${MY_EXTRAS_VER}.tar.bz2" -mysql_version_is_at_least "5.1.12" \ -&& [[ -n "${PBXT_VERSION}" ]] \ -&& SRC_URI="${SRC_URI} pbxt? ( mirror://sourceforge/pbxt/pbxt-${PBXT_VERSION}.tar.gz )" - -#mysql_version_is_at_least "5.1.15" \ -#&& [[ -n "${SPHINX_VERSION}" ]] \ -#&& SRC_URI="${SRC_URI} sphinx? ( http://www.sphinxsearch.com/downloads/sphinx-${SPHINX_VERSION}.tar.gz )" - -DESCRIPTION="A fast, multi-threaded, multi-user SQL database server." -HOMEPAGE="http://www.mysql.com/" -LICENSE="GPL-2" -SLOT="0" -IUSE="big-tables debug embedded minimal perl selinux ssl static" -RESTRICT="confcache" - -mysql_version_is_at_least "4.1" \ -&& IUSE="${IUSE} latin1" - -mysql_version_is_at_least "4.1.3" \ -&& IUSE="${IUSE} cluster extraengine" - -mysql_version_is_at_least "5.0" \ -|| IUSE="${IUSE} raid" - -mysql_version_is_at_least "5.0.18" \ -&& IUSE="${IUSE} max-idx-128" - -mysql_version_is_at_least "5.1" \ -&& IUSE="${IUSE} innodb" - -mysql_version_is_at_least "5.1" \ -|| IUSE="${IUSE} berkdb" - -mysql_version_is_at_least "5.1.12" \ -&& IUSE="${IUSE} pbxt" - -#mysql_version_is_at_least "5.1.15" \ -#&& IUSE="${IUSE} sphinx" - -RDEPEND="${DEPEND} - !minimal? ( dev-db/mysql-init-scripts ) - selinux? ( sec-policy/selinux-mysql )" - -# -# HELPER FUNCTIONS: -# - -mysql_disable_test() { - local testname="${1}" ; shift - local reason="${@}" - local mysql_disable_file="${S}/mysql-test/t/disabled.def" - echo ${testname} : ${reason} >> "${mysql_disable_file}" - ewarn "test '${testname}' disabled: '${reason}'" -} - -# void mysql_init_vars() -# -# Initialize global variables -# 2005-11-19 <vivo@gentoo.org> - -mysql_init_vars() { - MY_SHAREDSTATEDIR=${MY_SHAREDSTATEDIR="/usr/share/mysql"} - MY_SYSCONFDIR=${MY_SYSCONFDIR="/etc/mysql"} - MY_LIBDIR=${MY_LIBDIR="/usr/$(get_libdir)/mysql"} - MY_LOCALSTATEDIR=${MY_LOCALSTATEDIR="/var/lib/mysql"} - MY_LOGDIR=${MY_LOGDIR="/var/log/mysql"} - MY_INCLUDEDIR=${MY_INCLUDEDIR="/usr/include/mysql"} - - if [[ -z "${DATADIR}" ]] ; then - DATADIR="" - if [[ -f "${MY_SYSCONFDIR}/my.cnf" ]] ; then - DATADIR=`"my_print_defaults" mysqld 2>/dev/null \ - | sed -ne '/datadir/s|^--datadir=||p' \ - | tail -n1` - if [[ -z "${DATADIR}" ]] ; then - DATADIR=`grep ^datadir "${MY_SYSCONFDIR}/my.cnf" \ - | sed -e 's/.*=\s*//'` - fi - fi - if [[ -z "${DATADIR}" ]] ; then - DATADIR="${MY_LOCALSTATEDIR}" - einfo "Using default DATADIR" - fi - elog "MySQL DATADIR is ${DATADIR}" - - if [[ -z "${PREVIOUS_DATADIR}" ]] ; then - if [[ -e "${DATADIR}" ]] ; then - elog "Previous datadir found, it's YOUR job to change" - elog "ownership and take care of it" - PREVIOUS_DATADIR="yes" - else - PREVIOUS_DATADIR="no" - fi - export PREVIOUS_DATADIR - fi - fi - - MY_SOURCEDIR=${SERVER_URI##*/} - MY_SOURCEDIR=${MY_SOURCEDIR%.tar*} - - export MY_SHAREDSTATEDIR MY_SYSCONFDIR - export MY_LIBDIR MY_LOCALSTATEDIR MY_LOGDIR - export MY_INCLUDEDIR DATADIR MY_SOURCEDIR -} - -configure_minimal() { - # These are things we exclude from a minimal build, please - # note that the server actually does get built and installed, - # but we then delete it before packaging. - local minimal_exclude_list="server embedded-server extra-tools innodb bench berkeley-db row-based-replication" - - for i in ${minimal_exclude_list} ; do - myconf="${myconf} --without-${i}" - done - myconf="${myconf} --with-extra-charsets=none" - myconf="${myconf} --enable-local-infile" - - if use static ; then - myconf="${myconf} --with-client-ldflags=-all-static" - myconf="${myconf} --disable-shared" - else - myconf="${myconf} --enable-shared --enable-static" - fi - - if mysql_version_is_at_least "4.1" && ! use latin1 ; then - myconf="${myconf} --with-charset=utf8" - myconf="${myconf} --with-collation=utf8_general_ci" - else - myconf="${myconf} --with-charset=latin1" - myconf="${myconf} --with-collation=latin1_swedish_ci" - fi -} - -configure_common() { - myconf="${myconf} $(use_with big-tables)" - myconf="${myconf} --enable-local-infile" - myconf="${myconf} --with-extra-charsets=all" - myconf="${myconf} --with-mysqld-user=mysql" - myconf="${myconf} --with-server" - myconf="${myconf} --with-unix-socket-path=/var/run/mysqld/mysqld.sock" - myconf="${myconf} --without-libwrap" - - if use static ; then - myconf="${myconf} --with-mysqld-ldflags=-all-static" - myconf="${myconf} --with-client-ldflags=-all-static" - myconf="${myconf} --disable-shared" - else - myconf="${myconf} --enable-shared --enable-static" - fi - - if use debug ; then - myconf="${myconf} --with-debug=full" - else - myconf="${myconf} --without-debug" - mysql_version_is_at_least "4.1.3" \ - && use cluster \ - && myconf="${myconf} --without-ndb-debug" - fi - - if mysql_version_is_at_least "4.1" && ! use latin1 ; then - myconf="${myconf} --with-charset=utf8" - myconf="${myconf} --with-collation=utf8_general_ci" - else - myconf="${myconf} --with-charset=latin1" - myconf="${myconf} --with-collation=latin1_swedish_ci" - fi - - if use embedded ; then - myconf="${myconf} --with-embedded-privilege-control" - myconf="${myconf} --with-embedded-server" - else - myconf="${myconf} --without-embedded-privilege-control" - myconf="${myconf} --without-embedded-server" - fi - -} - -configure_51() { - # TODO: !!!! readd --without-readline - # the failure depend upon config/ac-macros/readline.m4 checking into - # readline.h instead of history.h - myconf="${myconf} $(use_with ssl)" - myconf="${myconf} --enable-assembler" - myconf="${myconf} --with-geometry" - myconf="${myconf} --with-readline" - myconf="${myconf} --with-row-based-replication" - myconf="${myconf} --with-zlib=/usr/$(get_libdir)" - myconf="${myconf} --without-pstack" - use max-idx-128 && myconf="${myconf} --with-max-indexes=128" - - # 5.1 introduces a new way to manage storage engines (plugins) - # like configuration=none - local plugins="csv,myisam,myisammrg,heap" - if use extraengine ; then - # like configuration=max-no-ndb, archive and example removed in 5.1.11 - plugins="${plugins},archive,blackhole,example,federated,partition" - - elog "Before using the Federated storage engine, please be sure to read" - elog "http://dev.mysql.com/doc/refman/5.1/en/federated-limitations.html" - fi - - if use innodb ; then - plugins="${plugins},innobase" - fi - - # like configuration=max-no-ndb - if use cluster ; then - plugins="${plugins},ndbcluster" - myconf="${myconf} --with-ndb-binlog" - fi - - if mysql_version_is_at_least "5.2" ; then - plugins="${plugins},falcon" - fi - - #mysql_version_is_at_least "5.1.15" \ - #&& use sphinx \ - #&& plugins="${plugins},sphinx" - - myconf="${myconf} --with-plugins=${plugins}" -} - -sphinx_src_unpack() { - einfo "${WORKDIR}/sphinx-${SPHINX_VERSION}/mysqlse" - einfo "${WORKDIR}/mysql/storage/" - mv "${WORKDIR}/sphinx-${SPHINX_VERSION}/mysqlse" "${WORKDIR}/mysql/storage/" -} - -pbxt_src_compile() { - mysql_init_vars - - pushd "${WORKDIR}/pbxt-${PBXT_VERSION}" &>/dev/null - - einfo "Reconfiguring dir '${PWD}'" - AT_GNUCONF_UPDATE="yes" eautoreconf - - local myconf="" - myconf="${myconf} --with-mysql=${S} --libdir=${D}/${MY_LIBDIR}" - use debug && myconf="${myconf} --with-debug=full" - # TODO: is it safe/needed to use econf here ? - ./configure ${myconf} || die "Problem configuring PBXT storage engine" - # TODO: is it safe/needed to use emake here ? - make || die "Problem making PBXT storage engine (${myconf})" - - popd - # TODO: modify test suite for PBXT -} - -pbxt_src_install() { - pushd "${WORKDIR}/pbxt-${PBXT_VERSION}" &>/dev/null - make install || die "Failed to install PBXT" - popd -} - -# -# EBUILD FUNCTIONS -# - -pkg_setup() { - enewgroup mysql 60 || die "problem adding 'mysql' group" - enewuser mysql 60 -1 /dev/null mysql || die "problem adding 'mysql' user" - - # Check for USE flag problems in pkg_setup - if use static && use ssl ; then - eerror "MySQL does not support being built statically with SSL support enabled!" - die "MySQL does not support being built statically with SSL support enabled!" - fi - - if ! mysql_version_is_at_least "5.0" \ - && use raid \ - && use static ; then - eerror "USE flags 'raid' and 'static' conflict, you cannot build MySQL statically" - eerror "with RAID support enabled." - die "USE flags 'raid' and 'static' conflict!" - fi - - if mysql_version_is_at_least "4.1.3" \ - && ( use cluster || use extraengine ) \ - && use minimal ; then - eerror "USE flags 'cluster' and 'extraengine' conflict with 'minimal' USE flag!" - die "USE flags 'cluster' and 'extraengine' conflict with 'minimal' USE flag!" - fi - - mysql_check_version_range "4.0 to 5.0.99.99" \ - && use berkdb \ - && elog "Berkeley DB support is deprecated and will be removed in future versions!" -} - -src_unpack() { - # Initialize the proper variables first - mysql_init_vars - - unpack ${A} - mv -f "${WORKDIR}/${MY_SOURCEDIR}" "${S}" - cd "${S}" - - # Apply the patches for this MySQL version - EPATCH_SUFFIX="patch" - mkdir -p "${EPATCH_SOURCE}" || die "Unable to create epatch directory" - mysql_mv_patches - epatch - - # Additional checks, remove bundled zlib - rm -f "${S}/zlib/"*.[ch] - sed -i -e "s/zlib\/Makefile dnl/dnl zlib\/Makefile/" "${S}/configure.in" - rm -f "scripts/mysqlbug" - - # Make charsets install in the right place - find . -name 'Makefile.am' \ - -exec sed --in-place -e 's!$(pkgdatadir)!'${MY_SHAREDSTATEDIR}'!g' {} \; - - if mysql_version_is_at_least "4.1" ; then - # Remove what needs to be recreated, so we're sure it's actually done - find . -name Makefile \ - -o -name Makefile.in \ - -o -name configure \ - -exec rm -f {} \; - rm -f "ltmain.sh" - rm -f "scripts/mysqlbug" - fi - - local rebuilddirlist d - - if mysql_version_is_at_least "5.1.12" ; then - rebuilddirlist="." - # TODO: check this with a cmake expert - use innodb \ - && cmake \ - -DCMAKE_C_COMPILER=$(which $(tc-getCC)) \ - -DCMAKE_CXX_COMPILER=$(which $(tc-getCC)) \ - "storage/innobase" - else - rebuilddirlist=". innobase" - fi - - for d in ${rebuilddirlist} ; do - einfo "Reconfiguring dir '${d}'" - pushd "${d}" &>/dev/null - AT_GNUCONF_UPDATE="yes" eautoreconf - popd &>/dev/null - done - - if mysql_check_version_range "4.1 to 5.0.99.99" \ - && use berkdb ; then - [[ -w "bdb/dist/ltmain.sh" ]] && cp -f "ltmain.sh" "bdb/dist/ltmain.sh" - pushd "bdb/dist" \ - && sh s_all \ - || die "Failed bdb reconfigure" \ - &>/dev/null - popd &>/dev/null - fi - - #mysql_version_is_at_least "5.1.15" \ - #&& use sphinx \ - #&& sphinx_src_unpack -} - -src_compile() { - # Make sure the vars are correctly initialized - mysql_init_vars - - # $myconf is modified by the configure_* functions - local myconf="" - - if use minimal ; then - configure_minimal - else - configure_common - configure_51 - fi - - # Bug #114895, bug #110149 - filter-flags "-O" "-O[01]" - - # glib-2.3.2_pre fix, bug #16496 - append-flags "-DHAVE_ERRNO_AS_DEFINE=1" - - CXXFLAGS="${CXXFLAGS} -fno-exceptions -fno-strict-aliasing" - CXXFLAGS="${CXXFLAGS} -felide-constructors -fno-rtti" - mysql_version_is_at_least "5.0" \ - && CXXFLAGS="${CXXFLAGS} -fno-implicit-templates" - export CXXFLAGS - - econf \ - --libexecdir="/usr/sbin" \ - --sysconfdir="${MY_SYSCONFDIR}" \ - --localstatedir="${MY_LOCALSTATEDIR}" \ - --sharedstatedir="${MY_SHAREDSTATEDIR}" \ - --libdir="${MY_LIBDIR}" \ - --includedir="${MY_INCLUDEDIR}" \ - --with-low-memory \ - --with-client-ldflags=-lstdc++ \ - --enable-thread-safe-client \ - --with-comment="Gentoo Linux ${PF}" \ - --without-docs \ - ${myconf} || die "econf failed" - - # TODO: Move this before autoreconf !!! - find . -type f -name Makefile -print0 \ - | xargs -0 -n100 sed -i \ - -e 's|^pkglibdir *= *$(libdir)/mysql|pkglibdir = $(libdir)|;s|^pkgincludedir *= *$(includedir)/mysql|pkgincludedir = $(includedir)|' - - emake || die "emake failed" - - mysql_version_is_at_least "5.1.12" && use pbxt && pbxt_src_compile -} - -src_install() { - # Make sure the vars are correctly initialized - mysql_init_vars - - emake install DESTDIR="${D}" benchdir_root="${MY_SHAREDSTATEDIR}" || die "emake install failed" - - mysql_version_is_at_least "5.1.12" && use pbxt && pbxt_src_install - - insinto "${MY_INCLUDEDIR}" - doins "${MY_INCLUDEDIR}"/my_{config,dir}.h - - # Convenience links - dosym "/usr/bin/mysqlcheck" "/usr/bin/mysqlanalyze" - dosym "/usr/bin/mysqlcheck" "/usr/bin/mysqlrepair" - dosym "/usr/bin/mysqlcheck" "/usr/bin/mysqloptimize" - - # Various junk (my-*.cnf moved elsewhere) - rm -Rf "${D}/usr/share/info" - for removeme in "mysql-log-rotate" mysql.server* \ - binary-configure* my-*.cnf mi_test_all* - do - rm -f "${D}"/usr/share/mysql/${removeme} - done - - # Clean up stuff for a minimal build - if use minimal ; then - rm -Rf "${D}${MY_SHAREDSTATEDIR}"/{mysql-test,sql-bench} - 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} - rm -f "${D}/usr/sbin/mysqld" - rm -f "${D}${MY_LIBDIR}"/lib{heap,merge,nisam,my{sys,strings,sqld,isammrg,isam},vio,dbug}.a - fi - - # Configuration stuff - if mysql_version_is_at_least "4.1" ; then - mysql_mycnf_version="4.1" - else - mysql_mycnf_version="4.0" - fi - insinto "${MY_SYSCONFDIR}" - doins scripts/mysqlaccess.conf - sed -e "s!@DATADIR@!${DATADIR}!g" \ - "${FILESDIR}/my.cnf-${mysql_mycnf_version}" \ - > "${TMPDIR}/my.cnf.ok" - if mysql_version_is_at_least "4.1" && use latin1 ; then - sed -e "s|utf8|latin1|g" -i "${TMPDIR}/my.cnf.ok" - fi - newins "${TMPDIR}/my.cnf.ok" my.cnf - - # Minimal builds don't have the MySQL server - if ! use minimal ; then - # Empty directories ... - diropts "-m0750" - if [[ "${PREVIOUS_DATADIR}" != "yes" ]] ; then - dodir "${DATADIR}" - keepdir "${DATADIR}" - chown -R mysql:mysql "${D}/${DATADIR}" - fi - - diropts "-m0755" - for folder in "${MY_LOGDIR}" "/var/run/mysqld" ; do - dodir "${folder}" - keepdir "${folder}" - chown -R mysql:mysql "${D}/${folder}" - done - fi - - # Docs - dodoc README COPYING ChangeLog EXCEPTIONS-CLIENT INSTALL-SOURCE - - # Minimal builds don't have the MySQL server - if ! use minimal ; then - docinto "support-files" - for script in \ - support-files/my-*.cnf \ - support-files/magic \ - support-files/ndb-config-2-node.ini - do - dodoc "${script}" - done - - docinto "scripts" - for script in scripts/mysql* ; do - [[ "${script%.sh}" == "${script}" ]] && dodoc "${script}" - done - fi - - mysql_lib_symlinks "${D}" -} - -pkg_preinst() { - enewgroup mysql 60 || die "problem adding 'mysql' group" - enewuser mysql 60 -1 /dev/null mysql || die "problem adding 'mysql' user" -} - -pkg_postinst() { - # Make sure the vars are correctly initialized - mysql_init_vars - - # Check FEATURES="collision-protect" before removing this - [[ -d "${ROOT}/var/log/mysql" ]] || install -d -m0750 -o mysql -g mysql "${ROOT}${MY_LOGDIR}" - - # Secure the logfiles - touch "${ROOT}${MY_LOGDIR}"/mysql.{log,err} - chown mysql:mysql "${ROOT}${MY_LOGDIR}"/mysql* - chmod 0660 "${ROOT}${MY_LOGDIR}"/mysql* - - # Minimal builds don't have the MySQL server - if ! use minimal ; then - docinto "support-files" - for script in \ - support-files/my-*.cnf \ - support-files/magic \ - support-files/ndb-config-2-node.ini - do - dodoc "${script}" - done - - docinto "scripts" - for script in scripts/mysql* ; do - [[ "${script%.sh}" == "${script}" ]] && dodoc "${script}" - done - - einfo - elog "You might want to run:" - elog "\"emerge --config =${CATEGORY}/${PF}\"" - elog "if this is a new install." - einfo - fi - - if mysql_version_is_at_least "5.1.12" && use pbxt ; then - # TODO: explain it better - elog " mysql> INSTALL PLUGIN pbxt SONAME 'libpbxt.so';" - elog " mysql> CREATE TABLE t1 (c1 int, c2 text) ENGINE=pbxt;" - elog "if, after that, you cannot start the MySQL server," - elog "remove the ${MY_DATADIR}/mysql/plugin.* files, then" - elog "use the MySQL upgrade script to restore the table" - elog "or execute the following SQL command:" - elog " CREATE TABLE IF NOT EXISTS plugin (" - elog " name char(64) binary DEFAULT '' NOT NULL," - elog " dl char(128) DEFAULT '' NOT NULL," - elog " PRIMARY KEY (name)" - elog " ) CHARACTER SET utf8 COLLATE utf8_bin;" - fi - - mysql_check_version_range "4.0 to 5.0.99.99" \ - && use berkdb \ - && elog "Berkeley DB support is deprecated and will be removed in future versions!" -} - -pkg_config() { - # Make sure the vars are correctly initialized - mysql_init_vars - - [[ -z "${DATADIR}" ]] && die "Sorry, unable to find DATADIR" - - if built_with_use ${CATEGORY}/${PN} minimal ; then - die "Minimal builds do NOT include the MySQL server" - fi - - local pwd1="a" - local pwd2="b" - local maxtry=5 - - if [[ -d "${ROOT}/${DATADIR}/mysql" ]] ; then - ewarn "You have already a MySQL database in place." - ewarn "(${ROOT}/${DATADIR}/*)" - ewarn "Please rename or delete it if you wish to replace it." - die "MySQL database already exists!" - fi - - einfo "Creating the mysql database and setting proper" - einfo "permissions on it ..." - - einfo "Insert a password for the mysql 'root' user" - ewarn "Avoid [\"'\\_%] characters in the password" - read -rsp " >" pwd1 ; echo - - einfo "Retype the password" - read -rsp " >" pwd2 ; echo - - if [[ "x$pwd1" != "x$pwd2" ]] ; then - die "Passwords are not the same" - fi - - local options="" - local sqltmp="$(emktemp)" - - local help_tables="${ROOT}${MY_SHAREDSTATEDIR}/fill_help_tables.sql" - [[ -r "${help_tables}" ]] \ - && cp "${help_tables}" "${TMPDIR}/fill_help_tables.sql" \ - || touch "${TMPDIR}/fill_help_tables.sql" - help_tables="${TMPDIR}/fill_help_tables.sql" - - pushd "${TMPDIR}" &>/dev/null - "${ROOT}/usr/bin/mysql_install_db" | grep -B5 -A999 -i "ERROR" - popd &>/dev/null - [[ -f "${ROOT}/${DATADIR}/mysql/user.frm" ]] \ - || die "MySQL databases not installed" - chown -R mysql:mysql "${ROOT}/${DATADIR}" 2> /dev/null - chmod 0750 "${ROOT}/${DATADIR}" 2> /dev/null - - if mysql_version_is_at_least "4.1.3" ; then - options="--skip-ndbcluster" - - # Filling timezones, see - # http://dev.mysql.com/doc/mysql/en/time-zone-support.html - "${ROOT}/usr/bin/mysql_tzinfo_to_sql" "${ROOT}/usr/share/zoneinfo" > "${sqltmp}" 2>/dev/null - - if [[ -r "${help_tables}" ]] ; then - cat "${help_tables}" >> "${sqltmp}" - fi - fi - - local socket="${ROOT}/var/run/mysqld/mysqld${RANDOM}.sock" - local pidfile="${ROOT}/var/run/mysqld/mysqld${RANDOM}.pid" - local mysqld="${ROOT}/usr/sbin/mysqld \ - ${options} \ - --user=mysql \ - --skip-grant-tables \ - --basedir=${ROOT}/usr \ - --datadir=${ROOT}/${DATADIR} \ - --skip-innodb \ - --skip-bdb \ - --skip-networking \ - --max_allowed_packet=8M \ - --net_buffer_length=16K \ - --socket=${socket} \ - --pid-file=${pidfile}" - ${mysqld} & - while ! [[ -S "${socket}" || "${maxtry}" -lt 1 ]] ; do - maxtry=$((${maxtry}-1)) - echo -n "." - sleep 1 - done - - # Do this from memory, as we don't want clear text passwords in temp files - local sql="UPDATE mysql.user SET Password = PASSWORD('${pwd1}') WHERE USER='root'" - "${ROOT}/usr/bin/mysql" \ - --socket=${socket} \ - -hlocalhost \ - -e "${sql}" - - einfo "Loading \"zoneinfo\", this step may require a few seconds ..." - - "${ROOT}/usr/bin/mysql" \ - --socket=${socket} \ - -hlocalhost \ - -uroot \ - -p"${pwd1}" \ - mysql < "${sqltmp}" - - # Stop the server and cleanup - kill $(< "${pidfile}" ) - rm -f "${sqltmp}" - einfo "Stopping the server ..." - wait %1 - einfo "Done" -} - -pkg_postrm() { - : # mysql_lib_symlinks "${D}" -} - - - - - - - src_test() { make check || die "make check failed" if ! use "minimal" ; then |