Gentoo Archives: gentoo-commits

From: Brian Evans <grknight@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/mysql:master commit in: dev-db/mariadb/
Date: Wed, 19 Jul 2017 01:28:49
Message-Id: 1500427716.6c9eeaa67562d2919a0b327a519c1f297ffa0e49.grknight@gentoo
1 commit: 6c9eeaa67562d2919a0b327a519c1f297ffa0e49
2 Author: Brian Evans <grknight <AT> gentoo <DOT> org>
3 AuthorDate: Wed Jul 19 01:28:36 2017 +0000
4 Commit: Brian Evans <grknight <AT> gentoo <DOT> org>
5 CommitDate: Wed Jul 19 01:28:36 2017 +0000
6 URL: https://gitweb.gentoo.org/proj/mysql.git/commit/?id=6c9eeaa6
7
8 dev-db/mariadb: Version bump
9
10 Package-Manager: Portage-2.3.6, Repoman-2.3.2
11 Manifest-Sign-Key: 0xD1F781EFF9F4A3B6
12
13 dev-db/mariadb/Manifest | 28 +--
14 dev-db/mariadb/mariadb-10.2.7.ebuild | 398 +++++++++++++++++++++++++++++++++++
15 2 files changed, 413 insertions(+), 13 deletions(-)
16
17 diff --git a/dev-db/mariadb/Manifest b/dev-db/mariadb/Manifest
18 index 3c29014..b1fc702 100644
19 --- a/dev-db/mariadb/Manifest
20 +++ b/dev-db/mariadb/Manifest
21 @@ -2,6 +2,7 @@
22 Hash: SHA256
23
24 DIST mariadb-10.2.6.tar.gz 67599197 SHA256 c385c76e40d6e5f0577eba021805da5f494a30c9ef51884baefe206d5658a2e5 SHA512 142628085f42ef15ceef6aca5e47ba56cc38cbfc0ac4f35f6b37512c14a60430ef4805e54fd51c47e101b7692781e174426bdb49cae6807c4c18cc3d876f8732 WHIRLPOOL e5920a6f0833fa39b706b067037fb6e432e77ba4e7beee51300e408c92cf5962db91013b1958e649947006f0ac2775c70996d9c7f0dcd98d3b40e87ae5abc049
25 +DIST mariadb-10.2.7.tar.gz 67669554 SHA256 225ba1bbc48325ad38a9f433ff99da4641028f42404a29591cc370e4a676c0bc SHA512 fa595acc0f5c9c62077db000f1721af79628994c08e82b2eb95d265e3c556e80942c487fc1b91299c382becd71f21a0a117ca93d7428752f436ed83683a4f4cd WHIRLPOOL d76d584924dac41fd787c1a02f79de90ae5334b217b66deb59756490a8c42b801fddac425542e371d68b04fa462a3f438626896749a1c12be70e9d22d857771e
26 DIST mariadb-5.1.67.tar.gz 25022999 SHA256 33471e9275c9b03919cabc38eb39f807d645adabf6a1a18f2e41ed73f47677c8 SHA512 de4a531027860c4226ec5e023b6f8573c2eb723bacaeb14279b9609ed033dcb58fc090aef3d9babcd4a4d0817ddf6ef75589c78f63075072d31ad0b7f7c17d7d WHIRLPOOL 22696d27c3a510396c4b86db5f5a4b39bbcde89285a8460b175ef7c40b3b7541fc8f205c0b96da7f94504a7fd14bfe02efb45204efda524a2426cd25e08162ff
27 DIST mariadb-5.2.14.tar.gz 25469828 SHA256 8ab3db0535ce8728b03a34799da2334c18cff467e01d122293f23aad20613fe5 SHA512 b0aded450355861bf01604ac5bd0012d0d06a699bc83017cdb6b8749ed161aca9fedb733301aab991c521b21f3c8b2fea4867a2fd038379475e720782c02e869 WHIRLPOOL 8c2dd7ee0c1df5696d6b9f5c4387b7f755258a710ac088559f0f9779b27d18e30f32de0d4212015a15b6a83de2abbdd5c4ec811fa87fe2aec547809dc0970607
28 DIST mariadb-5.3.12.tar.gz 26880808 SHA256 83a4598117cadde2bd7eac4c1398edbc86cc3aa8d3824bbee864d4b568a3a30c SHA512 d53ea48745dad5693fd6a1fd5cf502852f12f8236b8a1fb7f81ad647301d2fd08d4f2944c74de580d0a4136d6c8b49f257124fa1b234ba8f2338f2047435ef94 WHIRLPOOL b9caf1b241262b3b25728769116a94b480ae404ed3d49c8afd6eb4ad6071552e436e4b9483e7f5d0113bc3127eaf04ceaa80d455486e7a92d00820b6b298c460
29 @@ -9,22 +10,23 @@ DIST mariadb-5.5.49.tar.gz 45738390 SHA256 2c82f2af71b88a7940d5ff647498ed78922c9
30 DIST mysql-extras-20121101-2319Z.tar.bz2 1898358 SHA256 ea5da082d3384bde67e005ebc39b78e7caadea80745333fb5a9cf47a4c4e4c5d SHA512 6a49abb1beee012d87ab63071a568ee6d9d8e4ff7a76401b91f5bdc127860d1c504a3877cbadb81536b07afe5ff419c77c793b0fc14ba484f56765d1ca526614 WHIRLPOOL 4bda75a0a9063830b3140bbc3cb12b60fa21289eee2fa476fb286da6318fdf0445a9c6193bd2063aefcd3f4ecc1f8045b30635f0e32014098d0f3dbee86e01fc
31 DIST mysql-extras-20150509-1847Z.tar.bz2 1494301 SHA256 de9c9fbb67998604cb3c0409842e4601646c8ad17f2aa301f55ffd4aed7a483d SHA512 f87d96ab8c35236d4453182c49f87f6e703af9dc217916546e4dd7368caa18a2340c9063decd96c22251d1097d7e2cac58bef30e6ff75c23aedf8926dbc3d3b4 WHIRLPOOL f60297c8ee1dfd9867ed6b29a8b04a002f23bc36b1e8d9b5db30e1e454a49fe06ffc37b10d934b11235364eecdc62beb50ce24690ab3d07a50056357906fa0fa
32 DIST mysql-extras-20170719-0024Z.tar.bz2 310450 SHA256 220d4a62c737164a22554bc34c4a1b557441dda12f85ab94936158d540bf2f45 SHA512 658f70b617129b80c69e897e60b4aacc414ce4fc31b3814be6ef7b0002a8f81d6a41af2a88a0a4cd82b7665b1d6682ef6140bebd3c41d08b8ad6b4e083669139 WHIRLPOOL 2463673e700cf3eacc1d02e973f486afdc6120b4cdd194751644770145d5fd018d9a1674d119749224cefca6dd6fc13037c490aec0c34a02c01975141b5e38f1
33 +DIST mysql-extras-20170719-0113Z.tar.bz2 311116 SHA256 30b7e5f981a110ec8e1582939c59ea037559fa1519771d487d591f022b6a148d SHA512 5e470562e629bd1d104cd1d85e2b57f82b56c8f1f8236d666aca564ed577be50a5818312d8cb2a6a5f18a9c6c6792932fb15f56fd0baac6fadee4411b278f3ce WHIRLPOOL a5764ea0b9ba33d4a4982b24eeefddbaea4367d9e58b866fa9145e65d53369820762a27d36271c522ea3ad214637d28c3d0db3477d47e68647afada7a3dbbd75
34 -----BEGIN PGP SIGNATURE-----
35 Version: GnuPG v2
36
37 -iQKSBAEBCAB9FiEEZsLkTtkOMnWOfVXA0feB7/n0o7YFAlluqSBfFIAAAAAALgAo
38 +iQKTBAEBCAB9FiEEZsLkTtkOMnWOfVXA0feB7/n0o7YFAllutcFfFIAAAAAALgAo
39 aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDY2
40 QzJFNDRFRDkwRTMyNzU4RTdENTVDMEQxRjc4MUVGRjlGNEEzQjYACgkQ0feB7/n0
41 -o7Zoug/2Ndk6gK7uDEymWFai1ZJLtQyskFbTbtuwS6tAwtqjlNgGb5QnhM/ksKoP
42 -iRHtPbY6I1nayiIlnDnuqP9eSOQutbKNzxDWZLX4DY0RJkB2FLJlx9Z4mKpSKHFe
43 -3s5rEjp46FAqW7P3DK45SBwOAt04nqodKPGEq/jhovJgaCw+lA4laH6kGPklYyGx
44 -Fg4dBK2EUfEdqGaaWwpO4j4wWWQzKuDuOLxDyoI6sPyUTVo9y5paENXuTcpzYj5H
45 -QSxB4BImaVIS46ew88F3q5ZfZsSmskK2v+S8boc1J1IzYCxlYI5k+uIgEWOIVfyx
46 -QEEUs3cuTSlpMs7cYiIDyL8pAimrpRtz+Iex3KPZpBLTOwh+PvNhV+7qDqSd2AEC
47 -I37vT1+8Uivlqyu6OT+kqk4aYrZETmA4njoVEK+0f6iNmS9gUzxlJ8rONs2qK2IR
48 -60Np4RnjSP567m8U1bIqN6Kx6Nqx7fBIxK0gkxe29H1jZWuRQr+XZ+9MG0KxpEwI
49 -mEmQ7E2IyVcTdatxBTAQyGRjFnRk3E4uRkgw+Eet8eJFj7vMLgBcQpQlz8y8/yIA
50 -znwp/a7v8SwC4yKzo7enM59dmjrnufD4I8rJrCyW0cxzDjmJBgiWVFqmL+RcMgyD
51 -JEIWaB57X32/OhI4A57JPiv0QnzXsIogvYT3xNoNTslLNJBuzg==
52 -=RiQd
53 +o7YxxA/+JY9n8PNTpQD71BqeOy7gyeCVZrjFXfzULDId3gC7NUry1bmt7lb3/SLc
54 +BPxYsQrZcWlxKvFXJYpfcTWa2+aMFgG1YiouuLqCsbsQPbaK5J+eD3lc0rixLufi
55 +QEmBjN58sIGWFw0Ft6HFuVsUle7JRZmi7TwqXxR8G4Qwk56I1H9lR0vcJCbMrvQf
56 +/eom0Ceq6S6efBD/WdUoB5EPXSMrdETn8P3p5aW012bXKy0FHWnj+10CHA3EHKmk
57 +fKeuTPER9qqusd2tE9sBOQuMUuKOqrK7z9jme37U+H/1/1V61eZugmLFp0/aSK6h
58 +1vUrwt5a6KGCY9ksVFoRbfvk4LECXzE1t7oYy+k/SOcS0FV+45gjhCnknQbE/CME
59 +oR05Dnd8f+5FJ7C9JMVeyJF0IRayNi18I0Kg/8Z0fU7SzvxJWuFLC5V92ZxTUvil
60 +s2t8LH0m7UMskm9bgbScpM7DcvrJ0BRhKfOEjGUzWZ2s6exHL9uKkhoZegkcsQDX
61 +FAaCc9WnkYEso8iUCgbR+Z7/QgdU2kbMEXTT9/cidUAjmQthsJTUAF0uqJy0xQ7n
62 +gfjYcyPTwW+PK02VTQ7h2EQq4Ac4wn6nzwX//kNWVZoFYhc1fMHMb/Wr7YOMorbI
63 +WFMYVKdxF4i/4FBEtQlt/oS7GTdejpYdAYNiHHyMKcsKRSvEW6I=
64 +=NBDb
65 -----END PGP SIGNATURE-----
66
67 diff --git a/dev-db/mariadb/mariadb-10.2.7.ebuild b/dev-db/mariadb/mariadb-10.2.7.ebuild
68 new file mode 100644
69 index 0000000..ff19ca8
70 --- /dev/null
71 +++ b/dev-db/mariadb/mariadb-10.2.7.ebuild
72 @@ -0,0 +1,398 @@
73 +# Copyright 1999-2017 Gentoo Foundation
74 +# Distributed under the terms of the GNU General Public License v2
75 +
76 +EAPI="6"
77 +MY_EXTRAS_VER="20170719-0113Z"
78 +# The wsrep API version must match between upstream WSREP and sys-cluster/galera major number
79 +WSREP_REVISION="25"
80 +SUBSLOT="18"
81 +MYSQL_PV_MAJOR="5.6"
82 +
83 +JAVA_PKG_OPT_USE="jdbc"
84 +
85 +inherit toolchain-funcs java-pkg-opt-2 prefix toolchain-funcs \
86 + multilib-minimal mysql-multilib-r1
87 +
88 +HOMEPAGE="http://mariadb.org/"
89 +DESCRIPTION="An enhanced, drop-in replacement for MySQL"
90 +LICENSE="GPL-2 LGPL-2.1+"
91 +
92 +IUSE="+backup bindist cracklib galera kerberos innodb-lz4 innodb-lzo innodb-snappy jdbc mroonga odbc oqgraph pam rocksdb sphinx sst-rsync sst-xtrabackup tokudb systemd xml"
93 +RESTRICT="!bindist? ( bindist )"
94 +
95 +REQUIRED_USE="jdbc? ( extraengine server !static ) server? ( tokudb? ( jemalloc !tcmalloc ) ) static? ( !pam )"
96 +
97 +# REMEMBER: also update eclass/mysql*.eclass before committing!
98 +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~sparc-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris ~x86-solaris"
99 +
100 +if [[ "${MY_EXTRAS_VER}" == "live" ]] ; then
101 + MY_PATCH_DIR="${WORKDIR}/mysql-extras"
102 +else
103 + MY_PATCH_DIR="${WORKDIR}/mysql-extras-${MY_EXTRAS_VER}"
104 +fi
105 +
106 +PATCHES=(
107 + "${MY_PATCH_DIR}"/20015_all_mariadb-pkgconfig-location.patch
108 + "${MY_PATCH_DIR}"/20018_all_mariadb-10.2.7-without-clientlibs-tools.patch
109 + "${MY_PATCH_DIR}"/20024_all_mariadb-10.2.6-mysql_st-regression.patch
110 + "${MY_PATCH_DIR}"/20025_all_mariadb-10.2.6-gssapi-detect.patch
111 +)
112 +
113 +COMMON_DEPEND="
114 + mroonga? ( app-text/groonga-normalizer-mysql )
115 + kerberos? ( virtual/krb5[${MULTILIB_USEDEP}] )
116 + !bindist? (
117 + sys-libs/binutils-libs:0=
118 + >=sys-libs/readline-4.1:0=
119 + )
120 + server? (
121 + backup? ( app-arch/libarchive:0= )
122 + cracklib? ( sys-libs/cracklib:0= )
123 + extraengine? (
124 + odbc? ( dev-db/unixODBC:0= )
125 + xml? ( dev-libs/libxml2:2= )
126 + )
127 + innodb-lz4? ( app-arch/lz4 )
128 + innodb-lzo? ( dev-libs/lzo )
129 + innodb-snappy? ( app-arch/snappy )
130 + oqgraph? ( >=dev-libs/boost-1.40.0:0= dev-libs/judy:0= )
131 + pam? ( virtual/pam:0= )
132 + systemd? ( sys-apps/systemd:= )
133 + tokudb? ( app-arch/snappy )
134 + )
135 + >=dev-libs/libpcre-8.35:3=
136 + sys-libs/zlib[${MULTILIB_USEDEP}]
137 +"
138 +DEPEND="|| ( >=sys-devel/gcc-3.4.6 >=sys-devel/gcc-apple-4.0 )
139 + server? ( extraengine? ( jdbc? ( >=virtual/jdk-1.6 ) ) )
140 + ${COMMON_DEPEND}"
141 +RDEPEND="${RDEPEND} ${COMMON_DEPEND}
142 + server? ( galera? (
143 + sys-apps/iproute2
144 + =sys-cluster/galera-${WSREP_REVISION}*
145 + sst-rsync? ( sys-process/lsof )
146 + sst-xtrabackup? ( net-misc/socat[ssl] )
147 + ) )
148 + perl? ( !dev-db/mytop
149 + virtual/perl-Getopt-Long
150 + dev-perl/TermReadKey
151 + virtual/perl-Term-ANSIColor
152 + virtual/perl-Time-HiRes )
153 + server? ( extraengine? ( jdbc? ( >=virtual/jre-1.6 ) ) )
154 +"
155 +# xtrabackup-bin causes a circular dependency if DBD-mysql is not already installed
156 +PDEPEND="server? ( galera? ( sst-xtrabackup? ( || ( >=dev-db/xtrabackup-bin-2.2.4 dev-db/percona-xtrabackup ) ) ) )"
157 +
158 +MULTILIB_WRAPPED_HEADERS+=( /usr/include/mysql/mysql_version.h
159 + /usr/include/mariadb/mariadb_version.h
160 + /usr/include/mysql/private/probes_mysql_nodtrace.h
161 + /usr/include/mysql/private/probes_mysql_dtrace.h )
162 +
163 +pkg_setup() {
164 + java-pkg-opt-2_pkg_setup
165 + mysql-multilib-r1_pkg_setup
166 +}
167 +
168 +pkg_preinst() {
169 + java-pkg-opt-2_pkg_preinst
170 +
171 + # Here we need to see if the implementation switched client libraries
172 + # We check if this is a new instance of the package and a client library already exists
173 + local SHOW_ABI_MESSAGE libpath
174 + if [[ -z ${REPLACING_VERSIONS} && -e "${EROOT}usr/$(get_libdir)/libmysqlclient.so" ]] ; then
175 + libpath=$(readlink "${EROOT}usr/$(get_libdir)/libmysqlclient.so")
176 + elog "Due to ABI changes when switching between different client libraries,"
177 + elog "revdep-rebuild must find and rebuild all packages linking to libmysqlclient."
178 + elog "Please run: revdep-rebuild --library ${libpath}"
179 + ewarn "Failure to run revdep-rebuild may cause issues with other programs or libraries"
180 + fi
181 +}
182 +
183 +src_prepare() {
184 + java-pkg-opt-2_src_prepare
185 + if use tcmalloc; then
186 + echo "TARGET_LINK_LIBRARIES(mysqld tcmalloc)" >> "${S}/sql/CMakeLists.txt"
187 + fi
188 +
189 + # Don't build bundled xz-utils for tokudb
190 + echo > "${S}/storage/tokudb/PerconaFT/cmake_modules/TokuThirdParty.cmake" || die
191 + sed -i -e 's/ build_lzma//' -e 's/ build_snappy//' "${S}/storage/tokudb/PerconaFT/ft/CMakeLists.txt" || die
192 + sed -i -e 's/add_dependencies\(tokuportability_static_conv build_jemalloc\)//' "${S}/storage/tokudb/PerconaFT/portability/CMakeLists.txt" || die
193 +
194 + # Remove the bundled groonga
195 + # There is no CMake flag, it simply checks for existance
196 + rm -r "${S}"/storage/mroonga/vendor/groonga || die "could not remove packaged groonga"
197 +
198 + eapply "${PATCHES[@]}"
199 + eapply_user
200 +}
201 +
202 +src_configure(){
203 + # bug 508724 mariadb cannot use ld.gold
204 + tc-ld-disable-gold
205 +
206 + local MYSQL_CMAKE_NATIVE_DEFINES=(
207 + -DWITH_JEMALLOC=$(usex jemalloc system)
208 + -DWITH_PCRE=system
209 + )
210 + local MYSQL_CMAKE_EXTRA_DEFINES=(
211 + -DPLUGIN_AUTH_GSSAPI=$(usex kerberos DYNAMIC NO)
212 + -DAUTH_GSSAPI_PLUGIN_TYPE="$(usex kerberos DYNAMIC OFF)"
213 + -DCONC_WITH_EXTERNAL_ZLIB=YES
214 + -DWITH_EXTERNAL_ZLIB=YES
215 + -DSUFFIX_INSTALL_DIR=""
216 + -DINSTALL_INCLUDEDIR=include/mysql
217 + -DINSTALL_INFODIR=share/info
218 + -DINSTALL_LIBDIR=$(get_libdir)
219 + -DINSTALL_ELIBDIR=$(get_libdir)/mariadb
220 + -DINSTALL_MANDIR=share/man
221 + -DINSTALL_MYSQLSHAREDIR=share/mariadb
222 + -DINSTALL_PLUGINDIR=$(get_libdir)/mariadb/plugin
223 + -DINSTALL_SCRIPTDIR=share/mariadb/scripts
224 + -DINSTALL_SUPPORTFILESDIR="${EPREFIX}/usr/share/mariadb"
225 + -DWITH_UNITTEST=OFF
226 + )
227 +
228 + if use test ; then
229 + MYSQL_CMAKE_EXTRA_DEFINES+=( -DINSTALL_MYSQLTESTDIR=share/mariadb/mysql-test )
230 + fi
231 +
232 + if use server ; then
233 + # Federated{,X} must be treated special otherwise they will not be built as plugins
234 + if ! use extraengine ; then
235 + MYSQL_CMAKE_NATIVE_DEFINES+=(
236 + -DPLUGIN_FEDERATED=NO
237 + -DPLUGIN_FEDERATEDX=NO )
238 + fi
239 +
240 + MYSQL_CMAKE_NATIVE_DEFINES+=(
241 + -DPLUGIN_OQGRAPH=$(usex oqgraph DYNAMIC NO)
242 + -DPLUGIN_SPHINX=$(usex sphinx YES NO)
243 + -DPLUGIN_TOKUDB=$(usex tokudb YES NO)
244 + -DPLUGIN_AUTH_PAM=$(usex pam YES NO)
245 + -DPLUGIN_CRACKLIB_PASSWORD_CHECK=$(usex cracklib YES NO)
246 + -DPLUGIN_CASSANDRA=NO
247 + -DPLUGIN_SEQUENCE=$(usex extraengine YES NO)
248 + -DPLUGIN_SPIDER=$(usex extraengine YES NO)
249 + -DPLUGIN_CONNECT=$(usex extraengine YES NO)
250 + -DCONNECT_WITH_MYSQL=1
251 + -DCONNECT_WITH_LIBXML2=$(usex xml)
252 + -DCONNECT_WITH_ODBC=$(usex odbc)
253 + -DCONNECT_WITH_JDBC=$(usex jdbc)
254 + -DWITH_WSREP=$(usex galera)
255 + -DWITH_INNODB_LZ4=$(usex innodb-lz4 ON OFF)
256 + -DWITH_INNODB_LZO=$(usex innodb-lzo ON OFF)
257 + -DWITH_INNODB_SNAPPY=$(usex innodb-snappy ON OFF)
258 + -DPLUGIN_MROONGA=$(usex mroonga DYNAMIC NO)
259 + -DPLUGIN_AUTH_GSSAPI=$(usex kerberos DYNAMIC NO)
260 + -DWITH_MARIABACKUP=$(usex backup ON OFF)
261 + -DWITH_LIBARCHIVE=$(usex backup ON OFF)
262 + -DINSTALL_SQLBENCHDIR=share/mariadb
263 + -DPLUGIN_ROCKSDB=$(usex rocksdb DYNAMIC NO)
264 + )
265 + if use test ; then
266 + # This is needed for the new client lib which tests a real, open server
267 + MYSQL_CMAKE_NATIVE_DEFINES+=( -DSKIP_TESTS=ON )
268 + fi
269 + fi
270 + mysql-multilib-r1_src_configure
271 +}
272 +
273 +src_install() {
274 + # wrap the config scripts
275 + local MULTILIB_CHOST_TOOLS=( /usr/bin/mariadb_config /usr/bin/mysql_config )
276 + multilib-minimal_src_install
277 +}
278 +
279 +# Intentionally override eclass function
280 +multilib_src_install() {
281 + cmake-utils_src_install
282 +
283 + # Make sure the vars are correctly initialized
284 + mysql_init_vars
285 +
286 + # Remove an unnecessary, private config header which will never match between ABIs and is not meant to be used
287 + if [[ -f "${D}${MY_INCLUDEDIR}/private/config.h" ]] ; then
288 + rm "${D}${MY_INCLUDEDIR}/private/config.h" || die
289 + fi
290 +
291 + if ! multilib_is_native_abi && use server ; then
292 + insinto /usr/include/mysql/private
293 + doins "${S}"/sql/*.h
294 + fi
295 +}
296 +
297 +multilib_src_install_all() {
298 + # Make sure the vars are correctly initialized
299 + mysql_init_vars
300 +
301 + # Convenience links
302 + einfo "Making Convenience links for mysqlcheck multi-call binary"
303 + dosym "/usr/bin/mysqlcheck" "/usr/bin/mysqlanalyze"
304 + dosym "/usr/bin/mysqlcheck" "/usr/bin/mysqlrepair"
305 + dosym "/usr/bin/mysqlcheck" "/usr/bin/mysqloptimize"
306 +
307 + # INSTALL_LAYOUT=STANDALONE causes cmake to create a /usr/data dir
308 + if [[ -d "${ED}/usr/data" ]] ; then
309 + rm -Rf "${ED}/usr/data" || die
310 + fi
311 +
312 + # Unless they explicitly specific USE=test, then do not install the
313 + # testsuite. It DOES have a use to be installed, esp. when you want to do a
314 + # validation of your database configuration after tuning it.
315 + if ! use test ; then
316 + rm -rf "${D}/${MY_SHAREDSTATEDIR}/mysql-test"
317 + fi
318 +
319 + # Configuration stuff
320 + einfo "Building default configuration ..."
321 + [[ -f "${S}/scripts/mysqlaccess.conf" ]] && doins "${S}"/scripts/mysqlaccess.conf
322 + insinto "${MY_SYSCONFDIR#${EPREFIX}}"
323 + cp "${FILESDIR}/my.cnf-10.2" "${TMPDIR}/my.cnf" || die
324 + eprefixify "${TMPDIR}/my.cnf"
325 + doins "${TMPDIR}/my.cnf"
326 + insinto "${MY_SYSCONFDIR#${EPREFIX}}/mariadb.d"
327 + cp "${FILESDIR}/my.cnf.distro-client" "${TMPDIR}/50-distro-client.cnf" || die
328 + eprefixify "${TMPDIR}/50-distro-client.cnf"
329 + doins "${TMPDIR}/50-distro-client.cnf"
330 +
331 + if use server ; then
332 + mycnf_src="my.cnf.distro-server"
333 + sed -e "s!@DATADIR@!${MY_DATADIR}!g" \
334 + "${FILESDIR}/${mycnf_src}" \
335 + > "${TMPDIR}/my.cnf.ok" || die
336 + if use prefix ; then
337 + sed -i -r -e '/^user[[:space:]]*=[[:space:]]*mysql$/d' \
338 + "${TMPDIR}/my.cnf.ok" || die
339 + fi
340 + if use latin1 ; then
341 + sed -i \
342 + -e "/character-set/s|utf8|latin1|g" \
343 + "${TMPDIR}/my.cnf.ok" || die
344 + fi
345 + eprefixify "${TMPDIR}/my.cnf.ok"
346 + newins "${TMPDIR}/my.cnf.ok" 50-distro-server.cnf
347 + einfo "Creating initial directories"
348 + # Empty directories ...
349 + diropts "-m0750"
350 + if [[ "${PREVIOUS_DATADIR}" != "yes" ]] ; then
351 + dodir "${MY_DATADIR#${EPREFIX}}"
352 + keepdir "${MY_DATADIR#${EPREFIX}}"
353 + chown -R mysql:mysql "${D}/${MY_DATADIR}"
354 + fi
355 +
356 + diropts "-m0755"
357 + local folder
358 + for folder in "${MY_LOGDIR#${EPREFIX}}" ; do
359 + dodir "${folder}"
360 + keepdir "${folder}"
361 + chown -R mysql:mysql "${ED}/${folder}"
362 + done
363 +
364 + einfo "Including support files and sample configurations"
365 + docinto "support-files"
366 + local script
367 + for script in \
368 + "${S}"/support-files/magic
369 + do
370 + [[ -f "$script" ]] && dodoc "${script}"
371 + done
372 +
373 + docinto "scripts"
374 + for script in "${S}"/scripts/mysql* ; do
375 + [[ ( -f "$script" ) && ( "${script%.sh}" == "${script}" ) ]] && dodoc "${script}"
376 + done
377 + fi
378 +
379 + #Remove mytop if perl is not selected
380 + [[ -e "${ED}/usr/bin/mytop" ]] && ! use perl && rm -f "${ED}/usr/bin/mytop"
381 +
382 + # Install compatible symlinks to libmysqlclient
383 + use static-libs && dosym libmariadbclient.a "${EPREFIX}/usr/$(get_libdir)/libmysqlclient.a"
384 + dosym libmariadb.so.3 "${EPREFIX}/usr/$(get_libdir)/libmysqlclient.so"
385 + dosym libmariadb.so.3 "${EPREFIX}/usr/$(get_libdir)/libmysqlclient.so.${SUBSLOT}"
386 +}
387 +
388 +# Official test instructions:
389 +# USE='embedded extraengine perl server openssl static-libs' \
390 +# FEATURES='test userpriv -usersandbox' \
391 +# ebuild mariadb-X.X.XX.ebuild \
392 +# digest clean package
393 +multilib_src_test() {
394 +
395 + if ! multilib_is_native_abi ; then
396 + einfo "Server tests not available on non-native abi".
397 + return 0;
398 + fi
399 +
400 + local TESTDIR="${BUILD_DIR}/mysql-test"
401 + local retstatus_unit
402 + local retstatus_tests
403 +
404 + if use server ; then
405 + einfo "Skipping server tests due to minimal build."
406 + return 0
407 + fi
408 +
409 + # Bug #213475 - MySQL _will_ object strenously if your machine is named
410 + # localhost. Also causes weird failures.
411 + [[ "${HOSTNAME}" == "localhost" ]] && die "Your machine must NOT be named localhost"
412 +
413 + if [[ $UID -eq 0 ]]; then
414 + die "Testing with FEATURES=-userpriv is no longer supported by upstream. Tests MUST be run as non-root."
415 + fi
416 + has usersandbox $FEATURES && ewarn "Some tests may fail with FEATURES=usersandbox"
417 +
418 + einfo ">>> Test phase [test]: ${CATEGORY}/${PF}"
419 +
420 + # Run CTest (test-units)
421 + cmake-utils_src_test
422 + retstatus_unit=$?
423 +
424 + # Ensure that parallel runs don't die
425 + export MTR_BUILD_THREAD="$((${RANDOM} % 100))"
426 + # Enable parallel testing, auto will try to detect number of cores
427 + # You may set this by hand.
428 + # The default maximum is 8 unless MTR_MAX_PARALLEL is increased
429 + export MTR_PARALLEL="${MTR_PARALLEL:-auto}"
430 +
431 + # create directories because mysqladmin might run out of order
432 + mkdir -p "${T}"/var-tests{,/log}
433 +
434 + # Run mysql tests
435 + pushd "${TESTDIR}" || die
436 +
437 + # These are failing in MariaDB 10.0 for now and are believed to be
438 + # false positives:
439 + #
440 + # main.mysql_client_test, main.mysql_client_test_nonblock
441 + # main.mysql_client_test_comp:
442 + # segfaults at random under Portage only, suspect resource limits.
443 +
444 + local t
445 + for t in plugins.cracklib_password_check plugins.two_password_validations ; do
446 + mysql-multilib-r1_disable_test "$t" "False positive due to varying policies"
447 + done
448 +
449 + for t in main.mysql_client_test main.mysql_client_test_nonblock \
450 + main.mysql_client_test_comp ; do
451 + mysql-multilib-r1_disable_test "$t" "False positives in Gentoo"
452 + done
453 +
454 + # run mysql-test tests
455 + perl mysql-test-run.pl --force --vardir="${T}/var-tests" --reorder
456 + retstatus_tests=$?
457 +
458 + popd || die
459 +
460 + # Cleanup is important for these testcases.
461 + pkill -9 -f "${S}/ndb" 2>/dev/null
462 + pkill -9 -f "${S}/sql" 2>/dev/null
463 +
464 + local failures=""
465 + [[ $retstatus_unit -eq 0 ]] || failures="${failures} test-unit"
466 + [[ $retstatus_tests -eq 0 ]] || failures="${failures} tests"
467 +
468 + [[ -z "$failures" ]] || eerror "Test failures: $failures"
469 + einfo "Tests successfully completed"
470 +}