Gentoo Archives: gentoo-commits

From: Thomas Deutschmann <whissi@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-db/percona-server/
Date: Fri, 26 Aug 2016 14:39:39
Message-Id: 1472222358.abf9ebf84d9a073a1104a807d50357aacee3cc20.whissi@gentoo
1 commit: abf9ebf84d9a073a1104a807d50357aacee3cc20
2 Author: Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
3 AuthorDate: Fri Aug 26 14:14:58 2016 +0000
4 Commit: Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
5 CommitDate: Fri Aug 26 14:39:18 2016 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=abf9ebf8
7
8 dev-db/percona-server: Bump to v5.6.32-78.0
9
10 Before this version percona-server automatically enabled NUMA support
11 when libnuma.so and headers were detected.
12
13 Starting with this release you need to enable the new "numa" USE flag
14 if you want to have NUMA support.
15
16 Please keep in mind that next to libnuma.so you also need kernel support
17 for NUMA.
18
19 Gentoo-Bug: https://bugs.gentoo.org/584880
20
21 Package-Manager: portage-2.3.0
22
23 dev-db/percona-server/Manifest | 1 +
24 dev-db/percona-server/metadata.xml | 1 +
25 .../percona-server-5.6.32.78.0.ebuild | 216 +++++++++++++++++++++
26 3 files changed, 218 insertions(+)
27
28 diff --git a/dev-db/percona-server/Manifest b/dev-db/percona-server/Manifest
29 index 2882440..e8e9709 100644
30 --- a/dev-db/percona-server/Manifest
31 +++ b/dev-db/percona-server/Manifest
32 @@ -1,2 +1,3 @@
33 DIST mysql-extras-20160307-1854Z.tar.bz2 298005 SHA256 a6516841d24670a1802e28fd66d4f540b16367396e6b2f687b8429b8e6a5d865 SHA512 d90081bd910dfffe6e1ac250465c0dbd9968edbdfe08f25f213ec328028fbb6fdb016816846c7fcee9202b9b93f4868edaff44ee04a0554cc93c6ecbf088db8f WHIRLPOOL f971804db83f42d717da318deeb647c1b294fa0967db7073e7f83d0fa15476d68089201430aaa882d90d5223a41a1a1668cfbe82bb897dcf864925e3da715c10
34 DIST percona-server-5.6.31-77.0.tar.gz 55086290 SHA256 955fefc5a0a69b2cd44db64378678a773fb98e1260f68a067836473862c89fe7 SHA512 b166f3765052336b593bf2a3c3d0fa998d4ab413b2d86a494d6ef52689e04b7b681c95d434c67bb4536a818a8bebeaf27b519f274ba1ce8c447d36f7346858ee WHIRLPOOL f9ab27930c9727e9e70d992a7425ab5f2fdd575ebbe9c7b7436f9e72aff86bef65030a4b44afe5afda027aa8cd0f11d6a1303a8c262a0e60e12665d0dacb1676
35 +DIST percona-server-5.6.32-78.0.tar.gz 55120585 SHA256 b3f9191dd8660ba4f825c5fa8fa470e66417335ad8455e31bbc2d5f2cac1a923 SHA512 958cc27351c507410fe2a0a7a126ec36a25d1ced19ec6b2a4996a011c65c4f0e42d6a3235e21511f38677762dd8e0efe436fee67a5bf3db64b2c8b25520c43e5 WHIRLPOOL ef821cf1f9a5e3377bda96159d04f179f8ee9e8ef75ccfaed3512626ec51baf197e425b9fe39a300e7898824d7e76187d22314c07b1535bd7e7e00626fde2923
36
37 diff --git a/dev-db/percona-server/metadata.xml b/dev-db/percona-server/metadata.xml
38 index f44930d..0754114 100644
39 --- a/dev-db/percona-server/metadata.xml
40 +++ b/dev-db/percona-server/metadata.xml
41 @@ -11,6 +11,7 @@
42 <flag name="jemalloc">Use <pkg>dev-libs/jemalloc</pkg> for allocations.</flag>
43 <flag name="latin1">Use LATIN1 encoding instead of UTF8</flag>
44 <flag name="libressl">Enable SSL connections and crypto functions using <pkg>dev-libs/libressl</pkg></flag>
45 + <flag name="numa">Enable NUMA support using <pkg>sys-process/numactl</pkg> (NUMA kernel support is also required)</flag>
46 <flag name="openssl">Enable SSL connections and crypto functions using <pkg>dev-libs/openssl</pkg></flag>
47 <flag name="profiling">Add support for statement profiling (requires USE=community).</flag>
48 <flag name="server">Build the server program</flag>
49
50 diff --git a/dev-db/percona-server/percona-server-5.6.32.78.0.ebuild b/dev-db/percona-server/percona-server-5.6.32.78.0.ebuild
51 new file mode 100644
52 index 00000000..0d5e6ce
53 --- /dev/null
54 +++ b/dev-db/percona-server/percona-server-5.6.32.78.0.ebuild
55 @@ -0,0 +1,216 @@
56 +# Copyright 1999-2016 Gentoo Foundation
57 +# Distributed under the terms of the GNU General Public License v2
58 +# $Id$
59 +
60 +EAPI="6"
61 +MY_EXTRAS_VER="20160307-1854Z"
62 +SUBSLOT="18"
63 +PYTHON_COMPAT=( python2_7 )
64 +inherit linux-info python-any-r1 mysql-multilib-r1
65 +
66 +IUSE="numa pam tokudb tokudb-backup-plugin"
67 +
68 +# REMEMBER: also update eclass/mysql*.eclass before committing!
69 +KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~sparc-fbsd ~x86-fbsd ~x86-linux"
70 +HOMEPAGE="http://www.percona.com/software/percona-server"
71 +DESCRIPTION="An enhanced, drop-in replacement for MySQL from the Percona team"
72 +
73 +# When MY_EXTRAS is bumped, the index should be revised to exclude these.
74 +EPATCH_EXCLUDE=''
75 +
76 +COMMON_DEPEND="numa? ( sys-process/numactl:= )
77 + server? ( pam? ( virtual/pam:0= ) )
78 + tokudb? ( app-arch/snappy )
79 + tokudb-backup-plugin? ( dev-util/valgrind )
80 + "
81 +
82 +DEPEND="${COMMON_DEPEND}
83 + || ( >=sys-devel/gcc-3.4.6 >=sys-devel/gcc-apple-4.0 )
84 + test? ( $(python_gen_any_dep 'dev-python/mysql-python[${PYTHON_USEDEP}]') )"
85 +RDEPEND="${COMMON_DEPEND}"
86 +
87 +REQUIRED_USE="tokudb? ( jemalloc ) tokudb-backup-plugin? ( tokudb )"
88 +
89 +MY_PATCH_DIR="${WORKDIR}/mysql-extras-${MY_EXTRAS_VER}"
90 +
91 +PATCHES=(
92 + "${MY_PATCH_DIR}"/01050_all_mysql_config_cleanup-5.6.patch
93 + "${MY_PATCH_DIR}"/02040_all_embedded-library-shared-5.5.10.patch
94 + "${MY_PATCH_DIR}"/20001_all_fix-minimal-build-cmake-mysql-5.6.20.patch
95 + "${MY_PATCH_DIR}"/20006_all_cmake_elib-percona-5.6.29.patch
96 + "${MY_PATCH_DIR}"/20007_all_cmake-debug-werror-5.6.22.patch
97 + "${MY_PATCH_DIR}"/20008_all_mysql-tzinfo-symlink.patch
98 + "${MY_PATCH_DIR}"/20009_all_mysql_myodbc_symbol_fix-5.6.patch
99 + "${MY_PATCH_DIR}"/20018_all_percona-server-5.6.25-without-clientlibs-tools.patch
100 +)
101 +
102 +# Please do not add a naive src_unpack to this ebuild
103 +# If you want to add a single patch, copy the ebuild to an overlay
104 +# and create your own mysql-extras tarball, looking at 000_index.txt
105 +
106 +pkg_pretend() {
107 + mysql-multilib-r1_pkg_pretend
108 +
109 + if use numa; then
110 + local CONFIG_CHECK="~NUMA"
111 +
112 + local WARNING_NUMA="This package expects NUMA support in kernel which this system does not have at the moment;"
113 + WARNING_NUMA+=" Either expect runtime errors, enable NUMA support in kernel or rebuild the package without NUMA support"
114 +
115 + check_extra_config
116 + fi
117 +}
118 +
119 +python_check_deps() {
120 + has_version "dev-python/mysql-python[${PYTHON_USEDEP}]"
121 +}
122 +
123 +src_configure() {
124 + local MYSQL_CMAKE_NATIVE_DEFINES=( -DWITH_NUMA=$(usex numa)
125 + -DWITH_PAM=$(usex pam)
126 + $(mysql-cmake_use_plugin tokudb TOKUDB)
127 + )
128 + if use tokudb ; then
129 + # TokuDB Backup plugin requires valgrind unconditionally
130 + MYSQL_CMAKE_NATIVE_DEFINES+=(
131 + $(usex tokudb-backup-plugin '' -DTOKUDB_BACKUP_DISABLED=1)
132 + )
133 + fi
134 + mysql-multilib-r1_src_configure
135 +}
136 +
137 +# Official test instructions:
138 +# USE='extraengine perl openssl static-libs' \
139 +# FEATURES='test userpriv -usersandbox' \
140 +# ebuild percona-server-X.X.XX.ebuild \
141 +# digest clean package
142 +multilib_src_test() {
143 +
144 + if ! multilib_is_native_abi ; then
145 + einfo "Server tests not available on non-native abi".
146 + return 0;
147 + fi
148 +
149 + if ! use server ; then
150 + einfo "Skipping server tests due to minimal build."
151 + return 0
152 + fi
153 +
154 + local TESTDIR="${CMAKE_BUILD_DIR}/mysql-test"
155 + local retstatus_unit
156 + local retstatus_tests
157 +
158 + # Bug #213475 - MySQL _will_ object strenously if your machine is named
159 + # localhost. Also causes weird failures.
160 + [[ "${HOSTNAME}" == "localhost" ]] && die "Your machine must NOT be named localhost"
161 +
162 + if [[ $UID -eq 0 ]]; then
163 + die "Testing with FEATURES=-userpriv is no longer supported by upstream. Tests MUST be run as non-root."
164 + fi
165 +
166 + einfo ">>> Test phase [test]: ${CATEGORY}/${PF}"
167 + # Silence repoman, this is only valid in tests
168 + if use test ; then
169 + addpredict /this-dir-does-not-exist/t9.MYI
170 + fi
171 +
172 + # Run CTest (test-units)
173 + cmake-utils_src_test
174 + retstatus_unit=$?
175 + [[ $retstatus_unit -eq 0 ]] || eerror "test-unit failed"
176 +
177 + # Ensure that parallel runs don't die
178 + export MTR_BUILD_THREAD="$((${RANDOM} % 100))"
179 + # Enable parallel testing, auto will try to detect number of cores
180 + # You may set this by hand.
181 + # The default maximum is 8 unless MTR_MAX_PARALLEL is increased
182 + export MTR_PARALLEL="${MTR_PARALLEL:-auto}"
183 +
184 + # create directories because mysqladmin might right out of order
185 + mkdir -p "${T}"/var-tests{,/log}
186 +
187 + # These are failing in Percona 5.6 for now and are believed to be
188 + # false positives:
189 + #
190 + # main.information_schema, binlog.binlog_statement_insert_delayed,
191 + # main.mysqld--help-notwin, binlog.binlog_mysqlbinlog_filter
192 + # perfschema.binlog_edge_mix, perfschema.binlog_edge_stmt
193 + # funcs_1.is_columns_mysql funcs_1.is_tables_mysql funcs_1.is_triggers
194 + # engines/funcs.db_alter_character_set engines/funcs.db_alter_character_set_collate
195 + # engines/funcs.db_alter_collate_ascii engines/funcs.db_alter_collate_utf8
196 + # engines/funcs.db_create_character_set engines/funcs.db_create_character_set_collate
197 + # fails due to USE=-latin1 / utf8 default
198 + #
199 + # main.mysql_client_test:
200 + # segfaults at random under Portage only, suspect resource limits.
201 + #
202 + # main.percona_bug1289599
203 + # Looks to be a syntax error in the test file itself
204 + #
205 + # main.variables main.myisam main.merge_recover
206 + # fails due to ulimit not able to open enough files (needs 5000)
207 + #
208 + # main.mysqlhotcopy_archive main.mysqlhotcopy_myisam
209 + # Called with bad parameters should be reported upstream
210 + #
211 +
212 + local t
213 +
214 + for t in main.mysql_client_test \
215 + binlog.binlog_statement_insert_delayed main.information_schema \
216 + main.mysqld--help-notwin binlog.binlog_mysqlbinlog_filter \
217 + perfschema.binlog_edge_mix perfschema.binlog_edge_stmt \
218 + funcs_1.is_columns_mysql funcs_1.is_tables_mysql funcs_1.is_triggers \
219 + main.variables main.myisam main.merge_recover \
220 + engines/funcs.db_alter_character_set engines/funcs.db_alter_character_set_collate \
221 + engines/funcs.db_alter_collate_ascii engines/funcs.db_alter_collate_utf8 \
222 + engines/funcs.db_create_character_set engines/funcs.db_create_character_set_collate \
223 + main.percona_bug1289599 main.mysqlhotcopy_archive main.mysqlhotcopy_myisam ; do
224 + mysql-multilib-r1_disable_test "$t" "False positives in Gentoo"
225 + done
226 +
227 + if use numa && use kernel_linux ; then
228 + # bug 584880
229 + if ! linux_config_exists || ! linux_chkconfig_present NUMA ; then
230 + for t in sys_vars.innodb_buffer_pool_populate_basic ; do
231 + mysql-multilib-r1_disable_test "$t" "Test $t requires system with NUMA support"
232 + done
233 + fi
234 + fi
235 +
236 + if ! use extraengine ; then
237 + # bug 401673, 530766
238 + for t in federated.federated_plugin ; do
239 + mysql-multilib-r1_disable_test "$t" "Test $t requires USE=extraengine (Need federated engine)"
240 + done
241 + fi
242 +
243 + # Run mysql tests
244 + pushd "${TESTDIR}" || die
245 +
246 + # Set file limits higher so tests run
247 + ulimit -n 3000
248 + python_setup
249 + # run mysql-test tests
250 + perl mysql-test-run.pl --force --vardir="${T}/var-tests" \
251 + --testcase-timeout=30 --reorder
252 + retstatus_tests=$?
253 + [[ $retstatus_tests -eq 0 ]] || eerror "tests failed"
254 +
255 + popd || die
256 +
257 + # Cleanup is important for these testcases.
258 + pkill -9 -f "${S}/ndb" 2>/dev/null
259 + pkill -9 -f "${S}/sql" 2>/dev/null
260 +
261 + failures=""
262 + [[ $retstatus_unit -eq 0 ]] || failures="${failures} test-unit"
263 + [[ $retstatus_tests -eq 0 ]] || failures="${failures} tests"
264 +
265 + if [[ -n "$failures" ]]; then
266 + has usersandbox $FEATURES && eerror "Some tests may have failed due to FEATURES=usersandbox"
267 + die "Test failures: $failures"
268 + fi
269 +
270 + einfo "Tests successfully completed"
271 +}