add mariadb

git-svn-id: https://svn.disconnected-by-peer.at/svn/linamh/trunk/mysql@2240 6952d904-891a-0410-993b-d76249ca496b
This commit is contained in:
geos_one 2010-05-30 07:23:48 +00:00
parent 66806ca26a
commit b5b8469e79
7 changed files with 801 additions and 0 deletions

11
dev-db/mariadb/ChangeLog Normal file
View File

@ -0,0 +1,11 @@
# ChangeLog for dev-db/mysql-mariadb
# Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2
# $Header: $
14 Jul 2009; Mario Fetka <mario.fetka@gmail.com>
mysql-mariadb-5.1.32_beta.ebuild:
take patches from git
13 Jul 2009; Mario Fetka <mario.fetka@gmail.com> ChangeLog:
initial checkin

13
dev-db/mariadb/Manifest Normal file
View File

@ -0,0 +1,13 @@
AUX my.cnf-4.1 4235 RMD160 ca04e2e667322e99c29be59064c7a6ecaa4e1e4c SHA1 babc79984b2e2d3def93ac0c13cd2fc5c690212a SHA256 908a4883116e4f323510c468fd22c5765f8a2adce0344859fc212b7209a3a6c7
AUX my.cnf-5.1 4193 RMD160 38b438457f32e0f0eeac2fd7991bb5cea7290c31 SHA1 08ed81d2a187be4ab77fbc5d8818b06226a55a8a SHA256 9668a147c27630bcf30239e4faed7a749d113db285fd2b96d1d337d2b3a77ea4
DIST mariadb-5.1.42.tar.gz 21616693 RMD160 13e1d578aa135aaefadd9bd2eb00f7e0c7e236a3 SHA1 c6082203eea91a4efb95a11d06fccc4215a465a4 SHA256 f93dbf85ad03fe1928738e5552b8a7f911a0c3f2d644784a355a8f1b8fc2c29b
DIST mariadb-5.1.44b.tar.gz 21685379 RMD160 a0236051d10a1241faafa5572d03bf1c57848798 SHA1 be3f9679c2bab131bb72f9e23f7161b799a7902a SHA256 4af1ac4aac903fd4ea8201fc6d1412e270dd2b8db9912fd876a4d8ee7fea45f5
DIST mysql-storage-filesystem-0.1.1-gentoo-r7.tar.gz 17099 RMD160 fcc3fe5a9f6d0b4f1b0f2d36969634c7f2701ff7 SHA1 b8e846b18b6b43927d050e9f418a75ac5728e2ba SHA256 0ece3795d61d25f8a61fa62e8add858c05415c4c47acb225f221afea1d7736af
DIST mysql-storage-oqgraph-0.7-gentoo-r6.tar.gz 5215783 RMD160 4fb92c2f86ce5282d9abc74a970ff54c3d12d224 SHA1 ad9e1b475484c0478f485d2e771bb9d62928a350 SHA256 85b4cb5f6d91f5431808a8f2fcefb053f56baeed861873be5c90a414c0330315
DIST mysql-storage-pbms-0.5.12-beta-gentoo-r3.tar.gz 310868 RMD160 09ba4c281f0d9d6bdd11ce417bae97d4fe76f9ab SHA1 b81b65c5018997f5d17009a5306fd489d4da68db SHA256 0a18f9a8a04a46ca9fa686818a4b67b2250192293e36f14e9fcd59e5e7fb2c94
DIST mysql-storage-soliddb-0081-gentoo-r3.tar.gz 2399242 RMD160 baf48801a5738d980b499e3fcde8f955d3a775fe SHA1 f7e9dff235bb4d157e38dd0e20f679ffc84882bf SHA256 3e423e3d3867ad4b823f3eb7722a2b1312af91ffe99699d0858c7436ece5343d
DIST mysql-storage-sphinx-0.9.9-gentoo-r3.tar.gz 117988 RMD160 b18328ca54f919e3dc3b65abc8bdf54057f8b0a7 SHA1 9effa1de769e253b393eea5be0ec2a7d3007904d SHA256 ed7047ec91b0b00358cb6421110c09ce4ef3c9e8ffa1adc3b7406a80613ba848
DIST mysql-storage-spider-2.20-gentoo-r1.tar.gz 176918 RMD160 043ac94be10e77fba1f22ec351b203dc3fd8de74 SHA1 54e36fe9928b7a70105ce124eea59e3fd668042c SHA256 0aee30d205240027c901a79ea5cd10be016c2a9c74a66c25d9a56af97db9362c
EBUILD mariadb-5.1.42-r1.ebuild 6921 RMD160 d7ff8a33eee45fbd74948aea9ff9b2c0480cd368 SHA1 affd7cbd325d1a5a9b4079d90666ea37e94e2950 SHA256 463e5efece60c9ef96bc3f8d1d6d1be0bc0355d928612cdb69b10fb95466d158
EBUILD mariadb-5.1.44b-r1.ebuild 7212 RMD160 e4c0074869830a9b8386a6a96101096cca462f3d SHA1 73924a9a022ced59f0a3476bb95b39123867a172 SHA256 498c436d00dba1c7db80936239efc201b1225842e9425b8f116beb5683f63e92
MISC ChangeLog 314 RMD160 7771d6b85a0564c7e4cb09a93008a133ab73159c SHA1 e8bbed35abe46cb460f98879e5e25e4538f892d5 SHA256 2c9efd4b40d6fec269a698cf3e36e0cfe4764f55a1c65a6ce14065ea1eeb49b2

