summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin H. Johnson <robbat2@gentoo.org>2014-08-03 21:42:35 +0000
committerRobin H. Johnson <robbat2@gentoo.org>2014-08-03 21:42:35 +0000
commit624e06bf5f640f6617e0f5e3951452361b74b78a (patch)
tree01bf30118fe54c3c8b04a749449db24de720feab /dev-db/mysql-cluster
parentVersion bump (diff)
downloadgentoo-2-624e06bf5f640f6617e0f5e3951452361b74b78a.tar.gz
gentoo-2-624e06bf5f640f6617e0f5e3951452361b74b78a.tar.bz2
gentoo-2-624e06bf5f640f6617e0f5e3951452361b74b78a.zip
Bring MySQL-Cluster from the overlay into the tree. Thanks to the great work of Brian Evans <grknight@gentoo.org>. Keywords not ported from other builds, as this contains other code not previously tested on other arches.
(Portage version: 2.2.10/cvs/Linux x86_64, unsigned Manifest commit)
Diffstat (limited to 'dev-db/mysql-cluster')
-rw-r--r--dev-db/mysql-cluster/ChangeLog12
-rw-r--r--dev-db/mysql-cluster/files/my.cnf-5.5149
-rw-r--r--dev-db/mysql-cluster/metadata.xml18
-rw-r--r--dev-db/mysql-cluster/mysql-cluster-7.2.17.ebuild129
-rw-r--r--dev-db/mysql-cluster/mysql-cluster-7.3.6.ebuild136
5 files changed, 444 insertions, 0 deletions
diff --git a/dev-db/mysql-cluster/ChangeLog b/dev-db/mysql-cluster/ChangeLog
new file mode 100644
index 000000000000..6042521ad3cf
--- /dev/null
+++ b/dev-db/mysql-cluster/ChangeLog
@@ -0,0 +1,12 @@
+# ChangeLog for dev-db/mysql-cluster
+# Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/dev-db/mysql-cluster/ChangeLog,v 1.1 2014/08/03 21:42:35 robbat2 Exp $
+
+*mysql-cluster-7.2.17 (03 Aug 2014)
+*mysql-cluster-7.3.6 (03 Aug 2014)
+
+ 03 Aug 2014; Robin H. Johnson <robbat2@gentoo.org> +files/my.cnf-5.5,
+ +metadata.xml, +mysql-cluster-7.2.17.ebuild, +mysql-cluster-7.3.6.ebuild:
+ Bring MySQL-Cluster from the overlay into the tree. Thanks to the great work
+ of Brian Evans <grknight@gentoo.org>. Keywords not ported from other builds,
+ as this contains other code not previously tested on other arches.
diff --git a/dev-db/mysql-cluster/files/my.cnf-5.5 b/dev-db/mysql-cluster/files/my.cnf-5.5
new file mode 100644
index 000000000000..0e0838be51d8
--- /dev/null
+++ b/dev-db/mysql-cluster/files/my.cnf-5.5
@@ -0,0 +1,149 @@
+# @GENTOO_PORTAGE_EPREFIX@/etc/mysql/my.cnf: The global mysql configuration file.
+# $Header: /var/cvsroot/gentoo-x86/dev-db/mysql-cluster/files/my.cnf-5.5,v 1.1 2014/08/03 21:42:35 robbat2 Exp $
+
+# The following options will be passed to all MySQL clients
+[client]
+#password = your_password
+port = 3306
+socket = @GENTOO_PORTAGE_EPREFIX@/var/run/mysqld/mysqld.sock
+
+[mysql]
+character-sets-dir=@GENTOO_PORTAGE_EPREFIX@/usr/share/mysql/charsets
+default-character-set=utf8
+
+[mysqladmin]
+character-sets-dir=@GENTOO_PORTAGE_EPREFIX@/usr/share/mysql/charsets
+default-character-set=utf8
+
+[mysqlcheck]
+character-sets-dir=@GENTOO_PORTAGE_EPREFIX@/usr/share/mysql/charsets
+default-character-set=utf8
+
+[mysqldump]
+character-sets-dir=@GENTOO_PORTAGE_EPREFIX@/usr/share/mysql/charsets
+default-character-set=utf8
+
+[mysqlimport]
+character-sets-dir=@GENTOO_PORTAGE_EPREFIX@/usr/share/mysql/charsets
+default-character-set=utf8
+
+[mysqlshow]
+character-sets-dir=@GENTOO_PORTAGE_EPREFIX@/usr/share/mysql/charsets
+default-character-set=utf8
+
+[myisamchk]
+character-sets-dir=@GENTOO_PORTAGE_EPREFIX@/usr/share/mysql/charsets
+
+[myisampack]
+character-sets-dir=@GENTOO_PORTAGE_EPREFIX@/usr/share/mysql/charsets
+
+# use [safe_mysqld] with mysql-3
+[mysqld_safe]
+err-log = @GENTOO_PORTAGE_EPREFIX@/var/log/mysql/mysql.err
+
+# add a section [mysqld-4.1] or [mysqld-5.0] for specific configurations
+[mysqld]
+character-set-server = utf8
+user = mysql
+port = 3306
+socket = @GENTOO_PORTAGE_EPREFIX@/var/run/mysqld/mysqld.sock
+pid-file = @GENTOO_PORTAGE_EPREFIX@/var/run/mysqld/mysqld.pid
+log-error = @GENTOO_PORTAGE_EPREFIX@/var/log/mysql/mysqld.err
+basedir = @GENTOO_PORTAGE_EPREFIX@/usr
+datadir = @DATADIR@
+skip-external-locking
+key_buffer_size = 16M
+max_allowed_packet = 1M
+table_open_cache = 64
+sort_buffer_size = 512K
+net_buffer_length = 8K
+read_buffer_size = 256K
+read_rnd_buffer_size = 512K
+myisam_sort_buffer_size = 8M
+lc_messages_dir = @GENTOO_PORTAGE_EPREFIX@/usr/share/mysql
+#Set this to your desired error message language
+lc_messages = en_US
+
+# security:
+# using "localhost" in connects uses sockets by default
+# skip-networking
+bind-address = 127.0.0.1
+
+log-bin
+server-id = 1
+
+# point the following paths to different dedicated disks
+tmpdir = @GENTOO_PORTAGE_EPREFIX@/tmp/
+#log-update = @GENTOO_PORTAGE_EPREFIX@/path-to-dedicated-directory/hostname
+
+# you need the debug USE flag enabled to use the following directives,
+# if needed, uncomment them, start the server and issue
+# #tail -f @GENTOO_PORTAGE_EPREFIX@/tmp/mysqld.sql @GENTOO_PORTAGE_EPREFIX@/tmp/mysqld.trace
+# this will show you *exactly* what's happening in your server ;)
+
+#log = @GENTOO_PORTAGE_EPREFIX@/tmp/mysqld.sql
+#gdb
+#debug = d:t:i:o,/tmp/mysqld.trace
+#one-thread
+
+# the following is the InnoDB configuration
+# if you wish to disable innodb instead
+# uncomment just the next line
+#skip-innodb
+#
+# the rest of the innodb config follows:
+# don't eat too much memory, we're trying to be safe on 64Mb boxes
+# you might want to bump this up a bit on boxes with more RAM
+innodb_buffer_pool_size = 16M
+# this is the default, increase it if you have lots of tables
+innodb_additional_mem_pool_size = 2M
+#
+# i'd like to use @GENTOO_PORTAGE_EPREFIX@/var/lib/mysql/innodb, but that is seen as a database :-(
+# and upstream wants things to be under @GENTOO_PORTAGE_EPREFIX@/var/lib/mysql/, so that's the route
+# we have to take for the moment
+#innodb_data_home_dir = @GENTOO_PORTAGE_EPREFIX@/var/lib/mysql/
+#innodb_log_arch_dir = @GENTOO_PORTAGE_EPREFIX@/var/lib/mysql/
+#innodb_log_group_home_dir = @GENTOO_PORTAGE_EPREFIX@/var/lib/mysql/
+# you may wish to change this size to be more suitable for your system
+# the max is there to avoid run-away growth on your machine
+innodb_data_file_path = ibdata1:10M:autoextend:max:128M
+# we keep this at around 25% of of innodb_buffer_pool_size
+# sensible values range from 1MB to (1/innodb_log_files_in_group*innodb_buffer_pool_size)
+innodb_log_file_size = 5M
+# this is the default, increase it if you have very large transactions going on
+innodb_log_buffer_size = 8M
+# this is the default and won't hurt you
+# you shouldn't need to tweak it
+innodb_log_files_in_group=2
+# see the innodb config docs, the other options are not always safe
+innodb_flush_log_at_trx_commit = 1
+innodb_lock_wait_timeout = 50
+innodb_file_per_table
+
+# Uncomment this to get FEDERATED engine support
+#plugin-load=federated=ha_federated.so
+loose-federated
+
+[mysqldump]
+quick
+max_allowed_packet = 16M
+
+[mysql]
+# uncomment the next directive if you are not familiar with SQL
+#safe-updates
+
+[isamchk]
+key_buffer_size = 20M
+sort_buffer_size = 20M
+read_buffer = 2M
+write_buffer = 2M
+
+[myisamchk]
+key_buffer_size = 20M
+sort_buffer_size = 20M
+read_buffer_size = 2M
+write_buffer_size = 2M
+
+[mysqlhotcopy]
+interactive-timeout
+
diff --git a/dev-db/mysql-cluster/metadata.xml b/dev-db/mysql-cluster/metadata.xml
new file mode 100644
index 000000000000..0fd723f94d87
--- /dev/null
+++ b/dev-db/mysql-cluster/metadata.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>mysql</herd>
+<use>
+ <flag name='cluster'>Add support for NDB clustering</flag>
+ <flag name='community'>Enables the community features from upstream.</flag>
+ <flag name='embedded'>Build embedded server (libmysqld)</flag>
+ <flag name='extraengine'>Add support for alternative storage engines (Archive, CSV, Blackhole, Federated(X), Partition)</flag>
+ <flag name="jemalloc">Use <pkg>dev-libs/jemalloc</pkg> for allocations.</flag>
+ <flag name='latin1'>Use LATIN1 encoding instead of UTF8</flag>
+ <flag name='max-idx-128'>Raise the max index per table limit from 64 to 128</flag>
+ <flag name='minimal'>Install client programs only, no server</flag>
+ <flag name='profiling'>Add support for statement profiling (requires USE=community).</flag>
+ <flag name="systemtap">Build support for profiling and tracing using <pkg>dev-util/systemtap</pkg></flag>
+ <flag name='test'>Install upstream testsuites for end use.</flag>
+</use>
+</pkgmetadata>
diff --git a/dev-db/mysql-cluster/mysql-cluster-7.2.17.ebuild b/dev-db/mysql-cluster/mysql-cluster-7.2.17.ebuild
new file mode 100644
index 000000000000..e94ac90eb1c2
--- /dev/null
+++ b/dev-db/mysql-cluster/mysql-cluster-7.2.17.ebuild
@@ -0,0 +1,129 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-db/mysql-cluster/mysql-cluster-7.2.17.ebuild,v 1.1 2014/08/03 21:42:35 robbat2 Exp $
+
+EAPI=4
+MY_EXTRAS_VER="live"
+BUILD="cmake"
+
+# PBXT
+#PBXT_VERSION='1.0.11-6-pre-ga'
+# XtraDB
+#PERCONA_VER='5.1.45-10' XTRADB_VER='1.0.6-10'
+
+inherit toolchain-funcs java-pkg-opt-2 mysql-v2
+# only to make repoman happy. it is really set in the eclass
+IUSE="$IUSE"
+
+# REMEMBER: also update eclass/mysql*.eclass before committing!
+KEYWORDS="~amd64 ~x86"
+
+# When MY_EXTRAS is bumped, the index should be revised to exclude these.
+# This is often broken still
+EPATCH_EXCLUDE='02040_all_embedded-library-shared-5.1.43.patch '
+
+DEPEND="|| ( >=sys-devel/gcc-3.4.6 >=sys-devel/gcc-apple-4.0 )"
+RDEPEND="!media-sound/amarok[embedded]"
+
+# Please do not add a naive src_unpack to this ebuild
+# If you want to add a single patch, copy the ebuild to an overlay
+# and create your own mysql-extras tarball, looking at 000_index.txt
+
+# Official test instructions:
+# USE='cluster extraengine perl ssl community' \
+# FEATURES='test userpriv -usersandbox' \
+# ebuild mysql-cluster-X.X.XX.ebuild \
+# digest clean package
+src_test() {
+
+ local TESTDIR="${CMAKE_BUILD_DIR}/mysql-test"
+ local retstatus_unit
+ local retstatus_tests
+
+ # Bug #213475 - MySQL _will_ object strenously if your machine is named
+ # localhost. Also causes weird failures.
+ [[ "${HOSTNAME}" == "localhost" ]] && die "Your machine must NOT be named localhost"
+
+ if ! use "minimal" ; then
+
+ if [[ $UID -eq 0 ]]; then
+ die "Testing with FEATURES=-userpriv is no longer supported by upstream. Tests MUST be run as non-root."
+ fi
+ has usersandbox $FEATURES && eerror "Some tests may fail with FEATURES=usersandbox"
+
+ einfo ">>> Test phase [test]: ${CATEGORY}/${PF}"
+ addpredict /this-dir-does-not-exist/t9.MYI
+
+ # Run CTest (test-units)
+ cmake-utils_src_test
+ retstatus_unit=$?
+ [[ $retstatus_unit -eq 0 ]] || eerror "test-unit failed"
+
+ # Ensure that parallel runs don't die
+ export MTR_BUILD_THREAD="$((${RANDOM} % 100))"
+
+ # create directories because mysqladmin might right out of order
+ mkdir -p "${S}"/mysql-test/var-tests{,/log}
+
+ # These are failing in MySQL 5.5 for now and are believed to be
+ # false positives:
+ #
+ # main.information_schema, binlog.binlog_statement_insert_delayed,
+ # main.mysqld--help-notwin, ndb.ndbinfo, ndb_binlog.ndb_binlog_index
+ # fails due to USE=-latin1 / utf8 default
+ #
+ # main.mysql_client_test:
+ # segfaults at random under Portage only, suspect resource limits.
+ #
+ # sys_vars.plugin_dir_basic
+ # fails because PLUGIN_DIR is set to MYSQL_LIBDIR64/plugin
+ # instead of MYSQL_LIBDIR/plugin
+ #
+ # main.flush_read_lock_kill
+ # fails because of unknown system variable 'DEBUG_SYNC'
+ #
+ # main.openssl_1
+ # error message changing
+ # -mysqltest: Could not open connection 'default': 2026 SSL connection
+ # error: ASN: bad other signature confirmation
+ # +mysqltest: Could not open connection 'default': 2026 SSL connection
+ # error: error:00000001:lib(0):func(0):reason(1)
+ #
+
+ for t in main.mysql_client_test \
+ binlog.binlog_statement_insert_delayed main.information_schema \
+ main.mysqld--help-notwin main.flush_read_lock_kill \
+ sys_vars.plugin_dir_basic main.openssl_1 \
+ ndb.ndbinfo ndb_binlog.ndb_binlog_index ; do
+ mysql-v2_disable_test "$t" "False positives in Gentoo"
+ done
+
+ # Run mysql tests
+ pushd "${TESTDIR}"
+
+ # run mysql-test tests
+ perl mysql-test-run.pl --force --vardir="${S}/mysql-test/var-tests" \
+ --parallel=auto
+ retstatus_tests=$?
+ [[ $retstatus_tests -eq 0 ]] || eerror "tests failed"
+ has usersandbox $FEATURES && eerror "Some tests may fail with FEATURES=usersandbox"
+
+ popd
+
+ # Cleanup is important for these testcases.
+ pkill -9 -f "${S}/ndb" 2>/dev/null
+ pkill -9 -f "${S}/sql" 2>/dev/null
+
+ failures=""
+ [[ $retstatus_unit -eq 0 ]] || failures="${failures} test-unit"
+ [[ $retstatus_tests -eq 0 ]] || failures="${failures} tests"
+ has usersandbox $FEATURES && eerror "Some tests may fail with FEATURES=usersandbox"
+
+ [[ -z "$failures" ]] || die "Test failures: $failures"
+ einfo "Tests successfully completed"
+
+ else
+
+ einfo "Skipping server tests due to minimal build."
+ fi
+}
diff --git a/dev-db/mysql-cluster/mysql-cluster-7.3.6.ebuild b/dev-db/mysql-cluster/mysql-cluster-7.3.6.ebuild
new file mode 100644
index 000000000000..faa725e269ed
--- /dev/null
+++ b/dev-db/mysql-cluster/mysql-cluster-7.3.6.ebuild
@@ -0,0 +1,136 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-db/mysql-cluster/mysql-cluster-7.3.6.ebuild,v 1.1 2014/08/03 21:42:35 robbat2 Exp $
+
+EAPI=4
+MY_EXTRAS_VER="live"
+BUILD="cmake"
+
+# PBXT
+#PBXT_VERSION='1.0.11-6-pre-ga'
+# XtraDB
+#PERCONA_VER='5.1.45-10' XTRADB_VER='1.0.6-10'
+
+inherit toolchain-funcs java-pkg-opt-2 mysql-v2
+# only to make repoman happy. it is really set in the eclass
+IUSE="$IUSE"
+
+# REMEMBER: also update eclass/mysql*.eclass before committing!
+KEYWORDS="~amd64 ~x86"
+
+# When MY_EXTRAS is bumped, the index should be revised to exclude these.
+# This is often broken still
+#EPATCH_EXCLUDE='02040_all_embedded-library-shared-5.1.43.patch '
+
+DEPEND="|| ( >=sys-devel/gcc-3.4.6 >=sys-devel/gcc-apple-4.0 )"
+RDEPEND="!media-sound/amarok[embedded]"
+
+# Please do not add a naive src_unpack to this ebuild
+# If you want to add a single patch, copy the ebuild to an overlay
+# and create your own mysql-extras tarball, looking at 000_index.txt
+
+# Official test instructions:
+# USE='cluster extraengine perl ssl community' \
+# FEATURES='test userpriv -usersandbox' \
+# ebuild mysql-cluster-X.X.XX.ebuild \
+# digest clean package
+src_test() {
+
+ local TESTDIR="${CMAKE_BUILD_DIR}/mysql-test"
+ local retstatus_unit
+ local retstatus_tests
+
+ # Bug #213475 - MySQL _will_ object strenously if your machine is named
+ # localhost. Also causes weird failures.
+ [[ "${HOSTNAME}" == "localhost" ]] && die "Your machine must NOT be named localhost"
+
+ if ! use "minimal" ; then
+
+ if [[ $UID -eq 0 ]]; then
+ die "Testing with FEATURES=-userpriv is no longer supported by upstream. Tests MUST be run as non-root."
+ fi
+ has usersandbox $FEATURES && eerror "Some tests may fail with FEATURES=usersandbox"
+
+ einfo ">>> Test phase [test]: ${CATEGORY}/${PF}"
+ addpredict /this-dir-does-not-exist/t9.MYI
+
+ # Run CTest (test-units)
+ cmake-utils_src_test
+ retstatus_unit=$?
+ [[ $retstatus_unit -eq 0 ]] || eerror "test-unit failed"
+
+ # Ensure that parallel runs don't die
+ export MTR_BUILD_THREAD="$((${RANDOM} % 100))"
+
+ # create directories because mysqladmin might right out of order
+ mkdir -p "${S}"/mysql-test/var-tests{,/log}
+
+ # These are failing in MySQL 5.5/5.6 for now and are believed to be
+ # false positives:
+ #
+ # main.information_schema, binlog.binlog_statement_insert_delayed,
+ # main.mysqld--help-notwin, funcs_1.is_triggers funcs_1.is_tables_mysql,
+ # funcs_1.is_columns_mysql, binlog.binlog_mysqlbinlog_filter,
+ # perfschema.binlog_edge_mix, perfschema.binlog_edge_stmt,
+ # mysqld--help-notwin, funcs_1.is_triggers, funcs_1.is_tables_mysql, funcs_1.is_columns_mysql
+ # perfschema.binlog_edge_stmt, perfschema.binlog_edge_mix, binlog.binlog_mysqlbinlog_filter
+ # fails due to USE=-latin1 / utf8 default
+ #
+ # main.mysql_client_test:
+ # segfaults at random under Portage only, suspect resource limits.
+ #
+ # main.mysql_tzinfo_to_sql_symlink
+ # fails due to missing mysql_test/std_data/zoneinfo/GMT file from archive
+ #
+ for t in \
+ binlog.binlog_mysqlbinlog_filter \
+ binlog.binlog_statement_insert_delayed \
+ funcs_1.is_columns_mysql \
+ funcs_1.is_tables_mysql \
+ funcs_1.is_triggers \
+ main.information_schema \
+ main.mysqld--help-notwinfuncs_1.is_triggers \
+ main.mysql_client_test \
+ main.mysql_tzinfo_to_sql_symlink \
+ mysqld--help-notwin \
+ perfschema.binlog_edge_mix \
+ perfschema.binlog_edge_stmt \
+ ; do
+ mysql-v2_disable_test "$t" "False positives in Gentoo"
+ done
+ # ndb.ndbinfo, ndb_binlog.ndb_binlog_index: latin1/utf8
+ for t in \
+ ndb.ndbinfo \
+ ndb_binlog.ndb_binlog_index ; do
+ mysql-v2_disable_test "$t" "False positives in Gentoo (NDB)"
+ done
+
+ # Run mysql tests
+ pushd "${TESTDIR}"
+
+ # run mysql-test tests
+ perl mysql-test-run.pl --force --vardir="${S}/mysql-test/var-tests" \
+ --parallel=auto
+ retstatus_tests=$?
+ [[ $retstatus_tests -eq 0 ]] || eerror "tests failed"
+ has usersandbox $FEATURES && eerror "Some tests may fail with FEATURES=usersandbox"
+
+ popd
+
+ # Cleanup is important for these testcases.
+ pkill -9 -f "${S}/ndb" 2>/dev/null
+ pkill -9 -f "${S}/sql" 2>/dev/null
+
+ failures=""
+ [[ $retstatus_unit -eq 0 ]] || failures="${failures} test-unit"
+ [[ $retstatus_tests -eq 0 ]] || failures="${failures} tests"
+ has usersandbox $FEATURES && eerror "Some tests may fail with FEATURES=usersandbox"
+
+ [[ -z "$failures" ]] || die "Test failures: $failures"
+ einfo "Tests successfully completed"
+
+ else
+
+ einfo "Skipping server tests due to minimal build."
+ fi
+}