View File

@ -0,0 +1,147 @@
# /etc/mysql/my.cnf: The global mysql configuration file.
# $Header: /var/cvsroot/gentoo-x86/dev-db/mysql/files/my.cnf-4.1,v 1.4 2008/11/14 02:16:25 robbat2 Exp $
# The following options will be passed to all MySQL clients
[client]
#password = your_password
port = 3306
socket = /var/run/mysqld/mysqld.sock
[mysql]
character-sets-dir=/usr/share/mysql/charsets
default-character-set=utf8
[mysqladmin]
character-sets-dir=/usr/share/mysql/charsets
default-character-set=utf8
[mysqlcheck]
character-sets-dir=/usr/share/mysql/charsets
default-character-set=utf8
[mysqldump]
character-sets-dir=/usr/share/mysql/charsets
default-character-set=utf8
[mysqlimport]
character-sets-dir=/usr/share/mysql/charsets
default-character-set=utf8
[mysqlshow]
character-sets-dir=/usr/share/mysql/charsets
default-character-set=utf8
[myisamchk]
character-sets-dir=/usr/share/mysql/charsets
[myisampack]
character-sets-dir=/usr/share/mysql/charsets
# use [safe_mysqld] with mysql-3
[mysqld_safe]
err-log = /var/log/mysql/mysql.err
# add a section [mysqld-4.1] or [mysqld-5.0] for specific configurations
[mysqld]
character-set-server = utf8
default-character-set = utf8
user = mysql
port = 3306
socket = /var/run/mysqld/mysqld.sock
pid-file = /var/run/mysqld/mysqld.pid
log-error = /var/log/mysql/mysqld.err
basedir = /usr
datadir = @DATADIR@
skip-locking
key_buffer = 16M
max_allowed_packet = 1M
table_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
language = /usr/share/mysql/english
# 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 = /tmp/
#log-update = /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 /tmp/mysqld.sql /tmp/mysqld.trace
# this will show you *exactly* what's happening in your server ;)
#log = /tmp/mysqld.sql
#gdb
#debug = d:t:i:o,/tmp/mysqld.trace
#one-thread
# uncomment the following directives if you are using BDB tables
#bdb_cache_size = 4M
#bdb_max_lock = 10000
# 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 /var/lib/mysql/innodb, but that is seen as a database :-(
# and upstream wants things to be under /var/lib/mysql/, so that's the route
# we have to take for the moment
#innodb_data_home_dir = /var/lib/mysql/
#innodb_log_arch_dir = /var/lib/mysql/
#innodb_log_group_home_dir = /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
set-variable = 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
[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
# uncomment the next directive if you are not familiar with SQL
#safe-updates
[isamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M
[myisamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout

View File

@ -0,0 +1,146 @@
# /etc/mysql/my.cnf: The global mysql configuration file.
# $Header: /var/cvsroot/gentoo-x86/dev-db/mysql/files/my.cnf-4.1,v 1.4 2008/11/14 02:16:25 robbat2 Exp $
# The following options will be passed to all MySQL clients
[client]
#password = your_password
port = 3306
socket = /var/run/mysqld/mysqld.sock
[mysql]
character-sets-dir=/usr/share/mysql/charsets
character-set-server=utf8
[mysqladmin]
character-sets-dir=/usr/share/mysql/charsets
character-set-server=utf8
[mysqlcheck]
character-sets-dir=/usr/share/mysql/charsets
character-set-server=utf8
[mysqldump]
character-sets-dir=/usr/share/mysql/charsets
character-set-server=utf8
[mysqlimport]
character-sets-dir=/usr/share/mysql/charsets
character-set-server=utf8
[mysqlshow]
character-sets-dir=/usr/share/mysql/charsets
character-set-server=utf8
[myisamchk]
character-sets-dir=/usr/share/mysql/charsets
[myisampack]
character-sets-dir=/usr/share/mysql/charsets
# use [safe_mysqld] with mysql-3
[mysqld_safe]
err-log = /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 = /var/run/mysqld/mysqld.sock
pid-file = /var/run/mysqld/mysqld.pid
log-error = /var/log/mysql/mysqld.err
basedir = /usr
datadir = @DATADIR@
skip-external-locking
key_buffer = 16M
max_allowed_packet = 1M
table_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
language = /usr/share/mysql/english
# 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 = /tmp/
#log-update = /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 /tmp/mysqld.sql /tmp/mysqld.trace
# this will show you *exactly* what's happening in your server ;)
#log = /tmp/mysqld.sql
#gdb
#debug = d:t:i:o,/tmp/mysqld.trace
#one-thread
# uncomment the following directives if you are using BDB tables
#bdb_cache_size = 4M
#bdb_max_lock = 10000
# 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 /var/lib/mysql/innodb, but that is seen as a database :-(
# and upstream wants things to be under /var/lib/mysql/, so that's the route
# we have to take for the moment
#innodb_data_home_dir = /var/lib/mysql/
#innodb_log_arch_dir = /var/lib/mysql/
#innodb_log_group_home_dir = /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
[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
# uncomment the next directive if you are not familiar with SQL
#safe-updates
[isamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M
[myisamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout

View File

@ -0,0 +1,204 @@
# Copyright 1999-2010 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/dev-db/mysql/mysql-5.0.84-r1.ebuild,v 1.7 2009/11/09 18:00:20 fauli Exp $
MY_EXTRAS_VER="live"
EAPI=2
inherit toolchain-funcs mysql
# only to make repoman happy. it is really set in the eclass
IUSE="$IUSE"
# REMEMBER: also update eclass/mysql*.eclass before committing!
KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~sparc-fbsd ~x86-fbsd"
# When MY_EXTRAS is bumped, the index should be revised to exclude these.
EPATCH_EXCLUDE=''
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='berkdb -cluster embedded extraengine perl ssl community' \
# FEATURES='test userpriv -usersandbox' \
# ebuild mysql-X.X.XX.ebuild \
# digest clean package
src_test() {
# 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"
emake check || die "make check failed"
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"
cd "${S}"
einfo ">>> Test phase [test]: ${CATEGORY}/${PF}"
local retstatus_unit
local retstatus_ns
local retstatus_ps
local t
addpredict /this-dir-does-not-exist/t9.MYI
# Ensure that parallel runs don't die
export MTR_BUILD_THREAD="$((${RANDOM} % 100))"
# archive_gis really sucks a lot, but it's only relevant for the
# USE=extraengines case
case ${PV} in
5.0.42)
mysql_disable_test "archive_gis" "Totally broken in 5.0.42"
;;
5.0.4[3-9]|5.0.[56]*|5.0.70|5.0.87)
[ "$(tc-endian)" == "big" ] && \
mysql_disable_test \
"archive_gis" \
"Broken in 5.0.43-70 and 5.0.87 on big-endian boxes only"
;;
esac
# This was a slight testcase breakage when the read_only security issue
# was fixed.
case ${PV} in
5.0.54|5.0.51*)
mysql_disable_test \
"read_only" \
"Broken in 5.0.51-54, output in wrong order"
;;
esac
# Ditto to read_only
[ "${PV}" == "5.0.51a" ] && \
mysql_disable_test \
"view" \
"Broken in 5.0.51, output in wrong order"
# x86-specific, OOM issue with some subselects on low memory servers
[ "${PV}" == "5.0.54" ] && \
[ "${ARCH/x86}" != "${ARCH}" ] && \
mysql_disable_test \
"subselect" \
"Testcase needs tuning on x86 for oom condition"
# Broke with the YaSSL security issue that didn't affect Gentoo.
[ "${PV}" == "5.0.56" ] && \
for t in openssl_1 rpl_openssl rpl_ssl ssl \
ssl_8k_key ssl_compress ssl_connect ; do \
mysql_disable_test \
"$t" \
"OpenSSL tests broken on 5.0.56"
done
# New test was broken in first time
# Upstream bug 41066
# http://bugs.mysql.com/bug.php?id=41066
[ "${PV}" == "5.0.72" ] && \
mysql_disable_test \
"status2" \
"Broken in 5.0.72, new test is broken, upstream bug #41066"
# The entire 5.0 series has pre-generated SSL certificates, they have
# mostly expired now. ${S}/mysql-tests/std-data/*.pem
# The certs really SHOULD be generated for the tests, so that they are
# not expiring like this. We cannot do so ourselves as the tests look
# closely as the cert path data, and we do not have the CA key to regen
# ourselves. Alternatively, upstream should generate them with at least
# 50-year validity.
#
# Known expiry points:
# 4.1.*, 5.0.0-5.0.22, 5.1.7: Expires 2013/09/09
# 5.0.23-5.0.77, 5.1.7-5.1.22?: Expires 2009/01/27
# 5.0.78-5.0.90, 5.1.??-5.1.42: Expires 2010/01/28
#
# mysql-test/std_data/untrusted-cacert.pem is MEANT to be
# expired/invalid.
case ${PV} in
5.0.*|5.1.*|5.4.*|5.5.*)
for t in openssl_1 rpl_openssl rpl.rpl_ssl rpl.rpl_ssl1 ssl ssl_8k_key \
ssl_compress ssl_connect rpl.rpl_heartbeat_ssl ; do \
mysql_disable_test \
"$t" \
"These OpenSSL tests break due to expired certificates"
done
;;
esac
# These are also failing in MySQL 5.1 for now, and are believed to be
# false positives:
#
# main.mysql_comment, main.mysql_upgrade, main.information_schema,
# funcs_1.is_columns_mysql funcs_1.is_tables_mysql funcs_1.is_triggers:
# fails due to USE=-latin1 / utf8 default
#
# main.mysql_client_test:
# segfaults at random under Portage only, suspect resource limits.
#
# main.not_partition:
# Failure reason unknown at this time, must resolve before package.mask
# removal FIXME
case ${PV} in
5.1.*|5.4.*|5.5.*)
for t in main.mysql_client_test main.mysql_comments \
main.mysql_upgrade \
main.information_schema \
main.not_partition funcs_1.is_columns_mysql \
funcs_1.is_tables_mysql funcs_1.is_triggers; do
mysql_disable_test "$t" "False positives in Gentoo"
done
;;
esac
use profiling && use community \
|| mysql_disable_test main.profiling \
"Profiling test needs profiling support"
if [ "${PN}" == "mariadb" ]; then
for t in \
parts.part_supported_sql_func_ndb \
parts.partition_auto_increment_ndb ; do
mysql_disable_test $t "ndb not supported in mariadb"
done
fi
# create directories because mysqladmin might make out of order
mkdir -p "${S}"/mysql-test/var-{ps,ns}{,/log}
# We run the test protocols seperately
emake test-unit
retstatus_unit=$?
[[ $retstatus_unit -eq 0 ]] || eerror "test-unit failed"
emake test-ns force="--force --vardir=${S}/mysql-test/var-ns"
retstatus_ns=$?
[[ $retstatus_ns -eq 0 ]] || eerror "test-ns failed"
has usersandbox $FEATURES && eerror "Some tests may fail with FEATURES=usersandbox"
emake test-ps force="--force --vardir=${S}/mysql-test/var-ps"
retstatus_ps=$?
[[ $retstatus_ps -eq 0 ]] || eerror "test-ps failed"
has usersandbox $FEATURES && eerror "Some tests may fail with FEATURES=usersandbox"
# TODO:
# When upstream enables the pr and nr testsuites, we need those as well.
# 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_ns -eq 0 ]] || failures="${failures} test-ns"
[[ $retstatus_ps -eq 0 ]] || failures="${failures} test-ps"
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
}

View File

@ -0,0 +1,214 @@
# Copyright 1999-2010 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/dev-db/mysql/mysql-5.0.84-r1.ebuild,v 1.7 2009/11/09 18:00:20 fauli Exp $
MY_EXTRAS_VER="live"
EAPI=2
#GO_MYSQL_PATCHES="http://ftp.disconnected-by-peer.at/mysql/go-mysql-patches-1.tar.gz"
# revision-0.2-alpha-gentoo-r5
MYSQL_STORAGE="pbms-0.5.12-beta-gentoo-r3
soliddb-0081-gentoo-r3
filesystem-0.1.1-gentoo-r7
sphinx-0.9.9-gentoo-r3
spider-2.20-gentoo-r1
oqgraph-0.7-gentoo-r6"
inherit toolchain-funcs mysql
# only to make repoman happy. it is really set in the eclass
IUSE="$IUSE"
# REMEMBER: also update eclass/mysql*.eclass before committing!
KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~sparc-fbsd ~x86-fbsd"
# When MY_EXTRAS is bumped, the index should be revised to exclude these.
EPATCH_EXCLUDE=''
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='berkdb -cluster embedded extraengine perl ssl community' \
# FEATURES='test userpriv -usersandbox' \
# ebuild mysql-X.X.XX.ebuild \
# digest clean package
src_test() {
# 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"
emake check || die "make check failed"
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"
cd "${S}"
einfo ">>> Test phase [test]: ${CATEGORY}/${PF}"
local retstatus_unit
local retstatus_ns
local retstatus_ps
local t
addpredict /this-dir-does-not-exist/t9.MYI
# Ensure that parallel runs don't die
export MTR_BUILD_THREAD="$((${RANDOM} % 100))"
# archive_gis really sucks a lot, but it's only relevant for the
# USE=extraengines case
case ${PV} in
5.0.42)
mysql_disable_test "archive_gis" "Totally broken in 5.0.42"
;;
5.0.4[3-9]|5.0.[56]*|5.0.70|5.0.87)
[ "$(tc-endian)" == "big" ] && \
mysql_disable_test \
"archive_gis" \
"Broken in 5.0.43-70 and 5.0.87 on big-endian boxes only"
;;
esac
# This was a slight testcase breakage when the read_only security issue
# was fixed.
case ${PV} in
5.0.54|5.0.51*)
mysql_disable_test \
"read_only" \
"Broken in 5.0.51-54, output in wrong order"
;;
esac
# Ditto to read_only
[ "${PV}" == "5.0.51a" ] && \
mysql_disable_test \
"view" \
"Broken in 5.0.51, output in wrong order"
# x86-specific, OOM issue with some subselects on low memory servers
[ "${PV}" == "5.0.54" ] && \
[ "${ARCH/x86}" != "${ARCH}" ] && \
mysql_disable_test \
"subselect" \
"Testcase needs tuning on x86 for oom condition"
# Broke with the YaSSL security issue that didn't affect Gentoo.
[ "${PV}" == "5.0.56" ] && \
for t in openssl_1 rpl_openssl rpl_ssl ssl \
ssl_8k_key ssl_compress ssl_connect ; do \
mysql_disable_test \
"$t" \
"OpenSSL tests broken on 5.0.56"
done
# New test was broken in first time
# Upstream bug 41066
# http://bugs.mysql.com/bug.php?id=41066
[ "${PV}" == "5.0.72" ] && \
mysql_disable_test \
"status2" \
"Broken in 5.0.72, new test is broken, upstream bug #41066"
# The entire 5.0 series has pre-generated SSL certificates, they have
# mostly expired now. ${S}/mysql-tests/std-data/*.pem
# The certs really SHOULD be generated for the tests, so that they are
# not expiring like this. We cannot do so ourselves as the tests look
# closely as the cert path data, and we do not have the CA key to regen
# ourselves. Alternatively, upstream should generate them with at least
# 50-year validity.
#
# Known expiry points:
# 4.1.*, 5.0.0-5.0.22, 5.1.7: Expires 2013/09/09
# 5.0.23-5.0.77, 5.1.7-5.1.22?: Expires 2009/01/27
# 5.0.78-5.0.90, 5.1.??-5.1.42: Expires 2010/01/28
#
# mysql-test/std_data/untrusted-cacert.pem is MEANT to be
# expired/invalid.
case ${PV} in
5.0.*|5.1.*|5.4.*|5.5.*)
for t in openssl_1 rpl_openssl rpl.rpl_ssl rpl.rpl_ssl1 ssl ssl_8k_key \
ssl_compress ssl_connect rpl.rpl_heartbeat_ssl ; do \
mysql_disable_test \
"$t" \
"These OpenSSL tests break due to expired certificates"
done
;;
esac
# These are also failing in MySQL 5.1 for now, and are believed to be
# false positives:
#
# main.mysql_comment, main.mysql_upgrade, main.information_schema,
# funcs_1.is_columns_mysql funcs_1.is_tables_mysql funcs_1.is_triggers:
# fails due to USE=-latin1 / utf8 default
#
# main.mysql_client_test:
# segfaults at random under Portage only, suspect resource limits.
#
# main.not_partition:
# Failure reason unknown at this time, must resolve before package.mask
# removal FIXME
case ${PV} in
5.1.*|5.4.*|5.5.*)
for t in main.mysql_client_test main.mysql_comments \
main.mysql_upgrade \
main.information_schema \
main.not_partition funcs_1.is_columns_mysql \
funcs_1.is_tables_mysql funcs_1.is_triggers; do
mysql_disable_test "$t" "False positives in Gentoo"
done
;;
esac
use profiling && use community \
|| mysql_disable_test main.profiling \
"Profiling test needs profiling support"
if [ "${PN}" == "mariadb" ]; then
for t in \
parts.part_supported_sql_func_ndb \
parts.partition_auto_increment_ndb ; do
mysql_disable_test $t "ndb not supported in mariadb"
done
fi
# create directories because mysqladmin might make out of order
mkdir -p "${S}"/mysql-test/var-{ps,ns}{,/log}
# We run the test protocols seperately
emake test-unit
retstatus_unit=$?
[[ $retstatus_unit -eq 0 ]] || eerror "test-unit failed"
emake test-ns force="--force --vardir=${S}/mysql-test/var-ns"
retstatus_ns=$?
[[ $retstatus_ns -eq 0 ]] || eerror "test-ns failed"
has usersandbox $FEATURES && eerror "Some tests may fail with FEATURES=usersandbox"
emake test-ps force="--force --vardir=${S}/mysql-test/var-ps"
retstatus_ps=$?
[[ $retstatus_ps -eq 0 ]] || eerror "test-ps failed"
has usersandbox $FEATURES && eerror "Some tests may fail with FEATURES=usersandbox"
# TODO:
# When upstream enables the pr and nr testsuites, we need those as well.
# 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_ns -eq 0 ]] || failures="${failures} test-ns"
[[ $retstatus_ps -eq 0 ]] || failures="${failures} test-ps"
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
}

View File

@ -0,0 +1,66 @@
# Copyright 1999-2009 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.21_beta.ebuild,v 1.3 2008/11/14 09:43:04 robbat2 Exp $
MY_EXTRAS_VER="live"
#SERVER_URI="mirror://gentoo/MySQL-${PV%.*}/mysql-${PV//_/-}.tar.gz"
#PBXT_VERSION="0.9.8-beta"
inherit mysql
# only to make repoman happy. it is really set in the eclass
IUSE="$IUSE"
# 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"
addpredict /this-dir-does-not-exist/t9.MYI
# mysqladmin start before dir creation
mkdir "${S}"/mysql-test/var{,/log}
# Ensure that parallel runs don't die
export MTR_BUILD_THREAD="$((${RANDOM} % 100))"
# sandbox make ndbd zombie
#X#hasq "sandbox" ${FEATURES} && testopts="${testopts} --skip-ndb"
#X#if [[ ${UID} -eq 0 ]] ; then
#X# einfo "Disabling IM tests due to failure as root"
#X# mysql_disable_test "im_cmd_line" "fail as root"
#X# mysql_disable_test "im_daemon_life_cycle" "fail as root"
#X# mysql_disable_test "im_instance_conf" "fail as root"
#X# mysql_disable_test "im_life_cycle" "fail as root"
#X# mysql_disable_test "im_options" "fail as root"
#X# mysql_disable_test "im_utils" "fail as root"
#X# mysql_disable_test "trigger" "fail as root"
#X#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} --mysqld=--binlog-format=row \
&& ./mysql-test-run.pl ${testopts} --ps-protocol --mysqld=--binlog-format=row \
&& ./mysql-test-run.pl ${testopts} --ps-protocol --mysqld=--binlog-format=mixed \
&& 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
}